From 54f46ccac39e479cf6c1d85002d456417e6b4ccc Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 8 Jan 2020 00:53:05 +0400 Subject: [PATCH 01/63] Apply media editing automatically --- submodules/TelegramUI/TelegramUI/ChatController.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 8c7b7879a7..e1bd67a179 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -5422,6 +5422,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } return state }) + self.interfaceInteraction?.editMessage() } } From b87c84a17dca66be799598a5111ce35848bf36d9 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 8 Jan 2020 00:53:20 +0400 Subject: [PATCH 02/63] Updated polls --- NotificationService/Serialization.m | 2 +- Telegram-iOS/en.lproj/Localizable.strings | 17 + .../AvatarNode/Sources/AvatarNode.swift | 28 +- .../AvatarNode/Sources/PeerAvatar.swift | 8 +- .../Sources/CreatePollController.swift | 409 +- .../Sources/CreatePollOptionActionItem.swift | 2 +- .../Sources/CreatePollOptionItem.swift | 179 +- submodules/Display/Display/ListView.swift | 49 +- .../Display/Display/ListViewItemHeader.swift | 1 + .../Sources/ItemListPeerActionItem.swift | 10 +- .../Sources/ItemListPeerItem.swift | 192 +- .../Sources/ItemListControllerNode.swift | 3 + .../Sources/Items/ItemListEditableItem.swift | 12 +- .../Sources/Items/ItemListTextItem.swift | 17 +- .../LegacyComponents/TGCheckButtonView.m | 26 +- submodules/Postbox/Sources/Coding.swift | 41 + submodules/Postbox/Sources/Message.swift | 4 + .../Postbox/Sources/MessageHistoryTable.swift | 36 + .../Postbox/Sources/MessageHistoryView.swift | 32 +- .../Sources/MessageHistoryViewState.swift | 56 +- .../Sources/SettingsController.swift | 6 +- .../SyncCore/Sources/TelegramMediaPoll.swift | 86 +- submodules/TelegramApi/Sources/Api0.swift | 19 +- submodules/TelegramApi/Sources/Api1.swift | 226 +- submodules/TelegramApi/Sources/Api2.swift | 134 +- submodules/TelegramApi/Sources/Api3.swift | 53 + .../Sources/AccountStateManagementUtils.swift | 14 +- .../TelegramCore/Sources/ApiUtils.swift | 6 +- .../Sources/AutodownloadSettings.swift | 2 - .../PendingMessageUploadedContent.swift | 23 +- submodules/TelegramCore/Sources/Polls.swift | 226 +- .../TelegramCore/Sources/Serialization.swift | 2 +- .../Sources/StoreMessage_Telegram.swift | 14 +- .../Sources/TelegramMediaPoll.swift | 8 +- .../Sources/TelegramIntents.swift | 2 +- .../DefaultDarkPresentationTheme.swift | 4 +- .../DefaultDarkTintedPresentationTheme.swift | 4 +- .../Sources/DefaultDayPresentationTheme.swift | 14 +- .../Sources/PresentationStrings.swift | 7535 +++++++++-------- .../Sources/PresentationTheme.swift | 20 +- .../Sources/PresentationThemeCodable.swift | 27 +- .../TelegramUI/ChatController.swift | 26 +- .../ChatControllerInteraction.swift | 13 +- .../ChatInterfaceStateContextMenus.swift | 4 +- .../ChatMessagePollBubbleContentNode.swift | 546 +- .../ChatRecentActionsControllerNode.swift | 3 +- .../OverlayPlayerControllerNode.swift | 3 +- .../PeerMediaCollectionController.swift | 3 +- .../TelegramUI/PollResultsController.swift | 313 + .../Resources/PresentationStrings.mapping | Bin 143260 -> 143683 bytes .../TelegramUI/SharedAccountContext.swift | 3 +- .../WalletUI/Resources/WalletStrings.mapping | Bin 8384 -> 8384 bytes .../WalletUI/Sources/WalletStrings.swift | 4 +- .../Sources/WatchRequestHandlers.swift | 2 +- 54 files changed, 6176 insertions(+), 4293 deletions(-) create mode 100644 submodules/TelegramUI/TelegramUI/PollResultsController.swift diff --git a/NotificationService/Serialization.m b/NotificationService/Serialization.m index cd0732944d..00a0621e3e 100644 --- a/NotificationService/Serialization.m +++ b/NotificationService/Serialization.m @@ -3,7 +3,7 @@ @implementation Serialization - (NSUInteger)currentLayer { - return 108; + return 109; } - (id _Nullable)parseMessage:(NSData * _Nullable)data { diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index d16fcf1a8e..ab4e61f954 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -5245,3 +5245,20 @@ Any member of this group will be able to see messages in the channel."; "Conversation.ContextMenuCancelEditing" = "Cancel Editing"; "Map.NoPlacesNearby" = "There are no known places nearby.\nTry a different location."; + +"CreatePoll.Anonymous" = "Anonymous Votes"; +"CreatePoll.MultipleChoice" = "Multiple Choice"; +"CreatePoll.Quiz" = "Quiz Mode"; +"CreatePoll.QuizInfo" = "Quiz has only one correct answer. Users can't revoke their votes."; +"CreatePoll.QuizTip" = "Tap to select the correct option"; + +"MessagePoll.LabelPoll" = "Poll"; +"MessagePoll.LabelAnonymousQuiz" = "Anonymous Quiz"; +"MessagePoll.LabelQuiz" = "Quiz"; +"MessagePoll.SubmitVote" = "Submit Vote"; +"MessagePoll.ViewResults" = "View Results"; + +"PollResults.Title" = "Poll Results"; +"PollResults.Collapse" = "COLLAPSE"; +"PollResults.ShowMore_1" = "Show %@ More Voter"; +"PollResults.ShowMore_any" = "Show %@ More Voters"; diff --git a/submodules/AvatarNode/Sources/AvatarNode.swift b/submodules/AvatarNode/Sources/AvatarNode.swift index 4b8924e900..0aa47ea55a 100644 --- a/submodules/AvatarNode/Sources/AvatarNode.swift +++ b/submodules/AvatarNode/Sources/AvatarNode.swift @@ -54,16 +54,6 @@ private class AvatarNodeParameters: NSObject { } } -private let gradientColors: [NSArray] = [ - [UIColor(rgb: 0xff516a).cgColor, UIColor(rgb: 0xff885e).cgColor], - [UIColor(rgb: 0xffa85c).cgColor, UIColor(rgb: 0xffcd6a).cgColor], - [UIColor(rgb: 0x665fff).cgColor, UIColor(rgb: 0x82b1ff).cgColor], - [UIColor(rgb: 0x54cb68).cgColor, UIColor(rgb: 0xa0de7e).cgColor], - [UIColor(rgb: 0x4acccd).cgColor, UIColor(rgb: 0x00fcfd).cgColor], - [UIColor(rgb: 0x2a9ef1).cgColor, UIColor(rgb: 0x72d5fd).cgColor], - [UIColor(rgb: 0xd669ed).cgColor, UIColor(rgb: 0xe0a2f3).cgColor], -] - private func generateGradientFilledCircleImage(diameter: CGFloat, colors: NSArray) -> UIImage? { return generateImage(CGSize(width: diameter, height: diameter), contextGenerator: { size, context in let bounds = CGRect(origin: CGPoint(), size: size) @@ -167,6 +157,16 @@ public final class AvatarEditOverlayNode: ASDisplayNode { } public final class AvatarNode: ASDisplayNode { + public static let gradientColors: [NSArray] = [ + [UIColor(rgb: 0xff516a).cgColor, UIColor(rgb: 0xff885e).cgColor], + [UIColor(rgb: 0xffa85c).cgColor, UIColor(rgb: 0xffcd6a).cgColor], + [UIColor(rgb: 0x665fff).cgColor, UIColor(rgb: 0x82b1ff).cgColor], + [UIColor(rgb: 0x54cb68).cgColor, UIColor(rgb: 0xa0de7e).cgColor], + [UIColor(rgb: 0x4acccd).cgColor, UIColor(rgb: 0x00fcfd).cgColor], + [UIColor(rgb: 0x2a9ef1).cgColor, UIColor(rgb: 0x72d5fd).cgColor], + [UIColor(rgb: 0xd669ed).cgColor, UIColor(rgb: 0xe0a2f3).cgColor], + ] + public var font: UIFont { didSet { if oldValue !== font { @@ -318,7 +318,7 @@ public final class AvatarNode: ASDisplayNode { let parameters: AvatarNodeParameters - if let peer = peer, let signal = peerAvatarImage(account: context.account, peer: peer, authorOfMessage: authorOfMessage, representation: representation, displayDimensions: displayDimensions, emptyColor: emptyColor, synchronousLoad: synchronousLoad) { + if let peer = peer, let signal = peerAvatarImage(account: context.account, peerReference: PeerReference(peer), authorOfMessage: authorOfMessage, representation: representation, displayDimensions: displayDimensions, emptyColor: emptyColor, synchronousLoad: synchronousLoad) { self.contents = nil self.displaySuspended = true self.imageReady.set(self.imageNode.ready) @@ -456,7 +456,7 @@ public final class AvatarNode: ASDisplayNode { colorsArray = grayscaleColors } } else { - colorsArray = gradientColors[colorIndex % gradientColors.count] + colorsArray = AvatarNode.gradientColors[colorIndex % AvatarNode.gradientColors.count] } var locations: [CGFloat] = [1.0, 0.0] @@ -555,7 +555,7 @@ public final class AvatarNode: ASDisplayNode { } } -public func drawPeerAvatarLetters(context: CGContext, size: CGSize, font: UIFont, letters: [String], accountPeerId: PeerId, peerId: PeerId) { +public func drawPeerAvatarLetters(context: CGContext, size: CGSize, font: UIFont, letters: [String], peerId: PeerId) { context.beginPath() context.addEllipse(in: CGRect(x: 0.0, y: 0.0, width: size.width, height: size.height)) @@ -572,7 +572,7 @@ public func drawPeerAvatarLetters(context: CGContext, size: CGSize, font: UIFont if colorIndex == -1 { colorsArray = grayscaleColors } else { - colorsArray = gradientColors[colorIndex % gradientColors.count] + colorsArray = AvatarNode.gradientColors[colorIndex % AvatarNode.gradientColors.count] } var locations: [CGFloat] = [1.0, 0.0] diff --git a/submodules/AvatarNode/Sources/PeerAvatar.swift b/submodules/AvatarNode/Sources/PeerAvatar.swift index 751ecfbd8c..183a06137a 100644 --- a/submodules/AvatarNode/Sources/PeerAvatar.swift +++ b/submodules/AvatarNode/Sources/PeerAvatar.swift @@ -21,7 +21,7 @@ private let roundCorners = { () -> UIImage in return image }() -public func peerAvatarImageData(account: Account, peer: Peer, authorOfMessage: MessageReference?, representation: TelegramMediaImageRepresentation?, synchronousLoad: Bool) -> Signal? { +public func peerAvatarImageData(account: Account, peerReference: PeerReference?, authorOfMessage: MessageReference?, representation: TelegramMediaImageRepresentation?, synchronousLoad: Bool) -> Signal? { if let smallProfileImage = representation { let resourceData = account.postbox.mediaBox.resourceData(smallProfileImage.resource, attemptSynchronously: synchronousLoad) let imageData = resourceData @@ -44,7 +44,7 @@ public func peerAvatarImageData(account: Account, peer: Peer, authorOfMessage: M subscriber.putCompletion() }) var fetchedDataDisposable: Disposable? - if let peerReference = PeerReference(peer) { + if let peerReference = peerReference { fetchedDataDisposable = fetchedMediaResource(mediaBox: account.postbox.mediaBox, reference: .avatar(peer: peerReference, resource: smallProfileImage.resource), statsCategory: .generic).start() } else if let authorOfMessage = authorOfMessage { fetchedDataDisposable = fetchedMediaResource(mediaBox: account.postbox.mediaBox, reference: .messageAuthorAvatar(message: authorOfMessage, resource: smallProfileImage.resource), statsCategory: .generic).start() @@ -64,8 +64,8 @@ public func peerAvatarImageData(account: Account, peer: Peer, authorOfMessage: M } } -public func peerAvatarImage(account: Account, peer: Peer, authorOfMessage: MessageReference?, representation: TelegramMediaImageRepresentation?, displayDimensions: CGSize = CGSize(width: 60.0, height: 60.0), round: Bool = true, inset: CGFloat = 0.0, emptyColor: UIColor? = nil, synchronousLoad: Bool = false) -> Signal? { - if let imageData = peerAvatarImageData(account: account, peer: peer, authorOfMessage: authorOfMessage, representation: representation, synchronousLoad: synchronousLoad) { +public func peerAvatarImage(account: Account, peerReference: PeerReference?, authorOfMessage: MessageReference?, representation: TelegramMediaImageRepresentation?, displayDimensions: CGSize = CGSize(width: 60.0, height: 60.0), round: Bool = true, inset: CGFloat = 0.0, emptyColor: UIColor? = nil, synchronousLoad: Bool = false) -> Signal? { + if let imageData = peerAvatarImageData(account: account, peerReference: peerReference, authorOfMessage: authorOfMessage, representation: representation, synchronousLoad: synchronousLoad) { return imageData |> mapToSignal { data -> Signal in let generate = deferred { () -> Signal in diff --git a/submodules/ComposePollUI/Sources/CreatePollController.swift b/submodules/ComposePollUI/Sources/CreatePollController.swift index cbf36c2929..8074279b8a 100644 --- a/submodules/ComposePollUI/Sources/CreatePollController.swift +++ b/submodules/ComposePollUI/Sources/CreatePollController.swift @@ -27,31 +27,51 @@ private final class CreatePollControllerArguments { let updatePollText: (String) -> Void let updateOptionText: (Int, String) -> Void let moveToNextOption: (Int) -> Void - let addOption: () -> Void + let moveToPreviousOption: (Int) -> Void let removeOption: (Int, Bool) -> Void let optionFocused: (Int) -> Void let setItemIdWithRevealedOptions: (Int?, Int?) -> Void + let toggleOptionSelected: (Int) -> Void + let updateAnonymous: (Bool) -> Void + let updateMultipleChoice: (Bool) -> Void + let updateQuiz: (Bool) -> Void - init(updatePollText: @escaping (String) -> Void, updateOptionText: @escaping (Int, String) -> Void, moveToNextOption: @escaping (Int) -> Void, addOption: @escaping () -> Void, removeOption: @escaping (Int, Bool) -> Void, optionFocused: @escaping (Int) -> Void, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void) { + init(updatePollText: @escaping (String) -> Void, updateOptionText: @escaping (Int, String) -> Void, moveToNextOption: @escaping (Int) -> Void, moveToPreviousOption: @escaping (Int) -> Void, removeOption: @escaping (Int, Bool) -> Void, optionFocused: @escaping (Int) -> Void, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, toggleOptionSelected: @escaping (Int) -> Void, updateAnonymous: @escaping (Bool) -> Void, updateMultipleChoice: @escaping (Bool) -> Void, updateQuiz: @escaping (Bool) -> Void) { self.updatePollText = updatePollText self.updateOptionText = updateOptionText self.moveToNextOption = moveToNextOption - self.addOption = addOption + self.moveToPreviousOption = moveToPreviousOption self.removeOption = removeOption self.optionFocused = optionFocused self.setItemIdWithRevealedOptions = setItemIdWithRevealedOptions + self.toggleOptionSelected = toggleOptionSelected + self.updateAnonymous = updateAnonymous + self.updateMultipleChoice = updateMultipleChoice + self.updateQuiz = updateQuiz } } private enum CreatePollSection: Int32 { case text case options + case settings +} + +private enum CreatePollEntryId: Hashable { + case textHeader + case text + case optionsHeader + case option(Int) + case optionsInfo + case anonymousVotes + case multipleChoice + case quiz + case quizInfo } private enum CreatePollEntryTag: Equatable, ItemListItemTag { case text case option(Int) - case addOption(Int) func isEqual(to other: ItemListItemTag) -> Bool { if let other = other as? CreatePollEntryTag { @@ -63,67 +83,82 @@ private enum CreatePollEntryTag: Equatable, ItemListItemTag { } private enum CreatePollEntry: ItemListNodeEntry { - case textHeader(PresentationTheme, String, ItemListSectionHeaderAccessoryText) - case text(PresentationTheme, String, String, Int) - case optionsHeader(PresentationTheme, String) - case option(PresentationTheme, PresentationStrings, Int, Int, String, String, Bool, Bool) - case addOption(PresentationTheme, String, Bool, Int) - case optionsInfo(PresentationTheme, String) + case textHeader(String, ItemListSectionHeaderAccessoryText) + case text(String, String, Int) + case optionsHeader(String) + case option(id: Int, index: Int, placeholder: String, text: String, revealed: Bool, hasNext: Bool, isLast: Bool, isSelected: Bool?) + case optionsInfo(String) + case anonymousVotes(String, Bool) + case multipleChoice(String, Bool, Bool) + case quiz(String, Bool) + case quizInfo(String) var section: ItemListSectionId { switch self { - case .textHeader, .text: - return CreatePollSection.text.rawValue - case .optionsHeader, .option, .addOption, .optionsInfo: - return CreatePollSection.options.rawValue + case .textHeader, .text: + return CreatePollSection.text.rawValue + case .optionsHeader, .option, .optionsInfo: + return CreatePollSection.options.rawValue + case .anonymousVotes, .multipleChoice, .quiz, .quizInfo: + return CreatePollSection.settings.rawValue } } var tag: ItemListItemTag? { switch self { - case .text: - return CreatePollEntryTag.text - case let .option(_, _, id, _, _, _, _, _): - return CreatePollEntryTag.option(id) - case let .addOption(_, _, _, id): - return CreatePollEntryTag.addOption(id) - default: - break + case .text: + return CreatePollEntryTag.text + case let .option(option): + return CreatePollEntryTag.option(option.id) + default: + break } return nil } - var stableId: Int { + var stableId: CreatePollEntryId { switch self { - case .textHeader: - return 0 - case .text: - return 1 - case .optionsHeader: - return 2 - case let .option(_, _, id, _, _, _, _, _): - return 3 + id - case .addOption: - return 1000 - case .optionsInfo: - return 1001 + case .textHeader: + return .textHeader + case .text: + return .text + case .optionsHeader: + return .optionsHeader + case let .option(option): + return .option(option.id) + case .optionsInfo: + return .optionsInfo + case .anonymousVotes: + return .anonymousVotes + case .multipleChoice: + return .multipleChoice + case .quiz: + return .quiz + case .quizInfo: + return .quizInfo } } private var sortId: Int { switch self { - case .textHeader: - return 0 - case .text: - return 1 - case .optionsHeader: - return 2 - case let .option(_, _, _, index, _, _, _, _): - return 3 + index - case .addOption: - return 1000 - case .optionsInfo: - return 1001 + case .textHeader: + return 0 + case .text: + return 1 + case .optionsHeader: + return 2 + case let .option(option): + return 3 + option.index + case .optionsInfo: + return 1001 + case .anonymousVotes: + return 1002 + case .multipleChoice: + return 1003 + case .quiz: + return 1004 + case .quizInfo: + return 1005 } } @@ -134,32 +169,49 @@ private enum CreatePollEntry: ItemListNodeEntry { func item(presentationData: ItemListPresentationData, arguments: Any) -> ListViewItem { let arguments = arguments as! CreatePollControllerArguments switch self { - case let .textHeader(theme, text, accessoryText): - return ItemListSectionHeaderItem(presentationData: presentationData, text: text, accessoryText: accessoryText, sectionId: self.section) - case let .text(theme, placeholder, text, maxLength): - return ItemListMultilineInputItem(presentationData: presentationData, text: text, placeholder: placeholder, maxLength: ItemListMultilineInputItemTextLimit(value: maxLength, display: false), sectionId: self.section, style: .blocks, textUpdated: { value in - arguments.updatePollText(value) - }, tag: CreatePollEntryTag.text) - case let .optionsHeader(theme, text): - return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section) - case let .option(theme, strings, id, _, placeholder, text, revealed, hasNext): - return CreatePollOptionItem(theme: theme, strings: strings, id: id, placeholder: placeholder, value: text, maxLength: maxOptionLength, editing: CreatePollOptionItemEditing(editable: true, hasActiveRevealControls: revealed), sectionId: self.section, setItemIdWithRevealedOptions: { id, fromId in - arguments.setItemIdWithRevealedOptions(id, fromId) - }, updated: { value in - arguments.updateOptionText(id, value) - }, next: hasNext ? { - arguments.moveToNextOption(id) - } : nil, delete: { focused in + case let .textHeader(text, accessoryText): + return ItemListSectionHeaderItem(presentationData: presentationData, text: text, accessoryText: accessoryText, sectionId: self.section) + case let .text(placeholder, text, maxLength): + return ItemListMultilineInputItem(presentationData: presentationData, text: text, placeholder: placeholder, maxLength: ItemListMultilineInputItemTextLimit(value: maxLength, display: false), sectionId: self.section, style: .blocks, textUpdated: { value in + arguments.updatePollText(value) + }, tag: CreatePollEntryTag.text) + case let .optionsHeader(text): + return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section) + case let .option(id, _, placeholder, text, revealed, hasNext, isLast, isSelected): + return CreatePollOptionItem(presentationData: presentationData, id: id, placeholder: placeholder, value: text, isSelected: isSelected, maxLength: maxOptionLength, editing: CreatePollOptionItemEditing(editable: true, hasActiveRevealControls: revealed), sectionId: self.section, setItemIdWithRevealedOptions: { id, fromId in + arguments.setItemIdWithRevealedOptions(id, fromId) + }, updated: { value in + arguments.updateOptionText(id, value) + }, next: hasNext ? { + arguments.moveToNextOption(id) + } : nil, delete: { focused in + if !isLast { arguments.removeOption(id, focused) - }, focused: { - arguments.optionFocused(id) - }, tag: CreatePollEntryTag.option(id)) - case let .addOption(theme, title, enabled, id): - return CreatePollOptionActionItem(theme: theme, title: title, enabled: enabled, tag: CreatePollEntryTag.addOption(id), sectionId: self.section, action: { - arguments.addOption() - }) - case let .optionsInfo(theme, text): - return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section) + } else { + arguments.moveToPreviousOption(id) + } + }, canDelete: !isLast, + focused: { + arguments.optionFocused(id) + }, toggleSelected: { + arguments.toggleOptionSelected(id) + }, tag: CreatePollEntryTag.option(id)) + case let .optionsInfo(text): + return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section) + case let .anonymousVotes(text, value): + return ItemListSwitchItem(presentationData: presentationData, title: text, value: value, sectionId: self.section, style: .blocks, updated: { value in + arguments.updateAnonymous(value) + }) + case let .multipleChoice(text, value, enabled): + return ItemListSwitchItem(presentationData: presentationData, title: text, value: value, enabled: enabled, sectionId: self.section, style: .blocks, updated: { value in + arguments.updateMultipleChoice(value) + }) + case let .quiz(text, value): + return ItemListSwitchItem(presentationData: presentationData, title: text, value: value, sectionId: self.section, style: .blocks, updated: { value in + arguments.updateQuiz(value) + }) + case let .quizInfo(text): + return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section) } } } @@ -167,14 +219,18 @@ private enum CreatePollEntry: ItemListNodeEntry { private struct CreatePollControllerOption: Equatable { var text: String let id: Int + var isSelected: Bool } private struct CreatePollControllerState: Equatable { var text: String = "" - var options: [CreatePollControllerOption] = [CreatePollControllerOption(text: "", id: 0), CreatePollControllerOption(text: "", id: 1)] + var options: [CreatePollControllerOption] = [CreatePollControllerOption(text: "", id: 0, isSelected: false), CreatePollControllerOption(text: "", id: 1, isSelected: false)] var nextOptionId: Int = 2 var focusOptionId: Int? var optionIdWithRevealControls: Int? + var isAnonymous: Bool = true + var isMultipleChoice: Bool = false + var isQuiz: Bool = false } private func createPollControllerEntries(presentationData: PresentationData, state: CreatePollControllerState, limitsConfiguration: LimitsConfiguration) -> [CreatePollEntry] { @@ -185,19 +241,23 @@ private func createPollControllerEntries(presentationData: PresentationData, sta let remainingCount = Int(maxTextLength) - state.text.count textLimitText = ItemListSectionHeaderAccessoryText(value: "\(remainingCount)", color: remainingCount < 0 ? .destructive : .generic) } - entries.append(.textHeader(presentationData.theme, presentationData.strings.CreatePoll_TextHeader, textLimitText)) - entries.append(.text(presentationData.theme, presentationData.strings.CreatePoll_TextPlaceholder, state.text, Int(limitsConfiguration.maxMediaCaptionLength))) - entries.append(.optionsHeader(presentationData.theme, presentationData.strings.CreatePoll_OptionsHeader)) + entries.append(.textHeader(presentationData.strings.CreatePoll_TextHeader, textLimitText)) + entries.append(.text(presentationData.strings.CreatePoll_TextPlaceholder, state.text, Int(limitsConfiguration.maxMediaCaptionLength))) + entries.append(.optionsHeader(presentationData.strings.CreatePoll_OptionsHeader)) for i in 0 ..< state.options.count { - entries.append(.option(presentationData.theme, presentationData.strings, state.options[i].id, i, presentationData.strings.CreatePoll_OptionPlaceholder, state.options[i].text, state.optionIdWithRevealControls == state.options[i].id, i != 9)) + entries.append(.option(id: state.options[i].id, index: i, placeholder: presentationData.strings.CreatePoll_OptionPlaceholder, text: state.options[i].text, revealed: state.optionIdWithRevealControls == state.options[i].id, hasNext: i != 9, isLast: i == state.options.count - 1, isSelected: state.isQuiz ? state.options[i].isSelected : nil)) } if state.options.count < 10 { - entries.append(.addOption(presentationData.theme, presentationData.strings.CreatePoll_AddOption, true, state.options.last?.id ?? -1)) - entries.append(.optionsInfo(presentationData.theme, presentationData.strings.CreatePoll_AddMoreOptions(Int32(10 - state.options.count)))) + entries.append(.optionsInfo(presentationData.strings.CreatePoll_AddMoreOptions(Int32(10 - state.options.count)))) } else { - entries.append(.optionsInfo(presentationData.theme, presentationData.strings.CreatePoll_AllOptionsAdded)) + entries.append(.optionsInfo(presentationData.strings.CreatePoll_AllOptionsAdded)) } + entries.append(.anonymousVotes(presentationData.strings.CreatePoll_Anonymous, state.isAnonymous)) + entries.append(.multipleChoice(presentationData.strings.CreatePoll_MultipleChoice, state.isMultipleChoice && !state.isQuiz, !state.isQuiz)) + entries.append(.quiz(presentationData.strings.CreatePoll_Quiz, state.isQuiz)) + entries.append(.quizInfo(presentationData.strings.CreatePoll_QuizInfo)) + return entries } @@ -212,6 +272,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple var dismissImpl: (() -> Void)? var ensureTextVisibleImpl: (() -> Void)? var ensureOptionVisibleImpl: ((Int) -> Void)? + var displayQuizTooltipImpl: (() -> Void)? let actionsDisposable = DisposableSet() @@ -234,6 +295,18 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple for i in 0 ..< state.options.count { if state.options[i].id == id { state.options[i].text = value + if !value.isEmpty && i == state.options.count - 1 { + state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId, isSelected: false)) + state.nextOptionId += 1 + } + break + } + } + if state.options.count > 2 { + for i in (1 ..< state.options.count - 1).reversed() { + if state.options[i - 1].text.isEmpty && state.options[i].text.isEmpty { + state.options.remove(at: i) + } } } return state @@ -246,7 +319,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple for i in 0 ..< state.options.count { if state.options[i].id == id { if i == state.options.count - 1 { - state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId)) + state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId, isSelected: false)) state.focusOptionId = state.nextOptionId state.nextOptionId += 1 } else { @@ -269,14 +342,32 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple return state } } - }, addOption: { + }, moveToPreviousOption: { id in + var resetFocusOptionId: Int? updateState { state in var state = state - state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId)) - state.focusOptionId = state.nextOptionId - state.nextOptionId += 1 + for i in 0 ..< state.options.count { + if state.options[i].id == id { + if i != 0 { + if state.focusOptionId == state.options[i - 1].id { + resetFocusOptionId = state.options[i - 1].id + state.focusOptionId = -1 + } else { + state.focusOptionId = state.options[i - 1].id + } + } + break + } + } return state } + if let resetFocusOptionId = resetFocusOptionId { + updateState { state in + var state = state + state.focusOptionId = resetFocusOptionId + return state + } + } }, removeOption: { id, focused in updateState { state in var state = state @@ -289,6 +380,19 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple break } } + let focusOnFirst = state.options.isEmpty + if state.options.count < 2 { + for i in 0 ..< (2 - state.options.count) { + if i == 0 && focusOnFirst { + state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId, isSelected: false)) + state.focusOptionId = state.nextOptionId + state.nextOptionId += 1 + } else { + state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId, isSelected: false)) + state.nextOptionId += 1 + } + } + } return state } }, optionFocused: { id in @@ -303,6 +407,58 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple return state } } + }, toggleOptionSelected: { id in + updateState { state in + var state = state + for i in 0 ..< state.options.count { + if state.options[i].id == id { + state.options[i].isSelected = !state.options[i].isSelected + if state.options[i].isSelected && state.isQuiz { + for j in 0 ..< state.options.count { + if i != j { + state.options[j].isSelected = false + } + } + } + break + } + } + return state + } + }, updateAnonymous: { value in + updateState { state in + var state = state + state.isAnonymous = value + return state + } + }, updateMultipleChoice: { value in + updateState { state in + var state = state + state.isMultipleChoice = value + return state + } + }, updateQuiz: { value in + updateState { state in + var state = state + state.isQuiz = value + if value { + state.isMultipleChoice = false + var foundSelectedOption = false + for i in 0 ..< state.options.count { + if state.options[i].isSelected { + if !foundSelectedOption { + foundSelectedOption = true + } else { + state.options[i].isSelected = false + } + } + } + } + return state + } + if value { + displayQuizTooltipImpl?() + } }) let previousOptionIds = Atomic<[Int]?>(value: nil) @@ -320,6 +476,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple enabled = false } var nonEmptyOptionCount = 0 + var hasSelectedOptions = false for option in state.options { if !option.text.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { nonEmptyOptionCount += 1 @@ -327,6 +484,19 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple if option.text.count > maxOptionLength { enabled = false } + if option.isSelected { + hasSelectedOptions = true + } + if state.isQuiz { + if option.text.isEmpty && option.isSelected { + enabled = false + } + } + } + if state.isQuiz { + if !hasSelectedOptions { + enabled = false + } } if nonEmptyOptionCount < 2 { enabled = false @@ -335,13 +505,30 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple rightNavigationButton = ItemListNavigationButton(content: .text(presentationData.strings.CreatePoll_Create), style: .bold, enabled: enabled, action: { let state = stateValue.with { $0 } var options: [TelegramMediaPollOption] = [] + var correctAnswers: [Data]? for i in 0 ..< state.options.count { let optionText = state.options[i].text.trimmingCharacters(in: .whitespacesAndNewlines) if !optionText.isEmpty { - options.append(TelegramMediaPollOption(text: optionText, opaqueIdentifier: "\(i)".data(using: .utf8)!)) + let optionData = "\(i)".data(using: .utf8)! + options.append(TelegramMediaPollOption(text: optionText, opaqueIdentifier: optionData)) + if state.isQuiz && state.options[i].isSelected { + correctAnswers = [optionData] + } } } - completion(.message(text: "", attributes: [], mediaReference: .standalone(media: TelegramMediaPoll(pollId: MediaId(namespace: Namespaces.Media.LocalPoll, id: arc4random64()), text: processPollText(state.text), options: options, results: TelegramMediaPollResults(voters: nil, totalVoters: nil), isClosed: false)), replyToMessageId: nil, localGroupingKey: nil)) + let publicity: TelegramMediaPollPublicity + if state.isAnonymous { + publicity = .anonymous + } else { + publicity = .public + } + let kind: TelegramMediaPollKind + if state.isQuiz { + kind = .quiz + } else { + kind = .poll(multipleAnswers: state.isMultipleChoice) + } + completion(.message(text: "", attributes: [], mediaReference: .standalone(media: TelegramMediaPoll(pollId: MediaId(namespace: Namespaces.Media.LocalPoll, id: arc4random64()), publicity: publicity, kind: kind, text: processPollText(state.text), options: options, correctAnswers: correctAnswers, results: TelegramMediaPollResults(voters: nil, totalVoters: nil, recentVoters: []), isClosed: false)), replyToMessageId: nil, localGroupingKey: nil)) dismissImpl?() }) @@ -372,7 +559,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple if let focusOptionId = state.focusOptionId { focusItemTag = CreatePollEntryTag.option(focusOptionId) if focusOptionId == state.options.last?.id { - ensureVisibleItemTag = CreatePollEntryTag.addOption(focusOptionId) + ensureVisibleItemTag = nil } else { ensureVisibleItemTag = focusItemTag } @@ -382,7 +569,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple } let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(presentationData.strings.CreatePoll_Title), leftNavigationButton: leftNavigationButton, rightNavigationButton: rightNavigationButton, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) - let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: createPollControllerEntries(presentationData: presentationData, state: state, limitsConfiguration: limitsConfiguration), style: .blocks, focusItemTag: focusItemTag, ensureVisibleItemTag: ensureVisibleItemTag, animateChanges: previousIds != nil && previousIds != optionIds) + let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: createPollControllerEntries(presentationData: presentationData, state: state, limitsConfiguration: limitsConfiguration), style: .blocks, focusItemTag: focusItemTag, ensureVisibleItemTag: ensureVisibleItemTag, animateChanges: previousIds != nil) return (controllerState, (listState, arguments)) } @@ -429,15 +616,6 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple var resultItemNode: ListViewItemNode? let state = stateValue.with({ $0 }) if state.options.last?.id == id { - let _ = controller.frameForItemNode({ itemNode in - if let itemNode = itemNode as? ItemListItemNode { - if let tag = itemNode.tag, tag.isEqual(to: CreatePollEntryTag.addOption(id)) { - resultItemNode = itemNode as? ListViewItemNode - return true - } - } - return false - }) } if resultItemNode == nil { let _ = controller.frameForItemNode({ itemNode in @@ -456,19 +634,42 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple } }) } - - controller.setReorderEntry({ (fromIndex: Int, toIndex: Int, entries: [CreatePollEntry]) -> Void in - let fromEntry = entries[fromIndex] - guard case let .option(_, _, id, _, _, _, _, _) = fromEntry else { + displayQuizTooltipImpl = { [weak controller] in + guard let controller = controller else { return } + var resultItemNode: CreatePollOptionItemNode? + let _ = controller.frameForItemNode({ itemNode in + if resultItemNode == nil, let itemNode = itemNode as? CreatePollOptionItemNode { + resultItemNode = itemNode + return true + } + return false + }) + if let resultItemNode = resultItemNode { + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + let tooltipController = TooltipController(content: .text(presentationData.strings.CreatePoll_QuizTip), baseFontSize: presentationData.listsFontSize.baseDisplaySize, dismissByTapOutside: true) + controller.present(tooltipController, in: .window(.root), with: TooltipControllerPresentationArguments(sourceViewAndRect: { [weak resultItemNode] in + if let resultItemNode = resultItemNode { + return (resultItemNode.view, CGRect(origin: CGPoint(x: 0.0, y: 4.0), size: CGSize(width: 54.0, height: resultItemNode.bounds.height - 8.0))) + } + return nil + })) + } + } + controller.setReorderEntry({ (fromIndex: Int, toIndex: Int, entries: [CreatePollEntry]) -> Void in + let fromEntry = entries[fromIndex] + guard case let .option(option) = fromEntry else { + return + } + let id = option.id var referenceId: Int? var beforeAll = false var afterAll = false if toIndex < entries.count { switch entries[toIndex] { - case let .option(_, _, toId, _, _, _, _, _): - referenceId = toId + case let .option(toOption): + referenceId = toOption.id default: if entries[toIndex] < fromEntry { beforeAll = true diff --git a/submodules/ComposePollUI/Sources/CreatePollOptionActionItem.swift b/submodules/ComposePollUI/Sources/CreatePollOptionActionItem.swift index ba1dae70be..e7cc231c00 100644 --- a/submodules/ComposePollUI/Sources/CreatePollOptionActionItem.swift +++ b/submodules/ComposePollUI/Sources/CreatePollOptionActionItem.swift @@ -170,7 +170,7 @@ class CreatePollOptionActionItemNode: ListViewItemNode, ItemListItemNode { strongSelf.iconNode.image = updatedIcon } if let image = strongSelf.iconNode.image { - transition.updateFrame(node: strongSelf.iconNode, frame: CGRect(origin: CGPoint(x: params.leftInset + floor((leftInset - params.leftInset - image.size.width) / 2.0 - 1.0), y: floor((contentSize.height - image.size.height) / 2.0)), size: image.size)) + transition.updateFrame(node: strongSelf.iconNode, frame: CGRect(origin: CGPoint(x: params.leftInset + floor((leftInset - params.leftInset - image.size.width) / 2.0 - 3.0), y: floor((contentSize.height - image.size.height) / 2.0)), size: image.size)) } if strongSelf.backgroundNode.supernode == nil { diff --git a/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift b/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift index f322e1c478..91fdbdff70 100644 --- a/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift +++ b/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift @@ -6,6 +6,7 @@ import SwiftSignalKit import TelegramPresentationData import ItemListUI import PresentationDataUtils +import CheckNode struct CreatePollOptionItemEditing { let editable: Bool @@ -13,11 +14,11 @@ struct CreatePollOptionItemEditing { } class CreatePollOptionItem: ListViewItem, ItemListItem { - let theme: PresentationTheme - let strings: PresentationStrings + let presentationData: ItemListPresentationData let id: Int let placeholder: String let value: String + let isSelected: Bool? let maxLength: Int let editing: CreatePollOptionItemEditing let sectionId: ItemListSectionId @@ -25,15 +26,17 @@ class CreatePollOptionItem: ListViewItem, ItemListItem { let updated: (String) -> Void let next: (() -> Void)? let delete: (Bool) -> Void + let canDelete: Bool let focused: () -> Void + let toggleSelected: () -> Void let tag: ItemListItemTag? - init(theme: PresentationTheme, strings: PresentationStrings, id: Int, placeholder: String, value: String, maxLength: Int, editing: CreatePollOptionItemEditing, sectionId: ItemListSectionId, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, updated: @escaping (String) -> Void, next: (() -> Void)?, delete: @escaping (Bool) -> Void, focused: @escaping () -> Void, tag: ItemListItemTag?) { - self.theme = theme - self.strings = strings + init(presentationData: ItemListPresentationData, id: Int, placeholder: String, value: String, isSelected: Bool?, maxLength: Int, editing: CreatePollOptionItemEditing, sectionId: ItemListSectionId, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, updated: @escaping (String) -> Void, next: (() -> Void)?, delete: @escaping (Bool) -> Void, canDelete: Bool, focused: @escaping () -> Void, toggleSelected: @escaping () -> Void, tag: ItemListItemTag?) { + self.presentationData = presentationData self.id = id self.placeholder = placeholder self.value = value + self.isSelected = isSelected self.maxLength = maxLength self.editing = editing self.sectionId = sectionId @@ -41,7 +44,9 @@ class CreatePollOptionItem: ListViewItem, ItemListItem { self.updated = updated self.next = next self.delete = delete + self.canDelete = canDelete self.focused = focused + self.toggleSelected = toggleSelected self.tag = tag } @@ -55,7 +60,7 @@ class CreatePollOptionItem: ListViewItem, ItemListItem { Queue.mainQueue().async { completion(node, { - return (nil, { _ in apply() }) + return (nil, { _ in apply(.None) }) }) } } @@ -70,7 +75,7 @@ class CreatePollOptionItem: ListViewItem, ItemListItem { let (layout, apply) = makeLayout(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) Queue.mainQueue().async { completion(layout, { _ in - apply() + apply(animation) }) } } @@ -84,17 +89,19 @@ class CreatePollOptionItem: ListViewItem, ItemListItem { private let titleFont = Font.regular(15.0) class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, ItemListItemFocusableNode, ASEditableTextNodeDelegate { + private let containerNode: ASDisplayNode private let backgroundNode: ASDisplayNode private let topStripeNode: ASDisplayNode private let bottomStripeNode: ASDisplayNode private let maskNode: ASImageNode + private var checkNode: CheckNode? + private let textClippingNode: ASDisplayNode private let textNode: EditableTextNode private let measureTextNode: TextNode private let textLimitNode: TextNode - private let editableControlNode: ItemListEditableControlNode private let reorderControlNode: ItemListEditableReorderControlNode private var item: CreatePollOptionItem? @@ -104,7 +111,14 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, return self.item?.tag } + override var controlsContainer: ASDisplayNode { + return self.containerNode + } + init() { + self.containerNode = ASDisplayNode() + self.containerNode.clipsToBounds = true + self.backgroundNode = ASDisplayNode() self.backgroundNode.isLayerBacked = true self.backgroundNode.backgroundColor = .white @@ -117,7 +131,6 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, self.maskNode = ASImageNode() - self.editableControlNode = ItemListEditableControlNode() self.reorderControlNode = ItemListEditableReorderControlNode() self.textClippingNode = ASDisplayNode() @@ -131,21 +144,17 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, super.init(layerBacked: false, dynamicBounce: false, rotated: false, seeThrough: false) - self.clipsToBounds = true + self.addSubnode(self.containerNode) self.textClippingNode.addSubnode(self.textNode) - self.addSubnode(self.textClippingNode) + self.containerNode.addSubnode(self.textClippingNode) - self.addSubnode(self.editableControlNode) - self.addSubnode(self.reorderControlNode) - self.addSubnode(self.textLimitNode) - - self.editableControlNode.tapped = { [weak self] in - if let strongSelf = self { - strongSelf.setRevealOptionsOpened(true, animated: true) - strongSelf.revealOptionsInteractivelyOpened() - } - } + self.containerNode.addSubnode(self.reorderControlNode) + self.containerNode.addSubnode(self.textLimitNode) + } + + @objc private func checkNodePressed() { + self.item?.toggleSelected() } override func didLoad() { @@ -153,7 +162,7 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, var textColor: UIColor = .black if let item = self.item { - textColor = item.theme.list.itemPrimaryTextColor + textColor = item.presentationData.theme.list.itemPrimaryTextColor } self.textNode.typingAttributes = [NSAttributedString.Key.font.rawValue: Font.regular(17.0), NSAttributedString.Key.foregroundColor.rawValue: textColor] self.textNode.clipsToBounds = true @@ -177,7 +186,7 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, if updatedText.count == 1 { updatedText = "" } - let updatedAttributedText = NSAttributedString(string: updatedText, font: Font.regular(17.0), textColor: item.theme.list.itemPrimaryTextColor) + let updatedAttributedText = NSAttributedString(string: updatedText, font: Font.regular(17.0), textColor: item.presentationData.theme.list.itemPrimaryTextColor) self.textNode.attributedText = updatedAttributedText self.editableTextNodeDidUpdateText(editableTextNode) } @@ -201,7 +210,7 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, hadReturn = true updatedText = updatedText.replacingOccurrences(of: "\n", with: " ") } - let updatedAttributedText = NSAttributedString(string: updatedText, font: Font.regular(17.0), textColor: item.theme.list.itemPrimaryTextColor) + let updatedAttributedText = NSAttributedString(string: updatedText, font: Font.regular(17.0), textColor: item.presentationData.theme.list.itemPrimaryTextColor) if text.string != updatedAttributedText.string { self.textNode.attributedText = updatedAttributedText } @@ -220,8 +229,7 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, self.item?.delete(editableTextNode.isFirstResponder()) } - func asyncLayout() -> (_ item: CreatePollOptionItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, () -> Void) { - let editableControlLayout = ItemListEditableControlNode.asyncLayout(self.editableControlNode) + func asyncLayout() -> (_ item: CreatePollOptionItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, (ListViewItemUpdateAnimation) -> Void) { let reorderControlLayout = ItemListEditableReorderControlNode.asyncLayout(self.reorderControlNode) let makeTextLayout = TextNode.asyncLayout(self.measureTextNode) let makeTextLimitLayout = TextNode.asyncLayout(self.textLimitNode) @@ -231,32 +239,31 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, return { item, params, neighbors in var updatedTheme: PresentationTheme? - if currentItem?.theme !== item.theme { - updatedTheme = item.theme + if currentItem?.presentationData.theme !== item.presentationData.theme { + updatedTheme = item.presentationData.theme } - let controlSizeAndApply = editableControlLayout(item.theme, false) - let reorderSizeAndApply = reorderControlLayout(item.theme) + let reorderSizeAndApply = reorderControlLayout(item.presentationData.theme) let separatorHeight = UIScreenPixel let insets = itemListNeighborsGroupedInsets(neighbors) - let leftInset: CGFloat = 60.0 + params.leftInset + let leftInset: CGFloat = params.leftInset + (item.isSelected != nil ? 60.0 : 16.0) let rightInset: CGFloat = 44.0 + params.rightInset let textLength = item.value.count let displayTextLimit = textLength > item.maxLength * 70 / 100 let remainingCount = item.maxLength - textLength - let (textLimitLayout, textLimitApply) = makeTextLimitLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: "\(remainingCount)", font: Font.regular(13.0), textColor: remainingCount < 0 ? item.theme.list.itemDestructiveColor : item.theme.list.itemSecondaryTextColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: 100.0, height: .greatestFiniteMagnitude), alignment: .left, lineSpacing: 0.0, cutout: nil, insets: UIEdgeInsets())) + let (textLimitLayout, textLimitApply) = makeTextLimitLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: "\(remainingCount)", font: Font.regular(13.0), textColor: remainingCount < 0 ? item.presentationData.theme.list.itemDestructiveColor : item.presentationData.theme.list.itemSecondaryTextColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: 100.0, height: .greatestFiniteMagnitude), alignment: .left, lineSpacing: 0.0, cutout: nil, insets: UIEdgeInsets())) var measureText = item.value if measureText.hasSuffix("\n") || measureText.isEmpty { measureText += "|" } let attributedMeasureText = NSAttributedString(string: measureText, font: Font.regular(17.0), textColor: .black) - let attributedText = NSAttributedString(string: item.value, font: Font.regular(17.0), textColor: item.theme.list.itemPrimaryTextColor) + let attributedText = NSAttributedString(string: item.value, font: Font.regular(17.0), textColor: item.presentationData.theme.list.itemPrimaryTextColor) let (textLayout, textApply) = makeTextLayout(TextNodeLayoutArguments(attributedString: attributedMeasureText, backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, lineSpacing: 0.05, cutout: nil, insets: UIEdgeInsets())) let textTopInset: CGFloat = 11.0 @@ -265,21 +272,31 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, let contentSize = CGSize(width: params.width, height: textLayout.size.height + textTopInset + textBottomInset) let layout = ListViewItemNodeLayout(contentSize: contentSize, insets: insets) - let attributedPlaceholderText = NSAttributedString(string: item.placeholder, font: Font.regular(17.0), textColor: item.theme.list.itemPlaceholderTextColor) + let attributedPlaceholderText = NSAttributedString(string: item.placeholder, font: Font.regular(17.0), textColor: item.presentationData.theme.list.itemPlaceholderTextColor) - return (layout, { [weak self] in + return (layout, { [weak self] animation in if let strongSelf = self { + let transition: ContainedViewLayoutTransition + switch animation { + case .System: + transition = .animated(duration: 0.3, curve: .spring) + default: + transition = .immediate + } + strongSelf.item = item strongSelf.layoutParams = params + strongSelf.containerNode.frame = CGRect(origin: CGPoint(), size: layout.contentSize) + if let _ = updatedTheme { - strongSelf.topStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor - strongSelf.bottomStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor - strongSelf.backgroundNode.backgroundColor = item.theme.list.itemBlocksBackgroundColor + strongSelf.topStripeNode.backgroundColor = item.presentationData.theme.list.itemBlocksSeparatorColor + strongSelf.bottomStripeNode.backgroundColor = item.presentationData.theme.list.itemBlocksSeparatorColor + strongSelf.backgroundNode.backgroundColor = item.presentationData.theme.list.itemBlocksBackgroundColor if strongSelf.isNodeLoaded { - strongSelf.textNode.typingAttributes = [NSAttributedString.Key.font.rawValue: Font.regular(17.0), NSAttributedString.Key.foregroundColor.rawValue: item.theme.list.itemPrimaryTextColor] - strongSelf.textNode.tintColor = item.theme.list.itemAccentColor + strongSelf.textNode.typingAttributes = [NSAttributedString.Key.font.rawValue: Font.regular(17.0), NSAttributedString.Key.foregroundColor.rawValue: item.presentationData.theme.list.itemPrimaryTextColor] + strongSelf.textNode.tintColor = item.presentationData.theme.list.itemAccentColor } } @@ -325,54 +342,72 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, strongSelf.textNode.attributedPlaceholderText = attributedPlaceholderText } - strongSelf.textNode.keyboardAppearance = item.theme.rootController.keyboardColor.keyboardAppearance + strongSelf.textNode.keyboardAppearance = item.presentationData.theme.rootController.keyboardColor.keyboardAppearance - strongSelf.textClippingNode.frame = CGRect(origin: CGPoint(x: revealOffset + leftInset, y: textTopInset), size: CGSize(width: params.width - leftInset - params.rightInset, height: textLayout.size.height)) - strongSelf.textNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: params.width - leftInset - rightInset, height: textLayout.size.height + 1.0)) + let checkSize = CGSize(width: 32.0, height: 32.0) + let checkFrame = CGRect(origin: CGPoint(x: params.leftInset + revealOffset + 11.0, y: floor((layout.contentSize.height - checkSize.height) / 2.0)), size: checkSize) + if let isSelected = item.isSelected { + if let checkNode = strongSelf.checkNode { + transition.updateFrame(node: checkNode, frame: checkFrame) + checkNode.setIsChecked(isSelected, animated: true) + } else { + let checkNode = CheckNode(strokeColor: item.presentationData.theme.list.itemCheckColors.strokeColor, fillColor: item.presentationData.theme.list.itemSwitchColors.positiveColor, foregroundColor: item.presentationData.theme.list.itemCheckColors.foregroundColor, style: .plain) + checkNode.addTarget(target: strongSelf, action: #selector(strongSelf.checkNodePressed)) + checkNode.setIsChecked(isSelected, animated: false) + strongSelf.checkNode = checkNode + strongSelf.containerNode.addSubnode(checkNode) + checkNode.frame = checkFrame + transition.animatePositionAdditive(node: checkNode, offset: CGPoint(x: -checkFrame.maxX, y: 0.0)) + } + } else if let checkNode = strongSelf.checkNode { + strongSelf.checkNode = nil + transition.updateFrame(node: checkNode, frame: checkFrame.offsetBy(dx: -checkFrame.maxX, dy: 0.0), completion: { [weak checkNode] _ in + checkNode?.removeFromSupernode() + }) + } + + transition.updateFrame(node: strongSelf.textClippingNode, frame: CGRect(origin: CGPoint(x: revealOffset + leftInset, y: textTopInset), size: CGSize(width: params.width - leftInset - params.rightInset, height: textLayout.size.height))) + transition.updateFrame(node: strongSelf.textNode, frame: CGRect(origin: CGPoint(), size: CGSize(width: params.width - leftInset - rightInset, height: textLayout.size.height + 1.0))) if strongSelf.backgroundNode.supernode == nil { - strongSelf.insertSubnode(strongSelf.backgroundNode, at: 0) + strongSelf.containerNode.insertSubnode(strongSelf.backgroundNode, at: 0) } if strongSelf.topStripeNode.supernode == nil { - strongSelf.insertSubnode(strongSelf.topStripeNode, at: 1) + strongSelf.containerNode.insertSubnode(strongSelf.topStripeNode, at: 1) } if strongSelf.bottomStripeNode.supernode == nil { - strongSelf.insertSubnode(strongSelf.bottomStripeNode, at: 2) + strongSelf.containerNode.insertSubnode(strongSelf.bottomStripeNode, at: 2) } if strongSelf.maskNode.supernode == nil { - strongSelf.insertSubnode(strongSelf.maskNode, at: 3) + strongSelf.containerNode.insertSubnode(strongSelf.maskNode, at: 3) } let hasCorners = itemListHasRoundedBlockLayout(params) var hasTopCorners = false var hasBottomCorners = false switch neighbors.top { - case .sameSection(false): - strongSelf.topStripeNode.isHidden = true - default: - hasTopCorners = true - strongSelf.topStripeNode.isHidden = hasCorners + case .sameSection(false): + strongSelf.topStripeNode.isHidden = true + default: + hasTopCorners = true + strongSelf.topStripeNode.isHidden = hasCorners } let bottomStripeInset: CGFloat switch neighbors.bottom { - case .sameSection(false): - bottomStripeInset = leftInset - default: - bottomStripeInset = 0.0 - hasBottomCorners = true - strongSelf.bottomStripeNode.isHidden = hasCorners + case .sameSection(false): + bottomStripeInset = leftInset + default: + bottomStripeInset = 0.0 + hasBottomCorners = true + strongSelf.bottomStripeNode.isHidden = hasCorners } - strongSelf.maskNode.image = hasCorners ? PresentationResourcesItemList.cornersImage(item.theme, top: hasTopCorners, bottom: hasBottomCorners) : nil + strongSelf.maskNode.image = hasCorners ? PresentationResourcesItemList.cornersImage(item.presentationData.theme, top: hasTopCorners, bottom: hasBottomCorners) : nil strongSelf.backgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: params.width, height: contentSize.height + min(insets.top, separatorHeight) + min(insets.bottom, separatorHeight))) strongSelf.maskNode.frame = strongSelf.backgroundNode.frame.insetBy(dx: params.leftInset, dy: 0.0) strongSelf.topStripeNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: layout.contentSize.width, height: separatorHeight)) - strongSelf.bottomStripeNode.frame = CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height - UIScreenPixel), size: CGSize(width: layout.contentSize.width - bottomStripeInset, height: separatorHeight)) - - let _ = controlSizeAndApply.1(layout.contentSize.height) - let editableControlFrame = CGRect(origin: CGPoint(x: params.leftInset + 6.0 + revealOffset, y: 0.0), size: CGSize(width: controlSizeAndApply.0, height: contentSize.height)) - strongSelf.editableControlNode.frame = editableControlFrame + transition.updateFrame(node: strongSelf.bottomStripeNode, frame: CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height - UIScreenPixel), size: CGSize(width: layout.contentSize.width - bottomStripeInset, height: separatorHeight))) let _ = reorderSizeAndApply.1(layout.contentSize.height, displayTextLimit && layout.contentSize.height <= 44.0) let reorderControlFrame = CGRect(origin: CGPoint(x: params.width + revealOffset - params.rightInset - reorderSizeAndApply.0, y: 0.0), size: CGSize(width: reorderSizeAndApply.0, height: layout.contentSize.height)) @@ -384,7 +419,7 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, strongSelf.updateLayout(size: layout.contentSize, leftInset: params.leftInset, rightInset: params.rightInset) - strongSelf.setRevealOptions((left: [], right: [ItemListRevealOption(key: 0, title: item.strings.Common_Delete, icon: .none, color: item.theme.list.itemDisclosureActions.destructive.fillColor, textColor: item.theme.list.itemDisclosureActions.destructive.foregroundColor)])) + strongSelf.setRevealOptions((left: [], right: item.canDelete ? [ItemListRevealOption(key: 0, title: item.presentationData.strings.Common_Delete, icon: .none, color: item.presentationData.theme.list.itemDisclosureActions.destructive.fillColor, textColor: item.presentationData.theme.list.itemDisclosureActions.destructive.foregroundColor)] : [])) } }) } @@ -393,18 +428,20 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, override func updateRevealOffset(offset: CGFloat, transition: ContainedViewLayoutTransition) { super.updateRevealOffset(offset: offset, transition: transition) - guard let params = self.layoutParams else { + guard let params = self.layoutParams, let item = self.item else { return } let revealOffset = offset let leftInset: CGFloat - leftInset = 60.0 + params.leftInset + leftInset = params.leftInset + (item.isSelected != nil ? 60.0 : 16.0) - var controlFrame = self.editableControlNode.frame - controlFrame.origin.x = params.leftInset + 6.0 + revealOffset - transition.updateFrame(node: self.editableControlNode, frame: controlFrame) + if let checkNode = self.checkNode { + var checkNodeFrame = checkNode.frame + checkNodeFrame.origin.x = params.leftInset + 11.0 + revealOffset + transition.updateFrame(node: checkNode, frame: checkNodeFrame) + } var reorderFrame = self.reorderControlNode.frame reorderFrame.origin.x = params.width + revealOffset - params.rightInset - reorderFrame.width @@ -448,5 +485,7 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, var separatorFrame = self.bottomStripeNode.frame separatorFrame.origin.y = currentValue - UIScreenPixel self.bottomStripeNode.frame = separatorFrame + + self.containerNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: self.containerNode.bounds.width, height: currentValue)) } } diff --git a/submodules/Display/Display/ListView.swift b/submodules/Display/Display/ListView.swift index 5330a53cb7..111982ef98 100644 --- a/submodules/Display/Display/ListView.swift +++ b/submodules/Display/Display/ListView.swift @@ -2011,7 +2011,11 @@ open class ListView: ASDisplayNode, UIScrollViewAccessibilityDelegate, UIGesture node.addHeightAnimation(0.0, duration: insertionAnimationDuration * UIView.animationDurationFactor(), beginAt: timestamp) } if node.animationForKey("apparentHeight") == nil || !(node is ListViewTempItemNode) { - node.addApparentHeightAnimation(0.0, duration: insertionAnimationDuration * UIView.animationDurationFactor(), beginAt: timestamp) + node.addApparentHeightAnimation(0.0, duration: insertionAnimationDuration * UIView.animationDurationFactor(), beginAt: timestamp, update: { [weak node] progress, currentValue in + if let node = node { + node.animateFrameTransition(progress, currentValue) + } + }) } node.animateRemoved(timestamp, duration: insertionAnimationDuration * UIView.animationDurationFactor()) } else if animated { @@ -3007,21 +3011,25 @@ open class ListView: ASDisplayNode, UIScrollViewAccessibilityDelegate, UIGesture let flashing = self.headerItemsAreFlashing() - let addHeader: (_ id: Int64, _ upperBound: CGFloat, _ lowerBound: CGFloat, _ item: ListViewItemHeader, _ hasValidNodes: Bool) -> Void = { id, upperBound, lowerBound, item, hasValidNodes in + func addHeader(id: Int64, upperBound: CGFloat, upperBoundEdge: CGFloat, lowerBound: CGFloat, item: ListViewItemHeader, hasValidNodes: Bool) { let itemHeaderHeight: CGFloat = item.height let headerFrame: CGRect let stickLocationDistanceFactor: CGFloat let stickLocationDistance: CGFloat switch item.stickDirection { - case .top: - headerFrame = CGRect(origin: CGPoint(x: 0.0, y: min(max(upperDisplayBound, upperBound), lowerBound - itemHeaderHeight)), size: CGSize(width: self.visibleSize.width, height: itemHeaderHeight)) - stickLocationDistance = headerFrame.minY - upperBound - stickLocationDistanceFactor = max(0.0, min(1.0, stickLocationDistance / itemHeaderHeight)) - case .bottom: - headerFrame = CGRect(origin: CGPoint(x: 0.0, y: max(upperBound, min(lowerBound, lowerDisplayBound) - itemHeaderHeight)), size: CGSize(width: self.visibleSize.width, height: itemHeaderHeight)) - stickLocationDistance = lowerBound - headerFrame.maxY - stickLocationDistanceFactor = max(0.0, min(1.0, stickLocationDistance / itemHeaderHeight)) + case .top: + headerFrame = CGRect(origin: CGPoint(x: 0.0, y: min(max(upperDisplayBound, upperBound), lowerBound - itemHeaderHeight)), size: CGSize(width: self.visibleSize.width, height: itemHeaderHeight)) + stickLocationDistance = headerFrame.minY - upperBound + stickLocationDistanceFactor = max(0.0, min(1.0, stickLocationDistance / itemHeaderHeight)) + case .topEdge: + headerFrame = CGRect(origin: CGPoint(x: 0.0, y: min(max(upperDisplayBound, upperBoundEdge - itemHeaderHeight), lowerBound - itemHeaderHeight)), size: CGSize(width: self.visibleSize.width, height: itemHeaderHeight)) + stickLocationDistance = headerFrame.minY - upperBoundEdge - itemHeaderHeight + stickLocationDistanceFactor = max(0.0, min(1.0, stickLocationDistance / itemHeaderHeight)) + case .bottom: + headerFrame = CGRect(origin: CGPoint(x: 0.0, y: max(upperBound, min(lowerBound, lowerDisplayBound) - itemHeaderHeight)), size: CGSize(width: self.visibleSize.width, height: itemHeaderHeight)) + stickLocationDistance = lowerBound - headerFrame.maxY + stickLocationDistanceFactor = max(0.0, min(1.0, stickLocationDistance / itemHeaderHeight)) } visibleHeaderNodes.insert(id) if let headerNode = self.itemHeaderNodes[id] { @@ -3092,31 +3100,32 @@ open class ListView: ASDisplayNode, UIScrollViewAccessibilityDelegate, UIGesture } } - var previousHeader: (Int64, CGFloat, CGFloat, ListViewItemHeader, Bool)? + var previousHeader: (id: Int64, upperBound: CGFloat, upperBoundEdge: CGFloat, lowerBound: CGFloat, item: ListViewItemHeader, hasValidNodes: Bool)? for itemNode in self.itemNodes { let itemFrame = itemNode.apparentFrame + let itemTopInset = itemNode.insets.top if let itemHeader = itemNode.header() { - if let (previousHeaderId, previousUpperBound, previousLowerBound, previousHeaderItem, hasValidNodes) = previousHeader { + if let (previousHeaderId, previousUpperBound, previousUpperBoundEdge, previousLowerBound, previousHeaderItem, hasValidNodes) = previousHeader { if previousHeaderId == itemHeader.id { - previousHeader = (previousHeaderId, previousUpperBound, itemFrame.maxY, previousHeaderItem, hasValidNodes || itemNode.index != nil) + previousHeader = (previousHeaderId, previousUpperBound, previousUpperBoundEdge, itemFrame.maxY, previousHeaderItem, hasValidNodes || itemNode.index != nil) } else { - addHeader(previousHeaderId, previousUpperBound, previousLowerBound, previousHeaderItem, hasValidNodes) + addHeader(id: previousHeaderId, upperBound: previousUpperBound, upperBoundEdge: previousUpperBoundEdge, lowerBound: previousLowerBound, item: previousHeaderItem, hasValidNodes: hasValidNodes) - previousHeader = (itemHeader.id, itemFrame.minY, itemFrame.maxY, itemHeader, itemNode.index != nil) + previousHeader = (itemHeader.id, itemFrame.minY, itemFrame.minY + itemTopInset, itemFrame.maxY, itemHeader, itemNode.index != nil) } } else { - previousHeader = (itemHeader.id, itemFrame.minY, itemFrame.maxY, itemHeader, itemNode.index != nil) + previousHeader = (itemHeader.id, itemFrame.minY, itemFrame.minY + itemTopInset, itemFrame.maxY, itemHeader, itemNode.index != nil) } } else { - if let (previousHeaderId, previousUpperBound, previousLowerBound, previousHeaderItem, hasValidNodes) = previousHeader { - addHeader(previousHeaderId, previousUpperBound, previousLowerBound, previousHeaderItem, hasValidNodes) + if let (previousHeaderId, previousUpperBound, previousUpperBoundEdge, previousLowerBound, previousHeaderItem, hasValidNodes) = previousHeader { + addHeader(id: previousHeaderId, upperBound: previousUpperBound, upperBoundEdge: previousUpperBoundEdge, lowerBound: previousLowerBound, item: previousHeaderItem, hasValidNodes: hasValidNodes) } previousHeader = nil } } - if let (previousHeaderId, previousUpperBound, previousLowerBound, previousHeaderItem, hasValidNodes) = previousHeader { - addHeader(previousHeaderId, previousUpperBound, previousLowerBound, previousHeaderItem, hasValidNodes) + if let (previousHeaderId, previousUpperBound, previousUpperBoundEdge, previousLowerBound, previousHeaderItem, hasValidNodes) = previousHeader { + addHeader(id: previousHeaderId, upperBound: previousUpperBound, upperBoundEdge: previousUpperBoundEdge, lowerBound: previousLowerBound, item: previousHeaderItem, hasValidNodes: hasValidNodes) } let currentIds = Set(self.itemHeaderNodes.keys) diff --git a/submodules/Display/Display/ListViewItemHeader.swift b/submodules/Display/Display/ListViewItemHeader.swift index 1c985bc621..fb288b3187 100644 --- a/submodules/Display/Display/ListViewItemHeader.swift +++ b/submodules/Display/Display/ListViewItemHeader.swift @@ -4,6 +4,7 @@ import AsyncDisplayKit public enum ListViewItemHeaderStickDirection { case top + case topEdge case bottom } diff --git a/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.swift b/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.swift index 91e9fdf027..7986570906 100644 --- a/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.swift +++ b/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.swift @@ -150,15 +150,15 @@ class ItemListPeerActionItemNode: ListViewItemNode { updatedTheme = item.presentationData.theme } let leftInset: CGFloat - let vertcalInset: CGFloat + let verticalInset: CGFloat let verticalOffset: CGFloat switch item.height { case .generic: - vertcalInset = 11.0 + verticalInset = 11.0 verticalOffset = 0.0 leftInset = 59.0 + params.leftInset case .peerList: - vertcalInset = 14.0 + verticalInset = 14.0 verticalOffset = 0.0 leftInset = 65.0 + params.leftInset } @@ -170,7 +170,7 @@ class ItemListPeerActionItemNode: ListViewItemNode { let separatorHeight = UIScreenPixel let insets = itemListNeighborsGroupedInsets(neighbors) - let contentSize = CGSize(width: params.width, height: titleLayout.size.height + vertcalInset * 2.0) + let contentSize = CGSize(width: params.width, height: titleLayout.size.height + verticalInset * 2.0) let layout = ListViewItemNodeLayout(contentSize: contentSize, insets: insets) let layoutSize = layout.size @@ -247,7 +247,7 @@ class ItemListPeerActionItemNode: ListViewItemNode { strongSelf.topStripeNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: layoutSize.width, height: separatorHeight)) transition.updateFrame(node: strongSelf.bottomStripeNode, frame: CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height + bottomStripeOffset), size: CGSize(width: layoutSize.width - bottomStripeInset, height: separatorHeight))) - transition.updateFrame(node: strongSelf.titleNode, frame: CGRect(origin: CGPoint(x: leftInset + editingOffset, y: vertcalInset + verticalOffset), size: titleLayout.size)) + transition.updateFrame(node: strongSelf.titleNode, frame: CGRect(origin: CGPoint(x: leftInset + editingOffset, y: verticalInset + verticalOffset), size: titleLayout.size)) strongSelf.highlightedBackgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -UIScreenPixel), size: CGSize(width: params.width, height: layout.contentSize.height + UIScreenPixel + UIScreenPixel)) } diff --git a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift index c8018f245a..b499b3522f 100644 --- a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift +++ b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift @@ -135,8 +135,9 @@ public final class ItemListPeerItem: ListViewItem, ItemListItem { let hasTopGroupInset: Bool let noInsets: Bool public let tag: ItemListItemTag? + let header: ListViewItemHeader? - public init(presentationData: ItemListPresentationData, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, context: AccountContext, peer: Peer, height: ItemListPeerItemHeight = .peerList, aliasHandling: ItemListPeerItemAliasHandling = .standard, nameColor: ItemListPeerItemNameColor = .primary, nameStyle: ItemListPeerItemNameStyle = .distinctBold, presence: PeerPresence?, text: ItemListPeerItemText, label: ItemListPeerItemLabel, editing: ItemListPeerItemEditing, revealOptions: ItemListPeerItemRevealOptions? = nil, switchValue: ItemListPeerItemSwitch?, enabled: Bool, selectable: Bool, sectionId: ItemListSectionId, action: (() -> Void)?, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, removePeer: @escaping (PeerId) -> Void, toggleUpdated: ((Bool) -> Void)? = nil, contextAction: ((ASDisplayNode, ContextGesture?) -> Void)? = nil, hasTopStripe: Bool = true, hasTopGroupInset: Bool = true, noInsets: Bool = false, tag: ItemListItemTag? = nil) { + public init(presentationData: ItemListPresentationData, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, context: AccountContext, peer: Peer, height: ItemListPeerItemHeight = .peerList, aliasHandling: ItemListPeerItemAliasHandling = .standard, nameColor: ItemListPeerItemNameColor = .primary, nameStyle: ItemListPeerItemNameStyle = .distinctBold, presence: PeerPresence?, text: ItemListPeerItemText, label: ItemListPeerItemLabel, editing: ItemListPeerItemEditing, revealOptions: ItemListPeerItemRevealOptions? = nil, switchValue: ItemListPeerItemSwitch?, enabled: Bool, selectable: Bool, sectionId: ItemListSectionId, action: (() -> Void)?, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, removePeer: @escaping (PeerId) -> Void, toggleUpdated: ((Bool) -> Void)? = nil, contextAction: ((ASDisplayNode, ContextGesture?) -> Void)? = nil, hasTopStripe: Bool = true, hasTopGroupInset: Bool = true, noInsets: Bool = false, tag: ItemListItemTag? = nil, header: ListViewItemHeader? = nil) { self.presentationData = presentationData self.dateTimeFormat = dateTimeFormat self.nameDisplayOrder = nameDisplayOrder @@ -164,12 +165,13 @@ public final class ItemListPeerItem: ListViewItem, ItemListItem { self.hasTopGroupInset = hasTopGroupInset self.noInsets = noInsets self.tag = tag + self.header = header } public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { async { let node = ItemListPeerItemNode() - let (layout, apply) = node.asyncLayout()(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) + let (layout, apply) = node.asyncLayout()(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem), self.getHeaderAtTop(top: previousItem, bottom: nextItem)) node.contentSize = layout.contentSize node.insets = layout.insets @@ -182,6 +184,19 @@ public final class ItemListPeerItem: ListViewItem, ItemListItem { } } + private func getHeaderAtTop(top: ListViewItem?, bottom: ListViewItem?) -> Bool { + var headerAtTop = false + if let top = top as? ItemListPeerItem, top.header != nil { + if top.header?.id != self.header?.id { + headerAtTop = true + } + } else if self.header != nil { + headerAtTop = true + } + + return headerAtTop + } + public func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { Queue.mainQueue().async { if let nodeValue = node() as? ItemListPeerItemNode { @@ -193,7 +208,7 @@ public final class ItemListPeerItem: ListViewItem, ItemListItem { } async { - let (layout, apply) = makeLayout(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) + let (layout, apply) = makeLayout(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem), self.getHeaderAtTop(top: previousItem, bottom: nextItem)) Queue.mainQueue().async { completion(layout, { _ in apply(false, animated) @@ -233,7 +248,7 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo private var checkNode: ASImageNode? private var peerPresenceManager: PeerPresenceStatusManager? - private var layoutParams: (ItemListPeerItem, ListViewItemLayoutParams, ItemListNeighbors)? + private var layoutParams: (ItemListPeerItem, ListViewItemLayoutParams, ItemListNeighbors, Bool)? private var editableControlNode: ItemListEditableControlNode? @@ -303,7 +318,7 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo self.peerPresenceManager = PeerPresenceStatusManager(update: { [weak self] in if let strongSelf = self, let layoutParams = strongSelf.layoutParams { - let (_, apply) = strongSelf.asyncLayout()(layoutParams.0, layoutParams.1, layoutParams.2) + let (_, apply) = strongSelf.asyncLayout()(layoutParams.0, layoutParams.1, layoutParams.2, layoutParams.3) apply(false, true) } }) @@ -317,7 +332,7 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo } } - public func asyncLayout() -> (_ item: ItemListPeerItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, (Bool, Bool) -> Void) { + public func asyncLayout() -> (_ item: ItemListPeerItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors, _ headerAtTop: Bool) -> (ListViewItemNodeLayout, (Bool, Bool) -> Void) { let makeTitleLayout = TextNode.asyncLayout(self.titleNode) let makeStatusLayout = TextNode.asyncLayout(self.statusNode) let makeLabelLayout = TextNode.asyncLayout(self.labelNode) @@ -334,7 +349,7 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo let currentHasBadge = self.labelBadgeNode.image != nil - return { item, params, neighbors in + return { item, params, neighbors, headerAtTop in var updateArrowImage: UIImage? var updatedTheme: PresentationTheme? @@ -579,8 +594,11 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo insets.top = 0.0 insets.bottom = 0.0 } + if headerAtTop, let header = item.header { + insets.top += header.height + 18.0 + } - let titleSpacing: CGFloat = 1.0 + let titleSpacing: CGFloat = statusLayout.size.height == 0.0 ? 0.0 : 1.0 let minHeight: CGFloat = titleLayout.size.height + verticalInset * 2.0 let rawHeight: CGFloat = verticalInset * 2.0 + titleLayout.size.height + titleSpacing + statusLayout.size.height @@ -602,7 +620,7 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo return (layout, { [weak self] synchronousLoad, animated in if let strongSelf = self { - strongSelf.layoutParams = (item, params, neighbors) + strongSelf.layoutParams = (item, params, neighbors, headerAtTop) strongSelf.containerNode.frame = CGRect(origin: CGPoint(), size: layout.contentSize) strongSelf.containerNode.isGestureEnabled = item.contextAction != nil @@ -940,13 +958,13 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo } override public func revealOptionsInteractivelyOpened() { - if let (item, _, _) = self.layoutParams { + if let (item, _, _, _) = self.layoutParams { item.setPeerIdWithRevealedOptions(item.peer.id, nil) } } override public func revealOptionsInteractivelyClosed() { - if let (item, _, _) = self.layoutParams { + if let (item, _, _, _) = self.layoutParams { item.setPeerIdWithRevealedOptions(nil, item.peer.id) } } @@ -955,7 +973,7 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo self.setRevealOptionsOpened(false, animated: true) self.revealOptionsInteractivelyClosed() - if let (item, _, _) = self.layoutParams { + if let (item, _, _, _) = self.layoutParams { if let revealOptions = item.revealOptions { if option.key >= 0 && option.key < Int32(revealOptions.options.count) { revealOptions.options[Int(option.key)].action() @@ -967,8 +985,156 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo } private func toggleUpdated(_ value: Bool) { - if let (item, _, _) = self.layoutParams { + if let (item, _, _, _) = self.layoutParams { item.toggleUpdated?(value) } } + + override public func header() -> ListViewItemHeader? { + return self.layoutParams?.0.header + } +} + +public final class ItemListPeerItemHeader: ListViewItemHeader { + public let id: Int64 + public let text: String + public let stickDirection: ListViewItemHeaderStickDirection = .topEdge + public let theme: PresentationTheme + public let strings: PresentationStrings + public let actionTitle: String? + public let action: (() -> Void)? + + public let height: CGFloat = 28.0 + + public init(theme: PresentationTheme, strings: PresentationStrings, text: String, actionTitle: String? = nil, id: Int64, action: (() -> Void)? = nil) { + self.text = text + self.id = id + self.theme = theme + self.strings = strings + self.actionTitle = actionTitle + self.action = action + } + + public func node() -> ListViewItemHeaderNode { + return ItemListPeerItemHeaderNode(theme: self.theme, strings: self.strings, text: self.text, actionTitle: self.actionTitle, action: self.action) + } + + public func updateNode(_ node: ListViewItemHeaderNode, previous: ListViewItemHeader?, next: ListViewItemHeader?) { + (node as? ItemListPeerItemHeaderNode)?.update(text: self.text, actionTitle: self.actionTitle, action: self.action) + } +} + +public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { + private var theme: PresentationTheme + private var strings: PresentationStrings + private var actionTitle: String? + private var action: (() -> Void)? + + private var validLayout: (size: CGSize, leftInset: CGFloat, rightInset: CGFloat)? + + private let backgroundNode: ASDisplayNode + private let separatorNode: ASDisplayNode + private let textNode: ImmediateTextNode + private let actionTextNode: ImmediateTextNode + private let actionButton: HighlightableButtonNode + + private var stickDistanceFactor: CGFloat = 0.0 + + public init(theme: PresentationTheme, strings: PresentationStrings, text: String, actionTitle: String?, action: (() -> Void)?) { + self.theme = theme + self.strings = strings + self.actionTitle = actionTitle + self.action = action + + self.backgroundNode = ASDisplayNode() + self.backgroundNode.backgroundColor = theme.list.blocksBackgroundColor + + self.separatorNode = ASDisplayNode() + self.separatorNode.backgroundColor = theme.list.itemBlocksSeparatorColor + + let titleFont = Font.regular(13.0) + + self.textNode = ImmediateTextNode() + self.textNode.displaysAsynchronously = false + self.textNode.maximumNumberOfLines = 1 + self.textNode.attributedText = NSAttributedString(string: text, font: titleFont, textColor: theme.list.sectionHeaderTextColor) + + self.actionTextNode = ImmediateTextNode() + self.actionTextNode.displaysAsynchronously = false + self.actionTextNode.maximumNumberOfLines = 1 + self.actionTextNode.attributedText = NSAttributedString(string: actionTitle ?? "", font: titleFont, textColor: action == nil ? theme.list.sectionHeaderTextColor : theme.list.itemAccentColor) + + self.actionButton = HighlightableButtonNode() + self.actionButton.isUserInteractionEnabled = self.action != nil + + super.init() + + self.addSubnode(self.backgroundNode) + self.addSubnode(self.separatorNode) + self.addSubnode(self.textNode) + self.addSubnode(self.actionTextNode) + self.addSubnode(self.actionButton) + + self.actionButton.addTarget(self, action: #selector(self.actionButtonPressed), forControlEvents: .touchUpInside) + self.actionButton.highligthedChanged = { [weak self] highlighted in + if let strongSelf = self { + if highlighted { + strongSelf.actionTextNode.layer.removeAnimation(forKey: "opacity") + strongSelf.actionTextNode.alpha = 0.4 + } else { + strongSelf.actionTextNode.alpha = 1.0 + strongSelf.actionTextNode.layer.animateAlpha(from: 0.4, to: 1.0, duration: 0.2) + } + } + } + } + + @objc private func actionButtonPressed() { + self.action?() + } + + public func updateTheme(theme: PresentationTheme) { + self.theme = theme + + let titleFont = Font.regular(13.0) + + self.textNode.attributedText = NSAttributedString(string: self.textNode.attributedText?.string ?? "", font: titleFont, textColor: theme.list.sectionHeaderTextColor) + self.actionTextNode.attributedText = NSAttributedString(string: self.actionTextNode.attributedText?.string ?? "", font: titleFont, textColor: theme.list.sectionHeaderTextColor) + } + + public func update(text: String, actionTitle: String?, action: (() -> Void)?) { + self.actionTitle = actionTitle + self.action = action + let titleFont = Font.regular(13.0) + self.textNode.attributedText = NSAttributedString(string: text, font: titleFont, textColor: theme.list.sectionHeaderTextColor) + self.actionTextNode.attributedText = NSAttributedString(string: actionTitle ?? "", font: titleFont, textColor: action == nil ? theme.list.sectionHeaderTextColor : theme.list.itemAccentColor) + self.actionButton.isUserInteractionEnabled = self.action != nil + if let (size, leftInset, rightInset) = self.validLayout { + self.updateLayout(size: size, leftInset: leftInset, rightInset: rightInset) + } + } + + override public func updateLayout(size: CGSize, leftInset: CGFloat, rightInset: CGFloat) { + self.validLayout = (size, leftInset, rightInset) + self.backgroundNode.frame = CGRect(origin: CGPoint(), size: size) + self.separatorNode.frame = CGRect(origin: CGPoint(x: 0.0, y: size.height - UIScreenPixel), size: CGSize(width: size.width, height: UIScreenPixel)) + + let sideInset: CGFloat = 15.0 + leftInset + + let actionTextSize = self.actionTextNode.updateLayout(CGSize(width: size.width - sideInset * 2.0, height: size.height)) + let textSize = self.textNode.updateLayout(CGSize(width: size.width - sideInset * 2.0 - actionTextSize.width - 8.0, height: size.height)) + + self.textNode.frame = CGRect(origin: CGPoint(x: sideInset, y: 7.0), size: textSize) + self.actionTextNode.frame = CGRect(origin: CGPoint(x: size.width - sideInset - actionTextSize.width, y: 7.0), size: actionTextSize) + self.actionButton.frame = CGRect(origin: CGPoint(x: size.width - sideInset - actionTextSize.width, y: 0.0), size: CGSize(width: actionTextSize.width, height: size.height)) + } + + override public func animateRemoved(duration: Double) { + self.alpha = 0.0 + self.layer.animateAlpha(from: 1.0, to: 0.0, duration: duration, removeOnCompletion: true) + } + + override public func updateStickDistanceFactor(_ factor: CGFloat, transition: ContainedViewLayoutTransition) { + //transition.updateAlpha(node: self.separatorNode, alpha: (1.0 - factor) * 0.0 + factor * 1.0) + } } diff --git a/submodules/ItemListUI/Sources/ItemListControllerNode.swift b/submodules/ItemListUI/Sources/ItemListControllerNode.swift index f8e3ab0236..a56087ca9e 100644 --- a/submodules/ItemListUI/Sources/ItemListControllerNode.swift +++ b/submodules/ItemListUI/Sources/ItemListControllerNode.swift @@ -501,9 +501,12 @@ open class ItemListControllerNode: ASDisplayNode, UIScrollViewDelegate { options.insert(.PreferSynchronousDrawing) options.insert(.AnimateAlpha) } else if transition.crossfade { + options.insert(.PreferSynchronousResourceLoading) + options.insert(.PreferSynchronousDrawing) options.insert(.AnimateCrossfade) } else { options.insert(.Synchronous) + options.insert(.PreferSynchronousResourceLoading) options.insert(.PreferSynchronousDrawing) } if self.alwaysSynchronous { diff --git a/submodules/ItemListUI/Sources/Items/ItemListEditableItem.swift b/submodules/ItemListUI/Sources/Items/ItemListEditableItem.swift index efd9e4e4c2..dc6f9a1a6f 100644 --- a/submodules/ItemListUI/Sources/Items/ItemListEditableItem.swift +++ b/submodules/ItemListUI/Sources/Items/ItemListEditableItem.swift @@ -82,6 +82,10 @@ open class ItemListRevealOptionsItemNode: ListViewItemNode, UIGestureRecognizerD super.init(layerBacked: layerBacked, dynamicBounce: dynamicBounce, rotated: rotated, seeThrough: seeThrough) } + open var controlsContainer: ASDisplayNode { + return self + } + override open func didLoad() { super.didLoad() @@ -310,7 +314,7 @@ open class ItemListRevealOptionsItemNode: ListViewItemNode, UIGestureRecognizerD revealNode.updateRevealOffset(offset: 0.0, sideInset: leftInset, transition: .immediate) } - self.addSubnode(revealNode) + self.controlsContainer.addSubnode(revealNode) } } @@ -332,7 +336,7 @@ open class ItemListRevealOptionsItemNode: ListViewItemNode, UIGestureRecognizerD revealNode.updateRevealOffset(offset: 0.0, sideInset: -rightInset, transition: .immediate) } - self.addSubnode(revealNode) + self.controlsContainer.addSubnode(revealNode) } } @@ -492,4 +496,8 @@ open class ItemListRevealOptionsItemNode: ListViewItemNode, UIGestureRecognizerD } self.hapticFeedback?.impact(.medium) } + + override open func animateFrameTransition(_ progress: CGFloat, _ currentValue: CGFloat) { + super.animateFrameTransition(progress, currentValue) + } } diff --git a/submodules/ItemListUI/Sources/Items/ItemListTextItem.swift b/submodules/ItemListUI/Sources/Items/ItemListTextItem.swift index 93e9f27da9..32307fdf36 100644 --- a/submodules/ItemListUI/Sources/Items/ItemListTextItem.swift +++ b/submodules/ItemListUI/Sources/Items/ItemListTextItem.swift @@ -9,6 +9,7 @@ import Markdown public enum ItemListTextItemText { case plain(String) + case large(String) case markdown(String) } @@ -105,15 +106,19 @@ public class ItemListTextItemNode: ListViewItemNode { return { item, params, neighbors in let leftInset: CGFloat = 15.0 + params.leftInset - let verticalInset: CGFloat = 7.0 + let topInset: CGFloat = 7.0 + var bottomInset: CGFloat = 7.0 let titleFont = Font.regular(item.presentationData.fontSize.itemListBaseHeaderFontSize) + let largeTitleFont = Font.semibold(floor(item.presentationData.fontSize.itemListBaseHeaderFontSize * 2.0)) let titleBoldFont = Font.semibold(item.presentationData.fontSize.itemListBaseHeaderFontSize) let attributedText: NSAttributedString switch item.text { case let .plain(text): attributedText = NSAttributedString(string: text, font: titleFont, textColor: item.presentationData.theme.list.freeTextColor) + case let .large(text): + attributedText = NSAttributedString(string: text, font: largeTitleFont, textColor: item.presentationData.theme.list.itemPrimaryTextColor) case let .markdown(text): attributedText = parseMarkdownIntoAttributedString(text, attributes: MarkdownAttributes(body: MarkdownAttributeSet(font: titleFont, textColor: item.presentationData.theme.list.freeTextColor), bold: MarkdownAttributeSet(font: titleBoldFont, textColor: item.presentationData.theme.list.freeTextColor), link: MarkdownAttributeSet(font: titleFont, textColor: item.presentationData.theme.list.itemAccentColor), linkAttribute: { contents in return (TelegramTextAttributes.URL, contents) @@ -123,8 +128,12 @@ public class ItemListTextItemNode: ListViewItemNode { let contentSize: CGSize - contentSize = CGSize(width: params.width, height: titleLayout.size.height + verticalInset + verticalInset) - let insets = itemListNeighborsGroupedInsets(neighbors) + var insets = itemListNeighborsGroupedInsets(neighbors) + if case .large = item.text { + insets.top = 14.0 + bottomInset = -6.0 + } + contentSize = CGSize(width: params.width, height: titleLayout.size.height + topInset + bottomInset) let layout = ListViewItemNodeLayout(contentSize: contentSize, insets: insets) @@ -139,7 +148,7 @@ public class ItemListTextItemNode: ListViewItemNode { let _ = titleApply() - strongSelf.titleNode.frame = CGRect(origin: CGPoint(x: leftInset, y: verticalInset), size: titleLayout.size) + strongSelf.titleNode.frame = CGRect(origin: CGPoint(x: leftInset, y: topInset), size: titleLayout.size) } }) } diff --git a/submodules/LegacyComponents/LegacyComponents/TGCheckButtonView.m b/submodules/LegacyComponents/LegacyComponents/TGCheckButtonView.m index 8aa9440404..998363d54b 100644 --- a/submodules/LegacyComponents/LegacyComponents/TGCheckButtonView.m +++ b/submodules/LegacyComponents/LegacyComponents/TGCheckButtonView.m @@ -24,19 +24,14 @@ NSInteger _number; UIColor *_checkColor; + + CGAffineTransform TGCheckButtonDefaultTransform; } @end @implementation TGCheckButtonView -static NSMutableDictionary *backgroundImages; -static NSMutableDictionary *fillImages; -static CGAffineTransform TGCheckButtonDefaultTransform; - -+ (void)resetCache -{ - [backgroundImages removeAllObjects]; - [fillImages removeAllObjects]; ++ (void)resetCache { } - (instancetype)initWithStyle:(TGCheckButtonStyle)style { @@ -55,15 +50,12 @@ static CGAffineTransform TGCheckButtonDefaultTransform; self = [super initWithFrame:CGRectMake(0, 0, size.width, size.height)]; if (self != nil) { - static dispatch_once_t onceToken; - static CGFloat screenScale = 2.0f; - dispatch_once(&onceToken, ^ - { - TGCheckButtonDefaultTransform = CGAffineTransformMakeRotation(-M_PI_4); - backgroundImages = [[NSMutableDictionary alloc] init]; - fillImages = [[NSMutableDictionary alloc] init]; - screenScale = [UIScreen mainScreen].scale; - }); + CGFloat screenScale = 2.0f; + + TGCheckButtonDefaultTransform = CGAffineTransformMakeRotation(-M_PI_4); + NSMutableDictionary *backgroundImages = [[NSMutableDictionary alloc] init]; + NSMutableDictionary *fillImages = [[NSMutableDictionary alloc] init]; + screenScale = [UIScreen mainScreen].scale; int32_t hex = 0x29c519; UIColor *greenColor = [[UIColor alloc] initWithRed:(((hex >> 16) & 0xff) / 255.0f) green:(((hex >> 8) & 0xff) / 255.0f) blue:(((hex) & 0xff) / 255.0f) alpha:1.0f]; diff --git a/submodules/Postbox/Sources/Coding.swift b/submodules/Postbox/Sources/Coding.swift index d1232ad1de..0e73649666 100644 --- a/submodules/Postbox/Sources/Coding.swift +++ b/submodules/Postbox/Sources/Coding.swift @@ -484,6 +484,22 @@ public final class PostboxEncoder { } } + public func encodeDataArray(_ value: [Data], forKey key: StaticString) { + self.encodeKey(key) + var type: Int8 = ValueType.BytesArray.rawValue + self.buffer.write(&type, offset: 0, length: 1) + var length: Int32 = Int32(value.count) + self.buffer.write(&length, offset: 0, length: 4) + + for object in value { + var length: Int32 = Int32(object.count) + self.buffer.write(&length, offset: 0, length: 4) + object.withUnsafeBytes { (bytes: UnsafePointer) -> Void in + self.buffer.write(bytes, offset: 0, length: Int(length)) + } + } + } + public func encodeObjectDictionary(_ value: [K : V], forKey key: StaticString) where K: PostboxCoding { self.encodeKey(key) var t: Int8 = ValueType.ObjectDictionary.rawValue @@ -1173,6 +1189,31 @@ public final class PostboxDecoder { } } + public func decodeOptionalDataArrayForKey(_ key: StaticString) -> [Data]? { + if PostboxDecoder.positionOnKey(self.buffer.memory, offset: &self.offset, maxOffset: self.buffer.length, length: self.buffer.length, key: key, valueType: .BytesArray) { + var length: Int32 = 0 + memcpy(&length, self.buffer.memory + self.offset, 4) + self.offset += 4 + + var array: [Data] = [] + array.reserveCapacity(Int(length)) + + var i: Int32 = 0 + while i < length { + var length: Int32 = 0 + memcpy(&length, self.buffer.memory + self.offset, 4) + array.append(Data(bytes: self.buffer.memory.advanced(by: self.offset + 4), count: Int(length))) + self.offset += 4 + Int(length) + + i += 1 + } + + return array + } else { + return nil + } + } + public func decodeObjectArrayForKey(_ key: StaticString) -> [T] where T: PostboxCoding { if PostboxDecoder.positionOnKey(self.buffer.memory, offset: &self.offset, maxOffset: self.buffer.length, length: self.buffer.length, key: key, valueType: .ObjectArray) { var length: Int32 = 0 diff --git a/submodules/Postbox/Sources/Message.swift b/submodules/Postbox/Sources/Message.swift index 5960cc1bc4..3968afde45 100644 --- a/submodules/Postbox/Sources/Message.swift +++ b/submodules/Postbox/Sources/Message.swift @@ -525,6 +525,10 @@ public final class Message { return Message(stableId: self.stableId, stableVersion: self.stableVersion, id: self.id, globallyUniqueId: self.globallyUniqueId, groupingKey: self.groupingKey, groupInfo: self.groupInfo, timestamp: self.timestamp, flags: self.flags, tags: self.tags, globalTags: self.globalTags, localTags: self.localTags, forwardInfo: self.forwardInfo, author: self.author, text: self.text, attributes: self.attributes, media: media, peers: self.peers, associatedMessages: self.associatedMessages, associatedMessageIds: self.associatedMessageIds) } + public func withUpdatedPeers(_ peers: SimpleDictionary) -> Message { + return Message(stableId: self.stableId, stableVersion: self.stableVersion, id: self.id, globallyUniqueId: self.globallyUniqueId, groupingKey: self.groupingKey, groupInfo: self.groupInfo, timestamp: self.timestamp, flags: self.flags, tags: self.tags, globalTags: self.globalTags, localTags: self.localTags, forwardInfo: self.forwardInfo, author: self.author, text: self.text, attributes: self.attributes, media: self.media, peers: peers, associatedMessages: self.associatedMessages, associatedMessageIds: self.associatedMessageIds) + } + public func withUpdatedFlags(_ flags: MessageFlags) -> Message { return Message(stableId: self.stableId, stableVersion: self.stableVersion, id: self.id, globallyUniqueId: self.globallyUniqueId, groupingKey: self.groupingKey, groupInfo: self.groupInfo, timestamp: self.timestamp, flags: flags, tags: self.tags, globalTags: self.globalTags, localTags: self.localTags, forwardInfo: self.forwardInfo, author: self.author, text: self.text, attributes: self.attributes, media: self.media, peers: self.peers, associatedMessages: self.associatedMessages, associatedMessageIds: self.associatedMessageIds) } diff --git a/submodules/Postbox/Sources/MessageHistoryTable.swift b/submodules/Postbox/Sources/MessageHistoryTable.swift index feac0da947..f0fb7ca809 100644 --- a/submodules/Postbox/Sources/MessageHistoryTable.swift +++ b/submodules/Postbox/Sources/MessageHistoryTable.swift @@ -2275,6 +2275,42 @@ final class MessageHistoryTable: Table { return Message(stableId: message.stableId, stableVersion: message.stableVersion, id: message.id, globallyUniqueId: message.globallyUniqueId, groupingKey: message.groupingKey, groupInfo: message.groupInfo, timestamp: message.timestamp, flags: message.flags, tags: message.tags, globalTags: message.globalTags, localTags: message.localTags, forwardInfo: forwardInfo, author: author, text: message.text, attributes: parsedAttributes, media: parsedMedia, peers: peers, associatedMessages: associatedMessages, associatedMessageIds: associatedMessageIds) } + func renderMessagePeers(_ message: Message, peerTable: PeerTable) -> Message { + var author: Peer? + var peers = SimpleDictionary() + if let authorId = message.author?.id { + author = peerTable.get(authorId) + } + + if let chatPeer = peerTable.get(message.id.peerId) { + peers[chatPeer.id] = chatPeer + + if let associatedPeerId = chatPeer.associatedPeerId { + if let peer = peerTable.get(associatedPeerId) { + peers[peer.id] = peer + } + } + } + + for media in message.media { + for peerId in media.peerIds { + if let peer = peerTable.get(peerId) { + peers[peer.id] = peer + } + } + } + + for attribute in message.attributes { + for peerId in attribute.associatedPeerIds { + if let peer = peerTable.get(peerId) { + peers[peer.id] = peer + } + } + } + + return message.withUpdatedPeers(peers) + } + func renderAssociatedMessages(associatedMessageIds: [MessageId], peerTable: PeerTable) -> SimpleDictionary { var associatedMessages = SimpleDictionary() for messageId in associatedMessageIds { diff --git a/submodules/Postbox/Sources/MessageHistoryView.swift b/submodules/Postbox/Sources/MessageHistoryView.swift index b5a0e719fb..bc62626fe2 100644 --- a/submodules/Postbox/Sources/MessageHistoryView.swift +++ b/submodules/Postbox/Sources/MessageHistoryView.swift @@ -29,13 +29,13 @@ public struct MessageHistoryMessageEntry { enum MutableMessageHistoryEntry { case IntermediateMessageEntry(IntermediateMessage, MessageHistoryEntryLocation?, MessageHistoryEntryMonthLocation?) - case MessageEntry(MessageHistoryMessageEntry, reloadAssociatedMessages: Bool) + case MessageEntry(MessageHistoryMessageEntry, reloadAssociatedMessages: Bool, reloadPeers: Bool) var index: MessageIndex { switch self { case let .IntermediateMessageEntry(message, _, _): return message.index - case let .MessageEntry(message, _): + case let .MessageEntry(message, _, _): return message.message.index } } @@ -44,7 +44,7 @@ enum MutableMessageHistoryEntry { switch self { case let .IntermediateMessageEntry(message, _, _): return message.tags - case let .MessageEntry(message, _): + case let .MessageEntry(message, _, _): return message.message.tags } } @@ -53,8 +53,8 @@ enum MutableMessageHistoryEntry { switch self { case let .IntermediateMessageEntry(message, _, monthLocation): return .IntermediateMessageEntry(message, location, monthLocation) - case let .MessageEntry(message, reloadAssociatedMessages): - return .MessageEntry(MessageHistoryMessageEntry(message: message.message, location: location, monthLocation: message.monthLocation, attributes: message.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + case let .MessageEntry(message, reloadAssociatedMessages, reloadPeers): + return .MessageEntry(MessageHistoryMessageEntry(message: message.message, location: location, monthLocation: message.monthLocation, attributes: message.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } } @@ -62,8 +62,8 @@ enum MutableMessageHistoryEntry { switch self { case let .IntermediateMessageEntry(message, location, _): return .IntermediateMessageEntry(message, location, monthLocation) - case let .MessageEntry(message, reloadAssociatedMessages): - return .MessageEntry(MessageHistoryMessageEntry(message: message.message, location: message.location, monthLocation: monthLocation, attributes: message.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + case let .MessageEntry(message, reloadAssociatedMessages, reloadPeers): + return .MessageEntry(MessageHistoryMessageEntry(message: message.message, location: message.location, monthLocation: monthLocation, attributes: message.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } } @@ -79,12 +79,12 @@ enum MutableMessageHistoryEntry { } else { return self } - case let .MessageEntry(message, reloadAssociatedMessages): + case let .MessageEntry(message, reloadAssociatedMessages, reloadPeers): if let location = message.location { if message.message.index > index { - return .MessageEntry(MessageHistoryMessageEntry(message: message.message, location: MessageHistoryEntryLocation(index: location.index + 1, count: location.count + 1), monthLocation: message.monthLocation, attributes: message.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + return .MessageEntry(MessageHistoryMessageEntry(message: message.message, location: MessageHistoryEntryLocation(index: location.index + 1, count: location.count + 1), monthLocation: message.monthLocation, attributes: message.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } else { - return .MessageEntry(MessageHistoryMessageEntry(message: message.message, location: MessageHistoryEntryLocation(index: location.index, count: location.count + 1), monthLocation: message.monthLocation, attributes: message.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + return .MessageEntry(MessageHistoryMessageEntry(message: message.message, location: MessageHistoryEntryLocation(index: location.index, count: location.count + 1), monthLocation: message.monthLocation, attributes: message.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } } else { return self @@ -107,15 +107,15 @@ enum MutableMessageHistoryEntry { } else { return self } - case let .MessageEntry(message, reloadAssociatedMessages): + case let .MessageEntry(message, reloadAssociatedMessages, reloadPeers): if let location = message.location { if message.message.index > index { //assert(location.index > 0) //assert(location.count != 0) - return .MessageEntry(MessageHistoryMessageEntry(message: message.message, location: MessageHistoryEntryLocation(index: location.index - 1, count: location.count - 1), monthLocation: message.monthLocation, attributes: message.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + return .MessageEntry(MessageHistoryMessageEntry(message: message.message, location: MessageHistoryEntryLocation(index: location.index - 1, count: location.count - 1), monthLocation: message.monthLocation, attributes: message.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } else { //assert(location.count != 0) - return .MessageEntry(MessageHistoryMessageEntry(message: message.message, location: MessageHistoryEntryLocation(index: location.index, count: location.count - 1), monthLocation: message.monthLocation, attributes: message.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + return .MessageEntry(MessageHistoryMessageEntry(message: message.message, location: MessageHistoryEntryLocation(index: location.index, count: location.count - 1), monthLocation: message.monthLocation, attributes: message.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } } else { return self @@ -128,10 +128,10 @@ enum MutableMessageHistoryEntry { case let .IntermediateMessageEntry(message, location, monthLocation): let updatedMessage = IntermediateMessage(stableId: message.stableId, stableVersion: message.stableVersion, id: message.id, globallyUniqueId: message.globallyUniqueId, groupingKey: message.groupingKey, groupInfo: message.groupInfo, timestamp: timestamp, flags: message.flags, tags: message.tags, globalTags: message.globalTags, localTags: message.localTags, forwardInfo: message.forwardInfo, authorId: message.authorId, text: message.text, attributesData: message.attributesData, embeddedMediaData: message.embeddedMediaData, referencedMedia: message.referencedMedia) return .IntermediateMessageEntry(updatedMessage, location, monthLocation) - case let .MessageEntry(value, reloadAssociatedMessages): + case let .MessageEntry(value, reloadAssociatedMessages, reloadPeers): let message = value.message let updatedMessage = Message(stableId: message.stableId, stableVersion: message.stableVersion, id: message.id, globallyUniqueId: message.globallyUniqueId, groupingKey: message.groupingKey, groupInfo: message.groupInfo, timestamp: timestamp, flags: message.flags, tags: message.tags, globalTags: message.globalTags, localTags: message.localTags, forwardInfo: message.forwardInfo, author: message.author, text: message.text, attributes: message.attributes, media: message.media, peers: message.peers, associatedMessages: message.associatedMessages, associatedMessageIds: message.associatedMessageIds) - return .MessageEntry(MessageHistoryMessageEntry(message: updatedMessage, location: value.location, monthLocation: value.monthLocation, attributes: value.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + return .MessageEntry(MessageHistoryMessageEntry(message: updatedMessage, location: value.location, monthLocation: value.monthLocation, attributes: value.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } } @@ -139,7 +139,7 @@ enum MutableMessageHistoryEntry { switch self { case let .IntermediateMessageEntry(message, location, monthLocation): return [] - case let .MessageEntry(value, _): + case let .MessageEntry(value, _, _): return value.message.associatedMessageIds } } diff --git a/submodules/Postbox/Sources/MessageHistoryViewState.swift b/submodules/Postbox/Sources/MessageHistoryViewState.swift index 68995e3472..3ca9492b0c 100644 --- a/submodules/Postbox/Sources/MessageHistoryViewState.swift +++ b/submodules/Postbox/Sources/MessageHistoryViewState.swift @@ -874,10 +874,10 @@ final class HistoryViewLoadedState { let currentLocation = nextLocation nextLocation = nextLocation.successor switch entry { - case let .IntermediateMessageEntry(message, _, monthLocation): - return .IntermediateMessageEntry(message, currentLocation, monthLocation) - case let .MessageEntry(entry, reloadAssociatedMessages): - return .MessageEntry(MessageHistoryMessageEntry(message: entry.message, location: currentLocation, monthLocation: entry.monthLocation, attributes: entry.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + case let .IntermediateMessageEntry(message, _, monthLocation): + return .IntermediateMessageEntry(message, currentLocation, monthLocation) + case let .MessageEntry(entry, reloadAssociatedMessages, reloadPeers): + return .MessageEntry(MessageHistoryMessageEntry(message: entry.message, location: currentLocation, monthLocation: entry.monthLocation, attributes: entry.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } } } @@ -900,8 +900,8 @@ final class HistoryViewLoadedState { switch entry { case let .IntermediateMessageEntry(message, location, _): return .IntermediateMessageEntry(message, location, MessageHistoryEntryMonthLocation(indexInMonth: Int32(currentIndexInMonth))) - case let .MessageEntry(entry, reloadAssociatedMessages): - return .MessageEntry(MessageHistoryMessageEntry(message: entry.message, location: entry.location, monthLocation: MessageHistoryEntryMonthLocation(indexInMonth: Int32(currentIndexInMonth)), attributes: entry.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + case let .MessageEntry(entry, reloadAssociatedMessages, reloadPeers): + return .MessageEntry(MessageHistoryMessageEntry(message: entry.message, location: entry.location, monthLocation: MessageHistoryEntryMonthLocation(indexInMonth: Int32(currentIndexInMonth)), attributes: entry.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } } } @@ -960,8 +960,8 @@ final class HistoryViewLoadedState { switch entry { case let .IntermediateMessageEntry(message, location, monthLocation): return .IntermediateMessageEntry(message.withUpdatedGroupInfo(groupInfo), location, monthLocation) - case let .MessageEntry(messageEntry, reloadAssociatedMessages): - return .MessageEntry(MessageHistoryMessageEntry(message: messageEntry.message.withUpdatedGroupInfo(groupInfo), location: messageEntry.location, monthLocation: messageEntry.monthLocation, attributes: messageEntry.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + case let .MessageEntry(messageEntry, reloadAssociatedMessages, reloadPeers): + return .MessageEntry(MessageHistoryMessageEntry(message: messageEntry.message.withUpdatedGroupInfo(groupInfo), location: messageEntry.location, monthLocation: messageEntry.monthLocation, attributes: messageEntry.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } } return nil @@ -983,8 +983,8 @@ final class HistoryViewLoadedState { switch entry { case let .IntermediateMessageEntry(message, location, monthLocation): return .IntermediateMessageEntry(message.withUpdatedEmbeddedMedia(buffer), location, monthLocation) - case let .MessageEntry(messageEntry, reloadAssociatedMessages): - return .MessageEntry(MessageHistoryMessageEntry(message: messageEntry.message, location: messageEntry.location, monthLocation: messageEntry.monthLocation, attributes: messageEntry.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + case let .MessageEntry(messageEntry, reloadAssociatedMessages, reloadPeers): + return .MessageEntry(MessageHistoryMessageEntry(message: messageEntry.message, location: messageEntry.location, monthLocation: messageEntry.monthLocation, attributes: messageEntry.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } }) } @@ -994,8 +994,9 @@ final class HistoryViewLoadedState { for space in self.orderedEntriesBySpace.keys { let spaceUpdated = self.orderedEntriesBySpace[space]!.mutableScan({ entry in switch entry { - case let .MessageEntry(value, reloadAssociatedMessages): + case let .MessageEntry(value, reloadAssociatedMessages, reloadPeers): let message = value.message + var reloadPeers = reloadPeers var rebuild = false for media in message.media { @@ -1010,6 +1011,9 @@ final class HistoryViewLoadedState { for media in message.media { if let mediaId = media.id, let updated = updatedMedia[mediaId] { if let updated = updated { + if media.peerIds != updated.peerIds { + reloadPeers = true + } messageMedia.append(updated) } } else { @@ -1017,7 +1021,7 @@ final class HistoryViewLoadedState { } } let updatedMessage = Message(stableId: message.stableId, stableVersion: message.stableVersion, id: message.id, globallyUniqueId: message.globallyUniqueId, groupingKey: message.groupingKey, groupInfo: message.groupInfo, timestamp: message.timestamp, flags: message.flags, tags: message.tags, globalTags: message.globalTags, localTags: message.localTags, forwardInfo: message.forwardInfo, author: message.author, text: message.text, attributes: message.attributes, media: messageMedia, peers: message.peers, associatedMessages: message.associatedMessages, associatedMessageIds: message.associatedMessageIds) - return .MessageEntry(MessageHistoryMessageEntry(message: updatedMessage, location: value.location, monthLocation: value.monthLocation, attributes: value.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + return .MessageEntry(MessageHistoryMessageEntry(message: updatedMessage, location: value.location, monthLocation: value.monthLocation, attributes: value.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } case .IntermediateMessageEntry: break @@ -1046,9 +1050,9 @@ final class HistoryViewLoadedState { switch current { case .IntermediateMessageEntry: return current - case let .MessageEntry(messageEntry, _): + case let .MessageEntry(messageEntry, _, reloadPeers): updated = true - return .MessageEntry(messageEntry, reloadAssociatedMessages: true) + return .MessageEntry(messageEntry, reloadAssociatedMessages: true, reloadPeers: reloadPeers) } }) } @@ -1109,11 +1113,11 @@ final class HistoryViewLoadedState { switch current { case .IntermediateMessageEntry: return current - case let .MessageEntry(messageEntry, reloadAssociatedMessages): + case let .MessageEntry(messageEntry, reloadAssociatedMessages, reloadPeers): updated = true if let associatedMessages = messageEntry.message.associatedMessages.filteredOut(keysIn: [index.id]) { - return .MessageEntry(MessageHistoryMessageEntry(message: messageEntry.message.withUpdatedAssociatedMessages(associatedMessages), location: messageEntry.location, monthLocation: messageEntry.monthLocation, attributes: messageEntry.attributes), reloadAssociatedMessages: reloadAssociatedMessages) + return .MessageEntry(MessageHistoryMessageEntry(message: messageEntry.message.withUpdatedAssociatedMessages(associatedMessages), location: messageEntry.location, monthLocation: messageEntry.monthLocation, attributes: messageEntry.attributes), reloadAssociatedMessages: reloadAssociatedMessages, reloadPeers: reloadPeers) } else { return current } @@ -1177,14 +1181,22 @@ final class HistoryViewLoadedState { } switch entry { - case let .MessageEntry(value, reloadAssociatedMessages): + case let .MessageEntry(value, reloadAssociatedMessages, reloadPeers): + var updatedMessage = value.message if reloadAssociatedMessages { let associatedMessages = postbox.messageHistoryTable.renderAssociatedMessages(associatedMessageIds: value.message.associatedMessageIds, peerTable: postbox.peerTable) - let updatedValue = MessageHistoryMessageEntry(message: value.message.withUpdatedAssociatedMessages(associatedMessages), location: value.location, monthLocation: value.monthLocation, attributes: value.attributes) + updatedMessage = value.message.withUpdatedAssociatedMessages(associatedMessages) + } + if reloadPeers { + updatedMessage = postbox.messageHistoryTable.renderMessagePeers(updatedMessage, peerTable: postbox.peerTable) + } + + if value.message !== updatedMessage { + let updatedValue = MessageHistoryMessageEntry(message: updatedMessage, location: value.location, monthLocation: value.monthLocation, attributes: value.attributes) if directionIndex == 0 { - self.orderedEntriesBySpace[space]!.setLowerOrAtAnchorAtArrayIndex(index, to: .MessageEntry(updatedValue, reloadAssociatedMessages: false)) + self.orderedEntriesBySpace[space]!.setLowerOrAtAnchorAtArrayIndex(index, to: .MessageEntry(updatedValue, reloadAssociatedMessages: false, reloadPeers: false)) } else { - self.orderedEntriesBySpace[space]!.setHigherThanAnchorAtArrayIndex(index, to: .MessageEntry(updatedValue, reloadAssociatedMessages: false)) + self.orderedEntriesBySpace[space]!.setHigherThanAnchorAtArrayIndex(index, to: .MessageEntry(updatedValue, reloadAssociatedMessages: false, reloadPeers: false)) } result.append(updatedValue) } else { @@ -1198,9 +1210,9 @@ final class HistoryViewLoadedState { } let entry = MessageHistoryMessageEntry(message: renderedMessage, location: location, monthLocation: monthLocation, attributes: MutableMessageHistoryEntryAttributes(authorIsContact: authorIsContact)) if directionIndex == 0 { - self.orderedEntriesBySpace[space]!.setLowerOrAtAnchorAtArrayIndex(index, to: .MessageEntry(entry, reloadAssociatedMessages: false)) + self.orderedEntriesBySpace[space]!.setLowerOrAtAnchorAtArrayIndex(index, to: .MessageEntry(entry, reloadAssociatedMessages: false, reloadPeers: false)) } else { - self.orderedEntriesBySpace[space]!.setHigherThanAnchorAtArrayIndex(index, to: .MessageEntry(entry, reloadAssociatedMessages: false)) + self.orderedEntriesBySpace[space]!.setHigherThanAnchorAtArrayIndex(index, to: .MessageEntry(entry, reloadAssociatedMessages: false, reloadPeers: false)) } result.append(entry) } diff --git a/submodules/SettingsUI/Sources/SettingsController.swift b/submodules/SettingsUI/Sources/SettingsController.swift index 7bfc8531ea..b7997b90cd 100644 --- a/submodules/SettingsUI/Sources/SettingsController.swift +++ b/submodules/SettingsUI/Sources/SettingsController.swift @@ -1474,7 +1474,7 @@ public func settingsController(context: AccountContext, accountManager: AccountM if let primary = primary { let size = CGSize(width: 31.0, height: 31.0) let inset: CGFloat = 3.0 - if let signal = peerAvatarImage(account: primary.0, peer: primary.1, authorOfMessage: nil, representation: primary.1.profileImageRepresentations.first, displayDimensions: size, inset: 3.0, emptyColor: nil, synchronousLoad: false) { + if let signal = peerAvatarImage(account: primary.0, peerReference: PeerReference(primary.1), authorOfMessage: nil, representation: primary.1.profileImageRepresentations.first, displayDimensions: size, inset: 3.0, emptyColor: nil, synchronousLoad: false) { return signal |> map { image -> (UIImage, UIImage)? in if let image = image, let selectedImage = generateImage(size, rotatedContext: { size, context in @@ -1497,13 +1497,13 @@ public func settingsController(context: AccountContext, accountManager: AccountM let image = generateImage(size, rotatedContext: { size, context in context.clear(CGRect(origin: CGPoint(), size: size)) context.translateBy(x: inset, y: inset) - drawPeerAvatarLetters(context: context, size: CGSize(width: size.width - inset * 2.0, height: size.height - inset * 2.0), font: avatarFont, letters: primary.1.displayLetters, accountPeerId: primary.1.id, peerId: primary.1.id) + drawPeerAvatarLetters(context: context, size: CGSize(width: size.width - inset * 2.0, height: size.height - inset * 2.0), font: avatarFont, letters: primary.1.displayLetters, peerId: primary.1.id) })?.withRenderingMode(.alwaysOriginal) let selectedImage = generateImage(size, rotatedContext: { size, context in context.clear(CGRect(origin: CGPoint(), size: size)) context.translateBy(x: inset, y: inset) - drawPeerAvatarLetters(context: context, size: CGSize(width: size.width - inset * 2.0, height: size.height - inset * 2.0), font: avatarFont, letters: primary.1.displayLetters, accountPeerId: primary.1.id, peerId: primary.1.id) + drawPeerAvatarLetters(context: context, size: CGSize(width: size.width - inset * 2.0, height: size.height - inset * 2.0), font: avatarFont, letters: primary.1.displayLetters, peerId: primary.1.id) context.translateBy(x: -inset, y: -inset) context.setLineWidth(1.0) context.setStrokeColor(primary.2.rootController.tabBar.selectedIconColor.cgColor) diff --git a/submodules/SyncCore/Sources/TelegramMediaPoll.swift b/submodules/SyncCore/Sources/TelegramMediaPoll.swift index 91bcc68457..2e6398ac75 100644 --- a/submodules/SyncCore/Sources/TelegramMediaPoll.swift +++ b/submodules/SyncCore/Sources/TelegramMediaPoll.swift @@ -24,38 +24,45 @@ public struct TelegramMediaPollOptionVoters: Equatable, PostboxCoding { public let selected: Bool public let opaqueIdentifier: Data public let count: Int32 + public let isCorrect: Bool - public init(selected: Bool, opaqueIdentifier: Data, count: Int32) { + public init(selected: Bool, opaqueIdentifier: Data, count: Int32, isCorrect: Bool) { self.selected = selected self.opaqueIdentifier = opaqueIdentifier self.count = count + self.isCorrect = isCorrect } public init(decoder: PostboxDecoder) { self.selected = decoder.decodeInt32ForKey("s", orElse: 0) != 0 self.opaqueIdentifier = decoder.decodeDataForKey("i") ?? Data() self.count = decoder.decodeInt32ForKey("c", orElse: 0) + self.isCorrect = decoder.decodeInt32ForKey("cr", orElse: 0) != 0 } public func encode(_ encoder: PostboxEncoder) { encoder.encodeInt32(self.selected ? 1 : 0, forKey: "s") encoder.encodeData(self.opaqueIdentifier, forKey: "i") encoder.encodeInt32(self.count, forKey: "c") + encoder.encodeInt32(self.isCorrect ? 1 : 0, forKey: "cr") } } public struct TelegramMediaPollResults: Equatable, PostboxCoding { public let voters: [TelegramMediaPollOptionVoters]? public let totalVoters: Int32? + public let recentVoters: [PeerId] - public init(voters: [TelegramMediaPollOptionVoters]?, totalVoters: Int32?) { + public init(voters: [TelegramMediaPollOptionVoters]?, totalVoters: Int32?, recentVoters: [PeerId]) { self.voters = voters self.totalVoters = totalVoters + self.recentVoters = recentVoters } public init(decoder: PostboxDecoder) { self.voters = decoder.decodeOptionalObjectArrayWithDecoderForKey("v") self.totalVoters = decoder.decodeOptionalInt32ForKey("t") + self.recentVoters = decoder.decodeInt64ArrayForKey("rv").map(PeerId.init) } public func encode(_ encoder: PostboxEncoder) { @@ -69,6 +76,39 @@ public struct TelegramMediaPollResults: Equatable, PostboxCoding { } else { encoder.encodeNil(forKey: "t") } + encoder.encodeInt64Array(self.recentVoters.map { $0.toInt64() }, forKey: "rv") + } +} + +public enum TelegramMediaPollPublicity: Int32 { + case anonymous + case `public` +} + +public enum TelegramMediaPollKind: Equatable, PostboxCoding { + case poll(multipleAnswers: Bool) + case quiz + + public init(decoder: PostboxDecoder) { + switch decoder.decodeInt32ForKey("_v", orElse: 0) { + case 0: + self = .poll(multipleAnswers: decoder.decodeInt32ForKey("m", orElse: 0) != 0) + case 1: + self = .quiz + default: + assertionFailure() + self = .poll(multipleAnswers: false) + } + } + + public func encode(_ encoder: PostboxEncoder) { + switch self { + case let .poll(multipleAnswers): + encoder.encodeInt32(0, forKey: "_v") + encoder.encodeInt32(multipleAnswers ? 1 : 0, forKey: "m") + case .quiz: + encoder.encodeInt32(1, forKey: "_v") + } } } @@ -77,17 +117,26 @@ public final class TelegramMediaPoll: Media, Equatable { return self.pollId } public let pollId: MediaId - public let peerIds: [PeerId] = [] + public var peerIds: [PeerId] { + return results.recentVoters + } + + public let publicity: TelegramMediaPollPublicity + public let kind: TelegramMediaPollKind public let text: String public let options: [TelegramMediaPollOption] + public let correctAnswers: [Data]? public let results: TelegramMediaPollResults public let isClosed: Bool - public init(pollId: MediaId, text: String, options: [TelegramMediaPollOption], results: TelegramMediaPollResults, isClosed: Bool) { + public init(pollId: MediaId, publicity: TelegramMediaPollPublicity, kind: TelegramMediaPollKind, text: String, options: [TelegramMediaPollOption], correctAnswers: [Data]?, results: TelegramMediaPollResults, isClosed: Bool) { self.pollId = pollId + self.publicity = publicity + self.kind = kind self.text = text self.options = options + self.correctAnswers = correctAnswers self.results = results self.isClosed = isClosed } @@ -98,18 +147,28 @@ public final class TelegramMediaPoll: Media, Equatable { } else { self.pollId = MediaId(namespace: Namespaces.Media.LocalPoll, id: 0) } + self.publicity = TelegramMediaPollPublicity(rawValue: decoder.decodeInt32ForKey("pb", orElse: 0)) ?? TelegramMediaPollPublicity.anonymous + self.kind = decoder.decodeObjectForKey("kn", decoder: { TelegramMediaPollKind(decoder: $0) }) as? TelegramMediaPollKind ?? TelegramMediaPollKind.poll(multipleAnswers: false) self.text = decoder.decodeStringForKey("t", orElse: "") self.options = decoder.decodeObjectArrayWithDecoderForKey("os") - self.results = decoder.decodeObjectForKey("rs", decoder: { TelegramMediaPollResults(decoder: $0) }) as? TelegramMediaPollResults ?? TelegramMediaPollResults(voters: nil, totalVoters: nil) + self.correctAnswers = decoder.decodeOptionalDataArrayForKey("ca") + self.results = decoder.decodeObjectForKey("rs", decoder: { TelegramMediaPollResults(decoder: $0) }) as? TelegramMediaPollResults ?? TelegramMediaPollResults(voters: nil, totalVoters: nil, recentVoters: []) self.isClosed = decoder.decodeInt32ForKey("ic", orElse: 0) != 0 } public func encode(_ encoder: PostboxEncoder) { let buffer = WriteBuffer() self.pollId.encodeToBuffer(buffer) + encoder.encodeInt32(self.publicity.rawValue, forKey: "pb") + encoder.encodeObject(self.kind, forKey: "kn") encoder.encodeBytes(buffer, forKey: "i") encoder.encodeString(self.text, forKey: "t") encoder.encodeObjectArray(self.options, forKey: "os") + if let correctAnswers = self.correctAnswers { + encoder.encodeDataArray(correctAnswers, forKey: "ca") + } else { + encoder.encodeNil(forKey: "ca") + } encoder.encodeObject(results, forKey: "rs") encoder.encodeInt32(self.isClosed ? 1 : 0, forKey: "ic") } @@ -129,12 +188,21 @@ public final class TelegramMediaPoll: Media, Equatable { if lhs.pollId != rhs.pollId { return false } + if lhs.publicity != rhs.publicity { + return false + } + if lhs.kind != rhs.kind { + return false + } if lhs.text != rhs.text { return false } if lhs.options != rhs.options { return false } + if lhs.correctAnswers != rhs.correctAnswers { + return false + } if lhs.results != rhs.results { return false } @@ -155,14 +223,14 @@ public final class TelegramMediaPoll: Media, Equatable { } } updatedResults = TelegramMediaPollResults(voters: updatedVoters.map({ voters in - return TelegramMediaPollOptionVoters(selected: selectedOpaqueIdentifiers.contains(voters.opaqueIdentifier), opaqueIdentifier: voters.opaqueIdentifier, count: voters.count) - }), totalVoters: results.totalVoters) + return TelegramMediaPollOptionVoters(selected: selectedOpaqueIdentifiers.contains(voters.opaqueIdentifier), opaqueIdentifier: voters.opaqueIdentifier, count: voters.count, isCorrect: voters.isCorrect) + }), totalVoters: results.totalVoters, recentVoters: results.recentVoters) } else { - updatedResults = TelegramMediaPollResults(voters: self.results.voters, totalVoters: results.totalVoters) + updatedResults = TelegramMediaPollResults(voters: self.results.voters, totalVoters: results.totalVoters, recentVoters: results.recentVoters) } } else { updatedResults = results } - return TelegramMediaPoll(pollId: self.pollId, text: self.text, options: self.options, results: updatedResults, isClosed: self.isClosed) + return TelegramMediaPoll(pollId: self.pollId, publicity: self.publicity, kind: self.kind, text: self.text, options: self.options, correctAnswers: self.correctAnswers, results: updatedResults, isClosed: self.isClosed) } } diff --git a/submodules/TelegramApi/Sources/Api0.swift b/submodules/TelegramApi/Sources/Api0.swift index ba15174d5d..30c4e3b39c 100644 --- a/submodules/TelegramApi/Sources/Api0.swift +++ b/submodules/TelegramApi/Sources/Api0.swift @@ -11,7 +11,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[-784000893] = { return Api.payments.ValidatedRequestedInfo.parse_validatedRequestedInfo($0) } dict[461151667] = { return Api.ChatFull.parse_chatFull($0) } dict[763976820] = { return Api.ChatFull.parse_channelFull($0) } - dict[1465219162] = { return Api.PollResults.parse_pollResults($0) } + dict[-932174686] = { return Api.PollResults.parse_pollResults($0) } dict[-925415106] = { return Api.ChatParticipant.parse_chatParticipant($0) } dict[-636267638] = { return Api.ChatParticipant.parse_chatParticipantCreator($0) } dict[-489233354] = { return Api.ChatParticipant.parse_chatParticipantAdmin($0) } @@ -72,7 +72,6 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[1516793212] = { return Api.ChatInvite.parse_chatInviteAlready($0) } dict[-540871282] = { return Api.ChatInvite.parse_chatInvite($0) } dict[-532532493] = { return Api.AutoDownloadSettings.parse_autoDownloadSettings($0) } - dict[-767099577] = { return Api.AutoDownloadSettings.parse_autoDownloadSettingsLegacy($0) } dict[1678812626] = { return Api.StickerSetCovered.parse_stickerSetCovered($0) } dict[872932635] = { return Api.StickerSetCovered.parse_stickerSetMultiCovered($0) } dict[1189204285] = { return Api.RecentMeUrl.parse_recentMeUrlUnknown($0) } @@ -247,6 +246,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[-2112423005] = { return Api.Update.parse_updateTheme($0) } dict[-2027964103] = { return Api.Update.parse_updateGeoLiveViewed($0) } dict[1448076945] = { return Api.Update.parse_updateLoginToken($0) } + dict[136574537] = { return Api.messages.VotesList.parse_votesList($0) } dict[1558266229] = { return Api.PopularContact.parse_popularContact($0) } dict[-373643672] = { return Api.FolderPeer.parse_folderPeer($0) } dict[367766557] = { return Api.ChannelParticipant.parse_channelParticipant($0) } @@ -254,6 +254,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[470789295] = { return Api.ChannelParticipant.parse_channelParticipantBanned($0) } dict[-859915345] = { return Api.ChannelParticipant.parse_channelParticipantAdmin($0) } dict[-2138237532] = { return Api.ChannelParticipant.parse_channelParticipantCreator($0) } + dict[-233638547] = { return Api.MessageUserVote.parse_messageUserVote($0) } dict[471043349] = { return Api.contacts.Blocked.parse_blocked($0) } dict[-1878523231] = { return Api.contacts.Blocked.parse_blockedSlice($0) } dict[-55902537] = { return Api.InputDialogPeer.parse_inputDialogPeer($0) } @@ -350,8 +351,8 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[-440664550] = { return Api.InputMedia.parse_inputMediaPhotoExternal($0) } dict[-78455655] = { return Api.InputMedia.parse_inputMediaDocumentExternal($0) } dict[-122978821] = { return Api.InputMedia.parse_inputMediaContact($0) } - dict[112424539] = { return Api.InputMedia.parse_inputMediaPoll($0) } dict[-833715459] = { return Api.InputMedia.parse_inputMediaGeoLive($0) } + dict[-1410741723] = { return Api.InputMedia.parse_inputMediaPoll($0) } dict[2134579434] = { return Api.InputPeer.parse_inputPeerEmpty($0) } dict[2107670217] = { return Api.InputPeer.parse_inputPeerSelf($0) } dict[396093539] = { return Api.InputPeer.parse_inputPeerChat($0) } @@ -603,7 +604,6 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[1421174295] = { return Api.WebPageAttribute.parse_webPageAttributeTheme($0) } dict[82699215] = { return Api.messages.FeaturedStickers.parse_featuredStickersNotModified($0) } dict[-123893531] = { return Api.messages.FeaturedStickers.parse_featuredStickers($0) } - dict[1375940666] = { return Api.auth.LoginTokenInfo.parse_loginTokenInfo($0) } dict[-2048646399] = { return Api.PhoneCallDiscardReason.parse_phoneCallDiscardReasonMissed($0) } dict[-527056480] = { return Api.PhoneCallDiscardReason.parse_phoneCallDiscardReasonDisconnect($0) } dict[1471006352] = { return Api.PhoneCallDiscardReason.parse_phoneCallDiscardReasonHangup($0) } @@ -674,6 +674,8 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[-395967805] = { return Api.messages.AllStickers.parse_allStickersNotModified($0) } dict[-302170017] = { return Api.messages.AllStickers.parse_allStickers($0) } dict[-1655957568] = { return Api.PhoneConnection.parse_phoneConnection($0) } + dict[-206688531] = { return Api.help.UserInfo.parse_userInfoEmpty($0) } + dict[32192344] = { return Api.help.UserInfo.parse_userInfo($0) } dict[-1194283041] = { return Api.AccountDaysTTL.parse_accountDaysTTL($0) } dict[-1658158621] = { return Api.SecureValueType.parse_secureValueTypePersonalDetails($0) } dict[1034709504] = { return Api.SecureValueType.parse_secureValueTypePassport($0) } @@ -740,7 +742,6 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[1363483106] = { return Api.DialogPeer.parse_dialogPeerFolder($0) } dict[-104284986] = { return Api.WebDocument.parse_webDocumentNoProxy($0) } dict[475467473] = { return Api.WebDocument.parse_webDocument($0) } - dict[1211967244] = { return Api.Theme.parse_themeDocumentNotModified($0) } dict[42930452] = { return Api.Theme.parse_theme($0) } dict[-1290580579] = { return Api.contacts.Found.parse_found($0) } dict[-368018716] = { return Api.ChannelAdminLogEventsFilter.parse_channelAdminLogEventsFilter($0) } @@ -960,12 +961,16 @@ public struct Api { _1.serialize(buffer, boxed) case let _1 as Api.Update: _1.serialize(buffer, boxed) + case let _1 as Api.messages.VotesList: + _1.serialize(buffer, boxed) case let _1 as Api.PopularContact: _1.serialize(buffer, boxed) case let _1 as Api.FolderPeer: _1.serialize(buffer, boxed) case let _1 as Api.ChannelParticipant: _1.serialize(buffer, boxed) + case let _1 as Api.MessageUserVote: + _1.serialize(buffer, boxed) case let _1 as Api.contacts.Blocked: _1.serialize(buffer, boxed) case let _1 as Api.InputDialogPeer: @@ -1264,8 +1269,6 @@ public struct Api { _1.serialize(buffer, boxed) case let _1 as Api.messages.FeaturedStickers: _1.serialize(buffer, boxed) - case let _1 as Api.auth.LoginTokenInfo: - _1.serialize(buffer, boxed) case let _1 as Api.PhoneCallDiscardReason: _1.serialize(buffer, boxed) case let _1 as Api.NearestDc: @@ -1324,6 +1327,8 @@ public struct Api { _1.serialize(buffer, boxed) case let _1 as Api.PhoneConnection: _1.serialize(buffer, boxed) + case let _1 as Api.help.UserInfo: + _1.serialize(buffer, boxed) case let _1 as Api.AccountDaysTTL: _1.serialize(buffer, boxed) case let _1 as Api.SecureValueType: diff --git a/submodules/TelegramApi/Sources/Api1.swift b/submodules/TelegramApi/Sources/Api1.swift index dfdba7d654..dbf3f8df84 100644 --- a/submodules/TelegramApi/Sources/Api1.swift +++ b/submodules/TelegramApi/Sources/Api1.swift @@ -219,6 +219,68 @@ public struct messages { } } + } + public enum VotesList: TypeConstructorDescription { + case votesList(flags: Int32, count: Int32, votes: [Api.MessageUserVote], users: [Api.User], nextOffset: String?) + + public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { + switch self { + case .votesList(let flags, let count, let votes, let users, let nextOffset): + if boxed { + buffer.appendInt32(136574537) + } + serializeInt32(flags, buffer: buffer, boxed: false) + serializeInt32(count, buffer: buffer, boxed: false) + buffer.appendInt32(481674261) + buffer.appendInt32(Int32(votes.count)) + for item in votes { + item.serialize(buffer, true) + } + buffer.appendInt32(481674261) + buffer.appendInt32(Int32(users.count)) + for item in users { + item.serialize(buffer, true) + } + if Int(flags) & Int(1 << 0) != 0 {serializeString(nextOffset!, buffer: buffer, boxed: false)} + break + } + } + + public func descriptionFields() -> (String, [(String, Any)]) { + switch self { + case .votesList(let flags, let count, let votes, let users, let nextOffset): + return ("votesList", [("flags", flags), ("count", count), ("votes", votes), ("users", users), ("nextOffset", nextOffset)]) + } + } + + public static func parse_votesList(_ reader: BufferReader) -> VotesList? { + var _1: Int32? + _1 = reader.readInt32() + var _2: Int32? + _2 = reader.readInt32() + var _3: [Api.MessageUserVote]? + if let _ = reader.readInt32() { + _3 = Api.parseVector(reader, elementSignature: 0, elementType: Api.MessageUserVote.self) + } + var _4: [Api.User]? + if let _ = reader.readInt32() { + _4 = Api.parseVector(reader, elementSignature: 0, elementType: Api.User.self) + } + var _5: String? + if Int(_1!) & Int(1 << 0) != 0 {_5 = parseString(reader) } + let _c1 = _1 != nil + let _c2 = _2 != nil + let _c3 = _3 != nil + let _c4 = _4 != nil + let _c5 = (Int(_1!) & Int(1 << 0) == 0) || _5 != nil + if _c1 && _c2 && _c3 && _c4 && _c5 { + return Api.messages.VotesList.votesList(flags: _1!, count: _2!, votes: _3!, users: _4!, nextOffset: _5) + } + else { + return nil + } + } + } public enum Stickers: TypeConstructorDescription { case stickersNotModified @@ -1962,13 +2024,13 @@ public extension Api { } public enum PollResults: TypeConstructorDescription { - case pollResults(flags: Int32, results: [Api.PollAnswerVoters]?, totalVoters: Int32?) + case pollResults(flags: Int32, results: [Api.PollAnswerVoters]?, totalVoters: Int32?, recentVoters: [Int32]?) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { - case .pollResults(let flags, let results, let totalVoters): + case .pollResults(let flags, let results, let totalVoters, let recentVoters): if boxed { - buffer.appendInt32(1465219162) + buffer.appendInt32(-932174686) } serializeInt32(flags, buffer: buffer, boxed: false) if Int(flags) & Int(1 << 1) != 0 {buffer.appendInt32(481674261) @@ -1977,14 +2039,19 @@ public extension Api { item.serialize(buffer, true) }} if Int(flags) & Int(1 << 2) != 0 {serializeInt32(totalVoters!, buffer: buffer, boxed: false)} + if Int(flags) & Int(1 << 3) != 0 {buffer.appendInt32(481674261) + buffer.appendInt32(Int32(recentVoters!.count)) + for item in recentVoters! { + serializeInt32(item, buffer: buffer, boxed: false) + }} break } } public func descriptionFields() -> (String, [(String, Any)]) { switch self { - case .pollResults(let flags, let results, let totalVoters): - return ("pollResults", [("flags", flags), ("results", results), ("totalVoters", totalVoters)]) + case .pollResults(let flags, let results, let totalVoters, let recentVoters): + return ("pollResults", [("flags", flags), ("results", results), ("totalVoters", totalVoters), ("recentVoters", recentVoters)]) } } @@ -1997,11 +2064,16 @@ public extension Api { } } var _3: Int32? if Int(_1!) & Int(1 << 2) != 0 {_3 = reader.readInt32() } + var _4: [Int32]? + if Int(_1!) & Int(1 << 3) != 0 {if let _ = reader.readInt32() { + _4 = Api.parseVector(reader, elementSignature: -1471112230, elementType: Int32.self) + } } let _c1 = _1 != nil let _c2 = (Int(_1!) & Int(1 << 1) == 0) || _2 != nil let _c3 = (Int(_1!) & Int(1 << 2) == 0) || _3 != nil - if _c1 && _c2 && _c3 { - return Api.PollResults.pollResults(flags: _1!, results: _2, totalVoters: _3) + let _c4 = (Int(_1!) & Int(1 << 3) == 0) || _4 != nil + if _c1 && _c2 && _c3 && _c4 { + return Api.PollResults.pollResults(flags: _1!, results: _2, totalVoters: _3, recentVoters: _4) } else { return nil @@ -3601,7 +3673,6 @@ public extension Api { } public enum AutoDownloadSettings: TypeConstructorDescription { case autoDownloadSettings(flags: Int32, photoSizeMax: Int32, videoSizeMax: Int32, fileSizeMax: Int32, videoUploadMaxbitrate: Int32) - case autoDownloadSettingsLegacy(flags: Int32, photoSizeMax: Int32, videoSizeMax: Int32, fileSizeMax: Int32) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { @@ -3615,15 +3686,6 @@ public extension Api { serializeInt32(fileSizeMax, buffer: buffer, boxed: false) serializeInt32(videoUploadMaxbitrate, buffer: buffer, boxed: false) break - case .autoDownloadSettingsLegacy(let flags, let photoSizeMax, let videoSizeMax, let fileSizeMax): - if boxed { - buffer.appendInt32(-767099577) - } - serializeInt32(flags, buffer: buffer, boxed: false) - serializeInt32(photoSizeMax, buffer: buffer, boxed: false) - serializeInt32(videoSizeMax, buffer: buffer, boxed: false) - serializeInt32(fileSizeMax, buffer: buffer, boxed: false) - break } } @@ -3631,8 +3693,6 @@ public extension Api { switch self { case .autoDownloadSettings(let flags, let photoSizeMax, let videoSizeMax, let fileSizeMax, let videoUploadMaxbitrate): return ("autoDownloadSettings", [("flags", flags), ("photoSizeMax", photoSizeMax), ("videoSizeMax", videoSizeMax), ("fileSizeMax", fileSizeMax), ("videoUploadMaxbitrate", videoUploadMaxbitrate)]) - case .autoDownloadSettingsLegacy(let flags, let photoSizeMax, let videoSizeMax, let fileSizeMax): - return ("autoDownloadSettingsLegacy", [("flags", flags), ("photoSizeMax", photoSizeMax), ("videoSizeMax", videoSizeMax), ("fileSizeMax", fileSizeMax)]) } } @@ -3659,26 +3719,6 @@ public extension Api { return nil } } - public static func parse_autoDownloadSettingsLegacy(_ reader: BufferReader) -> AutoDownloadSettings? { - var _1: Int32? - _1 = reader.readInt32() - var _2: Int32? - _2 = reader.readInt32() - var _3: Int32? - _3 = reader.readInt32() - var _4: Int32? - _4 = reader.readInt32() - let _c1 = _1 != nil - let _c2 = _2 != nil - let _c3 = _3 != nil - let _c4 = _4 != nil - if _c1 && _c2 && _c3 && _c4 { - return Api.AutoDownloadSettings.autoDownloadSettingsLegacy(flags: _1!, photoSizeMax: _2!, videoSizeMax: _3!, fileSizeMax: _4!) - } - else { - return nil - } - } } public enum StickerSetCovered: TypeConstructorDescription { @@ -8148,6 +8188,44 @@ public extension Api { } } + } + public enum MessageUserVote: TypeConstructorDescription { + case messageUserVote(userId: Int32, option: Buffer) + + public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { + switch self { + case .messageUserVote(let userId, let option): + if boxed { + buffer.appendInt32(-233638547) + } + serializeInt32(userId, buffer: buffer, boxed: false) + serializeBytes(option, buffer: buffer, boxed: false) + break + } + } + + public func descriptionFields() -> (String, [(String, Any)]) { + switch self { + case .messageUserVote(let userId, let option): + return ("messageUserVote", [("userId", userId), ("option", option)]) + } + } + + public static func parse_messageUserVote(_ reader: BufferReader) -> MessageUserVote? { + var _1: Int32? + _1 = reader.readInt32() + var _2: Buffer? + _2 = parseBytes(reader) + let _c1 = _1 != nil + let _c2 = _2 != nil + if _c1 && _c2 { + return Api.MessageUserVote.messageUserVote(userId: _1!, option: _2!) + } + else { + return nil + } + } + } public enum InputDialogPeer: TypeConstructorDescription { case inputDialogPeer(peer: Api.InputPeer) @@ -10159,8 +10237,8 @@ public extension Api { case inputMediaPhotoExternal(flags: Int32, url: String, ttlSeconds: Int32?) case inputMediaDocumentExternal(flags: Int32, url: String, ttlSeconds: Int32?) case inputMediaContact(phoneNumber: String, firstName: String, lastName: String, vcard: String) - case inputMediaPoll(poll: Api.Poll) case inputMediaGeoLive(flags: Int32, geoPoint: Api.InputGeoPoint, period: Int32?) + case inputMediaPoll(flags: Int32, poll: Api.Poll, correctAnswers: [Buffer]?) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { @@ -10288,12 +10366,6 @@ public extension Api { serializeString(lastName, buffer: buffer, boxed: false) serializeString(vcard, buffer: buffer, boxed: false) break - case .inputMediaPoll(let poll): - if boxed { - buffer.appendInt32(112424539) - } - poll.serialize(buffer, true) - break case .inputMediaGeoLive(let flags, let geoPoint, let period): if boxed { buffer.appendInt32(-833715459) @@ -10302,6 +10374,18 @@ public extension Api { geoPoint.serialize(buffer, true) if Int(flags) & Int(1 << 1) != 0 {serializeInt32(period!, buffer: buffer, boxed: false)} break + case .inputMediaPoll(let flags, let poll, let correctAnswers): + if boxed { + buffer.appendInt32(-1410741723) + } + serializeInt32(flags, buffer: buffer, boxed: false) + poll.serialize(buffer, true) + if Int(flags) & Int(1 << 0) != 0 {buffer.appendInt32(481674261) + buffer.appendInt32(Int32(correctAnswers!.count)) + for item in correctAnswers! { + serializeBytes(item, buffer: buffer, boxed: false) + }} + break } } @@ -10333,10 +10417,10 @@ public extension Api { return ("inputMediaDocumentExternal", [("flags", flags), ("url", url), ("ttlSeconds", ttlSeconds)]) case .inputMediaContact(let phoneNumber, let firstName, let lastName, let vcard): return ("inputMediaContact", [("phoneNumber", phoneNumber), ("firstName", firstName), ("lastName", lastName), ("vcard", vcard)]) - case .inputMediaPoll(let poll): - return ("inputMediaPoll", [("poll", poll)]) case .inputMediaGeoLive(let flags, let geoPoint, let period): return ("inputMediaGeoLive", [("flags", flags), ("geoPoint", geoPoint), ("period", period)]) + case .inputMediaPoll(let flags, let poll, let correctAnswers): + return ("inputMediaPoll", [("flags", flags), ("poll", poll), ("correctAnswers", correctAnswers)]) } } @@ -10605,19 +10689,6 @@ public extension Api { return nil } } - public static func parse_inputMediaPoll(_ reader: BufferReader) -> InputMedia? { - var _1: Api.Poll? - if let signature = reader.readInt32() { - _1 = Api.parse(reader, signature: signature) as? Api.Poll - } - let _c1 = _1 != nil - if _c1 { - return Api.InputMedia.inputMediaPoll(poll: _1!) - } - else { - return nil - } - } public static func parse_inputMediaGeoLive(_ reader: BufferReader) -> InputMedia? { var _1: Int32? _1 = reader.readInt32() @@ -10637,6 +10708,27 @@ public extension Api { return nil } } + public static func parse_inputMediaPoll(_ reader: BufferReader) -> InputMedia? { + var _1: Int32? + _1 = reader.readInt32() + var _2: Api.Poll? + if let signature = reader.readInt32() { + _2 = Api.parse(reader, signature: signature) as? Api.Poll + } + var _3: [Buffer]? + if Int(_1!) & Int(1 << 0) != 0 {if let _ = reader.readInt32() { + _3 = Api.parseVector(reader, elementSignature: -1255641564, elementType: Buffer.self) + } } + let _c1 = _1 != nil + let _c2 = _2 != nil + let _c3 = (Int(_1!) & Int(1 << 0) == 0) || _3 != nil + if _c1 && _c2 && _c3 { + return Api.InputMedia.inputMediaPoll(flags: _1!, poll: _2!, correctAnswers: _3) + } + else { + return nil + } + } } public enum InputPeer: TypeConstructorDescription { @@ -20230,17 +20322,10 @@ public extension Api { } public enum Theme: TypeConstructorDescription { - case themeDocumentNotModified case theme(flags: Int32, id: Int64, accessHash: Int64, slug: String, title: String, document: Api.Document?, settings: Api.ThemeSettings?, installsCount: Int32) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { - case .themeDocumentNotModified: - if boxed { - buffer.appendInt32(1211967244) - } - - break case .theme(let flags, let id, let accessHash, let slug, let title, let document, let settings, let installsCount): if boxed { buffer.appendInt32(42930452) @@ -20259,16 +20344,11 @@ public extension Api { public func descriptionFields() -> (String, [(String, Any)]) { switch self { - case .themeDocumentNotModified: - return ("themeDocumentNotModified", []) case .theme(let flags, let id, let accessHash, let slug, let title, let document, let settings, let installsCount): return ("theme", [("flags", flags), ("id", id), ("accessHash", accessHash), ("slug", slug), ("title", title), ("document", document), ("settings", settings), ("installsCount", installsCount)]) } } - public static func parse_themeDocumentNotModified(_ reader: BufferReader) -> Theme? { - return Api.Theme.themeDocumentNotModified - } public static func parse_theme(_ reader: BufferReader) -> Theme? { var _1: Int32? _1 = reader.readInt32() diff --git a/submodules/TelegramApi/Sources/Api2.swift b/submodules/TelegramApi/Sources/Api2.swift index 0eacd270a2..f0cb6195e9 100644 --- a/submodules/TelegramApi/Sources/Api2.swift +++ b/submodules/TelegramApi/Sources/Api2.swift @@ -859,76 +859,6 @@ public struct auth { return Api.auth.CodeType.codeTypeFlashCall } - } - public enum LoginTokenInfo: TypeConstructorDescription { - case loginTokenInfo(dcId: Int32, authKeyId: Int64, deviceModel: String, platform: String, systemVersion: String, apiId: Int32, appName: String, appVersion: String, ip: String, region: String) - - public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { - switch self { - case .loginTokenInfo(let dcId, let authKeyId, let deviceModel, let platform, let systemVersion, let apiId, let appName, let appVersion, let ip, let region): - if boxed { - buffer.appendInt32(1375940666) - } - serializeInt32(dcId, buffer: buffer, boxed: false) - serializeInt64(authKeyId, buffer: buffer, boxed: false) - serializeString(deviceModel, buffer: buffer, boxed: false) - serializeString(platform, buffer: buffer, boxed: false) - serializeString(systemVersion, buffer: buffer, boxed: false) - serializeInt32(apiId, buffer: buffer, boxed: false) - serializeString(appName, buffer: buffer, boxed: false) - serializeString(appVersion, buffer: buffer, boxed: false) - serializeString(ip, buffer: buffer, boxed: false) - serializeString(region, buffer: buffer, boxed: false) - break - } - } - - public func descriptionFields() -> (String, [(String, Any)]) { - switch self { - case .loginTokenInfo(let dcId, let authKeyId, let deviceModel, let platform, let systemVersion, let apiId, let appName, let appVersion, let ip, let region): - return ("loginTokenInfo", [("dcId", dcId), ("authKeyId", authKeyId), ("deviceModel", deviceModel), ("platform", platform), ("systemVersion", systemVersion), ("apiId", apiId), ("appName", appName), ("appVersion", appVersion), ("ip", ip), ("region", region)]) - } - } - - public static func parse_loginTokenInfo(_ reader: BufferReader) -> LoginTokenInfo? { - var _1: Int32? - _1 = reader.readInt32() - var _2: Int64? - _2 = reader.readInt64() - var _3: String? - _3 = parseString(reader) - var _4: String? - _4 = parseString(reader) - var _5: String? - _5 = parseString(reader) - var _6: Int32? - _6 = reader.readInt32() - var _7: String? - _7 = parseString(reader) - var _8: String? - _8 = parseString(reader) - var _9: String? - _9 = parseString(reader) - var _10: String? - _10 = parseString(reader) - let _c1 = _1 != nil - let _c2 = _2 != nil - let _c3 = _3 != nil - let _c4 = _4 != nil - let _c5 = _5 != nil - let _c6 = _6 != nil - let _c7 = _7 != nil - let _c8 = _8 != nil - let _c9 = _9 != nil - let _c10 = _10 != nil - if _c1 && _c2 && _c3 && _c4 && _c5 && _c6 && _c7 && _c8 && _c9 && _c10 { - return Api.auth.LoginTokenInfo.loginTokenInfo(dcId: _1!, authKeyId: _2!, deviceModel: _3!, platform: _4!, systemVersion: _5!, apiId: _6!, appName: _7!, appVersion: _8!, ip: _9!, region: _10!) - } - else { - return nil - } - } - } public enum SentCodeType: TypeConstructorDescription { case sentCodeTypeApp(length: Int32) @@ -1929,6 +1859,70 @@ public struct help { } } + } + public enum UserInfo: TypeConstructorDescription { + case userInfoEmpty + case userInfo(message: String, entities: [Api.MessageEntity], author: String, date: Int32) + + public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { + switch self { + case .userInfoEmpty: + if boxed { + buffer.appendInt32(-206688531) + } + + break + case .userInfo(let message, let entities, let author, let date): + if boxed { + buffer.appendInt32(32192344) + } + serializeString(message, buffer: buffer, boxed: false) + buffer.appendInt32(481674261) + buffer.appendInt32(Int32(entities.count)) + for item in entities { + item.serialize(buffer, true) + } + serializeString(author, buffer: buffer, boxed: false) + serializeInt32(date, buffer: buffer, boxed: false) + break + } + } + + public func descriptionFields() -> (String, [(String, Any)]) { + switch self { + case .userInfoEmpty: + return ("userInfoEmpty", []) + case .userInfo(let message, let entities, let author, let date): + return ("userInfo", [("message", message), ("entities", entities), ("author", author), ("date", date)]) + } + } + + public static func parse_userInfoEmpty(_ reader: BufferReader) -> UserInfo? { + return Api.help.UserInfo.userInfoEmpty + } + public static func parse_userInfo(_ reader: BufferReader) -> UserInfo? { + var _1: String? + _1 = parseString(reader) + var _2: [Api.MessageEntity]? + if let _ = reader.readInt32() { + _2 = Api.parseVector(reader, elementSignature: 0, elementType: Api.MessageEntity.self) + } + var _3: String? + _3 = parseString(reader) + var _4: Int32? + _4 = reader.readInt32() + let _c1 = _1 != nil + let _c2 = _2 != nil + let _c3 = _3 != nil + let _c4 = _4 != nil + if _c1 && _c2 && _c3 && _c4 { + return Api.help.UserInfo.userInfo(message: _1!, entities: _2!, author: _3!, date: _4!) + } + else { + return nil + } + } + } public enum TermsOfServiceUpdate: TypeConstructorDescription { case termsOfServiceUpdateEmpty(expires: Int32) diff --git a/submodules/TelegramApi/Sources/Api3.swift b/submodules/TelegramApi/Sources/Api3.swift index 4d4168b2e0..74e4884bf6 100644 --- a/submodules/TelegramApi/Sources/Api3.swift +++ b/submodules/TelegramApi/Sources/Api3.swift @@ -3195,6 +3195,25 @@ public extension Api { return result }) } + + public static func getPollVotes(flags: Int32, peer: Api.InputPeer, id: Int32, option: Buffer?, offset: String?, limit: Int32) -> (FunctionDescription, Buffer, DeserializeFunctionResponse) { + let buffer = Buffer() + buffer.appendInt32(-1200736242) + serializeInt32(flags, buffer: buffer, boxed: false) + peer.serialize(buffer, true) + serializeInt32(id, buffer: buffer, boxed: false) + if Int(flags) & Int(1 << 0) != 0 {serializeBytes(option!, buffer: buffer, boxed: false)} + if Int(flags) & Int(1 << 1) != 0 {serializeString(offset!, buffer: buffer, boxed: false)} + serializeInt32(limit, buffer: buffer, boxed: false) + return (FunctionDescription(name: "messages.getPollVotes", parameters: [("flags", flags), ("peer", peer), ("id", id), ("option", option), ("offset", offset), ("limit", limit)]), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.messages.VotesList? in + let reader = BufferReader(buffer) + var result: Api.messages.VotesList? + if let signature = reader.readInt32() { + result = Api.parse(reader, signature: signature) as? Api.messages.VotesList + } + return result + }) + } } public struct channels { public static func readHistory(channel: Api.InputChannel, maxId: Int32) -> (FunctionDescription, Buffer, DeserializeFunctionResponse) { @@ -4796,6 +4815,40 @@ public extension Api { return result }) } + + public static func editUserInfo(userId: Api.InputUser, message: String, entities: [Api.MessageEntity]) -> (FunctionDescription, Buffer, DeserializeFunctionResponse) { + let buffer = Buffer() + buffer.appendInt32(1723407216) + userId.serialize(buffer, true) + serializeString(message, buffer: buffer, boxed: false) + buffer.appendInt32(481674261) + buffer.appendInt32(Int32(entities.count)) + for item in entities { + item.serialize(buffer, true) + } + return (FunctionDescription(name: "help.editUserInfo", parameters: [("userId", userId), ("message", message), ("entities", entities)]), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.help.UserInfo? in + let reader = BufferReader(buffer) + var result: Api.help.UserInfo? + if let signature = reader.readInt32() { + result = Api.parse(reader, signature: signature) as? Api.help.UserInfo + } + return result + }) + } + + public static func getUserInfo(userId: Api.InputUser) -> (FunctionDescription, Buffer, DeserializeFunctionResponse) { + let buffer = Buffer() + buffer.appendInt32(59377875) + userId.serialize(buffer, true) + return (FunctionDescription(name: "help.getUserInfo", parameters: [("userId", userId)]), buffer, DeserializeFunctionResponse { (buffer: Buffer) -> Api.help.UserInfo? in + let reader = BufferReader(buffer) + var result: Api.help.UserInfo? + if let signature = reader.readInt32() { + result = Api.parse(reader, signature: signature) as? Api.help.UserInfo + } + return result + }) + } } public struct updates { public static func getState() -> (FunctionDescription, Buffer, DeserializeFunctionResponse) { diff --git a/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift b/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift index b627fdd6a8..ad168e7d01 100644 --- a/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift +++ b/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift @@ -2347,7 +2347,19 @@ func replayFinalState(accountManager: AccountManager, postbox: Postbox, accountP if let apiPoll = apiPoll { switch apiPoll { case let .poll(id, flags, question, answers): - updatedPoll = TelegramMediaPoll(pollId: MediaId(namespace: Namespaces.Media.CloudPoll, id: id), text: question, options: answers.map(TelegramMediaPollOption.init(apiOption:)), results: TelegramMediaPollResults(apiResults: results), isClosed: (flags & (1 << 0)) != 0) + let publicity: TelegramMediaPollPublicity + if (flags & (1 << 1)) != 0 { + publicity = .public + } else { + publicity = .anonymous + } + let kind: TelegramMediaPollKind + if (flags & (1 << 3)) != 0 { + kind = .quiz + } else { + kind = .poll(multipleAnswers: (flags & (1 << 2)) != 0) + } + updatedPoll = TelegramMediaPoll(pollId: MediaId(namespace: Namespaces.Media.CloudPoll, id: id), publicity: publicity, kind: kind, text: question, options: answers.map(TelegramMediaPollOption.init(apiOption:)), correctAnswers: nil, results: TelegramMediaPollResults(apiResults: results), isClosed: (flags & (1 << 0)) != 0) } } diff --git a/submodules/TelegramCore/Sources/ApiUtils.swift b/submodules/TelegramCore/Sources/ApiUtils.swift index 8b4b19cb23..f7beff73f4 100644 --- a/submodules/TelegramCore/Sources/ApiUtils.swift +++ b/submodules/TelegramCore/Sources/ApiUtils.swift @@ -4,7 +4,7 @@ import TelegramApi import SyncCore -extension PeerReference { +public extension PeerReference { var id: PeerId { switch self { case let .user(id, _): @@ -15,7 +15,9 @@ extension PeerReference { return PeerId(namespace: Namespaces.Peer.CloudChannel, id: id) } } - +} + +extension PeerReference { var inputPeer: Api.InputPeer { switch self { case let .user(id, accessHash): diff --git a/submodules/TelegramCore/Sources/AutodownloadSettings.swift b/submodules/TelegramCore/Sources/AutodownloadSettings.swift index b86130c742..ff23b1d15c 100644 --- a/submodules/TelegramCore/Sources/AutodownloadSettings.swift +++ b/submodules/TelegramCore/Sources/AutodownloadSettings.swift @@ -24,8 +24,6 @@ extension AutodownloadPresetSettings { switch apiAutodownloadSettings { case let .autoDownloadSettings(flags, photoSizeMax, videoSizeMax, fileSizeMax, videoUploadMaxbitrate): self.init(disabled: (flags & (1 << 0)) != 0, photoSizeMax: photoSizeMax, videoSizeMax: videoSizeMax, fileSizeMax: fileSizeMax, preloadLargeVideo: (flags & (1 << 1)) != 0, lessDataForPhoneCalls: (flags & (1 << 3)) != 0, videoUploadMaxbitrate: videoUploadMaxbitrate) - case let .autoDownloadSettingsLegacy(flags, photoSizeMax, videoSizeMax, fileSizeMax): - self.init(disabled: (flags & (1 << 0)) != 0, photoSizeMax: photoSizeMax, videoSizeMax: videoSizeMax, fileSizeMax: fileSizeMax, preloadLargeVideo: (flags & (1 << 1)) != 0, lessDataForPhoneCalls: (flags & (1 << 3)) != 0, videoUploadMaxbitrate: 0) } } } diff --git a/submodules/TelegramCore/Sources/PendingMessageUploadedContent.swift b/submodules/TelegramCore/Sources/PendingMessageUploadedContent.swift index 82550c9813..6715783a15 100644 --- a/submodules/TelegramCore/Sources/PendingMessageUploadedContent.swift +++ b/submodules/TelegramCore/Sources/PendingMessageUploadedContent.swift @@ -140,7 +140,28 @@ func mediaContentToUpload(network: Network, postbox: Postbox, auxiliaryMethods: if peerId.namespace == Namespaces.Peer.SecretChat { return .fail(.generic) } - let inputPoll = Api.InputMedia.inputMediaPoll(poll: Api.Poll.poll(id: 0, flags: 0, question: poll.text, answers: poll.options.map({ $0.apiOption }))) + var pollFlags: Int32 = 0 + switch poll.kind { + case let .poll(multipleAnswers): + if multipleAnswers { + pollFlags |= 1 << 2 + } + case .quiz: + pollFlags |= 1 << 3 + } + switch poll.publicity { + case .anonymous: + break + case .public: + pollFlags |= 1 << 1 + } + var pollMediaFlags: Int32 = 0 + var correctAnswers: [Buffer]? + if let correctAnswersValue = poll.correctAnswers { + pollMediaFlags |= 1 << 0 + correctAnswers = correctAnswersValue.map { Buffer(data: $0) } + } + let inputPoll = Api.InputMedia.inputMediaPoll(flags: pollMediaFlags, poll: Api.Poll.poll(id: 0, flags: pollFlags, question: poll.text, answers: poll.options.map({ $0.apiOption })), correctAnswers: correctAnswers) return .single(.content(PendingMessageUploadedContentAndReuploadInfo(content: .media(inputPoll, text), reuploadInfo: nil))) } else { return nil diff --git a/submodules/TelegramCore/Sources/Polls.swift b/submodules/TelegramCore/Sources/Polls.swift index 207cd11cfb..1e3b1ca56a 100644 --- a/submodules/TelegramCore/Sources/Polls.swift +++ b/submodules/TelegramCore/Sources/Polls.swift @@ -10,13 +10,13 @@ public enum RequestMessageSelectPollOptionError { case generic } -public func requestMessageSelectPollOption(account: Account, messageId: MessageId, opaqueIdentifier: Data?) -> Signal { +public func requestMessageSelectPollOption(account: Account, messageId: MessageId, opaqueIdentifiers: [Data]) -> Signal { return account.postbox.loadedPeerWithId(messageId.peerId) |> take(1) |> castError(RequestMessageSelectPollOptionError.self) |> mapToSignal { peer in if let inputPeer = apiInputPeer(peer) { - return account.network.request(Api.functions.messages.sendVote(peer: inputPeer, msgId: messageId.id, options: opaqueIdentifier.flatMap({ [Buffer(data: $0)] }) ?? [])) + return account.network.request(Api.functions.messages.sendVote(peer: inputPeer, msgId: messageId.id, options: opaqueIdentifiers.map { Buffer(data: $0) })) |> mapError { _ -> RequestMessageSelectPollOptionError in return .generic } @@ -51,7 +51,32 @@ public func requestClosePoll(postbox: Postbox, network: Network, stateManager: A } var flags: Int32 = 0 flags |= 1 << 14 - return network.request(Api.functions.messages.editMessage(flags: flags, peer: inputPeer, id: messageId.id, message: nil, media: .inputMediaPoll(poll: .poll(id: poll.pollId.id, flags: 1 << 0, question: poll.text, answers: poll.options.map({ $0.apiOption }))), replyMarkup: nil, entities: nil, scheduleDate: nil)) + + var pollFlags: Int32 = 0 + switch poll.kind { + case let .poll(multipleAnswers): + if multipleAnswers { + pollFlags |= 1 << 2 + } + case .quiz: + pollFlags |= 1 << 3 + } + switch poll.publicity { + case .anonymous: + break + case .public: + pollFlags |= 1 << 1 + } + var pollMediaFlags: Int32 = 0 + var correctAnswers: [Buffer]? + if let correctAnswersValue = poll.correctAnswers { + pollMediaFlags |= 1 << 0 + correctAnswers = correctAnswersValue.map { Buffer(data: $0) } + } + + pollFlags |= 1 << 0 + + return network.request(Api.functions.messages.editMessage(flags: flags, peer: inputPeer, id: messageId.id, message: nil, media: .inputMediaPoll(flags: pollMediaFlags, poll: .poll(id: poll.pollId.id, flags: pollFlags, question: poll.text, answers: poll.options.map({ $0.apiOption })), correctAnswers: correctAnswers), replyMarkup: nil, entities: nil, scheduleDate: nil)) |> map(Optional.init) |> `catch` { _ -> Signal in return .single(nil) @@ -64,3 +89,198 @@ public func requestClosePoll(postbox: Postbox, network: Network, stateManager: A } } } + +private final class PollResultsOptionContext { + private let queue: Queue + private let account: Account + private let messageId: MessageId + private let opaqueIdentifier: Data + private let disposable = MetaDisposable() + private var isLoadingMore: Bool = false + private var hasLoadedOnce: Bool = false + private var canLoadMore: Bool = true + private var nextOffset: String? + private var results: [RenderedPeer] = [] + private var count: Int + + let state = Promise() + + init(queue: Queue, account: Account, messageId: MessageId, opaqueIdentifier: Data, count: Int) { + self.queue = queue + self.account = account + self.messageId = messageId + self.opaqueIdentifier = opaqueIdentifier + self.count = count + } + + deinit { + self.disposable.dispose() + } + + func loadMore() { + if self.isLoadingMore { + return + } + self.isLoadingMore = true + let messageId = self.messageId + let opaqueIdentifier = self.opaqueIdentifier + let account = self.account + let nextOffset = self.nextOffset + self.disposable.set((self.account.postbox.transaction { transaction -> Api.InputPeer? in + return transaction.getPeer(messageId.peerId).flatMap(apiInputPeer) + } + |> mapToSignal { inputPeer -> Signal<([RenderedPeer], Int, String?), NoError> in + if let inputPeer = inputPeer { + return account.network.request(Api.functions.messages.getPollVotes(flags: 1 << 0, peer: inputPeer, id: messageId.id, option: Buffer(data: opaqueIdentifier), offset: nextOffset, limit: nextOffset == nil ? 15 : 50)) + |> map(Optional.init) + |> `catch` { _ -> Signal in + return .single(nil) + } + |> mapToSignal { result -> Signal<([RenderedPeer], Int, String?), NoError> in + return account.postbox.transaction { transaction -> ([RenderedPeer], Int, String?) in + guard let result = result else { + return ([], 0, nil) + } + switch result { + case let .votesList(_, count, votes, users, nextOffset): + var peers: [Peer] = [] + for apiUser in users { + peers.append(TelegramUser(user: apiUser)) + } + updatePeers(transaction: transaction, peers: peers, update: { _, updated in + return updated + }) + var resultPeers: [RenderedPeer] = [] + for vote in votes { + switch vote { + case let .messageUserVote(userId, _): + if let peer = transaction.getPeer(PeerId(namespace: Namespaces.Peer.CloudUser, id: userId)) { + resultPeers.append(RenderedPeer(peer: peer)) + } + } + } + return (resultPeers, Int(count), nextOffset) + } + } + } + } else { + return .single(([], 0, nil)) + } + } + |> deliverOn(self.queue)).start(next: { [weak self] peers, updatedCount, nextOffset in + guard let strongSelf = self else { + return + } + var existingIds = Set(strongSelf.results.map { $0.peerId }) + for peer in peers { + if !existingIds.contains(peer.peerId) { + strongSelf.results.append(peer) + existingIds.insert(peer.peerId) + } + } + strongSelf.isLoadingMore = false + strongSelf.hasLoadedOnce = true + strongSelf.canLoadMore = nextOffset != nil + strongSelf.nextOffset = nextOffset + if strongSelf.canLoadMore { + strongSelf.count = max(updatedCount, strongSelf.results.count) + } else { + strongSelf.count = strongSelf.results.count + } + strongSelf.updateState() + })) + self.updateState() + } + + func updateState() { + self.state.set(.single(PollResultsOptionState(peers: self.results, isLoadingMore: self.isLoadingMore, hasLoadedOnce: self.hasLoadedOnce, canLoadMore: self.canLoadMore, count: self.count))) + } +} + +public struct PollResultsOptionState: Equatable { + public var peers: [RenderedPeer] + public var isLoadingMore: Bool + public var hasLoadedOnce: Bool + public var canLoadMore: Bool + public var count: Int +} + +public struct PollResultsState: Equatable { + public var options: [Data: PollResultsOptionState] +} + +private final class PollResultsContextImpl { + private let queue: Queue + + private var optionContexts: [Data: PollResultsOptionContext] = [:] + + let state = Promise() + + init(queue: Queue, account: Account, messageId: MessageId, poll: TelegramMediaPoll) { + self.queue = queue + + for option in poll.options { + var count = 0 + if let voters = poll.results.voters { + for voter in voters { + if voter.opaqueIdentifier == option.opaqueIdentifier { + count = Int(voter.count) + } + } + } + self.optionContexts[option.opaqueIdentifier] = PollResultsOptionContext(queue: self.queue, account: account, messageId: messageId, opaqueIdentifier: option.opaqueIdentifier, count: count) + } + + self.state.set(combineLatest(queue: self.queue, self.optionContexts.map { (opaqueIdentifier, context) -> Signal<(Data, PollResultsOptionState), NoError> in + return context.state.get() + |> map { state -> (Data, PollResultsOptionState) in + return (opaqueIdentifier, state) + } + }) + |> map { states -> PollResultsState in + var options: [Data: PollResultsOptionState] = [:] + for (opaqueIdentifier, state) in states { + options[opaqueIdentifier] = state + } + return PollResultsState(options: options) + }) + + for (_, context) in self.optionContexts { + context.loadMore() + } + } + + func loadMore(optionOpaqueIdentifier: Data) { + self.optionContexts[optionOpaqueIdentifier]?.loadMore() + } +} + +public final class PollResultsContext { + private let queue: Queue = Queue() + private let impl: QueueLocalObject + + public var state: Signal { + return Signal { subscriber in + let disposable = MetaDisposable() + self.impl.with { impl in + disposable.set(impl.state.get().start(next: { value in + subscriber.putNext(value) + })) + } + return disposable + } + } + + public init(account: Account, messageId: MessageId, poll: TelegramMediaPoll) { + let queue = self.queue + self.impl = QueueLocalObject(queue: queue, generate: { + return PollResultsContextImpl(queue: queue, account: account, messageId: messageId, poll: poll) + }) + } + + public func loadMore(optionOpaqueIdentifier: Data) { + self.impl.with { impl in + impl.loadMore(optionOpaqueIdentifier: optionOpaqueIdentifier) + } + } +} diff --git a/submodules/TelegramCore/Sources/Serialization.swift b/submodules/TelegramCore/Sources/Serialization.swift index f0a22a6eb7..02470ccbac 100644 --- a/submodules/TelegramCore/Sources/Serialization.swift +++ b/submodules/TelegramCore/Sources/Serialization.swift @@ -210,7 +210,7 @@ public class BoxedMessage: NSObject { public class Serialization: NSObject, MTSerialization { public func currentLayer() -> UInt { - return 108 + return 109 } public func parseMessage(_ data: Data!) -> Any! { diff --git a/submodules/TelegramCore/Sources/StoreMessage_Telegram.swift b/submodules/TelegramCore/Sources/StoreMessage_Telegram.swift index c4f24f6dec..d5c0b31029 100644 --- a/submodules/TelegramCore/Sources/StoreMessage_Telegram.swift +++ b/submodules/TelegramCore/Sources/StoreMessage_Telegram.swift @@ -328,7 +328,19 @@ func textMediaAndExpirationTimerFromApiMedia(_ media: Api.MessageMedia?, _ peerI case let .messageMediaPoll(poll, results): switch poll { case let .poll(id, flags, question, answers): - return (TelegramMediaPoll(pollId: MediaId(namespace: Namespaces.Media.CloudPoll, id: id), text: question, options: answers.map(TelegramMediaPollOption.init(apiOption:)), results: TelegramMediaPollResults(apiResults: results), isClosed: (flags & (1 << 0)) != 0), nil) + let publicity: TelegramMediaPollPublicity + if (flags & (1 << 1)) != 0 { + publicity = .public + } else { + publicity = .anonymous + } + let kind: TelegramMediaPollKind + if (flags & (1 << 3)) != 0 { + kind = .quiz + } else { + kind = .poll(multipleAnswers: (flags & (1 << 2)) != 0) + } + return (TelegramMediaPoll(pollId: MediaId(namespace: Namespaces.Media.CloudPoll, id: id), publicity: publicity, kind: kind, text: question, options: answers.map(TelegramMediaPollOption.init(apiOption:)), correctAnswers: nil, results: TelegramMediaPollResults(apiResults: results), isClosed: (flags & (1 << 0)) != 0), nil) } } } diff --git a/submodules/TelegramCore/Sources/TelegramMediaPoll.swift b/submodules/TelegramCore/Sources/TelegramMediaPoll.swift index ab4e9fc689..0a80671435 100644 --- a/submodules/TelegramCore/Sources/TelegramMediaPoll.swift +++ b/submodules/TelegramCore/Sources/TelegramMediaPoll.swift @@ -21,7 +21,7 @@ extension TelegramMediaPollOptionVoters { init(apiVoters: Api.PollAnswerVoters) { switch apiVoters { case let .pollAnswerVoters(flags, option, voters): - self.init(selected: (flags & (1 << 0)) != 0, opaqueIdentifier: option.makeData(), count: voters) + self.init(selected: (flags & (1 << 0)) != 0, opaqueIdentifier: option.makeData(), count: voters, isCorrect: (flags & (1 << 1)) != 0) } } } @@ -29,8 +29,10 @@ extension TelegramMediaPollOptionVoters { extension TelegramMediaPollResults { init(apiResults: Api.PollResults) { switch apiResults { - case let .pollResults(_, results, totalVoters): - self.init(voters: results.flatMap({ $0.map(TelegramMediaPollOptionVoters.init(apiVoters:)) }), totalVoters: totalVoters) + case let .pollResults(_, results, totalVoters, recentVoters): + self.init(voters: results.flatMap({ $0.map(TelegramMediaPollOptionVoters.init(apiVoters:)) }), totalVoters: totalVoters, recentVoters: recentVoters.flatMap { recentVoters in + return recentVoters.map { PeerId(namespace: Namespaces.Peer.CloudUser, id: $0) } + } ?? []) } } } diff --git a/submodules/TelegramIntents/Sources/TelegramIntents.swift b/submodules/TelegramIntents/Sources/TelegramIntents.swift index 094e34a705..2215785209 100644 --- a/submodules/TelegramIntents/Sources/TelegramIntents.swift +++ b/submodules/TelegramIntents/Sources/TelegramIntents.swift @@ -134,7 +134,7 @@ public func donateSendMessageIntent(account: Account, sharedContext: SharedAccou if peer.id == account.peerId { signals.append(.single((peer, subject, savedMessagesAvatar))) } else { - let peerAndAvatar = (peerAvatarImage(account: account, peer: peer, authorOfMessage: nil, representation: peer.smallProfileImage, round: false) ?? .single(nil)) + let peerAndAvatar = (peerAvatarImage(account: account, peerReference: PeerReference(peer), authorOfMessage: nil, representation: peer.smallProfileImage, round: false) ?? .single(nil)) |> map { avatarImage in return (peer, subject, avatarImage) } diff --git a/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift index d71494e8cd..ae70b59e7b 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift @@ -387,8 +387,8 @@ public func makeDefaultDarkPresentationTheme(extendingThemeReference: Presentati ) let message = PresentationThemeChatMessage( - incoming: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x262628), highlightedFill: UIColor(rgb: 0x353539), stroke: UIColor(rgb: 0x262628)), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x262628), highlightedFill: UIColor(rgb: 0x353539), stroke: UIColor(rgb: 0x262628))), primaryTextColor: UIColor(rgb: 0xffffff), secondaryTextColor: UIColor(rgb: 0xffffff, alpha: 0.5), linkTextColor: UIColor(rgb: 0xffffff), linkHighlightColor: UIColor(rgb: 0xffffff, alpha: 0.5), scamColor: UIColor(rgb: 0xeb5545), textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: UIColor(rgb: 0xffffff), accentControlColor: UIColor(rgb: 0xffffff), mediaActiveControlColor: UIColor(rgb: 0xffffff), mediaInactiveControlColor: UIColor(rgb: 0xffffff, alpha: 0.4), mediaControlInnerBackgroundColor: UIColor(rgb: 0x262628), pendingActivityColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileTitleColor: UIColor(rgb: 0xffffff), fileDescriptionColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileDurationColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaPlaceholderColor: UIColor(rgb: 0x1f1f1f).mixedWith(UIColor(rgb: 0xffffff), alpha: 0.05), polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0x737373), radioProgress: UIColor(rgb: 0xffffff), highlight: UIColor(rgb: 0xffffff, alpha: 0.12), separator: UIColor(rgb: 0x000000), bar: UIColor(rgb: 0xffffff)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0x000000, alpha: 0.5), withoutWallpaper: UIColor(rgb: 0x000000, alpha: 0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xb2b2b2, alpha: 0.18)), actionButtonsTextColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xffffff)), textSelectionColor: UIColor(rgb: 0xffffff, alpha: 0.2), textSelectionKnobColor: UIColor(rgb: 0xffffff)), - outgoing: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x313131), gradientFill: UIColor(rgb: 0x313131), highlightedFill: UIColor(rgb: 0x464646), stroke: UIColor(rgb: 0x313131)), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x313131), gradientFill: UIColor(rgb: 0x313131), highlightedFill: UIColor(rgb: 0x464646), stroke: UIColor(rgb: 0x313131))), primaryTextColor: UIColor(rgb: 0xffffff), secondaryTextColor: UIColor(rgb: 0xffffff, alpha: 0.5), linkTextColor: UIColor(rgb: 0xffffff), linkHighlightColor: UIColor(rgb: 0xffffff, alpha: 0.5), scamColor: UIColor(rgb: 0xeb5545), textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: UIColor(rgb: 0xffffff), accentControlColor: UIColor(rgb: 0xffffff), mediaActiveControlColor: UIColor(rgb: 0xffffff), mediaInactiveControlColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaControlInnerBackgroundColor: UIColor(rgb: 0x313131), pendingActivityColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileTitleColor: UIColor(rgb: 0xffffff), fileDescriptionColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileDurationColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaPlaceholderColor: UIColor(rgb: 0x313131).mixedWith(UIColor(rgb: 0xffffff), alpha: 0.05), polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0xffffff), radioProgress: UIColor(rgb: 0xffffff), highlight: UIColor(rgb: 0xffffff).withAlphaComponent(0.12), separator: UIColor(rgb: 0xffffff, alpha: 0.5), bar: UIColor(rgb: 0xffffff)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0x000000, alpha: 0.5), withoutWallpaper: UIColor(rgb: 0x000000, alpha: 0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xb2b2b2, alpha: 0.18)), actionButtonsTextColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xffffff)), textSelectionColor: UIColor(rgb: 0xffffff, alpha: 0.2), textSelectionKnobColor: UIColor(rgb: 0xffffff)), + incoming: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x262628), highlightedFill: UIColor(rgb: 0x353539), stroke: UIColor(rgb: 0x262628)), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x262628), highlightedFill: UIColor(rgb: 0x353539), stroke: UIColor(rgb: 0x262628))), primaryTextColor: UIColor(rgb: 0xffffff), secondaryTextColor: UIColor(rgb: 0xffffff, alpha: 0.5), linkTextColor: UIColor(rgb: 0xffffff), linkHighlightColor: UIColor(rgb: 0xffffff, alpha: 0.5), scamColor: UIColor(rgb: 0xeb5545), textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: UIColor(rgb: 0xffffff), accentControlColor: UIColor(rgb: 0xffffff), accentControlDisabledColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaActiveControlColor: UIColor(rgb: 0xffffff), mediaInactiveControlColor: UIColor(rgb: 0xffffff, alpha: 0.4), mediaControlInnerBackgroundColor: UIColor(rgb: 0x262628), pendingActivityColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileTitleColor: UIColor(rgb: 0xffffff), fileDescriptionColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileDurationColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaPlaceholderColor: UIColor(rgb: 0x1f1f1f).mixedWith(UIColor(rgb: 0xffffff), alpha: 0.05), polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0x737373), radioProgress: UIColor(rgb: 0xffffff), highlight: UIColor(rgb: 0xffffff, alpha: 0.12), separator: UIColor(rgb: 0x000000), bar: UIColor(rgb: 0xffffff), barIconForeground: .white, barPositive: UIColor(rgb: 0x00A700), barNegative: UIColor(rgb: 0xFE3824)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0x000000, alpha: 0.5), withoutWallpaper: UIColor(rgb: 0x000000, alpha: 0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xb2b2b2, alpha: 0.18)), actionButtonsTextColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xffffff)), textSelectionColor: UIColor(rgb: 0xffffff, alpha: 0.2), textSelectionKnobColor: UIColor(rgb: 0xffffff)), + outgoing: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x313131), gradientFill: UIColor(rgb: 0x313131), highlightedFill: UIColor(rgb: 0x464646), stroke: UIColor(rgb: 0x313131)), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x313131), gradientFill: UIColor(rgb: 0x313131), highlightedFill: UIColor(rgb: 0x464646), stroke: UIColor(rgb: 0x313131))), primaryTextColor: UIColor(rgb: 0xffffff), secondaryTextColor: UIColor(rgb: 0xffffff, alpha: 0.5), linkTextColor: UIColor(rgb: 0xffffff), linkHighlightColor: UIColor(rgb: 0xffffff, alpha: 0.5), scamColor: UIColor(rgb: 0xeb5545), textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: UIColor(rgb: 0xffffff), accentControlColor: UIColor(rgb: 0xffffff), accentControlDisabledColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaActiveControlColor: UIColor(rgb: 0xffffff), mediaInactiveControlColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaControlInnerBackgroundColor: UIColor(rgb: 0x313131), pendingActivityColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileTitleColor: UIColor(rgb: 0xffffff), fileDescriptionColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileDurationColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaPlaceholderColor: UIColor(rgb: 0x313131).mixedWith(UIColor(rgb: 0xffffff), alpha: 0.05), polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0xffffff), radioProgress: UIColor(rgb: 0xffffff), highlight: UIColor(rgb: 0xffffff).withAlphaComponent(0.12), separator: UIColor(rgb: 0xffffff, alpha: 0.5), bar: UIColor(rgb: 0xffffff), barIconForeground: .white, barPositive: UIColor(rgb: 0xffffff), barNegative: UIColor(rgb: 0xffffff)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0x000000, alpha: 0.5), withoutWallpaper: UIColor(rgb: 0x000000, alpha: 0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xb2b2b2, alpha: 0.18)), actionButtonsTextColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xffffff)), textSelectionColor: UIColor(rgb: 0xffffff, alpha: 0.2), textSelectionKnobColor: UIColor(rgb: 0xffffff)), freeform: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x1f1f1f), highlightedFill: UIColor(rgb: 0x2a2a2a), stroke: UIColor(rgb: 0x1f1f1f)), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x1f1f1f), highlightedFill: UIColor(rgb: 0x2a2a2a), stroke: UIColor(rgb: 0x1f1f1f))), infoPrimaryTextColor: UIColor(rgb: 0xffffff), infoLinkTextColor: UIColor(rgb: 0xffffff), diff --git a/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift index 1261eb0bd6..a68b8d2109 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift @@ -643,8 +643,8 @@ public func makeDefaultDarkTintedPresentationTheme(extendingThemeReference: Pres let buttonStrokeColor = accentColor.withMultiplied(hue: 1.014, saturation: 0.56, brightness: 0.64).withAlphaComponent(0.15) let message = PresentationThemeChatMessage( - incoming: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: mainBackgroundColor, highlightedFill: highlightedIncomingBubbleColor, stroke: mainBackgroundColor), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: mainBackgroundColor, highlightedFill: highlightedIncomingBubbleColor, stroke: mainBackgroundColor)), primaryTextColor: .white, secondaryTextColor: mainSecondaryTextColor.withAlphaComponent(0.5), linkTextColor: accentColor, linkHighlightColor: accentColor.withAlphaComponent(0.5), scamColor: UIColor(rgb: 0xff6767), textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: accentColor, accentControlColor: accentColor, mediaActiveControlColor: accentColor, mediaInactiveControlColor: accentColor.withAlphaComponent(0.5), mediaControlInnerBackgroundColor: mainBackgroundColor, pendingActivityColor: mainSecondaryTextColor.withAlphaComponent(0.5), fileTitleColor: accentColor, fileDescriptionColor: mainSecondaryTextColor.withAlphaComponent(0.5), fileDurationColor: mainSecondaryTextColor.withAlphaComponent(0.5), mediaPlaceholderColor: accentColor.withMultiplied(hue: 1.019, saturation: 0.585, brightness: 0.23), polls: PresentationThemeChatBubblePolls(radioButton: accentColor.withMultiplied(hue: 0.995, saturation: 0.317, brightness: 0.51), radioProgress: accentColor, highlight: accentColor.withAlphaComponent(0.12), separator: mainSeparatorColor, bar: accentColor), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: additionalBackgroundColor.withAlphaComponent(0.5), withoutWallpaper: additionalBackgroundColor.withAlphaComponent(0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: buttonStrokeColor), actionButtonsTextColor: PresentationThemeVariableColor(color: .white), textSelectionColor: accentColor.withAlphaComponent(0.2), textSelectionKnobColor: accentColor), - outgoing: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: outgoingBubbleFillColor, gradientFill: outgoingBubbleFillGradientColor, highlightedFill: highlightedOutgoingBubbleColor, stroke: outgoingBubbleFillColor), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: outgoingBubbleFillColor, gradientFill: outgoingBubbleFillGradientColor, highlightedFill: highlightedOutgoingBubbleColor, stroke: outgoingBubbleFillColor)), primaryTextColor: outgoingPrimaryTextColor, secondaryTextColor: outgoingSecondaryTextColor, linkTextColor: outgoingLinkTextColor, linkHighlightColor: UIColor.white.withAlphaComponent(0.5), scamColor: outgoingScamColor, textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: outgoingPrimaryTextColor, accentControlColor: outgoingPrimaryTextColor, mediaActiveControlColor: outgoingPrimaryTextColor, mediaInactiveControlColor: outgoingSecondaryTextColor, mediaControlInnerBackgroundColor: outgoingBubbleFillColor, pendingActivityColor: outgoingSecondaryTextColor, fileTitleColor: outgoingPrimaryTextColor, fileDescriptionColor: outgoingSecondaryTextColor, fileDurationColor: outgoingSecondaryTextColor, mediaPlaceholderColor: accentColor.withMultiplied(hue: 1.019, saturation: 0.804, brightness: 0.51), polls: PresentationThemeChatBubblePolls(radioButton: outgoingPrimaryTextColor, radioProgress: accentColor.withMultiplied(hue: 0.99, saturation: 0.56, brightness: 1.0), highlight: accentColor.withMultiplied(hue: 0.99, saturation: 0.56, brightness: 1.0).withAlphaComponent(0.12), separator: mainSeparatorColor, bar: outgoingPrimaryTextColor), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: additionalBackgroundColor.withAlphaComponent(0.5), withoutWallpaper: additionalBackgroundColor.withAlphaComponent(0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: buttonStrokeColor), actionButtonsTextColor: PresentationThemeVariableColor(color: .white), textSelectionColor: UIColor.white.withAlphaComponent(0.2), textSelectionKnobColor: UIColor.white), + incoming: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: mainBackgroundColor, highlightedFill: highlightedIncomingBubbleColor, stroke: mainBackgroundColor), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: mainBackgroundColor, highlightedFill: highlightedIncomingBubbleColor, stroke: mainBackgroundColor)), primaryTextColor: .white, secondaryTextColor: mainSecondaryTextColor.withAlphaComponent(0.5), linkTextColor: accentColor, linkHighlightColor: accentColor.withAlphaComponent(0.5), scamColor: UIColor(rgb: 0xff6767), textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: accentColor, accentControlColor: accentColor, accentControlDisabledColor: mainSecondaryTextColor.withAlphaComponent(0.5), mediaActiveControlColor: accentColor, mediaInactiveControlColor: accentColor.withAlphaComponent(0.5), mediaControlInnerBackgroundColor: mainBackgroundColor, pendingActivityColor: mainSecondaryTextColor.withAlphaComponent(0.5), fileTitleColor: accentColor, fileDescriptionColor: mainSecondaryTextColor.withAlphaComponent(0.5), fileDurationColor: mainSecondaryTextColor.withAlphaComponent(0.5), mediaPlaceholderColor: accentColor.withMultiplied(hue: 1.019, saturation: 0.585, brightness: 0.23), polls: PresentationThemeChatBubblePolls(radioButton: accentColor.withMultiplied(hue: 0.995, saturation: 0.317, brightness: 0.51), radioProgress: accentColor, highlight: accentColor.withAlphaComponent(0.12), separator: mainSeparatorColor, bar: accentColor, barIconForeground: .white, barPositive: UIColor(rgb: 0x00A700), barNegative: UIColor(rgb: 0xFE3824)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: additionalBackgroundColor.withAlphaComponent(0.5), withoutWallpaper: additionalBackgroundColor.withAlphaComponent(0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: buttonStrokeColor), actionButtonsTextColor: PresentationThemeVariableColor(color: .white), textSelectionColor: accentColor.withAlphaComponent(0.2), textSelectionKnobColor: accentColor), + outgoing: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: outgoingBubbleFillColor, gradientFill: outgoingBubbleFillGradientColor, highlightedFill: highlightedOutgoingBubbleColor, stroke: outgoingBubbleFillColor), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: outgoingBubbleFillColor, gradientFill: outgoingBubbleFillGradientColor, highlightedFill: highlightedOutgoingBubbleColor, stroke: outgoingBubbleFillColor)), primaryTextColor: outgoingPrimaryTextColor, secondaryTextColor: outgoingSecondaryTextColor, linkTextColor: outgoingLinkTextColor, linkHighlightColor: UIColor.white.withAlphaComponent(0.5), scamColor: outgoingScamColor, textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: outgoingPrimaryTextColor, accentControlColor: outgoingPrimaryTextColor, accentControlDisabledColor: mainSecondaryTextColor.withAlphaComponent(0.5), mediaActiveControlColor: outgoingPrimaryTextColor, mediaInactiveControlColor: outgoingSecondaryTextColor, mediaControlInnerBackgroundColor: outgoingBubbleFillColor, pendingActivityColor: outgoingSecondaryTextColor, fileTitleColor: outgoingPrimaryTextColor, fileDescriptionColor: outgoingSecondaryTextColor, fileDurationColor: outgoingSecondaryTextColor, mediaPlaceholderColor: accentColor.withMultiplied(hue: 1.019, saturation: 0.804, brightness: 0.51), polls: PresentationThemeChatBubblePolls(radioButton: outgoingPrimaryTextColor, radioProgress: accentColor.withMultiplied(hue: 0.99, saturation: 0.56, brightness: 1.0), highlight: accentColor.withMultiplied(hue: 0.99, saturation: 0.56, brightness: 1.0).withAlphaComponent(0.12), separator: mainSeparatorColor, bar: outgoingPrimaryTextColor, barIconForeground: .white, barPositive: outgoingPrimaryTextColor, barNegative: outgoingPrimaryTextColor), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: additionalBackgroundColor.withAlphaComponent(0.5), withoutWallpaper: additionalBackgroundColor.withAlphaComponent(0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: buttonStrokeColor), actionButtonsTextColor: PresentationThemeVariableColor(color: .white), textSelectionColor: UIColor.white.withAlphaComponent(0.2), textSelectionKnobColor: UIColor.white), freeform: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: mainBackgroundColor, highlightedFill: highlightedIncomingBubbleColor, stroke: mainBackgroundColor), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: mainBackgroundColor, highlightedFill: highlightedIncomingBubbleColor, stroke: mainBackgroundColor)), infoPrimaryTextColor: UIColor(rgb: 0xffffff), infoLinkTextColor: accentColor, diff --git a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift index f3dc735c7c..f3fd1ac110 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift @@ -269,7 +269,7 @@ public func customizeDefaultDayTheme(theme: PresentationTheme, editing: Bool, ti fileDescriptionColor: outgoingFileDescriptionColor, fileDurationColor: outgoingFileDurationColor, mediaPlaceholderColor: day ? accentColor?.withMultipliedBrightnessBy(0.95) : outgoingMediaPlaceholderColor, - polls: chat.message.outgoing.polls.withUpdated(radioButton: outgoingPollsButtonColor, radioProgress: outgoingPollsProgressColor, highlight: outgoingPollsProgressColor?.withAlphaComponent(0.12), separator: outgoingPollsButtonColor, bar: outgoingPollsProgressColor), + polls: chat.message.outgoing.polls.withUpdated(radioButton: outgoingPollsButtonColor, radioProgress: outgoingPollsProgressColor, highlight: outgoingPollsProgressColor?.withAlphaComponent(0.12), separator: outgoingPollsButtonColor, bar: outgoingPollsProgressColor, barPositive: outgoingPollsProgressColor, barNegative: outgoingPollsProgressColor), actionButtonsFillColor: chat.message.outgoing.actionButtonsFillColor.withUpdated(withWallpaper: serviceBackgroundColor), actionButtonsStrokeColor: day ? chat.message.outgoing.actionButtonsStrokeColor.withUpdated(withoutWallpaper: accentColor) : nil, actionButtonsTextColor: day ? chat.message.outgoing.actionButtonsTextColor.withUpdated(withoutWallpaper: accentColor) : nil, @@ -494,6 +494,7 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio textHighlightColor: UIColor(rgb: 0xffe438), accentTextColor: UIColor(rgb: 0x007ee5), accentControlColor: UIColor(rgb: 0x007ee5), + accentControlDisabledColor: UIColor(rgb: 0x525252, alpha: 0.6), mediaActiveControlColor: UIColor(rgb: 0x007ee5), mediaInactiveControlColor: UIColor(rgb: 0xcacaca), mediaControlInnerBackgroundColor: UIColor(rgb: 0xffffff), @@ -502,7 +503,7 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio fileDescriptionColor: UIColor(rgb: 0x999999), fileDurationColor: UIColor(rgb: 0x525252, alpha: 0.6), mediaPlaceholderColor: UIColor(rgb: 0xe8ecf0), - polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0xc8c7cc), radioProgress: UIColor(rgb: 0x007ee5), highlight: UIColor(rgb: 0x007ee5, alpha: 0.08), separator: UIColor(rgb: 0xc8c7cc), bar: UIColor(rgb: 0x007ee5)), + polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0xc8c7cc), radioProgress: UIColor(rgb: 0x007ee5), highlight: UIColor(rgb: 0x007ee5, alpha: 0.08), separator: UIColor(rgb: 0xc8c7cc), bar: UIColor(rgb: 0x007ee5), barIconForeground: .white, barPositive: UIColor(rgb: 0x2dba45), barNegative: UIColor(rgb: 0xFE3824)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: serviceBackgroundColor, withoutWallpaper: UIColor(rgb: 0x596e89, alpha: 0.35)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: .clear), actionButtonsTextColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xffffff)), textSelectionColor: UIColor(rgb: 0x007ee5, alpha: 0.2), textSelectionKnobColor: UIColor(rgb: 0x007ee5)), outgoing: PresentationThemePartedColors( @@ -515,6 +516,7 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio textHighlightColor: UIColor(rgb: 0xffe438), accentTextColor: UIColor(rgb: 0x00a700), accentControlColor: UIColor(rgb: 0x3fc33b), + accentControlDisabledColor: UIColor(rgb: 0x00A700).withAlphaComponent(0.7), mediaActiveControlColor: UIColor(rgb: 0x3fc33b), mediaInactiveControlColor: UIColor(rgb: 0x93d987), mediaControlInnerBackgroundColor: UIColor(rgb: 0xe1ffc7), @@ -523,7 +525,7 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio fileDescriptionColor: UIColor(rgb: 0x6fb26a), fileDurationColor: UIColor(rgb: 0x008c09, alpha: 0.8), mediaPlaceholderColor: UIColor(rgb: 0xd2f2b6), - polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0x93d987), radioProgress: UIColor(rgb: 0x3fc33b), highlight: UIColor(rgb: 0x3fc33b).withAlphaComponent(0.08), separator: UIColor(rgb: 0x93d987), bar: UIColor(rgb: 0x3fc33b)), + polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0x93d987), radioProgress: UIColor(rgb: 0x3fc33b), highlight: UIColor(rgb: 0x3fc33b).withAlphaComponent(0.08), separator: UIColor(rgb: 0x93d987), bar: UIColor(rgb: 0x00A700), barIconForeground: .white, barPositive: UIColor(rgb: 0x00A700), barNegative: UIColor(rgb: 0x00A700)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: serviceBackgroundColor, withoutWallpaper: UIColor(rgb: 0x596e89, alpha: 0.35)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: .clear), actionButtonsTextColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xffffff)), @@ -555,6 +557,7 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio textHighlightColor: UIColor(rgb: 0xffc738), accentTextColor: UIColor(rgb: 0x007ee5), accentControlColor: UIColor(rgb: 0x007ee5), + accentControlDisabledColor: UIColor(rgb: 0x525252, alpha: 0.6), mediaActiveControlColor: UIColor(rgb: 0x007ee5), mediaInactiveControlColor: UIColor(rgb: 0xcacaca), mediaControlInnerBackgroundColor: UIColor(rgb: 0xffffff), @@ -563,7 +566,7 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio fileDescriptionColor: UIColor(rgb: 0x999999), fileDurationColor: UIColor(rgb: 0x525252, alpha: 0.6), mediaPlaceholderColor: UIColor(rgb: 0xffffff).withMultipliedBrightnessBy(0.95), - polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0xc8c7cc), radioProgress: UIColor(rgb: 0x007ee5), highlight: UIColor(rgb: 0x007ee5, alpha: 0.12), separator: UIColor(rgb: 0xc8c7cc), bar: UIColor(rgb: 0x007ee5)), + polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0xc8c7cc), radioProgress: UIColor(rgb: 0x007ee5), highlight: UIColor(rgb: 0x007ee5, alpha: 0.12), separator: UIColor(rgb: 0xc8c7cc), bar: UIColor(rgb: 0x007ee5), barIconForeground: .white, barPositive: UIColor(rgb: 0x00A700), barNegative: UIColor(rgb: 0xFE3824)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: serviceBackgroundColor, withoutWallpaper: UIColor(rgb: 0xffffff, alpha: 0.8)), actionButtonsStrokeColor: PresentationThemeVariableColor(withWallpaper: .clear, withoutWallpaper: UIColor(rgb: 0x007ee5)), actionButtonsTextColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0xffffff), withoutWallpaper: UIColor(rgb: 0x007ee5)), @@ -579,6 +582,7 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio textHighlightColor: UIColor(rgb: 0xffc738), accentTextColor: UIColor(rgb: 0xffffff), accentControlColor: UIColor(rgb: 0xffffff), + accentControlDisabledColor: UIColor(rgb: 0xffffff).withAlphaComponent(0.5), mediaActiveControlColor: UIColor(rgb: 0xffffff), mediaInactiveControlColor: UIColor(rgb: 0xffffff, alpha: 0.65), mediaControlInnerBackgroundColor: .clear, @@ -587,7 +591,7 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio fileDescriptionColor: UIColor(rgb: 0xffffff, alpha: 0.65), fileDurationColor: UIColor(rgb: 0xffffff, alpha: 0.65), mediaPlaceholderColor: UIColor(rgb: 0x0077d9), - polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0xffffff, alpha: 0.65), radioProgress: UIColor(rgb: 0xffffff), highlight: UIColor(rgb: 0xffffff, alpha: 0.12), separator: UIColor(rgb: 0xffffff, alpha: 0.65), bar: UIColor(rgb: 0xffffff)), + polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0xffffff, alpha: 0.65), radioProgress: UIColor(rgb: 0xffffff), highlight: UIColor(rgb: 0xffffff, alpha: 0.12), separator: UIColor(rgb: 0xffffff, alpha: 0.65), bar: UIColor(rgb: 0xffffff), barIconForeground: .white, barPositive: UIColor(rgb: 0xffffff), barNegative: UIColor(rgb: 0xffffff)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: serviceBackgroundColor, withoutWallpaper: UIColor(rgb: 0xffffff, alpha: 0.8)), actionButtonsStrokeColor: PresentationThemeVariableColor(withWallpaper: .clear, withoutWallpaper: UIColor(rgb: 0x007ee5)), actionButtonsTextColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0xffffff), withoutWallpaper: UIColor(rgb: 0x007ee5)), diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index bf9ee62939..cc30fd292c 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -605,4667 +605,4684 @@ public final class PresentationStrings: Equatable { public var SocksProxySetup_SaveProxy: String { return self._s[389]! } public var AccessDenied_SaveMedia: String { return self._s[390]! } public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[392]! } - public var Settings_Title: String { return self._s[394]! } - public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[395]! } - public var Contacts_InviteSearchLabel: String { return self._s[397]! } - public var PrivacySettings_WebSessions: String { return self._s[398]! } - public var ConvertToSupergroup_Title: String { return self._s[399]! } + public var CreatePoll_MultipleChoice: String { return self._s[393]! } + public var Settings_Title: String { return self._s[395]! } + public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[396]! } + public var Contacts_InviteSearchLabel: String { return self._s[398]! } + public var PrivacySettings_WebSessions: String { return self._s[399]! } + public var ConvertToSupergroup_Title: String { return self._s[400]! } public func Channel_AdminLog_CaptionEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[400]!, self._r[400]!, [_0]) + return formatWithArgumentRanges(self._s[401]!, self._r[401]!, [_0]) } - public var TwoFactorSetup_Hint_Text: String { return self._s[401]! } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[402]! } + public var TwoFactorSetup_Hint_Text: String { return self._s[402]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[403]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[403]!, self._r[403]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[404]!, self._r[404]!, [_1, _2, _3]) } - public var ChatSettings_AutomaticPhotoDownload: String { return self._s[404]! } - public var UserInfo_BotHelp: String { return self._s[405]! } - public var PrivacySettings_LastSeenEverybody: String { return self._s[406]! } - public var Checkout_Name: String { return self._s[407]! } - public var AutoDownloadSettings_DataUsage: String { return self._s[408]! } - public var Channel_BanUser_BlockFor: String { return self._s[409]! } - public var Checkout_ShippingAddress: String { return self._s[410]! } - public var AutoDownloadSettings_MaxVideoSize: String { return self._s[411]! } - public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[412]! } - public var Privacy_Forwards: String { return self._s[413]! } - public var Channel_BanUser_PermissionSendPolls: String { return self._s[414]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[415]! } + public var ChatSettings_AutomaticPhotoDownload: String { return self._s[405]! } + public var UserInfo_BotHelp: String { return self._s[406]! } + public var PrivacySettings_LastSeenEverybody: String { return self._s[407]! } + public var Checkout_Name: String { return self._s[408]! } + public var AutoDownloadSettings_DataUsage: String { return self._s[409]! } + public var Channel_BanUser_BlockFor: String { return self._s[410]! } + public var Checkout_ShippingAddress: String { return self._s[411]! } + public var AutoDownloadSettings_MaxVideoSize: String { return self._s[412]! } + public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[413]! } + public var Privacy_Forwards: String { return self._s[414]! } + public var Channel_BanUser_PermissionSendPolls: String { return self._s[415]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[416]! } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[418]!, self._r[418]!, [_0]) + return formatWithArgumentRanges(self._s[419]!, self._r[419]!, [_0]) } - public var Contacts_SortedByName: String { return self._s[419]! } - public var Group_OwnershipTransfer_Title: String { return self._s[420]! } - public var VoiceOver_Chat_OpenHint: String { return self._s[422]! } - public var Group_LeaveGroup: String { return self._s[423]! } - public var Settings_UsernameEmpty: String { return self._s[424]! } + public var Contacts_SortedByName: String { return self._s[420]! } + public var Group_OwnershipTransfer_Title: String { return self._s[421]! } + public var VoiceOver_Chat_OpenHint: String { return self._s[423]! } + public var Group_LeaveGroup: String { return self._s[424]! } + public var Settings_UsernameEmpty: String { return self._s[425]! } public func Notification_PinnedPollMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[425]!, self._r[425]!, [_0]) + return formatWithArgumentRanges(self._s[426]!, self._r[426]!, [_0]) } public func TwoStepAuth_ConfirmEmailDescription(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[426]!, self._r[426]!, [_1]) + return formatWithArgumentRanges(self._s[427]!, self._r[427]!, [_1]) } public func Channel_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[427]!, self._r[427]!, [_1, _2]) + return formatWithArgumentRanges(self._s[428]!, self._r[428]!, [_1, _2]) } - public var Message_ImageExpired: String { return self._s[428]! } - public var TwoStepAuth_RecoveryFailed: String { return self._s[430]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[431]! } - public var UserInfo_AddToExisting: String { return self._s[432]! } - public var TwoStepAuth_EnabledSuccess: String { return self._s[433]! } - public var Wallet_Send_SyncInProgress: String { return self._s[434]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[435]! } + public var Message_ImageExpired: String { return self._s[429]! } + public var TwoStepAuth_RecoveryFailed: String { return self._s[431]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[432]! } + public var UserInfo_AddToExisting: String { return self._s[433]! } + public var TwoStepAuth_EnabledSuccess: String { return self._s[434]! } + public var Wallet_Send_SyncInProgress: String { return self._s[435]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[436]! } public func PUSH_CHANNEL_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[436]!, self._r[436]!, [_1]) + return formatWithArgumentRanges(self._s[437]!, self._r[437]!, [_1]) } - public var Notifications_GroupNotificationsAlert: String { return self._s[437]! } - public var Passport_Language_km: String { return self._s[438]! } - public var SocksProxySetup_AdNoticeHelp: String { return self._s[440]! } - public var VoiceOver_Media_PlaybackPlay: String { return self._s[441]! } - public var Notification_CallMissedShort: String { return self._s[442]! } - public var Wallet_Info_YourBalance: String { return self._s[443]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[444]! } - public var Watch_Compose_Send: String { return self._s[445]! } - public var Passport_Identity_TypeInternalPassportUploadScan: String { return self._s[448]! } - public var TwoFactorSetup_Email_Action: String { return self._s[449]! } - public var Conversation_HoldForVideo: String { return self._s[450]! } - public var Wallet_Configuration_ApplyErrorTextURLInvalidData: String { return self._s[451]! } - public var AuthSessions_OtherDevices: String { return self._s[452]! } - public var Wallet_TransactionInfo_CommentHeader: String { return self._s[453]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[455]! } - public var Appearance_AutoNightThemeDisabled: String { return self._s[457]! } - public var Channel_LinkItem: String { return self._s[458]! } + public var Notifications_GroupNotificationsAlert: String { return self._s[438]! } + public var Passport_Language_km: String { return self._s[439]! } + public var SocksProxySetup_AdNoticeHelp: String { return self._s[441]! } + public var VoiceOver_Media_PlaybackPlay: String { return self._s[442]! } + public var Notification_CallMissedShort: String { return self._s[443]! } + public var Wallet_Info_YourBalance: String { return self._s[444]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[445]! } + public var Watch_Compose_Send: String { return self._s[446]! } + public var Passport_Identity_TypeInternalPassportUploadScan: String { return self._s[449]! } + public var TwoFactorSetup_Email_Action: String { return self._s[450]! } + public var Conversation_HoldForVideo: String { return self._s[451]! } + public var Wallet_Configuration_ApplyErrorTextURLInvalidData: String { return self._s[452]! } + public var AuthSessions_OtherDevices: String { return self._s[453]! } + public var Wallet_TransactionInfo_CommentHeader: String { return self._s[454]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[456]! } + public var Appearance_AutoNightThemeDisabled: String { return self._s[458]! } + public var Channel_LinkItem: String { return self._s[459]! } public func PrivacySettings_LastSeenContactsMinusPlus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[459]!, self._r[459]!, [_0, _1]) + return formatWithArgumentRanges(self._s[460]!, self._r[460]!, [_0, _1]) } public func Passport_Identity_NativeNameTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[462]!, self._r[462]!, [_0]) + return formatWithArgumentRanges(self._s[463]!, self._r[463]!, [_0]) } - public var VoiceOver_Recording_StopAndPreview: String { return self._s[463]! } - public var Passport_Language_dv: String { return self._s[464]! } - public var Undo_LeftChannel: String { return self._s[465]! } - public var Notifications_ExceptionsMuted: String { return self._s[466]! } - public var ChatList_UnhideAction: String { return self._s[467]! } - public var Conversation_ContextMenuShare: String { return self._s[468]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[469]! } - public var ShareFileTip_Title: String { return self._s[470]! } - public var NotificationsSound_Chord: String { return self._s[471]! } - public var Wallet_TransactionInfo_OtherFeeHeader: String { return self._s[472]! } + public var VoiceOver_Recording_StopAndPreview: String { return self._s[464]! } + public var Passport_Language_dv: String { return self._s[465]! } + public var Undo_LeftChannel: String { return self._s[466]! } + public var Notifications_ExceptionsMuted: String { return self._s[467]! } + public var ChatList_UnhideAction: String { return self._s[468]! } + public var Conversation_ContextMenuShare: String { return self._s[469]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[470]! } + public var ShareFileTip_Title: String { return self._s[471]! } + public var NotificationsSound_Chord: String { return self._s[472]! } + public var Wallet_TransactionInfo_OtherFeeHeader: String { return self._s[473]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[473]!, self._r[473]!, [_1, _2]) + return formatWithArgumentRanges(self._s[474]!, self._r[474]!, [_1, _2]) } - public var Passport_Address_EditTemporaryRegistration: String { return self._s[474]! } + public var Passport_Address_EditTemporaryRegistration: String { return self._s[475]! } public func Notification_Joined(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[475]!, self._r[475]!, [_0]) + return formatWithArgumentRanges(self._s[476]!, self._r[476]!, [_0]) } public func Wallet_Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[476]!, self._r[476]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[477]!, self._r[477]!, [_1, _2, _3]) } - public var Wallet_Settings_ConfigurationInfo: String { return self._s[477]! } - public var Wallpaper_ErrorNotFound: String { return self._s[478]! } - public var Notification_CallOutgoingShort: String { return self._s[480]! } - public var Wallet_WordImport_IncorrectText: String { return self._s[481]! } + public var Wallet_Settings_ConfigurationInfo: String { return self._s[478]! } + public var Wallpaper_ErrorNotFound: String { return self._s[479]! } + public var Notification_CallOutgoingShort: String { return self._s[481]! } + public var Wallet_WordImport_IncorrectText: String { return self._s[482]! } public func Watch_Time_ShortFullAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[482]!, self._r[482]!, [_1, _2]) + return formatWithArgumentRanges(self._s[483]!, self._r[483]!, [_1, _2]) } - public var Passport_Address_TypeUtilityBill: String { return self._s[483]! } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[484]! } - public var ReportPeer_Report: String { return self._s[485]! } - public var SettingsSearch_Synonyms_Proxy_Title: String { return self._s[486]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[487]! } + public var Passport_Address_TypeUtilityBill: String { return self._s[484]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[485]! } + public var ReportPeer_Report: String { return self._s[486]! } + public var SettingsSearch_Synonyms_Proxy_Title: String { return self._s[487]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[488]! } public func VoiceOver_Chat_MusicTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[488]!, self._r[488]!, [_1, _2]) + return formatWithArgumentRanges(self._s[489]!, self._r[489]!, [_1, _2]) } - public var StickerPack_Send: String { return self._s[489]! } - public var Login_CodeSentInternal: String { return self._s[490]! } - public var Wallet_Month_GenJanuary: String { return self._s[491]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[492]! } + public var StickerPack_Send: String { return self._s[490]! } + public var Login_CodeSentInternal: String { return self._s[491]! } + public var Wallet_Month_GenJanuary: String { return self._s[492]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[493]! } public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[493]!, self._r[493]!, [_0]) + return formatWithArgumentRanges(self._s[494]!, self._r[494]!, [_0]) } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[495]!, self._r[495]!, [_0]) + return formatWithArgumentRanges(self._s[496]!, self._r[496]!, [_0]) } - public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[496]! } + public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[497]! } public func PUSH_PINNED_GAME(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[497]!, self._r[497]!, [_1]) + return formatWithArgumentRanges(self._s[498]!, self._r[498]!, [_1]) } - public var ReportPeer_ReasonViolence: String { return self._s[499]! } - public var Appearance_ShareThemeColor: String { return self._s[500]! } - public var Map_Locating: String { return self._s[501]! } + public var ReportPeer_ReasonViolence: String { return self._s[500]! } + public var Appearance_ShareThemeColor: String { return self._s[501]! } + public var Map_Locating: String { return self._s[502]! } public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[502]!, self._r[502]!, [_0]) + return formatWithArgumentRanges(self._s[503]!, self._r[503]!, [_0]) } public func PUSH_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[503]!, self._r[503]!, [_1]) + return formatWithArgumentRanges(self._s[504]!, self._r[504]!, [_1]) } - public var AutoDownloadSettings_GroupChats: String { return self._s[505]! } - public var CheckoutInfo_SaveInfo: String { return self._s[506]! } - public var SharedMedia_EmptyLinksText: String { return self._s[508]! } - public var Passport_Address_CityPlaceholder: String { return self._s[509]! } - public var CheckoutInfo_ErrorStateInvalid: String { return self._s[510]! } - public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[511]! } - public var Wallet_Send_OwnAddressAlertTitle: String { return self._s[513]! } - public var Channel_AdminLog_CanAddAdmins: String { return self._s[514]! } + public var AutoDownloadSettings_GroupChats: String { return self._s[506]! } + public var CheckoutInfo_SaveInfo: String { return self._s[507]! } + public var SharedMedia_EmptyLinksText: String { return self._s[509]! } + public var Passport_Address_CityPlaceholder: String { return self._s[510]! } + public var CheckoutInfo_ErrorStateInvalid: String { return self._s[511]! } + public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[512]! } + public var Wallet_Send_OwnAddressAlertTitle: String { return self._s[514]! } + public var Channel_AdminLog_CanAddAdmins: String { return self._s[515]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[515]!, self._r[515]!, [_1]) + return formatWithArgumentRanges(self._s[516]!, self._r[516]!, [_1]) } public func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[516]!, self._r[516]!, [_0]) + return formatWithArgumentRanges(self._s[517]!, self._r[517]!, [_0]) } - public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[517]! } - public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[518]! } - public var ChangePhoneNumberCode_Code: String { return self._s[519]! } - public var Appearance_CreateTheme: String { return self._s[520]! } + public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[518]! } + public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[519]! } + public var ChangePhoneNumberCode_Code: String { return self._s[520]! } + public var Appearance_CreateTheme: String { return self._s[521]! } public func UserInfo_NotificationsDefaultSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[521]!, self._r[521]!, [_0]) + return formatWithArgumentRanges(self._s[522]!, self._r[522]!, [_0]) } - public var TwoStepAuth_SetupEmail: String { return self._s[522]! } - public var HashtagSearch_AllChats: String { return self._s[523]! } - public var MediaPlayer_UnknownTrack: String { return self._s[524]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[526]! } + public var TwoStepAuth_SetupEmail: String { return self._s[523]! } + public var HashtagSearch_AllChats: String { return self._s[524]! } + public var MediaPlayer_UnknownTrack: String { return self._s[525]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[527]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[527]!, self._r[527]!, [_0]) + return formatWithArgumentRanges(self._s[528]!, self._r[528]!, [_0]) } - public var PhotoEditor_QualityHigh: String { return self._s[529]! } + public var PhotoEditor_QualityHigh: String { return self._s[530]! } public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[530]!, self._r[530]!, [_0]) + return formatWithArgumentRanges(self._s[531]!, self._r[531]!, [_0]) } - public var ApplyLanguage_ApplyLanguageAction: String { return self._s[531]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[532]! } - public var Message_LiveLocation: String { return self._s[533]! } - public var Cache_LowDiskSpaceText: String { return self._s[534]! } - public var Wallet_Receive_ShareAddress: String { return self._s[535]! } - public var EditTheme_ErrorLinkTaken: String { return self._s[536]! } - public var Conversation_SendMessage: String { return self._s[537]! } - public var AuthSessions_EmptyTitle: String { return self._s[538]! } - public var Privacy_PhoneNumber: String { return self._s[539]! } - public var PeopleNearby_CreateGroup: String { return self._s[540]! } - public var CallSettings_UseLessData: String { return self._s[541]! } - public var NetworkUsageSettings_MediaDocumentDataSection: String { return self._s[542]! } - public var Stickers_AddToFavorites: String { return self._s[543]! } - public var Wallet_WordImport_Title: String { return self._s[544]! } - public var PhotoEditor_QualityLow: String { return self._s[545]! } - public var Watch_UserInfo_Unblock: String { return self._s[546]! } - public var Settings_Logout: String { return self._s[547]! } + public var ApplyLanguage_ApplyLanguageAction: String { return self._s[532]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[533]! } + public var Message_LiveLocation: String { return self._s[534]! } + public var Cache_LowDiskSpaceText: String { return self._s[535]! } + public var Wallet_Receive_ShareAddress: String { return self._s[536]! } + public var EditTheme_ErrorLinkTaken: String { return self._s[537]! } + public var Conversation_SendMessage: String { return self._s[538]! } + public var AuthSessions_EmptyTitle: String { return self._s[539]! } + public var Privacy_PhoneNumber: String { return self._s[540]! } + public var PeopleNearby_CreateGroup: String { return self._s[541]! } + public var CallSettings_UseLessData: String { return self._s[542]! } + public var NetworkUsageSettings_MediaDocumentDataSection: String { return self._s[543]! } + public var Stickers_AddToFavorites: String { return self._s[544]! } + public var Wallet_WordImport_Title: String { return self._s[545]! } + public var PhotoEditor_QualityLow: String { return self._s[546]! } + public var Watch_UserInfo_Unblock: String { return self._s[547]! } + public var Settings_Logout: String { return self._s[548]! } public func PUSH_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[548]!, self._r[548]!, [_1]) + return formatWithArgumentRanges(self._s[549]!, self._r[549]!, [_1]) } - public var ContactInfo_PhoneLabelWork: String { return self._s[549]! } - public var ChannelInfo_Stats: String { return self._s[550]! } - public var TextFormat_Link: String { return self._s[551]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[550]! } + public var ChannelInfo_Stats: String { return self._s[551]! } + public var TextFormat_Link: String { return self._s[552]! } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[552]!, self._r[552]!, [_1, _2]) + return formatWithArgumentRanges(self._s[553]!, self._r[553]!, [_1, _2]) } - public var Wallet_TransactionInfo_Title: String { return self._s[553]! } + public var Wallet_TransactionInfo_Title: String { return self._s[554]! } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[554]!, self._r[554]!, [_0]) + return formatWithArgumentRanges(self._s[555]!, self._r[555]!, [_0]) } - public var Watch_Notification_Joined: String { return self._s[555]! } - public var Group_Setup_TypePublicHelp: String { return self._s[556]! } - public var Passport_Scans_UploadNew: String { return self._s[557]! } - public var Checkout_LiabilityAlertTitle: String { return self._s[558]! } - public var DialogList_Title: String { return self._s[561]! } - public var NotificationSettings_ContactJoined: String { return self._s[562]! } - public var GroupInfo_LabelAdmin: String { return self._s[563]! } - public var KeyCommand_ChatInfo: String { return self._s[564]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[565]! } - public var Call_ReportIncludeLog: String { return self._s[566]! } + public var Watch_Notification_Joined: String { return self._s[556]! } + public var Group_Setup_TypePublicHelp: String { return self._s[557]! } + public var Passport_Scans_UploadNew: String { return self._s[558]! } + public var Checkout_LiabilityAlertTitle: String { return self._s[559]! } + public var DialogList_Title: String { return self._s[562]! } + public var NotificationSettings_ContactJoined: String { return self._s[563]! } + public var GroupInfo_LabelAdmin: String { return self._s[564]! } + public var KeyCommand_ChatInfo: String { return self._s[565]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[566]! } + public var Call_ReportIncludeLog: String { return self._s[567]! } public func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[569]!, self._r[569]!, [_0]) + return formatWithArgumentRanges(self._s[570]!, self._r[570]!, [_0]) } - public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[570]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[571]! } - public var LocalGroup_IrrelevantWarning: String { return self._s[572]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[573]! } - public var Message_Sticker: String { return self._s[574]! } - public var LastSeen_JustNow: String { return self._s[576]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[578]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[579]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[580]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[581]! } - public var TwoStepAuth_Email: String { return self._s[582]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsSound: String { return self._s[583]! } - public var PhotoEditor_BlurToolOff: String { return self._s[584]! } - public var Message_PinnedStickerMessage: String { return self._s[585]! } - public var ContactInfo_PhoneLabelPager: String { return self._s[586]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[587]! } - public var Passport_DiscardMessageTitle: String { return self._s[588]! } - public var Privacy_PaymentsTitle: String { return self._s[589]! } - public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[590]! } - public var ClearCache_StorageCache: String { return self._s[591]! } - public var Appearance_TextSizeSetting: String { return self._s[592]! } - public var Channel_DiscussionGroup_Header: String { return self._s[594]! } - public var VoiceOver_Chat_OptionSelected: String { return self._s[595]! } - public var Appearance_ColorTheme: String { return self._s[596]! } - public var UserInfo_ShareContact: String { return self._s[597]! } - public var Passport_Address_TypePassportRegistration: String { return self._s[598]! } - public var Common_More: String { return self._s[599]! } - public var Watch_Message_Call: String { return self._s[600]! } - public var Profile_EncryptionKey: String { return self._s[603]! } - public var Privacy_TopPeers: String { return self._s[604]! } - public var Conversation_StopPollConfirmation: String { return self._s[605]! } - public var Wallet_Words_NotDoneText: String { return self._s[607]! } - public var Privacy_TopPeersWarning: String { return self._s[609]! } - public var SettingsSearch_Synonyms_Data_DownloadInBackground: String { return self._s[610]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[611]! } - public var Wallet_RestoreFailed_EnterWords: String { return self._s[614]! } - public var DialogList_SearchSectionMessages: String { return self._s[615]! } - public var Notifications_ChannelNotifications: String { return self._s[616]! } - public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[617]! } - public var Passport_Language_sk: String { return self._s[618]! } - public var Notification_MessageLifetime1h: String { return self._s[619]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[620]! } - public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[621]! } - public var Call_ReportSkip: String { return self._s[623]! } - public var Cache_ServiceFiles: String { return self._s[624]! } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[625]! } - public var VoiceOver_Chat_YourFile: String { return self._s[626]! } - public var Map_Hybrid: String { return self._s[627]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[629]! } - public var ChatSettings_AutoDownloadVideos: String { return self._s[631]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[632]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[633]! } - public var SocksProxySetup_ProxyTelegram: String { return self._s[636]! } + public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[571]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[572]! } + public var LocalGroup_IrrelevantWarning: String { return self._s[573]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[574]! } + public var Message_Sticker: String { return self._s[575]! } + public var LastSeen_JustNow: String { return self._s[577]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[579]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[580]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[581]! } + public var Channel_EditAdmin_PermissionsHeader: String { return self._s[582]! } + public var TwoStepAuth_Email: String { return self._s[583]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsSound: String { return self._s[584]! } + public var PhotoEditor_BlurToolOff: String { return self._s[585]! } + public var Message_PinnedStickerMessage: String { return self._s[586]! } + public var ContactInfo_PhoneLabelPager: String { return self._s[587]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[588]! } + public var Passport_DiscardMessageTitle: String { return self._s[589]! } + public var Privacy_PaymentsTitle: String { return self._s[590]! } + public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[591]! } + public var ClearCache_StorageCache: String { return self._s[592]! } + public var Appearance_TextSizeSetting: String { return self._s[593]! } + public var Channel_DiscussionGroup_Header: String { return self._s[595]! } + public var VoiceOver_Chat_OptionSelected: String { return self._s[596]! } + public var Appearance_ColorTheme: String { return self._s[597]! } + public var UserInfo_ShareContact: String { return self._s[598]! } + public var Passport_Address_TypePassportRegistration: String { return self._s[599]! } + public var Common_More: String { return self._s[600]! } + public var Watch_Message_Call: String { return self._s[601]! } + public var Profile_EncryptionKey: String { return self._s[604]! } + public var Privacy_TopPeers: String { return self._s[605]! } + public var Conversation_StopPollConfirmation: String { return self._s[606]! } + public var Wallet_Words_NotDoneText: String { return self._s[608]! } + public var Privacy_TopPeersWarning: String { return self._s[610]! } + public var SettingsSearch_Synonyms_Data_DownloadInBackground: String { return self._s[611]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[612]! } + public var Wallet_RestoreFailed_EnterWords: String { return self._s[615]! } + public var DialogList_SearchSectionMessages: String { return self._s[616]! } + public var Notifications_ChannelNotifications: String { return self._s[617]! } + public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[618]! } + public var Passport_Language_sk: String { return self._s[619]! } + public var Notification_MessageLifetime1h: String { return self._s[620]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[621]! } + public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[622]! } + public var Call_ReportSkip: String { return self._s[624]! } + public var Cache_ServiceFiles: String { return self._s[625]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[626]! } + public var VoiceOver_Chat_YourFile: String { return self._s[627]! } + public var Map_Hybrid: String { return self._s[628]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[630]! } + public var ChatSettings_AutoDownloadVideos: String { return self._s[632]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[633]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[634]! } + public var SocksProxySetup_ProxyTelegram: String { return self._s[637]! } public func PUSH_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[637]!, self._r[637]!, [_1]) + return formatWithArgumentRanges(self._s[638]!, self._r[638]!, [_1]) } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[639]! } - public var ScheduledMessages_ScheduledToday: String { return self._s[640]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[640]! } + public var ScheduledMessages_ScheduledToday: String { return self._s[641]! } public func PUSH_CHAT_TITLE_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[641]!, self._r[641]!, [_1, _2]) + return formatWithArgumentRanges(self._s[642]!, self._r[642]!, [_1, _2]) } - public var Conversation_LiveLocationYou: String { return self._s[642]! } - public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[643]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[644]! } - public var UserInfo_ShareBot: String { return self._s[647]! } + public var Conversation_LiveLocationYou: String { return self._s[643]! } + public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[644]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[645]! } + public var UserInfo_ShareBot: String { return self._s[648]! } public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[648]!, self._r[648]!, [_1, _2]) + return formatWithArgumentRanges(self._s[649]!, self._r[649]!, [_1, _2]) } - public var Conversation_ClearCache: String { return self._s[649]! } - public var PhotoEditor_ShadowsTint: String { return self._s[650]! } - public var Message_Audio: String { return self._s[651]! } - public var Passport_Language_lt: String { return self._s[652]! } + public var Conversation_ClearCache: String { return self._s[650]! } + public var PhotoEditor_ShadowsTint: String { return self._s[651]! } + public var Message_Audio: String { return self._s[652]! } + public var Passport_Language_lt: String { return self._s[653]! } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[653]!, self._r[653]!, [_0]) + return formatWithArgumentRanges(self._s[654]!, self._r[654]!, [_0]) } - public var Permissions_SiriText_v0: String { return self._s[654]! } - public var Conversation_FileICloudDrive: String { return self._s[655]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[656]! } - public var Notifications_Badge_IncludeMutedChats: String { return self._s[657]! } + public var Permissions_SiriText_v0: String { return self._s[655]! } + public var Conversation_FileICloudDrive: String { return self._s[656]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[657]! } + public var Notifications_Badge_IncludeMutedChats: String { return self._s[658]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[658]!, self._r[658]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[659]!, self._r[659]!, [_1, _2, _3, _4, _5, _6]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[659]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[660]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[660]!, self._r[660]!, [_0]) + return formatWithArgumentRanges(self._s[661]!, self._r[661]!, [_0]) } - public var Channel_SignMessages: String { return self._s[661]! } + public var Channel_SignMessages: String { return self._s[662]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[662]!, self._r[662]!, [_1]) + return formatWithArgumentRanges(self._s[663]!, self._r[663]!, [_1]) } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[663]! } - public var Passport_ScanPassport: String { return self._s[664]! } - public var Watch_Suggestion_Thanks: String { return self._s[665]! } - public var BlockedUsers_AddNew: String { return self._s[666]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[664]! } + public var Passport_ScanPassport: String { return self._s[665]! } + public var Watch_Suggestion_Thanks: String { return self._s[666]! } + public var BlockedUsers_AddNew: String { return self._s[667]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[667]!, self._r[667]!, [_1, _2]) + return formatWithArgumentRanges(self._s[668]!, self._r[668]!, [_1, _2]) } - public var Watch_Message_Invoice: String { return self._s[668]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[669]! } - public var Month_GenJuly: String { return self._s[670]! } - public var UserInfo_StartSecretChatStart: String { return self._s[671]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[672]! } - public var IntentsSettings_SuggestByShare: String { return self._s[674]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[675]! } - public var Notification_ChannelInviterSelf: String { return self._s[676]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[677]! } + public var Watch_Message_Invoice: String { return self._s[669]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[670]! } + public var Month_GenJuly: String { return self._s[671]! } + public var CreatePoll_QuizInfo: String { return self._s[672]! } + public var UserInfo_StartSecretChatStart: String { return self._s[673]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[674]! } + public var IntentsSettings_SuggestByShare: String { return self._s[676]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[677]! } + public var Notification_ChannelInviterSelf: String { return self._s[678]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[679]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[678]!, self._r[678]!, [_1, _2]) + return formatWithArgumentRanges(self._s[680]!, self._r[680]!, [_1, _2]) } - public var CheckoutInfo_Title: String { return self._s[679]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[680]! } + public var CheckoutInfo_Title: String { return self._s[681]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[682]! } public func Map_DistanceAway(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[681]!, self._r[681]!, [_0]) + return formatWithArgumentRanges(self._s[683]!, self._r[683]!, [_0]) } - public var Passport_Identity_MainPage: String { return self._s[682]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[683]! } - public var Passport_Language_de: String { return self._s[684]! } - public var Update_Title: String { return self._s[685]! } - public var ContactInfo_PhoneLabelWorkFax: String { return self._s[686]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[687]! } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[688]! } - public var Notifications_ChannelNotificationsPreview: String { return self._s[689]! } - public var NotificationsSound_Telegraph: String { return self._s[690]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[691]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[692]! } + public var Passport_Identity_MainPage: String { return self._s[684]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[685]! } + public var Passport_Language_de: String { return self._s[686]! } + public var Update_Title: String { return self._s[687]! } + public var ContactInfo_PhoneLabelWorkFax: String { return self._s[688]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[689]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[690]! } + public var Notifications_ChannelNotificationsPreview: String { return self._s[691]! } + public var NotificationsSound_Telegraph: String { return self._s[692]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[693]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[694]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[693]!, self._r[693]!, [_0]) + return formatWithArgumentRanges(self._s[695]!, self._r[695]!, [_0]) } - public var ClearCache_Description: String { return self._s[694]! } - public var Stickers_SuggestAll: String { return self._s[695]! } - public var Conversation_ForwardTitle: String { return self._s[696]! } - public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[697]! } + public var ClearCache_Description: String { return self._s[696]! } + public var Stickers_SuggestAll: String { return self._s[697]! } + public var Conversation_ForwardTitle: String { return self._s[698]! } + public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[699]! } public func Notification_JoinedChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[698]!, self._r[698]!, [_0]) + return formatWithArgumentRanges(self._s[700]!, self._r[700]!, [_0]) } - public var Calls_NewCall: String { return self._s[699]! } - public var Call_StatusEnded: String { return self._s[700]! } - public var AutoDownloadSettings_DataUsageLow: String { return self._s[701]! } - public var Settings_ProxyConnected: String { return self._s[702]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[703]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[704]! } - public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[705]! } - public var Passport_PasswordPlaceholder: String { return self._s[706]! } - public var Message_PinnedInvoice: String { return self._s[707]! } - public var Passport_Identity_IssueDate: String { return self._s[708]! } - public var Passport_Language_pl: String { return self._s[709]! } + public var Calls_NewCall: String { return self._s[701]! } + public var Call_StatusEnded: String { return self._s[702]! } + public var AutoDownloadSettings_DataUsageLow: String { return self._s[703]! } + public var Settings_ProxyConnected: String { return self._s[704]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[705]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[706]! } + public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[707]! } + public var Passport_PasswordPlaceholder: String { return self._s[708]! } + public var Message_PinnedInvoice: String { return self._s[709]! } + public var Passport_Identity_IssueDate: String { return self._s[710]! } + public var Passport_Language_pl: String { return self._s[711]! } public func ChannelInfo_ChannelForbidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[710]!, self._r[710]!, [_0]) + return formatWithArgumentRanges(self._s[712]!, self._r[712]!, [_0]) } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[711]! } - public var Call_StatusConnecting: String { return self._s[712]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[713]! } + public var Call_StatusConnecting: String { return self._s[714]! } public func Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[713]!, self._r[713]!, [_0]) + return formatWithArgumentRanges(self._s[715]!, self._r[715]!, [_0]) } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[715]! } - public var Common_Edit: String { return self._s[716]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[717]! } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[717]! } + public var Common_Edit: String { return self._s[718]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[719]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[718]!, self._r[718]!, [_0]) + return formatWithArgumentRanges(self._s[720]!, self._r[720]!, [_0]) } - public var GroupInfo_ChatAdmins: String { return self._s[719]! } - public var PrivateDataSettings_Title: String { return self._s[720]! } - public var Login_CancelPhoneVerificationStop: String { return self._s[721]! } - public var ChatList_Read: String { return self._s[722]! } - public var Wallet_WordImport_Text: String { return self._s[723]! } - public var Undo_ChatClearedForBothSides: String { return self._s[724]! } - public var GroupPermission_SectionTitle: String { return self._s[725]! } - public var TwoFactorSetup_Intro_Title: String { return self._s[727]! } + public var GroupInfo_ChatAdmins: String { return self._s[721]! } + public var PrivateDataSettings_Title: String { return self._s[722]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[723]! } + public var ChatList_Read: String { return self._s[724]! } + public var Wallet_WordImport_Text: String { return self._s[725]! } + public var Undo_ChatClearedForBothSides: String { return self._s[726]! } + public var GroupPermission_SectionTitle: String { return self._s[727]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[729]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[728]!, self._r[728]!, [_1, _2]) + return formatWithArgumentRanges(self._s[730]!, self._r[730]!, [_1, _2]) } - public var Checkout_ErrorPaymentFailed: String { return self._s[729]! } - public var Update_UpdateApp: String { return self._s[730]! } - public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[731]! } - public var Settings_Appearance: String { return self._s[732]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[736]! } - public var Watch_Location_Access: String { return self._s[737]! } - public var ShareMenu_CopyShareLink: String { return self._s[739]! } - public var TwoStepAuth_SetupHintTitle: String { return self._s[740]! } - public var Conversation_Theme: String { return self._s[742]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[731]! } + public var Update_UpdateApp: String { return self._s[732]! } + public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[733]! } + public var Settings_Appearance: String { return self._s[734]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[738]! } + public var Watch_Location_Access: String { return self._s[739]! } + public var ShareMenu_CopyShareLink: String { return self._s[741]! } + public var TwoStepAuth_SetupHintTitle: String { return self._s[742]! } + public var Conversation_Theme: String { return self._s[744]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[743]!, self._r[743]!, [_0]) + return formatWithArgumentRanges(self._s[745]!, self._r[745]!, [_0]) } - public var Notifications_ClassicTones: String { return self._s[744]! } - public var Weekday_ShortWednesday: String { return self._s[745]! } - public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[746]! } - public var Undo_LeftGroup: String { return self._s[749]! } - public var Wallet_RestoreFailed_Text: String { return self._s[750]! } - public var Conversation_LinkDialogCopy: String { return self._s[751]! } - public var Wallet_TransactionInfo_NoAddress: String { return self._s[753]! } - public var Wallet_Navigation_Back: String { return self._s[754]! } - public var KeyCommand_FocusOnInputField: String { return self._s[755]! } - public var Contacts_SelectAll: String { return self._s[756]! } - public var Preview_SaveToCameraRoll: String { return self._s[757]! } - public var PrivacySettings_PasscodeOff: String { return self._s[758]! } - public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[759]! } - public var Wallpaper_Title: String { return self._s[760]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[761]! } - public var AccessDenied_Camera: String { return self._s[762]! } - public var Watch_Compose_CurrentLocation: String { return self._s[763]! } - public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[765]! } + public var Notifications_ClassicTones: String { return self._s[746]! } + public var Weekday_ShortWednesday: String { return self._s[747]! } + public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[748]! } + public var Undo_LeftGroup: String { return self._s[751]! } + public var Wallet_RestoreFailed_Text: String { return self._s[752]! } + public var Conversation_LinkDialogCopy: String { return self._s[753]! } + public var Wallet_TransactionInfo_NoAddress: String { return self._s[755]! } + public var Wallet_Navigation_Back: String { return self._s[756]! } + public var KeyCommand_FocusOnInputField: String { return self._s[757]! } + public var Contacts_SelectAll: String { return self._s[758]! } + public var Preview_SaveToCameraRoll: String { return self._s[759]! } + public var PrivacySettings_PasscodeOff: String { return self._s[760]! } + public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[761]! } + public var Wallpaper_Title: String { return self._s[762]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[763]! } + public var AccessDenied_Camera: String { return self._s[764]! } + public var Watch_Compose_CurrentLocation: String { return self._s[765]! } + public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[767]! } public func SecretImage_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[766]!, self._r[766]!, [_0]) + return formatWithArgumentRanges(self._s[768]!, self._r[768]!, [_0]) } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[767]! } - public var Passport_Language_ro: String { return self._s[768]! } - public var EditTheme_UploadNewTheme: String { return self._s[769]! } - public var CheckoutInfo_SaveInfoHelp: String { return self._s[770]! } - public var Wallet_Intro_Terms: String { return self._s[771]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[769]! } + public var Passport_Language_ro: String { return self._s[770]! } + public var EditTheme_UploadNewTheme: String { return self._s[771]! } + public var CheckoutInfo_SaveInfoHelp: String { return self._s[772]! } + public var Wallet_Intro_Terms: String { return self._s[773]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[772]!, self._r[772]!, [_0]) + return formatWithArgumentRanges(self._s[774]!, self._r[774]!, [_0]) } - public var Login_CancelPhoneVerification: String { return self._s[773]! } - public var State_ConnectingToProxy: String { return self._s[774]! } - public var Calls_RatingTitle: String { return self._s[775]! } - public var Generic_ErrorMoreInfo: String { return self._s[776]! } - public var ChatList_Search_ShowMore: String { return self._s[777]! } - public var Appearance_PreviewReplyText: String { return self._s[778]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[779]! } + public var Login_CancelPhoneVerification: String { return self._s[775]! } + public var State_ConnectingToProxy: String { return self._s[776]! } + public var Calls_RatingTitle: String { return self._s[777]! } + public var Generic_ErrorMoreInfo: String { return self._s[778]! } + public var ChatList_Search_ShowMore: String { return self._s[779]! } + public var Appearance_PreviewReplyText: String { return self._s[780]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[781]! } public func Wallet_Send_Balance(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[780]!, self._r[780]!, [_0]) + return formatWithArgumentRanges(self._s[782]!, self._r[782]!, [_0]) } - public var IntentsSettings_SuggestedChatsContacts: String { return self._s[781]! } - public var SharedMedia_CategoryLinks: String { return self._s[782]! } - public var Calls_Missed: String { return self._s[783]! } - public var Cache_Photos: String { return self._s[787]! } - public var GroupPermission_NoAddMembers: String { return self._s[788]! } - public var ScheduledMessages_Title: String { return self._s[789]! } + public var IntentsSettings_SuggestedChatsContacts: String { return self._s[783]! } + public var SharedMedia_CategoryLinks: String { return self._s[784]! } + public var Calls_Missed: String { return self._s[785]! } + public var Cache_Photos: String { return self._s[789]! } + public var GroupPermission_NoAddMembers: String { return self._s[790]! } + public var ScheduledMessages_Title: String { return self._s[791]! } public func Channel_AdminLog_MessageUnpinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[790]!, self._r[790]!, [_0]) + return formatWithArgumentRanges(self._s[792]!, self._r[792]!, [_0]) } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[791]! } - public var Settings_ProxyDisabled: String { return self._s[792]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[793]! } + public var Settings_ProxyDisabled: String { return self._s[794]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[793]!, self._r[793]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[795]!, self._r[795]!, [_1, _2, _3, _4]) } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[794]!, self._r[794]!, [_0]) + return formatWithArgumentRanges(self._s[796]!, self._r[796]!, [_0]) } - public var ChatList_Context_RemoveFromRecents: String { return self._s[796]! } - public var Appearance_Title: String { return self._s[797]! } + public var ChatList_Context_RemoveFromRecents: String { return self._s[798]! } + public var Appearance_Title: String { return self._s[799]! } public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[799]!, self._r[799]!, [_0]) + return formatWithArgumentRanges(self._s[801]!, self._r[801]!, [_0]) } - public var Conversation_WalletRequiredText: String { return self._s[800]! } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[801]! } - public var OldChannels_NoticeCreateText: String { return self._s[802]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[803]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[804]! } - public var Preview_DeletePhoto: String { return self._s[805]! } - public var Appearance_AppIconFilledX: String { return self._s[806]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[807]! } + public var Conversation_WalletRequiredText: String { return self._s[802]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[803]! } + public var OldChannels_NoticeCreateText: String { return self._s[804]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[805]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[806]! } + public var Preview_DeletePhoto: String { return self._s[807]! } + public var Appearance_AppIconFilledX: String { return self._s[808]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[809]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[808]!, self._r[808]!, [_0]) + return formatWithArgumentRanges(self._s[810]!, self._r[810]!, [_0]) } - public var Coub_TapForSound: String { return self._s[810]! } - public var Map_LocatingError: String { return self._s[811]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[813]! } - public var Conversation_SendMessage_SendSilently: String { return self._s[814]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[815]! } + public var Coub_TapForSound: String { return self._s[812]! } + public var Map_LocatingError: String { return self._s[813]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[815]! } + public var Conversation_SendMessage_SendSilently: String { return self._s[816]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[817]! } public func Wallet_Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[816]!, self._r[816]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[818]!, self._r[818]!, [_1, _2, _3]) } - public var Passport_ForgottenPassword: String { return self._s[817]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[818]! } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[819]! } - public var Login_TermsOfServiceSignupDecline: String { return self._s[821]! } - public var Channel_Moderator_AccessLevelRevoke: String { return self._s[822]! } - public var Message_Location: String { return self._s[823]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[824]! } - public var Channel_Management_Title: String { return self._s[825]! } - public var DialogList_SearchSectionDialogs: String { return self._s[827]! } - public var Compose_NewChannel_Members: String { return self._s[828]! } + public var Passport_ForgottenPassword: String { return self._s[819]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[820]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[821]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[823]! } + public var Channel_Moderator_AccessLevelRevoke: String { return self._s[824]! } + public var Message_Location: String { return self._s[825]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[826]! } + public var Channel_Management_Title: String { return self._s[827]! } + public var DialogList_SearchSectionDialogs: String { return self._s[829]! } + public var Compose_NewChannel_Members: String { return self._s[830]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[829]!, self._r[829]!, [_0]) + return formatWithArgumentRanges(self._s[831]!, self._r[831]!, [_0]) } - public var GroupInfo_Location: String { return self._s[830]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[831]! } - public var ClearCache_Clear: String { return self._s[832]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[833]! } - public var PhotoEditor_WarmthTool: String { return self._s[834]! } - public var Passport_Language_tr: String { return self._s[835]! } + public var GroupInfo_Location: String { return self._s[832]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[833]! } + public var ClearCache_Clear: String { return self._s[834]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[835]! } + public var PhotoEditor_WarmthTool: String { return self._s[836]! } + public var Passport_Language_tr: String { return self._s[837]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[836]!, self._r[836]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[838]!, self._r[838]!, [_1, _2, _3]) } - public var OldChannels_NoticeUpgradeText: String { return self._s[837]! } - public var Login_ResetAccountProtected_Reset: String { return self._s[839]! } - public var Watch_PhotoView_Title: String { return self._s[840]! } - public var Passport_Phone_Delete: String { return self._s[841]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[842]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[843]! } - public var GroupInfo_Permissions: String { return self._s[844]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[845]! } - public var Profile_ShareContactButton: String { return self._s[846]! } - public var ChatSettings_Other: String { return self._s[847]! } - public var UserInfo_NotificationsDisabled: String { return self._s[848]! } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[849]! } - public var LastSeen_WithinAMonth: String { return self._s[850]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[851]! } - public var Conversation_ReportGroupLocation: String { return self._s[852]! } - public var Conversation_EncryptionCanceled: String { return self._s[853]! } - public var MediaPicker_GroupDescription: String { return self._s[854]! } - public var WebSearch_Images: String { return self._s[855]! } + public var OldChannels_NoticeUpgradeText: String { return self._s[839]! } + public var Login_ResetAccountProtected_Reset: String { return self._s[841]! } + public var Watch_PhotoView_Title: String { return self._s[842]! } + public var Passport_Phone_Delete: String { return self._s[843]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[844]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[845]! } + public var GroupInfo_Permissions: String { return self._s[846]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[847]! } + public var Profile_ShareContactButton: String { return self._s[848]! } + public var ChatSettings_Other: String { return self._s[849]! } + public var UserInfo_NotificationsDisabled: String { return self._s[850]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[851]! } + public var LastSeen_WithinAMonth: String { return self._s[852]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[853]! } + public var Conversation_ReportGroupLocation: String { return self._s[854]! } + public var Conversation_EncryptionCanceled: String { return self._s[855]! } + public var MediaPicker_GroupDescription: String { return self._s[856]! } + public var WebSearch_Images: String { return self._s[857]! } public func Channel_Management_PromotedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[856]!, self._r[856]!, [_0]) + return formatWithArgumentRanges(self._s[858]!, self._r[858]!, [_0]) } - public var Message_Photo: String { return self._s[857]! } - public var PasscodeSettings_HelpBottom: String { return self._s[858]! } - public var AutoDownloadSettings_VideosTitle: String { return self._s[859]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[860]! } - public var Passport_Identity_AddDriversLicense: String { return self._s[861]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[862]! } - public var NotificationsSound_Calypso: String { return self._s[863]! } - public var Map_Map: String { return self._s[864]! } - public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[866]! } - public var ChatSettings_TextSizeUnits: String { return self._s[867]! } + public var Message_Photo: String { return self._s[859]! } + public var PasscodeSettings_HelpBottom: String { return self._s[860]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[861]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[862]! } + public var Passport_Identity_AddDriversLicense: String { return self._s[863]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[864]! } + public var NotificationsSound_Calypso: String { return self._s[865]! } + public var Map_Map: String { return self._s[866]! } + public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[868]! } + public var ChatSettings_TextSizeUnits: String { return self._s[869]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[868]!, self._r[868]!, [_0]) + return formatWithArgumentRanges(self._s[870]!, self._r[870]!, [_0]) } - public var Common_of: String { return self._s[869]! } - public var Conversation_ForwardContacts: String { return self._s[872]! } - public var IntentsSettings_SuggestByAll: String { return self._s[874]! } + public var Common_of: String { return self._s[871]! } + public var Conversation_ForwardContacts: String { return self._s[874]! } + public var IntentsSettings_SuggestByAll: String { return self._s[876]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[875]!, self._r[875]!, [_0]) + return formatWithArgumentRanges(self._s[877]!, self._r[877]!, [_0]) } - public var Passport_Language_hy: String { return self._s[876]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[877]! } - public var AutoDownloadSettings_Reset: String { return self._s[878]! } - public var Wallet_TransactionInfo_AddressCopied: String { return self._s[879]! } - public var Paint_ClearConfirm: String { return self._s[880]! } - public var Camera_VideoMode: String { return self._s[881]! } + public var Passport_Language_hy: String { return self._s[878]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[879]! } + public var AutoDownloadSettings_Reset: String { return self._s[880]! } + public var Wallet_TransactionInfo_AddressCopied: String { return self._s[881]! } + public var Paint_ClearConfirm: String { return self._s[882]! } + public var Camera_VideoMode: String { return self._s[883]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[882]!, self._r[882]!, [_0]) + return formatWithArgumentRanges(self._s[884]!, self._r[884]!, [_0]) } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[883]! } - public var Conversation_ViewBackground: String { return self._s[884]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[885]! } + public var Conversation_ViewBackground: String { return self._s[886]! } public func Wallet_Info_TransactionDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[885]!, self._r[885]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[887]!, self._r[887]!, [_1, _2, _3]) } - public var Passport_Language_el: String { return self._s[886]! } - public var PhotoEditor_Original: String { return self._s[887]! } - public var Settings_FAQ_Button: String { return self._s[889]! } - public var Channel_Setup_PublicNoLink: String { return self._s[891]! } - public var Conversation_UnsupportedMedia: String { return self._s[892]! } - public var Conversation_SlideToCancel: String { return self._s[893]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[894]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[895]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[896]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[897]! } - public var AutoNightTheme_NotAvailable: String { return self._s[898]! } - public var Conversation_Owner: String { return self._s[899]! } - public var Common_Create: String { return self._s[900]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[901]! } - public var ContactList_Context_Call: String { return self._s[902]! } - public var Localization_ChooseLanguage: String { return self._s[904]! } - public var ChatList_Context_AddToContacts: String { return self._s[906]! } - public var OldChannels_NoticeTitle: String { return self._s[907]! } - public var Settings_Proxy: String { return self._s[909]! } - public var Privacy_TopPeersHelp: String { return self._s[910]! } - public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[911]! } - public var Chat_UnsendMyMessages: String { return self._s[912]! } + public var Passport_Language_el: String { return self._s[888]! } + public var PhotoEditor_Original: String { return self._s[889]! } + public var Settings_FAQ_Button: String { return self._s[891]! } + public var Channel_Setup_PublicNoLink: String { return self._s[893]! } + public var Conversation_UnsupportedMedia: String { return self._s[894]! } + public var Conversation_SlideToCancel: String { return self._s[895]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[896]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[897]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[898]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[899]! } + public var AutoNightTheme_NotAvailable: String { return self._s[900]! } + public var Conversation_Owner: String { return self._s[901]! } + public var Common_Create: String { return self._s[902]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[903]! } + public var ContactList_Context_Call: String { return self._s[904]! } + public var Localization_ChooseLanguage: String { return self._s[906]! } + public var ChatList_Context_AddToContacts: String { return self._s[908]! } + public var OldChannels_NoticeTitle: String { return self._s[909]! } + public var Settings_Proxy: String { return self._s[911]! } + public var Privacy_TopPeersHelp: String { return self._s[912]! } + public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[913]! } + public var Chat_UnsendMyMessages: String { return self._s[914]! } public func VoiceOver_Chat_Duration(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[913]!, self._r[913]!, [_0]) + return formatWithArgumentRanges(self._s[915]!, self._r[915]!, [_0]) } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[914]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[916]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[916]!, self._r[916]!, [_0]) + return formatWithArgumentRanges(self._s[918]!, self._r[918]!, [_0]) } - public var Contacts_SortedByPresence: String { return self._s[917]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[918]! } - public var Cache_Title: String { return self._s[919]! } + public var Contacts_SortedByPresence: String { return self._s[919]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[920]! } + public var Cache_Title: String { return self._s[921]! } public func Login_PhoneBannedEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[920]!, self._r[920]!, [_0]) + return formatWithArgumentRanges(self._s[922]!, self._r[922]!, [_0]) } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[921]! } - public var Channel_Moderator_Title: String { return self._s[922]! } - public var InstantPage_AutoNightTheme: String { return self._s[924]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[923]! } + public var Channel_Moderator_Title: String { return self._s[924]! } + public var InstantPage_AutoNightTheme: String { return self._s[926]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[927]!, self._r[927]!, [_1]) + return formatWithArgumentRanges(self._s[929]!, self._r[929]!, [_1]) } - public var Passport_Scans_Upload: String { return self._s[928]! } - public var Undo_Undo: String { return self._s[930]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[931]! } - public var TwoStepAuth_RemovePassword: String { return self._s[932]! } - public var Common_Delete: String { return self._s[933]! } - public var Contacts_AddPeopleNearby: String { return self._s[935]! } - public var Conversation_ContextMenuDelete: String { return self._s[936]! } - public var SocksProxySetup_Credentials: String { return self._s[937]! } - public var Appearance_EditTheme: String { return self._s[939]! } - public var ClearCache_StorageOtherApps: String { return self._s[940]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[941]! } - public var Wallet_Send_NetworkErrorText: String { return self._s[942]! } - public var AuthSessions_DevicesTitle: String { return self._s[944]! } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[946]! } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[947]! } - public var Passport_Language_id: String { return self._s[949]! } - public var WallpaperSearch_ColorTeal: String { return self._s[950]! } - public var ChannelIntro_Title: String { return self._s[951]! } + public var Passport_Scans_Upload: String { return self._s[930]! } + public var Undo_Undo: String { return self._s[932]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[933]! } + public var TwoStepAuth_RemovePassword: String { return self._s[934]! } + public var Common_Delete: String { return self._s[935]! } + public var Contacts_AddPeopleNearby: String { return self._s[937]! } + public var Conversation_ContextMenuDelete: String { return self._s[938]! } + public var SocksProxySetup_Credentials: String { return self._s[939]! } + public var Appearance_EditTheme: String { return self._s[941]! } + public var ClearCache_StorageOtherApps: String { return self._s[942]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[943]! } + public var Wallet_Send_NetworkErrorText: String { return self._s[944]! } + public var AuthSessions_DevicesTitle: String { return self._s[946]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[948]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[949]! } + public var Passport_Language_id: String { return self._s[951]! } + public var WallpaperSearch_ColorTeal: String { return self._s[952]! } + public var ChannelIntro_Title: String { return self._s[953]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[952]!, self._r[952]!, [_0]) + return formatWithArgumentRanges(self._s[954]!, self._r[954]!, [_0]) } - public var VoiceOver_Chat_OpenLinkHint: String { return self._s[954]! } - public var VoiceOver_Chat_Reply: String { return self._s[955]! } - public var ScheduledMessages_BotActionUnavailable: String { return self._s[956]! } - public var Channel_Info_Description: String { return self._s[957]! } - public var Stickers_FavoriteStickers: String { return self._s[958]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[959]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[960]! } - public var ChatSearch_ResultsTooltip: String { return self._s[961]! } - public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[962]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[963]! } - public var Group_PublicLink_Placeholder: String { return self._s[964]! } - public var Notifications_ExceptionsDefaultSound: String { return self._s[965]! } + public var VoiceOver_Chat_OpenLinkHint: String { return self._s[956]! } + public var VoiceOver_Chat_Reply: String { return self._s[957]! } + public var ScheduledMessages_BotActionUnavailable: String { return self._s[958]! } + public var Channel_Info_Description: String { return self._s[959]! } + public var Stickers_FavoriteStickers: String { return self._s[960]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[961]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[962]! } + public var ChatSearch_ResultsTooltip: String { return self._s[963]! } + public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[964]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[965]! } + public var Group_PublicLink_Placeholder: String { return self._s[966]! } + public var Notifications_ExceptionsDefaultSound: String { return self._s[967]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[966]!, self._r[966]!, [_1]) + return formatWithArgumentRanges(self._s[968]!, self._r[968]!, [_1]) } - public var TextFormat_Underline: String { return self._s[967]! } + public var TextFormat_Underline: String { return self._s[969]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[969]!, self._r[969]!, [_1, _2]) + return formatWithArgumentRanges(self._s[971]!, self._r[971]!, [_1, _2]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[970]!, self._r[970]!, [_0]) + return formatWithArgumentRanges(self._s[972]!, self._r[972]!, [_0]) } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[971]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[973]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[972]!, self._r[972]!, [_1, _2]) + return formatWithArgumentRanges(self._s[974]!, self._r[974]!, [_1, _2]) } - public var Wallet_Intro_ImportExisting: String { return self._s[973]! } - public var GroupPermission_Delete: String { return self._s[974]! } - public var Passport_Language_uk: String { return self._s[975]! } - public var StickerPack_HideStickers: String { return self._s[977]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[978]! } + public var Wallet_Intro_ImportExisting: String { return self._s[975]! } + public var GroupPermission_Delete: String { return self._s[976]! } + public var Passport_Language_uk: String { return self._s[977]! } + public var StickerPack_HideStickers: String { return self._s[979]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[980]! } public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[979]!, self._r[979]!, [_1, _2]) + return formatWithArgumentRanges(self._s[981]!, self._r[981]!, [_1, _2]) } - public var Activity_UploadingVideoMessage: String { return self._s[980]! } + public var Activity_UploadingVideoMessage: String { return self._s[982]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[981]!, self._r[981]!, [_0]) + return formatWithArgumentRanges(self._s[983]!, self._r[983]!, [_0]) } - public var Channel_TitleInfo: String { return self._s[982]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[983]! } - public var Settings_CallSettings: String { return self._s[984]! } - public var Camera_SquareMode: String { return self._s[985]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[986]! } - public var GroupInfo_SharedMediaNone: String { return self._s[987]! } + public var Channel_TitleInfo: String { return self._s[984]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[985]! } + public var Settings_CallSettings: String { return self._s[986]! } + public var Camera_SquareMode: String { return self._s[987]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[988]! } + public var GroupInfo_SharedMediaNone: String { return self._s[989]! } public func PUSH_MESSAGE_VIDEO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[988]!, self._r[988]!, [_1]) + return formatWithArgumentRanges(self._s[990]!, self._r[990]!, [_1]) } - public var Bot_GenericBotStatus: String { return self._s[989]! } - public var Application_Update: String { return self._s[991]! } - public var Month_ShortJanuary: String { return self._s[992]! } - public var Contacts_PermissionsKeepDisabled: String { return self._s[993]! } - public var Channel_AdminLog_BanReadMessages: String { return self._s[994]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[995]! } - public var Passport_Address_Street2Placeholder: String { return self._s[996]! } + public var Bot_GenericBotStatus: String { return self._s[991]! } + public var Application_Update: String { return self._s[993]! } + public var Month_ShortJanuary: String { return self._s[994]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[995]! } + public var Channel_AdminLog_BanReadMessages: String { return self._s[996]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[997]! } + public var Passport_Address_Street2Placeholder: String { return self._s[998]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[997]!, self._r[997]!, [_0]) + return formatWithArgumentRanges(self._s[999]!, self._r[999]!, [_0]) } - public var NetworkUsageSettings_Cellular: String { return self._s[998]! } - public var Appearance_PreviewOutgoingText: String { return self._s[999]! } + public var NetworkUsageSettings_Cellular: String { return self._s[1000]! } + public var Appearance_PreviewOutgoingText: String { return self._s[1001]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1000]!, self._r[1000]!, [_0]) + return formatWithArgumentRanges(self._s[1002]!, self._r[1002]!, [_0]) } - public var Notifications_PermissionsAllowInSettings: String { return self._s[1001]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[1003]! } - public var Map_Directions: String { return self._s[1004]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[1006]! } - public var Appearance_ThemeDay: String { return self._s[1007]! } - public var LogoutOptions_LogOut: String { return self._s[1008]! } - public var Group_PublicLink_Title: String { return self._s[1010]! } - public var Channel_AddBotErrorNoRights: String { return self._s[1011]! } - public var ChatList_Search_ShowLess: String { return self._s[1012]! } - public var Passport_Identity_AddPassport: String { return self._s[1013]! } - public var LocalGroup_ButtonTitle: String { return self._s[1014]! } - public var Call_Message: String { return self._s[1015]! } - public var PhotoEditor_ExposureTool: String { return self._s[1016]! } - public var Wallet_Receive_CommentInfo: String { return self._s[1018]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[1019]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[1021]! } - public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[1022]! } - public var Appearance_Preview: String { return self._s[1023]! } - public var Compose_ChannelMembers: String { return self._s[1024]! } - public var Conversation_DeleteManyMessages: String { return self._s[1025]! } - public var ReportPeer_ReasonOther_Title: String { return self._s[1026]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1027]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1028]! } - public var Channel_Stickers_CreateYourOwn: String { return self._s[1031]! } - public var Conversation_UpdateTelegram: String { return self._s[1032]! } - public var EditTheme_Create_TopInfo: String { return self._s[1033]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[1003]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[1005]! } + public var Map_Directions: String { return self._s[1006]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[1008]! } + public var Appearance_ThemeDay: String { return self._s[1009]! } + public var LogoutOptions_LogOut: String { return self._s[1010]! } + public var Group_PublicLink_Title: String { return self._s[1012]! } + public var Channel_AddBotErrorNoRights: String { return self._s[1013]! } + public var ChatList_Search_ShowLess: String { return self._s[1014]! } + public var Passport_Identity_AddPassport: String { return self._s[1015]! } + public var LocalGroup_ButtonTitle: String { return self._s[1016]! } + public var Call_Message: String { return self._s[1017]! } + public var PhotoEditor_ExposureTool: String { return self._s[1018]! } + public var Wallet_Receive_CommentInfo: String { return self._s[1020]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[1021]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[1023]! } + public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[1024]! } + public var Appearance_Preview: String { return self._s[1025]! } + public var Compose_ChannelMembers: String { return self._s[1026]! } + public var Conversation_DeleteManyMessages: String { return self._s[1027]! } + public var ReportPeer_ReasonOther_Title: String { return self._s[1028]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1029]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1030]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[1033]! } + public var Conversation_UpdateTelegram: String { return self._s[1034]! } + public var EditTheme_Create_TopInfo: String { return self._s[1035]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1034]!, self._r[1034]!, [_0]) + return formatWithArgumentRanges(self._s[1036]!, self._r[1036]!, [_0]) } - public var Wallet_WordCheck_Continue: String { return self._s[1035]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[1036]! } - public var IntentsSettings_ResetAll: String { return self._s[1037]! } + public var Wallet_WordCheck_Continue: String { return self._s[1037]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[1038]! } + public var IntentsSettings_ResetAll: String { return self._s[1039]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1038]!, self._r[1038]!, [_1]) + return formatWithArgumentRanges(self._s[1040]!, self._r[1040]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[1039]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[1040]! } + public var GroupInfo_Administrators_Title: String { return self._s[1041]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[1042]! } public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1041]!, self._r[1041]!, [_0]) + return formatWithArgumentRanges(self._s[1043]!, self._r[1043]!, [_0]) } - public var Tour_Title3: String { return self._s[1042]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[1043]! } - public var Clipboard_SendPhoto: String { return self._s[1047]! } - public var MediaPicker_Videos: String { return self._s[1048]! } - public var Passport_Email_Title: String { return self._s[1049]! } + public var Tour_Title3: String { return self._s[1044]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[1045]! } + public var Clipboard_SendPhoto: String { return self._s[1049]! } + public var MediaPicker_Videos: String { return self._s[1050]! } + public var Passport_Email_Title: String { return self._s[1051]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1050]!, self._r[1050]!, [_0]) + return formatWithArgumentRanges(self._s[1052]!, self._r[1052]!, [_0]) } - public var StickerPacksSettings_Title: String { return self._s[1051]! } - public var Conversation_MessageDialogDelete: String { return self._s[1052]! } - public var Privacy_Calls_CustomHelp: String { return self._s[1054]! } - public var Message_Wallpaper: String { return self._s[1055]! } - public var MemberSearch_BotSection: String { return self._s[1056]! } - public var GroupInfo_SetSound: String { return self._s[1057]! } - public var Core_ServiceUserStatus: String { return self._s[1058]! } - public var LiveLocationUpdated_JustNow: String { return self._s[1059]! } - public var Call_StatusFailed: String { return self._s[1060]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[1061]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1062]! } - public var TwoStepAuth_SetPassword: String { return self._s[1063]! } - public var Permissions_PeopleNearbyText_v0: String { return self._s[1064]! } + public var StickerPacksSettings_Title: String { return self._s[1053]! } + public var Conversation_MessageDialogDelete: String { return self._s[1054]! } + public var Privacy_Calls_CustomHelp: String { return self._s[1056]! } + public var Message_Wallpaper: String { return self._s[1057]! } + public var MemberSearch_BotSection: String { return self._s[1058]! } + public var GroupInfo_SetSound: String { return self._s[1059]! } + public var Core_ServiceUserStatus: String { return self._s[1060]! } + public var LiveLocationUpdated_JustNow: String { return self._s[1061]! } + public var Call_StatusFailed: String { return self._s[1062]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[1063]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1064]! } + public var TwoStepAuth_SetPassword: String { return self._s[1065]! } + public var Permissions_PeopleNearbyText_v0: String { return self._s[1066]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1066]!, self._r[1066]!, [_0]) + return formatWithArgumentRanges(self._s[1068]!, self._r[1068]!, [_0]) } - public var Calls_SubmitRating: String { return self._s[1067]! } - public var Map_NoPlacesNearby: String { return self._s[1068]! } - public var Profile_Username: String { return self._s[1069]! } - public var Bot_DescriptionTitle: String { return self._s[1070]! } - public var MaskStickerSettings_Title: String { return self._s[1071]! } - public var SharedMedia_CategoryOther: String { return self._s[1072]! } - public var GroupInfo_SetGroupPhoto: String { return self._s[1073]! } - public var Common_NotNow: String { return self._s[1074]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[1075]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[1076]! } - public var Map_Location: String { return self._s[1077]! } - public var Invitation_JoinGroup: String { return self._s[1078]! } - public var AutoDownloadSettings_Title: String { return self._s[1080]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1081]! } - public var Channel_ErrorAddBlocked: String { return self._s[1082]! } - public var Conversation_UnblockUser: String { return self._s[1083]! } - public var EditTheme_Edit_TopInfo: String { return self._s[1084]! } - public var Watch_Bot_Restart: String { return self._s[1085]! } - public var TwoStepAuth_Title: String { return self._s[1086]! } - public var Channel_AdminLog_BanSendMessages: String { return self._s[1087]! } - public var Checkout_ShippingMethod: String { return self._s[1088]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1089]! } + public var Calls_SubmitRating: String { return self._s[1069]! } + public var Map_NoPlacesNearby: String { return self._s[1070]! } + public var Profile_Username: String { return self._s[1071]! } + public var Bot_DescriptionTitle: String { return self._s[1072]! } + public var MaskStickerSettings_Title: String { return self._s[1073]! } + public var SharedMedia_CategoryOther: String { return self._s[1074]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1075]! } + public var Common_NotNow: String { return self._s[1076]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[1077]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[1078]! } + public var Map_Location: String { return self._s[1079]! } + public var Invitation_JoinGroup: String { return self._s[1080]! } + public var AutoDownloadSettings_Title: String { return self._s[1082]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1083]! } + public var Channel_ErrorAddBlocked: String { return self._s[1084]! } + public var Conversation_UnblockUser: String { return self._s[1085]! } + public var EditTheme_Edit_TopInfo: String { return self._s[1086]! } + public var Watch_Bot_Restart: String { return self._s[1087]! } + public var TwoStepAuth_Title: String { return self._s[1088]! } + public var Channel_AdminLog_BanSendMessages: String { return self._s[1089]! } + public var Checkout_ShippingMethod: String { return self._s[1090]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1091]! } public func PUSH_CHAT_MESSAGE_STICKER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1090]!, self._r[1090]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1092]!, self._r[1092]!, [_1, _2, _3]) } - public var EditTheme_ChangeColors: String { return self._s[1092]! } + public var EditTheme_ChangeColors: String { return self._s[1094]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1093]!, self._r[1093]!, [_0]) + return formatWithArgumentRanges(self._s[1095]!, self._r[1095]!, [_0]) } public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1094]!, self._r[1094]!, [_0]) + return formatWithArgumentRanges(self._s[1096]!, self._r[1096]!, [_0]) } - public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1095]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1096]! } - public var AuthSessions_TerminateOtherSessions: String { return self._s[1097]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[1098]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[1099]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1100]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1101]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[1102]! } - public var Checkout_PaymentMethod_Title: String { return self._s[1103]! } - public var SocksProxySetup_Connection: String { return self._s[1104]! } - public var Group_MessagePhotoRemoved: String { return self._s[1105]! } - public var Channel_Stickers_NotFound: String { return self._s[1108]! } - public var Group_About_Help: String { return self._s[1109]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[1110]! } - public var PeopleNearby_Title: String { return self._s[1112]! } + public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1097]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1098]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[1099]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[1100]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[1101]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1102]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1103]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[1104]! } + public var Checkout_PaymentMethod_Title: String { return self._s[1105]! } + public var SocksProxySetup_Connection: String { return self._s[1106]! } + public var Group_MessagePhotoRemoved: String { return self._s[1107]! } + public var Channel_Stickers_NotFound: String { return self._s[1110]! } + public var Group_About_Help: String { return self._s[1111]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[1112]! } + public var PeopleNearby_Title: String { return self._s[1114]! } public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1113]!, self._r[1113]!, [_1]) + return formatWithArgumentRanges(self._s[1115]!, self._r[1115]!, [_1]) } - public var Map_Home: String { return self._s[1114]! } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1116]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1117]! } - public var SocksProxySetup_Password: String { return self._s[1118]! } - public var Notifications_PermissionsEnable: String { return self._s[1119]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[1121]! } + public var Map_Home: String { return self._s[1116]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1118]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1119]! } + public var SocksProxySetup_Password: String { return self._s[1120]! } + public var Notifications_PermissionsEnable: String { return self._s[1121]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[1123]! } public func Channel_AdminLog_MessageInvitedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1122]!, self._r[1122]!, [_1]) + return formatWithArgumentRanges(self._s[1124]!, self._r[1124]!, [_1]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1124]!, self._r[1124]!, [_0]) + return formatWithArgumentRanges(self._s[1126]!, self._r[1126]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[1125]! } - public var ArchivedPacksAlert_Title: String { return self._s[1126]! } - public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1127]! } - public var Map_PlacesNearby: String { return self._s[1128]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[1127]! } + public var ArchivedPacksAlert_Title: String { return self._s[1128]! } + public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1129]! } + public var Map_PlacesNearby: String { return self._s[1130]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1129]!, self._r[1129]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1131]!, self._r[1131]!, [_1, _2, _3]) } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1130]! } - public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1132]! } - public var Conversation_StatusTyping: String { return self._s[1133]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[1134]! } - public var Notification_PassportValueProofOfAddress: String { return self._s[1135]! } - public var UserInfo_CreateNewContact: String { return self._s[1136]! } - public var Passport_Identity_FrontSide: String { return self._s[1137]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1138]! } - public var Calls_CallTabTitle: String { return self._s[1139]! } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1140]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1132]! } + public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1134]! } + public var Conversation_StatusTyping: String { return self._s[1135]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[1136]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[1137]! } + public var UserInfo_CreateNewContact: String { return self._s[1138]! } + public var Passport_Identity_FrontSide: String { return self._s[1139]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1140]! } + public var Calls_CallTabTitle: String { return self._s[1141]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1142]! } public func Login_BannedPhoneBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1142]!, self._r[1142]!, [_0]) + return formatWithArgumentRanges(self._s[1144]!, self._r[1144]!, [_0]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[1143]! } - public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1144]! } - public var SharedMedia_EmptyMusicText: String { return self._s[1145]! } - public var Wallet_Completed_Text: String { return self._s[1146]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1147]! } - public var Paint_Stickers: String { return self._s[1148]! } - public var Privacy_GroupsAndChannels: String { return self._s[1149]! } - public var ChatList_Context_Delete: String { return self._s[1151]! } - public var UserInfo_AddContact: String { return self._s[1152]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[1145]! } + public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1146]! } + public var SharedMedia_EmptyMusicText: String { return self._s[1147]! } + public var Wallet_Completed_Text: String { return self._s[1148]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1149]! } + public var Paint_Stickers: String { return self._s[1150]! } + public var Privacy_GroupsAndChannels: String { return self._s[1151]! } + public var ChatList_Context_Delete: String { return self._s[1153]! } + public var UserInfo_AddContact: String { return self._s[1154]! } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1153]!, self._r[1153]!, [_0]) + return formatWithArgumentRanges(self._s[1155]!, self._r[1155]!, [_0]) } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[1155]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[1157]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1157]!, self._r[1157]!, [_0]) + return formatWithArgumentRanges(self._s[1159]!, self._r[1159]!, [_0]) } - public var DialogList_NoMessagesTitle: String { return self._s[1158]! } - public var EditProfile_NameAndPhotoHelp: String { return self._s[1159]! } - public var BlockedUsers_BlockUser: String { return self._s[1160]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[1161]! } - public var MediaPicker_UngroupDescription: String { return self._s[1162]! } - public var Watch_NoConnection: String { return self._s[1163]! } - public var Month_GenSeptember: String { return self._s[1164]! } - public var Conversation_ViewGroup: String { return self._s[1166]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1169]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[1170]! } - public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1171]! } - public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1172]! } - public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1173]! } - public var MediaPicker_CameraRoll: String { return self._s[1175]! } - public var Month_GenAugust: String { return self._s[1176]! } - public var Wallet_Configuration_SourceHeader: String { return self._s[1177]! } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[1178]! } - public var SharedMedia_EmptyText: String { return self._s[1179]! } - public var Map_ShareLiveLocation: String { return self._s[1180]! } - public var Calls_All: String { return self._s[1181]! } - public var Map_SendThisPlace: String { return self._s[1183]! } - public var Appearance_ThemeNight: String { return self._s[1185]! } - public var Conversation_HoldForAudio: String { return self._s[1186]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[1189]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[1190]! } - public var SocksProxySetup_Secret: String { return self._s[1191]! } + public var DialogList_NoMessagesTitle: String { return self._s[1160]! } + public var EditProfile_NameAndPhotoHelp: String { return self._s[1161]! } + public var BlockedUsers_BlockUser: String { return self._s[1162]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[1163]! } + public var MediaPicker_UngroupDescription: String { return self._s[1164]! } + public var Watch_NoConnection: String { return self._s[1165]! } + public var Month_GenSeptember: String { return self._s[1166]! } + public var Conversation_ViewGroup: String { return self._s[1168]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1171]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[1172]! } + public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1173]! } + public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1174]! } + public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1175]! } + public var MediaPicker_CameraRoll: String { return self._s[1177]! } + public var Month_GenAugust: String { return self._s[1178]! } + public var Wallet_Configuration_SourceHeader: String { return self._s[1179]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[1180]! } + public var SharedMedia_EmptyText: String { return self._s[1181]! } + public var Map_ShareLiveLocation: String { return self._s[1182]! } + public var Calls_All: String { return self._s[1183]! } + public var Map_SendThisPlace: String { return self._s[1185]! } + public var Appearance_ThemeNight: String { return self._s[1187]! } + public var Conversation_HoldForAudio: String { return self._s[1188]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[1191]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[1192]! } + public var SocksProxySetup_Secret: String { return self._s[1193]! } public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1192]!, self._r[1192]!, [_0]) + return formatWithArgumentRanges(self._s[1194]!, self._r[1194]!, [_0]) } - public var Channel_BanList_RestrictedTitle: String { return self._s[1194]! } - public var Conversation_Location: String { return self._s[1195]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[1196]! } + public var Conversation_Location: String { return self._s[1197]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1196]!, self._r[1196]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1198]!, self._r[1198]!, [_1, _2]) } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[1198]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1199]! } - public var Notifications_PermissionsText: String { return self._s[1200]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1201]! } - public var Call_Flip: String { return self._s[1202]! } - public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1204]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1205]! } - public var Wallet_TransactionInfo_StorageFeeInfoUrl: String { return self._s[1206]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1207]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1209]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1211]! } - public var Channel_TooMuchBots: String { return self._s[1213]! } - public var Passport_DeletePassportConfirmation: String { return self._s[1214]! } - public var Login_InvalidCodeError: String { return self._s[1215]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1216]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[1200]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1201]! } + public var Notifications_PermissionsText: String { return self._s[1202]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1203]! } + public var Call_Flip: String { return self._s[1204]! } + public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1206]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1207]! } + public var Wallet_TransactionInfo_StorageFeeInfoUrl: String { return self._s[1208]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1209]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1211]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1213]! } + public var Channel_TooMuchBots: String { return self._s[1215]! } + public var Passport_DeletePassportConfirmation: String { return self._s[1216]! } + public var Login_InvalidCodeError: String { return self._s[1217]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1218]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1217]!, self._r[1217]!, [_0]) + return formatWithArgumentRanges(self._s[1219]!, self._r[1219]!, [_0]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1218]!, self._r[1218]!, [_0]) + return formatWithArgumentRanges(self._s[1220]!, self._r[1220]!, [_0]) } - public var VoiceOver_Navigation_ProxySettings: String { return self._s[1219]! } - public var Call_CallInProgressTitle: String { return self._s[1220]! } - public var Month_ShortSeptember: String { return self._s[1221]! } - public var Watch_ChannelInfo_Title: String { return self._s[1222]! } - public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1225]! } - public var DialogList_PasscodeLockHelp: String { return self._s[1226]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[1227]! } - public var Wallet_Receive_Title: String { return self._s[1228]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[1229]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1230]! } - public var PhotoEditor_CropReset: String { return self._s[1231]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1233]! } - public var Channel_Management_LabelEditor: String { return self._s[1234]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1236]! } - public var PhotoEditor_HighlightsTool: String { return self._s[1237]! } - public var Wallet_Info_WalletCreated: String { return self._s[1238]! } - public var UserInfo_Title: String { return self._s[1239]! } - public var ChatList_HideAction: String { return self._s[1240]! } - public var AccessDenied_Title: String { return self._s[1241]! } - public var DialogList_SearchLabel: String { return self._s[1242]! } - public var Group_Setup_HistoryHidden: String { return self._s[1243]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1244]! } - public var State_Updating: String { return self._s[1246]! } - public var Contacts_TabTitle: String { return self._s[1247]! } - public var Notifications_Badge_CountUnreadMessages: String { return self._s[1249]! } - public var GroupInfo_GroupHistory: String { return self._s[1250]! } - public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1251]! } - public var Wallpaper_SetColor: String { return self._s[1252]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1253]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1254]! } - public var Chat_AttachmentLimitReached: String { return self._s[1255]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1256]! } - public var Contacts_NotRegisteredSection: String { return self._s[1257]! } + public var VoiceOver_Navigation_ProxySettings: String { return self._s[1221]! } + public var Call_CallInProgressTitle: String { return self._s[1222]! } + public var Month_ShortSeptember: String { return self._s[1223]! } + public var Watch_ChannelInfo_Title: String { return self._s[1224]! } + public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1227]! } + public var DialogList_PasscodeLockHelp: String { return self._s[1228]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[1229]! } + public var Wallet_Receive_Title: String { return self._s[1230]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[1231]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1232]! } + public var PhotoEditor_CropReset: String { return self._s[1233]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1235]! } + public var Channel_Management_LabelEditor: String { return self._s[1236]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1238]! } + public var PhotoEditor_HighlightsTool: String { return self._s[1239]! } + public var Wallet_Info_WalletCreated: String { return self._s[1240]! } + public var UserInfo_Title: String { return self._s[1241]! } + public var ChatList_HideAction: String { return self._s[1242]! } + public var AccessDenied_Title: String { return self._s[1243]! } + public var DialogList_SearchLabel: String { return self._s[1244]! } + public var Group_Setup_HistoryHidden: String { return self._s[1245]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1246]! } + public var State_Updating: String { return self._s[1248]! } + public var Contacts_TabTitle: String { return self._s[1249]! } + public var Notifications_Badge_CountUnreadMessages: String { return self._s[1251]! } + public var GroupInfo_GroupHistory: String { return self._s[1252]! } + public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1253]! } + public var Wallpaper_SetColor: String { return self._s[1254]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1255]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1256]! } + public var Chat_AttachmentLimitReached: String { return self._s[1257]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1258]! } + public var Contacts_NotRegisteredSection: String { return self._s[1259]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1258]!, self._r[1258]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1260]!, self._r[1260]!, [_1, _2, _3]) } - public var Paint_Clear: String { return self._s[1259]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[1260]! } - public var SocksProxySetup_Connecting: String { return self._s[1261]! } - public var ExplicitContent_AlertChannel: String { return self._s[1262]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[1263]! } - public var Conversation_Contact: String { return self._s[1264]! } - public var Login_CodeExpired: String { return self._s[1265]! } - public var Passport_DiscardMessageAction: String { return self._s[1266]! } - public var ChatList_Context_Unpin: String { return self._s[1267]! } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1268]! } + public var Paint_Clear: String { return self._s[1261]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[1262]! } + public var SocksProxySetup_Connecting: String { return self._s[1263]! } + public var ExplicitContent_AlertChannel: String { return self._s[1264]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[1265]! } + public var Conversation_Contact: String { return self._s[1266]! } + public var Login_CodeExpired: String { return self._s[1267]! } + public var Passport_DiscardMessageAction: String { return self._s[1268]! } + public var ChatList_Context_Unpin: String { return self._s[1269]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1270]! } public func VoiceOver_Chat_MusicFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1269]!, self._r[1269]!, [_0]) + return formatWithArgumentRanges(self._s[1271]!, self._r[1271]!, [_0]) } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[1270]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1271]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[1272]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1273]! } public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1272]!, self._r[1272]!, [_0]) + return formatWithArgumentRanges(self._s[1274]!, self._r[1274]!, [_0]) } - public var Month_ShortApril: String { return self._s[1273]! } - public var AuthSessions_CurrentSession: String { return self._s[1274]! } - public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1277]! } - public var Wallet_Navigation_Cancel: String { return self._s[1279]! } - public var WallpaperPreview_CropTopText: String { return self._s[1280]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1281]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1282]! } + public var Month_ShortApril: String { return self._s[1275]! } + public var AuthSessions_CurrentSession: String { return self._s[1276]! } + public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1279]! } + public var Wallet_Navigation_Cancel: String { return self._s[1281]! } + public var WallpaperPreview_CropTopText: String { return self._s[1282]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1283]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1284]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1283]!, self._r[1283]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1285]!, self._r[1285]!, [_0, _1]) } - public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1284]! } - public var Channel_Setup_TypePrivate: String { return self._s[1286]! } - public var Forward_ChannelReadOnly: String { return self._s[1289]! } - public var PhotoEditor_CurvesBlue: String { return self._s[1290]! } - public var AddContact_SharedContactException: String { return self._s[1291]! } - public var UserInfo_BotPrivacy: String { return self._s[1293]! } - public var Wallet_CreateInvoice_Title: String { return self._s[1294]! } - public var Notification_PassportValueEmail: String { return self._s[1295]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[1296]! } - public var GroupPermission_NewTitle: String { return self._s[1297]! } - public var CallFeedback_ReasonDropped: String { return self._s[1298]! } - public var GroupInfo_Permissions_AddException: String { return self._s[1299]! } - public var Channel_SignMessages_Help: String { return self._s[1301]! } - public var Undo_ChatDeleted: String { return self._s[1303]! } - public var Conversation_ChatBackground: String { return self._s[1304]! } + public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1286]! } + public var Channel_Setup_TypePrivate: String { return self._s[1288]! } + public var Forward_ChannelReadOnly: String { return self._s[1291]! } + public var PhotoEditor_CurvesBlue: String { return self._s[1292]! } + public var AddContact_SharedContactException: String { return self._s[1293]! } + public var UserInfo_BotPrivacy: String { return self._s[1295]! } + public var Wallet_CreateInvoice_Title: String { return self._s[1296]! } + public var Notification_PassportValueEmail: String { return self._s[1297]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[1298]! } + public var GroupPermission_NewTitle: String { return self._s[1299]! } + public var CallFeedback_ReasonDropped: String { return self._s[1300]! } + public var GroupInfo_Permissions_AddException: String { return self._s[1301]! } + public var Channel_SignMessages_Help: String { return self._s[1303]! } + public var Undo_ChatDeleted: String { return self._s[1305]! } + public var Conversation_ChatBackground: String { return self._s[1306]! } public func Wallet_WordCheck_Text(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1305]!, self._r[1305]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1307]!, self._r[1307]!, [_1, _2, _3]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1306]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1307]! } - public var Passport_Language_pt: String { return self._s[1308]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1309]! } - public var NotificationsSound_Popcorn: String { return self._s[1312]! } - public var AutoNightTheme_Disabled: String { return self._s[1313]! } - public var BlockedUsers_LeavePrefix: String { return self._s[1314]! } - public var WallpaperPreview_CustomColorTopText: String { return self._s[1315]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1316]! } - public var WallpaperSearch_ColorBlue: String { return self._s[1317]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1308]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1309]! } + public var Passport_Language_pt: String { return self._s[1310]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1311]! } + public var NotificationsSound_Popcorn: String { return self._s[1314]! } + public var AutoNightTheme_Disabled: String { return self._s[1315]! } + public var BlockedUsers_LeavePrefix: String { return self._s[1316]! } + public var WallpaperPreview_CustomColorTopText: String { return self._s[1317]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1318]! } + public var WallpaperSearch_ColorBlue: String { return self._s[1319]! } public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1318]!, self._r[1318]!, [_0]) + return formatWithArgumentRanges(self._s[1320]!, self._r[1320]!, [_0]) } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1319]! } - public var SocksProxySetup_UseForCalls: String { return self._s[1320]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[1322]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1321]! } + public var SocksProxySetup_UseForCalls: String { return self._s[1322]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[1324]! } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1323]!, self._r[1323]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1325]!, self._r[1325]!, ["\(_0)"]) } - public var SocksProxySetup_Hostname: String { return self._s[1326]! } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1327]! } - public var Compose_NewEncryptedChat: String { return self._s[1328]! } - public var Login_CodeFloodError: String { return self._s[1329]! } - public var Calls_TabTitle: String { return self._s[1330]! } - public var Privacy_ProfilePhoto: String { return self._s[1331]! } - public var Passport_Language_he: String { return self._s[1332]! } + public var SocksProxySetup_Hostname: String { return self._s[1328]! } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1329]! } + public var Compose_NewEncryptedChat: String { return self._s[1330]! } + public var Login_CodeFloodError: String { return self._s[1331]! } + public var Calls_TabTitle: String { return self._s[1332]! } + public var Privacy_ProfilePhoto: String { return self._s[1333]! } + public var Passport_Language_he: String { return self._s[1334]! } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1333]!, self._r[1333]!, [_0]) - } - public var GroupPermission_Title: String { return self._s[1334]! } - public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1335]!, self._r[1335]!, [_0]) } - public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1336]! } - public var GroupPermission_NoChangeInfo: String { return self._s[1337]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[1338]! } - public var Tour_Text1: String { return self._s[1339]! } - public var Channel_EditAdmin_TransferOwnership: String { return self._s[1340]! } - public var Month_ShortFebruary: String { return self._s[1341]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1342]! } + public var GroupPermission_Title: String { return self._s[1336]! } + public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1337]!, self._r[1337]!, [_0]) + } + public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1338]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1339]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[1340]! } + public var Tour_Text1: String { return self._s[1341]! } + public var Channel_EditAdmin_TransferOwnership: String { return self._s[1342]! } + public var Month_ShortFebruary: String { return self._s[1343]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1344]! } public func Wallet_Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1343]!, self._r[1343]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1345]!, self._r[1345]!, [_1, _2, _3]) } - public var NotificationsSound_Glass: String { return self._s[1344]! } - public var Appearance_ThemeNightBlue: String { return self._s[1345]! } - public var CheckoutInfo_Pay: String { return self._s[1346]! } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1348]! } - public var Call_CallAgain: String { return self._s[1350]! } - public var AttachmentMenu_SendAsFile: String { return self._s[1351]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[1352]! } - public var Passport_InvalidPasswordError: String { return self._s[1353]! } - public var Watch_Message_Game: String { return self._s[1354]! } - public var Stickers_Install: String { return self._s[1355]! } - public var VoiceOver_Chat_Message: String { return self._s[1356]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1357]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[1359]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1360]! } - public var AuthSessions_OtherSessions: String { return self._s[1361]! } - public var Channel_Username_Help: String { return self._s[1362]! } - public var Camera_Title: String { return self._s[1363]! } - public var IntentsSettings_Title: String { return self._s[1364]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1366]! } - public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1367]! } - public var Channel_AdminLog_SendPolls: String { return self._s[1368]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1369]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1370]! } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1371]! } - public var ScheduledMessages_DeleteMany: String { return self._s[1372]! } - public var Conversation_RestrictedStickers: String { return self._s[1373]! } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[1375]! } - public var UserInfo_TelegramCall: String { return self._s[1377]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1378]! } - public var CreatePoll_OptionsHeader: String { return self._s[1379]! } - public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1380]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1381]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1382]! } - public var Theme_Colors_Proceed: String { return self._s[1383]! } - public var Passport_Identity_EditPersonalDetails: String { return self._s[1384]! } + public var NotificationsSound_Glass: String { return self._s[1346]! } + public var Appearance_ThemeNightBlue: String { return self._s[1347]! } + public var CheckoutInfo_Pay: String { return self._s[1348]! } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1350]! } + public var Call_CallAgain: String { return self._s[1352]! } + public var AttachmentMenu_SendAsFile: String { return self._s[1353]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[1354]! } + public var Passport_InvalidPasswordError: String { return self._s[1355]! } + public var Watch_Message_Game: String { return self._s[1356]! } + public var Stickers_Install: String { return self._s[1357]! } + public var VoiceOver_Chat_Message: String { return self._s[1358]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1359]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[1361]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1362]! } + public var AuthSessions_OtherSessions: String { return self._s[1363]! } + public var Channel_Username_Help: String { return self._s[1364]! } + public var Camera_Title: String { return self._s[1365]! } + public var IntentsSettings_Title: String { return self._s[1366]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1368]! } + public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1369]! } + public var Channel_AdminLog_SendPolls: String { return self._s[1370]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1371]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1372]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1373]! } + public var ScheduledMessages_DeleteMany: String { return self._s[1374]! } + public var Conversation_RestrictedStickers: String { return self._s[1375]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[1377]! } + public var UserInfo_TelegramCall: String { return self._s[1379]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1380]! } + public var CreatePoll_OptionsHeader: String { return self._s[1381]! } + public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1382]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1383]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1384]! } + public var Theme_Colors_Proceed: String { return self._s[1385]! } + public var Passport_Identity_EditPersonalDetails: String { return self._s[1386]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1385]!, self._r[1385]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1387]!, self._r[1387]!, [_1, _2, _3]) } - public var Wallet_Month_GenAugust: String { return self._s[1386]! } - public var Settings_SaveEditedPhotos: String { return self._s[1387]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[1388]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1389]! } - public var Conversation_MessageDialogRetry: String { return self._s[1390]! } - public var ChatList_Context_MarkAsUnread: String { return self._s[1391]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[1392]! } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1393]! } - public var Group_Setup_TypeHeader: String { return self._s[1394]! } - public var Paint_RecentStickers: String { return self._s[1395]! } - public var PhotoEditor_GrainTool: String { return self._s[1396]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[1397]! } - public var EmptyGroupInfo_Line4: String { return self._s[1398]! } - public var Watch_AuthRequired: String { return self._s[1400]! } + public var Wallet_Month_GenAugust: String { return self._s[1388]! } + public var Settings_SaveEditedPhotos: String { return self._s[1389]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[1390]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1391]! } + public var Conversation_MessageDialogRetry: String { return self._s[1392]! } + public var ChatList_Context_MarkAsUnread: String { return self._s[1393]! } + public var MessagePoll_SubmitVote: String { return self._s[1394]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[1395]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1396]! } + public var Group_Setup_TypeHeader: String { return self._s[1397]! } + public var Paint_RecentStickers: String { return self._s[1398]! } + public var PhotoEditor_GrainTool: String { return self._s[1399]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[1400]! } + public var EmptyGroupInfo_Line4: String { return self._s[1401]! } + public var Watch_AuthRequired: String { return self._s[1403]! } public func Passport_Email_UseTelegramEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1401]!, self._r[1401]!, [_0]) + return formatWithArgumentRanges(self._s[1404]!, self._r[1404]!, [_0]) } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1402]! } - public var ChannelIntro_Text: String { return self._s[1403]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[1404]! } - public var GroupPermission_NoSendMedia: String { return self._s[1405]! } - public var Calls_AddTab: String { return self._s[1406]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[1407]! } - public var Channel_AdminLog_EmptyFilterText: String { return self._s[1408]! } - public var Conversation_WalletRequiredSetup: String { return self._s[1409]! } - public var Notification_MessageLifetime1d: String { return self._s[1410]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1411]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1412]! } - public var Passport_Identity_GenderFemale: String { return self._s[1413]! } - public var BlockedUsers_BlockTitle: String { return self._s[1414]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1405]! } + public var ChannelIntro_Text: String { return self._s[1406]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[1407]! } + public var GroupPermission_NoSendMedia: String { return self._s[1408]! } + public var Calls_AddTab: String { return self._s[1409]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[1410]! } + public var Channel_AdminLog_EmptyFilterText: String { return self._s[1411]! } + public var Conversation_WalletRequiredSetup: String { return self._s[1412]! } + public var Notification_MessageLifetime1d: String { return self._s[1413]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1414]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1415]! } + public var Passport_Identity_GenderFemale: String { return self._s[1416]! } + public var BlockedUsers_BlockTitle: String { return self._s[1417]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1415]!, self._r[1415]!, [_1]) + return formatWithArgumentRanges(self._s[1418]!, self._r[1418]!, [_1]) } - public var Weekday_Yesterday: String { return self._s[1416]! } - public var WallpaperSearch_ColorBlack: String { return self._s[1417]! } - public var Settings_Context_Logout: String { return self._s[1418]! } - public var Wallet_Info_UnknownTransaction: String { return self._s[1419]! } - public var ChatList_ArchiveAction: String { return self._s[1420]! } - public var AutoNightTheme_Scheduled: String { return self._s[1421]! } - public var TwoFactorSetup_Email_SkipAction: String { return self._s[1422]! } - public var Settings_Devices: String { return self._s[1423]! } - public var ContactInfo_Note: String { return self._s[1424]! } + public var Weekday_Yesterday: String { return self._s[1419]! } + public var WallpaperSearch_ColorBlack: String { return self._s[1420]! } + public var Settings_Context_Logout: String { return self._s[1421]! } + public var Wallet_Info_UnknownTransaction: String { return self._s[1422]! } + public var ChatList_ArchiveAction: String { return self._s[1423]! } + public var AutoNightTheme_Scheduled: String { return self._s[1424]! } + public var TwoFactorSetup_Email_SkipAction: String { return self._s[1425]! } + public var Settings_Devices: String { return self._s[1426]! } + public var ContactInfo_Note: String { return self._s[1427]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1425]!, self._r[1425]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[1428]!, self._r[1428]!, [_1, _2, _3, _4, _5, _6]) } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1426]! } - public var Wallet_Receive_CreateInvoice: String { return self._s[1427]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1428]! } - public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[1429]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1429]! } + public var Wallet_Receive_CreateInvoice: String { return self._s[1430]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1431]! } + public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[1432]! } public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1430]!, self._r[1430]!, [_1, _2]) - } - public var CreatePoll_Create: String { return self._s[1431]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1432]! } - public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1433]!, self._r[1433]!, [_1, _2]) } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1434]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1435]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[1437]! } - public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1438]!, self._r[1438]!, [_1]) + public var CreatePoll_Create: String { return self._s[1434]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1435]! } + public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1436]!, self._r[1436]!, [_1, _2]) } - public var Preview_OpenInInstagram: String { return self._s[1439]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1440]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1437]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1438]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[1440]! } + public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1441]!, self._r[1441]!, [_1]) + } + public var Preview_OpenInInstagram: String { return self._s[1442]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1443]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1441]!, self._r[1441]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1444]!, self._r[1444]!, [_1, _2, _3]) } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1442]!, self._r[1442]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1445]!, self._r[1445]!, [_1, _2]) } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1443]! } - public var ArchivedChats_IntroText3: String { return self._s[1444]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[1445]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1446]! } - public var Wallet_Month_GenSeptember: String { return self._s[1447]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1448]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1446]! } + public var ArchivedChats_IntroText3: String { return self._s[1447]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[1448]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1449]! } + public var Wallet_Month_GenSeptember: String { return self._s[1450]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1451]! } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1449]!, self._r[1449]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1452]!, self._r[1452]!, [_1, _2, _3]) } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1451]! } - public var FastTwoStepSetup_HintSection: String { return self._s[1452]! } - public var Wallpaper_PhotoLibrary: String { return self._s[1453]! } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1454]! } - public var Gif_NoGifsFound: String { return self._s[1455]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[1456]! } - public var VoiceOver_MessageContextDelete: String { return self._s[1457]! } - public var EditTheme_Preview: String { return self._s[1458]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1454]! } + public var FastTwoStepSetup_HintSection: String { return self._s[1455]! } + public var Wallpaper_PhotoLibrary: String { return self._s[1456]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1457]! } + public var Gif_NoGifsFound: String { return self._s[1458]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[1459]! } + public var VoiceOver_MessageContextDelete: String { return self._s[1460]! } + public var EditTheme_Preview: String { return self._s[1461]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1459]!, self._r[1459]!, [_0]) + return formatWithArgumentRanges(self._s[1462]!, self._r[1462]!, [_0]) } - public var GroupInfo_ActionPromote: String { return self._s[1460]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[1461]! } - public var GroupInfo_Permissions_Title: String { return self._s[1462]! } - public var Permissions_ContactsText_v0: String { return self._s[1463]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1464]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1465]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1468]! } - public var Passport_FieldEmailHelp: String { return self._s[1469]! } + public var GroupInfo_ActionPromote: String { return self._s[1463]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[1464]! } + public var GroupInfo_Permissions_Title: String { return self._s[1465]! } + public var Permissions_ContactsText_v0: String { return self._s[1466]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1467]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1468]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1471]! } + public var Passport_FieldEmailHelp: String { return self._s[1472]! } public func Activity_RemindAboutUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1470]!, self._r[1470]!, [_0]) + return formatWithArgumentRanges(self._s[1473]!, self._r[1473]!, [_0]) } - public var Passport_Identity_GenderPlaceholder: String { return self._s[1471]! } - public var Weekday_ShortSaturday: String { return self._s[1472]! } - public var ContactInfo_PhoneLabelMain: String { return self._s[1473]! } - public var Watch_Conversation_UserInfo: String { return self._s[1474]! } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1475]! } - public var GroupPermission_PermissionDisabledByDefault: String { return self._s[1476]! } - public var PrivacyLastSeenSettings_Title: String { return self._s[1477]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[1478]! } - public var PhotoEditor_VignetteTool: String { return self._s[1479]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1480]! } - public var Passport_Language_et: String { return self._s[1481]! } - public var AppUpgrade_Running: String { return self._s[1482]! } - public var Channel_DiscussionGroup_Info: String { return self._s[1484]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1485]! } - public var Passport_Language_bg: String { return self._s[1486]! } - public var Stickers_NoStickersFound: String { return self._s[1488]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1474]! } + public var Weekday_ShortSaturday: String { return self._s[1475]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[1476]! } + public var Watch_Conversation_UserInfo: String { return self._s[1477]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1478]! } + public var GroupPermission_PermissionDisabledByDefault: String { return self._s[1479]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[1480]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[1481]! } + public var PhotoEditor_VignetteTool: String { return self._s[1482]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1483]! } + public var Passport_Language_et: String { return self._s[1484]! } + public var AppUpgrade_Running: String { return self._s[1485]! } + public var Channel_DiscussionGroup_Info: String { return self._s[1487]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1488]! } + public var Passport_Language_bg: String { return self._s[1489]! } + public var Stickers_NoStickersFound: String { return self._s[1491]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1490]!, self._r[1490]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1493]!, self._r[1493]!, [_1, _2]) } public func VoiceOver_Chat_ContactFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1491]!, self._r[1491]!, [_0]) + return formatWithArgumentRanges(self._s[1494]!, self._r[1494]!, [_0]) } - public var Wallet_Month_GenJuly: String { return self._s[1492]! } - public var Wallet_Receive_AddressHeader: String { return self._s[1493]! } - public var Wallet_Send_AmountText: String { return self._s[1494]! } - public var Settings_About: String { return self._s[1495]! } + public var Wallet_Month_GenJuly: String { return self._s[1495]! } + public var Wallet_Receive_AddressHeader: String { return self._s[1496]! } + public var Wallet_Send_AmountText: String { return self._s[1497]! } + public var Settings_About: String { return self._s[1498]! } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1496]!, self._r[1496]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1499]!, self._r[1499]!, [_0, _1, _2]) } - public var ChatList_Context_MarkAsRead: String { return self._s[1498]! } - public var KeyCommand_NewMessage: String { return self._s[1499]! } - public var Group_ErrorAddBlocked: String { return self._s[1500]! } + public var ChatList_Context_MarkAsRead: String { return self._s[1501]! } + public var KeyCommand_NewMessage: String { return self._s[1502]! } + public var Group_ErrorAddBlocked: String { return self._s[1503]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1501]!, self._r[1501]!, [_0]) + return formatWithArgumentRanges(self._s[1504]!, self._r[1504]!, [_0]) } - public var Map_LocationTitle: String { return self._s[1502]! } - public var ReportGroupLocation_Title: String { return self._s[1503]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1504]! } - public var Cache_ClearProgress: String { return self._s[1505]! } + public var Map_LocationTitle: String { return self._s[1505]! } + public var ReportGroupLocation_Title: String { return self._s[1506]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1507]! } + public var Cache_ClearProgress: String { return self._s[1508]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1506]!, self._r[1506]!, [_0]) + return formatWithArgumentRanges(self._s[1509]!, self._r[1509]!, [_0]) } - public var GroupRemoved_AddToGroup: String { return self._s[1507]! } - public var Passport_UpdateRequiredError: String { return self._s[1508]! } - public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1509]! } + public var GroupRemoved_AddToGroup: String { return self._s[1510]! } + public var Passport_UpdateRequiredError: String { return self._s[1511]! } + public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1512]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1510]!, self._r[1510]!, [_1]) + return formatWithArgumentRanges(self._s[1513]!, self._r[1513]!, [_1]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[1512]! } - public var Passport_Identity_MainPageHelp: String { return self._s[1513]! } - public var Conversation_StatusKickedFromGroup: String { return self._s[1514]! } - public var Passport_Language_ka: String { return self._s[1515]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[1515]! } + public var Passport_Identity_MainPageHelp: String { return self._s[1516]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[1517]! } + public var Passport_Language_ka: String { return self._s[1518]! } public func Wallet_Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1516]!, self._r[1516]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1519]!, self._r[1519]!, [_1, _2, _3]) } - public var Call_Decline: String { return self._s[1517]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[1518]! } - public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1521]! } + public var Call_Decline: String { return self._s[1520]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[1521]! } + public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1524]! } public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1522]!, self._r[1522]!, [_0]) + return formatWithArgumentRanges(self._s[1525]!, self._r[1525]!, [_0]) } - public var CallFeedback_Send: String { return self._s[1523]! } - public var EditTheme_EditTitle: String { return self._s[1524]! } + public var CallFeedback_Send: String { return self._s[1526]! } + public var EditTheme_EditTitle: String { return self._s[1527]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1525]!, self._r[1525]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1528]!, self._r[1528]!, [_1, _2]) } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1526]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1529]! } public func Wallet_Updated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1528]!, self._r[1528]!, [_0]) + return formatWithArgumentRanges(self._s[1531]!, self._r[1531]!, [_0]) } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1529]! } - public var Passport_DeletePassport: String { return self._s[1530]! } - public var Appearance_AppIconFilled: String { return self._s[1531]! } - public var Privacy_Calls_P2PAlways: String { return self._s[1532]! } - public var Month_ShortDecember: String { return self._s[1533]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1535]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1532]! } + public var Passport_DeletePassport: String { return self._s[1533]! } + public var Appearance_AppIconFilled: String { return self._s[1534]! } + public var Privacy_Calls_P2PAlways: String { return self._s[1535]! } + public var Month_ShortDecember: String { return self._s[1536]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1538]! } public func Contacts_AccessDeniedHelpLandscape(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1536]!, self._r[1536]!, [_0]) + return formatWithArgumentRanges(self._s[1539]!, self._r[1539]!, [_0]) } - public var Channel_Stickers_Searching: String { return self._s[1537]! } - public var Conversation_EncryptedDescription1: String { return self._s[1538]! } - public var Conversation_EncryptedDescription2: String { return self._s[1539]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[1540]! } - public var Conversation_EncryptedDescription3: String { return self._s[1542]! } - public var PhotoEditor_SharpenTool: String { return self._s[1543]! } - public var Wallet_Configuration_Title: String { return self._s[1544]! } + public var Channel_Stickers_Searching: String { return self._s[1540]! } + public var Conversation_EncryptedDescription1: String { return self._s[1541]! } + public var Conversation_EncryptedDescription2: String { return self._s[1542]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[1543]! } + public var Conversation_EncryptedDescription3: String { return self._s[1545]! } + public var PhotoEditor_SharpenTool: String { return self._s[1546]! } + public var Wallet_Configuration_Title: String { return self._s[1547]! } public func Conversation_AddNameToContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1545]!, self._r[1545]!, [_0]) + return formatWithArgumentRanges(self._s[1548]!, self._r[1548]!, [_0]) } - public var Conversation_EncryptedDescription4: String { return self._s[1547]! } - public var Channel_Members_AddMembers: String { return self._s[1548]! } - public var Wallpaper_Search: String { return self._s[1549]! } - public var Weekday_Friday: String { return self._s[1551]! } - public var Privacy_ContactsSync: String { return self._s[1552]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1553]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1554]! } + public var Conversation_EncryptedDescription4: String { return self._s[1550]! } + public var Channel_Members_AddMembers: String { return self._s[1551]! } + public var Wallpaper_Search: String { return self._s[1552]! } + public var Weekday_Friday: String { return self._s[1554]! } + public var Privacy_ContactsSync: String { return self._s[1555]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1556]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1557]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1555]!, self._r[1555]!, [_0]) + return formatWithArgumentRanges(self._s[1558]!, self._r[1558]!, [_0]) } - public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[1556]! } - public var GroupInfo_Permissions_Removed: String { return self._s[1557]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[1558]! } - public var Passport_Identity_GenderMale: String { return self._s[1559]! } + public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[1559]! } + public var GroupInfo_Permissions_Removed: String { return self._s[1560]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[1561]! } + public var Passport_Identity_GenderMale: String { return self._s[1562]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1560]!, self._r[1560]!, [_0]) + return formatWithArgumentRanges(self._s[1563]!, self._r[1563]!, [_0]) } - public var Notifications_PermissionsKeepDisabled: String { return self._s[1561]! } - public var Conversation_JumpToDate: String { return self._s[1562]! } - public var Contacts_GlobalSearch: String { return self._s[1563]! } - public var AutoDownloadSettings_ResetHelp: String { return self._s[1564]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[1565]! } - public var Profile_MessageLifetime1d: String { return self._s[1566]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[1564]! } + public var Conversation_JumpToDate: String { return self._s[1565]! } + public var Contacts_GlobalSearch: String { return self._s[1566]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[1567]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[1568]! } + public var Profile_MessageLifetime1d: String { return self._s[1569]! } public func MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1567]!, self._r[1567]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1570]!, self._r[1570]!, [_1, _2]) } - public var StickerPack_BuiltinPackName: String { return self._s[1570]! } + public var StickerPack_BuiltinPackName: String { return self._s[1573]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1571]!, self._r[1571]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1574]!, self._r[1574]!, [_1, _2]) } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1572]! } - public var Passport_InfoTitle: String { return self._s[1574]! } - public var Notifications_PermissionsUnreachableText: String { return self._s[1575]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1575]! } + public var Passport_InfoTitle: String { return self._s[1577]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[1578]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1579]!, self._r[1579]!, [_0]) + return formatWithArgumentRanges(self._s[1582]!, self._r[1582]!, [_0]) } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1580]!, self._r[1580]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1583]!, self._r[1583]!, [_1, _2]) } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1581]! } - public var Profile_BotInfo: String { return self._s[1582]! } - public var Watch_Compose_CreateMessage: String { return self._s[1583]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1584]! } - public var Month_ShortNovember: String { return self._s[1585]! } - public var Conversation_ScamWarning: String { return self._s[1586]! } - public var Wallpaper_SetCustomBackground: String { return self._s[1587]! } - public var Appearance_TextSize_Title: String { return self._s[1588]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1589]! } - public var NotificationsSound_Chime: String { return self._s[1590]! } - public var Passport_Language_ko: String { return self._s[1592]! } - public var InviteText_URL: String { return self._s[1593]! } - public var TextFormat_Monospace: String { return self._s[1594]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1584]! } + public var Profile_BotInfo: String { return self._s[1585]! } + public var Watch_Compose_CreateMessage: String { return self._s[1586]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1587]! } + public var Month_ShortNovember: String { return self._s[1588]! } + public var Conversation_ScamWarning: String { return self._s[1589]! } + public var Wallpaper_SetCustomBackground: String { return self._s[1590]! } + public var Appearance_TextSize_Title: String { return self._s[1591]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1592]! } + public var NotificationsSound_Chime: String { return self._s[1593]! } + public var Passport_Language_ko: String { return self._s[1595]! } + public var InviteText_URL: String { return self._s[1596]! } + public var TextFormat_Monospace: String { return self._s[1597]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1595]!, self._r[1595]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1598]!, self._r[1598]!, [_1, _2, _3]) } - public var EditTheme_Edit_BottomInfo: String { return self._s[1596]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[1599]! } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1597]!, self._r[1597]!, [_0]) + return formatWithArgumentRanges(self._s[1600]!, self._r[1600]!, [_0]) } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1598]!, self._r[1598]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1601]!, self._r[1601]!, [_1, _2]) } - public var Wallet_Words_Title: String { return self._s[1599]! } - public var Wallet_Month_ShortMay: String { return self._s[1600]! } - public var EditTheme_CreateTitle: String { return self._s[1602]! } - public var Passport_InfoLearnMore: String { return self._s[1603]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[1604]! } - public var Passport_Identity_AddIdentityCard: String { return self._s[1605]! } - public var Your_card_has_expired: String { return self._s[1606]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[1607]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1608]! } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[1612]! } - public var Conversation_Report: String { return self._s[1614]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1615]! } - public var Notification_MessageLifetime1m: String { return self._s[1616]! } - public var Privacy_ContactsTitle: String { return self._s[1617]! } - public var Conversation_ShareMyContactInfo: String { return self._s[1618]! } - public var Wallet_WordCheck_Title: String { return self._s[1619]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1620]! } - public var Channel_Members_Title: String { return self._s[1621]! } - public var Map_OpenInWaze: String { return self._s[1622]! } - public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1623]! } - public var Login_PhoneBannedError: String { return self._s[1624]! } + public var Wallet_Words_Title: String { return self._s[1602]! } + public var Wallet_Month_ShortMay: String { return self._s[1603]! } + public var EditTheme_CreateTitle: String { return self._s[1605]! } + public var Passport_InfoLearnMore: String { return self._s[1606]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[1607]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[1608]! } + public var Your_card_has_expired: String { return self._s[1609]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[1610]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1611]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[1615]! } + public var Conversation_Report: String { return self._s[1617]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1618]! } + public var Notification_MessageLifetime1m: String { return self._s[1619]! } + public var Privacy_ContactsTitle: String { return self._s[1620]! } + public var Conversation_ShareMyContactInfo: String { return self._s[1621]! } + public var Wallet_WordCheck_Title: String { return self._s[1622]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1623]! } + public var Channel_Members_Title: String { return self._s[1624]! } + public var Map_OpenInWaze: String { return self._s[1625]! } + public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1626]! } + public var Login_PhoneBannedError: String { return self._s[1627]! } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1625]!, self._r[1625]!, [_0]) + return formatWithArgumentRanges(self._s[1628]!, self._r[1628]!, [_0]) } - public var IntentsSettings_MainAccount: String { return self._s[1626]! } - public var Group_Management_AddModeratorHelp: String { return self._s[1627]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[1628]! } - public var Common_OK: String { return self._s[1629]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1630]! } - public var Wallet_Words_NotDoneResponse: String { return self._s[1631]! } - public var Cache_Music: String { return self._s[1632]! } - public var Wallet_Configuration_SourceURL: String { return self._s[1633]! } - public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1634]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1635]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1636]! } + public var IntentsSettings_MainAccount: String { return self._s[1629]! } + public var Group_Management_AddModeratorHelp: String { return self._s[1630]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[1631]! } + public var Common_OK: String { return self._s[1632]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1633]! } + public var Wallet_Words_NotDoneResponse: String { return self._s[1634]! } + public var Cache_Music: String { return self._s[1635]! } + public var Wallet_Configuration_SourceURL: String { return self._s[1636]! } + public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1637]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1639]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1640]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1637]!, self._r[1637]!, [_1]) + return formatWithArgumentRanges(self._s[1641]!, self._r[1641]!, [_1]) } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1638]!, self._r[1638]!, [_0]) + return formatWithArgumentRanges(self._s[1642]!, self._r[1642]!, [_0]) } - public var TwoFactorSetup_Done_Action: String { return self._s[1639]! } + public var TwoFactorSetup_Done_Action: String { return self._s[1643]! } public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1640]!, self._r[1640]!, [_0]) + return formatWithArgumentRanges(self._s[1644]!, self._r[1644]!, [_0]) } - public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1641]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1643]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[1644]! } - public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1646]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1647]! } - public var State_ConnectingToProxyInfo: String { return self._s[1648]! } - public var Conversation_SwipeToReplyHintTitle: String { return self._s[1649]! } - public var Message_VideoMessage: String { return self._s[1651]! } - public var ChannelInfo_DeleteChannel: String { return self._s[1652]! } - public var ContactInfo_PhoneLabelOther: String { return self._s[1653]! } - public var Channel_EditAdmin_CannotEdit: String { return self._s[1654]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[1655]! } + public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1645]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1647]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[1648]! } + public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1650]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1651]! } + public var State_ConnectingToProxyInfo: String { return self._s[1652]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[1653]! } + public var Message_VideoMessage: String { return self._s[1655]! } + public var ChannelInfo_DeleteChannel: String { return self._s[1656]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[1657]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[1658]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[1659]! } public func Wallet_Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1656]!, self._r[1656]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1660]!, self._r[1660]!, [_1, _2, _3]) } - public var WallpaperPreview_SwipeBottomText: String { return self._s[1657]! } - public var Activity_RecordingAudio: String { return self._s[1658]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[1659]! } - public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1660]! } - public var Wallet_Info_Address: String { return self._s[1661]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[1661]! } + public var Activity_RecordingAudio: String { return self._s[1662]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[1663]! } + public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1664]! } + public var Wallet_Info_Address: String { return self._s[1665]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1663]!, self._r[1663]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1667]!, self._r[1667]!, [_0, _1]) } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1667]!, self._r[1667]!, [_0]) + return formatWithArgumentRanges(self._s[1671]!, self._r[1671]!, [_0]) } - public var Conversation_ApplyLocalization: String { return self._s[1668]! } - public var TwoFactorSetup_Intro_Action: String { return self._s[1669]! } - public var UserInfo_AddPhone: String { return self._s[1670]! } - public var Map_ShareLiveLocationHelp: String { return self._s[1671]! } + public var Conversation_ApplyLocalization: String { return self._s[1672]! } + public var TwoFactorSetup_Intro_Action: String { return self._s[1673]! } + public var UserInfo_AddPhone: String { return self._s[1674]! } + public var Map_ShareLiveLocationHelp: String { return self._s[1675]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1672]!, self._r[1672]!, [_0]) + return formatWithArgumentRanges(self._s[1676]!, self._r[1676]!, [_0]) } - public var Passport_Scans: String { return self._s[1674]! } - public var BlockedUsers_Unblock: String { return self._s[1675]! } + public var Passport_Scans: String { return self._s[1678]! } + public var BlockedUsers_Unblock: String { return self._s[1679]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1676]!, self._r[1676]!, [_1]) + return formatWithArgumentRanges(self._s[1680]!, self._r[1680]!, [_1]) } - public var Channel_Management_LabelCreator: String { return self._s[1677]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[1678]! } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1679]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1680]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1681]! } + public var Channel_Management_LabelCreator: String { return self._s[1681]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[1682]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1683]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1684]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1685]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1682]!, self._r[1682]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1686]!, self._r[1686]!, [_0, _1, _2]) } - public var Login_PhoneNumberHelp: String { return self._s[1683]! } - public var LastSeen_ALongTimeAgo: String { return self._s[1684]! } - public var Channel_AdminLog_CanPinMessages: String { return self._s[1685]! } - public var ChannelIntro_CreateChannel: String { return self._s[1686]! } - public var Conversation_UnreadMessages: String { return self._s[1687]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1688]! } - public var Channel_AdminLog_EmptyText: String { return self._s[1689]! } - public var Theme_Context_Apply: String { return self._s[1690]! } - public var Notification_GroupActivated: String { return self._s[1691]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[1692]! } - public var Wallet_Intro_CreateWallet: String { return self._s[1693]! } + public var Login_PhoneNumberHelp: String { return self._s[1687]! } + public var LastSeen_ALongTimeAgo: String { return self._s[1688]! } + public var Channel_AdminLog_CanPinMessages: String { return self._s[1689]! } + public var ChannelIntro_CreateChannel: String { return self._s[1690]! } + public var Conversation_UnreadMessages: String { return self._s[1691]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1692]! } + public var Channel_AdminLog_EmptyText: String { return self._s[1693]! } + public var Theme_Context_Apply: String { return self._s[1694]! } + public var Notification_GroupActivated: String { return self._s[1695]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[1696]! } + public var Wallet_Intro_CreateWallet: String { return self._s[1697]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1694]!, self._r[1694]!, [_0]) - } - public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1695]!, self._r[1695]!, [_0, _1]) - } - public var GroupInfo_ConvertToSupergroup: String { return self._s[1697]! } - public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1698]!, self._r[1698]!, [_0]) } - public var Undo_DeletedChannel: String { return self._s[1699]! } - public var CallFeedback_AddComment: String { return self._s[1700]! } + public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1699]!, self._r[1699]!, [_0, _1]) + } + public var GroupInfo_ConvertToSupergroup: String { return self._s[1701]! } + public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1702]!, self._r[1702]!, [_0]) + } + public var Undo_DeletedChannel: String { return self._s[1703]! } + public var CallFeedback_AddComment: String { return self._s[1704]! } public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1701]!, self._r[1701]!, [_0]) + return formatWithArgumentRanges(self._s[1705]!, self._r[1705]!, [_0]) } - public var Document_TargetConfirmationFormat: String { return self._s[1702]! } + public var Document_TargetConfirmationFormat: String { return self._s[1706]! } public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1703]!, self._r[1703]!, [_0]) + return formatWithArgumentRanges(self._s[1707]!, self._r[1707]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[1704]! } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[1708]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1705]!, self._r[1705]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[1709]!, self._r[1709]!, [_1, _2, _3, _4]) } - public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1706]! } - public var Theme_ErrorNotFound: String { return self._s[1707]! } - public var Contacts_SortByName: String { return self._s[1708]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1709]! } + public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1710]! } + public var Theme_ErrorNotFound: String { return self._s[1711]! } + public var Contacts_SortByName: String { return self._s[1712]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1713]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1711]!, self._r[1711]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1715]!, self._r[1715]!, [_1, _2, _3]) } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1712]! } - public var ScheduledMessages_EditTime: String { return self._s[1713]! } - public var Conversation_ClearSelfHistory: String { return self._s[1714]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1715]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[1716]! } - public var Stickers_SuggestNone: String { return self._s[1717]! } - public var ChatSettings_Cache: String { return self._s[1718]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1719]! } - public var Media_ShareThisPhoto: String { return self._s[1720]! } - public var Chat_SlowmodeTooltipPending: String { return self._s[1721]! } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[1722]! } - public var Conversation_ContextMenuCopyLink: String { return self._s[1723]! } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1724]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1725]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1726]! } - public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[1727]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1716]! } + public var ScheduledMessages_EditTime: String { return self._s[1717]! } + public var Conversation_ClearSelfHistory: String { return self._s[1718]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1719]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[1720]! } + public var Stickers_SuggestNone: String { return self._s[1721]! } + public var ChatSettings_Cache: String { return self._s[1722]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1723]! } + public var Media_ShareThisPhoto: String { return self._s[1724]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[1725]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[1726]! } + public var Conversation_ContextMenuCopyLink: String { return self._s[1727]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1728]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1729]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1730]! } + public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[1731]! } public func Wallet_SecureStorageReset_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1728]!, self._r[1728]!, [_0]) + return formatWithArgumentRanges(self._s[1732]!, self._r[1732]!, [_0]) } - public var Permissions_CellularDataTitle_v0: String { return self._s[1729]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1731]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1732]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[1733]! } - public var Map_OpenIn: String { return self._s[1734]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[1733]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1735]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1736]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[1737]! } + public var Map_OpenIn: String { return self._s[1738]! } public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1737]!, self._r[1737]!, [_1]) + return formatWithArgumentRanges(self._s[1741]!, self._r[1741]!, [_1]) } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1738]!, self._r[1738]!, [_0]) + return formatWithArgumentRanges(self._s[1742]!, self._r[1742]!, [_0]) } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1739]! } - public var MessagePoll_LabelClosed: String { return self._s[1740]! } - public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1742]! } - public var Wallet_Send_SendAnyway: String { return self._s[1743]! } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1744]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[1745]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1746]! } - public var Map_SetThisPlace: String { return self._s[1747]! } - public var Login_SelectCountry_Title: String { return self._s[1748]! } - public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1749]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1743]! } + public var MessagePoll_LabelClosed: String { return self._s[1744]! } + public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1746]! } + public var Wallet_Send_SendAnyway: String { return self._s[1747]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1748]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[1749]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1750]! } + public var Map_SetThisPlace: String { return self._s[1751]! } + public var Login_SelectCountry_Title: String { return self._s[1752]! } + public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1753]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1750]!, self._r[1750]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1754]!, self._r[1754]!, [_1, _2]) } - public var Channel_AdminLog_ChangeInfo: String { return self._s[1751]! } - public var Watch_Suggestion_BRB: String { return self._s[1752]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[1753]! } - public var Contacts_PermissionsTitle: String { return self._s[1754]! } - public var Conversation_RestrictedInline: String { return self._s[1755]! } - public var Appearance_RemoveThemeColor: String { return self._s[1757]! } - public var StickerPack_ViewPack: String { return self._s[1758]! } - public var Wallet_UnknownError: String { return self._s[1759]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[1755]! } + public var Watch_Suggestion_BRB: String { return self._s[1756]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[1757]! } + public var Contacts_PermissionsTitle: String { return self._s[1758]! } + public var Conversation_RestrictedInline: String { return self._s[1759]! } + public var Appearance_RemoveThemeColor: String { return self._s[1761]! } + public var StickerPack_ViewPack: String { return self._s[1762]! } + public var Wallet_UnknownError: String { return self._s[1763]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1760]!, self._r[1760]!, [_0]) + return formatWithArgumentRanges(self._s[1764]!, self._r[1764]!, [_0]) } - public var Compose_NewChannel: String { return self._s[1762]! } - public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1765]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1767]! } - public var Channel_Info_Stickers: String { return self._s[1768]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[1769]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1770]! } - public var Passport_DeletePersonalDetails: String { return self._s[1771]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[1772]! } - public var Channel_DiscussionGroupInfo: String { return self._s[1773]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1774]! } - public var Conversation_SearchNoResults: String { return self._s[1777]! } - public var Wallet_Configuration_ApplyErrorTextURLInvalid: String { return self._s[1778]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1779]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1780]! } - public var Login_Code: String { return self._s[1781]! } - public var EditTheme_Create_BottomInfo: String { return self._s[1782]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[1783]! } - public var Weekday_ShortThursday: String { return self._s[1784]! } - public var Resolve_ErrorNotFound: String { return self._s[1786]! } - public var LastSeen_Offline: String { return self._s[1787]! } - public var PeopleNearby_NoMembers: String { return self._s[1788]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[1789]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1790]! } - public var GroupInfo_Title: String { return self._s[1792]! } - public var NotificationsSound_Note: String { return self._s[1793]! } - public var Conversation_EditingMessagePanelTitle: String { return self._s[1794]! } - public var Watch_Message_Poll: String { return self._s[1795]! } - public var Privacy_Calls: String { return self._s[1796]! } + public var Compose_NewChannel: String { return self._s[1766]! } + public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1769]! } + public var MessagePoll_LabelQuiz: String { return self._s[1771]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1772]! } + public var Channel_Info_Stickers: String { return self._s[1773]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[1774]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1775]! } + public var Passport_DeletePersonalDetails: String { return self._s[1776]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[1777]! } + public var Channel_DiscussionGroupInfo: String { return self._s[1778]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1779]! } + public var Conversation_SearchNoResults: String { return self._s[1782]! } + public var Wallet_Configuration_ApplyErrorTextURLInvalid: String { return self._s[1783]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1784]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1785]! } + public var Login_Code: String { return self._s[1786]! } + public var EditTheme_Create_BottomInfo: String { return self._s[1787]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[1788]! } + public var Weekday_ShortThursday: String { return self._s[1789]! } + public var Resolve_ErrorNotFound: String { return self._s[1791]! } + public var LastSeen_Offline: String { return self._s[1792]! } + public var PeopleNearby_NoMembers: String { return self._s[1793]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[1794]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1795]! } + public var GroupInfo_Title: String { return self._s[1797]! } + public var NotificationsSound_Note: String { return self._s[1798]! } + public var Conversation_EditingMessagePanelTitle: String { return self._s[1799]! } + public var Watch_Message_Poll: String { return self._s[1800]! } + public var Privacy_Calls: String { return self._s[1801]! } public func Channel_AdminLog_MessageRankUsername(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1797]!, self._r[1797]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1802]!, self._r[1802]!, [_1, _2, _3]) } - public var Month_ShortAugust: String { return self._s[1798]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[1799]! } - public var Notifications_Reset: String { return self._s[1800]! } - public var Conversation_Pin: String { return self._s[1801]! } - public var Passport_Language_lv: String { return self._s[1802]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1803]! } - public var BlockedUsers_Info: String { return self._s[1804]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1806]! } - public var Watch_Conversation_Unblock: String { return self._s[1808]! } + public var Month_ShortAugust: String { return self._s[1803]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[1804]! } + public var Notifications_Reset: String { return self._s[1805]! } + public var Conversation_Pin: String { return self._s[1806]! } + public var Passport_Language_lv: String { return self._s[1807]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1808]! } + public var BlockedUsers_Info: String { return self._s[1809]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1811]! } + public var Watch_Conversation_Unblock: String { return self._s[1813]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1809]!, self._r[1809]!, [_0]) + return formatWithArgumentRanges(self._s[1814]!, self._r[1814]!, [_0]) } - public var CloudStorage_Title: String { return self._s[1810]! } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1811]! } + public var CloudStorage_Title: String { return self._s[1815]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1816]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1812]!, self._r[1812]!, [_0]) + return formatWithArgumentRanges(self._s[1817]!, self._r[1817]!, [_0]) } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1813]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[1814]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1815]! } - public var Passport_Address_EditBankStatement: String { return self._s[1816]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1818]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[1819]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1820]! } + public var Passport_Address_EditBankStatement: String { return self._s[1821]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1817]!, self._r[1817]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1822]!, self._r[1822]!, [_1, _2]) } - public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1818]! } - public var ShareMenu_Comment: String { return self._s[1819]! } - public var Permissions_ContactsTitle_v0: String { return self._s[1820]! } - public var Notifications_PermissionsTitle: String { return self._s[1821]! } - public var GroupPermission_NoSendLinks: String { return self._s[1822]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1823]! } - public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1824]! } - public var Settings_Support: String { return self._s[1825]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1826]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1827]! } - public var Privacy_Forwards_Preview: String { return self._s[1828]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[1829]! } - public var Watch_Stickers_StickerPacks: String { return self._s[1830]! } - public var Common_Select: String { return self._s[1832]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1833]! } - public var WallpaperSearch_ColorGray: String { return self._s[1836]! } - public var TwoFactorSetup_Password_PlaceholderPassword: String { return self._s[1837]! } - public var TwoFactorSetup_Hint_SkipAction: String { return self._s[1838]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1839]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1840]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[1841]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1842]! } - public var Widget_AuthRequired: String { return self._s[1843]! } - public var Camera_FlashOn: String { return self._s[1844]! } - public var Conversation_ContextMenuLookUp: String { return self._s[1845]! } - public var Channel_Stickers_NotFoundHelp: String { return self._s[1846]! } - public var Watch_Suggestion_OK: String { return self._s[1847]! } + public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1823]! } + public var ShareMenu_Comment: String { return self._s[1824]! } + public var Permissions_ContactsTitle_v0: String { return self._s[1825]! } + public var Notifications_PermissionsTitle: String { return self._s[1826]! } + public var GroupPermission_NoSendLinks: String { return self._s[1827]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1828]! } + public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1829]! } + public var Settings_Support: String { return self._s[1830]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1831]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1832]! } + public var Privacy_Forwards_Preview: String { return self._s[1833]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[1834]! } + public var Watch_Stickers_StickerPacks: String { return self._s[1835]! } + public var Common_Select: String { return self._s[1837]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1838]! } + public var WallpaperSearch_ColorGray: String { return self._s[1841]! } + public var TwoFactorSetup_Password_PlaceholderPassword: String { return self._s[1842]! } + public var TwoFactorSetup_Hint_SkipAction: String { return self._s[1843]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1844]! } + public var PollResults_Title: String { return self._s[1845]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1846]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[1847]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1848]! } + public var Widget_AuthRequired: String { return self._s[1849]! } + public var Camera_FlashOn: String { return self._s[1850]! } + public var Conversation_ContextMenuLookUp: String { return self._s[1851]! } + public var Channel_Stickers_NotFoundHelp: String { return self._s[1852]! } + public var Watch_Suggestion_OK: String { return self._s[1853]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1849]!, self._r[1849]!, [_0]) + return formatWithArgumentRanges(self._s[1855]!, self._r[1855]!, [_0]) } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1851]!, self._r[1851]!, [_0]) + return formatWithArgumentRanges(self._s[1857]!, self._r[1857]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[1852]! } - public var DialogList_AdLabel: String { return self._s[1853]! } - public var WatchRemote_NotificationText: String { return self._s[1854]! } - public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1855]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1856]! } - public var Conversation_ReportSpam: String { return self._s[1857]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1858]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[1860]! } - public var PhoneLabel_Title: String { return self._s[1861]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[1862]! } - public var Settings_ChangePhoneNumber: String { return self._s[1863]! } - public var Notifications_ExceptionsTitle: String { return self._s[1864]! } - public var Notifications_AlertTones: String { return self._s[1865]! } - public var Call_ReportIncludeLogDescription: String { return self._s[1866]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1867]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1868]! } - public var VoiceOver_Chat_Photo: String { return self._s[1870]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[1871]! } - public var ReportPeer_ReasonOther: String { return self._s[1872]! } - public var ChatList_Context_JoinChannel: String { return self._s[1873]! } - public var KeyCommand_ScrollDown: String { return self._s[1875]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[1876]! } + public var TextFormat_Strikethrough: String { return self._s[1858]! } + public var DialogList_AdLabel: String { return self._s[1859]! } + public var WatchRemote_NotificationText: String { return self._s[1860]! } + public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1861]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1862]! } + public var Conversation_ReportSpam: String { return self._s[1863]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1864]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[1866]! } + public var PhoneLabel_Title: String { return self._s[1867]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[1868]! } + public var Settings_ChangePhoneNumber: String { return self._s[1869]! } + public var Notifications_ExceptionsTitle: String { return self._s[1870]! } + public var Notifications_AlertTones: String { return self._s[1871]! } + public var Call_ReportIncludeLogDescription: String { return self._s[1872]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1873]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1874]! } + public var VoiceOver_Chat_Photo: String { return self._s[1876]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[1877]! } + public var ReportPeer_ReasonOther: String { return self._s[1878]! } + public var ChatList_Context_JoinChannel: String { return self._s[1879]! } + public var KeyCommand_ScrollDown: String { return self._s[1881]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[1882]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1877]!, self._r[1877]!, [_0]) + return formatWithArgumentRanges(self._s[1883]!, self._r[1883]!, [_0]) } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1878]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1879]! } - public var AuthSessions_LogOut: String { return self._s[1880]! } - public var Passport_Identity_TypeInternalPassport: String { return self._s[1881]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1882]! } - public var Passport_Phone_Title: String { return self._s[1883]! } - public var ContactList_Context_StartSecretChat: String { return self._s[1884]! } - public var Settings_PhoneNumber: String { return self._s[1885]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1884]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1885]! } + public var AuthSessions_LogOut: String { return self._s[1886]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[1887]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1888]! } + public var Passport_Phone_Title: String { return self._s[1889]! } + public var ContactList_Context_StartSecretChat: String { return self._s[1890]! } + public var Settings_PhoneNumber: String { return self._s[1891]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1886]!, self._r[1886]!, [_0]) + return formatWithArgumentRanges(self._s[1892]!, self._r[1892]!, [_0]) } - public var NotificationsSound_Alert: String { return self._s[1888]! } - public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1889]! } - public var WebSearch_SearchNoResults: String { return self._s[1890]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1892]! } - public var Wallet_Configuration_SourceInfo: String { return self._s[1893]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1894]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[1895]! } - public var PhotoEditor_CurvesTool: String { return self._s[1896]! } - public var Checkout_PaymentMethod: String { return self._s[1898]! } + public var NotificationsSound_Alert: String { return self._s[1894]! } + public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1895]! } + public var WebSearch_SearchNoResults: String { return self._s[1896]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1898]! } + public var Wallet_Configuration_SourceInfo: String { return self._s[1899]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1900]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[1901]! } + public var PhotoEditor_CurvesTool: String { return self._s[1902]! } + public var Checkout_PaymentMethod: String { return self._s[1904]! } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1899]!, self._r[1899]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1905]!, self._r[1905]!, [_1, _2]) } - public var Contacts_AccessDeniedError: String { return self._s[1900]! } - public var Camera_PhotoMode: String { return self._s[1903]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1904]! } - public var Appearance_TextSize_Apply: String { return self._s[1905]! } - public var Passport_Address_AddUtilityBill: String { return self._s[1907]! } - public var CallSettings_OnMobile: String { return self._s[1908]! } - public var Tour_Text2: String { return self._s[1909]! } + public var Contacts_AccessDeniedError: String { return self._s[1906]! } + public var Camera_PhotoMode: String { return self._s[1909]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1910]! } + public var Appearance_TextSize_Apply: String { return self._s[1911]! } + public var Passport_Address_AddUtilityBill: String { return self._s[1913]! } + public var CallSettings_OnMobile: String { return self._s[1914]! } + public var Tour_Text2: String { return self._s[1915]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1910]!, self._r[1910]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1916]!, self._r[1916]!, [_1, _2]) } - public var DialogList_EncryptionProcessing: String { return self._s[1912]! } - public var Permissions_Skip: String { return self._s[1913]! } - public var Wallet_Words_NotDoneOk: String { return self._s[1914]! } - public var SecretImage_Title: String { return self._s[1915]! } - public var Watch_MessageView_Title: String { return self._s[1916]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1917]! } - public var AttachmentMenu_Poll: String { return self._s[1918]! } + public var DialogList_EncryptionProcessing: String { return self._s[1918]! } + public var Permissions_Skip: String { return self._s[1919]! } + public var Wallet_Words_NotDoneOk: String { return self._s[1920]! } + public var SecretImage_Title: String { return self._s[1921]! } + public var Watch_MessageView_Title: String { return self._s[1922]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1923]! } + public var AttachmentMenu_Poll: String { return self._s[1924]! } public func Notification_GroupInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1919]!, self._r[1919]!, [_0]) + return formatWithArgumentRanges(self._s[1925]!, self._r[1925]!, [_0]) } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1920]!, self._r[1920]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1926]!, self._r[1926]!, [_1, _2]) } - public var Notification_CallCanceled: String { return self._s[1921]! } - public var WallpaperPreview_Title: String { return self._s[1922]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1923]! } - public var Settings_ProxyConnecting: String { return self._s[1924]! } - public var Settings_CheckPhoneNumberText: String { return self._s[1926]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[1927]! } - public var Wallet_Intro_Title: String { return self._s[1928]! } - public var TwoFactorSetup_Password_Action: String { return self._s[1929]! } - public var Profile_MessageLifetime5s: String { return self._s[1930]! } - public var Username_InvalidCharacters: String { return self._s[1931]! } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1932]! } - public var ScheduledMessages_ClearAll: String { return self._s[1933]! } - public var WallpaperPreview_CropBottomText: String { return self._s[1934]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[1935]! } - public var Settings_AddAccount: String { return self._s[1936]! } - public var Notification_CreatedChannel: String { return self._s[1939]! } + public var Notification_CallCanceled: String { return self._s[1927]! } + public var WallpaperPreview_Title: String { return self._s[1928]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1929]! } + public var Settings_ProxyConnecting: String { return self._s[1930]! } + public var Settings_CheckPhoneNumberText: String { return self._s[1932]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[1933]! } + public var Wallet_Intro_Title: String { return self._s[1934]! } + public var TwoFactorSetup_Password_Action: String { return self._s[1935]! } + public var Profile_MessageLifetime5s: String { return self._s[1936]! } + public var Username_InvalidCharacters: String { return self._s[1937]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1938]! } + public var ScheduledMessages_ClearAll: String { return self._s[1939]! } + public var WallpaperPreview_CropBottomText: String { return self._s[1940]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[1941]! } + public var Settings_AddAccount: String { return self._s[1942]! } + public var Notification_CreatedChannel: String { return self._s[1945]! } public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1940]!, self._r[1940]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1946]!, self._r[1946]!, [_1, _2, _3]) } - public var Passcode_AppLockedAlert: String { return self._s[1942]! } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1943]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[1944]! } - public var Contacts_TopSection: String { return self._s[1945]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1946]! } + public var Passcode_AppLockedAlert: String { return self._s[1948]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1949]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[1950]! } + public var Contacts_TopSection: String { return self._s[1951]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1952]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1947]!, self._r[1947]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1953]!, self._r[1953]!, [_0, _1]) } - public var Wallet_Info_Receive: String { return self._s[1948]! } - public var Wallet_Completed_ViewWallet: String { return self._s[1949]! } + public var Wallet_Info_Receive: String { return self._s[1954]! } + public var Wallet_Completed_ViewWallet: String { return self._s[1955]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1950]!, self._r[1950]!, [_0]) + return formatWithArgumentRanges(self._s[1956]!, self._r[1956]!, [_0]) } - public var ReportPeer_ReasonSpam: String { return self._s[1951]! } - public var UserInfo_TapToCall: String { return self._s[1952]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1954]! } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1955]! } - public var Common_Search: String { return self._s[1956]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1957]! } + public var ReportPeer_ReasonSpam: String { return self._s[1957]! } + public var UserInfo_TapToCall: String { return self._s[1958]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1960]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1961]! } + public var Common_Search: String { return self._s[1962]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1963]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1958]!, self._r[1958]!, [_0]) + return formatWithArgumentRanges(self._s[1964]!, self._r[1964]!, [_0]) } - public var Wallet_Month_ShortJuly: String { return self._s[1959]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1961]! } - public var Message_InvoiceLabel: String { return self._s[1962]! } - public var Conversation_InputTextPlaceholder: String { return self._s[1963]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1964]! } + public var Wallet_Month_ShortJuly: String { return self._s[1965]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1967]! } + public var Message_InvoiceLabel: String { return self._s[1968]! } + public var Conversation_InputTextPlaceholder: String { return self._s[1969]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1970]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1965]!, self._r[1965]!, [_0]) + return formatWithArgumentRanges(self._s[1971]!, self._r[1971]!, [_0]) } - public var IntentsSettings_Reset: String { return self._s[1966]! } - public var Conversation_Info: String { return self._s[1967]! } - public var Login_InfoDeletePhoto: String { return self._s[1968]! } - public var Passport_Language_vi: String { return self._s[1970]! } - public var UserInfo_ScamUserWarning: String { return self._s[1971]! } - public var Conversation_Search: String { return self._s[1972]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1974]! } - public var ReportPeer_ReasonPornography: String { return self._s[1975]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1976]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1977]! } - public var Map_LiveLocationGroupDescription: String { return self._s[1978]! } - public var Channel_Setup_TypeHeader: String { return self._s[1979]! } - public var AuthSessions_LoggedIn: String { return self._s[1980]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1981]! } - public var Login_SmsRequestState3: String { return self._s[1982]! } - public var Passport_Address_EditUtilityBill: String { return self._s[1983]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1984]! } - public var Join_ChannelsTooMuch: String { return self._s[1985]! } - public var Channel_Edit_LinkItem: String { return self._s[1986]! } - public var Privacy_Calls_P2PNever: String { return self._s[1987]! } - public var Conversation_AddToReadingList: String { return self._s[1989]! } - public var Share_MultipleMessagesDisabled: String { return self._s[1990]! } - public var Message_Animation: String { return self._s[1991]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[1992]! } - public var Map_Unknown: String { return self._s[1993]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[1994]! } + public var IntentsSettings_Reset: String { return self._s[1972]! } + public var Conversation_Info: String { return self._s[1973]! } + public var Login_InfoDeletePhoto: String { return self._s[1974]! } + public var Passport_Language_vi: String { return self._s[1976]! } + public var UserInfo_ScamUserWarning: String { return self._s[1977]! } + public var Conversation_Search: String { return self._s[1978]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1980]! } + public var ReportPeer_ReasonPornography: String { return self._s[1981]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1982]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1983]! } + public var Map_LiveLocationGroupDescription: String { return self._s[1984]! } + public var Channel_Setup_TypeHeader: String { return self._s[1985]! } + public var AuthSessions_LoggedIn: String { return self._s[1986]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1987]! } + public var Login_SmsRequestState3: String { return self._s[1988]! } + public var Passport_Address_EditUtilityBill: String { return self._s[1989]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1990]! } + public var Join_ChannelsTooMuch: String { return self._s[1991]! } + public var Channel_Edit_LinkItem: String { return self._s[1992]! } + public var Privacy_Calls_P2PNever: String { return self._s[1993]! } + public var Conversation_AddToReadingList: String { return self._s[1995]! } + public var Share_MultipleMessagesDisabled: String { return self._s[1996]! } + public var Message_Animation: String { return self._s[1997]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[1998]! } + public var Map_Unknown: String { return self._s[1999]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[2000]! } public func PUSH_PINNED_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1995]!, self._r[1995]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2001]!, self._r[2001]!, [_1, _2]) } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1996]!, self._r[1996]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2002]!, self._r[2002]!, [_1, _2]) } - public var Call_StatusRequesting: String { return self._s[1997]! } - public var Conversation_SecretChatContextBotAlert: String { return self._s[1998]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1999]! } + public var Call_StatusRequesting: String { return self._s[2003]! } + public var Conversation_SecretChatContextBotAlert: String { return self._s[2004]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[2005]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2000]!, self._r[2000]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2006]!, self._r[2006]!, [_1, _2]) } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2001]!, self._r[2001]!, [_0]) + return formatWithArgumentRanges(self._s[2007]!, self._r[2007]!, [_0]) } - public var Update_Skip: String { return self._s[2002]! } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2003]! } - public var Message_PinnedPollMessage: String { return self._s[2004]! } - public var BlockedUsers_Title: String { return self._s[2005]! } + public var Update_Skip: String { return self._s[2008]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2009]! } + public var Message_PinnedPollMessage: String { return self._s[2010]! } + public var BlockedUsers_Title: String { return self._s[2011]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2006]!, self._r[2006]!, [_1]) + return formatWithArgumentRanges(self._s[2012]!, self._r[2012]!, [_1]) } - public var Username_CheckingUsername: String { return self._s[2007]! } - public var NotificationsSound_Bell: String { return self._s[2008]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[2009]! } - public var Weekday_Monday: String { return self._s[2010]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[2011]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[2012]! } - public var ChatSettings_Groups: String { return self._s[2013]! } - public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2014]! } + public var Username_CheckingUsername: String { return self._s[2013]! } + public var NotificationsSound_Bell: String { return self._s[2014]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[2015]! } + public var Weekday_Monday: String { return self._s[2016]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[2017]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[2018]! } + public var ChatSettings_Groups: String { return self._s[2019]! } + public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2020]! } public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2015]!, self._r[2015]!, [_0]) + return formatWithArgumentRanges(self._s[2021]!, self._r[2021]!, [_0]) } - public var Your_card_was_declined: String { return self._s[2016]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2018]! } - public var Wallet_Month_ShortApril: String { return self._s[2019]! } - public var ChatList_Unmute: String { return self._s[2020]! } - public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2021]! } - public var PhotoEditor_CurvesAll: String { return self._s[2022]! } - public var Weekday_ShortTuesday: String { return self._s[2023]! } - public var DialogList_Read: String { return self._s[2024]! } - public var Appearance_AppIconClassic: String { return self._s[2025]! } - public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[2026]! } - public var Passport_Identity_Gender: String { return self._s[2027]! } + public var Your_card_was_declined: String { return self._s[2022]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2024]! } + public var Wallet_Month_ShortApril: String { return self._s[2025]! } + public var ChatList_Unmute: String { return self._s[2026]! } + public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2027]! } + public var PhotoEditor_CurvesAll: String { return self._s[2028]! } + public var Weekday_ShortTuesday: String { return self._s[2029]! } + public var DialogList_Read: String { return self._s[2030]! } + public var Appearance_AppIconClassic: String { return self._s[2031]! } + public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[2032]! } + public var Passport_Identity_Gender: String { return self._s[2033]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2028]!, self._r[2028]!, [_0]) + return formatWithArgumentRanges(self._s[2034]!, self._r[2034]!, [_0]) } - public var Target_SelectGroup: String { return self._s[2029]! } - public var Map_HomeAndWorkInfo: String { return self._s[2031]! } + public var Target_SelectGroup: String { return self._s[2035]! } + public var Map_HomeAndWorkInfo: String { return self._s[2037]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2032]!, self._r[2032]!, [_0]) + return formatWithArgumentRanges(self._s[2038]!, self._r[2038]!, [_0]) } - public var Passport_Language_en: String { return self._s[2033]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[2034]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2035]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[2036]! } - public var ScheduledMessages_SendNow: String { return self._s[2037]! } - public var Checkout_NewCard_PaymentCard: String { return self._s[2039]! } - public var Login_InfoHelp: String { return self._s[2040]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2041]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2042]! } + public var Passport_Language_en: String { return self._s[2039]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[2040]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2041]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[2042]! } + public var ScheduledMessages_SendNow: String { return self._s[2043]! } + public var Checkout_NewCard_PaymentCard: String { return self._s[2045]! } + public var Login_InfoHelp: String { return self._s[2046]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2047]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2048]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2043]!, self._r[2043]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2049]!, self._r[2049]!, [_1, _2]) } - public var SocksProxySetup_AddProxy: String { return self._s[2046]! } - public var CreatePoll_Title: String { return self._s[2047]! } - public var Conversation_ViewTheme: String { return self._s[2048]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2049]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2050]! } - public var TwoFactorSetup_Intro_Text: String { return self._s[2051]! } - public var UserInfo_GroupsInCommon: String { return self._s[2052]! } - public var TelegramWallet_Intro_TermsUrl: String { return self._s[2053]! } - public var Call_AudioRouteHide: String { return self._s[2054]! } + public var SocksProxySetup_AddProxy: String { return self._s[2052]! } + public var CreatePoll_Title: String { return self._s[2053]! } + public var Conversation_ViewTheme: String { return self._s[2054]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2055]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2056]! } + public var TwoFactorSetup_Intro_Text: String { return self._s[2057]! } + public var UserInfo_GroupsInCommon: String { return self._s[2058]! } + public var TelegramWallet_Intro_TermsUrl: String { return self._s[2059]! } + public var Call_AudioRouteHide: String { return self._s[2060]! } public func Wallet_Info_TransactionDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2056]!, self._r[2056]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2062]!, self._r[2062]!, [_1, _2]) } - public var ContactInfo_PhoneLabelMobile: String { return self._s[2057]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2058]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[2063]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2064]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2059]!, self._r[2059]!, [_0]) + return formatWithArgumentRanges(self._s[2065]!, self._r[2065]!, [_0]) } - public var TextFormat_Bold: String { return self._s[2060]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2061]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[2062]! } - public var Notifications_Title: String { return self._s[2063]! } - public var Group_Username_InvalidTooShort: String { return self._s[2064]! } - public var Channel_ErrorAddTooMuch: String { return self._s[2065]! } + public var TextFormat_Bold: String { return self._s[2066]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2067]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[2068]! } + public var Notifications_Title: String { return self._s[2069]! } + public var Group_Username_InvalidTooShort: String { return self._s[2070]! } + public var Channel_ErrorAddTooMuch: String { return self._s[2071]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2066]!, self._r[2066]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2072]!, self._r[2072]!, ["\(_0)"]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[2068]! } - public var Stickers_SuggestAdded: String { return self._s[2069]! } - public var Login_CountryCode: String { return self._s[2070]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[2071]! } - public var Map_GetDirections: String { return self._s[2072]! } - public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2073]! } - public var Login_PhoneFloodError: String { return self._s[2074]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[2074]! } + public var Stickers_SuggestAdded: String { return self._s[2075]! } + public var Login_CountryCode: String { return self._s[2076]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[2077]! } + public var Map_GetDirections: String { return self._s[2078]! } + public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2079]! } + public var Login_PhoneFloodError: String { return self._s[2080]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2075]!, self._r[2075]!, [_0]) + return formatWithArgumentRanges(self._s[2081]!, self._r[2081]!, [_0]) } public func Wallet_Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2076]!, self._r[2076]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2082]!, self._r[2082]!, [_1, _2, _3]) } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2077]! } - public var Settings_SetUsername: String { return self._s[2079]! } - public var Group_Location_ChangeLocation: String { return self._s[2080]! } - public var Notification_GroupInviterSelf: String { return self._s[2081]! } - public var InstantPage_TapToOpenLink: String { return self._s[2082]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2083]! } + public var Settings_SetUsername: String { return self._s[2085]! } + public var Group_Location_ChangeLocation: String { return self._s[2086]! } + public var Notification_GroupInviterSelf: String { return self._s[2087]! } + public var InstantPage_TapToOpenLink: String { return self._s[2088]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2083]!, self._r[2083]!, [_0]) + return formatWithArgumentRanges(self._s[2089]!, self._r[2089]!, [_0]) } - public var Watch_Suggestion_TalkLater: String { return self._s[2084]! } - public var SecretChat_Title: String { return self._s[2085]! } - public var Group_UpgradeNoticeText1: String { return self._s[2086]! } - public var AuthSessions_Title: String { return self._s[2087]! } + public var Watch_Suggestion_TalkLater: String { return self._s[2090]! } + public var SecretChat_Title: String { return self._s[2091]! } + public var Group_UpgradeNoticeText1: String { return self._s[2092]! } + public var AuthSessions_Title: String { return self._s[2093]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2088]!, self._r[2088]!, [_0]) + return formatWithArgumentRanges(self._s[2094]!, self._r[2094]!, [_0]) } - public var PhotoEditor_CropAuto: String { return self._s[2089]! } - public var Channel_About_Title: String { return self._s[2090]! } - public var Theme_ThemeChanged: String { return self._s[2091]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[2092]! } + public var PhotoEditor_CropAuto: String { return self._s[2095]! } + public var Channel_About_Title: String { return self._s[2096]! } + public var Theme_ThemeChanged: String { return self._s[2097]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[2098]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2094]!, self._r[2094]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2100]!, self._r[2100]!, ["\(_0)"]) } - public var VoiceOver_MessageContextReport: String { return self._s[2095]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2097]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[2098]! } + public var VoiceOver_MessageContextReport: String { return self._s[2101]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2103]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[2104]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2099]!, self._r[2099]!, [_1]) + return formatWithArgumentRanges(self._s[2105]!, self._r[2105]!, [_1]) } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2101]!, self._r[2101]!, [_0]) + return formatWithArgumentRanges(self._s[2107]!, self._r[2107]!, [_0]) } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2102]!, self._r[2102]!, [_0]) + return formatWithArgumentRanges(self._s[2108]!, self._r[2108]!, [_0]) } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2103]! } - public var Presence_online: String { return self._s[2106]! } - public var PasscodeSettings_Title: String { return self._s[2107]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2108]! } - public var Web_OpenExternal: String { return self._s[2109]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[2111]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2112]! } - public var LocalGroup_Title: String { return self._s[2113]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2109]! } + public var Presence_online: String { return self._s[2112]! } + public var PasscodeSettings_Title: String { return self._s[2113]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2114]! } + public var Web_OpenExternal: String { return self._s[2115]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[2117]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2118]! } + public var LocalGroup_Title: String { return self._s[2119]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2114]!, self._r[2114]!, [_0]) + return formatWithArgumentRanges(self._s[2120]!, self._r[2120]!, [_0]) } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2115]! } - public var Map_YouAreHere: String { return self._s[2116]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2121]! } + public var Map_YouAreHere: String { return self._s[2122]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2117]!, self._r[2117]!, [_0]) - } - public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2118]!, self._r[2118]!, [_0]) - } - public var Theme_Context_ChangeColors: String { return self._s[2119]! } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2120]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2121]! } - public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2122]!, self._r[2122]!, [_0]) - } - public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2123]!, self._r[2123]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[2124]! } - public var Bot_Start: String { return self._s[2125]! } + public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2124]!, self._r[2124]!, [_0]) + } + public var Theme_Context_ChangeColors: String { return self._s[2125]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2126]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2127]! } + public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2128]!, self._r[2128]!, [_0]) + } + public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2129]!, self._r[2129]!, [_0]) + } + public var SocksProxySetup_Username: String { return self._s[2130]! } + public var Bot_Start: String { return self._s[2131]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2126]!, self._r[2126]!, [_0]) + return formatWithArgumentRanges(self._s[2132]!, self._r[2132]!, [_0]) } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2127]!, self._r[2127]!, [_0]) - } - public var Contacts_SortByPresence: String { return self._s[2128]! } - public var AccentColor_Title: String { return self._s[2130]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2131]! } - public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2132]!, self._r[2132]!, [_1, _2]) - } - public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2133]!, self._r[2133]!, [_0]) } + public var Contacts_SortByPresence: String { return self._s[2134]! } + public var AccentColor_Title: String { return self._s[2136]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2137]! } + public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2138]!, self._r[2138]!, [_1, _2]) + } + public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2139]!, self._r[2139]!, [_0]) + } public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2134]!, self._r[2134]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2140]!, self._r[2140]!, [_1, _2]) } - public var Passport_Email_EnterOtherEmail: String { return self._s[2135]! } - public var Login_InfoAvatarPhoto: String { return self._s[2136]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2137]! } - public var Tour_Title4: String { return self._s[2138]! } - public var Passport_Identity_Translation: String { return self._s[2139]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2140]! } - public var Login_TermsOfServiceLabel: String { return self._s[2142]! } - public var Passport_Language_it: String { return self._s[2143]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2144]! } - public var Passport_Identity_SelfieHelp: String { return self._s[2145]! } - public var Conversation_ClearAll: String { return self._s[2147]! } - public var Wallet_Send_UninitializedText: String { return self._s[2149]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[2150]! } - public var TwoStepAuth_FloodError: String { return self._s[2151]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[2141]! } + public var Login_InfoAvatarPhoto: String { return self._s[2142]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2143]! } + public var Tour_Title4: String { return self._s[2144]! } + public var Passport_Identity_Translation: String { return self._s[2145]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2146]! } + public var Login_TermsOfServiceLabel: String { return self._s[2148]! } + public var Passport_Language_it: String { return self._s[2149]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2150]! } + public var Passport_Identity_SelfieHelp: String { return self._s[2151]! } + public var Conversation_ClearAll: String { return self._s[2153]! } + public var Wallet_Send_UninitializedText: String { return self._s[2155]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[2156]! } + public var TwoStepAuth_FloodError: String { return self._s[2157]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2152]!, self._r[2152]!, [_1]) + return formatWithArgumentRanges(self._s[2158]!, self._r[2158]!, [_1]) } - public var Paint_Delete: String { return self._s[2153]! } + public var Paint_Delete: String { return self._s[2159]! } public func Wallet_Sent_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2154]!, self._r[2154]!, [_0]) - } - public var Privacy_AddNewPeer: String { return self._s[2155]! } - public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2156]!, self._r[2156]!, [_1]) - } - public var LogoutOptions_SetPasscodeText: String { return self._s[2157]! } - public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2158]!, self._r[2158]!, [_1, _2]) - } - public var Message_PinnedAudioMessage: String { return self._s[2159]! } - public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2160]!, self._r[2160]!, [_0]) } - public var Notification_Mute1hMin: String { return self._s[2161]! } - public var Notifications_GroupNotificationsSound: String { return self._s[2162]! } - public var Wallet_Month_GenNovember: String { return self._s[2163]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[2164]! } - public var Conversation_MessageEditedLabel: String { return self._s[2165]! } + public var Privacy_AddNewPeer: String { return self._s[2161]! } + public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2162]!, self._r[2162]!, [_1]) + } + public var LogoutOptions_SetPasscodeText: String { return self._s[2163]! } + public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2164]!, self._r[2164]!, [_1, _2]) + } + public var Message_PinnedAudioMessage: String { return self._s[2165]! } + public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2166]!, self._r[2166]!, [_0]) + } + public var Notification_Mute1hMin: String { return self._s[2167]! } + public var Notifications_GroupNotificationsSound: String { return self._s[2168]! } + public var Wallet_Month_GenNovember: String { return self._s[2169]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[2170]! } + public var Conversation_MessageEditedLabel: String { return self._s[2171]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2166]!, self._r[2166]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2172]!, self._r[2172]!, [_0, _1]) } - public var Notification_Exceptions_AlwaysOff: String { return self._s[2167]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2168]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[2173]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2174]! } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2169]!, self._r[2169]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2175]!, self._r[2175]!, [_0, _1, _2]) } - public var NetworkUsageSettings_ResetStats: String { return self._s[2170]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[2176]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2171]!, self._r[2171]!, [_1]) + return formatWithArgumentRanges(self._s[2177]!, self._r[2177]!, [_1]) } - public var AccessDenied_LocationTracking: String { return self._s[2172]! } - public var Month_GenOctober: String { return self._s[2173]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2174]! } - public var EnterPasscode_EnterPasscode: String { return self._s[2175]! } - public var MediaPicker_TimerTooltip: String { return self._s[2177]! } - public var SharedMedia_TitleAll: String { return self._s[2178]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2181]! } - public var Conversation_RestrictedMedia: String { return self._s[2182]! } - public var AccessDenied_PhotosRestricted: String { return self._s[2183]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2185]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2186]! } + public var AccessDenied_LocationTracking: String { return self._s[2178]! } + public var Month_GenOctober: String { return self._s[2179]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2180]! } + public var EnterPasscode_EnterPasscode: String { return self._s[2181]! } + public var MediaPicker_TimerTooltip: String { return self._s[2183]! } + public var SharedMedia_TitleAll: String { return self._s[2184]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2187]! } + public var Conversation_RestrictedMedia: String { return self._s[2188]! } + public var AccessDenied_PhotosRestricted: String { return self._s[2189]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2191]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2192]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2187]!, self._r[2187]!, [_0]) + return formatWithArgumentRanges(self._s[2193]!, self._r[2193]!, [_0]) } - public var Conversation_SavedMessages: String { return self._s[2190]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[2192]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2193]! } + public var Conversation_SavedMessages: String { return self._s[2196]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[2198]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2199]! } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2195]!, self._r[2195]!, [_0]) + return formatWithArgumentRanges(self._s[2201]!, self._r[2201]!, [_0]) } - public var VoiceOver_Chat_YourMessage: String { return self._s[2196]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2202]! } public func VoiceOver_Chat_Title(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2197]!, self._r[2197]!, [_0]) + return formatWithArgumentRanges(self._s[2203]!, self._r[2203]!, [_0]) } - public var ReportPeer_AlertSuccess: String { return self._s[2198]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2199]! } + public var ReportPeer_AlertSuccess: String { return self._s[2204]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2205]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2200]!, self._r[2200]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2206]!, self._r[2206]!, [_1, _2]) } - public var Checkout_PasswordEntry_Title: String { return self._s[2201]! } - public var PhotoEditor_FadeTool: String { return self._s[2202]! } - public var Privacy_ContactsReset: String { return self._s[2203]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2207]! } + public var PhotoEditor_FadeTool: String { return self._s[2208]! } + public var Privacy_ContactsReset: String { return self._s[2209]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2205]!, self._r[2205]!, [_0]) + return formatWithArgumentRanges(self._s[2211]!, self._r[2211]!, [_0]) } - public var Message_PinnedVideoMessage: String { return self._s[2206]! } - public var ChatList_Mute: String { return self._s[2207]! } + public var Message_PinnedVideoMessage: String { return self._s[2212]! } + public var ChatList_Mute: String { return self._s[2213]! } public func Wallet_Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2208]!, self._r[2208]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2214]!, self._r[2214]!, [_1, _2, _3]) } - public var Permissions_CellularDataText_v0: String { return self._s[2209]! } - public var ShareMenu_SelectChats: String { return self._s[2212]! } - public var ChatList_Context_Unarchive: String { return self._s[2213]! } - public var MusicPlayer_VoiceNote: String { return self._s[2214]! } - public var Conversation_RestrictedText: String { return self._s[2215]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2216]! } - public var Wallet_Month_GenApril: String { return self._s[2217]! } - public var Wallet_Month_ShortMarch: String { return self._s[2218]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[2219]! } - public var Cache_Videos: String { return self._s[2220]! } - public var PrivacySettings_PhoneNumber: String { return self._s[2221]! } - public var Wallet_Month_GenFebruary: String { return self._s[2222]! } - public var FeatureDisabled_Oops: String { return self._s[2224]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[2225]! } + public var Permissions_CellularDataText_v0: String { return self._s[2215]! } + public var ShareMenu_SelectChats: String { return self._s[2218]! } + public var ChatList_Context_Unarchive: String { return self._s[2219]! } + public var MusicPlayer_VoiceNote: String { return self._s[2220]! } + public var Conversation_RestrictedText: String { return self._s[2221]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2222]! } + public var Wallet_Month_GenApril: String { return self._s[2223]! } + public var Wallet_Month_ShortMarch: String { return self._s[2224]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2225]! } + public var Cache_Videos: String { return self._s[2226]! } + public var PrivacySettings_PhoneNumber: String { return self._s[2227]! } + public var Wallet_Month_GenFebruary: String { return self._s[2228]! } + public var FeatureDisabled_Oops: String { return self._s[2230]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[2231]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2226]!, self._r[2226]!, [_0]) + return formatWithArgumentRanges(self._s[2232]!, self._r[2232]!, [_0]) } - public var Stickers_GroupStickersHelp: String { return self._s[2227]! } - public var GroupPermission_NoSendPolls: String { return self._s[2228]! } - public var Wallet_Qr_ScanCode: String { return self._s[2229]! } - public var Message_VideoExpired: String { return self._s[2231]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[2232]! } - public var Notifications_Badge: String { return self._s[2233]! } - public var Wallet_Receive_AddressCopied: String { return self._s[2234]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[2235]! } - public var Username_InvalidTooShort: String { return self._s[2236]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2237]! } - public var Channel_AdminLog_PinMessages: String { return self._s[2238]! } - public var ArchivedChats_IntroTitle3: String { return self._s[2239]! } + public var Stickers_GroupStickersHelp: String { return self._s[2233]! } + public var GroupPermission_NoSendPolls: String { return self._s[2234]! } + public var Wallet_Qr_ScanCode: String { return self._s[2235]! } + public var Message_VideoExpired: String { return self._s[2237]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[2238]! } + public var Notifications_Badge: String { return self._s[2239]! } + public var Wallet_Receive_AddressCopied: String { return self._s[2240]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[2241]! } + public var Username_InvalidTooShort: String { return self._s[2242]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2243]! } + public var Channel_AdminLog_PinMessages: String { return self._s[2244]! } + public var ArchivedChats_IntroTitle3: String { return self._s[2245]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2240]!, self._r[2240]!, [_1]) - } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[2241]! } - public var Conversation_DefaultRestrictedText: String { return self._s[2242]! } - public var SharedMedia_CategoryDocs: String { return self._s[2245]! } - public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2246]!, self._r[2246]!, [_1]) } - public var Wallet_Send_UninitializedTitle: String { return self._s[2247]! } - public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2248]! } - public var Privacy_Forwards_NeverLink: String { return self._s[2250]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[2247]! } + public var Conversation_DefaultRestrictedText: String { return self._s[2248]! } + public var SharedMedia_CategoryDocs: String { return self._s[2251]! } + public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2252]!, self._r[2252]!, [_1]) + } + public var Wallet_Send_UninitializedTitle: String { return self._s[2253]! } + public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2254]! } + public var Privacy_Forwards_NeverLink: String { return self._s[2256]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2251]!, self._r[2251]!, [_1]) + return formatWithArgumentRanges(self._s[2257]!, self._r[2257]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2252]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2258]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2253]!, self._r[2253]!, [_0]) + return formatWithArgumentRanges(self._s[2259]!, self._r[2259]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[2254]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2255]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[2256]! } - public var Channel_UpdatePhotoItem: String { return self._s[2257]! } - public var GroupInfo_LeftStatus: String { return self._s[2258]! } - public var Watch_MessageView_Forward: String { return self._s[2260]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[2261]! } - public var Cache_ClearEmpty: String { return self._s[2263]! } - public var Localization_LanguageName: String { return self._s[2264]! } - public var Wallet_AccessDenied_Title: String { return self._s[2265]! } - public var WebSearch_GIFs: String { return self._s[2266]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2267]! } - public var Wallet_AccessDenied_Settings: String { return self._s[2268]! } - public var Username_InvalidStartsWithNumber: String { return self._s[2269]! } - public var Common_Back: String { return self._s[2270]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2271]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2272]! } - public var Wallet_Send_Send: String { return self._s[2273]! } + public var ChatSettings_PrivateChats: String { return self._s[2260]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2261]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[2262]! } + public var Channel_UpdatePhotoItem: String { return self._s[2263]! } + public var GroupInfo_LeftStatus: String { return self._s[2264]! } + public var Watch_MessageView_Forward: String { return self._s[2266]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[2267]! } + public var Cache_ClearEmpty: String { return self._s[2269]! } + public var Localization_LanguageName: String { return self._s[2270]! } + public var Wallet_AccessDenied_Title: String { return self._s[2271]! } + public var WebSearch_GIFs: String { return self._s[2272]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2273]! } + public var Wallet_AccessDenied_Settings: String { return self._s[2274]! } + public var Username_InvalidStartsWithNumber: String { return self._s[2275]! } + public var Common_Back: String { return self._s[2276]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2277]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2278]! } + public var Wallet_Send_Send: String { return self._s[2279]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2275]!, self._r[2275]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2281]!, self._r[2281]!, [_1, _2]) } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[2276]! } - public var Wallet_Month_GenJune: String { return self._s[2277]! } - public var Passport_Email_Help: String { return self._s[2278]! } - public var Watch_Conversation_Reply: String { return self._s[2280]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[2283]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2284]! } - public var Channel_BanUser_Unban: String { return self._s[2286]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2287]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2288]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2290]! } - public var Wallet_Send_AddressHeader: String { return self._s[2291]! } - public var Passport_Identity_Name: String { return self._s[2292]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[2282]! } + public var Wallet_Month_GenJune: String { return self._s[2283]! } + public var Passport_Email_Help: String { return self._s[2284]! } + public var Watch_Conversation_Reply: String { return self._s[2286]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[2289]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2290]! } + public var Channel_BanUser_Unban: String { return self._s[2292]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2293]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2294]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2296]! } + public var Wallet_Send_AddressHeader: String { return self._s[2297]! } + public var Passport_Identity_Name: String { return self._s[2298]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2293]!, self._r[2293]!, [_0]) + return formatWithArgumentRanges(self._s[2299]!, self._r[2299]!, [_0]) } - public var GroupRemoved_ViewUserInfo: String { return self._s[2294]! } - public var Conversation_BlockUser: String { return self._s[2295]! } - public var Month_GenJanuary: String { return self._s[2296]! } - public var ChatSettings_TextSize: String { return self._s[2297]! } - public var Notification_PassportValuePhone: String { return self._s[2298]! } - public var MediaPlayer_UnknownArtist: String { return self._s[2299]! } - public var Passport_Language_ne: String { return self._s[2300]! } - public var Notification_CallBack: String { return self._s[2301]! } - public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2302]! } - public var TwoStepAuth_EmailHelp: String { return self._s[2303]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[2300]! } + public var Conversation_BlockUser: String { return self._s[2301]! } + public var Month_GenJanuary: String { return self._s[2302]! } + public var ChatSettings_TextSize: String { return self._s[2303]! } + public var Notification_PassportValuePhone: String { return self._s[2304]! } + public var MediaPlayer_UnknownArtist: String { return self._s[2305]! } + public var Passport_Language_ne: String { return self._s[2306]! } + public var Notification_CallBack: String { return self._s[2307]! } + public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2308]! } + public var TwoStepAuth_EmailHelp: String { return self._s[2309]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2304]!, self._r[2304]!, [_0]) + return formatWithArgumentRanges(self._s[2310]!, self._r[2310]!, [_0]) } - public var Channel_Info_Management: String { return self._s[2305]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[2306]! } - public var Stickers_FrequentlyUsed: String { return self._s[2307]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2308]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2310]! } + public var Channel_Info_Management: String { return self._s[2311]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[2312]! } + public var Stickers_FrequentlyUsed: String { return self._s[2313]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2314]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2316]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2311]!, self._r[2311]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[2317]!, self._r[2317]!, [_1, "\(_2)"]) } - public var TwoFactorSetup_Password_Title: String { return self._s[2312]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[2313]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[2314]! } - public var CreatePoll_TextHeader: String { return self._s[2315]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2318]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[2319]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[2320]! } + public var CreatePoll_TextHeader: String { return self._s[2321]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2316]!, self._r[2316]!, [_0]) + return formatWithArgumentRanges(self._s[2322]!, self._r[2322]!, [_0]) } - public var PhotoEditor_QualityMedium: String { return self._s[2317]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2318]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[2320]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[2321]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[2322]! } + public var PhotoEditor_QualityMedium: String { return self._s[2323]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2324]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[2326]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[2327]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[2328]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2323]!, self._r[2323]!, [_0]) + return formatWithArgumentRanges(self._s[2329]!, self._r[2329]!, [_0]) } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2324]!, self._r[2324]!, [_1]) + return formatWithArgumentRanges(self._s[2330]!, self._r[2330]!, [_1]) } - public var LogoutOptions_LogOutWalletInfo: String { return self._s[2325]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2326]! } - public var Conversation_LinkDialogOpen: String { return self._s[2328]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2329]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[2330]! } - public var Settings_Username: String { return self._s[2332]! } - public var Conversation_Block: String { return self._s[2334]! } - public var Wallpaper_Wallpaper: String { return self._s[2335]! } - public var SocksProxySetup_UseProxy: String { return self._s[2337]! } - public var Wallet_Send_Confirmation: String { return self._s[2338]! } - public var EditTheme_UploadEditedTheme: String { return self._s[2339]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[2340]! } - public var MessageTimer_Forever: String { return self._s[2341]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[2342]! } - public var PhotoEditor_DiscardChanges: String { return self._s[2343]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2344]! } - public var Passport_Language_da: String { return self._s[2345]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[2346]! } + public var LogoutOptions_LogOutWalletInfo: String { return self._s[2331]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2332]! } + public var Conversation_LinkDialogOpen: String { return self._s[2334]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2335]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[2336]! } + public var Settings_Username: String { return self._s[2338]! } + public var Conversation_Block: String { return self._s[2340]! } + public var Wallpaper_Wallpaper: String { return self._s[2341]! } + public var SocksProxySetup_UseProxy: String { return self._s[2343]! } + public var Wallet_Send_Confirmation: String { return self._s[2344]! } + public var EditTheme_UploadEditedTheme: String { return self._s[2345]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[2346]! } + public var MessageTimer_Forever: String { return self._s[2347]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[2348]! } + public var PhotoEditor_DiscardChanges: String { return self._s[2349]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2350]! } + public var Passport_Language_da: String { return self._s[2351]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[2352]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2347]!, self._r[2347]!, [_0]) + return formatWithArgumentRanges(self._s[2353]!, self._r[2353]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[2348]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[2354]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2350]!, self._r[2350]!, [_0]) + return formatWithArgumentRanges(self._s[2356]!, self._r[2356]!, [_0]) } - public var Settings_AddDevice: String { return self._s[2351]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2353]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2354]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2355]! } - public var Conversation_PinnedPoll: String { return self._s[2356]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2357]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2358]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2359]! } + public var Settings_AddDevice: String { return self._s[2357]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2359]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2360]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2361]! } + public var Conversation_PinnedPoll: String { return self._s[2362]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2363]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2364]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2365]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2360]!, self._r[2360]!, [_1]) + return formatWithArgumentRanges(self._s[2366]!, self._r[2366]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[2361]! } - public var Cache_ByPeerHeader: String { return self._s[2362]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2367]! } + public var Cache_ByPeerHeader: String { return self._s[2368]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2363]!, self._r[2363]!, [_0]) + return formatWithArgumentRanges(self._s[2369]!, self._r[2369]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[2364]! } - public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2367]! } - public var Wallet_Completed_Title: String { return self._s[2368]! } - public var Notification_PinnedMessage: String { return self._s[2369]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2370]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2372]! } - public var Contacts_SortBy: String { return self._s[2373]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[2370]! } + public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2373]! } + public var Wallet_Completed_Title: String { return self._s[2374]! } + public var Notification_PinnedMessage: String { return self._s[2375]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2376]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2378]! } + public var Contacts_SortBy: String { return self._s[2379]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2374]!, self._r[2374]!, [_1]) + return formatWithArgumentRanges(self._s[2380]!, self._r[2380]!, [_1]) } - public var Appearance_ColorThemeNight: String { return self._s[2376]! } + public var Appearance_ColorThemeNight: String { return self._s[2382]! } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2377]!, self._r[2377]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2383]!, self._r[2383]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[2378]! } - public var Watch_UserInfo_Service: String { return self._s[2379]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2381]! } - public var Conversation_Unpin: String { return self._s[2383]! } - public var CancelResetAccount_Title: String { return self._s[2384]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[2385]! } + public var Call_EncryptionKey_Title: String { return self._s[2384]! } + public var Watch_UserInfo_Service: String { return self._s[2385]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2387]! } + public var Conversation_Unpin: String { return self._s[2389]! } + public var CancelResetAccount_Title: String { return self._s[2390]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[2391]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2387]!, self._r[2387]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2393]!, self._r[2393]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2388]! } - public var CallSettings_Title: String { return self._s[2389]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2390]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[2392]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2393]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2394]! } + public var CallSettings_Title: String { return self._s[2395]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2396]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[2398]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2399]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2394]!, self._r[2394]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2400]!, self._r[2400]!, [_1, _2]) } - public var Passport_Identity_DocumentDetails: String { return self._s[2395]! } - public var LoginPassword_PasswordHelp: String { return self._s[2396]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2397]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2398]! } - public var ChatContextMenu_TextSelectionTip: String { return self._s[2399]! } - public var Checkout_TotalPaidAmount: String { return self._s[2400]! } + public var Passport_Identity_DocumentDetails: String { return self._s[2401]! } + public var LoginPassword_PasswordHelp: String { return self._s[2402]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2403]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2404]! } + public var ChatContextMenu_TextSelectionTip: String { return self._s[2405]! } + public var Checkout_TotalPaidAmount: String { return self._s[2406]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2401]!, self._r[2401]!, [_0]) + return formatWithArgumentRanges(self._s[2407]!, self._r[2407]!, [_0]) } - public var PasscodeSettings_ChangePasscode: String { return self._s[2402]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[2404]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[2405]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[2408]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[2410]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[2411]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2406]!, self._r[2406]!, [_1]) + return formatWithArgumentRanges(self._s[2412]!, self._r[2412]!, [_1]) } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2407]! } - public var Contacts_InviteFriends: String { return self._s[2409]! } - public var Map_ChooseLocationTitle: String { return self._s[2410]! } - public var Conversation_StopPoll: String { return self._s[2412]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2413]! } + public var Contacts_InviteFriends: String { return self._s[2415]! } + public var Map_ChooseLocationTitle: String { return self._s[2416]! } + public var Conversation_StopPoll: String { return self._s[2418]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2413]!, self._r[2413]!, [_0]) + return formatWithArgumentRanges(self._s[2419]!, self._r[2419]!, [_0]) } - public var Call_Camera: String { return self._s[2414]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2415]! } - public var AppWallet_Intro_Text: String { return self._s[2416]! } - public var Calls_RatingFeedback: String { return self._s[2417]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2419]! } - public var Wallet_Alert_OK: String { return self._s[2420]! } - public var NotificationsSound_Pulse: String { return self._s[2421]! } - public var Watch_LastSeen_Lately: String { return self._s[2422]! } - public var ReportGroupLocation_Report: String { return self._s[2425]! } - public var Widget_NoUsers: String { return self._s[2426]! } - public var Conversation_UnvotePoll: String { return self._s[2427]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2429]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2430]! } - public var NotificationsSound_Circles: String { return self._s[2431]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2434]! } - public var Wallet_Settings_DeleteWallet: String { return self._s[2435]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2436]! } - public var Proxy_TooltipUnavailable: String { return self._s[2437]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2439]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2441]! } - public var Conversation_FileDropbox: String { return self._s[2442]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[2443]! } - public var Tour_Text3: String { return self._s[2445]! } - public var Login_ResetAccountProtected_Title: String { return self._s[2447]! } - public var GroupPermission_NoSendMessages: String { return self._s[2448]! } - public var WallpaperSearch_ColorTitle: String { return self._s[2449]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2450]! } + public var Call_Camera: String { return self._s[2420]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2421]! } + public var AppWallet_Intro_Text: String { return self._s[2422]! } + public var Calls_RatingFeedback: String { return self._s[2423]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2425]! } + public var Wallet_Alert_OK: String { return self._s[2426]! } + public var NotificationsSound_Pulse: String { return self._s[2427]! } + public var Watch_LastSeen_Lately: String { return self._s[2428]! } + public var ReportGroupLocation_Report: String { return self._s[2431]! } + public var Widget_NoUsers: String { return self._s[2432]! } + public var Conversation_UnvotePoll: String { return self._s[2433]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2435]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2436]! } + public var NotificationsSound_Circles: String { return self._s[2437]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2440]! } + public var Wallet_Settings_DeleteWallet: String { return self._s[2441]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2442]! } + public var Proxy_TooltipUnavailable: String { return self._s[2443]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2445]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2447]! } + public var Conversation_FileDropbox: String { return self._s[2448]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[2449]! } + public var Tour_Text3: String { return self._s[2451]! } + public var Login_ResetAccountProtected_Title: String { return self._s[2453]! } + public var GroupPermission_NoSendMessages: String { return self._s[2454]! } + public var WallpaperSearch_ColorTitle: String { return self._s[2455]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2456]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2452]!, self._r[2452]!, [_0]) + return formatWithArgumentRanges(self._s[2458]!, self._r[2458]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[2453]! } - public var Checkout_ShippingOption_Title: String { return self._s[2454]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2455]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[2459]! } + public var Checkout_ShippingOption_Title: String { return self._s[2460]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2461]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2456]!, self._r[2456]!, [_0]) + return formatWithArgumentRanges(self._s[2462]!, self._r[2462]!, [_0]) } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2457]!, self._r[2457]!, [_0]) + return formatWithArgumentRanges(self._s[2463]!, self._r[2463]!, [_0]) } - public var Channel_Management_LabelAdministrator: String { return self._s[2458]! } - public var EditTheme_FileReadError: String { return self._s[2459]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[2460]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2461]! } - public var AutoDownloadSettings_Photos: String { return self._s[2463]! } - public var Appearance_PreviewIncomingText: String { return self._s[2464]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[2465]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[2466]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2467]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2468]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2469]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2470]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2471]! } - public var Notification_SecretChatScreenshot: String { return self._s[2472]! } - public var AccessDenied_Wallpapers: String { return self._s[2473]! } - public var ChatList_Context_Mute: String { return self._s[2475]! } - public var Passport_Address_City: String { return self._s[2476]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2477]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[2478]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2479]! } - public var AccessDenied_LocationDisabled: String { return self._s[2480]! } - public var Group_Location_Title: String { return self._s[2481]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2483]! } - public var GroupInfo_Sound: String { return self._s[2484]! } - public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2485]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[2486]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2487]! } - public var Contacts_Title: String { return self._s[2488]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[2489]! } - public var Passport_Language_fr: String { return self._s[2490]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2491]! } - public var Notifications_ResetAllNotifications: String { return self._s[2492]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2494]! } - public var PrivacySettings_SecurityTitle: String { return self._s[2496]! } - public var Checkout_NewCard_Title: String { return self._s[2497]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[2498]! } - public var Conversation_ForwardChats: String { return self._s[2499]! } - public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2501]! } - public var PasscodeSettings_4DigitCode: String { return self._s[2502]! } - public var Settings_FAQ: String { return self._s[2504]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2505]! } - public var Conversation_ContextMenuForward: String { return self._s[2506]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[2509]! } - public var PrivacyPolicy_Title: String { return self._s[2512]! } - public var Notifications_TextTone: String { return self._s[2513]! } - public var Profile_CreateNewContact: String { return self._s[2514]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2515]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2517]! } - public var Call_Speaker: String { return self._s[2518]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2519]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2521]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2522]! } + public var Channel_Management_LabelAdministrator: String { return self._s[2464]! } + public var EditTheme_FileReadError: String { return self._s[2465]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[2466]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2467]! } + public var AutoDownloadSettings_Photos: String { return self._s[2469]! } + public var Appearance_PreviewIncomingText: String { return self._s[2470]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[2471]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[2472]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2473]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2474]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2475]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2476]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2477]! } + public var Notification_SecretChatScreenshot: String { return self._s[2478]! } + public var AccessDenied_Wallpapers: String { return self._s[2479]! } + public var ChatList_Context_Mute: String { return self._s[2481]! } + public var Passport_Address_City: String { return self._s[2482]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2483]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[2484]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2485]! } + public var AccessDenied_LocationDisabled: String { return self._s[2486]! } + public var Group_Location_Title: String { return self._s[2487]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2489]! } + public var GroupInfo_Sound: String { return self._s[2490]! } + public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2491]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[2492]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2493]! } + public var Contacts_Title: String { return self._s[2494]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[2495]! } + public var Passport_Language_fr: String { return self._s[2496]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2497]! } + public var Notifications_ResetAllNotifications: String { return self._s[2498]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2500]! } + public var PrivacySettings_SecurityTitle: String { return self._s[2502]! } + public var Checkout_NewCard_Title: String { return self._s[2503]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[2504]! } + public var Conversation_ForwardChats: String { return self._s[2505]! } + public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2507]! } + public var PasscodeSettings_4DigitCode: String { return self._s[2508]! } + public var Settings_FAQ: String { return self._s[2510]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2511]! } + public var Conversation_ContextMenuForward: String { return self._s[2512]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[2515]! } + public var PrivacyPolicy_Title: String { return self._s[2518]! } + public var Notifications_TextTone: String { return self._s[2519]! } + public var Profile_CreateNewContact: String { return self._s[2520]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2521]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2523]! } + public var Call_Speaker: String { return self._s[2524]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2525]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2527]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2528]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2523]!, self._r[2523]!, [_0]) + return formatWithArgumentRanges(self._s[2529]!, self._r[2529]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2524]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2525]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2526]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2527]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[2528]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2529]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2530]! } - public var Bot_Unblock: String { return self._s[2531]! } - public var TextFormat_Italic: String { return self._s[2532]! } - public var WallpaperSearch_ColorPink: String { return self._s[2533]! } - public var Settings_About_Help: String { return self._s[2535]! } - public var SearchImages_Title: String { return self._s[2536]! } - public var Weekday_Wednesday: String { return self._s[2537]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2538]! } - public var ExplicitContent_AlertTitle: String { return self._s[2539]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2530]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2531]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2532]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2533]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[2534]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2535]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2536]! } + public var Bot_Unblock: String { return self._s[2537]! } + public var TextFormat_Italic: String { return self._s[2538]! } + public var WallpaperSearch_ColorPink: String { return self._s[2539]! } + public var Settings_About_Help: String { return self._s[2541]! } + public var SearchImages_Title: String { return self._s[2542]! } + public var Weekday_Wednesday: String { return self._s[2543]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2544]! } + public var ExplicitContent_AlertTitle: String { return self._s[2545]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2540]!, self._r[2540]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2546]!, self._r[2546]!, [_1, _2, _3]) } - public var Channel_DiscussionGroup_Create: String { return self._s[2541]! } - public var Weekday_Thursday: String { return self._s[2542]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2543]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2544]! } + public var Channel_DiscussionGroup_Create: String { return self._s[2547]! } + public var Weekday_Thursday: String { return self._s[2548]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2549]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2550]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2545]!, self._r[2545]!, [_0]) + return formatWithArgumentRanges(self._s[2551]!, self._r[2551]!, [_0]) } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2546]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2547]! } - public var Passport_RequestedInformation: String { return self._s[2548]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2549]! } - public var Conversation_EncryptionProcessing: String { return self._s[2551]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2552]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2554]! } - public var Channel_Setup_Title: String { return self._s[2555]! } - public var Conversation_SearchPlaceholder: String { return self._s[2556]! } - public var OldChannels_GroupEmptyFormat: String { return self._s[2557]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2558]! } - public var Checkout_ErrorGeneric: String { return self._s[2559]! } - public var Passport_Language_hu: String { return self._s[2560]! } - public var GroupPermission_EditingDisabled: String { return self._s[2561]! } - public var Wallet_Month_ShortSeptember: String { return self._s[2563]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2552]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2553]! } + public var Passport_RequestedInformation: String { return self._s[2554]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2555]! } + public var Conversation_EncryptionProcessing: String { return self._s[2557]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2558]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2560]! } + public var Channel_Setup_Title: String { return self._s[2561]! } + public var Conversation_SearchPlaceholder: String { return self._s[2562]! } + public var OldChannels_GroupEmptyFormat: String { return self._s[2563]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2564]! } + public var Checkout_ErrorGeneric: String { return self._s[2565]! } + public var Passport_Language_hu: String { return self._s[2566]! } + public var GroupPermission_EditingDisabled: String { return self._s[2567]! } + public var Wallet_Month_ShortSeptember: String { return self._s[2569]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2564]!, self._r[2564]!, [_0]) + return formatWithArgumentRanges(self._s[2570]!, self._r[2570]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2567]!, self._r[2567]!, [_1]) + return formatWithArgumentRanges(self._s[2573]!, self._r[2573]!, [_1]) } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2568]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2574]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2569]!, self._r[2569]!, [_0]) + return formatWithArgumentRanges(self._s[2575]!, self._r[2575]!, [_0]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2570]! } - public var Group_Location_Info: String { return self._s[2571]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2572]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2573]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2576]! } + public var Group_Location_Info: String { return self._s[2577]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2578]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2579]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2574]!, self._r[2574]!, [_0]) + return formatWithArgumentRanges(self._s[2580]!, self._r[2580]!, [_0]) } - public var Conversation_ClearPrivateHistory: String { return self._s[2575]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2576]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[2577]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2578]! } + public var Conversation_ClearPrivateHistory: String { return self._s[2581]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2582]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[2583]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2584]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2579]!, self._r[2579]!, [_0]) + return formatWithArgumentRanges(self._s[2585]!, self._r[2585]!, [_0]) } - public var Passport_Language_cs: String { return self._s[2580]! } - public var Message_PinnedAnimationMessage: String { return self._s[2582]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2584]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2585]! } - public var Wallet_Info_TransactionTo: String { return self._s[2587]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2588]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2589]! } - public var Embed_PlayingInPIP: String { return self._s[2590]! } - public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2591]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2592]! } + public var Passport_Language_cs: String { return self._s[2586]! } + public var Message_PinnedAnimationMessage: String { return self._s[2588]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2590]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2591]! } + public var Wallet_Info_TransactionTo: String { return self._s[2593]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2594]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2595]! } + public var Embed_PlayingInPIP: String { return self._s[2596]! } + public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2597]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2598]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2593]!, self._r[2593]!, [_0]) + return formatWithArgumentRanges(self._s[2599]!, self._r[2599]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2594]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[2600]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2595]!, self._r[2595]!, [_1]) + return formatWithArgumentRanges(self._s[2601]!, self._r[2601]!, [_1]) } - public var Notification_PaymentSent: String { return self._s[2596]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2597]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2598]! } - public var AutoNightTheme_System: String { return self._s[2599]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2600]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2601]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2602]! } + public var Notification_PaymentSent: String { return self._s[2602]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2603]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2604]! } + public var AutoNightTheme_System: String { return self._s[2605]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2606]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2607]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2608]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2605]!, self._r[2605]!, [_1]) + return formatWithArgumentRanges(self._s[2611]!, self._r[2611]!, [_1]) } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2606]!, self._r[2606]!, [_1]) + return formatWithArgumentRanges(self._s[2612]!, self._r[2612]!, [_1]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2607]!, self._r[2607]!, [_1]) + return formatWithArgumentRanges(self._s[2613]!, self._r[2613]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2609]! } - public var PasscodeSettings_HelpTop: String { return self._s[2610]! } - public var Conversation_WalletRequiredTitle: String { return self._s[2611]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2612]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2613]! } - public var EditTheme_ShortLink: String { return self._s[2614]! } - public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2615]! } - public var ProxyServer_VoiceOver_Active: String { return self._s[2616]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2617]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2618]! } - public var Call_Accept: String { return self._s[2620]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2621]! } - public var Month_GenMarch: String { return self._s[2623]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2624]! } - public var LoginPassword_Title: String { return self._s[2625]! } - public var Call_End: String { return self._s[2626]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2627]! } - public var VoiceOver_Chat_Contact: String { return self._s[2628]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2629]! } - public var CallSettings_Always: String { return self._s[2630]! } - public var CallFeedback_Success: String { return self._s[2631]! } - public var TwoStepAuth_SetupHint: String { return self._s[2632]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2615]! } + public var PasscodeSettings_HelpTop: String { return self._s[2616]! } + public var Conversation_WalletRequiredTitle: String { return self._s[2617]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2618]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2619]! } + public var EditTheme_ShortLink: String { return self._s[2620]! } + public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2621]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[2622]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2623]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2624]! } + public var Call_Accept: String { return self._s[2626]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2627]! } + public var Month_GenMarch: String { return self._s[2629]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2630]! } + public var LoginPassword_Title: String { return self._s[2631]! } + public var Call_End: String { return self._s[2632]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2633]! } + public var VoiceOver_Chat_Contact: String { return self._s[2634]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2635]! } + public var CallSettings_Always: String { return self._s[2636]! } + public var CallFeedback_Success: String { return self._s[2637]! } + public var TwoStepAuth_SetupHint: String { return self._s[2638]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2633]!, self._r[2633]!, [_1]) + return formatWithArgumentRanges(self._s[2639]!, self._r[2639]!, [_1]) } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2634]! } - public var Login_PhoneTitle: String { return self._s[2635]! } - public var Passport_FieldPhoneHelp: String { return self._s[2636]! } - public var Weekday_ShortSunday: String { return self._s[2637]! } - public var Passport_InfoFAQ_URL: String { return self._s[2638]! } - public var ContactInfo_Job: String { return self._s[2640]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2641]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[2642]! } - public var TwoFactorSetup_Email_Text: String { return self._s[2643]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2644]! } - public var Invite_ChannelsTooMuch: String { return self._s[2645]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[2646]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2647]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2648]! } - public var Wallet_Receive_AmountText: String { return self._s[2649]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2650]! } - public var CallFeedback_ReasonNoise: String { return self._s[2651]! } - public var Appearance_AppIconDefault: String { return self._s[2653]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2654]! } - public var MediaPicker_AddCaption: String { return self._s[2655]! } - public var CallSettings_TabIconDescription: String { return self._s[2656]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2640]! } + public var Login_PhoneTitle: String { return self._s[2641]! } + public var Passport_FieldPhoneHelp: String { return self._s[2642]! } + public var Weekday_ShortSunday: String { return self._s[2643]! } + public var Passport_InfoFAQ_URL: String { return self._s[2644]! } + public var ContactInfo_Job: String { return self._s[2646]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2647]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[2648]! } + public var CreatePoll_QuizTip: String { return self._s[2649]! } + public var TwoFactorSetup_Email_Text: String { return self._s[2650]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2651]! } + public var Invite_ChannelsTooMuch: String { return self._s[2652]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[2653]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2654]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2655]! } + public var Wallet_Receive_AmountText: String { return self._s[2656]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2657]! } + public var CallFeedback_ReasonNoise: String { return self._s[2658]! } + public var Appearance_AppIconDefault: String { return self._s[2660]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2661]! } + public var MediaPicker_AddCaption: String { return self._s[2662]! } + public var CallSettings_TabIconDescription: String { return self._s[2663]! } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2657]!, self._r[2657]!, [_0]) + return formatWithArgumentRanges(self._s[2664]!, self._r[2664]!, [_0]) } - public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2658]! } + public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2665]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2659]!, self._r[2659]!, [_0]) + return formatWithArgumentRanges(self._s[2666]!, self._r[2666]!, [_0]) } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2660]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2661]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2662]! } - public var DialogList_SearchSectionRecent: String { return self._s[2663]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2664]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2667]! } - public var LastSeen_WithinAWeek: String { return self._s[2668]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2669]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2671]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2672]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2667]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2668]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2669]! } + public var DialogList_SearchSectionRecent: String { return self._s[2670]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2671]! } + public var CreatePoll_Anonymous: String { return self._s[2672]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2675]! } + public var LastSeen_WithinAWeek: String { return self._s[2676]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2677]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2679]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2680]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2673]!, self._r[2673]!, [_0]) + return formatWithArgumentRanges(self._s[2681]!, self._r[2681]!, [_0]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2674]! } - public var Conversation_StatusLeftGroup: String { return self._s[2675]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2676]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2678]! } - public var GroupPermission_AddSuccess: String { return self._s[2679]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2681]! } - public var Conversation_ContextMenuCopy: String { return self._s[2682]! } - public var AccessDenied_CallMicrophone: String { return self._s[2683]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2682]! } + public var Conversation_StatusLeftGroup: String { return self._s[2683]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2684]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2686]! } + public var GroupPermission_AddSuccess: String { return self._s[2687]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2689]! } + public var Conversation_ContextMenuCopy: String { return self._s[2690]! } + public var AccessDenied_CallMicrophone: String { return self._s[2691]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2684]!, self._r[2684]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2692]!, self._r[2692]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2685]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2686]! } - public var Checkout_PaymentMethod_New: String { return self._s[2687]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2688]! } - public var PhotoEditor_QualityTool: String { return self._s[2689]! } - public var Login_SendCodeViaSms: String { return self._s[2690]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2691]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2692]! } - public var Wallet_Receive_CopyAddress: String { return self._s[2693]! } - public var Login_EmailNotConfiguredError: String { return self._s[2694]! } - public var SocksProxySetup_Status: String { return self._s[2695]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2696]! } - public var PrivacyPolicy_Accept: String { return self._s[2697]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2698]! } - public var Appearance_AppIconClassicX: String { return self._s[2699]! } + public var Login_InvalidFirstNameError: String { return self._s[2693]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2694]! } + public var Checkout_PaymentMethod_New: String { return self._s[2695]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2696]! } + public var PhotoEditor_QualityTool: String { return self._s[2697]! } + public var Login_SendCodeViaSms: String { return self._s[2698]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2699]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2700]! } + public var Wallet_Receive_CopyAddress: String { return self._s[2701]! } + public var Login_EmailNotConfiguredError: String { return self._s[2702]! } + public var SocksProxySetup_Status: String { return self._s[2703]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2704]! } + public var PrivacyPolicy_Accept: String { return self._s[2705]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2706]! } + public var Appearance_AppIconClassicX: String { return self._s[2707]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2700]!, self._r[2700]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2708]!, self._r[2708]!, [_1, _2, _3]) } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[2701]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2703]! } - public var AutoNightTheme_Automatic: String { return self._s[2704]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2705]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2706]! } - public var Cache_Help: String { return self._s[2707]! } - public var Group_ErrorAccessDenied: String { return self._s[2708]! } - public var Passport_Language_fa: String { return self._s[2709]! } - public var Wallet_Intro_Text: String { return self._s[2710]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2711]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2712]! } - public var PrivacySettings_LastSeen: String { return self._s[2713]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[2709]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2711]! } + public var AutoNightTheme_Automatic: String { return self._s[2712]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2713]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2714]! } + public var Cache_Help: String { return self._s[2715]! } + public var Group_ErrorAccessDenied: String { return self._s[2716]! } + public var Passport_Language_fa: String { return self._s[2717]! } + public var Wallet_Intro_Text: String { return self._s[2718]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2719]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2720]! } + public var PrivacySettings_LastSeen: String { return self._s[2721]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2714]!, self._r[2714]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2722]!, self._r[2722]!, [_0, _1]) } - public var Wallet_Configuration_Apply: String { return self._s[2718]! } - public var Preview_SaveGif: String { return self._s[2719]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2720]! } - public var Profile_About: String { return self._s[2721]! } - public var Channel_About_Placeholder: String { return self._s[2722]! } - public var Login_InfoTitle: String { return self._s[2723]! } + public var Wallet_Configuration_Apply: String { return self._s[2726]! } + public var Preview_SaveGif: String { return self._s[2727]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2728]! } + public var Profile_About: String { return self._s[2729]! } + public var Channel_About_Placeholder: String { return self._s[2730]! } + public var Login_InfoTitle: String { return self._s[2731]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2724]!, self._r[2724]!, [_0]) + return formatWithArgumentRanges(self._s[2732]!, self._r[2732]!, [_0]) } - public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2725]! } - public var Watch_Suggestion_CantTalk: String { return self._s[2727]! } - public var ContactInfo_Title: String { return self._s[2728]! } - public var Media_ShareThisVideo: String { return self._s[2729]! } - public var Weekday_ShortFriday: String { return self._s[2730]! } - public var AccessDenied_Contacts: String { return self._s[2732]! } - public var Notification_CallIncomingShort: String { return self._s[2733]! } - public var Group_Setup_TypePublic: String { return self._s[2734]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2735]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2736]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2739]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2740]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2741]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2742]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2743]! } + public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2733]! } + public var Watch_Suggestion_CantTalk: String { return self._s[2735]! } + public var ContactInfo_Title: String { return self._s[2736]! } + public var Media_ShareThisVideo: String { return self._s[2737]! } + public var Weekday_ShortFriday: String { return self._s[2738]! } + public var AccessDenied_Contacts: String { return self._s[2740]! } + public var Notification_CallIncomingShort: String { return self._s[2741]! } + public var Group_Setup_TypePublic: String { return self._s[2742]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2743]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[2744]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[2747]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2748]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2749]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2750]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2751]! } public func Wallet_SecureStorageChanged_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2744]!, self._r[2744]!, [_0]) + return formatWithArgumentRanges(self._s[2752]!, self._r[2752]!, [_0]) } - public var DialogList_Typing: String { return self._s[2745]! } - public var CallFeedback_IncludeLogs: String { return self._s[2747]! } - public var Checkout_Phone: String { return self._s[2749]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[2752]! } - public var Privacy_Calls_Integration: String { return self._s[2753]! } - public var Notifications_PermissionsAllow: String { return self._s[2754]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[2758]! } - public var Settings_ChatSettings: String { return self._s[2759]! } - public var Conversation_SendingOptionsTooltip: String { return self._s[2760]! } + public var DialogList_Typing: String { return self._s[2753]! } + public var CallFeedback_IncludeLogs: String { return self._s[2755]! } + public var Checkout_Phone: String { return self._s[2757]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[2760]! } + public var Privacy_Calls_Integration: String { return self._s[2761]! } + public var Notifications_PermissionsAllow: String { return self._s[2762]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[2766]! } + public var Settings_ChatSettings: String { return self._s[2767]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[2768]! } public func UserInfo_StartSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2762]!, self._r[2762]!, [_0]) + return formatWithArgumentRanges(self._s[2770]!, self._r[2770]!, [_0]) } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2763]!, self._r[2763]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2771]!, self._r[2771]!, [_1, _2]) } - public var GroupRemoved_DeleteUser: String { return self._s[2765]! } + public var GroupRemoved_DeleteUser: String { return self._s[2773]! } public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2766]!, self._r[2766]!, [_0]) + return formatWithArgumentRanges(self._s[2774]!, self._r[2774]!, [_0]) } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2767]!, self._r[2767]!, [_1]) + return formatWithArgumentRanges(self._s[2775]!, self._r[2775]!, [_1]) } - public var Login_ContinueWithLocalization: String { return self._s[2768]! } - public var Watch_Message_ForwardedFrom: String { return self._s[2769]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[2771]! } - public var Conversation_Unblock: String { return self._s[2772]! } - public var PrivacySettings_DataSettings: String { return self._s[2773]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[2774]! } - public var Group_PublicLink_Info: String { return self._s[2775]! } + public var Login_ContinueWithLocalization: String { return self._s[2776]! } + public var Watch_Message_ForwardedFrom: String { return self._s[2777]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[2779]! } + public var Conversation_Unblock: String { return self._s[2780]! } + public var PrivacySettings_DataSettings: String { return self._s[2781]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[2782]! } + public var Group_PublicLink_Info: String { return self._s[2783]! } public func Wallet_Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2776]!, self._r[2776]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2784]!, self._r[2784]!, [_1, _2, _3]) } - public var Notifications_InAppNotificationsVibrate: String { return self._s[2777]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[2785]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2778]!, self._r[2778]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2786]!, self._r[2786]!, [_0, _1]) } - public var OldChannels_ChannelsHeader: String { return self._s[2780]! } - public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2781]! } - public var PrivacySettings_Passcode: String { return self._s[2783]! } - public var Call_Mute: String { return self._s[2784]! } - public var Wallet_Weekday_Yesterday: String { return self._s[2785]! } - public var Passport_Language_dz: String { return self._s[2786]! } - public var Wallet_Receive_AmountHeader: String { return self._s[2787]! } - public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2788]! } - public var Passport_Language_tk: String { return self._s[2789]! } + public var OldChannels_ChannelsHeader: String { return self._s[2788]! } + public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2789]! } + public var PrivacySettings_Passcode: String { return self._s[2791]! } + public var Call_Mute: String { return self._s[2792]! } + public var Wallet_Weekday_Yesterday: String { return self._s[2793]! } + public var Passport_Language_dz: String { return self._s[2794]! } + public var Wallet_Receive_AmountHeader: String { return self._s[2795]! } + public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2796]! } + public var Passport_Language_tk: String { return self._s[2797]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2790]!, self._r[2790]!, [_0]) + return formatWithArgumentRanges(self._s[2798]!, self._r[2798]!, [_0]) } - public var Settings_Search: String { return self._s[2791]! } - public var Wallet_Month_ShortFebruary: String { return self._s[2792]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2793]! } - public var Wallet_Configuration_SourceJSON: String { return self._s[2794]! } - public var Conversation_ContextMenuReply: String { return self._s[2795]! } - public var WallpaperSearch_ColorBrown: String { return self._s[2796]! } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2797]! } - public var Tour_Title1: String { return self._s[2798]! } - public var Wallet_Alert_Cancel: String { return self._s[2799]! } - public var Conversation_ClearGroupHistory: String { return self._s[2801]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2802]! } - public var WallpaperPreview_Motion: String { return self._s[2803]! } + public var Settings_Search: String { return self._s[2799]! } + public var Wallet_Month_ShortFebruary: String { return self._s[2800]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2801]! } + public var Wallet_Configuration_SourceJSON: String { return self._s[2802]! } + public var Conversation_ContextMenuReply: String { return self._s[2803]! } + public var WallpaperSearch_ColorBrown: String { return self._s[2804]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2805]! } + public var Tour_Title1: String { return self._s[2806]! } + public var Wallet_Alert_Cancel: String { return self._s[2807]! } + public var Conversation_ClearGroupHistory: String { return self._s[2809]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2810]! } + public var WallpaperPreview_Motion: String { return self._s[2811]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2804]!, self._r[2804]!, [_0]) + return formatWithArgumentRanges(self._s[2812]!, self._r[2812]!, [_0]) } - public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2805]! } - public var Call_RateCall: String { return self._s[2806]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2807]! } - public var Passport_PasswordCompleteSetup: String { return self._s[2808]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2809]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[2811]! } + public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2813]! } + public var Call_RateCall: String { return self._s[2814]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2815]! } + public var Passport_PasswordCompleteSetup: String { return self._s[2816]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2817]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[2819]! } public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2813]!, self._r[2813]!, [_0]) + return formatWithArgumentRanges(self._s[2821]!, self._r[2821]!, [_0]) } - public var Compose_Create: String { return self._s[2814]! } - public var Contacts_InviteToTelegram: String { return self._s[2815]! } - public var GroupInfo_Notifications: String { return self._s[2816]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2818]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[2819]! } - public var Month_GenApril: String { return self._s[2820]! } - public var Appearance_AutoNightTheme: String { return self._s[2821]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[2823]! } - public var Login_CodeSentSms: String { return self._s[2825]! } + public var Compose_Create: String { return self._s[2822]! } + public var Contacts_InviteToTelegram: String { return self._s[2823]! } + public var GroupInfo_Notifications: String { return self._s[2824]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2826]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[2827]! } + public var Month_GenApril: String { return self._s[2828]! } + public var Appearance_AutoNightTheme: String { return self._s[2829]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[2831]! } + public var Login_CodeSentSms: String { return self._s[2833]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2826]!, self._r[2826]!, [_0]) + return formatWithArgumentRanges(self._s[2834]!, self._r[2834]!, [_0]) } - public var EmptyGroupInfo_Line3: String { return self._s[2827]! } - public var LogoutOptions_ContactSupportText: String { return self._s[2828]! } - public var Passport_Language_hr: String { return self._s[2829]! } - public var Common_ActionNotAllowedError: String { return self._s[2830]! } + public var EmptyGroupInfo_Line3: String { return self._s[2835]! } + public var LogoutOptions_ContactSupportText: String { return self._s[2836]! } + public var Passport_Language_hr: String { return self._s[2837]! } + public var Common_ActionNotAllowedError: String { return self._s[2838]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2831]!, self._r[2831]!, [_0]) + return formatWithArgumentRanges(self._s[2839]!, self._r[2839]!, [_0]) } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[2832]! } - public var Wallet_Info_TransactionFrom: String { return self._s[2833]! } - public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2834]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2835]! } - public var Privacy_SecretChatsTitle: String { return self._s[2836]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2838]! } - public var GroupInfo_AddUserLeftError: String { return self._s[2839]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2840]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[2841]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2842]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[2843]! } - public var Preview_DeleteGif: String { return self._s[2844]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2845]! } - public var Group_ErrorNotMutualContact: String { return self._s[2846]! } - public var Notification_MessageLifetime5s: String { return self._s[2847]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[2848]! } - public var OldChannels_ChannelFormat: String { return self._s[2849]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[2840]! } + public var Wallet_Info_TransactionFrom: String { return self._s[2841]! } + public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2842]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2843]! } + public var Privacy_SecretChatsTitle: String { return self._s[2844]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2846]! } + public var GroupInfo_AddUserLeftError: String { return self._s[2847]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2848]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[2849]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2850]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[2851]! } + public var Preview_DeleteGif: String { return self._s[2852]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2853]! } + public var Group_ErrorNotMutualContact: String { return self._s[2854]! } + public var Notification_MessageLifetime5s: String { return self._s[2855]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[2856]! } + public var OldChannels_ChannelFormat: String { return self._s[2857]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2850]!, self._r[2850]!, [_0]) + return formatWithArgumentRanges(self._s[2858]!, self._r[2858]!, [_0]) } - public var VoiceOver_Chat_Video: String { return self._s[2851]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2853]! } - public var ReportSpam_DeleteThisChat: String { return self._s[2854]! } - public var Passport_Address_AddBankStatement: String { return self._s[2855]! } - public var Notification_CallIncoming: String { return self._s[2856]! } - public var Wallet_Words_NotDoneTitle: String { return self._s[2857]! } - public var Compose_NewGroupTitle: String { return self._s[2858]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2860]! } - public var Passport_Address_Postcode: String { return self._s[2862]! } + public var VoiceOver_Chat_Video: String { return self._s[2859]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2861]! } + public var ReportSpam_DeleteThisChat: String { return self._s[2862]! } + public var Passport_Address_AddBankStatement: String { return self._s[2863]! } + public var Notification_CallIncoming: String { return self._s[2864]! } + public var Wallet_Words_NotDoneTitle: String { return self._s[2865]! } + public var Compose_NewGroupTitle: String { return self._s[2866]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2868]! } + public var Passport_Address_Postcode: String { return self._s[2870]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2863]!, self._r[2863]!, [_0]) - } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2864]! } - public var Wallet_Month_ShortOctober: String { return self._s[2865]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2866]! } - public var WallpaperColors_Title: String { return self._s[2867]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2868]! } - public var VoiceOver_MessageContextForward: String { return self._s[2869]! } - public var GroupPermission_Duration: String { return self._s[2870]! } - public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2871]!, self._r[2871]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2872]! } - public var Username_Placeholder: String { return self._s[2873]! } - public var CallFeedback_WhatWentWrong: String { return self._s[2874]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2875]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2876]! } - public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2878]!, self._r[2878]!, [_1, _2]) + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2872]! } + public var Wallet_Month_ShortOctober: String { return self._s[2873]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2874]! } + public var WallpaperColors_Title: String { return self._s[2875]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2876]! } + public var VoiceOver_MessageContextForward: String { return self._s[2877]! } + public var GroupPermission_Duration: String { return self._s[2878]! } + public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2879]!, self._r[2879]!, [_0]) } - public var Passport_PasswordDescription: String { return self._s[2879]! } - public var Channel_MessagePhotoUpdated: String { return self._s[2880]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[2881]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2882]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[2883]! } - public var Conversation_ContextMenuMore: String { return self._s[2884]! } - public var Privacy_PaymentsClearInfo: String { return self._s[2885]! } - public var CallSettings_TabIcon: String { return self._s[2886]! } - public var KeyCommand_Find: String { return self._s[2887]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2888]! } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2889]! } - public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2890]! } - public var Message_PinnedGame: String { return self._s[2891]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2892]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2894]! } - public var Login_CallRequestState2: String { return self._s[2896]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2898]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2880]! } + public var Username_Placeholder: String { return self._s[2881]! } + public var CallFeedback_WhatWentWrong: String { return self._s[2882]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2883]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2884]! } + public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2886]!, self._r[2886]!, [_1, _2]) + } + public var Passport_PasswordDescription: String { return self._s[2887]! } + public var Channel_MessagePhotoUpdated: String { return self._s[2888]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[2889]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2890]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[2891]! } + public var Conversation_ContextMenuMore: String { return self._s[2892]! } + public var Privacy_PaymentsClearInfo: String { return self._s[2893]! } + public var CallSettings_TabIcon: String { return self._s[2894]! } + public var KeyCommand_Find: String { return self._s[2895]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2896]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2897]! } + public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2898]! } + public var Message_PinnedGame: String { return self._s[2899]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2900]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2902]! } + public var Login_CallRequestState2: String { return self._s[2904]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2906]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2899]!, self._r[2899]!, [_0]) + return formatWithArgumentRanges(self._s[2907]!, self._r[2907]!, [_0]) } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2901]!, self._r[2901]!, [_0]) + return formatWithArgumentRanges(self._s[2909]!, self._r[2909]!, [_0]) } - public var AuthSessions_AddDevice: String { return self._s[2902]! } - public var WallpaperPreview_Blurred: String { return self._s[2903]! } - public var Conversation_InstantPagePreview: String { return self._s[2904]! } + public var AuthSessions_AddDevice: String { return self._s[2910]! } + public var WallpaperPreview_Blurred: String { return self._s[2911]! } + public var Conversation_InstantPagePreview: String { return self._s[2912]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2905]!, self._r[2905]!, [_0]) + return formatWithArgumentRanges(self._s[2913]!, self._r[2913]!, [_0]) } - public var SecretTimer_VideoDescription: String { return self._s[2908]! } - public var WallpaperSearch_ColorRed: String { return self._s[2909]! } - public var GroupPermission_NoPinMessages: String { return self._s[2910]! } - public var Passport_Language_es: String { return self._s[2911]! } - public var Permissions_ContactsAllow_v0: String { return self._s[2913]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2914]! } + public var SecretTimer_VideoDescription: String { return self._s[2916]! } + public var WallpaperSearch_ColorRed: String { return self._s[2917]! } + public var GroupPermission_NoPinMessages: String { return self._s[2918]! } + public var Passport_Language_es: String { return self._s[2919]! } + public var Permissions_ContactsAllow_v0: String { return self._s[2921]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2922]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2915]!, self._r[2915]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[2916]! } - public var WebPreview_GettingLinkInfo: String { return self._s[2917]! } - public var Watch_UserInfo_Unmute: String { return self._s[2918]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2919]! } - public var AccessDenied_CameraRestricted: String { return self._s[2921]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[2924]! } + public var WebPreview_GettingLinkInfo: String { return self._s[2925]! } + public var Watch_UserInfo_Unmute: String { return self._s[2926]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2927]! } + public var AccessDenied_CameraRestricted: String { return self._s[2929]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2922]!, self._r[2922]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2930]!, self._r[2930]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[2924]! } - public var Settings_CopyUsername: String { return self._s[2925]! } - public var Contacts_SearchLabel: String { return self._s[2926]! } - public var Map_OpenInYandexNavigator: String { return self._s[2928]! } - public var PasscodeSettings_EncryptData: String { return self._s[2929]! } - public var Settings_Wallet: String { return self._s[2930]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2931]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[2932]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[2933]! } - public var DialogList_AdNoticeAlert: String { return self._s[2934]! } - public var Wallet_Month_GenMay: String { return self._s[2936]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2937]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2938]! } - public var Localization_LanguageCustom: String { return self._s[2939]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2940]! } - public var CallFeedback_Title: String { return self._s[2941]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2944]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2945]! } - public var Wallet_Intro_CreateErrorTitle: String { return self._s[2946]! } - public var Conversation_InfoGroup: String { return self._s[2947]! } - public var Compose_NewMessage: String { return self._s[2948]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2949]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2950]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2951]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2952]! } + public var ChatList_ReadAll: String { return self._s[2932]! } + public var Settings_CopyUsername: String { return self._s[2933]! } + public var Contacts_SearchLabel: String { return self._s[2934]! } + public var Map_OpenInYandexNavigator: String { return self._s[2936]! } + public var PasscodeSettings_EncryptData: String { return self._s[2937]! } + public var Settings_Wallet: String { return self._s[2938]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2939]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2940]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[2941]! } + public var DialogList_AdNoticeAlert: String { return self._s[2942]! } + public var Wallet_Month_GenMay: String { return self._s[2944]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2945]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2946]! } + public var Localization_LanguageCustom: String { return self._s[2947]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2948]! } + public var CallFeedback_Title: String { return self._s[2949]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2952]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2953]! } + public var Wallet_Intro_CreateErrorTitle: String { return self._s[2954]! } + public var Conversation_InfoGroup: String { return self._s[2955]! } + public var Compose_NewMessage: String { return self._s[2956]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2957]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2958]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2959]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2960]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2953]!, self._r[2953]!, [_0]) + return formatWithArgumentRanges(self._s[2961]!, self._r[2961]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2954]! } - public var Login_CancelSignUpConfirmation: String { return self._s[2955]! } - public var ChangePhoneNumberCode_Help: String { return self._s[2956]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[2957]! } - public var Channel_BlackList_Title: String { return self._s[2958]! } - public var UserInfo_PhoneCall: String { return self._s[2959]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2961]! } - public var Wallet_Month_ShortJanuary: String { return self._s[2962]! } - public var State_connecting: String { return self._s[2963]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2964]! } - public var Wallet_Month_GenMarch: String { return self._s[2965]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2966]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[2967]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2962]! } + public var Login_CancelSignUpConfirmation: String { return self._s[2963]! } + public var ChangePhoneNumberCode_Help: String { return self._s[2964]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[2965]! } + public var Channel_BlackList_Title: String { return self._s[2966]! } + public var UserInfo_PhoneCall: String { return self._s[2967]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2969]! } + public var Wallet_Month_ShortJanuary: String { return self._s[2970]! } + public var State_connecting: String { return self._s[2971]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2972]! } + public var Wallet_Month_GenMarch: String { return self._s[2973]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2974]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[2975]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2968]!, self._r[2968]!, [_0]) + return formatWithArgumentRanges(self._s[2976]!, self._r[2976]!, [_0]) } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2969]!, self._r[2969]!, [_0]) + return formatWithArgumentRanges(self._s[2977]!, self._r[2977]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[2970]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2971]! } - public var Passport_Identity_EditPassport: String { return self._s[2972]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2974]! } - public var Localization_EnglishLanguageName: String { return self._s[2975]! } - public var Share_AuthDescription: String { return self._s[2976]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2977]! } - public var Passport_Identity_Surname: String { return self._s[2978]! } - public var Compose_TokenListPlaceholder: String { return self._s[2979]! } - public var Wallet_AccessDenied_Camera: String { return self._s[2980]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[2981]! } - public var Settings_AboutEmpty: String { return self._s[2982]! } - public var Conversation_Unmute: String { return self._s[2983]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[2985]! } - public var Wallet_Sending_Text: String { return self._s[2986]! } + public var Notifications_GroupNotifications: String { return self._s[2978]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2979]! } + public var Passport_Identity_EditPassport: String { return self._s[2980]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2982]! } + public var Localization_EnglishLanguageName: String { return self._s[2983]! } + public var Share_AuthDescription: String { return self._s[2984]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2985]! } + public var Passport_Identity_Surname: String { return self._s[2986]! } + public var Compose_TokenListPlaceholder: String { return self._s[2987]! } + public var Wallet_AccessDenied_Camera: String { return self._s[2988]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[2989]! } + public var Settings_AboutEmpty: String { return self._s[2990]! } + public var Conversation_Unmute: String { return self._s[2991]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[2993]! } + public var Wallet_Sending_Text: String { return self._s[2994]! } public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2987]!, self._r[2987]!, [_1]) - } - public var Login_CodeSentCall: String { return self._s[2988]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2990]! } - public var ChatSettings_Appearance: String { return self._s[2991]! } - public var ClearCache_StorageUsage: String { return self._s[2992]! } - public var Appearance_PickAccentColor: String { return self._s[2993]! } - public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2994]!, self._r[2994]!, [_1, _2]) - } - public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2995]!, self._r[2995]!, [_1]) } - public var Notification_CallMissed: String { return self._s[2996]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[2997]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2998]! } - public var Wallet_Month_GenOctober: String { return self._s[3000]! } - public var ChatAdmins_AdminLabel: String { return self._s[3001]! } - public var KeyCommand_JumpToNextChat: String { return self._s[3002]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[3004]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3005]! } - public var Month_GenJune: String { return self._s[3006]! } - public var IntentsSettings_MainAccountInfo: String { return self._s[3007]! } - public var Watch_Location_Current: String { return self._s[3008]! } - public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3009]! } - public var Conversation_TitleMute: String { return self._s[3010]! } + public var Login_CodeSentCall: String { return self._s[2996]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2998]! } + public var ChatSettings_Appearance: String { return self._s[2999]! } + public var ClearCache_StorageUsage: String { return self._s[3000]! } + public var Appearance_PickAccentColor: String { return self._s[3001]! } + public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3002]!, self._r[3002]!, [_1, _2]) + } + public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3003]!, self._r[3003]!, [_1]) + } + public var Notification_CallMissed: String { return self._s[3004]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3005]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3006]! } + public var Wallet_Month_GenOctober: String { return self._s[3008]! } + public var ChatAdmins_AdminLabel: String { return self._s[3009]! } + public var KeyCommand_JumpToNextChat: String { return self._s[3010]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[3012]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3013]! } + public var Month_GenJune: String { return self._s[3014]! } + public var IntentsSettings_MainAccountInfo: String { return self._s[3015]! } + public var Watch_Location_Current: String { return self._s[3016]! } + public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3017]! } + public var Conversation_TitleMute: String { return self._s[3018]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3011]!, self._r[3011]!, [_1]) + return formatWithArgumentRanges(self._s[3019]!, self._r[3019]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[3012]! } + public var GroupInfo_DeleteAndExit: String { return self._s[3020]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3013]!, self._r[3013]!, [_0]) + return formatWithArgumentRanges(self._s[3021]!, self._r[3021]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[3014]! } - public var Chat_SlowmodeSendError: String { return self._s[3015]! } - public var MaskStickerSettings_Info: String { return self._s[3016]! } - public var EditTheme_Expand_TopInfo: String { return self._s[3017]! } + public var Call_ReportPlaceholder: String { return self._s[3022]! } + public var Chat_SlowmodeSendError: String { return self._s[3023]! } + public var MaskStickerSettings_Info: String { return self._s[3024]! } + public var EditTheme_Expand_TopInfo: String { return self._s[3025]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3018]!, self._r[3018]!, [_0]) + return formatWithArgumentRanges(self._s[3026]!, self._r[3026]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[3019]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3021]! } - public var Contacts_ShareTelegram: String { return self._s[3022]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3023]! } - public var Map_AddressOnMap: String { return self._s[3024]! } - public var Channel_ErrorAccessDenied: String { return self._s[3025]! } - public var UserInfo_ScamBotWarning: String { return self._s[3027]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[3028]! } - public var Call_ConnectionErrorTitle: String { return self._s[3029]! } - public var UserInfo_NotificationsEnable: String { return self._s[3030]! } - public var ArchivedChats_IntroText1: String { return self._s[3031]! } - public var Tour_Text4: String { return self._s[3034]! } - public var WallpaperSearch_Recent: String { return self._s[3035]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[3036]! } - public var Profile_MessageLifetime2s: String { return self._s[3038]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3039]! } - public var Notification_MessageLifetime2s: String { return self._s[3040]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[3027]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3029]! } + public var Contacts_ShareTelegram: String { return self._s[3030]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3031]! } + public var Map_AddressOnMap: String { return self._s[3032]! } + public var Channel_ErrorAccessDenied: String { return self._s[3033]! } + public var UserInfo_ScamBotWarning: String { return self._s[3035]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[3036]! } + public var Call_ConnectionErrorTitle: String { return self._s[3037]! } + public var UserInfo_NotificationsEnable: String { return self._s[3038]! } + public var ArchivedChats_IntroText1: String { return self._s[3039]! } + public var Tour_Text4: String { return self._s[3042]! } + public var WallpaperSearch_Recent: String { return self._s[3043]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[3044]! } + public var Profile_MessageLifetime2s: String { return self._s[3046]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3047]! } + public var Notification_MessageLifetime2s: String { return self._s[3048]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3041]!, self._r[3041]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3049]!, self._r[3049]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[3042]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3043]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3044]! } + public var Cache_ClearCache: String { return self._s[3050]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3051]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3052]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3048]!, self._r[3048]!, [_0]) + return formatWithArgumentRanges(self._s[3056]!, self._r[3056]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3050]!, self._r[3050]!, [_0]) + return formatWithArgumentRanges(self._s[3058]!, self._r[3058]!, [_0]) } - public var LocalGroup_Text: String { return self._s[3051]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3052]! } - public var SocksProxySetup_TypeSocks: String { return self._s[3053]! } - public var ChatList_UnarchiveAction: String { return self._s[3054]! } - public var AutoNightTheme_Title: String { return self._s[3055]! } - public var InstantPage_FeedbackButton: String { return self._s[3056]! } - public var Passport_FieldAddress: String { return self._s[3057]! } + public var LocalGroup_Text: String { return self._s[3059]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3060]! } + public var SocksProxySetup_TypeSocks: String { return self._s[3061]! } + public var ChatList_UnarchiveAction: String { return self._s[3062]! } + public var AutoNightTheme_Title: String { return self._s[3063]! } + public var InstantPage_FeedbackButton: String { return self._s[3064]! } + public var Passport_FieldAddress: String { return self._s[3065]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3058]!, self._r[3058]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3066]!, self._r[3066]!, [_1, _2]) } - public var Month_ShortMarch: String { return self._s[3059]! } + public var Month_ShortMarch: String { return self._s[3067]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3060]!, self._r[3060]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3068]!, self._r[3068]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3061]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3062]! } - public var Passport_FloodError: String { return self._s[3063]! } - public var SecretGif_Title: String { return self._s[3064]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3065]! } - public var ChatList_Context_UnhideArchive: String { return self._s[3066]! } - public var Passport_Language_th: String { return self._s[3068]! } - public var Passport_Address_Address: String { return self._s[3069]! } - public var Login_InvalidLastNameError: String { return self._s[3070]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3071]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[3072]! } - public var ChatList_Context_Archive: String { return self._s[3073]! } - public var SettingsSearch_FAQ: String { return self._s[3074]! } - public var ShareMenu_Send: String { return self._s[3075]! } - public var WallpaperSearch_ColorYellow: String { return self._s[3077]! } - public var Month_GenNovember: String { return self._s[3079]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3081]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3069]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3070]! } + public var Passport_FloodError: String { return self._s[3071]! } + public var SecretGif_Title: String { return self._s[3072]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3073]! } + public var ChatList_Context_UnhideArchive: String { return self._s[3074]! } + public var Passport_Language_th: String { return self._s[3076]! } + public var Passport_Address_Address: String { return self._s[3077]! } + public var Login_InvalidLastNameError: String { return self._s[3078]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3079]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[3080]! } + public var ChatList_Context_Archive: String { return self._s[3081]! } + public var SettingsSearch_FAQ: String { return self._s[3082]! } + public var ShareMenu_Send: String { return self._s[3083]! } + public var WallpaperSearch_ColorYellow: String { return self._s[3085]! } + public var Month_GenNovember: String { return self._s[3087]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3089]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3082]!, self._r[3082]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3090]!, self._r[3090]!, [_1, _2]) } - public var Conversation_SwipeToReplyHintText: String { return self._s[3083]! } - public var Checkout_Email: String { return self._s[3084]! } - public var NotificationsSound_Tritone: String { return self._s[3085]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[3087]! } - public var Wallet_ContextMenuCopy: String { return self._s[3089]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3091]! } + public var Checkout_Email: String { return self._s[3092]! } + public var NotificationsSound_Tritone: String { return self._s[3093]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[3095]! } + public var Wallet_ContextMenuCopy: String { return self._s[3097]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3091]!, self._r[3091]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3099]!, self._r[3099]!, [_1, _2, _3]) } - public var Appearance_TextSize_Automatic: String { return self._s[3092]! } + public var Appearance_TextSize_Automatic: String { return self._s[3100]! } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3093]!, self._r[3093]!, [_1]) + return formatWithArgumentRanges(self._s[3101]!, self._r[3101]!, [_1]) } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3094]!, self._r[3094]!, [_0]) + return formatWithArgumentRanges(self._s[3102]!, self._r[3102]!, [_0]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[3095]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[3103]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3096]!, self._r[3096]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3104]!, self._r[3104]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[3097]! } - public var Notification_Exceptions_Add: String { return self._s[3098]! } - public var DialogList_You: String { return self._s[3099]! } - public var MediaPicker_Send: String { return self._s[3102]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3103]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3104]! } - public var Call_AudioRouteSpeaker: String { return self._s[3105]! } - public var Watch_UserInfo_Title: String { return self._s[3106]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[3107]! } - public var Appearance_AccentColor: String { return self._s[3109]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3105]! } + public var Notification_Exceptions_Add: String { return self._s[3106]! } + public var DialogList_You: String { return self._s[3107]! } + public var MediaPicker_Send: String { return self._s[3110]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3111]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3112]! } + public var Call_AudioRouteSpeaker: String { return self._s[3113]! } + public var Watch_UserInfo_Title: String { return self._s[3114]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[3115]! } + public var Appearance_AccentColor: String { return self._s[3117]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3110]!, self._r[3110]!, [_0]) + return formatWithArgumentRanges(self._s[3118]!, self._r[3118]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3111]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3119]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3112]!, self._r[3112]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3120]!, self._r[3120]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[3113]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3114]! } - public var Notification_CallOutgoing: String { return self._s[3115]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3116]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3117]! } - public var Call_RecordingDisabledMessage: String { return self._s[3118]! } - public var Message_Game: String { return self._s[3119]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[3120]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3121]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3122]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3123]! } - public var Date_DialogDateFormat: String { return self._s[3125]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3126]! } - public var Notifications_InAppNotifications: String { return self._s[3127]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[3121]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3122]! } + public var Notification_CallOutgoing: String { return self._s[3123]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3124]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3125]! } + public var Call_RecordingDisabledMessage: String { return self._s[3126]! } + public var Message_Game: String { return self._s[3127]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[3128]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3129]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3130]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3131]! } + public var Date_DialogDateFormat: String { return self._s[3133]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3134]! } + public var Notifications_InAppNotifications: String { return self._s[3135]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3128]!, self._r[3128]!, [_0]) + return formatWithArgumentRanges(self._s[3136]!, self._r[3136]!, [_0]) } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3129]!, self._r[3129]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3137]!, self._r[3137]!, [_1, _2]) } - public var NewContact_Title: String { return self._s[3130]! } + public var NewContact_Title: String { return self._s[3138]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3131]!, self._r[3131]!, [_0]) + return formatWithArgumentRanges(self._s[3139]!, self._r[3139]!, [_0]) } - public var Conversation_ViewContactDetails: String { return self._s[3132]! } + public var Conversation_ViewContactDetails: String { return self._s[3140]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3134]!, self._r[3134]!, [_1]) + return formatWithArgumentRanges(self._s[3142]!, self._r[3142]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3135]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3136]! } - public var PrivacySettings_Title: String { return self._s[3137]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3140]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[3141]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[3142]! } - public var Contacts_PhoneNumber: String { return self._s[3143]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3145]! } - public var Map_ShowPlaces: String { return self._s[3146]! } - public var ChatAdmins_Title: String { return self._s[3147]! } - public var InstantPage_Reference: String { return self._s[3149]! } - public var Wallet_Info_Updating: String { return self._s[3150]! } - public var ReportGroupLocation_Text: String { return self._s[3151]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3143]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3144]! } + public var PrivacySettings_Title: String { return self._s[3145]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3148]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[3149]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[3150]! } + public var Contacts_PhoneNumber: String { return self._s[3151]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3153]! } + public var Map_ShowPlaces: String { return self._s[3154]! } + public var ChatAdmins_Title: String { return self._s[3155]! } + public var InstantPage_Reference: String { return self._s[3157]! } + public var Wallet_Info_Updating: String { return self._s[3158]! } + public var ReportGroupLocation_Text: String { return self._s[3159]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3152]!, self._r[3152]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3160]!, self._r[3160]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[3153]! } - public var Watch_UserInfo_Block: String { return self._s[3154]! } - public var ChatSettings_Stickers: String { return self._s[3155]! } - public var ChatSettings_DownloadInBackground: String { return self._s[3156]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3157]! } + public var Camera_FlashOff: String { return self._s[3161]! } + public var Watch_UserInfo_Block: String { return self._s[3162]! } + public var ChatSettings_Stickers: String { return self._s[3163]! } + public var ChatSettings_DownloadInBackground: String { return self._s[3164]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3165]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3158]!, self._r[3158]!, [_0]) - } - public var Settings_ViewPhoto: String { return self._s[3159]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3160]! } - public var AutoDownloadSettings_Cellular: String { return self._s[3161]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[3162]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3163]! } - public var VoiceOver_MessageContextShare: String { return self._s[3164]! } - public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3166]!, self._r[3166]!, [_0]) } - public var Privacy_DeleteDrafts: String { return self._s[3167]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3168]! } - public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3169]!, self._r[3169]!, [_0]) + public var Settings_ViewPhoto: String { return self._s[3167]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3168]! } + public var AutoDownloadSettings_Cellular: String { return self._s[3169]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[3170]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3171]! } + public var VoiceOver_MessageContextShare: String { return self._s[3172]! } + public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3174]!, self._r[3174]!, [_0]) } - public var DialogList_SavedMessagesHelp: String { return self._s[3170]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3171]! } - public var DialogList_SavedMessages: String { return self._s[3172]! } - public var GroupInfo_UpgradeButton: String { return self._s[3173]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3175]! } - public var DialogList_Pin: String { return self._s[3176]! } + public var Privacy_DeleteDrafts: String { return self._s[3175]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3176]! } + public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3177]!, self._r[3177]!, [_0]) + } + public var DialogList_SavedMessagesHelp: String { return self._s[3178]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3179]! } + public var DialogList_SavedMessages: String { return self._s[3180]! } + public var GroupInfo_UpgradeButton: String { return self._s[3181]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3183]! } + public var DialogList_Pin: String { return self._s[3184]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3177]!, self._r[3177]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_0, _1]) } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3178]!, self._r[3178]!, [_0]) + return formatWithArgumentRanges(self._s[3186]!, self._r[3186]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3179]! } - public var UserInfo_NotificationsDisable: String { return self._s[3180]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[3181]! } - public var Paint_Outlined: String { return self._s[3182]! } - public var Activity_PlayingGame: String { return self._s[3183]! } - public var SearchImages_NoImagesFound: String { return self._s[3184]! } - public var SocksProxySetup_ProxyType: String { return self._s[3185]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3187]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3188]! } - public var Settings_AppLanguage: String { return self._s[3189]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3190]! } - public var Common_ChoosePhoto: String { return self._s[3191]! } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3192]! } - public var CallFeedback_ReasonEcho: String { return self._s[3193]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3187]! } + public var UserInfo_NotificationsDisable: String { return self._s[3188]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[3189]! } + public var Paint_Outlined: String { return self._s[3190]! } + public var Activity_PlayingGame: String { return self._s[3191]! } + public var SearchImages_NoImagesFound: String { return self._s[3192]! } + public var SocksProxySetup_ProxyType: String { return self._s[3193]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3195]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3196]! } + public var Settings_AppLanguage: String { return self._s[3197]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3198]! } + public var Common_ChoosePhoto: String { return self._s[3199]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3200]! } + public var CallFeedback_ReasonEcho: String { return self._s[3201]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3194]!, self._r[3194]!, [_1]) + return formatWithArgumentRanges(self._s[3202]!, self._r[3202]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3195]! } - public var Activity_UploadingVideo: String { return self._s[3196]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3197]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3198]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3199]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3200]! } - public var PUSH_SENDER_YOU: String { return self._s[3201]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3202]! } - public var Checkout_PayWithTouchId: String { return self._s[3203]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3204]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3203]! } + public var PollResults_Collapse: String { return self._s[3204]! } + public var Activity_UploadingVideo: String { return self._s[3205]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3206]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3207]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3208]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3209]! } + public var PUSH_SENDER_YOU: String { return self._s[3210]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3211]! } + public var Checkout_PayWithTouchId: String { return self._s[3212]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3213]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3206]!, self._r[3206]!, [_1]) + return formatWithArgumentRanges(self._s[3215]!, self._r[3215]!, [_1]) } - public var Notifications_ExceptionsNone: String { return self._s[3207]! } + public var Notifications_ExceptionsNone: String { return self._s[3216]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3208]!, self._r[3208]!, [_0]) + return formatWithArgumentRanges(self._s[3217]!, self._r[3217]!, [_0]) } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3209]!, self._r[3209]!, [_1]) + return formatWithArgumentRanges(self._s[3218]!, self._r[3218]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3211]! } - public var Passport_Address_Region: String { return self._s[3214]! } - public var ChatList_DeleteChat: String { return self._s[3215]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3216]! } - public var PhotoEditor_TiltShift: String { return self._s[3217]! } - public var Settings_FAQ_URL: String { return self._s[3218]! } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3219]! } - public var Passport_Language_sl: String { return self._s[3220]! } - public var Settings_PrivacySettings: String { return self._s[3222]! } - public var SharedMedia_TitleLink: String { return self._s[3223]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3224]! } - public var Settings_SetProfilePhoto: String { return self._s[3225]! } - public var Channel_About_Help: String { return self._s[3226]! } - public var Contacts_PermissionsEnable: String { return self._s[3227]! } - public var Wallet_Sending_Title: String { return self._s[3228]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3229]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3230]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3232]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3233]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3234]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3235]! } - public var OldChannels_Title: String { return self._s[3236]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3237]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3239]! } - public var Map_OpenInYandexMaps: String { return self._s[3241]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3242]! } - public var VoiceOver_MessageContextReply: String { return self._s[3243]! } - public var PhotoEditor_SaturationTool: String { return self._s[3245]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3220]! } + public var Passport_Address_Region: String { return self._s[3223]! } + public var ChatList_DeleteChat: String { return self._s[3224]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3225]! } + public var PhotoEditor_TiltShift: String { return self._s[3226]! } + public var Settings_FAQ_URL: String { return self._s[3227]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3228]! } + public var Passport_Language_sl: String { return self._s[3229]! } + public var Settings_PrivacySettings: String { return self._s[3231]! } + public var SharedMedia_TitleLink: String { return self._s[3232]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3233]! } + public var Settings_SetProfilePhoto: String { return self._s[3234]! } + public var Channel_About_Help: String { return self._s[3235]! } + public var Contacts_PermissionsEnable: String { return self._s[3236]! } + public var Wallet_Sending_Title: String { return self._s[3237]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3238]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3239]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3241]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3242]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3243]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3244]! } + public var OldChannels_Title: String { return self._s[3245]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3246]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3248]! } + public var Map_OpenInYandexMaps: String { return self._s[3250]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3251]! } + public var VoiceOver_MessageContextReply: String { return self._s[3252]! } + public var PhotoEditor_SaturationTool: String { return self._s[3254]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3246]!, self._r[3246]!, [_1, _2]) - } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3247]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3248]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3249]! } - public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3250]!, self._r[3250]!, [_1, "\(_2)"]) - } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3251]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3253]! } - public var SettingsSearch_Synonyms_Wallet: String { return self._s[3254]! } - public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3255]!, self._r[3255]!, [_1, _2]) } - public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3256]!, self._r[3256]!, [_1, _2, _3]) + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3256]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3257]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3258]! } + public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3259]!, self._r[3259]!, [_1, "\(_2)"]) } - public var WallpaperPreview_PatternTitle: String { return self._s[3257]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[3258]! } - public var Passport_PassportInformation: String { return self._s[3261]! } - public var Theme_Unsupported: String { return self._s[3262]! } - public var WatchRemote_AlertTitle: String { return self._s[3263]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3264]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3266]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3260]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3262]! } + public var SettingsSearch_Synonyms_Wallet: String { return self._s[3263]! } + public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3264]!, self._r[3264]!, [_1, _2]) + } + public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3265]!, self._r[3265]!, [_1, _2, _3]) + } + public var WallpaperPreview_PatternTitle: String { return self._s[3266]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3267]! } + public var Passport_PassportInformation: String { return self._s[3270]! } + public var Theme_Unsupported: String { return self._s[3271]! } + public var WatchRemote_AlertTitle: String { return self._s[3272]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3273]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3275]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3267]!, self._r[3267]!, [_0]) + return formatWithArgumentRanges(self._s[3276]!, self._r[3276]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3268]!, self._r[3268]!, [_1]) + return formatWithArgumentRanges(self._s[3277]!, self._r[3277]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3269]! } - public var Wallet_Navigation_Done: String { return self._s[3271]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3272]! } - public var AccessDenied_CameraDisabled: String { return self._s[3273]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3278]! } + public var Wallet_Navigation_Done: String { return self._s[3280]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3281]! } + public var AccessDenied_CameraDisabled: String { return self._s[3282]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_0]) + return formatWithArgumentRanges(self._s[3283]!, self._r[3283]!, [_0]) } - public var ClearCache_Forever: String { return self._s[3275]! } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3276]! } - public var PhotoEditor_ContrastTool: String { return self._s[3279]! } + public var ClearCache_Forever: String { return self._s[3284]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3285]! } + public var CreatePoll_Quiz: String { return self._s[3286]! } + public var PhotoEditor_ContrastTool: String { return self._s[3289]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3280]!, self._r[3280]!, [_1]) + return formatWithArgumentRanges(self._s[3290]!, self._r[3290]!, [_1]) } - public var DialogList_Draft: String { return self._s[3281]! } - public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3282]! } - public var Privacy_TopPeersDelete: String { return self._s[3284]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3285]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3286]! } - public var WebSearch_RecentSectionClear: String { return self._s[3287]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3288]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3290]! } - public var Common_Done: String { return self._s[3292]! } - public var Shortcut_SwitchAccount: String { return self._s[3293]! } - public var AuthSessions_EmptyText: String { return self._s[3294]! } - public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3295]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3296]! } - public var Tour_Title5: String { return self._s[3297]! } - public var Wallet_Settings_Title: String { return self._s[3298]! } + public var DialogList_Draft: String { return self._s[3291]! } + public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3292]! } + public var Privacy_TopPeersDelete: String { return self._s[3294]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3295]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3296]! } + public var WebSearch_RecentSectionClear: String { return self._s[3297]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3298]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3300]! } + public var Common_Done: String { return self._s[3302]! } + public var Shortcut_SwitchAccount: String { return self._s[3303]! } + public var AuthSessions_EmptyText: String { return self._s[3304]! } + public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3305]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3306]! } + public var Tour_Title5: String { return self._s[3307]! } + public var Wallet_Settings_Title: String { return self._s[3308]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3299]!, self._r[3299]!, [_0]) + return formatWithArgumentRanges(self._s[3309]!, self._r[3309]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3300]! } - public var Conversation_LinkDialogSave: String { return self._s[3301]! } - public var GroupInfo_ActionRestrict: String { return self._s[3302]! } - public var Checkout_Title: String { return self._s[3303]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3305]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3307]! } - public var Notification_RenamedGroup: String { return self._s[3308]! } - public var PeopleNearby_Groups: String { return self._s[3309]! } - public var Checkout_PayWithFaceId: String { return self._s[3310]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3311]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3313]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3314]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3315]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3310]! } + public var Conversation_LinkDialogSave: String { return self._s[3311]! } + public var GroupInfo_ActionRestrict: String { return self._s[3312]! } + public var Checkout_Title: String { return self._s[3313]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3315]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3317]! } + public var Notification_RenamedGroup: String { return self._s[3318]! } + public var PeopleNearby_Groups: String { return self._s[3319]! } + public var Checkout_PayWithFaceId: String { return self._s[3320]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3321]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3323]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3324]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3325]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3316]!, self._r[3316]!, [_0]) + return formatWithArgumentRanges(self._s[3326]!, self._r[3326]!, [_0]) } - public var Profile_AddToExisting: String { return self._s[3318]! } + public var Profile_AddToExisting: String { return self._s[3328]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3319]!, self._r[3319]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3329]!, self._r[3329]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3321]! } - public var Permissions_PrivacyPolicy: String { return self._s[3322]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3323]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3324]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3326]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3328]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3329]! } + public var Cache_Files: String { return self._s[3331]! } + public var Permissions_PrivacyPolicy: String { return self._s[3332]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3333]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3334]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3336]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3338]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3339]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3330]!, self._r[3330]!, [_0]) + return formatWithArgumentRanges(self._s[3340]!, self._r[3340]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3331]! } - public var VoiceOver_AttachMedia: String { return self._s[3334]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3335]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3341]! } + public var VoiceOver_AttachMedia: String { return self._s[3344]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3345]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3336]!, self._r[3336]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3346]!, self._r[3346]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3337]! } - public var Conversation_SetReminder_Title: String { return self._s[3338]! } - public var Passport_FieldAddressHelp: String { return self._s[3339]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3340]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3341]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3347]! } + public var Conversation_SetReminder_Title: String { return self._s[3348]! } + public var Passport_FieldAddressHelp: String { return self._s[3349]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3350]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3351]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3342]!, self._r[3342]!, [_0]) + return formatWithArgumentRanges(self._s[3352]!, self._r[3352]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3343]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3344]! } - public var Login_UnknownError: String { return self._s[3345]! } - public var Group_UpgradeNoticeText2: String { return self._s[3348]! } - public var Watch_Compose_AddContact: String { return self._s[3349]! } - public var ClearCache_StorageServiceFiles: String { return self._s[3350]! } - public var Web_Error: String { return self._s[3351]! } - public var Gif_Search: String { return self._s[3352]! } - public var Profile_MessageLifetime1h: String { return self._s[3353]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3354]! } - public var Channel_Username_CheckingUsername: String { return self._s[3355]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3356]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3357]! } - public var Channel_AboutItem: String { return self._s[3358]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3360]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3361]! } - public var GroupInfo_SharedMedia: String { return self._s[3362]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3353]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3354]! } + public var Login_UnknownError: String { return self._s[3355]! } + public var Group_UpgradeNoticeText2: String { return self._s[3358]! } + public var Watch_Compose_AddContact: String { return self._s[3359]! } + public var ClearCache_StorageServiceFiles: String { return self._s[3360]! } + public var Web_Error: String { return self._s[3361]! } + public var Gif_Search: String { return self._s[3362]! } + public var Profile_MessageLifetime1h: String { return self._s[3363]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3364]! } + public var Channel_Username_CheckingUsername: String { return self._s[3365]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3366]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3367]! } + public var Channel_AboutItem: String { return self._s[3368]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3370]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3371]! } + public var GroupInfo_SharedMedia: String { return self._s[3372]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3363]!, self._r[3363]!, [_1]) + return formatWithArgumentRanges(self._s[3373]!, self._r[3373]!, [_1]) } - public var Call_PhoneCallInProgressMessage: String { return self._s[3364]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3374]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3365]!, self._r[3365]!, [_1]) + return formatWithArgumentRanges(self._s[3375]!, self._r[3375]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3366]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3367]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3368]! } - public var CreatePoll_AddOption: String { return self._s[3369]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3370]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3371]! } - public var Channel_Management_AddModerator: String { return self._s[3372]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3373]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3374]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3375]! } - public var Theme_Colors_Background: String { return self._s[3376]! } - public var NotificationsSound_Hello: String { return self._s[3378]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3379]! } - public var Channel_Stickers_Placeholder: String { return self._s[3381]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3376]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3377]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3378]! } + public var CreatePoll_AddOption: String { return self._s[3379]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3380]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3381]! } + public var Channel_Management_AddModerator: String { return self._s[3382]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3383]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3384]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3385]! } + public var Theme_Colors_Background: String { return self._s[3386]! } + public var NotificationsSound_Hello: String { return self._s[3388]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3389]! } + public var Channel_Stickers_Placeholder: String { return self._s[3391]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3382]!, self._r[3382]!, [_0]) + return formatWithArgumentRanges(self._s[3392]!, self._r[3392]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3383]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3384]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3385]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3386]! } - public var AutoDownloadSettings_Channels: String { return self._s[3387]! } - public var Passport_Language_mn: String { return self._s[3388]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3391]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3392]! } - public var Passport_Language_ja: String { return self._s[3394]! } - public var Settings_About_Title: String { return self._s[3395]! } - public var Settings_NotificationsAndSounds: String { return self._s[3396]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3397]! } - public var Settings_BlockedUsers: String { return self._s[3398]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3393]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3394]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3395]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3396]! } + public var AutoDownloadSettings_Channels: String { return self._s[3397]! } + public var Passport_Language_mn: String { return self._s[3398]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3401]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3402]! } + public var Passport_Language_ja: String { return self._s[3404]! } + public var Settings_About_Title: String { return self._s[3405]! } + public var Settings_NotificationsAndSounds: String { return self._s[3406]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3407]! } + public var Settings_BlockedUsers: String { return self._s[3408]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3399]!, self._r[3399]!, [_0]) + return formatWithArgumentRanges(self._s[3409]!, self._r[3409]!, [_0]) } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3400]! } - public var Wallet_Weekday_Today: String { return self._s[3401]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3402]! } - public var Widget_ApplicationLocked: String { return self._s[3403]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3404]! } - public var Channel_Username_Title: String { return self._s[3405]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3410]! } + public var Wallet_Weekday_Today: String { return self._s[3411]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3412]! } + public var Widget_ApplicationLocked: String { return self._s[3413]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3414]! } + public var Channel_Username_Title: String { return self._s[3415]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3406]!, self._r[3406]!, [_0]) + return formatWithArgumentRanges(self._s[3416]!, self._r[3416]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3408]! } - public var AppleWatch_Title: String { return self._s[3409]! } - public var Activity_RecordingVideoMessage: String { return self._s[3410]! } + public var AttachmentMenu_File: String { return self._s[3418]! } + public var AppleWatch_Title: String { return self._s[3419]! } + public var Activity_RecordingVideoMessage: String { return self._s[3420]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3411]!, self._r[3411]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3421]!, self._r[3421]!, [_1, _2]) } - public var Theme_Colors_Messages: String { return self._s[3412]! } - public var Weekday_Saturday: String { return self._s[3413]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3414]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3415]! } - public var Common_Next: String { return self._s[3417]! } - public var Channel_Stickers_YourStickers: String { return self._s[3419]! } - public var Message_Theme: String { return self._s[3420]! } - public var Call_AudioRouteHeadphones: String { return self._s[3421]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3423]! } - public var Watch_Contacts_NoResults: String { return self._s[3425]! } - public var PhotoEditor_TintTool: String { return self._s[3428]! } - public var LoginPassword_ResetAccount: String { return self._s[3430]! } - public var Settings_SavedMessages: String { return self._s[3431]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3432]! } - public var Bot_GenericSupportStatus: String { return self._s[3433]! } - public var StickerPack_Add: String { return self._s[3434]! } - public var Checkout_TotalAmount: String { return self._s[3435]! } - public var Your_cards_number_is_invalid: String { return self._s[3436]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3437]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3438]! } + public var Theme_Colors_Messages: String { return self._s[3422]! } + public var Weekday_Saturday: String { return self._s[3423]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3424]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3425]! } + public var Common_Next: String { return self._s[3427]! } + public var Channel_Stickers_YourStickers: String { return self._s[3429]! } + public var Message_Theme: String { return self._s[3430]! } + public var Call_AudioRouteHeadphones: String { return self._s[3431]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3433]! } + public var Watch_Contacts_NoResults: String { return self._s[3435]! } + public var PhotoEditor_TintTool: String { return self._s[3438]! } + public var LoginPassword_ResetAccount: String { return self._s[3440]! } + public var Settings_SavedMessages: String { return self._s[3441]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3442]! } + public var Bot_GenericSupportStatus: String { return self._s[3443]! } + public var StickerPack_Add: String { return self._s[3444]! } + public var Checkout_TotalAmount: String { return self._s[3445]! } + public var Your_cards_number_is_invalid: String { return self._s[3446]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3447]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3448]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3439]!, self._r[3439]!, [_0]) + return formatWithArgumentRanges(self._s[3449]!, self._r[3449]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3440]!, self._r[3440]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3450]!, self._r[3450]!, [_1, _2]) } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3441]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3451]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3443]!, self._r[3443]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3453]!, self._r[3453]!, [_1, _2]) } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3444]!, self._r[3444]!, [_0]) + return formatWithArgumentRanges(self._s[3454]!, self._r[3454]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3445]! } - public var StickerPack_Share: String { return self._s[3446]! } - public var Passport_DeleteAddress: String { return self._s[3447]! } - public var Settings_Passport: String { return self._s[3448]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3449]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3450]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3451]! } - public var Contacts_PermissionsText: String { return self._s[3452]! } - public var Group_Setup_HistoryVisible: String { return self._s[3453]! } - public var Wallet_Month_ShortDecember: String { return self._s[3455]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3456]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3457]! } - public var SocksProxySetup_Title: String { return self._s[3458]! } - public var Notification_Mute1h: String { return self._s[3459]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3455]! } + public var StickerPack_Share: String { return self._s[3456]! } + public var Passport_DeleteAddress: String { return self._s[3457]! } + public var Settings_Passport: String { return self._s[3458]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3459]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3460]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3461]! } + public var Contacts_PermissionsText: String { return self._s[3462]! } + public var Group_Setup_HistoryVisible: String { return self._s[3463]! } + public var Wallet_Month_ShortDecember: String { return self._s[3465]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3466]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3467]! } + public var SocksProxySetup_Title: String { return self._s[3468]! } + public var Notification_Mute1h: String { return self._s[3469]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3460]!, self._r[3460]!, [_0]) + return formatWithArgumentRanges(self._s[3470]!, self._r[3470]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3461]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3471]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3462]!, self._r[3462]!, [_1]) + return formatWithArgumentRanges(self._s[3472]!, self._r[3472]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3463]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3466]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3468]! } - public var DialogList_NoMessagesText: String { return self._s[3469]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3470]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3471]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3473]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3474]! } - public var Common_TakePhotoOrVideo: String { return self._s[3475]! } - public var Wallet_Words_Text: String { return self._s[3476]! } - public var Call_StatusBusy: String { return self._s[3477]! } - public var Conversation_PinnedMessage: String { return self._s[3478]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3479]! } - public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3480]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3481]! } - public var Undo_ChatCleared: String { return self._s[3482]! } - public var AppleWatch_ReplyPresets: String { return self._s[3483]! } - public var Passport_DiscardMessageDescription: String { return self._s[3485]! } - public var Login_NetworkError: String { return self._s[3486]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3473]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3476]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3478]! } + public var DialogList_NoMessagesText: String { return self._s[3479]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3480]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3481]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3483]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3484]! } + public var Common_TakePhotoOrVideo: String { return self._s[3485]! } + public var Wallet_Words_Text: String { return self._s[3486]! } + public var Call_StatusBusy: String { return self._s[3487]! } + public var Conversation_PinnedMessage: String { return self._s[3488]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3489]! } + public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3490]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3491]! } + public var Undo_ChatCleared: String { return self._s[3492]! } + public var AppleWatch_ReplyPresets: String { return self._s[3493]! } + public var Passport_DiscardMessageDescription: String { return self._s[3495]! } + public var Login_NetworkError: String { return self._s[3496]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3487]!, self._r[3487]!, [_0]) + return formatWithArgumentRanges(self._s[3497]!, self._r[3497]!, [_0]) } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3488]!, self._r[3488]!, [_0]) + return formatWithArgumentRanges(self._s[3498]!, self._r[3498]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3489]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3491]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3492]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3499]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3501]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3502]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3494]!, self._r[3494]!, [_0]) + return formatWithArgumentRanges(self._s[3504]!, self._r[3504]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3495]! } - public var VoiceOver_Chat_Music: String { return self._s[3496]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3497]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3499]! } - public var ConversationMedia_Title: String { return self._s[3500]! } - public var EncryptionKey_Title: String { return self._s[3502]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3503]! } - public var Notification_Exceptions_AddException: String { return self._s[3504]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3505]! } - public var Profile_MessageLifetime1m: String { return self._s[3506]! } + public var Call_ConnectionErrorMessage: String { return self._s[3505]! } + public var VoiceOver_Chat_Music: String { return self._s[3506]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3507]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3509]! } + public var ConversationMedia_Title: String { return self._s[3510]! } + public var EncryptionKey_Title: String { return self._s[3512]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3513]! } + public var Notification_Exceptions_AddException: String { return self._s[3514]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3515]! } + public var Profile_MessageLifetime1m: String { return self._s[3516]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3507]!, self._r[3507]!, [_1]) + return formatWithArgumentRanges(self._s[3517]!, self._r[3517]!, [_1]) } - public var Month_GenMay: String { return self._s[3508]! } + public var Month_GenMay: String { return self._s[3518]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3509]!, self._r[3509]!, [_0]) + return formatWithArgumentRanges(self._s[3519]!, self._r[3519]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3510]! } - public var Wallet_Send_AddressInfo: String { return self._s[3511]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3512]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3513]! } + public var PeopleNearby_Users: String { return self._s[3520]! } + public var Wallet_Send_AddressInfo: String { return self._s[3521]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3522]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3523]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3515]!, self._r[3515]!, [_0]) + return formatWithArgumentRanges(self._s[3525]!, self._r[3525]!, [_0]) } - public var Conversation_EmptyPlaceholder: String { return self._s[3516]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3517]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3518]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3519]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3520]! } - public var Channel_JoinChannel: String { return self._s[3522]! } - public var Appearance_Animations: String { return self._s[3525]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3526]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3527]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3528]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3529]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3530]! } + public var Channel_JoinChannel: String { return self._s[3532]! } + public var Appearance_Animations: String { return self._s[3535]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3526]!, self._r[3526]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3536]!, self._r[3536]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3528]! } - public var Appearance_ShareTheme: String { return self._s[3529]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3530]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3532]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3533]! } - public var Passport_Address_Street: String { return self._s[3534]! } - public var Conversation_AddContact: String { return self._s[3535]! } - public var Login_PhonePlaceholder: String { return self._s[3536]! } - public var Channel_Members_InviteLink: String { return self._s[3538]! } - public var Bot_Stop: String { return self._s[3539]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3541]! } - public var Notification_PassportValueAddress: String { return self._s[3542]! } - public var Month_ShortJuly: String { return self._s[3543]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3544]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3545]! } - public var Passport_Identity_ReverseSide: String { return self._s[3546]! } - public var Watch_Stickers_Recents: String { return self._s[3549]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3551]! } - public var Map_SendThisLocation: String { return self._s[3552]! } + public var Stickers_GroupStickers: String { return self._s[3538]! } + public var Appearance_ShareTheme: String { return self._s[3539]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3540]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3542]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3543]! } + public var Passport_Address_Street: String { return self._s[3544]! } + public var Conversation_AddContact: String { return self._s[3545]! } + public var Login_PhonePlaceholder: String { return self._s[3546]! } + public var Channel_Members_InviteLink: String { return self._s[3548]! } + public var Bot_Stop: String { return self._s[3549]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3551]! } + public var Notification_PassportValueAddress: String { return self._s[3552]! } + public var Month_ShortJuly: String { return self._s[3553]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3554]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3555]! } + public var Passport_Identity_ReverseSide: String { return self._s[3556]! } + public var Watch_Stickers_Recents: String { return self._s[3559]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3561]! } + public var Map_SendThisLocation: String { return self._s[3562]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3553]!, self._r[3553]!, [_0]) + return formatWithArgumentRanges(self._s[3563]!, self._r[3563]!, [_0]) } public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3554]!, self._r[3554]!, [_0]) + return formatWithArgumentRanges(self._s[3564]!, self._r[3564]!, [_0]) } - public var ConvertToSupergroup_Note: String { return self._s[3555]! } - public var Wallet_Intro_NotNow: String { return self._s[3556]! } + public var ConvertToSupergroup_Note: String { return self._s[3565]! } + public var Wallet_Intro_NotNow: String { return self._s[3566]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3557]!, self._r[3557]!, [_0]) + return formatWithArgumentRanges(self._s[3567]!, self._r[3567]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3558]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3568]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3559]!, self._r[3559]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3569]!, self._r[3569]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3561]! } - public var Wallpaper_SearchShort: String { return self._s[3562]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3564]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3565]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3566]! } + public var Login_CallRequestState3: String { return self._s[3571]! } + public var Wallpaper_SearchShort: String { return self._s[3572]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3574]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3575]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3576]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3567]!, self._r[3567]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3577]!, self._r[3577]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3568]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3570]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3573]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3578]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3580]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3583]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3574]!, self._r[3574]!, [_0]) + return formatWithArgumentRanges(self._s[3584]!, self._r[3584]!, [_0]) } - public var Passport_CorrectErrors: String { return self._s[3575]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3576]! } + public var Passport_CorrectErrors: String { return self._s[3585]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3586]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3577]!, self._r[3577]!, [_0]) + return formatWithArgumentRanges(self._s[3587]!, self._r[3587]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3578]! } - public var Channel_DiscussionGroup: String { return self._s[3579]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3580]! } + public var Map_SendMyCurrentLocation: String { return self._s[3588]! } + public var Channel_DiscussionGroup: String { return self._s[3589]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3590]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3581]!, self._r[3581]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3591]!, self._r[3591]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3582]! } - public var Permissions_NotificationsText_v0: String { return self._s[3583]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3584]! } - public var Appearance_AppIcon: String { return self._s[3585]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3586]! } - public var LoginPassword_FloodError: String { return self._s[3587]! } - public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3589]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3590]! } + public var SharedMedia_SearchNoResults: String { return self._s[3592]! } + public var Permissions_NotificationsText_v0: String { return self._s[3593]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3594]! } + public var Appearance_AppIcon: String { return self._s[3595]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3596]! } + public var LoginPassword_FloodError: String { return self._s[3597]! } + public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3599]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3600]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3591]!, self._r[3591]!, [_0]) + return formatWithArgumentRanges(self._s[3601]!, self._r[3601]!, [_0]) } - public var Passport_Language_bn: String { return self._s[3592]! } + public var Passport_Language_bn: String { return self._s[3602]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3593]!, self._r[3593]!, [_0]) + return formatWithArgumentRanges(self._s[3603]!, self._r[3603]!, [_0]) } - public var ChatList_Context_Pin: String { return self._s[3594]! } + public var ChatList_Context_Pin: String { return self._s[3604]! } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3595]!, self._r[3595]!, [_0]) + return formatWithArgumentRanges(self._s[3605]!, self._r[3605]!, [_0]) } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3596]!, self._r[3596]!, [_0]) + return formatWithArgumentRanges(self._s[3606]!, self._r[3606]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3597]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3601]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3603]! } - public var Wallet_Month_GenDecember: String { return self._s[3604]! } - public var Contacts_PermissionsAllow: String { return self._s[3605]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3606]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3607]! } - public var WallpaperPreview_Pattern: String { return self._s[3608]! } - public var Paint_Duplicate: String { return self._s[3609]! } - public var Passport_Address_Country: String { return self._s[3610]! } - public var Notification_RenamedChannel: String { return self._s[3612]! } - public var ChatList_Context_Unmute: String { return self._s[3613]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3614]! } - public var Group_MessagePhotoUpdated: String { return self._s[3615]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3616]! } - public var Conversation_ContextMenuBan: String { return self._s[3617]! } - public var TwoStepAuth_EmailSent: String { return self._s[3618]! } - public var MessagePoll_NoVotes: String { return self._s[3619]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3620]! } - public var Passport_Language_is: String { return self._s[3621]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3623]! } - public var Tour_Text5: String { return self._s[3624]! } + public var Wallet_Navigation_Close: String { return self._s[3607]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3611]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3613]! } + public var Wallet_Month_GenDecember: String { return self._s[3614]! } + public var Contacts_PermissionsAllow: String { return self._s[3615]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3616]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3617]! } + public var WallpaperPreview_Pattern: String { return self._s[3618]! } + public var Paint_Duplicate: String { return self._s[3619]! } + public var Passport_Address_Country: String { return self._s[3620]! } + public var Notification_RenamedChannel: String { return self._s[3622]! } + public var ChatList_Context_Unmute: String { return self._s[3623]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3624]! } + public var Group_MessagePhotoUpdated: String { return self._s[3625]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3626]! } + public var Conversation_ContextMenuBan: String { return self._s[3627]! } + public var TwoStepAuth_EmailSent: String { return self._s[3628]! } + public var MessagePoll_NoVotes: String { return self._s[3629]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3630]! } + public var Passport_Language_is: String { return self._s[3631]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3633]! } + public var Tour_Text5: String { return self._s[3634]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3626]!, self._r[3626]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3636]!, self._r[3636]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3627]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3628]! } + public var Undo_SecretChatDeleted: String { return self._s[3637]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3638]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3629]!, self._r[3629]!, [_0]) + return formatWithArgumentRanges(self._s[3639]!, self._r[3639]!, [_0]) } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3630]! } - public var Paint_Edit: String { return self._s[3632]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3634]! } - public var Undo_DeletedGroup: String { return self._s[3636]! } - public var LoginPassword_ForgotPassword: String { return self._s[3637]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3638]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3639]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3640]! } + public var Paint_Edit: String { return self._s[3642]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3644]! } + public var Undo_DeletedGroup: String { return self._s[3646]! } + public var LoginPassword_ForgotPassword: String { return self._s[3647]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3648]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3649]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3640]!, self._r[3640]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3650]!, self._r[3650]!, [_0, _1]) } - public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3641]! } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3642]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3643]! } - public var Passport_Language_uz: String { return self._s[3644]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3645]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3646]! } - public var Map_StopLiveLocation: String { return self._s[3648]! } - public var VoiceOver_MessageContextSend: String { return self._s[3650]! } - public var PasscodeSettings_Help: String { return self._s[3651]! } - public var NotificationsSound_Input: String { return self._s[3652]! } - public var Share_Title: String { return self._s[3655]! } - public var LogoutOptions_Title: String { return self._s[3656]! } - public var Wallet_Send_AddressText: String { return self._s[3657]! } - public var Login_TermsOfServiceAgree: String { return self._s[3658]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3659]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3660]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3661]! } - public var EnterPasscode_EnterTitle: String { return self._s[3662]! } + public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3651]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3652]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3653]! } + public var Passport_Language_uz: String { return self._s[3654]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3655]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3656]! } + public var Map_StopLiveLocation: String { return self._s[3658]! } + public var VoiceOver_MessageContextSend: String { return self._s[3660]! } + public var PasscodeSettings_Help: String { return self._s[3661]! } + public var NotificationsSound_Input: String { return self._s[3662]! } + public var Share_Title: String { return self._s[3665]! } + public var LogoutOptions_Title: String { return self._s[3666]! } + public var Wallet_Send_AddressText: String { return self._s[3667]! } + public var Login_TermsOfServiceAgree: String { return self._s[3668]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3669]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3670]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3671]! } + public var EnterPasscode_EnterTitle: String { return self._s[3672]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3663]!, self._r[3663]!, [_0]) + return formatWithArgumentRanges(self._s[3673]!, self._r[3673]!, [_0]) } - public var Settings_CopyPhoneNumber: String { return self._s[3664]! } - public var Conversation_AddToContacts: String { return self._s[3665]! } + public var Settings_CopyPhoneNumber: String { return self._s[3674]! } + public var Conversation_AddToContacts: String { return self._s[3675]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3666]!, self._r[3666]!, [_0]) - } - public var NotificationsSound_Keys: String { return self._s[3667]! } - public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3668]!, self._r[3668]!, [_0]) - } - public var Notification_MessageLifetime1w: String { return self._s[3669]! } - public var Message_Video: String { return self._s[3670]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3671]! } - public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3672]!, self._r[3672]!, [_1]) - } - public var Wallet_Receive_AmountInfo: String { return self._s[3675]! } - public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3676]!, self._r[3676]!, [_0]) } + public var NotificationsSound_Keys: String { return self._s[3677]! } + public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3678]!, self._r[3678]!, [_0]) + } + public var Notification_MessageLifetime1w: String { return self._s[3679]! } + public var Message_Video: String { return self._s[3680]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3681]! } + public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3682]!, self._r[3682]!, [_1]) + } + public var Wallet_Receive_AmountInfo: String { return self._s[3685]! } + public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3686]!, self._r[3686]!, [_0]) + } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3677]!, self._r[3677]!, [_0]) + return formatWithArgumentRanges(self._s[3687]!, self._r[3687]!, [_0]) } - public var Passport_Language_mk: String { return self._s[3678]! } + public var Passport_Language_mk: String { return self._s[3688]! } public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3679]!, self._r[3679]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3689]!, self._r[3689]!, [_1, _2, _3]) } - public var CreatePoll_CancelConfirmation: String { return self._s[3680]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3682]! } - public var PrivacyPolicy_Decline: String { return self._s[3683]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3684]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3685]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3686]! } - public var Permissions_SiriAllow_v0: String { return self._s[3688]! } - public var Wallet_Month_ShortAugust: String { return self._s[3689]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3690]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3690]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3691]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3693]! } + public var PrivacyPolicy_Decline: String { return self._s[3694]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3695]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3696]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3697]! } + public var Permissions_SiriAllow_v0: String { return self._s[3699]! } + public var Wallet_Month_ShortAugust: String { return self._s[3700]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3701]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3691]!, self._r[3691]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3702]!, self._r[3702]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3692]!, self._r[3692]!, [_0]) + return formatWithArgumentRanges(self._s[3703]!, self._r[3703]!, [_0]) } - public var Paint_Regular: String { return self._s[3693]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3694]! } - public var SocksProxySetup_ShareLink: String { return self._s[3695]! } - public var Wallet_Qr_Title: String { return self._s[3696]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3697]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3699]! } - public var Wallet_Settings_Configuration: String { return self._s[3700]! } - public var GroupInfo_InviteByLink: String { return self._s[3701]! } - public var MessageTimer_Custom: String { return self._s[3702]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3703]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3705]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[3706]! } - public var VoiceOver_Chat_Selected: String { return self._s[3707]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3708]! } - public var Channel_Username_InvalidTaken: String { return self._s[3709]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3710]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3711]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[3712]! } - public var Settings_ChatBackground: String { return self._s[3713]! } - public var Channel_Subscribers_Title: String { return self._s[3714]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3715]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3716]! } - public var Watch_ConnectionDescription: String { return self._s[3717]! } - public var OldChannels_NoticeText: String { return self._s[3720]! } - public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3721]! } - public var IntentsSettings_SuggestBy: String { return self._s[3723]! } - public var Theme_ThemeChangedText: String { return self._s[3724]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[3725]! } - public var Wallpaper_ResetWallpapers: String { return self._s[3726]! } - public var Wallet_Send_TransactionInProgress: String { return self._s[3727]! } - public var EditProfile_Title: String { return self._s[3728]! } - public var NotificationsSound_Bamboo: String { return self._s[3730]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3732]! } - public var Login_SmsRequestState2: String { return self._s[3733]! } - public var Passport_Language_ar: String { return self._s[3734]! } + public var Paint_Regular: String { return self._s[3704]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3705]! } + public var SocksProxySetup_ShareLink: String { return self._s[3706]! } + public var Wallet_Qr_Title: String { return self._s[3707]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3708]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3710]! } + public var Wallet_Settings_Configuration: String { return self._s[3711]! } + public var GroupInfo_InviteByLink: String { return self._s[3712]! } + public var MessageTimer_Custom: String { return self._s[3713]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3714]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3716]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[3717]! } + public var VoiceOver_Chat_Selected: String { return self._s[3718]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3719]! } + public var Channel_Username_InvalidTaken: String { return self._s[3720]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3721]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3722]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[3723]! } + public var Settings_ChatBackground: String { return self._s[3724]! } + public var Channel_Subscribers_Title: String { return self._s[3725]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3726]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3727]! } + public var Watch_ConnectionDescription: String { return self._s[3728]! } + public var OldChannels_NoticeText: String { return self._s[3731]! } + public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3732]! } + public var IntentsSettings_SuggestBy: String { return self._s[3734]! } + public var Theme_ThemeChangedText: String { return self._s[3735]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[3736]! } + public var Wallpaper_ResetWallpapers: String { return self._s[3737]! } + public var Wallet_Send_TransactionInProgress: String { return self._s[3738]! } + public var EditProfile_Title: String { return self._s[3739]! } + public var NotificationsSound_Bamboo: String { return self._s[3741]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3743]! } + public var Login_SmsRequestState2: String { return self._s[3744]! } + public var Passport_Language_ar: String { return self._s[3745]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3735]!, self._r[3735]!, [_0]) + return formatWithArgumentRanges(self._s[3746]!, self._r[3746]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3736]! } - public var Wallet_Created_Text: String { return self._s[3737]! } - public var Conversation_MessageDialogEdit: String { return self._s[3739]! } - public var Wallet_Created_Proceed: String { return self._s[3740]! } - public var Wallet_Words_Done: String { return self._s[3741]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3742]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3747]! } + public var Wallet_Created_Text: String { return self._s[3748]! } + public var Conversation_MessageDialogEdit: String { return self._s[3750]! } + public var Wallet_Created_Proceed: String { return self._s[3751]! } + public var Wallet_Words_Done: String { return self._s[3752]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3753]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3743]!, self._r[3743]!, [_1]) + return formatWithArgumentRanges(self._s[3754]!, self._r[3754]!, [_1]) } - public var Common_Close: String { return self._s[3744]! } - public var GroupInfo_PublicLink: String { return self._s[3745]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3746]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3747]! } + public var Common_Close: String { return self._s[3755]! } + public var GroupInfo_PublicLink: String { return self._s[3756]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3757]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3758]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3751]!, self._r[3751]!, [_0]) + return formatWithArgumentRanges(self._s[3762]!, self._r[3762]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3752]! } + public var UserInfo_About_Placeholder: String { return self._s[3763]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3753]!, self._r[3753]!, [_0]) + return formatWithArgumentRanges(self._s[3764]!, self._r[3764]!, [_0]) } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[3754]! } - public var Channel_Info_Banned: String { return self._s[3756]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[3765]! } + public var Channel_Info_Banned: String { return self._s[3767]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3757]!, self._r[3757]!, [_0]) + return formatWithArgumentRanges(self._s[3768]!, self._r[3768]!, [_0]) } - public var Appearance_Other: String { return self._s[3758]! } - public var Passport_Language_my: String { return self._s[3759]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3760]! } + public var Appearance_Other: String { return self._s[3769]! } + public var Passport_Language_my: String { return self._s[3770]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3771]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3761]!, self._r[3761]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3772]!, self._r[3772]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3762]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3763]! } - public var Preview_CopyAddress: String { return self._s[3764]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3773]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3774]! } + public var Preview_CopyAddress: String { return self._s[3775]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3765]!, self._r[3765]!, [_0]) + return formatWithArgumentRanges(self._s[3776]!, self._r[3776]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3766]! } - public var UserInfo_BotSettings: String { return self._s[3767]! } - public var LiveLocation_MenuStopAll: String { return self._s[3769]! } - public var Passport_PasswordCreate: String { return self._s[3770]! } - public var StickerSettings_MaskContextInfo: String { return self._s[3771]! } - public var Message_PinnedLocationMessage: String { return self._s[3772]! } - public var Map_Satellite: String { return self._s[3773]! } - public var Watch_Message_Unsupported: String { return self._s[3774]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[3775]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3776]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3777]! } + public var UserInfo_BotSettings: String { return self._s[3778]! } + public var LiveLocation_MenuStopAll: String { return self._s[3780]! } + public var Passport_PasswordCreate: String { return self._s[3781]! } + public var StickerSettings_MaskContextInfo: String { return self._s[3782]! } + public var Message_PinnedLocationMessage: String { return self._s[3783]! } + public var Map_Satellite: String { return self._s[3784]! } + public var Watch_Message_Unsupported: String { return self._s[3785]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[3786]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3787]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3777]!, self._r[3777]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3788]!, self._r[3788]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3778]!, self._r[3778]!, [_0]) + return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_0]) } - public var Wallet_WordImport_Continue: String { return self._s[3779]! } + public var Wallet_WordImport_Continue: String { return self._s[3790]! } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3780]!, self._r[3780]!, [_0]) + return formatWithArgumentRanges(self._s[3791]!, self._r[3791]!, [_0]) } - public var Notifications_ChannelNotificationsHelp: String { return self._s[3781]! } - public var Privacy_Calls_P2PContacts: String { return self._s[3782]! } - public var NotificationsSound_None: String { return self._s[3783]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3784]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3786]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[3787]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[3792]! } + public var Privacy_Calls_P2PContacts: String { return self._s[3793]! } + public var NotificationsSound_None: String { return self._s[3794]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3795]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3797]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[3798]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3788]!, self._r[3788]!, [_1]) + return formatWithArgumentRanges(self._s[3799]!, self._r[3799]!, [_1]) } - public var Cache_Indexing: String { return self._s[3789]! } - public var DialogList_RecentTitlePeople: String { return self._s[3791]! } - public var DialogList_EncryptionRejected: String { return self._s[3792]! } - public var GroupInfo_Administrators: String { return self._s[3793]! } - public var Passport_ScanPassportHelp: String { return self._s[3794]! } - public var Application_Name: String { return self._s[3795]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3796]! } - public var Appearance_ThemeCarouselDay: String { return self._s[3798]! } - public var Passport_Identity_TranslationHelp: String { return self._s[3799]! } + public var Cache_Indexing: String { return self._s[3800]! } + public var DialogList_RecentTitlePeople: String { return self._s[3802]! } + public var DialogList_EncryptionRejected: String { return self._s[3803]! } + public var GroupInfo_Administrators: String { return self._s[3804]! } + public var Passport_ScanPassportHelp: String { return self._s[3805]! } + public var Application_Name: String { return self._s[3806]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3807]! } + public var Appearance_ThemeCarouselDay: String { return self._s[3809]! } + public var Passport_Identity_TranslationHelp: String { return self._s[3810]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3800]!, self._r[3800]!, [_0]) + return formatWithArgumentRanges(self._s[3811]!, self._r[3811]!, [_0]) } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3801]!, self._r[3801]!, [_0]) + return formatWithArgumentRanges(self._s[3812]!, self._r[3812]!, [_0]) } public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3802]!, self._r[3802]!, [_0]) + return formatWithArgumentRanges(self._s[3813]!, self._r[3813]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3803]! } - public var Privacy_ChatsTitle: String { return self._s[3804]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[3805]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3806]! } - public var Watch_Suggestion_HoldOn: String { return self._s[3807]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3808]! } - public var WebBrowser_Title: String { return self._s[3809]! } - public var Group_LinkedChannel: String { return self._s[3810]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3811]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[3812]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3813]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3814]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[3815]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[3817]! } - public var Channel_Setup_TypePublic: String { return self._s[3819]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3814]! } + public var Privacy_ChatsTitle: String { return self._s[3815]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[3816]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3817]! } + public var Watch_Suggestion_HoldOn: String { return self._s[3818]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3819]! } + public var WebBrowser_Title: String { return self._s[3820]! } + public var Group_LinkedChannel: String { return self._s[3821]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3822]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[3823]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3824]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3825]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[3826]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[3828]! } + public var Channel_Setup_TypePublic: String { return self._s[3830]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3820]!, self._r[3820]!, [_0]) + return formatWithArgumentRanges(self._s[3831]!, self._r[3831]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[3822]! } - public var Map_OpenInMaps: String { return self._s[3824]! } + public var Channel_TypeSetup_Title: String { return self._s[3833]! } + public var MessagePoll_ViewResults: String { return self._s[3834]! } + public var Map_OpenInMaps: String { return self._s[3836]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3825]!, self._r[3825]!, [_1]) + return formatWithArgumentRanges(self._s[3837]!, self._r[3837]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[3827]! } + public var NotificationsSound_Tremolo: String { return self._s[3839]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3828]!, self._r[3828]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3840]!, self._r[3840]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3829]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3830]! } - public var Passport_PasswordHelp: String { return self._s[3831]! } - public var Login_CodeExpiredError: String { return self._s[3832]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3833]! } - public var Conversation_TitleUnmute: String { return self._s[3834]! } - public var Passport_Identity_ScansHelp: String { return self._s[3835]! } - public var Passport_Language_lo: String { return self._s[3836]! } - public var Camera_FlashAuto: String { return self._s[3837]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3838]! } - public var Common_Cancel: String { return self._s[3839]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[3840]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3841]! } - public var Appearance_TintAllColors: String { return self._s[3842]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3841]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3842]! } + public var Passport_PasswordHelp: String { return self._s[3843]! } + public var Login_CodeExpiredError: String { return self._s[3844]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3845]! } + public var Conversation_TitleUnmute: String { return self._s[3846]! } + public var Passport_Identity_ScansHelp: String { return self._s[3847]! } + public var Passport_Language_lo: String { return self._s[3848]! } + public var Camera_FlashAuto: String { return self._s[3849]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3850]! } + public var Common_Cancel: String { return self._s[3851]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[3852]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3853]! } + public var Appearance_TintAllColors: String { return self._s[3854]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3843]!, self._r[3843]!, [_1]) + return formatWithArgumentRanges(self._s[3855]!, self._r[3855]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[3844]! } - public var ChatSettings_Title: String { return self._s[3846]! } - public var Passport_PasswordReset: String { return self._s[3847]! } - public var SocksProxySetup_TypeNone: String { return self._s[3848]! } - public var EditTheme_Title: String { return self._s[3850]! } - public var PhoneNumberHelp_Help: String { return self._s[3851]! } - public var Checkout_EnterPassword: String { return self._s[3852]! } - public var Share_AuthTitle: String { return self._s[3854]! } - public var Activity_UploadingDocument: String { return self._s[3855]! } - public var State_Connecting: String { return self._s[3856]! } - public var Profile_MessageLifetime1w: String { return self._s[3857]! } - public var Conversation_ContextMenuReport: String { return self._s[3858]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3859]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3860]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[3856]! } + public var ChatSettings_Title: String { return self._s[3858]! } + public var Passport_PasswordReset: String { return self._s[3859]! } + public var SocksProxySetup_TypeNone: String { return self._s[3860]! } + public var EditTheme_Title: String { return self._s[3863]! } + public var PhoneNumberHelp_Help: String { return self._s[3864]! } + public var Checkout_EnterPassword: String { return self._s[3865]! } + public var Share_AuthTitle: String { return self._s[3867]! } + public var Activity_UploadingDocument: String { return self._s[3868]! } + public var State_Connecting: String { return self._s[3869]! } + public var Profile_MessageLifetime1w: String { return self._s[3870]! } + public var Conversation_ContextMenuReport: String { return self._s[3871]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3872]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3873]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3861]!, self._r[3861]!, [_0]) + return formatWithArgumentRanges(self._s[3874]!, self._r[3874]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[3862]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[3863]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3865]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3866]! } - public var PhotoEditor_Set: String { return self._s[3867]! } - public var EmptyGroupInfo_Title: String { return self._s[3868]! } - public var Login_PadPhoneHelp: String { return self._s[3869]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3871]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3873]! } - public var NotificationsSound_Complete: String { return self._s[3874]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3875]! } - public var Group_Info_AdminLog: String { return self._s[3876]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3877]! } + public var AuthSessions_Terminate: String { return self._s[3875]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[3876]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3878]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3879]! } + public var PhotoEditor_Set: String { return self._s[3880]! } + public var EmptyGroupInfo_Title: String { return self._s[3881]! } + public var Login_PadPhoneHelp: String { return self._s[3882]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3884]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3886]! } + public var NotificationsSound_Complete: String { return self._s[3887]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3888]! } + public var Group_Info_AdminLog: String { return self._s[3889]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3890]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3878]!, self._r[3878]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3891]!, self._r[3891]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3879]! } - public var Group_Location_CreateInThisPlace: String { return self._s[3881]! } - public var Conversation_Admin: String { return self._s[3882]! } - public var Conversation_GifTooltip: String { return self._s[3883]! } - public var Passport_NotLoggedInMessage: String { return self._s[3884]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3892]! } + public var Group_Location_CreateInThisPlace: String { return self._s[3894]! } + public var Conversation_Admin: String { return self._s[3895]! } + public var Conversation_GifTooltip: String { return self._s[3896]! } + public var Passport_NotLoggedInMessage: String { return self._s[3897]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3886]!, self._r[3886]!, [_0]) + return formatWithArgumentRanges(self._s[3899]!, self._r[3899]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[3887]! } - public var SharedMedia_EmptyTitle: String { return self._s[3889]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3891]! } - public var Username_Help: String { return self._s[3892]! } - public var DialogList_LanguageTooltip: String { return self._s[3894]! } - public var Map_LoadError: String { return self._s[3895]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3896]! } - public var Channel_AdminLog_AddMembers: String { return self._s[3897]! } - public var ArchivedChats_IntroTitle2: String { return self._s[3898]! } - public var Notification_Exceptions_NewException: String { return self._s[3899]! } - public var TwoStepAuth_EmailTitle: String { return self._s[3900]! } - public var WatchRemote_AlertText: String { return self._s[3901]! } + public var Profile_MessageLifetimeForever: String { return self._s[3900]! } + public var SharedMedia_EmptyTitle: String { return self._s[3902]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3904]! } + public var Username_Help: String { return self._s[3905]! } + public var DialogList_LanguageTooltip: String { return self._s[3907]! } + public var Map_LoadError: String { return self._s[3908]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3909]! } + public var Channel_AdminLog_AddMembers: String { return self._s[3910]! } + public var ArchivedChats_IntroTitle2: String { return self._s[3911]! } + public var Notification_Exceptions_NewException: String { return self._s[3912]! } + public var TwoStepAuth_EmailTitle: String { return self._s[3913]! } + public var WatchRemote_AlertText: String { return self._s[3914]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3902]!, self._r[3902]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3915]!, self._r[3915]!, [_1, _2, _3]) } - public var ChatSettings_ConnectionType_Title: String { return self._s[3906]! } - public var WebBrowser_DefaultBrowser: String { return self._s[3907]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[3919]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3920]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3908]!, self._r[3908]!, [_0]) + return formatWithArgumentRanges(self._s[3921]!, self._r[3921]!, [_0]) } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3909]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[3910]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3922]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[3923]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3911]!, self._r[3911]!, [_0]) - } - public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3912]!, self._r[3912]!, [_1, _2, _3]) - } - public var Group_AdminLog_EmptyText: String { return self._s[3913]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3914]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[3916]! } - public var Wallet_Created_ExportErrorText: String { return self._s[3917]! } - public var ChatList_UndoArchiveText1: String { return self._s[3918]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3919]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3920]! } - public var Cache_ClearNone: String { return self._s[3921]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3922]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3923]! } - public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3924]!, self._r[3924]!, [_0]) } - public var Passport_Identity_Country: String { return self._s[3925]! } + public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3925]!, self._r[3925]!, [_1, _2, _3]) + } + public var Group_AdminLog_EmptyText: String { return self._s[3926]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3927]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3929]! } + public var Wallet_Created_ExportErrorText: String { return self._s[3930]! } + public var ChatList_UndoArchiveText1: String { return self._s[3931]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3932]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3933]! } + public var Cache_ClearNone: String { return self._s[3934]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3935]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3936]! } + public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3937]!, self._r[3937]!, [_0]) + } + public var Passport_Identity_Country: String { return self._s[3938]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3926]!, self._r[3926]!, [_0]) + return formatWithArgumentRanges(self._s[3939]!, self._r[3939]!, [_0]) } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3927]!, self._r[3927]!, [_0]) + return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[3928]! } - public var AccessDenied_Settings: String { return self._s[3929]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3930]! } - public var Month_ShortMay: String { return self._s[3931]! } - public var Compose_NewGroup: String { return self._s[3933]! } - public var Group_Setup_TypePrivate: String { return self._s[3935]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3937]! } - public var Appearance_ThemeDayClassic: String { return self._s[3938]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3939]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3940]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3941]! } - public var Conversation_typing: String { return self._s[3943]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[3944]! } - public var Paint_Masks: String { return self._s[3945]! } - public var Contacts_DeselectAll: String { return self._s[3946]! } + public var Exceptions_AddToExceptions: String { return self._s[3941]! } + public var AccessDenied_Settings: String { return self._s[3942]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3943]! } + public var Month_ShortMay: String { return self._s[3944]! } + public var Compose_NewGroup: String { return self._s[3946]! } + public var Group_Setup_TypePrivate: String { return self._s[3948]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3950]! } + public var Appearance_ThemeDayClassic: String { return self._s[3951]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3952]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3953]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3954]! } + public var Conversation_typing: String { return self._s[3956]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[3957]! } + public var Paint_Masks: String { return self._s[3958]! } + public var Contacts_DeselectAll: String { return self._s[3959]! } public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3947]!, self._r[3947]!, [_0]) + return formatWithArgumentRanges(self._s[3960]!, self._r[3960]!, [_0]) } - public var Username_InvalidTaken: String { return self._s[3948]! } - public var Call_StatusNoAnswer: String { return self._s[3949]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3950]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3951]! } - public var Passport_Identity_Selfie: String { return self._s[3952]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3953]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3954]! } - public var Conversation_ClearSecretHistory: String { return self._s[3955]! } - public var PeopleNearby_Description: String { return self._s[3957]! } - public var NetworkUsageSettings_Title: String { return self._s[3958]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3960]! } + public var Username_InvalidTaken: String { return self._s[3961]! } + public var Call_StatusNoAnswer: String { return self._s[3962]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3963]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3964]! } + public var Passport_Identity_Selfie: String { return self._s[3965]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3966]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3967]! } + public var Conversation_ClearSecretHistory: String { return self._s[3968]! } + public var PeopleNearby_Description: String { return self._s[3970]! } + public var NetworkUsageSettings_Title: String { return self._s[3971]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3973]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3962]!, self._r[3962]!, [_0]) + return formatWithArgumentRanges(self._s[3975]!, self._r[3975]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3963]!, self._r[3963]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3976]!, self._r[3976]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[3965]! } - public var VoiceOver_Navigation_Search: String { return self._s[3966]! } - public var Map_LiveLocationTitle: String { return self._s[3967]! } - public var Login_InfoAvatarAdd: String { return self._s[3968]! } - public var Passport_Identity_FilesView: String { return self._s[3969]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3970]! } - public var Privacy_Calls_NeverAllow: String { return self._s[3971]! } - public var VoiceOver_Chat_File: String { return self._s[3972]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[3973]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[3978]! } + public var VoiceOver_Navigation_Search: String { return self._s[3979]! } + public var Map_LiveLocationTitle: String { return self._s[3980]! } + public var Login_InfoAvatarAdd: String { return self._s[3981]! } + public var Passport_Identity_FilesView: String { return self._s[3982]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3983]! } + public var Privacy_Calls_NeverAllow: String { return self._s[3984]! } + public var VoiceOver_Chat_File: String { return self._s[3985]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[3986]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3974]!, self._r[3974]!, [_0]) + return formatWithArgumentRanges(self._s[3987]!, self._r[3987]!, [_0]) } - public var ContactInfo_PhoneNumberHidden: String { return self._s[3975]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[3976]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3977]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[3988]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[3989]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3990]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3978]!, self._r[3978]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3991]!, self._r[3991]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3979]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[3980]! } - public var Tour_Title2: String { return self._s[3981]! } - public var Wallet_Sent_ViewWallet: String { return self._s[3982]! } - public var Conversation_FileOpenIn: String { return self._s[3983]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3984]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[3985]! } - public var Wallpaper_Set: String { return self._s[3986]! } - public var Passport_Identity_Translations: String { return self._s[3988]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3992]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[3993]! } + public var Tour_Title2: String { return self._s[3994]! } + public var Wallet_Sent_ViewWallet: String { return self._s[3995]! } + public var Conversation_FileOpenIn: String { return self._s[3996]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3997]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[3998]! } + public var Wallpaper_Set: String { return self._s[3999]! } + public var Passport_Identity_Translations: String { return self._s[4001]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3989]!, self._r[3989]!, [_0]) + return formatWithArgumentRanges(self._s[4002]!, self._r[4002]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[3990]! } + public var Channel_LeaveChannel: String { return self._s[4003]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3991]!, self._r[3991]!, [_1]) + return formatWithArgumentRanges(self._s[4004]!, self._r[4004]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[3993]! } - public var PhotoEditor_HighlightsTint: String { return self._s[3994]! } - public var Passport_Email_Delete: String { return self._s[3995]! } - public var Conversation_Mute: String { return self._s[3997]! } - public var Channel_AddBotAsAdmin: String { return self._s[3998]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[4000]! } - public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4001]! } - public var ChatSettings_IntentsSettings: String { return self._s[4003]! } - public var Channel_Management_LabelOwner: String { return self._s[4004]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4006]! } + public var PhotoEditor_HighlightsTint: String { return self._s[4007]! } + public var MessagePoll_LabelPoll: String { return self._s[4008]! } + public var Passport_Email_Delete: String { return self._s[4009]! } + public var Conversation_Mute: String { return self._s[4011]! } + public var Channel_AddBotAsAdmin: String { return self._s[4012]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[4014]! } + public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4015]! } + public var ChatSettings_IntentsSettings: String { return self._s[4017]! } + public var Channel_Management_LabelOwner: String { return self._s[4018]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4005]!, self._r[4005]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4019]!, self._r[4019]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[4006]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[4007]! } - public var Common_No: String { return self._s[4008]! } - public var Weekday_Sunday: String { return self._s[4009]! } - public var Notification_Reply: String { return self._s[4010]! } - public var Conversation_ViewMessage: String { return self._s[4011]! } + public var Calls_CallTabDescription: String { return self._s[4020]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[4021]! } + public var Common_No: String { return self._s[4022]! } + public var Weekday_Sunday: String { return self._s[4023]! } + public var Notification_Reply: String { return self._s[4024]! } + public var Conversation_ViewMessage: String { return self._s[4025]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4012]!, self._r[4012]!, [_0]) + return formatWithArgumentRanges(self._s[4026]!, self._r[4026]!, [_0]) } public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4013]!, self._r[4013]!, [_0]) + return formatWithArgumentRanges(self._s[4027]!, self._r[4027]!, [_0]) } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4014]!, self._r[4014]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4028]!, self._r[4028]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4015]! } - public var Wallet_Send_Title: String { return self._s[4016]! } - public var Message_PinnedDocumentMessage: String { return self._s[4017]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[4018]! } - public var DialogList_TabTitle: String { return self._s[4020]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4021]! } - public var Passport_FieldEmail: String { return self._s[4022]! } - public var Conversation_UnpinMessageAlert: String { return self._s[4023]! } - public var Passport_Address_TypeBankStatement: String { return self._s[4024]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[4025]! } - public var Passport_Identity_ExpiryDate: String { return self._s[4026]! } - public var Privacy_Calls_P2P: String { return self._s[4027]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4029]! } + public var Wallet_Send_Title: String { return self._s[4030]! } + public var Message_PinnedDocumentMessage: String { return self._s[4031]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[4032]! } + public var DialogList_TabTitle: String { return self._s[4034]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4035]! } + public var Passport_FieldEmail: String { return self._s[4036]! } + public var Conversation_UnpinMessageAlert: String { return self._s[4037]! } + public var Passport_Address_TypeBankStatement: String { return self._s[4038]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[4039]! } + public var Passport_Identity_ExpiryDate: String { return self._s[4040]! } + public var Privacy_Calls_P2P: String { return self._s[4041]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4029]!, self._r[4029]!, [_0]) + return formatWithArgumentRanges(self._s[4043]!, self._r[4043]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[4030]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[4044]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4031]!, self._r[4031]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4045]!, self._r[4045]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[4032]! } - public var EnterPasscode_ChangeTitle: String { return self._s[4033]! } - public var TwoFactorSetup_Email_Title: String { return self._s[4034]! } - public var Passport_InfoText: String { return self._s[4035]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4036]! } + public var Stickers_ClearRecent: String { return self._s[4046]! } + public var EnterPasscode_ChangeTitle: String { return self._s[4047]! } + public var TwoFactorSetup_Email_Title: String { return self._s[4048]! } + public var Passport_InfoText: String { return self._s[4049]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4050]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4037]!, self._r[4037]!, [_0]) + return formatWithArgumentRanges(self._s[4051]!, self._r[4051]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4038]!, self._r[4038]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4052]!, self._r[4052]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4039]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[4040]! } - public var VoiceOver_Navigation_Compose: String { return self._s[4041]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[4042]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[4044]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4045]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4053]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[4054]! } + public var VoiceOver_Navigation_Compose: String { return self._s[4055]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[4056]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[4058]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4059]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4046]!, self._r[4046]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4060]!, self._r[4060]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4048]! } - public var ChatSettings_OpenLinksIn: String { return self._s[4049]! } - public var Map_HomeAndWorkTitle: String { return self._s[4050]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4062]! } + public var ChatSettings_OpenLinksIn: String { return self._s[4063]! } + public var Map_HomeAndWorkTitle: String { return self._s[4064]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4052]!, self._r[4052]!, [_0]) + return formatWithArgumentRanges(self._s[4066]!, self._r[4066]!, [_0]) } - public var DialogList_Unread: String { return self._s[4053]! } + public var DialogList_Unread: String { return self._s[4067]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4054]!, self._r[4054]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4068]!, self._r[4068]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[4055]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4056]! } + public var User_DeletedAccount: String { return self._s[4069]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4070]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4057]!, self._r[4057]!, [_0]) + return formatWithArgumentRanges(self._s[4071]!, self._r[4071]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[4058]! } - public var SharedMedia_CategoryMedia: String { return self._s[4059]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4060]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4061]! } - public var Watch_ChatList_Compose: String { return self._s[4062]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4063]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[4064]! } - public var Watch_Microphone_Access: String { return self._s[4065]! } - public var Group_Setup_HistoryHeader: String { return self._s[4066]! } - public var Map_SetThisLocation: String { return self._s[4067]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4068]! } - public var Activity_UploadingPhoto: String { return self._s[4069]! } - public var Conversation_Edit: String { return self._s[4071]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[4072]! } - public var Login_TermsOfServiceDecline: String { return self._s[4073]! } - public var Message_PinnedContactMessage: String { return self._s[4074]! } + public var UserInfo_NotificationsDefault: String { return self._s[4072]! } + public var SharedMedia_CategoryMedia: String { return self._s[4073]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4074]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4075]! } + public var Watch_ChatList_Compose: String { return self._s[4076]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4077]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[4078]! } + public var Watch_Microphone_Access: String { return self._s[4079]! } + public var Group_Setup_HistoryHeader: String { return self._s[4080]! } + public var Map_SetThisLocation: String { return self._s[4081]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4082]! } + public var Activity_UploadingPhoto: String { return self._s[4083]! } + public var Conversation_Edit: String { return self._s[4085]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[4086]! } + public var Login_TermsOfServiceDecline: String { return self._s[4087]! } + public var Message_PinnedContactMessage: String { return self._s[4088]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4075]!, self._r[4075]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4089]!, self._r[4089]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4076]!, self._r[4076]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[4090]!, self._r[4090]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[4077]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4079]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4080]! } + public var Appearance_LargeEmoji: String { return self._s[4091]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4093]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4094]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4081]!, self._r[4081]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4095]!, self._r[4095]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[4082]! } - public var Message_PinnedPhotoMessage: String { return self._s[4083]! } - public var Passport_FieldPhone: String { return self._s[4084]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4085]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[4086]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[4088]! } - public var Conversation_Call: String { return self._s[4089]! } - public var Common_TakePhoto: String { return self._s[4091]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4092]! } - public var Wallet_Receive_CommentHeader: String { return self._s[4093]! } - public var Channel_NotificationLoading: String { return self._s[4094]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[4096]! } + public var Message_PinnedPhotoMessage: String { return self._s[4097]! } + public var Passport_FieldPhone: String { return self._s[4098]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4099]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[4100]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[4102]! } + public var Conversation_Call: String { return self._s[4103]! } + public var Common_TakePhoto: String { return self._s[4105]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4106]! } + public var Wallet_Receive_CommentHeader: String { return self._s[4107]! } + public var Channel_NotificationLoading: String { return self._s[4108]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4095]!, self._r[4095]!, [_0]) + return formatWithArgumentRanges(self._s[4109]!, self._r[4109]!, [_0]) } public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4096]!, self._r[4096]!, [_0]) + return formatWithArgumentRanges(self._s[4110]!, self._r[4110]!, [_0]) } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4097]!, self._r[4097]!, [_1]) + return formatWithArgumentRanges(self._s[4111]!, self._r[4111]!, [_1]) } - public var Permissions_SiriTitle_v0: String { return self._s[4098]! } + public var Permissions_SiriTitle_v0: String { return self._s[4112]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4099]!, self._r[4099]!, [_0]) + return formatWithArgumentRanges(self._s[4113]!, self._r[4113]!, [_0]) } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4100]!, self._r[4100]!, [_0]) + return formatWithArgumentRanges(self._s[4114]!, self._r[4114]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[4101]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[4102]! } - public var ClearCache_FreeSpace: String { return self._s[4103]! } - public var Common_edit: String { return self._s[4104]! } - public var PrivacySettings_AuthSessions: String { return self._s[4105]! } - public var Month_ShortJune: String { return self._s[4106]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4107]! } - public var Call_ReportSend: String { return self._s[4108]! } - public var Watch_LastSeen_JustNow: String { return self._s[4109]! } - public var Notifications_MessageNotifications: String { return self._s[4110]! } - public var WallpaperSearch_ColorGreen: String { return self._s[4111]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4113]! } - public var Group_Status: String { return self._s[4114]! } + public var Channel_MessagePhotoRemoved: String { return self._s[4115]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[4116]! } + public var ClearCache_FreeSpace: String { return self._s[4117]! } + public var Common_edit: String { return self._s[4118]! } + public var PrivacySettings_AuthSessions: String { return self._s[4119]! } + public var Month_ShortJune: String { return self._s[4120]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4121]! } + public var Call_ReportSend: String { return self._s[4122]! } + public var Watch_LastSeen_JustNow: String { return self._s[4123]! } + public var Notifications_MessageNotifications: String { return self._s[4124]! } + public var WallpaperSearch_ColorGreen: String { return self._s[4125]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4127]! } + public var Group_Status: String { return self._s[4128]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4115]!, self._r[4115]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4129]!, self._r[4129]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[4116]! } - public var ShareMenu_ShareTo: String { return self._s[4117]! } - public var Conversation_Moderate_Ban: String { return self._s[4118]! } + public var TextFormat_AddLinkTitle: String { return self._s[4130]! } + public var ShareMenu_ShareTo: String { return self._s[4131]! } + public var Conversation_Moderate_Ban: String { return self._s[4132]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4119]!, self._r[4119]!, [_0]) + return formatWithArgumentRanges(self._s[4133]!, self._r[4133]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[4120]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4121]! } + public var SharedMedia_ViewInChat: String { return self._s[4134]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4135]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4122]!, self._r[4122]!, [_1]) + return formatWithArgumentRanges(self._s[4136]!, self._r[4136]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4123]!, self._r[4123]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4137]!, self._r[4137]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4125]!, self._r[4125]!, [_0]) + return formatWithArgumentRanges(self._s[4139]!, self._r[4139]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[4126]! } - public var Appearance_ReduceMotion: String { return self._s[4127]! } + public var Map_OpenInHereMaps: String { return self._s[4140]! } + public var Appearance_ReduceMotion: String { return self._s[4141]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4128]!, self._r[4128]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4142]!, self._r[4142]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[4129]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[4130]! } - public var PhotoEditor_Skip: String { return self._s[4131]! } - public func MuteFor_Hours(_ value: Int32) -> String { + public var Channel_Setup_TypePublicHelp: String { return self._s[4143]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[4144]! } + public var PhotoEditor_Skip: String { return self._s[4145]! } + 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[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_StickerCount(_ value: Int32) -> String { + public func ServiceMessage_GameScoreExtended(_ 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 OldChannels_InactiveYear(_ value: Int32) -> String { + public func Call_Seconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[2 * 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[3 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedPolls(_ 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 GroupInfo_ShowMoreMembers(_ 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 ChatList_DeletedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ForwardedAudios(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_MinutesAgo(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func InviteText_ContactsCountText(_ 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 MessagePoll_VotedCount(_ 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 Contacts_ImportersCount(_ 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 Conversation_StatusOnline(_ 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_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 Call_ShortMinutes(_ 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 VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { - 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 PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[20 * 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[21 * 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[22 * 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[23 * 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[24 * 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[25 * 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[26 * 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[27 * 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[28 * 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[29 * 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[30 * 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[31 * 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[32 * 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[33 * 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[34 * 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[35 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedGifs(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[36 * 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[37 * 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[38 * 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[39 * 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[40 * 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[41 * 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[42 * 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[43 * 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[44 * 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[45 * 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[46 * 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[47 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func ForwardedVideoMessages(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func OldChannels_InactiveWeek(_ 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 CreatePoll_AddMoreOptions(_ 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 MuteFor_Days(_ 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 VoiceOver_Chat_ContactEmailCount(_ 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 Invitation_Members(_ 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 MessageTimer_ShortDays(_ 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 AttachmentMenu_SendItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func SharedMedia_Link(_ 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 ForwardedVideos(_ 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 MessageTimer_Months(_ 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 MessageTimer_ShortHours(_ 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_Photo(_ 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 MessageTimer_Minutes(_ 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 ForwardedLocations(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_ShortMinutes(_ 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 OldChannels_GroupFormat(_ 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 AttachmentMenu_SendPhoto(_ 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 Wallet_Updated_HoursAgo(_ 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 Wallpaper_DeleteConfirmation(_ 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 ServiceMessage_GameScoreSimple(_ 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 UserCount(_ 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 ForwardedPhotos(_ 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) + return String(format: self._ps[3 * 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[75 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + public func ForwardedGifs(_ 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) + return String(format: self._ps[5 * 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[77 * 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[78 * 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[79 * 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[80 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + 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 PasscodeSettings_FailedAttempts(_ 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 ServiceMessage_GameScoreSelfSimple(_ 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 ChatList_DeleteConfirmation(_ 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 Conversation_StatusSubscribers(_ 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 Passport_Scans(_ 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 MessageTimer_ShortSeconds(_ 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 Notification_GameScoreSelfExtended(_ 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 LastSeen_MinutesAgo(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PrivacyLastSeenSettings_AddUsers(_ 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 Conversation_LiveLocationMembersCount(_ 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 PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Notification_GameScoreSimple(_ 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 ServiceMessage_GameScoreExtended(_ 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 MuteExpires_Hours(_ 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 Call_Seconds(_ 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 MessageTimer_ShortWeeks(_ 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_AddStickerCount(_ 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 Map_ETAHours(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 ForwardedContacts(_ 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 OldChannels_InactiveMonth(_ 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 Media_SharePhoto(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Video(_ 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 Map_ETAMinutes(_ 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 ChatList_SelectedChats(_ 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 MessageTimer_Weeks(_ 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) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, _2, _1, _3) } public func MessageTimer_Years(_ 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) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedStickers(_ value: Int32) -> String { + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[9 * 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[10 * 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[112 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, _1, _2) } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[114 * 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[115 * 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[116 * 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[117 * 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[118 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[13 * 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[119 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + public func Theme_UsersCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_File(_ value: Int32) -> String { + public func Passport_Scans(_ 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) + return String(format: self._ps[16 * 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[17 * 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[18 * 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[19 * 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[20 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func QuickSend_Photos(_ 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_MESSAGE_ROUNDS(_ 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 Forward_ConfirmMultipleFiles(_ 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 Notification_GameScoreSimple(_ 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 Watch_LastSeen_MinutesAgo(_ 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 StickerPack_RemoveMaskCount(_ 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_CHANNEL_MESSAGE_ROUNDS(_ 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 Map_ETAMinutes(_ 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 Media_ShareItem(_ 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) + return String(format: self._ps[29 * 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[30 * 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[31 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedAudios(_ 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 Media_SharePhoto(_ 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 ForwardedPolls(_ 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 Conversation_LiveLocationMembersCount(_ 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 StickerPack_StickerCount(_ 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 LastSeen_MinutesAgo(_ 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 SharedMedia_DeleteItemsConfirmation(_ 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 CreatePoll_AddMoreOptions(_ 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 Watch_LastSeen_HoursAgo(_ 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 Media_ShareVideo(_ 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 SharedMedia_Video(_ 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 MessageTimer_Hours(_ 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 ForwardedVideos(_ 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 Notification_GameScoreSelfExtended(_ 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 SharedMedia_File(_ 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_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Conversation_StatusOnline(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_InactiveYear(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[51 * 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[52 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_HoursAgo(_ 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_Weeks(_ 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 Conversation_StatusSubscribers(_ 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 UserCount(_ 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 ServiceMessage_GameScoreSelfSimple(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, _1, _2) + } + 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[60 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + 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[61 * 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[62 * 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[63 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func StickerPack_AddMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 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[65 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Seconds(_ 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 Notification_GameScoreExtended(_ 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 ForwardedFiles(_ 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 VoiceOver_Chat_PollVotes(_ 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 Conversation_SelectedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Minutes(_ 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 ChatList_SelectedChats(_ 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 OldChannels_InactiveMonth(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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 SharedMedia_Link(_ 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 Call_ShortMinutes(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 Conversation_StatusMembers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + 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[83 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 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[85 * 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[86 * 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[87 * 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[88 * 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[89 * 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[90 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MessageTimer_Months(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[92 * 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[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[94 * 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[95 * 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[96 * 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[97 * 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[98 * 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[99 * 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[100 * 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[101 * 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[102 * 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[103 * 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[104 * 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[105 * 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[106 * 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[107 * 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[108 * 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[109 * 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[110 * 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[111 * 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[112 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_MinutesAgo(_ 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 Contacts_InviteContacts(_ 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 ChatList_DeleteConfirmation(_ 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 Notifications_ExceptionMuteExpires_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 AttachmentMenu_SendPhoto(_ 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 MuteExpires_Minutes(_ 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_ParticipantCount(_ 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 GroupInfo_ShowMoreMembers(_ 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 Wallpaper_DeleteConfirmation(_ 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_ShortHours(_ 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 MuteExpires_Days(_ 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 MuteFor_Hours(_ 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 init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?, groupingSeparator: String) { self.primaryComponent = primaryComponent diff --git a/submodules/TelegramPresentationData/Sources/PresentationTheme.swift b/submodules/TelegramPresentationData/Sources/PresentationTheme.swift index 66a2ba6ba1..3571d6d77f 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationTheme.swift @@ -631,17 +631,23 @@ public final class PresentationThemeChatBubblePolls { public let highlight: UIColor public let separator: UIColor public let bar: UIColor + public let barIconForeground: UIColor + public let barPositive: UIColor + public let barNegative: UIColor - public init(radioButton: UIColor, radioProgress: UIColor, highlight: UIColor, separator: UIColor, bar: UIColor) { + public init(radioButton: UIColor, radioProgress: UIColor, highlight: UIColor, separator: UIColor, bar: UIColor, barIconForeground: UIColor, barPositive: UIColor, barNegative: UIColor) { self.radioButton = radioButton self.radioProgress = radioProgress self.highlight = highlight self.separator = separator self.bar = bar + self.barIconForeground = barIconForeground + self.barPositive = barPositive + self.barNegative = barNegative } - public func withUpdated(radioButton: UIColor? = nil, radioProgress: UIColor? = nil, highlight: UIColor? = nil, separator: UIColor? = nil, bar: UIColor? = nil) -> PresentationThemeChatBubblePolls { - return PresentationThemeChatBubblePolls(radioButton: radioButton ?? self.radioButton, radioProgress: radioProgress ?? self.radioProgress, highlight: highlight ?? self.highlight, separator: separator ?? self.separator, bar: bar ?? self.bar) + public func withUpdated(radioButton: UIColor? = nil, radioProgress: UIColor? = nil, highlight: UIColor? = nil, separator: UIColor? = nil, bar: UIColor? = nil, barIconForeground: UIColor? = nil, barPositive: UIColor? = nil, barNegative: UIColor? = nil) -> PresentationThemeChatBubblePolls { + return PresentationThemeChatBubblePolls(radioButton: radioButton ?? self.radioButton, radioProgress: radioProgress ?? self.radioProgress, highlight: highlight ?? self.highlight, separator: separator ?? self.separator, bar: bar ?? self.bar, barIconForeground: barIconForeground ?? self.barIconForeground, barPositive: barPositive ?? self.barPositive, barNegative: barNegative ?? self.barNegative) } } @@ -655,6 +661,7 @@ public final class PresentationThemePartedColors { public let textHighlightColor: UIColor public let accentTextColor: UIColor public let accentControlColor: UIColor + public let accentControlDisabledColor: UIColor public let mediaActiveControlColor: UIColor public let mediaInactiveControlColor: UIColor public let mediaControlInnerBackgroundColor: UIColor @@ -670,7 +677,7 @@ public final class PresentationThemePartedColors { public let textSelectionColor: UIColor public let textSelectionKnobColor: UIColor - public init(bubble: PresentationThemeBubbleColor, primaryTextColor: UIColor, secondaryTextColor: UIColor, linkTextColor: UIColor, linkHighlightColor: UIColor, scamColor: UIColor, textHighlightColor: UIColor, accentTextColor: UIColor, accentControlColor: UIColor, mediaActiveControlColor: UIColor, mediaInactiveControlColor: UIColor, mediaControlInnerBackgroundColor: UIColor, pendingActivityColor: UIColor, fileTitleColor: UIColor, fileDescriptionColor: UIColor, fileDurationColor: UIColor, mediaPlaceholderColor: UIColor, polls: PresentationThemeChatBubblePolls, actionButtonsFillColor: PresentationThemeVariableColor, actionButtonsStrokeColor: PresentationThemeVariableColor, actionButtonsTextColor: PresentationThemeVariableColor, textSelectionColor: UIColor, textSelectionKnobColor: UIColor) { + public init(bubble: PresentationThemeBubbleColor, primaryTextColor: UIColor, secondaryTextColor: UIColor, linkTextColor: UIColor, linkHighlightColor: UIColor, scamColor: UIColor, textHighlightColor: UIColor, accentTextColor: UIColor, accentControlColor: UIColor, accentControlDisabledColor: UIColor, mediaActiveControlColor: UIColor, mediaInactiveControlColor: UIColor, mediaControlInnerBackgroundColor: UIColor, pendingActivityColor: UIColor, fileTitleColor: UIColor, fileDescriptionColor: UIColor, fileDurationColor: UIColor, mediaPlaceholderColor: UIColor, polls: PresentationThemeChatBubblePolls, actionButtonsFillColor: PresentationThemeVariableColor, actionButtonsStrokeColor: PresentationThemeVariableColor, actionButtonsTextColor: PresentationThemeVariableColor, textSelectionColor: UIColor, textSelectionKnobColor: UIColor) { self.bubble = bubble self.primaryTextColor = primaryTextColor self.secondaryTextColor = secondaryTextColor @@ -680,6 +687,7 @@ public final class PresentationThemePartedColors { self.textHighlightColor = textHighlightColor self.accentTextColor = accentTextColor self.accentControlColor = accentControlColor + self.accentControlDisabledColor = accentControlDisabledColor self.mediaActiveControlColor = mediaActiveControlColor self.mediaInactiveControlColor = mediaInactiveControlColor self.mediaControlInnerBackgroundColor = mediaControlInnerBackgroundColor @@ -696,8 +704,8 @@ public final class PresentationThemePartedColors { self.textSelectionKnobColor = textSelectionKnobColor } - public func withUpdated(bubble: PresentationThemeBubbleColor? = nil, primaryTextColor: UIColor? = nil, secondaryTextColor: UIColor? = nil, linkTextColor: UIColor? = nil, linkHighlightColor: UIColor? = nil, scamColor: UIColor? = nil, textHighlightColor: UIColor? = nil, accentTextColor: UIColor? = nil, accentControlColor: UIColor? = nil, mediaActiveControlColor: UIColor? = nil, mediaInactiveControlColor: UIColor? = nil, mediaControlInnerBackgroundColor: UIColor? = nil, pendingActivityColor: UIColor? = nil, fileTitleColor: UIColor? = nil, fileDescriptionColor: UIColor? = nil, fileDurationColor: UIColor? = nil, mediaPlaceholderColor: UIColor? = nil, polls: PresentationThemeChatBubblePolls? = nil, actionButtonsFillColor: PresentationThemeVariableColor? = nil, actionButtonsStrokeColor: PresentationThemeVariableColor? = nil, actionButtonsTextColor: PresentationThemeVariableColor? = nil, textSelectionColor: UIColor? = nil, textSelectionKnobColor: UIColor? = nil) -> PresentationThemePartedColors { - return PresentationThemePartedColors(bubble: bubble ?? self.bubble, primaryTextColor: primaryTextColor ?? self.primaryTextColor, secondaryTextColor: secondaryTextColor ?? self.secondaryTextColor, linkTextColor: linkTextColor ?? self.linkTextColor, linkHighlightColor: linkHighlightColor ?? self.linkHighlightColor, scamColor: scamColor ?? self.scamColor, textHighlightColor: textHighlightColor ?? self.textHighlightColor, accentTextColor: accentTextColor ?? self.accentTextColor, accentControlColor: accentControlColor ?? self.accentControlColor, mediaActiveControlColor: mediaActiveControlColor ?? self.mediaActiveControlColor, mediaInactiveControlColor: mediaInactiveControlColor ?? self.mediaInactiveControlColor, mediaControlInnerBackgroundColor: mediaControlInnerBackgroundColor ?? self.mediaControlInnerBackgroundColor, pendingActivityColor: pendingActivityColor ?? self.pendingActivityColor, fileTitleColor: fileTitleColor ?? self.fileTitleColor, fileDescriptionColor: fileDescriptionColor ?? self.fileDescriptionColor, fileDurationColor: fileDurationColor ?? self.fileDurationColor, mediaPlaceholderColor: mediaPlaceholderColor ?? self.mediaPlaceholderColor, polls: polls ?? self.polls, actionButtonsFillColor: actionButtonsFillColor ?? self.actionButtonsFillColor, actionButtonsStrokeColor: actionButtonsStrokeColor ?? self.actionButtonsStrokeColor, actionButtonsTextColor: actionButtonsTextColor ?? self.actionButtonsTextColor, textSelectionColor: textSelectionColor ?? self.textSelectionColor, textSelectionKnobColor: textSelectionKnobColor ?? self.textSelectionKnobColor) + public func withUpdated(bubble: PresentationThemeBubbleColor? = nil, primaryTextColor: UIColor? = nil, secondaryTextColor: UIColor? = nil, linkTextColor: UIColor? = nil, linkHighlightColor: UIColor? = nil, scamColor: UIColor? = nil, textHighlightColor: UIColor? = nil, accentTextColor: UIColor? = nil, accentControlColor: UIColor? = nil, accentControlDisabledColor: UIColor? = nil, mediaActiveControlColor: UIColor? = nil, mediaInactiveControlColor: UIColor? = nil, mediaControlInnerBackgroundColor: UIColor? = nil, pendingActivityColor: UIColor? = nil, fileTitleColor: UIColor? = nil, fileDescriptionColor: UIColor? = nil, fileDurationColor: UIColor? = nil, mediaPlaceholderColor: UIColor? = nil, polls: PresentationThemeChatBubblePolls? = nil, actionButtonsFillColor: PresentationThemeVariableColor? = nil, actionButtonsStrokeColor: PresentationThemeVariableColor? = nil, actionButtonsTextColor: PresentationThemeVariableColor? = nil, textSelectionColor: UIColor? = nil, textSelectionKnobColor: UIColor? = nil) -> PresentationThemePartedColors { + return PresentationThemePartedColors(bubble: bubble ?? self.bubble, primaryTextColor: primaryTextColor ?? self.primaryTextColor, secondaryTextColor: secondaryTextColor ?? self.secondaryTextColor, linkTextColor: linkTextColor ?? self.linkTextColor, linkHighlightColor: linkHighlightColor ?? self.linkHighlightColor, scamColor: scamColor ?? self.scamColor, textHighlightColor: textHighlightColor ?? self.textHighlightColor, accentTextColor: accentTextColor ?? self.accentTextColor, accentControlColor: accentControlColor ?? self.accentControlColor, accentControlDisabledColor: accentControlDisabledColor ?? self.accentControlDisabledColor, mediaActiveControlColor: mediaActiveControlColor ?? self.mediaActiveControlColor, mediaInactiveControlColor: mediaInactiveControlColor ?? self.mediaInactiveControlColor, mediaControlInnerBackgroundColor: mediaControlInnerBackgroundColor ?? self.mediaControlInnerBackgroundColor, pendingActivityColor: pendingActivityColor ?? self.pendingActivityColor, fileTitleColor: fileTitleColor ?? self.fileTitleColor, fileDescriptionColor: fileDescriptionColor ?? self.fileDescriptionColor, fileDurationColor: fileDurationColor ?? self.fileDurationColor, mediaPlaceholderColor: mediaPlaceholderColor ?? self.mediaPlaceholderColor, polls: polls ?? self.polls, actionButtonsFillColor: actionButtonsFillColor ?? self.actionButtonsFillColor, actionButtonsStrokeColor: actionButtonsStrokeColor ?? self.actionButtonsStrokeColor, actionButtonsTextColor: actionButtonsTextColor ?? self.actionButtonsTextColor, textSelectionColor: textSelectionColor ?? self.textSelectionColor, textSelectionKnobColor: textSelectionKnobColor ?? self.textSelectionKnobColor) } } diff --git a/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift b/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift index cff496f675..d470ce403f 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift @@ -1051,15 +1051,24 @@ extension PresentationThemeChatBubblePolls: Codable { case highlight case separator case bar + case barIconForeground + case barPositive + case barNegative } public convenience init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) - self.init(radioButton: try decodeColor(values, .radioButton), - radioProgress: try decodeColor(values, .radioProgress), - highlight: try decodeColor(values, .highlight), - separator: try decodeColor(values, .separator), - bar: try decodeColor(values, .bar)) + let bar = try decodeColor(values, .bar) + self.init( + radioButton: try decodeColor(values, .radioButton), + radioProgress: try decodeColor(values, .radioProgress), + highlight: try decodeColor(values, .highlight), + separator: try decodeColor(values, .separator), + bar: bar, + barIconForeground: (try? decodeColor(values, .barIconForeground)) ?? .white, + barPositive: (try? decodeColor(values, .barPositive)) ?? bar, + barNegative: (try? decodeColor(values, .barNegative)) ?? bar + ) } public func encode(to encoder: Encoder) throws { @@ -1069,6 +1078,9 @@ extension PresentationThemeChatBubblePolls: Codable { try encodeColor(&values, self.highlight, .highlight) try encodeColor(&values, self.separator, .separator) try encodeColor(&values, self.bar, .bar) + try encodeColor(&values, self.barIconForeground, .barIconForeground) + try encodeColor(&values, self.barPositive, .barPositive) + try encodeColor(&values, self.barNegative, .barNegative) } } @@ -1097,11 +1109,13 @@ extension PresentationThemePartedColors: Codable { case actionButtonsText case textSelection case textSelectionKnob + case accentControlDisabled } public convenience init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) let codingPath = decoder.codingPath.map { $0.stringValue }.joined(separator: ".") + let accentControlColor = try decodeColor(values, .accentControl) self.init( bubble: try values.decode(PresentationThemeBubbleColor.self, forKey: .bubble), primaryTextColor: try decodeColor(values, .primaryText), @@ -1111,7 +1125,8 @@ extension PresentationThemePartedColors: Codable { scamColor: try decodeColor(values, .scam), textHighlightColor: try decodeColor(values, .textHighlight), accentTextColor: try decodeColor(values, .accentText), - accentControlColor: try decodeColor(values, .accentControl), + accentControlColor: accentControlColor, + accentControlDisabledColor: (try? decodeColor(values, .accentControlDisabled)) ?? accentControlColor.withAlphaComponent(0.5), mediaActiveControlColor: try decodeColor(values, .mediaActiveControl), mediaInactiveControlColor: try decodeColor(values, .mediaInactiveControl), mediaControlInnerBackgroundColor: try decodeColor(values, .mediaControlInnerBg, decoder: decoder, fallbackKey: codingPath + ".bubble.withWp.bg"), diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index e1bd67a179..c677325613 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -1534,7 +1534,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G strongSelf.chatDisplayNode.dismissInput() strongSelf.present(controller, in: .window(.root)) } - }, requestSelectMessagePollOption: { [weak self] id, opaqueIdentifier in + }, requestSelectMessagePollOptions: { [weak self] id, opaqueIdentifiers in guard let strongSelf = self, let controllerInteraction = strongSelf.controllerInteraction else { return } @@ -1543,7 +1543,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G return } if controllerInteraction.pollActionState.pollMessageIdsInProgress[id] == nil { - controllerInteraction.pollActionState.pollMessageIdsInProgress[id] = opaqueIdentifier + controllerInteraction.pollActionState.pollMessageIdsInProgress[id] = opaqueIdentifiers strongSelf.chatDisplayNode.historyNode.requestMessageUpdate(id) let disposables: DisposableDict if let current = strongSelf.selectMessagePollOptionDisposables { @@ -1552,7 +1552,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G disposables = DisposableDict() strongSelf.selectMessagePollOptionDisposables = disposables } - let signal = requestMessageSelectPollOption(account: strongSelf.context.account, messageId: id, opaqueIdentifier: opaqueIdentifier) + let signal = requestMessageSelectPollOption(account: strongSelf.context.account, messageId: id, opaqueIdentifiers: opaqueIdentifiers) disposables.set((signal |> deliverOnMainQueue).start(error: { _ in guard let strongSelf = self, let controllerInteraction = strongSelf.controllerInteraction else { @@ -1574,6 +1574,24 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G strongSelf.selectPollOptionFeedback?.success() }), forKey: id) } + }, requestOpenMessagePollResults: { [weak self] messageId, pollId in + guard let strongSelf = self, pollId.namespace == Namespaces.Media.CloudPoll else { + return + } + let _ = (strongSelf.context.account.postbox.transaction { transaction -> Message? in + return transaction.getMessage(messageId) + } + |> deliverOnMainQueue).start(next: { message in + guard let message = message else { + return + } + for media in message.media { + if let poll = media as? TelegramMediaPoll, poll.pollId == pollId { + strongSelf.push(pollResultsController(context: strongSelf.context, messageId: messageId, poll: poll)) + break + } + } + }) }, openAppStorePage: { [weak self] in if let strongSelf = self { strongSelf.context.sharedContext.applicationBindings.openAppStorePage() @@ -3957,7 +3975,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } let controller = OverlayStatusController(theme: strongSelf.presentationData.theme, type: .loading(cancelled: nil)) strongSelf.present(controller, in: .window(.root)) - let signal = requestMessageSelectPollOption(account: strongSelf.context.account, messageId: id, opaqueIdentifier: nil) + let signal = requestMessageSelectPollOption(account: strongSelf.context.account, messageId: id, opaqueIdentifiers: []) |> afterDisposed { [weak controller] in Queue.mainQueue().async { controller?.dismiss() diff --git a/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift b/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift index 4a8b0f8122..21ee8f3dbd 100644 --- a/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift +++ b/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift @@ -45,7 +45,7 @@ public enum ChatControllerInteractionLongTapAction { } struct ChatInterfacePollActionState: Equatable { - var pollMessageIdsInProgress: [MessageId: Data] = [:] + var pollMessageIdsInProgress: [MessageId: [Data]] = [:] } public final class ChatControllerInteraction { @@ -91,7 +91,8 @@ public final class ChatControllerInteraction { let requestRedeliveryOfFailedMessages: (MessageId) -> Void let addContact: (String) -> Void let rateCall: (Message, CallId) -> Void - let requestSelectMessagePollOption: (MessageId, Data) -> Void + let requestSelectMessagePollOptions: (MessageId, [Data]) -> Void + let requestOpenMessagePollResults: (MessageId, MediaId) -> Void let openAppStorePage: () -> Void let displayMessageTooltip: (MessageId, String, ASDisplayNode?, CGRect?) -> Void let seekToTimecode: (Message, Double, Bool) -> Void @@ -117,7 +118,7 @@ public final class ChatControllerInteraction { var searchTextHighightState: (String, [MessageIndex])? var seenOneTimeAnimatedMedia = Set() - init(openMessage: @escaping (Message, ChatControllerInteractionOpenMessageMode) -> Bool, openPeer: @escaping (PeerId?, ChatControllerInteractionNavigateToPeer, Message?) -> Void, openPeerMention: @escaping (String) -> Void, openMessageContextMenu: @escaping (Message, Bool, ASDisplayNode, CGRect, TapLongTapOrDoubleTapGestureRecognizer?) -> Void, openMessageContextActions: @escaping (Message, ASDisplayNode, CGRect, ContextGesture?) -> Void, navigateToMessage: @escaping (MessageId, MessageId) -> Void, tapMessage: ((Message) -> Void)?, clickThroughMessage: @escaping () -> Void, toggleMessagesSelection: @escaping ([MessageId], Bool) -> Void, sendCurrentMessage: @escaping (Bool) -> Void, sendMessage: @escaping (String) -> Void, sendSticker: @escaping (FileMediaReference, Bool, ASDisplayNode, CGRect) -> Bool, sendGif: @escaping (FileMediaReference, ASDisplayNode, CGRect) -> Bool, requestMessageActionCallback: @escaping (MessageId, MemoryBuffer?, Bool) -> Void, requestMessageActionUrlAuth: @escaping (String, MessageId, Int32) -> Void, activateSwitchInline: @escaping (PeerId?, String) -> Void, openUrl: @escaping (String, Bool, Bool?, Message?) -> Void, shareCurrentLocation: @escaping () -> Void, shareAccountContact: @escaping () -> Void, sendBotCommand: @escaping (MessageId?, String) -> Void, openInstantPage: @escaping (Message, ChatMessageItemAssociatedData?) -> Void, openWallpaper: @escaping (Message) -> Void, openTheme: @escaping (Message) -> Void, openHashtag: @escaping (String?, String) -> Void, updateInputState: @escaping ((ChatTextInputState) -> ChatTextInputState) -> Void, updateInputMode: @escaping ((ChatInputMode) -> ChatInputMode) -> Void, openMessageShareMenu: @escaping (MessageId) -> Void, presentController: @escaping (ViewController, Any?) -> Void, navigationController: @escaping () -> NavigationController?, chatControllerNode: @escaping () -> ASDisplayNode?, reactionContainerNode: @escaping () -> ReactionSelectionParentNode?, presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void, callPeer: @escaping (PeerId) -> Void, longTap: @escaping (ChatControllerInteractionLongTapAction, Message?) -> Void, openCheckoutOrReceipt: @escaping (MessageId) -> Void, openSearch: @escaping () -> Void, setupReply: @escaping (MessageId) -> Void, canSetupReply: @escaping (Message) -> Bool, navigateToFirstDateMessage: @escaping(Int32) ->Void, requestRedeliveryOfFailedMessages: @escaping (MessageId) -> Void, addContact: @escaping (String) -> Void, rateCall: @escaping (Message, CallId) -> Void, requestSelectMessagePollOption: @escaping (MessageId, Data) -> Void, openAppStorePage: @escaping () -> Void, displayMessageTooltip: @escaping (MessageId, String, ASDisplayNode?, CGRect?) -> Void, seekToTimecode: @escaping (Message, Double, Bool) -> Void, scheduleCurrentMessage: @escaping () -> Void, sendScheduledMessagesNow: @escaping ([MessageId]) -> Void, editScheduledMessagesTime: @escaping ([MessageId]) -> Void, performTextSelectionAction: @escaping (UInt32, String, TextSelectionAction) -> Void, updateMessageReaction: @escaping (MessageId, String?) -> Void, openMessageReactions: @escaping (MessageId) -> Void, displaySwipeToReplyHint: @escaping () -> Void, dismissReplyMarkupMessage: @escaping (Message) -> Void, requestMessageUpdate: @escaping (MessageId) -> Void, cancelInteractiveKeyboardGestures: @escaping () -> Void, automaticMediaDownloadSettings: MediaAutoDownloadSettings, pollActionState: ChatInterfacePollActionState, stickerSettings: ChatInterfaceStickerSettings) { + init(openMessage: @escaping (Message, ChatControllerInteractionOpenMessageMode) -> Bool, openPeer: @escaping (PeerId?, ChatControllerInteractionNavigateToPeer, Message?) -> Void, openPeerMention: @escaping (String) -> Void, openMessageContextMenu: @escaping (Message, Bool, ASDisplayNode, CGRect, TapLongTapOrDoubleTapGestureRecognizer?) -> Void, openMessageContextActions: @escaping (Message, ASDisplayNode, CGRect, ContextGesture?) -> Void, navigateToMessage: @escaping (MessageId, MessageId) -> Void, tapMessage: ((Message) -> Void)?, clickThroughMessage: @escaping () -> Void, toggleMessagesSelection: @escaping ([MessageId], Bool) -> Void, sendCurrentMessage: @escaping (Bool) -> Void, sendMessage: @escaping (String) -> Void, sendSticker: @escaping (FileMediaReference, Bool, ASDisplayNode, CGRect) -> Bool, sendGif: @escaping (FileMediaReference, ASDisplayNode, CGRect) -> Bool, requestMessageActionCallback: @escaping (MessageId, MemoryBuffer?, Bool) -> Void, requestMessageActionUrlAuth: @escaping (String, MessageId, Int32) -> Void, activateSwitchInline: @escaping (PeerId?, String) -> Void, openUrl: @escaping (String, Bool, Bool?, Message?) -> Void, shareCurrentLocation: @escaping () -> Void, shareAccountContact: @escaping () -> Void, sendBotCommand: @escaping (MessageId?, String) -> Void, openInstantPage: @escaping (Message, ChatMessageItemAssociatedData?) -> Void, openWallpaper: @escaping (Message) -> Void, openTheme: @escaping (Message) -> Void, openHashtag: @escaping (String?, String) -> Void, updateInputState: @escaping ((ChatTextInputState) -> ChatTextInputState) -> Void, updateInputMode: @escaping ((ChatInputMode) -> ChatInputMode) -> Void, openMessageShareMenu: @escaping (MessageId) -> Void, presentController: @escaping (ViewController, Any?) -> Void, navigationController: @escaping () -> NavigationController?, chatControllerNode: @escaping () -> ASDisplayNode?, reactionContainerNode: @escaping () -> ReactionSelectionParentNode?, presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void, callPeer: @escaping (PeerId) -> Void, longTap: @escaping (ChatControllerInteractionLongTapAction, Message?) -> Void, openCheckoutOrReceipt: @escaping (MessageId) -> Void, openSearch: @escaping () -> Void, setupReply: @escaping (MessageId) -> Void, canSetupReply: @escaping (Message) -> Bool, navigateToFirstDateMessage: @escaping(Int32) ->Void, requestRedeliveryOfFailedMessages: @escaping (MessageId) -> Void, addContact: @escaping (String) -> Void, rateCall: @escaping (Message, CallId) -> Void, requestSelectMessagePollOptions: @escaping (MessageId, [Data]) -> Void, requestOpenMessagePollResults: @escaping (MessageId, MediaId) -> Void, openAppStorePage: @escaping () -> Void, displayMessageTooltip: @escaping (MessageId, String, ASDisplayNode?, CGRect?) -> Void, seekToTimecode: @escaping (Message, Double, Bool) -> Void, scheduleCurrentMessage: @escaping () -> Void, sendScheduledMessagesNow: @escaping ([MessageId]) -> Void, editScheduledMessagesTime: @escaping ([MessageId]) -> Void, performTextSelectionAction: @escaping (UInt32, String, TextSelectionAction) -> Void, updateMessageReaction: @escaping (MessageId, String?) -> Void, openMessageReactions: @escaping (MessageId) -> Void, displaySwipeToReplyHint: @escaping () -> Void, dismissReplyMarkupMessage: @escaping (Message) -> Void, requestMessageUpdate: @escaping (MessageId) -> Void, cancelInteractiveKeyboardGestures: @escaping () -> Void, automaticMediaDownloadSettings: MediaAutoDownloadSettings, pollActionState: ChatInterfacePollActionState, stickerSettings: ChatInterfaceStickerSettings) { self.openMessage = openMessage self.openPeer = openPeer self.openPeerMention = openPeerMention @@ -160,7 +161,8 @@ public final class ChatControllerInteraction { self.requestRedeliveryOfFailedMessages = requestRedeliveryOfFailedMessages self.addContact = addContact self.rateCall = rateCall - self.requestSelectMessagePollOption = requestSelectMessagePollOption + self.requestSelectMessagePollOptions = requestSelectMessagePollOptions + self.requestOpenMessagePollResults = requestOpenMessagePollResults self.openAppStorePage = openAppStorePage self.displayMessageTooltip = displayMessageTooltip self.seekToTimecode = seekToTimecode @@ -198,7 +200,8 @@ public final class ChatControllerInteraction { }, requestRedeliveryOfFailedMessages: { _ in }, addContact: { _ in }, rateCall: { _, _ in - }, requestSelectMessagePollOption: { _, _ in + }, requestSelectMessagePollOptions: { _, _ in + }, requestOpenMessagePollResults: { _, _ in }, openAppStorePage: { }, displayMessageTooltip: { _, _, _, _ in }, seekToTimecode: { _, _, _ in diff --git a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift index af37f08b4d..915720e34f 100644 --- a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift +++ b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift @@ -511,7 +511,7 @@ func contextMenuForChatPresentationIntefaceState(chatPresentationInterfaceState: hasSelected = true } } - if hasSelected { + if hasSelected, case .poll = activePoll.kind { actions.append(.action(ContextMenuActionItem(text: chatPresentationInterfaceState.strings.Conversation_UnvotePoll, icon: { theme in return generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/Unvote"), color: theme.actionSheet.primaryTextColor) }, action: { _, f in @@ -539,7 +539,7 @@ func contextMenuForChatPresentationIntefaceState(chatPresentationInterfaceState: } } - if let _ = activePoll, messages[0].forwardInfo == nil { + if let activePoll = activePoll, messages[0].forwardInfo == nil { var canStopPoll = false if !messages[0].flags.contains(.Incoming) { canStopPoll = true diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index 4db3123a19..f16e3d9022 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -7,8 +7,12 @@ import SyncCore import Postbox import TextFormat import UrlEscaping +import CheckNode +import SwiftSignalKit +import AccountContext +import AvatarNode -struct PercentCounterItem: Comparable { +private struct PercentCounterItem: Comparable { var index: Int = 0 var percent: Int = 0 var remainder: Int = 0 @@ -24,7 +28,7 @@ struct PercentCounterItem: Comparable { } -func adjustPercentCount(_ items: [PercentCounterItem], left: Int) -> [PercentCounterItem] { +private func adjustPercentCount(_ items: [PercentCounterItem], left: Int) -> [PercentCounterItem] { var left = left var items = items.sorted(by: <) var i:Int = 0 @@ -104,16 +108,26 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { private(set) var isAnimating: Bool = false private var startTime: Double? + private var checkNode: CheckNode? + private var displayLink: CADisplayLink? private var shouldBeAnimating: Bool { return self.isInHierarchyValue && self.isAnimating } + var isChecked: Bool? { + return self.checkNode?.isChecked + } + + func updateIsChecked(_ value: Bool, animated: Bool) { + self.checkNode?.setIsChecked(value, animated: animated) + } + override init() { super.init() - self.isLayerBacked = true + self.isUserInteractionEnabled = false self.isOpaque = false } @@ -139,7 +153,7 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { } } - func update(staticColor: UIColor, animatedColor: UIColor, isAnimating: Bool) { + func update(staticColor: UIColor, animatedColor: UIColor, foregroundColor: UIColor, isSelectable: Bool, isAnimating: Bool) { var updated = false if !staticColor.isEqual(self.staticColor) { self.staticColor = staticColor @@ -157,6 +171,20 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { self.updateAnimating() } } + if isSelectable { + if self.checkNode == nil { + updated = true + let checkNode = CheckNode(strokeColor: staticColor, fillColor: animatedColor, foregroundColor: foregroundColor, style: .plain) + self.checkNode = checkNode + self.addSubnode(checkNode) + checkNode.isUserInteractionEnabled = false + checkNode.frame = CGRect(origin: CGPoint(x: -5.0, y: -5.0), size: CGSize(width: 32.0, height: 32.0)) + } + } else if let checkNode = self.checkNode { + updated = true + self.checkNode = nil + checkNode.removeFromSupernode() + } if updated { self.setNeedsDisplay() } @@ -197,7 +225,7 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { if let startTime = self.startTime { offset = CACurrentMediaTime() - startTime } - return ChatMessagePollOptionRadioNodeParameters(staticColor: staticColor, animatedColor: animatedColor, offset: offset) + return ChatMessagePollOptionRadioNodeParameters(staticColor: self.checkNode == nil ? staticColor : .clear, animatedColor: animatedColor, offset: offset) } else { return nil } @@ -311,19 +339,26 @@ private struct ChatMessagePollOptionResult: Equatable { let count: Int32 } +private struct ChatMessagePollOptionSelection: Equatable { + var isSelected: Bool + var isCorrect: Bool +} + private final class ChatMessagePollOptionNode: ASDisplayNode { private let highlightedBackgroundNode: ASDisplayNode - private var radioNode: ChatMessagePollOptionRadioNode? + private(set) var radioNode: ChatMessagePollOptionRadioNode? private let percentageNode: ASDisplayNode private var percentageImage: UIImage? private var titleNode: TextNode? private let buttonNode: HighlightTrackingButtonNode private let separatorNode: ASDisplayNode private let resultBarNode: ASImageNode - + private let resultBarIconNode: ASImageNode var option: TelegramMediaPollOption? - public private(set) var currentResult: ChatMessagePollOptionResult? + private(set) var currentResult: ChatMessagePollOptionResult? + private(set) var currentSelection: ChatMessagePollOptionSelection? var pressed: (() -> Void)? + var selectionUpdated: (() -> Void)? override init() { self.highlightedBackgroundNode = ASDisplayNode() @@ -338,6 +373,9 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { self.resultBarNode.isLayerBacked = true self.resultBarNode.alpha = 0.0 + self.resultBarIconNode = ASImageNode() + self.resultBarIconNode.isLayerBacked = true + self.percentageNode = ASDisplayNode() self.percentageNode.alpha = 0.0 self.percentageNode.isLayerBacked = true @@ -347,6 +385,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { self.addSubnode(self.highlightedBackgroundNode) self.addSubnode(self.separatorNode) self.addSubnode(self.resultBarNode) + self.addSubnode(self.resultBarIconNode) self.addSubnode(self.percentageNode) self.addSubnode(self.buttonNode) @@ -365,14 +404,20 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { } @objc private func buttonPressed() { - self.pressed?() + if let radioNode = self.radioNode, let isChecked = radioNode.isChecked { + radioNode.updateIsChecked(!isChecked, animated: true) + self.selectionUpdated?() + } else { + self.pressed?() + } } - static func asyncLayout(_ maybeNode: ChatMessagePollOptionNode?) -> (_ accountPeerId: PeerId, _ presentationData: ChatPresentationData, _ message: Message, _ option: TelegramMediaPollOption, _ optionResult: ChatMessagePollOptionResult?, _ constrainedWidth: CGFloat) -> (minimumWidth: CGFloat, layout: ((CGFloat) -> (CGSize, (Bool, Bool) -> ChatMessagePollOptionNode))) { + static func asyncLayout(_ maybeNode: ChatMessagePollOptionNode?) -> (_ accountPeerId: PeerId, _ presentationData: ChatPresentationData, _ message: Message, _ poll: TelegramMediaPoll, _ option: TelegramMediaPollOption, _ optionResult: ChatMessagePollOptionResult?, _ constrainedWidth: CGFloat) -> (minimumWidth: CGFloat, layout: ((CGFloat) -> (CGSize, (Bool, Bool) -> ChatMessagePollOptionNode))) { let makeTitleLayout = TextNode.asyncLayout(maybeNode?.titleNode) let currentResult = maybeNode?.currentResult + let currentSelection = maybeNode?.currentSelection - return { accountPeerId, presentationData, message, option, optionResult, constrainedWidth in + return { accountPeerId, presentationData, message, poll, option, optionResult, constrainedWidth in let leftInset: CGFloat = 50.0 let rightInset: CGFloat = 12.0 @@ -383,12 +428,84 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { let contentHeight: CGFloat = max(46.0, titleLayout.size.height + 22.0) let shouldHaveRadioNode = optionResult == nil + let isSelectable: Bool + if shouldHaveRadioNode, case .poll(multipleAnswers: true) = poll.kind { + isSelectable = true + } else { + isSelectable = false + } var updatedPercentageImage: UIImage? if currentResult != optionResult { updatedPercentageImage = generatePercentageImage(presentationData: presentationData, incoming: incoming, value: optionResult?.percent ?? 0) } + var resultIcon: UIImage? + var updatedResultIcon = false + + var selection: ChatMessagePollOptionSelection? + if optionResult != nil { + if let voters = poll.results.voters { + for voter in voters { + if voter.opaqueIdentifier == option.opaqueIdentifier { + if voter.selected || voter.isCorrect { + selection = ChatMessagePollOptionSelection(isSelected: voter.selected, isCorrect: voter.isCorrect) + } + break + } + } + } + } + if selection != currentSelection { + updatedResultIcon = true + if let selection = selection { + var isQuiz = false + if case .quiz = poll.kind { + isQuiz = true + } + resultIcon = generateImage(CGSize(width: 16.0, height: 16.0), rotatedContext: { size, context in + context.clear(CGRect(origin: CGPoint(), size: size)) + var isIncorrect = false + let fillColor: UIColor + if selection.isSelected { + if isQuiz { + if selection.isCorrect { + fillColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.barPositive : presentationData.theme.theme.chat.message.outgoing.polls.barPositive + } else { + fillColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.barNegative : presentationData.theme.theme.chat.message.outgoing.polls.barNegative + isIncorrect = true + } + } else { + fillColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.bar : presentationData.theme.theme.chat.message.outgoing.polls.bar + } + } else if isQuiz && selection.isCorrect { + fillColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.bar : presentationData.theme.theme.chat.message.outgoing.polls.bar + } else { + fillColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.bar : presentationData.theme.theme.chat.message.outgoing.polls.bar + } + context.setFillColor(fillColor.cgColor) + context.fillEllipse(in: CGRect(origin: CGPoint(), size: size)) + + let strokeColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.barIconForeground : presentationData.theme.theme.chat.message.outgoing.polls.barIconForeground + context.setStrokeColor(strokeColor.cgColor) + context.setLineWidth(1.5) + context.setLineJoin(.round) + context.setLineCap(.round) + if isIncorrect { + context.translateBy(x: 5.0, y: 5.0) + context.move(to: CGPoint(x: 0.0, y: 6.0)) + context.addLine(to: CGPoint(x: 6.0, y: 0.0)) + context.strokePath() + context.move(to: CGPoint(x: 0.0, y: 0.0)) + context.addLine(to: CGPoint(x: 6.0, y: 6.0)) + context.strokePath() + } else { + let _ = try? drawSvgPath(context, path: "M4,8.5 L6.44778395,10.9477839 C6.47662208,10.9766221 6.52452135,10.9754786 6.54754782,10.9524522 L12,5.5 S ") + } + }) + } + } + return (titleLayout.size.width + leftInset + rightInset, { width in return (CGSize(width: width, height: contentHeight), { animated, inProgress in let node: ChatMessagePollOptionNode @@ -432,7 +549,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { } let radioSize: CGFloat = 22.0 radioNode.frame = CGRect(origin: CGPoint(x: 12.0, y: 12.0), size: CGSize(width: radioSize, height: radioSize)) - radioNode.update(staticColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.radioButton : presentationData.theme.theme.chat.message.outgoing.polls.radioButton, animatedColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.radioProgress : presentationData.theme.theme.chat.message.outgoing.polls.radioProgress, isAnimating: inProgress) + radioNode.update(staticColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.radioButton : presentationData.theme.theme.chat.message.outgoing.polls.radioButton, animatedColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.radioProgress : presentationData.theme.theme.chat.message.outgoing.polls.radioProgress, foregroundColor: presentationData.theme.theme.list.itemCheckColors.foregroundColor, isSelectable: isSelectable, isAnimating: inProgress) } else if let radioNode = node.radioNode { node.radioNode = nil if animated { @@ -469,26 +586,60 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { node.separatorNode.backgroundColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.separator : presentationData.theme.theme.chat.message.outgoing.polls.separator node.separatorNode.frame = CGRect(origin: CGPoint(x: leftInset, y: contentHeight - UIScreenPixel), size: CGSize(width: width - leftInset, height: UIScreenPixel)) - if node.resultBarNode.image == nil { - node.resultBarNode.image = generateStretchableFilledCircleImage(diameter: 6.0, color: incoming ? presentationData.theme.theme.chat.message.incoming.polls.bar : presentationData.theme.theme.chat.message.outgoing.polls.bar) + if node.resultBarNode.image == nil || updatedResultIcon { + var isQuiz = false + if case .quiz = poll.kind { + isQuiz = true + } + let fillColor: UIColor + if let selection = selection { + if selection.isSelected { + if isQuiz { + if selection.isCorrect { + fillColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.barPositive : presentationData.theme.theme.chat.message.outgoing.polls.barPositive + } else { + fillColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.barNegative : presentationData.theme.theme.chat.message.outgoing.polls.barNegative + } + } else { + fillColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.bar : presentationData.theme.theme.chat.message.outgoing.polls.bar + } + } else if isQuiz && selection.isCorrect { + fillColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.bar : presentationData.theme.theme.chat.message.outgoing.polls.bar + } else { + fillColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.bar : presentationData.theme.theme.chat.message.outgoing.polls.bar + } + } else { + fillColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.bar : presentationData.theme.theme.chat.message.outgoing.polls.bar + } + + node.resultBarNode.image = generateStretchableFilledCircleImage(diameter: 6.0, color: fillColor) + } + + if updatedResultIcon { + node.resultBarIconNode.image = resultIcon } let minBarWidth: CGFloat = 6.0 let resultBarWidth = minBarWidth + floor((width - leftInset - rightInset - minBarWidth) * (optionResult?.normalized ?? 0.0)) - node.resultBarNode.frame = CGRect(origin: CGPoint(x: leftInset, y: contentHeight - 6.0 - 1.0), size: CGSize(width: resultBarWidth, height: 6.0)) + let barFrame = CGRect(origin: CGPoint(x: leftInset, y: contentHeight - 6.0 - 1.0), size: CGSize(width: resultBarWidth, height: 6.0)) + node.resultBarNode.frame = barFrame + node.resultBarIconNode.frame = CGRect(origin: CGPoint(x: barFrame.minX - 6.0 - 16.0, y: barFrame.minY + floor((barFrame.height - 16.0) / 2.0)), size: CGSize(width: 16.0, height: 16.0)) node.resultBarNode.alpha = optionResult != nil ? 1.0 : 0.0 node.percentageNode.alpha = optionResult != nil ? 1.0 : 0.0 node.separatorNode.alpha = optionResult == nil ? 1.0 : 0.0 + node.resultBarIconNode.alpha = optionResult != nil ? 1.0 : 0.0 if animated, currentResult != optionResult { if (currentResult != nil) != (optionResult != nil) { if optionResult != nil { node.resultBarNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.1) node.percentageNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) node.separatorNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.08) + node.resultBarIconNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) } else { node.resultBarNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.4) node.percentageNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) node.separatorNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) + node.resultBarIconNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2) } } @@ -513,10 +664,17 @@ private let labelsFont = Font.regular(14.0) class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { private let textNode: TextNode private let typeNode: TextNode + private let avatarsNode: MergedAvatarsNode private let votersNode: TextNode + private let buttonSubmitInactiveTextNode: TextNode + private let buttonSubmitActiveTextNode: TextNode + private let buttonViewResultsTextNode: TextNode + private let buttonNode: HighlightableButtonNode private let statusNode: ChatMessageDateAndStatusNode private var optionNodes: [ChatMessagePollOptionNode] = [] + private var poll: TelegramMediaPoll? + required init() { self.textNode = TextNode() self.textNode.isUserInteractionEnabled = false @@ -530,29 +688,100 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { self.typeNode.contentsScale = UIScreenScale self.typeNode.displaysAsynchronously = true + self.avatarsNode = MergedAvatarsNode() + self.votersNode = TextNode() self.votersNode.isUserInteractionEnabled = false self.votersNode.contentMode = .topLeft self.votersNode.contentsScale = UIScreenScale self.votersNode.displaysAsynchronously = true + self.buttonSubmitInactiveTextNode = TextNode() + self.buttonSubmitInactiveTextNode.isUserInteractionEnabled = false + self.buttonSubmitInactiveTextNode.contentMode = .topLeft + self.buttonSubmitInactiveTextNode.contentsScale = UIScreenScale + self.buttonSubmitInactiveTextNode.displaysAsynchronously = true + + self.buttonSubmitActiveTextNode = TextNode() + self.buttonSubmitActiveTextNode.isUserInteractionEnabled = false + self.buttonSubmitActiveTextNode.contentMode = .topLeft + self.buttonSubmitActiveTextNode.contentsScale = UIScreenScale + self.buttonSubmitActiveTextNode.displaysAsynchronously = true + + self.buttonViewResultsTextNode = TextNode() + self.buttonViewResultsTextNode.isUserInteractionEnabled = false + self.buttonViewResultsTextNode.contentMode = .topLeft + self.buttonViewResultsTextNode.contentsScale = UIScreenScale + self.buttonViewResultsTextNode.displaysAsynchronously = true + + self.buttonNode = HighlightableButtonNode() + self.statusNode = ChatMessageDateAndStatusNode() super.init() self.addSubnode(self.textNode) self.addSubnode(self.typeNode) + self.addSubnode(self.avatarsNode) self.addSubnode(self.votersNode) + self.addSubnode(self.buttonSubmitInactiveTextNode) + self.addSubnode(self.buttonSubmitActiveTextNode) + self.addSubnode(self.buttonViewResultsTextNode) + self.addSubnode(self.buttonNode) + + self.buttonNode.addTarget(self, action: #selector(self.buttonPressed), forControlEvents: .touchUpInside) + self.buttonNode.highligthedChanged = { [weak self] highlighted in + if let strongSelf = self { + if highlighted { + strongSelf.buttonSubmitActiveTextNode.layer.removeAnimation(forKey: "opacity") + strongSelf.buttonSubmitActiveTextNode.alpha = 0.6 + strongSelf.buttonViewResultsTextNode.layer.removeAnimation(forKey: "opacity") + strongSelf.buttonViewResultsTextNode.alpha = 0.6 + } else { + strongSelf.buttonSubmitActiveTextNode.alpha = 1.0 + strongSelf.buttonSubmitActiveTextNode.layer.animateAlpha(from: 0.6, to: 1.0, duration: 0.3) + strongSelf.buttonViewResultsTextNode.alpha = 1.0 + strongSelf.buttonViewResultsTextNode.layer.animateAlpha(from: 0.6, to: 1.0, duration: 0.3) + } + } + } } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } + @objc private func buttonPressed() { + guard let item = self.item, let poll = self.poll, let pollId = poll.id else { + return + } + + var hasSelection = false + var selectedOpaqueIdentifiers: [Data] = [] + for optionNode in self.optionNodes { + if let option = optionNode.option { + if let isChecked = optionNode.radioNode?.isChecked { + hasSelection = true + if isChecked { + selectedOpaqueIdentifiers.append(option.opaqueIdentifier) + } + } + } + } + if !hasSelection { + item.controllerInteraction.requestOpenMessagePollResults(item.message.id, pollId) + } else if !selectedOpaqueIdentifiers.isEmpty { + item.controllerInteraction.requestSelectMessagePollOptions(item.message.id, selectedOpaqueIdentifiers) + } + } + override func asyncLayoutContent() -> (_ item: ChatMessageBubbleContentItem, _ layoutConstants: ChatMessageItemLayoutConstants, _ preparePosition: ChatMessageBubblePreparePosition, _ messageSelection: Bool?, _ constrainedSize: CGSize) -> (ChatMessageBubbleContentProperties, CGSize?, CGFloat, (CGSize, ChatMessageBubbleContentPosition) -> (CGFloat, (CGFloat) -> (CGSize, (ListViewItemUpdateAnimation, Bool) -> Void))) { let makeTextLayout = TextNode.asyncLayout(self.textNode) let makeTypeLayout = TextNode.asyncLayout(self.typeNode) let makeVotersLayout = TextNode.asyncLayout(self.votersNode) + let makeSubmitInactiveTextLayout = TextNode.asyncLayout(self.buttonSubmitInactiveTextNode) + let makeSubmitActiveTextLayout = TextNode.asyncLayout(self.buttonSubmitActiveTextNode) + let makeViewResultsTextLayout = TextNode.asyncLayout(self.buttonViewResultsTextNode) let statusLayout = self.statusNode.asyncLayout() var previousPoll: TelegramMediaPoll? @@ -564,11 +793,15 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } } - var previousOptionNodeLayouts: [Data: (_ accountPeerId: PeerId, _ presentationData: ChatPresentationData, _ message: Message, _ option: TelegramMediaPollOption, _ optionResult: ChatMessagePollOptionResult?, _ constrainedWidth: CGFloat) -> (minimumWidth: CGFloat, layout: ((CGFloat) -> (CGSize, (Bool, Bool) -> ChatMessagePollOptionNode)))] = [:] + var previousOptionNodeLayouts: [Data: (_ accountPeerId: PeerId, _ presentationData: ChatPresentationData, _ message: Message, _ poll: TelegramMediaPoll, _ option: TelegramMediaPollOption, _ optionResult: ChatMessagePollOptionResult?, _ constrainedWidth: CGFloat) -> (minimumWidth: CGFloat, layout: ((CGFloat) -> (CGSize, (Bool, Bool) -> ChatMessagePollOptionNode)))] = [:] + var hasSelectedOptions = false for optionNode in self.optionNodes { if let option = optionNode.option { previousOptionNodeLayouts[option.opaqueIdentifier] = ChatMessagePollOptionNode.asyncLayout(optionNode) } + if let isChecked = optionNode.radioNode?.isChecked, isChecked { + hasSelectedOptions = true + } } return { item, layoutConstants, _, _, _ in @@ -653,8 +886,35 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { let (textLayout, textApply) = makeTextLayout(TextNodeLayoutArguments(attributedString: attributedText, backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: textConstrainedSize, alignment: .natural, cutout: nil, insets: textInsets)) let typeText: String - if let poll = poll, poll.isClosed { + + var avatarPeers: [Peer] = [] + if let poll = poll { + for peerId in poll.results.recentVoters { + if let peer = item.message.peers[peerId] { + avatarPeers.append(peer) + } + } + } + + if let poll = poll, poll.isClosed, case .poll = poll.kind { typeText = item.presentationData.strings.MessagePoll_LabelClosed + } else if let poll = poll { + switch poll.kind { + case .poll: + switch poll.publicity { + case .anonymous: + typeText = item.presentationData.strings.MessagePoll_LabelAnonymous + case .public: + typeText = item.presentationData.strings.MessagePoll_LabelPoll + } + case .quiz: + switch poll.publicity { + case .anonymous: + typeText = item.presentationData.strings.MessagePoll_LabelAnonymousQuiz + case .public: + typeText = item.presentationData.strings.MessagePoll_LabelQuiz + } + } } else { typeText = item.presentationData.strings.MessagePoll_LabelAnonymous } @@ -672,6 +932,10 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } let (votersLayout, votersApply) = makeVotersLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: votersString, font: labelsFont, textColor: messageTheme.secondaryTextColor), backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: textConstrainedSize, alignment: .natural, cutout: nil, insets: textInsets)) + let (buttonSubmitInactiveTextLayout, buttonSubmitInactiveTextApply) = makeSubmitInactiveTextLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: item.presentationData.strings.MessagePoll_SubmitVote, font: Font.regular(17.0), textColor: messageTheme.accentControlDisabledColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: textConstrainedSize, alignment: .natural, cutout: nil, insets: textInsets)) + let (buttonSubmitActiveTextLayout, buttonSubmitActiveTextApply) = makeSubmitActiveTextLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: item.presentationData.strings.MessagePoll_SubmitVote, font: Font.regular(17.0), textColor: messageTheme.polls.bar), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: textConstrainedSize, alignment: .natural, cutout: nil, insets: textInsets)) + let (buttonViewResultsTextLayout, buttonViewResultsTextApply) = makeViewResultsTextLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: item.presentationData.strings.MessagePoll_ViewResults, font: Font.regular(17.0), textColor: messageTheme.polls.bar), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: textConstrainedSize, alignment: .natural, cutout: nil, insets: textInsets)) + var textFrame = CGRect(origin: CGPoint(x: -textInsets.left, y: -textInsets.top), size: textLayout.size) var textFrameWithoutInsets = CGRect(origin: CGPoint(x: textFrame.origin.x + textInsets.left, y: textFrame.origin.y + textInsets.top), size: CGSize(width: textFrame.width - textInsets.left - textInsets.right, height: textFrame.height - textInsets.top - textInsets.bottom)) @@ -687,6 +951,8 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { var boundingSize: CGSize = textFrameWithoutInsets.size boundingSize.width = max(boundingSize.width, typeLayout.size.width) boundingSize.width = max(boundingSize.width, votersLayout.size.width + 4.0 + (statusSize?.width ?? 0.0)) + boundingSize.width = max(boundingSize.width, buttonSubmitInactiveTextLayout.size.width + 4.0 + (statusSize?.width ?? 0.0)) + boundingSize.width = max(boundingSize.width, buttonViewResultsTextLayout.size.width + 4.0 + (statusSize?.width ?? 0.0)) boundingSize.width += layoutConstants.text.bubbleInsets.left + layoutConstants.text.bubbleInsets.right boundingSize.height += layoutConstants.text.bubbleInsets.top + layoutConstants.text.bubbleInsets.bottom @@ -733,7 +999,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { for i in 0 ..< poll.options.count { let option = poll.options[i] - let makeLayout: (_ accountPeerId: PeerId, _ presentationData: ChatPresentationData, _ message: Message, _ option: TelegramMediaPollOption, _ optionResult: ChatMessagePollOptionResult?, _ constrainedWidth: CGFloat) -> (minimumWidth: CGFloat, layout: ((CGFloat) -> (CGSize, (Bool, Bool) -> ChatMessagePollOptionNode))) + let makeLayout: (_ accountPeerId: PeerId, _ presentationData: ChatPresentationData, _ message: Message, _ poll: TelegramMediaPoll, _ option: TelegramMediaPollOption, _ optionResult: ChatMessagePollOptionResult?, _ constrainedWidth: CGFloat) -> (minimumWidth: CGFloat, layout: ((CGFloat) -> (CGSize, (Bool, Bool) -> ChatMessagePollOptionNode))) if let previous = previousOptionNodeLayouts[option.opaqueIdentifier] { makeLayout = previous } else { @@ -749,7 +1015,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } else if poll.isClosed { optionResult = ChatMessagePollOptionResult(normalized: 0, percent: 0, count: 0) } - let result = makeLayout(item.context.account.peerId, item.presentationData, item.message, option, optionResult, constrainedSize.width - layoutConstants.bubble.borderInset * 2.0) + let result = makeLayout(item.context.account.peerId, item.presentationData, item.message, poll, option, optionResult, constrainedSize.width - layoutConstants.bubble.borderInset * 2.0) boundingSize.width = max(boundingSize.width, result.minimumWidth + layoutConstants.bubble.borderInset * 2.0) pollOptionsFinalizeLayouts.append(result.1) } @@ -792,7 +1058,8 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } let optionsVotersSpacing: CGFloat = 11.0 - let votersBottomSpacing: CGFloat = 8.0 + let optionsButtonSpacing: CGFloat = 8.0 + let votersBottomSpacing: CGFloat = 11.0 resultSize.height += optionsVotersSpacing + votersLayout.size.height + votersBottomSpacing var adjustedStatusFrame: CGRect? @@ -800,9 +1067,10 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { adjustedStatusFrame = CGRect(origin: CGPoint(x: boundingWidth - statusFrame.size.width - layoutConstants.text.bubbleInsets.right, y: resultSize.height - statusFrame.size.height - 6.0), size: statusFrame.size) } - return (resultSize, { [weak self] animation, _ in + return (resultSize, { [weak self] animation, synchronousLoad in if let strongSelf = self { strongSelf.item = item + strongSelf.poll = poll let cachedLayout = strongSelf.textNode.cachedLayout @@ -834,7 +1102,9 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { let (size, apply) = optionNodesSizesAndApply[i] var isRequesting = false if let poll = poll, i < poll.options.count { - isRequesting = item.controllerInteraction.pollActionState.pollMessageIdsInProgress[item.message.id] == poll.options[i].opaqueIdentifier + if let inProgressOpaqueIds = item.controllerInteraction.pollActionState.pollMessageIdsInProgress[item.message.id] { + isRequesting = inProgressOpaqueIds.contains(poll.options[i].opaqueIdentifier) + } } let optionNode = apply(animation.isAnimated, isRequesting) if optionNode.supernode !== strongSelf { @@ -845,7 +1115,13 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { return } - item.controllerInteraction.requestSelectMessagePollOption(item.message.id, option.opaqueIdentifier) + item.controllerInteraction.requestSelectMessagePollOptions(item.message.id, [option.opaqueIdentifier]) + } + optionNode.selectionUpdated = { + guard let strongSelf = self else { + return + } + strongSelf.updateSelection() } } optionNode.frame = CGRect(origin: CGPoint(x: layoutConstants.bubble.borderInset, y: verticalOffset), size: size) @@ -887,15 +1163,31 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } else { strongSelf.textNode.frame = textFrame } - strongSelf.typeNode.frame = CGRect(origin: CGPoint(x: textFrame.minX, y: textFrame.maxY + titleTypeSpacing), size: typeLayout.size) + let typeFrame = CGRect(origin: CGPoint(x: textFrame.minX, y: textFrame.maxY + titleTypeSpacing), size: typeLayout.size) + strongSelf.typeNode.frame = typeFrame + strongSelf.avatarsNode.frame = CGRect(origin: CGPoint(x: typeFrame.maxX + 6.0, y: typeFrame.minY + floor((typeFrame.height - mergedImageSize) / 2.0)), size: CGSize(width: mergedImageSpacing * 3.0, height: mergedImageSize)) + strongSelf.avatarsNode.update(context: item.context, peers: avatarPeers, synchronousLoad: synchronousLoad) let _ = votersApply() - strongSelf.votersNode.frame = CGRect(origin: CGPoint(x: textFrame.minX, y: verticalOffset + optionsVotersSpacing), size: votersLayout.size) + strongSelf.votersNode.frame = CGRect(origin: CGPoint(x: floor((resultSize.width - votersLayout.size.width) / 2.0), y: verticalOffset + optionsVotersSpacing), size: votersLayout.size) if animation.isAnimated, let previousPoll = previousPoll, let poll = poll { if previousPoll.results.totalVoters == nil && poll.results.totalVoters != nil { strongSelf.votersNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25) } } + + let _ = buttonSubmitInactiveTextApply() + strongSelf.buttonSubmitInactiveTextNode.frame = CGRect(origin: CGPoint(x: floor((resultSize.width - buttonSubmitInactiveTextLayout.size.width) / 2.0), y: verticalOffset + optionsButtonSpacing), size: buttonSubmitInactiveTextLayout.size) + + let _ = buttonSubmitActiveTextApply() + strongSelf.buttonSubmitActiveTextNode.frame = CGRect(origin: CGPoint(x: floor((resultSize.width - buttonSubmitActiveTextLayout.size.width) / 2.0), y: verticalOffset + optionsButtonSpacing), size: buttonSubmitActiveTextLayout.size) + + let _ = buttonViewResultsTextApply() + strongSelf.buttonViewResultsTextNode.frame = CGRect(origin: CGPoint(x: floor((resultSize.width - buttonViewResultsTextLayout.size.width) / 2.0), y: verticalOffset + optionsButtonSpacing), size: buttonViewResultsTextLayout.size) + + strongSelf.buttonNode.frame = CGRect(origin: CGPoint(x: 0.0, y: verticalOffset), size: CGSize(width: resultSize.width, height: 44.0)) + + strongSelf.updateSelection() } }) }) @@ -903,6 +1195,43 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } } + private func updateSelection() { + guard let poll = self.poll else { + return + } + + var hasSelection = false + var hasSelectedOptions = false + for optionNode in self.optionNodes { + if let isChecked = optionNode.radioNode?.isChecked { + hasSelection = true + if isChecked { + hasSelectedOptions = true + } + } + } + + if hasSelection && poll.pollId.namespace == Namespaces.Media.CloudPoll { + self.votersNode.isHidden = true + self.buttonViewResultsTextNode.isHidden = true + self.buttonSubmitInactiveTextNode.isHidden = hasSelectedOptions + self.buttonSubmitActiveTextNode.isHidden = !hasSelectedOptions + self.buttonNode.isHidden = !hasSelectedOptions + } else { + if case .public = poll.publicity { + self.votersNode.isHidden = true + self.buttonViewResultsTextNode.isHidden = false + self.buttonNode.isHidden = false + } else { + self.votersNode.isHidden = false + self.buttonViewResultsTextNode.isHidden = true + self.buttonNode.isHidden = true + } + self.buttonSubmitInactiveTextNode.isHidden = true + self.buttonSubmitActiveTextNode.isHidden = true + } + } + override func animateInsertion(_ currentTimestamp: Double, duration: Double) { self.textNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) self.statusNode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) @@ -954,6 +1283,9 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } } } + if self.buttonNode.isUserInteractionEnabled, !self.buttonNode.isHidden, self.buttonNode.frame.contains(point) { + return .ignore + } return .none } } @@ -965,3 +1297,167 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { return nil } } + +private enum PeerAvatarReference: Equatable { + case letters(PeerId, [String]) + case image(PeerReference, TelegramMediaImageRepresentation) + + var peerId: PeerId { + switch self { + case let .letters(value, _): + return value + case let .image(value, _): + return value.id + } + } +} + +private extension PeerAvatarReference { + init(peer: Peer) { + if let photo = peer.smallProfileImage, let peerReference = PeerReference(peer) { + self = .image(peerReference, photo) + } else { + self = .letters(peer.id, peer.displayLetters) + } + } +} + +private final class MergedAvatarsNodeArguments: NSObject { + let peers: [PeerAvatarReference] + let images: [PeerId: UIImage] + + init(peers: [PeerAvatarReference], images: [PeerId: UIImage]) { + self.peers = peers + self.images = images + } +} + +private let mergedImageSize: CGFloat = 16.0 +private let mergedImageSpacing: CGFloat = 15.0 + +private let avatarFont = avatarPlaceholderFont(size: 8.0) + +private final class MergedAvatarsNode: ASDisplayNode { + private var peers: [PeerAvatarReference] = [] + private var images: [PeerId: UIImage] = [:] + private var disposables: [PeerId: Disposable] = [:] + + override init() { + super.init() + + self.isOpaque = false + self.displaysAsynchronously = true + } + + deinit { + for (_, disposable) in self.disposables { + disposable.dispose() + } + } + + func update(context: AccountContext, peers: [Peer], synchronousLoad: Bool) { + var filteredPeers = peers.map(PeerAvatarReference.init) + if filteredPeers.count > 3 { + filteredPeers.dropLast(filteredPeers.count - 3) + } + if filteredPeers != self.peers { + self.peers = filteredPeers + + var validImageIds: [PeerId] = [] + for peer in filteredPeers { + if case .image = peer { + validImageIds.append(peer.peerId) + } + } + + var removedImageIds: [PeerId] = [] + for (id, _) in self.images { + if !validImageIds.contains(id) { + removedImageIds.append(id) + } + } + var removedDisposableIds: [PeerId] = [] + for (id, disposable) in self.disposables { + if !validImageIds.contains(id) { + disposable.dispose() + removedDisposableIds.append(id) + } + } + for id in removedImageIds { + self.images.removeValue(forKey: id) + } + for id in removedDisposableIds { + self.disposables.removeValue(forKey: id) + } + for peer in filteredPeers { + switch peer { + case let .image(peerReference, representation): + if self.disposables[peer.peerId] == nil { + if let signal = peerAvatarImage(account: context.account, peerReference: peerReference, authorOfMessage: nil, representation: representation, displayDimensions: CGSize(width: mergedImageSize, height: mergedImageSize), synchronousLoad: synchronousLoad) { + let disposable = (signal + |> deliverOnMainQueue).start(next: { [weak self] image in + guard let strongSelf = self else { + return + } + if let image = image { + strongSelf.images[peer.peerId] = image + strongSelf.setNeedsDisplay() + } + }) + self.disposables[peer.peerId] = disposable + } + } + case .letters: + break + } + } + self.setNeedsDisplay() + } + } + + override func drawParameters(forAsyncLayer layer: _ASDisplayLayer) -> NSObjectProtocol { + return MergedAvatarsNodeArguments(peers: self.peers, images: self.images) + } + + @objc override class func draw(_ bounds: CGRect, withParameters parameters: Any?, isCancelled: () -> Bool, isRasterizing: Bool) { + assertNotOnMainThread() + + let context = UIGraphicsGetCurrentContext()! + + if !isRasterizing { + context.setBlendMode(.copy) + context.setFillColor(UIColor.clear.cgColor) + context.fill(bounds) + } + + guard let parameters = parameters as? MergedAvatarsNodeArguments else { + return + } + + let imageOverlaySpacing: CGFloat = 1.0 + context.setBlendMode(.copy) + + var currentX = mergedImageSize + mergedImageSpacing * CGFloat(parameters.peers.count - 1) - mergedImageSize + for i in (0 ..< parameters.peers.count).reversed() { + let imageRect = CGRect(origin: CGPoint(x: currentX, y: 0.0), size: CGSize(width: mergedImageSize, height: mergedImageSize)) + context.setFillColor(UIColor.clear.cgColor) + context.fillEllipse(in: imageRect.insetBy(dx: -1.0, dy: -1.0)) + + switch parameters.peers[i] { + case let .letters(peerId, letters): + context.saveGState() + context.translateBy(x: currentX, y: 0.0) + drawPeerAvatarLetters(context: context, size: CGSize(width: mergedImageSize, height: mergedImageSize), font: avatarFont, letters: letters, peerId: peerId) + context.restoreGState() + case let .image(reference): + if let image = parameters.images[parameters.peers[i].peerId] { + context.draw(image.cgImage!, in: imageRect) + } else { + context.setFillColor(UIColor.gray.cgColor) + context.fillEllipse(in: imageRect) + } + } + currentX -= mergedImageSpacing + } + } +} diff --git a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift index 0935b94b95..754752aaf1 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift @@ -403,7 +403,8 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode { }, requestRedeliveryOfFailedMessages: { _ in }, addContact: { _ in }, rateCall: { _, _ in - }, requestSelectMessagePollOption: { _, _ in + }, requestSelectMessagePollOptions: { _, _ in + }, requestOpenMessagePollResults: { _, _ in }, openAppStorePage: { [weak self] in if let strongSelf = self { strongSelf.context.sharedContext.applicationBindings.openAppStorePage() diff --git a/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift b/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift index e208056b5e..5bcac43c65 100644 --- a/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift @@ -107,7 +107,8 @@ final class OverlayAudioPlayerControllerNode: ViewControllerTracingNode, UIGestu }, requestRedeliveryOfFailedMessages: { _ in }, addContact: { _ in }, rateCall: { _, _ in - }, requestSelectMessagePollOption: { _, _ in + }, requestSelectMessagePollOptions: { _, _ in + }, requestOpenMessagePollResults: { _, _ in }, openAppStorePage: { }, displayMessageTooltip: { _, _, _, _ in }, seekToTimecode: { _, _, _ in diff --git a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift index 790f9394e1..062c136117 100644 --- a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift +++ b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift @@ -412,7 +412,8 @@ public class PeerMediaCollectionController: TelegramBaseController { }, requestRedeliveryOfFailedMessages: { _ in }, addContact: { _ in }, rateCall: { _, _ in - }, requestSelectMessagePollOption: { _, _ in + }, requestSelectMessagePollOptions: { _, _ in + }, requestOpenMessagePollResults: { _, _ in }, openAppStorePage: { }, displayMessageTooltip: { _, _, _, _ in }, seekToTimecode: { _, _, _ in diff --git a/submodules/TelegramUI/TelegramUI/PollResultsController.swift b/submodules/TelegramUI/TelegramUI/PollResultsController.swift new file mode 100644 index 0000000000..ec86253a00 --- /dev/null +++ b/submodules/TelegramUI/TelegramUI/PollResultsController.swift @@ -0,0 +1,313 @@ +import Foundation +import Postbox +import SyncCore +import TelegramCore +import SwiftSignalKit +import TelegramPresentationData +import AccountContext +import ItemListUI +import Display +import ItemListPeerItem +import ItemListPeerActionItem + +private let collapsedResultCount: Int = 10 + +private final class PollResultsControllerArguments { + let context: AccountContext + let collapseOption: (Data) -> Void + let expandOption: (Data) -> Void + let openPeer: (RenderedPeer) -> Void + + init(context: AccountContext, collapseOption: @escaping (Data) -> Void, expandOption: @escaping (Data) -> Void, openPeer: @escaping (RenderedPeer) -> Void) { + self.context = context + self.collapseOption = collapseOption + self.expandOption = expandOption + self.openPeer = openPeer + } +} + +private enum PollResultsSection { + case text + case option(Int) + + var rawValue: Int32 { + switch self { + case .text: + return 0 + case let .option(index): + return 1 + Int32(index) + } + } +} + +private enum PollResultsEntryId: Hashable { + case text + case optionPeer(Int, Int) + case optionExpand(Int) +} + +private enum PollResultsEntry: ItemListNodeEntry { + case text(String) + case optionPeer(optionId: Int, index: Int, peer: RenderedPeer, optionText: String, optionPercentage: Int, optionExpanded: Bool, opaqueIdentifier: Data) + case optionExpand(optionId: Int, opaqueIdentifier: Data, text: String) + + var section: ItemListSectionId { + switch self { + case .text: + return PollResultsSection.text.rawValue + case let .optionPeer(optionPeer): + return PollResultsSection.option(optionPeer.optionId).rawValue + case let .optionExpand(optionExpand): + return PollResultsSection.option(optionExpand.optionId).rawValue + } + } + + var stableId: PollResultsEntryId { + switch self { + case .text: + return .text + case let .optionPeer(optionPeer): + return .optionPeer(optionPeer.optionId, optionPeer.index) + case let .optionExpand(optionExpand): + return .optionExpand(optionExpand.optionId) + } + } + + static func <(lhs: PollResultsEntry, rhs: PollResultsEntry) -> Bool { + switch lhs { + case .text: + switch rhs { + case .text: + return false + default: + return true + } + case let .optionPeer(lhsOptionPeer): + switch rhs { + case .text: + return false + case let .optionPeer(rhsOptionPeer): + if lhsOptionPeer.optionId == rhsOptionPeer.optionId { + return lhsOptionPeer.index < rhsOptionPeer.index + } else { + return lhsOptionPeer.optionId < rhsOptionPeer.optionId + } + case let .optionExpand(rhsOptionExpand): + if lhsOptionPeer.optionId == rhsOptionExpand.optionId { + return true + } else { + return lhsOptionPeer.optionId < rhsOptionExpand.optionId + } + } + case let .optionExpand(lhsOptionExpand): + switch rhs { + case .text: + return false + case let .optionPeer(rhsOptionPeer): + if lhsOptionExpand.optionId == rhsOptionPeer.optionId { + return false + } else { + return lhsOptionExpand.optionId < rhsOptionPeer.optionId + } + case let .optionExpand(rhsOptionExpand): + if lhsOptionExpand.optionId == rhsOptionExpand.optionId { + return false + } else { + return lhsOptionExpand.optionId < rhsOptionExpand.optionId + } + } + } + } + + func item(presentationData: ItemListPresentationData, arguments: Any) -> ListViewItem { + let arguments = arguments as! PollResultsControllerArguments + switch self { + case let .text(text): + return ItemListTextItem(presentationData: presentationData, text: .large(text), sectionId: self.section) + case let .optionPeer(optionId, _, peer, optionText, optionPercentage, optionExpanded, opaqueIdentifier): + let header = ItemListPeerItemHeader(theme: presentationData.theme, strings: presentationData.strings, text: optionText, actionTitle: optionExpanded ? presentationData.strings.PollResults_Collapse : "\(optionPercentage)%", id: Int64(optionId), action: optionExpanded ? { + arguments.collapseOption(opaqueIdentifier) + } : nil) + return ItemListPeerItem(presentationData: presentationData, dateTimeFormat: PresentationDateTimeFormat(timeFormat: .regular, dateFormat: .dayFirst, dateSeparator: ".", decimalSeparator: ".", groupingSeparator: ""), nameDisplayOrder: .firstLast, context: arguments.context, peer: peer.peers[peer.peerId]!, presence: nil, text: .none, label: .none, editing: ItemListPeerItemEditing(editable: false, editing: false, revealed: false), switchValue: nil, enabled: true, selectable: true, sectionId: self.section, action: { + arguments.openPeer(peer) + }, setPeerIdWithRevealedOptions: { _, _ in + }, removePeer: { _ in + }, noInsets: true, header: header) + case let .optionExpand(_, opaqueIdentifier, text): + return ItemListPeerActionItem(presentationData: presentationData, icon: PresentationResourcesItemList.downArrowImage(presentationData.theme), title: text, sectionId: self.section, editing: false, action: { + arguments.expandOption(opaqueIdentifier) + }) + } + } +} + +private struct PollResultsControllerState: Equatable { + var expandedOptions = Set() +} + +private func pollResultsControllerEntries(presentationData: PresentationData, poll: TelegramMediaPoll, state: PollResultsControllerState, resultsState: PollResultsState) -> [PollResultsEntry] { + var entries: [PollResultsEntry] = [] + + var isEmpty = false + for (_, optionState) in resultsState.options { + if !optionState.hasLoadedOnce { + isEmpty = true + break + } + } + + entries.append(.text(poll.text)) + + if isEmpty { + return entries + } + + var optionVoterCount: [Int: Int32] = [:] + let totalVoterCount = poll.results.totalVoters ?? 0 + var optionPercentage: [Int] = [] + + if totalVoterCount != 0 { + if let voters = poll.results.voters, let totalVoters = poll.results.totalVoters { + for i in 0 ..< poll.options.count { + inner: for optionVoters in voters { + if optionVoters.opaqueIdentifier == poll.options[i].opaqueIdentifier { + optionVoterCount[i] = optionVoters.count + break inner + } + } + } + } + + optionPercentage = countNicePercent(votes: (0 ..< poll.options.count).map({ Int(optionVoterCount[$0] ?? 0) }), total: Int(totalVoterCount)) + } + + for i in 0 ..< poll.options.count { + let option = poll.options[i] + if let optionState = resultsState.options[option.opaqueIdentifier], !optionState.peers.isEmpty { + let percentage = optionPercentage.count > i ? optionPercentage[i] : 0 + var peerIndex = 0 + var hasMore = false + let optionExpanded = state.expandedOptions.contains(option.opaqueIdentifier) + + var peers = optionState.peers + var count = optionState.count + /*#if DEBUG + for _ in 0 ..< 10 { + peers += peers + } + count = max(count, peers.count) + #endif*/ + + inner: for peer in peers { + if !optionExpanded && peerIndex >= collapsedResultCount { + hasMore = true + break inner + } + entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: option.text, optionPercentage: percentage, optionExpanded: optionExpanded, opaqueIdentifier: option.opaqueIdentifier)) + peerIndex += 1 + } + + if hasMore { + let remainingCount = count - peerIndex + entries.append(.optionExpand(optionId: i, opaqueIdentifier: option.opaqueIdentifier, text: presentationData.strings.PollResults_ShowMore(Int32(remainingCount)))) + } + } + } + + return entries +} + +public func pollResultsController(context: AccountContext, messageId: MessageId, poll: TelegramMediaPoll) -> ViewController { + let statePromise = ValuePromise(PollResultsControllerState(), ignoreRepeated: true) + let stateValue = Atomic(value: PollResultsControllerState()) + let updateState: ((PollResultsControllerState) -> PollResultsControllerState) -> Void = { f in + statePromise.set(stateValue.modify { f($0) }) + } + + var pushControllerImpl: ((ViewController) -> Void)? + var dismissImpl: (() -> Void)? + + let actionsDisposable = DisposableSet() + + let resultsContext = PollResultsContext(account: context.account, messageId: messageId, poll: poll) + + let arguments = PollResultsControllerArguments(context: context, + collapseOption: { optionId in + updateState { state in + var state = state + state.expandedOptions.remove(optionId) + return state + } + }, expandOption: { optionId in + updateState { state in + var state = state + state.expandedOptions.insert(optionId) + return state + } + let _ = (resultsContext.state + |> take(1) + |> deliverOnMainQueue).start(next: { [weak resultsContext] state in + if let optionState = state.options[optionId] { + if optionState.canLoadMore && optionState.peers.count <= collapsedResultCount { + resultsContext?.loadMore(optionOpaqueIdentifier: optionId) + } + } + }) + }, openPeer: { peer in + if let peer = peer.peers[peer.peerId] { + if let controller = context.sharedContext.makePeerInfoController(context: context, peer: peer, mode: .generic) { + pushControllerImpl?(controller) + } + } + }) + + let previousWasEmpty = Atomic(value: nil) + + let signal = combineLatest(queue: .mainQueue(), + context.sharedContext.presentationData, + statePromise.get(), + resultsContext.state + ) + |> map { presentationData, state, resultsState -> (ItemListControllerState, (ItemListNodeState, Any)) in + let leftNavigationButton = ItemListNavigationButton(content: .text(presentationData.strings.Common_Close), style: .regular, enabled: true, action: { + dismissImpl?() + }) + + var isEmpty = false + for (_, optionState) in resultsState.options { + if !optionState.hasLoadedOnce { + isEmpty = true + break + } + } + + var emptyStateItem: ItemListControllerEmptyStateItem? + if isEmpty { + emptyStateItem = ItemListLoadingIndicatorEmptyStateItem(theme: presentationData.theme) + } + + let previousWasEmptyValue = previousWasEmpty.swap(isEmpty) + + let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(presentationData.strings.PollResults_Title), leftNavigationButton: leftNavigationButton, rightNavigationButton: nil, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) + let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: pollResultsControllerEntries(presentationData: presentationData, poll: poll, state: state, resultsState: resultsState), style: .blocks, focusItemTag: nil, ensureVisibleItemTag: nil, emptyStateItem: emptyStateItem, crossfadeState: previousWasEmptyValue != nil && previousWasEmptyValue == true && isEmpty == false, animateChanges: false) + + return (controllerState, (listState, arguments)) + } + |> afterDisposed { + actionsDisposable.dispose() + } + + let controller = ItemListController(context: context, state: signal) + controller.navigationPresentation = .modal + pushControllerImpl = { [weak controller] c in + controller?.push(c) + } + dismissImpl = { [weak controller] in + controller?.dismiss() + } + controller.isOpaqueWhenInOverlay = true + controller.blocksBackgroundWhenInOverlay = true + + return controller +} + diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping index c997aa4de02b6996545b266eea7747bef03ed857..50908ecc674c59dd50dc4fc22f6d4b0e7e646ebc 100644 GIT binary patch delta 40415 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 delta 40453 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­y^h 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 diff --git a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift index 926fab00f0..91734a2350 100644 --- a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift +++ b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift @@ -1116,7 +1116,8 @@ public final class SharedAccountContextImpl: SharedAccountContext { }, requestRedeliveryOfFailedMessages: { _ in }, addContact: { _ in }, rateCall: { _, _ in - }, requestSelectMessagePollOption: { _, _ in + }, requestSelectMessagePollOptions: { _, _ in + }, requestOpenMessagePollResults: { _, _ in }, openAppStorePage: { }, displayMessageTooltip: { _, _, _, _ in }, seekToTimecode: { _, _, _ in diff --git a/submodules/WalletUI/Resources/WalletStrings.mapping b/submodules/WalletUI/Resources/WalletStrings.mapping index 589c6fe85e4fa03a50b6adefffe67915bd39bf1c..9f7c34892095545bdfb3f1e1871a24394137ff12 100644 GIT binary patch delta 17 YcmX@$c))Q(i^Al^3bKrhlN%M}070t;9smFU delta 40 vcmX@$c))Q(i-L?e0|P^NVopwKiC$ String { + public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = walletStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = walletStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/WatchBridge/Sources/WatchRequestHandlers.swift b/submodules/WatchBridge/Sources/WatchRequestHandlers.swift index 95f32f18e2..0609691bde 100644 --- a/submodules/WatchBridge/Sources/WatchRequestHandlers.swift +++ b/submodules/WatchBridge/Sources/WatchRequestHandlers.swift @@ -400,7 +400,7 @@ final class WatchMediaHandler: WatchRequestHandler { } } |> mapToSignal({ peer -> Signal in if let peer = peer, let representation = peer.smallProfileImage { - let imageData = peerAvatarImageData(account: context.account, peer: peer, authorOfMessage: nil, representation: representation, synchronousLoad: false) + let imageData = peerAvatarImageData(account: context.account, peerReference: PeerReference(peer), authorOfMessage: nil, representation: representation, synchronousLoad: false) if let imageData = imageData { return imageData |> map { data -> UIImage? in From bae930ec20066c671079610944d8479478bb187d Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Wed, 8 Jan 2020 00:17:55 +0300 Subject: [PATCH 03/63] Various UI improvements --- .../Sources/ChatController.swift | 2 +- submodules/AppLock/Sources/AppLock.swift | 8 +- submodules/ArchivedStickerPacksNotice/BUCK | 29 ++ ...ArchivedStickerPacksNoticeController.swift | 316 ++++++++++++++++++ .../Sources/ChatListController.swift | 2 +- .../Display/Display/WindowContent.swift | 8 +- .../TelegramInitializeLegacyComponents.swift | 7 + .../LocationPickerControllerNode.swift | 2 +- .../Sources/Themes/EditThemeController.swift | 4 +- .../Themes/ThemeAccentColorController.swift | 4 +- .../ThemeAutoNightSettingsController.swift | 4 +- .../Themes/ThemePreviewController.swift | 8 +- .../Themes/ThemeSettingsController.swift | 10 +- submodules/StickerPackPreviewUI/BUCK | 1 + .../TelegramCore/Sources/RecentPeers.swift | 17 + .../TelegramUI/TelegramUI/AppDelegate.swift | 8 +- .../TelegramUI/ApplicationContext.swift | 4 +- .../TelegramUI/ChatController.swift | 2 + .../TelegramUI/ChatControllerNode.swift | 9 +- .../TelegramUI/ChatOverlayNavigationBar.swift | 21 +- .../HashtagChatInputContextPanelNode.swift | 34 +- .../HashtagChatInputPanelItem.swift | 270 ++++++++++++++- .../MentionChatInputContextPanelNode.swift | 27 +- .../MentionChatInputPanelItem.swift | 277 ++++++++++++++- .../TelegramUI/ThemeUpdateManager.swift | 4 +- .../Sources/PresentationThemeSettings.swift | 10 +- 26 files changed, 1001 insertions(+), 87 deletions(-) create mode 100644 submodules/ArchivedStickerPacksNotice/BUCK create mode 100644 submodules/ArchivedStickerPacksNotice/Sources/ArchivedStickerPacksNoticeController.swift diff --git a/submodules/AccountContext/Sources/ChatController.swift b/submodules/AccountContext/Sources/ChatController.swift index 9e21f14875..da9d89bc63 100644 --- a/submodules/AccountContext/Sources/ChatController.swift +++ b/submodules/AccountContext/Sources/ChatController.swift @@ -246,7 +246,7 @@ public enum ChatControllerSubject: Equatable { public enum ChatControllerPresentationMode: Equatable { case standard(previewing: Bool) - case overlay + case overlay(NavigationController?) case inline(NavigationController?) } diff --git a/submodules/AppLock/Sources/AppLock.swift b/submodules/AppLock/Sources/AppLock.swift index 8e8ecda201..fdb2016360 100644 --- a/submodules/AppLock/Sources/AppLock.swift +++ b/submodules/AppLock/Sources/AppLock.swift @@ -44,19 +44,19 @@ private func getCoveringViewSnaphot(window: Window1) -> UIImage? { context.clear(CGRect(origin: CGPoint(), size: size)) context.scaleBy(x: scale, y: scale) UIGraphicsPushContext(context) - window.forEachViewController { controller in + window.forEachViewController({ controller in if let controller = controller as? PasscodeEntryController { controller.displayNode.alpha = 0.0 } return true - } + }) window.hostView.containerView.drawHierarchy(in: CGRect(origin: CGPoint(), size: unscaledSize), afterScreenUpdates: false) - window.forEachViewController { controller in + window.forEachViewController({ controller in if let controller = controller as? PasscodeEntryController { controller.displayNode.alpha = 1.0 } return true - } + }) UIGraphicsPopContext() }).flatMap(applyScreenshotEffectToImage) } diff --git a/submodules/ArchivedStickerPacksNotice/BUCK b/submodules/ArchivedStickerPacksNotice/BUCK new file mode 100644 index 0000000000..d544ffbad2 --- /dev/null +++ b/submodules/ArchivedStickerPacksNotice/BUCK @@ -0,0 +1,29 @@ +load("//Config:buck_rule_macros.bzl", "static_library") + +static_library( + name = "ArchivedStickerPacksNotice", + srcs = glob([ + "Sources/**/*.swift", + ]), + deps = [ + "//submodules/SSignalKit/SwiftSignalKit:SwiftSignalKit#shared", + "//submodules/AsyncDisplayKit:AsyncDisplayKit#shared", + "//submodules/Display:Display#shared", + "//submodules/Postbox:Postbox#shared", + "//submodules/TelegramCore:TelegramCore#shared", + "//submodules/SyncCore:SyncCore#shared", + "//submodules/TelegramPresentationData:TelegramPresentationData", + "//submodules/AccountContext:AccountContext", + "//submodules/TelegramUIPreferences:TelegramUIPreferences", + "//submodules/StickerResources:StickerResources", + "//submodules/AlertUI:AlertUI", + "//submodules/PresentationDataUtils:PresentationDataUtils", + "//submodules/MergeLists:MergeLists", + "//submodules/ItemListUI:ItemListUI", + "//submodules/ItemListStickerPackItem:ItemListStickerPackItem", + ], + frameworks = [ + "$SDKROOT/System/Library/Frameworks/Foundation.framework", + "$SDKROOT/System/Library/Frameworks/UIKit.framework", + ], +) diff --git a/submodules/ArchivedStickerPacksNotice/Sources/ArchivedStickerPacksNoticeController.swift b/submodules/ArchivedStickerPacksNotice/Sources/ArchivedStickerPacksNoticeController.swift new file mode 100644 index 0000000000..4cc7acdcb2 --- /dev/null +++ b/submodules/ArchivedStickerPacksNotice/Sources/ArchivedStickerPacksNoticeController.swift @@ -0,0 +1,316 @@ +import Foundation +import UIKit +import AsyncDisplayKit +import Display +import SwiftSignalKit +import Postbox +import TelegramCore +import SyncCore +import TelegramPresentationData +import ActivityIndicator +import AccountContext +import AlertUI +import PresentationDataUtils +import MergeLists +import ItemListUI +import ItemListStickerPackItem + +private struct ArchivedStickersNoticeEntry: Comparable, Identifiable { + let index: Int + let info: StickerPackCollectionInfo + let topItem: StickerPackItem? + let count: String + + var stableId: ItemCollectionId { + return info.id + } + + static func ==(lhs: ArchivedStickersNoticeEntry, rhs: ArchivedStickersNoticeEntry) -> Bool { + return lhs.index == rhs.index && lhs.info.id == rhs.info.id && lhs.count == rhs.count + } + + static func <(lhs: ArchivedStickersNoticeEntry, rhs: ArchivedStickersNoticeEntry) -> Bool { + return lhs.index < rhs.index + } + + func item(account: Account, presentationData: PresentationData) -> ListViewItem { + return ItemListStickerPackItem(presentationData: ItemListPresentationData(presentationData), account: account, packInfo: info, itemCount: self.count, topItem: topItem, unread: false, control: .none, editing: ItemListStickerPackItemEditing(editable: false, editing: false, revealed: false, reorderable: false), enabled: true, playAnimatedStickers: true, sectionId: 0, action: { + }, setPackIdWithRevealedOptions: { current, previous in + }, addPack: { + }, removePack: { + }) + } +} + +private struct ArchivedStickersNoticeTransition { + let deletions: [ListViewDeleteItem] + let insertions: [ListViewInsertItem] + let updates: [ListViewUpdateItem] +} + +private func preparedTransition(from fromEntries: [ArchivedStickersNoticeEntry], to toEntries: [ArchivedStickersNoticeEntry], account: Account, presentationData: PresentationData) -> ArchivedStickersNoticeTransition { + let (deleteIndices, indicesAndItems, updateIndices) = mergeListsStableWithUpdates(leftList: fromEntries, rightList: toEntries) + + let deletions = deleteIndices.map { ListViewDeleteItem(index: $0, directionHint: nil) } + let insertions = indicesAndItems.map { ListViewInsertItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(account: account, presentationData: presentationData), directionHint: nil) } + let updates = updateIndices.map { ListViewUpdateItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(account: account, presentationData: presentationData), directionHint: nil) } + + return ArchivedStickersNoticeTransition(deletions: deletions, insertions: insertions, updates: updates) +} + + +private final class ArchivedStickersNoticeAlertContentNode: AlertContentNode { + private let presentationData: PresentationData + private let archivedStickerPacks: [(StickerPackCollectionInfo, StickerPackItem?)] + + private let textNode: ASTextNode + private let listView: ListView + + private var enqueuedTransitions: [ArchivedStickersNoticeTransition] = [] + + private let actionNodesSeparator: ASDisplayNode + private let actionNodes: [TextAlertContentActionNode] + private let actionVerticalSeparators: [ASDisplayNode] + + private let disposable = MetaDisposable() + + private var validLayout: CGSize? + + override var dismissOnOutsideTap: Bool { + return self.isUserInteractionEnabled + } + + init(theme: AlertControllerTheme, account: Account, presentationData: PresentationData, archivedStickerPacks: [(StickerPackCollectionInfo, StickerPackItem?)], actions: [TextAlertAction]) { + self.presentationData = presentationData + self.archivedStickerPacks = archivedStickerPacks + + self.textNode = ASTextNode() + self.textNode.maximumNumberOfLines = 4 + + self.listView = ListView() + self.listView.isOpaque = false + + self.actionNodesSeparator = ASDisplayNode() + self.actionNodesSeparator.isLayerBacked = true + + self.actionNodes = actions.map { action -> TextAlertContentActionNode in + return TextAlertContentActionNode(theme: theme, action: action) + } + + var actionVerticalSeparators: [ASDisplayNode] = [] + if actions.count > 1 { + for _ in 0 ..< actions.count - 1 { + let separatorNode = ASDisplayNode() + separatorNode.isLayerBacked = true + actionVerticalSeparators.append(separatorNode) + } + } + self.actionVerticalSeparators = actionVerticalSeparators + + super.init() + + self.addSubnode(self.textNode) + self.addSubnode(self.listView) + + self.addSubnode(self.actionNodesSeparator) + + for actionNode in self.actionNodes { + self.addSubnode(actionNode) + } + self.actionNodes.last?.actionEnabled = false + + for separatorNode in self.actionVerticalSeparators { + self.addSubnode(separatorNode) + } + + self.updateTheme(theme) + + var index: Int = 0 + var entries: [ArchivedStickersNoticeEntry] = [] + for pack in archivedStickerPacks { + entries.append(ArchivedStickersNoticeEntry(index: index, info: pack.0, topItem: pack.1, count: presentationData.strings.StickerPack_StickerCount(pack.0.count))) + index += 1 + } + + let transition = preparedTransition(from: [], to: entries, account: account, presentationData: presentationData) + self.enqueueTransition(transition) + } + + deinit { + self.disposable.dispose() + } + + private func enqueueTransition(_ transition: ArchivedStickersNoticeTransition) { + self.enqueuedTransitions.append(transition) + + if let _ = self.validLayout { + while !self.enqueuedTransitions.isEmpty { + self.dequeueTransition() + } + } + } + + private func dequeueTransition() { + guard let layout = self.validLayout, let transition = self.enqueuedTransitions.first else { + return + } + self.enqueuedTransitions.remove(at: 0) + + var options = ListViewDeleteAndInsertOptions() + + self.listView.transaction(deleteIndices: transition.deletions, insertIndicesAndItems: transition.insertions, updateIndicesAndItems: transition.updates, options: options, updateSizeAndInsets: nil, updateOpaqueState: nil, completion: { [weak self] _ in + }) + } + + override func updateTheme(_ theme: AlertControllerTheme) { + self.textNode.attributedText = NSAttributedString(string: self.presentationData.strings.ArchivedPacksAlert_Title, font: Font.regular(13.0), textColor: theme.primaryColor, paragraphAlignment: .center) + + self.actionNodesSeparator.backgroundColor = theme.separatorColor + for actionNode in self.actionNodes { + actionNode.updateTheme(theme) + } + for separatorNode in self.actionVerticalSeparators { + separatorNode.backgroundColor = theme.separatorColor + } + + if let size = self.validLayout { + _ = self.updateLayout(size: size, transition: .immediate) + } + } + + override func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) -> CGSize { + var size = size + size.width = min(size.width, 270.0) + let measureSize = CGSize(width: size.width - 16.0 * 2.0, height: CGFloat.greatestFiniteMagnitude) + + let hadValidLayout = self.validLayout != nil + + self.validLayout = size + + var origin: CGPoint = CGPoint(x: 0.0, y: 20.0) + + let textSize = self.textNode.measure(measureSize) + transition.updateFrame(node: self.textNode, frame: CGRect(origin: CGPoint(x: floorToScreenPixels((size.width - textSize.width) / 2.0), y: origin.y), size: textSize)) + origin.y += textSize.height + 16.0 + + let actionButtonHeight: CGFloat = 44.0 + var minActionsWidth: CGFloat = 0.0 + let maxActionWidth: CGFloat = floor(size.width / CGFloat(self.actionNodes.count)) + let actionTitleInsets: CGFloat = 8.0 + + var effectiveActionLayout = TextAlertContentActionLayout.horizontal + for actionNode in self.actionNodes { + let actionTitleSize = actionNode.titleNode.measure(CGSize(width: maxActionWidth, height: actionButtonHeight)) + if case .horizontal = effectiveActionLayout, actionTitleSize.height > actionButtonHeight * 0.6667 { + effectiveActionLayout = .vertical + } + switch effectiveActionLayout { + case .horizontal: + minActionsWidth += actionTitleSize.width + actionTitleInsets + case .vertical: + minActionsWidth = max(minActionsWidth, actionTitleSize.width + actionTitleInsets) + } + } + + let insets = UIEdgeInsets(top: 18.0, left: 18.0, bottom: 18.0, right: 18.0) + + var contentWidth = max(textSize.width, minActionsWidth) + contentWidth = max(contentWidth, 234.0) + + var actionsHeight: CGFloat = 0.0 + switch effectiveActionLayout { + case .horizontal: + actionsHeight = actionButtonHeight + case .vertical: + actionsHeight = actionButtonHeight * CGFloat(self.actionNodes.count) + } + + let resultWidth = contentWidth + insets.left + insets.right + + let listHeight: CGFloat = CGFloat(min(3, self.archivedStickerPacks.count)) * 56.0 + + let (duration, curve) = listViewAnimationDurationAndCurve(transition: transition) + self.listView.transaction(deleteIndices: [], insertIndicesAndItems: [], updateIndicesAndItems: [], options: [.Synchronous, .LowLatency], scrollToItem: nil, updateSizeAndInsets: ListViewUpdateSizeAndInsets(size: CGSize(width: resultWidth, height: listHeight), insets: UIEdgeInsets(top: -35.0, left: 0.0, bottom: 0.0, right: 0.0), headerInsets: UIEdgeInsets(), scrollIndicatorInsets: UIEdgeInsets(), duration: duration, curve: curve), stationaryItemRange: nil, updateOpaqueState: nil, completion: { _ in }) + transition.updateFrame(node: self.listView, frame: CGRect(x: 0.0, y: origin.y, width: resultWidth, height: listHeight)) + + let resultSize = CGSize(width: resultWidth, height: textSize.height + actionsHeight + listHeight + 10.0 + insets.top + insets.bottom) + + transition.updateFrame(node: self.actionNodesSeparator, frame: CGRect(origin: CGPoint(x: 0.0, y: resultSize.height - actionsHeight - UIScreenPixel), size: CGSize(width: resultSize.width, height: UIScreenPixel))) + + var actionOffset: CGFloat = 0.0 + let actionWidth: CGFloat = floor(resultSize.width / CGFloat(self.actionNodes.count)) + var separatorIndex = -1 + var nodeIndex = 0 + for actionNode in self.actionNodes { + if separatorIndex >= 0 { + let separatorNode = self.actionVerticalSeparators[separatorIndex] + switch effectiveActionLayout { + case .horizontal: + transition.updateFrame(node: separatorNode, frame: CGRect(origin: CGPoint(x: actionOffset - UIScreenPixel, y: resultSize.height - actionsHeight), size: CGSize(width: UIScreenPixel, height: actionsHeight - UIScreenPixel))) + case .vertical: + transition.updateFrame(node: separatorNode, frame: CGRect(origin: CGPoint(x: 0.0, y: resultSize.height - actionsHeight + actionOffset - UIScreenPixel), size: CGSize(width: resultSize.width, height: UIScreenPixel))) + } + } + separatorIndex += 1 + + let currentActionWidth: CGFloat + switch effectiveActionLayout { + case .horizontal: + if nodeIndex == self.actionNodes.count - 1 { + currentActionWidth = resultSize.width - actionOffset + } else { + currentActionWidth = actionWidth + } + case .vertical: + currentActionWidth = resultSize.width + } + + let actionNodeFrame: CGRect + switch effectiveActionLayout { + case .horizontal: + actionNodeFrame = CGRect(origin: CGPoint(x: actionOffset, y: resultSize.height - actionsHeight), size: CGSize(width: currentActionWidth, height: actionButtonHeight)) + actionOffset += currentActionWidth + case .vertical: + actionNodeFrame = CGRect(origin: CGPoint(x: 0.0, y: resultSize.height - actionsHeight + actionOffset), size: CGSize(width: currentActionWidth, height: actionButtonHeight)) + actionOffset += actionButtonHeight + } + + transition.updateFrame(node: actionNode, frame: actionNodeFrame) + + nodeIndex += 1 + } + + if !hadValidLayout { + while !self.enqueuedTransitions.isEmpty { + self.dequeueTransition() + } + } + + return resultSize + } +} + +public func archivedStickerPacksNoticeController(context: AccountContext, archivedStickerPacks: [(StickerPackCollectionInfo, StickerPackItem?)]) -> ViewController { + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + + var dismissImpl: (() -> Void)? + + let disposable = MetaDisposable() + + let contentNode = ArchivedStickersNoticeAlertContentNode(theme: AlertControllerTheme(presentationData: presentationData), account: context.account, presentationData: presentationData, archivedStickerPacks: archivedStickerPacks, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: { + dismissImpl?() + })]) + + let controller = AlertController(theme: AlertControllerTheme(presentationData: presentationData), contentNode: contentNode) + let presentationDataDisposable = context.sharedContext.presentationData.start(next: { [weak controller, weak contentNode] presentationData in + controller?.theme = AlertControllerTheme(presentationData: presentationData) + }) + controller.dismissed = { + presentationDataDisposable.dispose() + disposable.dispose() + } + dismissImpl = { [weak controller, weak contentNode] in + controller?.dismissAnimated() + } + return controller +} diff --git a/submodules/ChatListUI/Sources/ChatListController.swift b/submodules/ChatListUI/Sources/ChatListController.swift index f1854fdfec..f2049711c5 100644 --- a/submodules/ChatListUI/Sources/ChatListController.swift +++ b/submodules/ChatListUI/Sources/ChatListController.swift @@ -306,7 +306,7 @@ public class ChatListControllerImpl: TelegramBaseController, ChatListController, strongSelf.titleView.title = NetworkStatusTitle(text: defaultTitle, activity: false, hasProxy: isRoot && hasProxy, connectsViaProxy: connectsViaProxy, isPasscodeSet: isRoot && isPasscodeSet, isManuallyLocked: isRoot && isManuallyLocked) } if case .root = groupId, checkProxy { - if strongSelf.proxyUnavailableTooltipController == nil && !strongSelf.didShowProxyUnavailableTooltipController && strongSelf.isNodeLoaded && strongSelf.displayNode.view.window != nil { + if strongSelf.proxyUnavailableTooltipController == nil && !strongSelf.didShowProxyUnavailableTooltipController && strongSelf.isNodeLoaded && strongSelf.displayNode.view.window != nil && strongSelf.navigationController?.topViewController === self { strongSelf.didShowProxyUnavailableTooltipController = true let tooltipController = TooltipController(content: .text(strongSelf.presentationData.strings.Proxy_TooltipUnavailable), baseFontSize: strongSelf.presentationData.listsFontSize.baseDisplaySize, timeout: 60.0, dismissByTapOutside: true) strongSelf.proxyUnavailableTooltipController = tooltipController diff --git a/submodules/Display/Display/WindowContent.swift b/submodules/Display/Display/WindowContent.swift index 868b94b6eb..19514e85ee 100644 --- a/submodules/Display/Display/WindowContent.swift +++ b/submodules/Display/Display/WindowContent.swift @@ -1222,10 +1222,12 @@ public class Window1 { return hidden } - public func forEachViewController(_ f: (ContainableController) -> Bool) { + public func forEachViewController(_ f: (ContainableController) -> Bool, excludeNavigationSubControllers: Bool = false) { if let navigationController = self._rootController as? NavigationController { - for case let controller as ContainableController in navigationController.viewControllers { - !f(controller) + if !excludeNavigationSubControllers { + for case let controller as ContainableController in navigationController.viewControllers { + !f(controller) + } } if let controller = navigationController.topOverlayController { !f(controller) diff --git a/submodules/LegacyUI/Sources/TelegramInitializeLegacyComponents.swift b/submodules/LegacyUI/Sources/TelegramInitializeLegacyComponents.swift index 32df01e865..b77631410c 100644 --- a/submodules/LegacyUI/Sources/TelegramInitializeLegacyComponents.swift +++ b/submodules/LegacyUI/Sources/TelegramInitializeLegacyComponents.swift @@ -48,6 +48,13 @@ private final class LegacyComponentsAccessCheckerImpl: NSObject, LegacyComponent } public func checkPhotoAuthorizationStatus(for intent: TGPhotoAccessIntent, alertDismissCompletion: (() -> Void)!) -> Bool { + if let context = self.context { + DeviceAccess.authorizeAccess(to: .mediaLibrary(.send), presentationData: context.sharedContext.currentPresentationData.with { $0 }, present: context.sharedContext.presentGlobalController, openSettings: context.sharedContext.applicationBindings.openSettings, { value in + if !value { + alertDismissCompletion?() + } + }) + } return true } diff --git a/submodules/LocationUI/Sources/LocationPickerControllerNode.swift b/submodules/LocationUI/Sources/LocationPickerControllerNode.swift index f13772ef3b..64a1d42783 100644 --- a/submodules/LocationUI/Sources/LocationPickerControllerNode.swift +++ b/submodules/LocationUI/Sources/LocationPickerControllerNode.swift @@ -548,7 +548,7 @@ final class LocationPickerControllerNode: ViewControllerTracingNode { if foundVenues == nil && !state.searchingVenuesAround { displayingPlacesButton = true } else if let previousLocation = foundVenuesLocation { - let currentLocation = CLLocation(latitude: coordinate.latitude, longitude: coordinate.longitude) + let currentLocation = CLLocation(latitude: coordinate.latitude, longitude: coordinate.longitude) if currentLocation.distance(from: previousLocation) > 300 { displayingPlacesButton = true } diff --git a/submodules/SettingsUI/Sources/Themes/EditThemeController.swift b/submodules/SettingsUI/Sources/Themes/EditThemeController.swift index d0933c5a1c..b918e65d1a 100644 --- a/submodules/SettingsUI/Sources/Themes/EditThemeController.swift +++ b/submodules/SettingsUI/Sources/Themes/EditThemeController.swift @@ -551,7 +551,7 @@ public func editThemeController(context: AccountContext, mode: EditThemeControll context.sharedContext.accountManager.mediaBox.storeResourceData(resource.id, data: data, synchronous: true) } - let themeReference: PresentationThemeReference = .cloud(PresentationCloudTheme(theme: resultTheme, resolvedWallpaper: resolvedWallpaper)) + let themeReference: PresentationThemeReference = .cloud(PresentationCloudTheme(theme: resultTheme, resolvedWallpaper: resolvedWallpaper, creatorAccountId: context.account.id)) var themeSpecificChatWallpapers = current.themeSpecificChatWallpapers themeSpecificChatWallpapers[themeReference.index] = nil @@ -585,7 +585,7 @@ public func editThemeController(context: AccountContext, mode: EditThemeControll context.sharedContext.accountManager.mediaBox.storeResourceData(resource.id, data: data, synchronous: true) } - let themeReference: PresentationThemeReference = .cloud(PresentationCloudTheme(theme: resultTheme, resolvedWallpaper: resolvedWallpaper)) + let themeReference: PresentationThemeReference = .cloud(PresentationCloudTheme(theme: resultTheme, resolvedWallpaper: resolvedWallpaper, creatorAccountId: context.account.id)) var themeSpecificChatWallpapers = current.themeSpecificChatWallpapers themeSpecificChatWallpapers[themeReference.index] = nil diff --git a/submodules/SettingsUI/Sources/Themes/ThemeAccentColorController.swift b/submodules/SettingsUI/Sources/Themes/ThemeAccentColorController.swift index 11f2677bcc..af8fd96d9f 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeAccentColorController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeAccentColorController.swift @@ -260,7 +260,7 @@ final class ThemeAccentColorController: ViewController { if case let .result(resultTheme) = next { let _ = applyTheme(accountManager: context.sharedContext.accountManager, account: context.account, theme: resultTheme).start() return updatePresentationThemeSettingsInteractively(accountManager: context.sharedContext.accountManager, { current in - let themeReference: PresentationThemeReference = .cloud(PresentationCloudTheme(theme: resultTheme, resolvedWallpaper: wallpaper)) + let themeReference: PresentationThemeReference = .cloud(PresentationCloudTheme(theme: resultTheme, resolvedWallpaper: wallpaper, creatorAccountId: context.account.id)) var updatedTheme = current.theme var updatedAutomaticThemeSwitchSetting = current.automaticThemeSwitchSetting @@ -289,7 +289,7 @@ final class ThemeAccentColorController: ViewController { if case let .result(resultTheme) = next { let _ = applyTheme(accountManager: context.sharedContext.accountManager, account: context.account, theme: resultTheme).start() return updatePresentationThemeSettingsInteractively(accountManager: context.sharedContext.accountManager, { current in - let themeReference: PresentationThemeReference = .cloud(PresentationCloudTheme(theme: resultTheme, resolvedWallpaper: wallpaper)) + let themeReference: PresentationThemeReference = .cloud(PresentationCloudTheme(theme: resultTheme, resolvedWallpaper: wallpaper, creatorAccountId: context.account.id)) var updatedTheme = current.theme var updatedAutomaticThemeSwitchSetting = current.automaticThemeSwitchSetting diff --git a/submodules/SettingsUI/Sources/Themes/ThemeAutoNightSettingsController.swift b/submodules/SettingsUI/Sources/Themes/ThemeAutoNightSettingsController.swift index 34b81ce429..a95320fa48 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeAutoNightSettingsController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeAutoNightSettingsController.swift @@ -550,7 +550,7 @@ public func themeAutoNightSettingsController(context: AccountContext) -> ViewCon |> mapToSignal { resolvedWallpaper -> Signal in var updatedTheme = theme if case let .cloud(info) = theme { - updatedTheme = .cloud(PresentationCloudTheme(theme: info.theme, resolvedWallpaper: resolvedWallpaper)) + updatedTheme = .cloud(PresentationCloudTheme(theme: info.theme, resolvedWallpaper: resolvedWallpaper, creatorAccountId: info.theme.isCreator ? context.account.id : nil)) } updateSettings { settings in @@ -572,7 +572,7 @@ public func themeAutoNightSettingsController(context: AccountContext) -> ViewCon let settings = (sharedData.entries[ApplicationSpecificSharedDataKeys.presentationThemeSettings] as? PresentationThemeSettings) ?? PresentationThemeSettings.defaultSettings let defaultThemes: [PresentationThemeReference] = [.builtin(.night), .builtin(.nightAccent)] - let cloudThemes: [PresentationThemeReference] = cloudThemes.map { .cloud(PresentationCloudTheme(theme: $0, resolvedWallpaper: nil)) } + let cloudThemes: [PresentationThemeReference] = cloudThemes.map { .cloud(PresentationCloudTheme(theme: $0, resolvedWallpaper: nil, creatorAccountId: $0.isCreator ? context.account.id : nil)) } var availableThemes = defaultThemes availableThemes.append(contentsOf: cloudThemes) diff --git a/submodules/SettingsUI/Sources/Themes/ThemePreviewController.swift b/submodules/SettingsUI/Sources/Themes/ThemePreviewController.swift index 6fd9305c14..6ea9fd97cd 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemePreviewController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemePreviewController.swift @@ -234,9 +234,9 @@ public final class ThemePreviewController: ViewController { |> mapToSignal { theme, wallpaper -> Signal in if let theme = theme { if case let .file(file) = wallpaper, file.id != 0 { - return .single(.cloud(PresentationCloudTheme(theme: theme, resolvedWallpaper: wallpaper))) + return .single(.cloud(PresentationCloudTheme(theme: theme, resolvedWallpaper: wallpaper, creatorAccountId: theme.isCreator ? context.account.id : nil))) } else { - return .single(.cloud(PresentationCloudTheme(theme: theme, resolvedWallpaper: nil))) + return .single(.cloud(PresentationCloudTheme(theme: theme, resolvedWallpaper: nil, creatorAccountId: theme.isCreator ? context.account.id : nil))) } } else { return .complete() @@ -313,7 +313,7 @@ public final class ThemePreviewController: ViewController { } if case let .result(theme) = result, let file = theme.file { context.sharedContext.accountManager.mediaBox.moveResourceData(from: info.resource.id, to: file.resource.id) - return .single((.cloud(PresentationCloudTheme(theme: theme, resolvedWallpaper: resolvedWallpaper)), true)) + return .single((.cloud(PresentationCloudTheme(theme: theme, resolvedWallpaper: resolvedWallpaper, creatorAccountId: theme.isCreator ? context.account.id : nil)), true)) } else { return .complete() } @@ -332,7 +332,7 @@ public final class ThemePreviewController: ViewController { } if case let .result(updatedTheme) = result, let file = updatedTheme.file { context.sharedContext.accountManager.mediaBox.moveResourceData(from: info.resource.id, to: file.resource.id) - return .single((.cloud(PresentationCloudTheme(theme: updatedTheme, resolvedWallpaper: resolvedWallpaper)), true)) + return .single((.cloud(PresentationCloudTheme(theme: updatedTheme, resolvedWallpaper: resolvedWallpaper, creatorAccountId: updatedTheme.isCreator ? context.account.id : nil)), true)) } else { return .complete() } diff --git a/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift b/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift index c47addabc2..d45c21762c 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift @@ -729,7 +729,8 @@ public func themeSettingsController(context: AccountContext, focusOnItemTag: The let previousThemeIndex = themes.prefix(upTo: currentThemeIndex).reversed().firstIndex(where: { $0.file != nil }) let newTheme: PresentationThemeReference if let previousThemeIndex = previousThemeIndex { - newTheme = .cloud(PresentationCloudTheme(theme: themes[themes.index(before: previousThemeIndex.base)], resolvedWallpaper: nil)) + let theme = themes[themes.index(before: previousThemeIndex.base)] + newTheme = .cloud(PresentationCloudTheme(theme: theme, resolvedWallpaper: nil, creatorAccountId: theme.isCreator ? context.account.id : nil)) } else { newTheme = .builtin(.nightAccent) } @@ -953,7 +954,8 @@ public func themeSettingsController(context: AccountContext, focusOnItemTag: The let previousThemeIndex = themes.prefix(upTo: currentThemeIndex).reversed().firstIndex(where: { $0.file != nil }) let newTheme: PresentationThemeReference if let previousThemeIndex = previousThemeIndex { - selectThemeImpl?(.cloud(PresentationCloudTheme(theme: themes[themes.index(before: previousThemeIndex.base)], resolvedWallpaper: nil))) + let theme = themes[themes.index(before: previousThemeIndex.base)] + selectThemeImpl?(.cloud(PresentationCloudTheme(theme: theme, resolvedWallpaper: nil, creatorAccountId: theme.isCreator ? context.account.id : nil))) } else { if settings.baseTheme == .night { selectAccentColorImpl?(PresentationThemeAccentColor(baseColor: .blue)) @@ -1014,7 +1016,7 @@ public func themeSettingsController(context: AccountContext, focusOnItemTag: The } defaultThemes.append(contentsOf: [.builtin(.night), .builtin(.nightAccent)]) - let cloudThemes: [PresentationThemeReference] = cloudThemes.map { .cloud(PresentationCloudTheme(theme: $0, resolvedWallpaper: nil)) }.filter { !removedThemeIndexes.contains($0.index) } + let cloudThemes: [PresentationThemeReference] = cloudThemes.map { .cloud(PresentationCloudTheme(theme: $0, resolvedWallpaper: nil, creatorAccountId: $0.isCreator ? context.account.id : nil)) }.filter { !removedThemeIndexes.contains($0.index) } var availableThemes = defaultThemes if defaultThemes.first(where: { $0.index == themeReference.index }) == nil && cloudThemes.first(where: { $0.index == themeReference.index }) == nil { @@ -1158,7 +1160,7 @@ public func themeSettingsController(context: AccountContext, focusOnItemTag: The var baseThemeIndex: Int64? var updatedThemeBaseIndex: Int64? if case let .cloud(info) = theme { - updatedTheme = .cloud(PresentationCloudTheme(theme: info.theme, resolvedWallpaper: resolvedWallpaper)) + updatedTheme = .cloud(PresentationCloudTheme(theme: info.theme, resolvedWallpaper: resolvedWallpaper, creatorAccountId: info.theme.isCreator ? context.account.id : nil)) if let settings = info.theme.settings { baseThemeIndex = PresentationThemeReference.builtin(PresentationBuiltinThemeReference(baseTheme: settings.baseTheme)).index updatedThemeBaseIndex = baseThemeIndex diff --git a/submodules/StickerPackPreviewUI/BUCK b/submodules/StickerPackPreviewUI/BUCK index d9156bceac..4b0f121d0a 100644 --- a/submodules/StickerPackPreviewUI/BUCK +++ b/submodules/StickerPackPreviewUI/BUCK @@ -24,6 +24,7 @@ static_library( "//submodules/ActivityIndicator:ActivityIndicator", "//submodules/AnimatedStickerNode:AnimatedStickerNode", "//submodules/TelegramAnimatedStickerNode:TelegramAnimatedStickerNode", + "//submodules/ArchivedStickerPacksNotice:ArchivedStickerPacksNotice", ], frameworks = [ "$SDKROOT/System/Library/Frameworks/Foundation.framework", diff --git a/submodules/TelegramCore/Sources/RecentPeers.swift b/submodules/TelegramCore/Sources/RecentPeers.swift index eb44d97c28..fd4d853cb6 100644 --- a/submodules/TelegramCore/Sources/RecentPeers.swift +++ b/submodules/TelegramCore/Sources/RecentPeers.swift @@ -231,3 +231,20 @@ public func recentlyUsedInlineBots(postbox: Postbox) -> Signal<[(Peer, Double)], } } +public func removeRecentlyUsedInlineBot(account: Account, peerId: PeerId) -> Signal { + return account.postbox.transaction { transaction -> Signal in + transaction.removeOrderedItemListItem(collectionId: Namespaces.OrderedItemList.CloudRecentInlineBots, itemId: RecentPeerItemId(peerId).rawValue) + + if let peer = transaction.getPeer(peerId), let apiPeer = apiInputPeer(peer) { + return account.network.request(Api.functions.contacts.resetTopPeerRating(category: .topPeerCategoryBotsInline, peer: apiPeer)) + |> `catch` { _ -> Signal in + return .single(.boolFalse) + } + |> mapToSignal { _ -> Signal in + return .complete() + } + } else { + return .complete() + } + } |> switchToLatest +} diff --git a/submodules/TelegramUI/TelegramUI/AppDelegate.swift b/submodules/TelegramUI/TelegramUI/AppDelegate.swift index d40a654516..5ef9a5f5f1 100644 --- a/submodules/TelegramUI/TelegramUI/AppDelegate.swift +++ b/submodules/TelegramUI/TelegramUI/AppDelegate.swift @@ -816,12 +816,12 @@ final class SharedApplicationContext { return } var exists = false - strongSelf.mainWindow.forEachViewController { controller in + strongSelf.mainWindow.forEachViewController({ controller in if controller is ThemeSettingsCrossfadeController || controller is ThemeSettingsController { exists = true } return true - } + }) if !exists { strongSelf.mainWindow.present(ThemeSettingsCrossfadeController(), on: .root) @@ -1425,12 +1425,12 @@ final class SharedApplicationContext { } } } - self.mainWindow.forEachViewController { controller in + self.mainWindow.forEachViewController({ controller in if let controller = controller as? UndoOverlayController { controller.dismissWithCommitAction() } return true - } + }) } func applicationDidEnterBackground(_ application: UIApplication) { diff --git a/submodules/TelegramUI/TelegramUI/ApplicationContext.swift b/submodules/TelegramUI/TelegramUI/ApplicationContext.swift index f8aaeef786..5754ef44da 100644 --- a/submodules/TelegramUI/TelegramUI/ApplicationContext.swift +++ b/submodules/TelegramUI/TelegramUI/ApplicationContext.swift @@ -333,7 +333,7 @@ final class AuthorizedApplicationContext { return false } return true - }) + }, excludeNavigationSubControllers: true) if foundOverlay { return true @@ -362,7 +362,7 @@ final class AuthorizedApplicationContext { return false }, expandAction: { expandData in if let strongSelf = self { - let chatController = ChatControllerImpl(context: strongSelf.context, chatLocation: .peer(firstMessage.id.peerId), mode: .overlay) + let chatController = ChatControllerImpl(context: strongSelf.context, chatLocation: .peer(firstMessage.id.peerId), mode: .overlay(strongSelf.rootController)) //chatController.navigation_setNavigationController(strongSelf.rootController) chatController.presentationArguments = ChatControllerOverlayPresentationData(expandData: expandData()) //strongSelf.rootController.pushViewController(chatController) diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 94a02736c9..1673d49761 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -8254,6 +8254,8 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G return navigationController } else if case let .inline(navigationController) = self.presentationInterfaceState.mode { return navigationController + } else if case let .overlay(navigationController) = self.presentationInterfaceState.mode { + return navigationController } else { return nil } diff --git a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift index 959684b84a..df12564141 100644 --- a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift @@ -496,7 +496,14 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { self.navigationBar?.isHidden = true } if self.overlayNavigationBar == nil { - let overlayNavigationBar = ChatOverlayNavigationBar(theme: self.chatPresentationInterfaceState.theme, strings: self.chatPresentationInterfaceState.strings, nameDisplayOrder: self.chatPresentationInterfaceState.nameDisplayOrder, close: { [weak self] in + let overlayNavigationBar = ChatOverlayNavigationBar(theme: self.chatPresentationInterfaceState.theme, strings: self.chatPresentationInterfaceState.strings, nameDisplayOrder: self.chatPresentationInterfaceState.nameDisplayOrder, tapped: { [weak self] in + if let strongSelf = self { + strongSelf.dismissAsOverlay() + if case let .peer(id) = strongSelf.chatPresentationInterfaceState.chatLocation { + strongSelf.interfaceInteraction?.navigateToChat(id) + } + } + }, close: { [weak self] in self?.dismissAsOverlay() }) overlayNavigationBar.peerView = self.peerView diff --git a/submodules/TelegramUI/TelegramUI/ChatOverlayNavigationBar.swift b/submodules/TelegramUI/TelegramUI/ChatOverlayNavigationBar.swift index a19a48aa66..720135e850 100644 --- a/submodules/TelegramUI/TelegramUI/ChatOverlayNavigationBar.swift +++ b/submodules/TelegramUI/TelegramUI/ChatOverlayNavigationBar.swift @@ -14,6 +14,7 @@ final class ChatOverlayNavigationBar: ASDisplayNode { private let theme: PresentationTheme private let strings: PresentationStrings private let nameDisplayOrder: PresentationPersonNameOrder + private let tapped: () -> Void private let close: () -> Void private let separatorNode: ASDisplayNode @@ -40,10 +41,11 @@ final class ChatOverlayNavigationBar: ASDisplayNode { } } - init(theme: PresentationTheme, strings: PresentationStrings, nameDisplayOrder: PresentationPersonNameOrder, close: @escaping () -> Void) { + init(theme: PresentationTheme, strings: PresentationStrings, nameDisplayOrder: PresentationPersonNameOrder, tapped: @escaping () -> Void, close: @escaping () -> Void) { self.theme = theme self.strings = strings self.nameDisplayOrder = nameDisplayOrder + self.tapped = tapped self.close = close self.separatorNode = ASDisplayNode() @@ -83,6 +85,13 @@ final class ChatOverlayNavigationBar: ASDisplayNode { self.closeButton.addTarget(self, action: #selector(self.closePressed), forControlEvents: [.touchUpInside]) } + override func didLoad() { + super.didLoad() + + let gestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.handleTap)) + self.view.addGestureRecognizer(gestureRecognizer) + } + func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) { transition.updateFrame(node: self.separatorNode, frame: CGRect(origin: CGPoint(x: 0.0, y: size.height - UIScreenPixel), size: CGSize(width: size.width, height: UIScreenPixel))) @@ -93,11 +102,15 @@ final class ChatOverlayNavigationBar: ASDisplayNode { let _ = titleApply() transition.updateFrame(node: self.titleNode, frame: CGRect(origin: CGPoint(x: sideInset, y: floor((size.height - titleLayout.size.height) / 2.0)), size: titleLayout.size)) - let closeButtonSize = self.closeButton.measure(CGSize(width: 100.0, height: 100.0)) - transition.updateFrame(node: self.closeButton, frame: CGRect(origin: CGPoint(x: size.width - sideInset - closeButtonSize.width - 6.0, y: floor((size.height - closeButtonSize.height) / 2.0)), size: closeButtonSize)) + let closeButtonSize = CGSize(width: size.height, height: size.height) + transition.updateFrame(node: self.closeButton, frame: CGRect(origin: CGPoint(x: size.width - sideInset - closeButtonSize.width + 10.0, y: 0.0), size: closeButtonSize)) } - @objc func closePressed() { + @objc private func handleTap() { + self.tapped() + } + + @objc private func closePressed() { self.close() } } diff --git a/submodules/TelegramUI/TelegramUI/HashtagChatInputContextPanelNode.swift b/submodules/TelegramUI/TelegramUI/HashtagChatInputContextPanelNode.swift index 4105db2245..ba6669116c 100644 --- a/submodules/TelegramUI/TelegramUI/HashtagChatInputContextPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/HashtagChatInputContextPanelNode.swift @@ -10,6 +10,7 @@ import TelegramUIPreferences import MergeLists import AccountContext import AccountContext +import ItemListUI private struct HashtagChatInputContextPanelEntryStableId: Hashable { let text: String @@ -19,25 +20,26 @@ private struct HashtagChatInputContextPanelEntry: Comparable, Identifiable { let index: Int let theme: PresentationTheme let text: String + let revealed: Bool var stableId: HashtagChatInputContextPanelEntryStableId { return HashtagChatInputContextPanelEntryStableId(text: self.text) } func withUpdatedTheme(_ theme: PresentationTheme) -> HashtagChatInputContextPanelEntry { - return HashtagChatInputContextPanelEntry(index: self.index, theme: theme, text: self.text) + return HashtagChatInputContextPanelEntry(index: self.index, theme: theme, text: self.text, revealed: self.revealed) } static func ==(lhs: HashtagChatInputContextPanelEntry, rhs: HashtagChatInputContextPanelEntry) -> Bool { - return lhs.index == rhs.index && lhs.text == rhs.text && lhs.theme === rhs.theme + return lhs.index == rhs.index && lhs.text == rhs.text && lhs.theme === rhs.theme && lhs.revealed == rhs.revealed } static func <(lhs: HashtagChatInputContextPanelEntry, rhs: HashtagChatInputContextPanelEntry) -> Bool { return lhs.index < rhs.index } - func item(account: Account, fontSize: PresentationFontSize, hashtagSelected: @escaping (String) -> Void) -> ListViewItem { - return HashtagChatInputPanelItem(theme: self.theme, fontSize: fontSize, text: self.text, hashtagSelected: hashtagSelected) + func item(account: Account, presentationData: PresentationData, setHashtagRevealed: @escaping (String?) -> Void, hashtagSelected: @escaping (String) -> Void, removeRequested: @escaping (String) -> Void) -> ListViewItem { + return HashtagChatInputPanelItem(presentationData: ItemListPresentationData(presentationData), text: self.text, revealed: self.revealed, setHashtagRevealed: setHashtagRevealed, hashtagSelected: hashtagSelected, removeRequested: removeRequested) } } @@ -47,12 +49,12 @@ private struct HashtagChatInputContextPanelTransition { let updates: [ListViewUpdateItem] } -private func preparedTransition(from fromEntries: [HashtagChatInputContextPanelEntry], to toEntries: [HashtagChatInputContextPanelEntry], account: Account, fontSize: PresentationFontSize, hashtagSelected: @escaping (String) -> Void) -> HashtagChatInputContextPanelTransition { +private func preparedTransition(from fromEntries: [HashtagChatInputContextPanelEntry], to toEntries: [HashtagChatInputContextPanelEntry], account: Account, presentationData: PresentationData, setHashtagRevealed: @escaping (String?) -> Void, hashtagSelected: @escaping (String) -> Void, removeRequested: @escaping (String) -> Void) -> HashtagChatInputContextPanelTransition { let (deleteIndices, indicesAndItems, updateIndices) = mergeListsStableWithUpdates(leftList: fromEntries, rightList: toEntries) let deletions = deleteIndices.map { ListViewDeleteItem(index: $0, directionHint: nil) } - let insertions = indicesAndItems.map { ListViewInsertItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(account: account, fontSize: fontSize, hashtagSelected: hashtagSelected), directionHint: nil) } - let updates = updateIndices.map { ListViewUpdateItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(account: account, fontSize: fontSize, hashtagSelected: hashtagSelected), directionHint: nil) } + let insertions = indicesAndItems.map { ListViewInsertItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(account: account, presentationData: presentationData, setHashtagRevealed: setHashtagRevealed, hashtagSelected: hashtagSelected, removeRequested: removeRequested), directionHint: nil) } + let updates = updateIndices.map { ListViewUpdateItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(account: account, presentationData: presentationData, setHashtagRevealed: setHashtagRevealed, hashtagSelected: hashtagSelected, removeRequested: removeRequested), directionHint: nil) } return HashtagChatInputContextPanelTransition(deletions: deletions, insertions: insertions, updates: updates) } @@ -61,6 +63,9 @@ final class HashtagChatInputContextPanelNode: ChatInputContextPanelNode { private let listView: ListView private var currentEntries: [HashtagChatInputContextPanelEntry]? + private var currentResults: [String] = [] + private var revealedHashtag: String? + private var enqueuedTransitions: [(HashtagChatInputContextPanelTransition, Bool)] = [] private var validLayout: (CGSize, CGFloat, CGFloat, CGFloat)? @@ -81,11 +86,13 @@ final class HashtagChatInputContextPanelNode: ChatInputContextPanelNode { } func updateResults(_ results: [String]) { + self.currentResults = results + var entries: [HashtagChatInputContextPanelEntry] = [] var index = 0 var stableIds = Set() for text in results { - let entry = HashtagChatInputContextPanelEntry(index: index, theme: self.theme, text: text) + let entry = HashtagChatInputContextPanelEntry(index: index, theme: self.theme, text: text, revealed: text == self.revealedHashtag) if stableIds.contains(entry.stableId) { continue } @@ -98,7 +105,12 @@ final class HashtagChatInputContextPanelNode: ChatInputContextPanelNode { private func prepareTransition(from: [HashtagChatInputContextPanelEntry]? , to: [HashtagChatInputContextPanelEntry]) { let firstTime = from == nil - let transition = preparedTransition(from: from ?? [], to: to, account: self.context.account, fontSize: self.fontSize, hashtagSelected: { [weak self] text in + let presentationData = self.context.sharedContext.currentPresentationData.with { $0 } + let transition = preparedTransition(from: from ?? [], to: to, account: self.context.account, presentationData: presentationData, setHashtagRevealed: { [weak self] text in + if let strongSelf = self { + strongSelf.revealedHashtag = text + } + }, hashtagSelected: { [weak self] text in if let strongSelf = self, let interfaceInteraction = strongSelf.interfaceInteraction { interfaceInteraction.updateTextInputStateAndMode { textInputState, inputMode in var hashtagQueryRange: NSRange? @@ -123,6 +135,10 @@ final class HashtagChatInputContextPanelNode: ChatInputContextPanelNode { return (textInputState, inputMode) } } + }, removeRequested: { [weak self] text in + if let strongSelf = self { + let _ = removeRecentlyUsedHashtag(postbox: strongSelf.context.account.postbox, string: text).start() + } }) self.currentEntries = to self.enqueueTransition(transition, firstTime: firstTime) diff --git a/submodules/TelegramUI/TelegramUI/HashtagChatInputPanelItem.swift b/submodules/TelegramUI/TelegramUI/HashtagChatInputPanelItem.swift index 57247e8a23..1f8a32d4a7 100644 --- a/submodules/TelegramUI/TelegramUI/HashtagChatInputPanelItem.swift +++ b/submodules/TelegramUI/TelegramUI/HashtagChatInputPanelItem.swift @@ -8,20 +8,25 @@ import SwiftSignalKit import Postbox import TelegramPresentationData import TelegramUIPreferences +import ItemListUI final class HashtagChatInputPanelItem: ListViewItem { - fileprivate let theme: PresentationTheme - fileprivate let fontSize: PresentationFontSize + fileprivate let presentationData: ItemListPresentationData fileprivate let text: String + fileprivate let revealed: Bool + fileprivate let setHashtagRevealed: (String?) -> Void private let hashtagSelected: (String) -> Void + fileprivate let removeRequested: (String) -> Void let selectable: Bool = true - public init(theme: PresentationTheme, fontSize: PresentationFontSize, text: String, hashtagSelected: @escaping (String) -> Void) { - self.theme = theme - self.fontSize = fontSize + public init(presentationData: ItemListPresentationData, text: String, revealed: Bool, setHashtagRevealed: @escaping (String?) -> Void, hashtagSelected: @escaping (String) -> Void, removeRequested: @escaping (String) -> Void) { + self.presentationData = presentationData self.text = text + self.revealed = revealed + self.setHashtagRevealed = setHashtagRevealed self.hashtagSelected = hashtagSelected + self.removeRequested = removeRequested } public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { @@ -72,7 +77,11 @@ final class HashtagChatInputPanelItem: ListViewItem { } func selected(listView: ListView) { - self.hashtagSelected(self.text) + if self.revealed { + self.setHashtagRevealed(nil) + } else { + self.hashtagSelected(self.text) + } } } @@ -82,6 +91,17 @@ final class HashtagChatInputPanelItemNode: ListViewItemNode { private let topSeparatorNode: ASDisplayNode private let separatorNode: ASDisplayNode private let highlightedBackgroundNode: ASDisplayNode + + private var revealNode: ItemListRevealOptionsNode? + private var revealOptions: [ItemListRevealOption] = [] + private var initialRevealOffset: CGFloat = 0.0 + public private(set) var revealOffset: CGFloat = 0.0 + private var recognizer: ItemListRevealOptionsGestureRecognizer? + private var hapticFeedback: HapticFeedback? + + private var item: HashtagChatInputPanelItem? + + private var validLayout: (CGSize, CGFloat, CGFloat)? init() { self.textNode = TextNode() @@ -102,6 +122,15 @@ final class HashtagChatInputPanelItemNode: ListViewItemNode { self.addSubnode(self.textNode) } + override func didLoad() { + super.didLoad() + + let recognizer = ItemListRevealOptionsGestureRecognizer(target: self, action: #selector(self.revealGesture(_:))) + self.recognizer = recognizer + recognizer.allowAnyDirection = false + self.view.addGestureRecognizer(recognizer) + } + override public func layoutForParams(_ params: ListViewItemLayoutParams, item: ListViewItem, previousItem: ListViewItem?, nextItem: ListViewItem?) { if let item = item as? HashtagChatInputPanelItem { let doLayout = self.asyncLayout() @@ -116,26 +145,31 @@ final class HashtagChatInputPanelItemNode: ListViewItemNode { func asyncLayout() -> (_ item: HashtagChatInputPanelItem, _ params: ListViewItemLayoutParams, _ mergedTop: Bool, _ mergedBottom: Bool) -> (ListViewItemNodeLayout, (ListViewItemUpdateAnimation) -> Void) { let makeTextLayout = TextNode.asyncLayout(self.textNode) return { [weak self] item, params, mergedTop, mergedBottom in - let textFont = Font.medium(floor(item.fontSize.baseDisplaySize * 14.0 / 17.0)) + let textFont = Font.medium(floor(item.presentationData.fontSize.baseDisplaySize * 14.0 / 17.0)) let baseWidth = params.width - params.leftInset - params.rightInset let leftInset: CGFloat = 15.0 + params.leftInset let rightInset: CGFloat = 10.0 + params.rightInset - let (textLayout, textApply) = makeTextLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: "#\(item.text)", font: textFont, textColor: item.theme.list.itemPrimaryTextColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: baseWidth, height: 100.0), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) + let (textLayout, textApply) = makeTextLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: "#\(item.text)", font: textFont, textColor: item.presentationData.theme.list.itemPrimaryTextColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: baseWidth, height: 100.0), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) let nodeLayout = ListViewItemNodeLayout(contentSize: CGSize(width: params.width, height: HashtagChatInputPanelItemNode.itemHeight), insets: UIEdgeInsets()) - return (nodeLayout, { _ in + return (nodeLayout, { animation in if let strongSelf = self { - strongSelf.separatorNode.backgroundColor = item.theme.list.itemPlainSeparatorColor - strongSelf.topSeparatorNode.backgroundColor = item.theme.list.itemPlainSeparatorColor - strongSelf.backgroundColor = item.theme.list.plainBackgroundColor - strongSelf.highlightedBackgroundNode.backgroundColor = item.theme.list.itemHighlightedBackgroundColor + strongSelf.item = item + strongSelf.validLayout = (nodeLayout.contentSize, params.leftInset, params.rightInset) + + let revealOffset = strongSelf.revealOffset + + strongSelf.separatorNode.backgroundColor = item.presentationData.theme.list.itemPlainSeparatorColor + strongSelf.topSeparatorNode.backgroundColor = item.presentationData.theme.list.itemPlainSeparatorColor + strongSelf.backgroundColor = item.presentationData.theme.list.plainBackgroundColor + strongSelf.highlightedBackgroundNode.backgroundColor = item.presentationData.theme.list.itemHighlightedBackgroundColor let _ = textApply() - strongSelf.textNode.frame = CGRect(origin: CGPoint(x: leftInset, y: floor((nodeLayout.contentSize.height - textLayout.size.height) / 2.0)), size: textLayout.size) + strongSelf.textNode.frame = CGRect(origin: CGPoint(x: revealOffset + leftInset, y: floor((nodeLayout.contentSize.height - textLayout.size.height) / 2.0)), size: textLayout.size) strongSelf.topSeparatorNode.isHidden = mergedTop strongSelf.separatorNode.isHidden = !mergedBottom @@ -144,14 +178,27 @@ final class HashtagChatInputPanelItemNode: ListViewItemNode { strongSelf.separatorNode.frame = CGRect(origin: CGPoint(x: leftInset, y: nodeLayout.contentSize.height - UIScreenPixel), size: CGSize(width: params.width - leftInset, height: UIScreenPixel)) strongSelf.highlightedBackgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: params.width, height: nodeLayout.size.height + UIScreenPixel)) + + strongSelf.setRevealOptions([ItemListRevealOption(key: 0, title: item.presentationData.strings.Common_Delete, icon: .none, color: item.presentationData.theme.list.itemDisclosureActions.destructive.fillColor, textColor: item.presentationData.theme.list.itemDisclosureActions.destructive.foregroundColor)]) + strongSelf.setRevealOptionsOpened(item.revealed, animated: animation.isAnimated) } }) } } + func updateRevealOffset(offset: CGFloat, transition: ContainedViewLayoutTransition) { + if let (size, leftInset, rightInset) = self.validLayout { + transition.updateFrameAdditive(node: self.textNode, frame: CGRect(origin: CGPoint(x: min(offset, 0.0) + 15.0 + leftInset, y: self.textNode.frame.minY), size: self.textNode.frame.size)) + } + } + override func setHighlighted(_ highlighted: Bool, at point: CGPoint, animated: Bool) { super.setHighlighted(highlighted, at: point, animated: animated) + if let revealNode = self.revealNode, self.revealOffset != 0 { + return + } + if highlighted { self.highlightedBackgroundNode.alpha = 1.0 if self.highlightedBackgroundNode.supernode == nil { @@ -174,4 +221,199 @@ final class HashtagChatInputPanelItemNode: ListViewItemNode { } } } + + func setRevealOptions(_ options: [ItemListRevealOption]) { + if self.revealOptions == options { + return + } + let previousOptions = self.revealOptions + let wasEmpty = self.revealOptions.isEmpty + self.revealOptions = options + let isEmpty = options.isEmpty + if options.isEmpty { + if let _ = self.revealNode { + self.recognizer?.becomeCancelled() + self.updateRevealOffsetInternal(offset: 0.0, transition: .animated(duration: 0.3, curve: .spring)) + } + } + if wasEmpty != isEmpty { + self.recognizer?.isEnabled = !isEmpty + } + } + + private func setRevealOptionsOpened(_ value: Bool, animated: Bool) { + if value != !self.revealOffset.isZero { + if !self.revealOffset.isZero { + self.recognizer?.becomeCancelled() + } + let transition: ContainedViewLayoutTransition + if animated { + transition = .animated(duration: 0.3, curve: .spring) + } else { + transition = .immediate + } + if value { + if self.revealNode == nil { + self.setupAndAddRevealNode() + if let revealNode = self.revealNode, revealNode.isNodeLoaded, let _ = self.validLayout { + revealNode.layout() + let revealSize = revealNode.bounds.size + self.updateRevealOffsetInternal(offset: -revealSize.width, transition: transition) + } + } + } else if !self.revealOffset.isZero { + self.updateRevealOffsetInternal(offset: 0.0, transition: transition) + } + } + } + + override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { + return true + } + + func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { + if let recognizer = self.recognizer, otherGestureRecognizer == recognizer { + return true + } else { + return false + } + } + + @objc func revealGesture(_ recognizer: ItemListRevealOptionsGestureRecognizer) { + guard let (size, _, _) = self.validLayout else { + return + } + switch recognizer.state { + case .began: + if let revealNode = self.revealNode { + let revealSize = revealNode.bounds.size + let location = recognizer.location(in: self.view) + if location.x > size.width - revealSize.width { + recognizer.becomeCancelled() + } else { + self.initialRevealOffset = self.revealOffset + } + } else { + if self.revealOptions.isEmpty { + recognizer.becomeCancelled() + } + self.initialRevealOffset = self.revealOffset + } + case .changed: + var translation = recognizer.translation(in: self.view) + translation.x += self.initialRevealOffset + if self.revealNode == nil && translation.x.isLess(than: 0.0) { + self.setupAndAddRevealNode() + self.revealOptionsInteractivelyOpened() + } + self.updateRevealOffsetInternal(offset: translation.x, transition: .immediate) + if self.revealNode == nil { + self.revealOptionsInteractivelyClosed() + } + case .ended, .cancelled: + guard let recognizer = self.recognizer else { + break + } + + if let revealNode = self.revealNode { + let velocity = recognizer.velocity(in: self.view) + let revealSize = revealNode.bounds.size + var reveal = false + if abs(velocity.x) < 100.0 { + if self.initialRevealOffset.isZero && self.revealOffset < 0.0 { + reveal = true + } else if self.revealOffset < -revealSize.width { + reveal = true + } else { + reveal = false + } + } else { + if velocity.x < 0.0 { + reveal = true + } else { + reveal = false + } + } + self.updateRevealOffsetInternal(offset: reveal ? -revealSize.width : 0.0, transition: .animated(duration: 0.3, curve: .spring)) + if !reveal { + self.revealOptionsInteractivelyClosed() + } + } + default: + break + } + } + + private func revealOptionSelected(_ option: ItemListRevealOption, animated: Bool) { + guard let item = self.item else { + return + } + item.removeRequested(item.text) + } + + private func setupAndAddRevealNode() { + if !self.revealOptions.isEmpty { + let revealNode = ItemListRevealOptionsNode(optionSelected: { [weak self] option in + self?.revealOptionSelected(option, animated: false) + }, tapticAction: { [weak self] in + self?.hapticImpact() + }) + revealNode.setOptions(self.revealOptions, isLeft: false) + self.revealNode = revealNode + + if let (size, _, rightInset) = self.validLayout { + var revealSize = revealNode.measure(CGSize(width: CGFloat.greatestFiniteMagnitude, height: size.height)) + revealSize.width += rightInset + + revealNode.frame = CGRect(origin: CGPoint(x: size.width + max(self.revealOffset, -revealSize.width), y: 0.0), size: revealSize) + revealNode.updateRevealOffset(offset: 0.0, sideInset: -rightInset, transition: .immediate) + } + + self.addSubnode(revealNode) + } + } + + private func updateRevealOffsetInternal(offset: CGFloat, transition: ContainedViewLayoutTransition) { + self.revealOffset = offset + guard let (size, leftInset, rightInset) = self.validLayout else { + return + } + + if let revealNode = self.revealNode { + let revealSize = revealNode.bounds.size + + let revealFrame = CGRect(origin: CGPoint(x: size.width + max(self.revealOffset, -revealSize.width), y: 0.0), size: revealSize) + let revealNodeOffset = -max(self.revealOffset, -revealSize.width) + revealNode.updateRevealOffset(offset: revealNodeOffset, sideInset: -rightInset, transition: transition) + + if CGFloat(0.0).isLessThanOrEqualTo(offset) { + self.revealNode = nil + transition.updateFrame(node: revealNode, frame: revealFrame, completion: { [weak revealNode] _ in + revealNode?.removeFromSupernode() + }) + } else { + transition.updateFrame(node: revealNode, frame: revealFrame) + } + } + self.updateRevealOffset(offset: offset, transition: transition) + } + + func revealOptionsInteractivelyOpened() { + if let item = self.item { + item.setHashtagRevealed(item.text) + } + } + + func revealOptionsInteractivelyClosed() { + if let item = self.item { + item.setHashtagRevealed(nil) + } + } + + private func hapticImpact() { + if self.hapticFeedback == nil { + self.hapticFeedback = HapticFeedback() + } + self.hapticFeedback?.impact(.medium) + } } diff --git a/submodules/TelegramUI/TelegramUI/MentionChatInputContextPanelNode.swift b/submodules/TelegramUI/TelegramUI/MentionChatInputContextPanelNode.swift index 6dc770a61c..4f2c0ab346 100644 --- a/submodules/TelegramUI/TelegramUI/MentionChatInputContextPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/MentionChatInputContextPanelNode.swift @@ -11,25 +11,27 @@ import MergeLists import TextFormat import AccountContext import LocalizedPeerData +import ItemListUI private struct MentionChatInputContextPanelEntry: Comparable, Identifiable { let index: Int let peer: Peer + let revealed: Bool var stableId: Int64 { return self.peer.id.toInt64() } static func ==(lhs: MentionChatInputContextPanelEntry, rhs: MentionChatInputContextPanelEntry) -> Bool { - return lhs.index == rhs.index && lhs.peer.isEqual(rhs.peer) + return lhs.index == rhs.index && lhs.peer.isEqual(rhs.peer) && lhs.revealed == rhs.revealed } static func <(lhs: MentionChatInputContextPanelEntry, rhs: MentionChatInputContextPanelEntry) -> Bool { return lhs.index < rhs.index } - func item(context: AccountContext, theme: PresentationTheme, fontSize: PresentationFontSize, inverted: Bool, peerSelected: @escaping (Peer) -> Void) -> ListViewItem { - return MentionChatInputPanelItem(context: context, theme: theme, fontSize: fontSize, inverted: inverted, peer: self.peer, peerSelected: peerSelected) + func item(context: AccountContext, presentationData: PresentationData, inverted: Bool, setPeerIdRevealed: @escaping (PeerId?) -> Void, peerSelected: @escaping (Peer) -> Void, removeRequested: @escaping (PeerId) -> Void) -> ListViewItem { + return MentionChatInputPanelItem(context: context, presentationData: ItemListPresentationData(presentationData), inverted: inverted, peer: self.peer, revealed: self.revealed, setPeerIdRevealed: setPeerIdRevealed, peerSelected: peerSelected, removeRequested: removeRequested) } } @@ -39,12 +41,12 @@ private struct CommandChatInputContextPanelTransition { let updates: [ListViewUpdateItem] } -private func preparedTransition(from fromEntries: [MentionChatInputContextPanelEntry], to toEntries: [MentionChatInputContextPanelEntry], context: AccountContext, theme: PresentationTheme, fontSize: PresentationFontSize, inverted: Bool, forceUpdate: Bool, peerSelected: @escaping (Peer) -> Void) -> CommandChatInputContextPanelTransition { +private func preparedTransition(from fromEntries: [MentionChatInputContextPanelEntry], to toEntries: [MentionChatInputContextPanelEntry], context: AccountContext, presentationData: PresentationData, inverted: Bool, forceUpdate: Bool, setPeerIdRevealed: @escaping (PeerId?) -> Void, peerSelected: @escaping (Peer) -> Void, removeRequested: @escaping (PeerId) -> Void) -> CommandChatInputContextPanelTransition { let (deleteIndices, indicesAndItems, updateIndices) = mergeListsStableWithUpdates(leftList: fromEntries, rightList: toEntries, allUpdated: forceUpdate) let deletions = deleteIndices.map { ListViewDeleteItem(index: $0, directionHint: nil) } - let insertions = indicesAndItems.map { ListViewInsertItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, theme: theme, fontSize: fontSize, inverted: inverted, peerSelected: peerSelected), directionHint: nil) } - let updates = updateIndices.map { ListViewUpdateItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, theme: theme, fontSize: fontSize, inverted: inverted, peerSelected: peerSelected), directionHint: nil) } + let insertions = indicesAndItems.map { ListViewInsertItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, presentationData: presentationData, inverted: inverted, setPeerIdRevealed: setPeerIdRevealed, peerSelected: peerSelected, removeRequested: removeRequested), directionHint: nil) } + let updates = updateIndices.map { ListViewUpdateItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, presentationData: presentationData, inverted: inverted, setPeerIdRevealed: setPeerIdRevealed, peerSelected: peerSelected, removeRequested: removeRequested), directionHint: nil) } return CommandChatInputContextPanelTransition(deletions: deletions, insertions: insertions, updates: updates) } @@ -60,6 +62,8 @@ final class MentionChatInputContextPanelNode: ChatInputContextPanelNode { private let listView: ListView private var currentEntries: [MentionChatInputContextPanelEntry]? + private var revealedPeerId: PeerId? + private var enqueuedTransitions: [(CommandChatInputContextPanelTransition, Bool)] = [] private var validLayout: (CGSize, CGFloat, CGFloat, CGFloat)? @@ -95,7 +99,7 @@ final class MentionChatInputContextPanelNode: ChatInputContextPanelNode { continue } peerIdSet.insert(peerId) - entries.append(MentionChatInputContextPanelEntry(index: index, peer: peer)) + entries.append(MentionChatInputContextPanelEntry(index: index, peer: peer, revealed: revealedPeerId == peer.id)) index += 1 } self.updateToEntries(entries: entries, forceUpdate: false) @@ -103,7 +107,10 @@ final class MentionChatInputContextPanelNode: ChatInputContextPanelNode { private func updateToEntries(entries: [MentionChatInputContextPanelEntry], forceUpdate: Bool) { let firstTime = self.currentEntries == nil - let transition = preparedTransition(from: self.currentEntries ?? [], to: entries, context: self.context, theme: self.theme, fontSize: self.fontSize, inverted: self.mode == .search, forceUpdate: forceUpdate, peerSelected: { [weak self] peer in + let presentationData = self.context.sharedContext.currentPresentationData.with { $0 } + let transition = preparedTransition(from: self.currentEntries ?? [], to: entries, context: self.context, presentationData: presentationData, inverted: self.mode == .search, forceUpdate: forceUpdate, setPeerIdRevealed: { [weak self] peerId in + + }, peerSelected: { [weak self] peer in if let strongSelf = self, let interfaceInteraction = strongSelf.interfaceInteraction { switch strongSelf.mode { case .input: @@ -147,6 +154,10 @@ final class MentionChatInputContextPanelNode: ChatInputContextPanelNode { interfaceInteraction.beginMessageSearch(.member(peer), "") } } + }, removeRequested: { [weak self] peerId in + if let strongSelf = self { + let _ = removeRecentlyUsedInlineBot(account: strongSelf.context.account, peerId: peerId).start() + } }) self.currentEntries = entries self.enqueueTransition(transition, firstTime: firstTime) diff --git a/submodules/TelegramUI/TelegramUI/MentionChatInputPanelItem.swift b/submodules/TelegramUI/TelegramUI/MentionChatInputPanelItem.swift index a97d6708fe..d4d2c83949 100644 --- a/submodules/TelegramUI/TelegramUI/MentionChatInputPanelItem.swift +++ b/submodules/TelegramUI/TelegramUI/MentionChatInputPanelItem.swift @@ -10,24 +10,29 @@ import TelegramPresentationData import TelegramUIPreferences import AvatarNode import AccountContext +import ItemListUI final class MentionChatInputPanelItem: ListViewItem { fileprivate let context: AccountContext - fileprivate let theme: PresentationTheme - fileprivate let fontSize: PresentationFontSize + fileprivate let presentationData: ItemListPresentationData + fileprivate let revealed: Bool fileprivate let inverted: Bool fileprivate let peer: Peer private let peerSelected: (Peer) -> Void + fileprivate let setPeerIdRevealed: (PeerId?) -> Void + fileprivate let removeRequested: (PeerId) -> Void let selectable: Bool = true - public init(context: AccountContext, theme: PresentationTheme, fontSize: PresentationFontSize, inverted: Bool, peer: Peer, peerSelected: @escaping (Peer) -> Void) { + public init(context: AccountContext, presentationData: ItemListPresentationData, inverted: Bool, peer: Peer, revealed: Bool, setPeerIdRevealed: @escaping (PeerId?) -> Void, peerSelected: @escaping (Peer) -> Void, removeRequested: @escaping (PeerId) -> Void) { self.context = context - self.theme = theme - self.fontSize = fontSize + self.presentationData = presentationData self.inverted = inverted self.peer = peer + self.revealed = revealed + self.setPeerIdRevealed = setPeerIdRevealed self.peerSelected = peerSelected + self.removeRequested = removeRequested } public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { @@ -86,15 +91,24 @@ private let avatarFont = avatarPlaceholderFont(size: 16.0) final class MentionChatInputPanelItemNode: ListViewItemNode { static let itemHeight: CGFloat = 42.0 - - private var item: MentionChatInputPanelItem? - + private let avatarNode: AvatarNode private let textNode: TextNode private let topSeparatorNode: ASDisplayNode private let separatorNode: ASDisplayNode private let highlightedBackgroundNode: ASDisplayNode + private var revealNode: ItemListRevealOptionsNode? + private var revealOptions: [ItemListRevealOption] = [] + private var initialRevealOffset: CGFloat = 0.0 + public private(set) var revealOffset: CGFloat = 0.0 + private var recognizer: ItemListRevealOptionsGestureRecognizer? + private var hapticFeedback: HapticFeedback? + + private var item: MentionChatInputPanelItem? + + private var validLayout: (CGSize, CGFloat, CGFloat)? + init() { self.avatarNode = AvatarNode(font: avatarFont) self.textNode = TextNode() @@ -117,6 +131,15 @@ final class MentionChatInputPanelItemNode: ListViewItemNode { self.addSubnode(self.textNode) } + override func didLoad() { + super.didLoad() + + let recognizer = ItemListRevealOptionsGestureRecognizer(target: self, action: #selector(self.revealGesture(_:))) + self.recognizer = recognizer + recognizer.allowAnyDirection = false + self.view.addGestureRecognizer(recognizer) + } + override public func layoutForParams(_ params: ListViewItemLayoutParams, item: ListViewItem, previousItem: ListViewItem?, nextItem: ListViewItem?) { if let item = item as? MentionChatInputPanelItem { let doLayout = self.asyncLayout() @@ -134,8 +157,8 @@ final class MentionChatInputPanelItemNode: ListViewItemNode { let previousItem = self.item return { [weak self] item, params, mergedTop, mergedBottom in - let primaryFont = Font.medium(floor(item.fontSize.baseDisplaySize * 14.0 / 17.0)) - let secondaryFont = Font.regular(floor(item.fontSize.baseDisplaySize * 14.0 / 17.0)) + let primaryFont = Font.medium(floor(item.presentationData.fontSize.baseDisplaySize * 14.0 / 17.0)) + let secondaryFont = Font.regular(floor(item.presentationData.fontSize.baseDisplaySize * 14.0 / 17.0)) let leftInset: CGFloat = 55.0 + params.leftInset let rightInset: CGFloat = 10.0 + params.rightInset @@ -146,19 +169,23 @@ final class MentionChatInputPanelItemNode: ListViewItemNode { } let string = NSMutableAttributedString() - string.append(NSAttributedString(string: item.peer.debugDisplayTitle, font: primaryFont, textColor: item.theme.list.itemPrimaryTextColor)) + string.append(NSAttributedString(string: item.peer.debugDisplayTitle, font: primaryFont, textColor: item.presentationData.theme.list.itemPrimaryTextColor)) if let addressName = item.peer.addressName, !addressName.isEmpty { - string.append(NSAttributedString(string: " @\(addressName)", font: secondaryFont, textColor: item.theme.list.itemSecondaryTextColor)) + string.append(NSAttributedString(string: " @\(addressName)", font: secondaryFont, textColor: item.presentationData.theme.list.itemSecondaryTextColor)) } let (textLayout, textApply) = makeTextLayout(TextNodeLayoutArguments(attributedString: string, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: params.width - leftInset - rightInset, height: 100.0), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) let nodeLayout = ListViewItemNodeLayout(contentSize: CGSize(width: params.width, height: HashtagChatInputPanelItemNode.itemHeight), insets: UIEdgeInsets()) - return (nodeLayout, { _ in + return (nodeLayout, { animation in if let strongSelf = self { strongSelf.item = item + strongSelf.validLayout = (nodeLayout.contentSize, params.leftInset, params.rightInset) + + let revealOffset = strongSelf.revealOffset + if let updatedInverted = updatedInverted { if updatedInverted { strongSelf.transform = CATransform3DMakeRotation(CGFloat(Double.pi), 0.0, 0.0, 1.0) @@ -167,12 +194,12 @@ final class MentionChatInputPanelItemNode: ListViewItemNode { } } - strongSelf.separatorNode.backgroundColor = item.theme.list.itemPlainSeparatorColor - strongSelf.topSeparatorNode.backgroundColor = item.theme.list.itemPlainSeparatorColor - strongSelf.backgroundColor = item.theme.list.plainBackgroundColor - strongSelf.highlightedBackgroundNode.backgroundColor = item.theme.list.itemHighlightedBackgroundColor + strongSelf.separatorNode.backgroundColor = item.presentationData.theme.list.itemPlainSeparatorColor + strongSelf.topSeparatorNode.backgroundColor = item.presentationData.theme.list.itemPlainSeparatorColor + strongSelf.backgroundColor = item.presentationData.theme.list.plainBackgroundColor + strongSelf.highlightedBackgroundNode.backgroundColor = item.presentationData.theme.list.itemHighlightedBackgroundColor - strongSelf.avatarNode.setPeer(context: item.context, theme: item.theme, peer: item.peer, emptyColor: item.theme.list.mediaPlaceholderColor) + strongSelf.avatarNode.setPeer(context: item.context, theme: item.presentationData.theme, peer: item.peer, emptyColor: item.presentationData.theme.list.mediaPlaceholderColor) let _ = textApply() @@ -186,14 +213,33 @@ final class MentionChatInputPanelItemNode: ListViewItemNode { strongSelf.separatorNode.frame = CGRect(origin: CGPoint(x: leftInset, y: !item.inverted ? (nodeLayout.contentSize.height - UIScreenPixel) : 0.0), size: CGSize(width: params.width - leftInset, height: UIScreenPixel)) strongSelf.highlightedBackgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: params.width, height: nodeLayout.size.height + UIScreenPixel)) + + if let peer = item.peer as? TelegramUser, let _ = peer.botInfo { + strongSelf.setRevealOptions([ItemListRevealOption(key: 0, title: item.presentationData.strings.Common_Delete, icon: .none, color: item.presentationData.theme.list.itemDisclosureActions.destructive.fillColor, textColor: item.presentationData.theme.list.itemDisclosureActions.destructive.foregroundColor)]) + strongSelf.setRevealOptionsOpened(item.revealed, animated: animation.isAnimated) + } else { + strongSelf.setRevealOptions([]) + strongSelf.setRevealOptionsOpened(false, animated: animation.isAnimated) + } } }) } } + func updateRevealOffset(offset: CGFloat, transition: ContainedViewLayoutTransition) { + if let (size, leftInset, rightInset) = self.validLayout { + transition.updateFrameAdditive(node: self.avatarNode, frame: CGRect(origin: CGPoint(x: min(offset, 0.0) + 12.0 + leftInset, y: self.avatarNode.frame.minY), size: self.avatarNode.frame.size)) + transition.updateFrameAdditive(node: self.textNode, frame: CGRect(origin: CGPoint(x: min(offset, 0.0) + 55.0 + leftInset, y: self.textNode.frame.minY), size: self.textNode.frame.size)) + } + } + override func setHighlighted(_ highlighted: Bool, at point: CGPoint, animated: Bool) { super.setHighlighted(highlighted, at: point, animated: animated) + if let revealNode = self.revealNode, self.revealOffset != 0 { + return + } + if highlighted { self.highlightedBackgroundNode.alpha = 1.0 if self.highlightedBackgroundNode.supernode == nil { @@ -216,4 +262,199 @@ final class MentionChatInputPanelItemNode: ListViewItemNode { } } } + + func setRevealOptions(_ options: [ItemListRevealOption]) { + if self.revealOptions == options { + return + } + let previousOptions = self.revealOptions + let wasEmpty = self.revealOptions.isEmpty + self.revealOptions = options + let isEmpty = options.isEmpty + if options.isEmpty { + if let _ = self.revealNode { + self.recognizer?.becomeCancelled() + self.updateRevealOffsetInternal(offset: 0.0, transition: .animated(duration: 0.3, curve: .spring)) + } + } + if wasEmpty != isEmpty { + self.recognizer?.isEnabled = !isEmpty + } + } + + private func setRevealOptionsOpened(_ value: Bool, animated: Bool) { + if value != !self.revealOffset.isZero { + if !self.revealOffset.isZero { + self.recognizer?.becomeCancelled() + } + let transition: ContainedViewLayoutTransition + if animated { + transition = .animated(duration: 0.3, curve: .spring) + } else { + transition = .immediate + } + if value { + if self.revealNode == nil { + self.setupAndAddRevealNode() + if let revealNode = self.revealNode, revealNode.isNodeLoaded, let _ = self.validLayout { + revealNode.layout() + let revealSize = revealNode.bounds.size + self.updateRevealOffsetInternal(offset: -revealSize.width, transition: transition) + } + } + } else if !self.revealOffset.isZero { + self.updateRevealOffsetInternal(offset: 0.0, transition: transition) + } + } + } + + override func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool { + return true + } + + func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWith otherGestureRecognizer: UIGestureRecognizer) -> Bool { + if let recognizer = self.recognizer, otherGestureRecognizer == recognizer { + return true + } else { + return false + } + } + + @objc func revealGesture(_ recognizer: ItemListRevealOptionsGestureRecognizer) { + guard let (size, _, _) = self.validLayout else { + return + } + switch recognizer.state { + case .began: + if let revealNode = self.revealNode { + let revealSize = revealNode.bounds.size + let location = recognizer.location(in: self.view) + if location.x > size.width - revealSize.width { + recognizer.becomeCancelled() + } else { + self.initialRevealOffset = self.revealOffset + } + } else { + if self.revealOptions.isEmpty { + recognizer.becomeCancelled() + } + self.initialRevealOffset = self.revealOffset + } + case .changed: + var translation = recognizer.translation(in: self.view) + translation.x += self.initialRevealOffset + if self.revealNode == nil && translation.x.isLess(than: 0.0) { + self.setupAndAddRevealNode() + self.revealOptionsInteractivelyOpened() + } + self.updateRevealOffsetInternal(offset: translation.x, transition: .immediate) + if self.revealNode == nil { + self.revealOptionsInteractivelyClosed() + } + case .ended, .cancelled: + guard let recognizer = self.recognizer else { + break + } + + if let revealNode = self.revealNode { + let velocity = recognizer.velocity(in: self.view) + let revealSize = revealNode.bounds.size + var reveal = false + if abs(velocity.x) < 100.0 { + if self.initialRevealOffset.isZero && self.revealOffset < 0.0 { + reveal = true + } else if self.revealOffset < -revealSize.width { + reveal = true + } else { + reveal = false + } + } else { + if velocity.x < 0.0 { + reveal = true + } else { + reveal = false + } + } + self.updateRevealOffsetInternal(offset: reveal ? -revealSize.width : 0.0, transition: .animated(duration: 0.3, curve: .spring)) + if !reveal { + self.revealOptionsInteractivelyClosed() + } + } + default: + break + } + } + + private func revealOptionSelected(_ option: ItemListRevealOption, animated: Bool) { + guard let item = self.item else { + return + } + item.removeRequested(item.peer.id) + } + + private func setupAndAddRevealNode() { + if !self.revealOptions.isEmpty { + let revealNode = ItemListRevealOptionsNode(optionSelected: { [weak self] option in + self?.revealOptionSelected(option, animated: false) + }, tapticAction: { [weak self] in + self?.hapticImpact() + }) + revealNode.setOptions(self.revealOptions, isLeft: false) + self.revealNode = revealNode + + if let (size, _, rightInset) = self.validLayout { + var revealSize = revealNode.measure(CGSize(width: CGFloat.greatestFiniteMagnitude, height: size.height)) + revealSize.width += rightInset + + revealNode.frame = CGRect(origin: CGPoint(x: size.width + max(self.revealOffset, -revealSize.width), y: 0.0), size: revealSize) + revealNode.updateRevealOffset(offset: 0.0, sideInset: -rightInset, transition: .immediate) + } + + self.addSubnode(revealNode) + } + } + + private func updateRevealOffsetInternal(offset: CGFloat, transition: ContainedViewLayoutTransition) { + self.revealOffset = offset + guard let (size, leftInset, rightInset) = self.validLayout else { + return + } + + if let revealNode = self.revealNode { + let revealSize = revealNode.bounds.size + + let revealFrame = CGRect(origin: CGPoint(x: size.width + max(self.revealOffset, -revealSize.width), y: 0.0), size: revealSize) + let revealNodeOffset = -max(self.revealOffset, -revealSize.width) + revealNode.updateRevealOffset(offset: revealNodeOffset, sideInset: -rightInset, transition: transition) + + if CGFloat(0.0).isLessThanOrEqualTo(offset) { + self.revealNode = nil + transition.updateFrame(node: revealNode, frame: revealFrame, completion: { [weak revealNode] _ in + revealNode?.removeFromSupernode() + }) + } else { + transition.updateFrame(node: revealNode, frame: revealFrame) + } + } + self.updateRevealOffset(offset: offset, transition: transition) + } + + func revealOptionsInteractivelyOpened() { + if let item = self.item { + item.setPeerIdRevealed(item.peer.id) + } + } + + func revealOptionsInteractivelyClosed() { + if let item = self.item { + item.setPeerIdRevealed(nil) + } + } + + private func hapticImpact() { + if self.hapticFeedback == nil { + self.hapticFeedback = HapticFeedback() + } + self.hapticFeedback?.impact(.medium) + } } diff --git a/submodules/TelegramUI/TelegramUI/ThemeUpdateManager.swift b/submodules/TelegramUI/TelegramUI/ThemeUpdateManager.swift index b1a4e73adb..3051fa73ed 100644 --- a/submodules/TelegramUI/TelegramUI/ThemeUpdateManager.swift +++ b/submodules/TelegramUI/TelegramUI/ThemeUpdateManager.swift @@ -111,10 +111,10 @@ final class ThemeUpdateManagerImpl: ThemeUpdateManager { return .complete() } accountManager.mediaBox.storeResourceData(file.file.resource.id, data: fullSizeData, synchronous: true) - return .single((.cloud(PresentationCloudTheme(theme: theme, resolvedWallpaper: wallpaper)), presentationTheme)) + return .single((.cloud(PresentationCloudTheme(theme: theme, resolvedWallpaper: wallpaper, creatorAccountId: theme.isCreator ? account.id : nil)), presentationTheme)) } } else { - return .single((.cloud(PresentationCloudTheme(theme: theme, resolvedWallpaper: nil)), presentationTheme)) + return .single((.cloud(PresentationCloudTheme(theme: theme, resolvedWallpaper: nil, creatorAccountId: theme.isCreator ? account.id : nil)), presentationTheme)) } } } diff --git a/submodules/TelegramUIPreferences/Sources/PresentationThemeSettings.swift b/submodules/TelegramUIPreferences/Sources/PresentationThemeSettings.swift index 4a5b29ef8f..f78a460341 100644 --- a/submodules/TelegramUIPreferences/Sources/PresentationThemeSettings.swift +++ b/submodules/TelegramUIPreferences/Sources/PresentationThemeSettings.swift @@ -97,15 +97,18 @@ public struct PresentationLocalTheme: PostboxCoding, Equatable { public struct PresentationCloudTheme: PostboxCoding, Equatable { public let theme: TelegramTheme public let resolvedWallpaper: TelegramWallpaper? + public let creatorAccountId: AccountRecordId? - public init(theme: TelegramTheme, resolvedWallpaper: TelegramWallpaper?) { + public init(theme: TelegramTheme, resolvedWallpaper: TelegramWallpaper?, creatorAccountId: AccountRecordId?) { self.theme = theme self.resolvedWallpaper = resolvedWallpaper + self.creatorAccountId = creatorAccountId } public init(decoder: PostboxDecoder) { self.theme = decoder.decodeObjectForKey("theme", decoder: { TelegramTheme(decoder: $0) }) as! TelegramTheme self.resolvedWallpaper = decoder.decodeObjectForKey("wallpaper", decoder: { TelegramWallpaper(decoder: $0) }) as? TelegramWallpaper + self.creatorAccountId = decoder.decodeOptionalInt64ForKey("account").flatMap { AccountRecordId(rawValue: $0) } } public func encode(_ encoder: PostboxEncoder) { @@ -115,6 +118,11 @@ public struct PresentationCloudTheme: PostboxCoding, Equatable { } else { encoder.encodeNil(forKey: "wallpaper") } + if let accountId = self.creatorAccountId { + encoder.encodeInt64(accountId.int64, forKey: "account") + } else { + encoder.encodeNil(forKey: "account") + } } public static func ==(lhs: PresentationCloudTheme, rhs: PresentationCloudTheme) -> Bool { From bb19c8a22fece9340df13fd42221401412c846e1 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 8 Jan 2020 19:27:22 +0400 Subject: [PATCH 04/63] Bump version number [skip ci] --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index beb06ee055..169f5aa33f 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ include Utils.makefile BUCK_OPTIONS=\ - --config custom.appVersion="5.13.1" \ + --config custom.appVersion="5.14" \ --config custom.developmentCodeSignIdentity="${DEVELOPMENT_CODE_SIGN_IDENTITY}" \ --config custom.distributionCodeSignIdentity="${DISTRIBUTION_CODE_SIGN_IDENTITY}" \ --config custom.developmentTeam="${DEVELOPMENT_TEAM}" \ From 048cc4c10d6e736760fe6aec89583cf91a7b370d Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 10 Jan 2020 18:28:50 +0400 Subject: [PATCH 05/63] Disable BackgroundTasks handler --- submodules/TelegramUI/TelegramUI/AppDelegate.swift | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/AppDelegate.swift b/submodules/TelegramUI/TelegramUI/AppDelegate.swift index 5ef9a5f5f1..57ed011275 100644 --- a/submodules/TelegramUI/TelegramUI/AppDelegate.swift +++ b/submodules/TelegramUI/TelegramUI/AppDelegate.swift @@ -1380,8 +1380,7 @@ final class SharedApplicationContext { UIApplication.shared.setStatusBarHidden(false, with: .none) } - #if canImport(BackgroundTasks) - if #available(iOS 13.0, *) { + /*if #available(iOS 13.0, *) { BGTaskScheduler.shared.register(forTaskWithIdentifier: baseAppBundleId + ".refresh", using: nil, launchHandler: { task in let _ = (self.sharedContextPromise.get() |> take(1) @@ -1400,8 +1399,7 @@ final class SharedApplicationContext { }) }) }) - } - #endif + }*/ return true } From ca8656a1cd2f4a83a9011b268ca259f4a87650c5 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 10 Jan 2020 20:50:03 +0400 Subject: [PATCH 06/63] Poll improvements --- Telegram-iOS/en.lproj/Localizable.strings | 12 + .../Sources/Node/ChatListItem.swift | 6 +- .../Sources/CreatePollController.swift | 349 +- .../Sources/CreatePollOptionItem.swift | 42 +- submodules/Display/Display/ListView.swift | 2 +- .../Sources/ItemListPeerActionItem.swift | 10 +- .../Sources/ItemListPeerItem.swift | 260 +- .../Sources/ItemListStickerPackItem.swift | 4 +- .../Sources/ItemListController.swift | 4 + .../ItemListEditableReorderControlNode.swift | 6 +- .../ProxySettingsServerItem.swift | 4 +- .../Sources/ShareController.swift | 17 +- .../Sources/FetchedMediaResource.swift | 4 +- submodules/TelegramCore/Sources/Polls.swift | 48 +- .../Sources/DefaultDayPresentationTheme.swift | 4 +- .../Sources/PresentationStrings.swift | 7918 +++++++++-------- .../TelegramUI/ChatController.swift | 80 +- .../TelegramUI/ChatControllerNode.swift | 120 + .../ChatInterfaceStateContextMenus.swift | 9 +- .../ChatMessageBubbleItemNode.swift | 49 + .../ChatMessagePollBubbleContentNode.swift | 92 +- .../LegacyInstantVideoController.swift | 7 +- .../LegacyLiveUploadInterface.swift | 1 + .../TelegramUI/PollResultsController.swift | 91 +- .../Resources/PresentationStrings.mapping | Bin 143683 -> 143921 bytes .../WalletUI/Resources/WalletStrings.mapping | Bin 8384 -> 8384 bytes .../WalletUI/Sources/WalletStrings.swift | 4 +- 27 files changed, 5007 insertions(+), 4136 deletions(-) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index ab4e61f954..f3fc4c7f93 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -5248,6 +5248,7 @@ Any member of this group will be able to see messages in the channel."; "CreatePoll.Anonymous" = "Anonymous Votes"; "CreatePoll.MultipleChoice" = "Multiple Choice"; +"CreatePoll.MultipleChoiceQuizAlert" = "Quiz can have only one correct answer."; "CreatePoll.Quiz" = "Quiz Mode"; "CreatePoll.QuizInfo" = "Quiz has only one correct answer. Users can't revoke their votes."; "CreatePoll.QuizTip" = "Tap to select the correct option"; @@ -5257,8 +5258,19 @@ Any member of this group will be able to see messages in the channel."; "MessagePoll.LabelQuiz" = "Quiz"; "MessagePoll.SubmitVote" = "Submit Vote"; "MessagePoll.ViewResults" = "View Results"; +"MessagePoll.QuizNoUsers" = "No one played"; +"MessagePoll.QuizCount_0" = "%@ played"; +"MessagePoll.QuizCount_1" = "1 played"; +"MessagePoll.QuizCount_2" = "2 played"; +"MessagePoll.QuizCount_3_10" = "%@ played"; +"MessagePoll.QuizCount_many" = "%@ played"; +"MessagePoll.QuizCount_any" = "%@ played"; "PollResults.Title" = "Poll Results"; "PollResults.Collapse" = "COLLAPSE"; "PollResults.ShowMore_1" = "Show %@ More Voter"; "PollResults.ShowMore_any" = "Show %@ More Voters"; + +"Conversation.StopQuiz" = "Stop Quiz"; +"Conversation.StopQuizConfirmationTitle" = "If you stop this quiz now, nobody will be able to participate in it anymore. This action cannot be undone."; +"Conversation.StopQuizConfirmation" = "Stop Quiz"; diff --git a/submodules/ChatListUI/Sources/Node/ChatListItem.swift b/submodules/ChatListUI/Sources/Node/ChatListItem.swift index c44aa5fc0a..8803effaeb 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListItem.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListItem.swift @@ -755,7 +755,7 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { var currentSecretIconImage: UIImage? var selectableControlSizeAndApply: (CGFloat, (CGSize, Bool) -> ItemListSelectableControlNode)? - var reorderControlSizeAndApply: (CGFloat, (CGFloat, Bool) -> ItemListEditableReorderControlNode)? + var reorderControlSizeAndApply: (CGFloat, (CGFloat, Bool, ContainedViewLayoutTransition) -> ItemListEditableReorderControlNode)? let editingOffset: CGFloat var reorderInset: CGFloat = 0.0 @@ -1331,7 +1331,7 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { if let reorderControlSizeAndApply = reorderControlSizeAndApply { let reorderControlFrame = CGRect(origin: CGPoint(x: params.width + revealOffset - params.rightInset - reorderControlSizeAndApply.0, y: layoutOffset), size: CGSize(width: reorderControlSizeAndApply.0, height: layout.contentSize.height)) if strongSelf.reorderControlNode == nil { - let reorderControlNode = reorderControlSizeAndApply.1(layout.contentSize.height, false) + let reorderControlNode = reorderControlSizeAndApply.1(layout.contentSize.height, false, .immediate) strongSelf.reorderControlNode = reorderControlNode strongSelf.addSubnode(reorderControlNode) reorderControlNode.frame = reorderControlFrame @@ -1344,7 +1344,7 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { transition.updateAlpha(node: strongSelf.pinnedIconNode, alpha: 0.0) transition.updateAlpha(node: strongSelf.statusNode, alpha: 0.0) } else if let reorderControlNode = strongSelf.reorderControlNode { - let _ = reorderControlSizeAndApply.1(layout.contentSize.height, false) + let _ = reorderControlSizeAndApply.1(layout.contentSize.height, false, .immediate) transition.updateFrame(node: reorderControlNode, frame: reorderControlFrame) } } else if let reorderControlNode = strongSelf.reorderControlNode { diff --git a/submodules/ComposePollUI/Sources/CreatePollController.swift b/submodules/ComposePollUI/Sources/CreatePollController.swift index 8074279b8a..2f08c82b77 100644 --- a/submodules/ComposePollUI/Sources/CreatePollController.swift +++ b/submodules/ComposePollUI/Sources/CreatePollController.swift @@ -12,8 +12,131 @@ import AccountContext import AlertUI import PresentationDataUtils +private struct OrderedLinkedListItemOrderingId: RawRepresentable, Hashable { + var rawValue: Int +} + +private struct OrderedLinkedListItemOrdering: Comparable { + var id: OrderedLinkedListItemOrderingId + var lowerItemIds: Set + var higherItemIds: Set + + static func <(lhs: OrderedLinkedListItemOrdering, rhs: OrderedLinkedListItemOrdering) -> Bool { + if lhs.lowerItemIds.contains(rhs.id) { + return false + } + if rhs.lowerItemIds.contains(lhs.id) { + return true + } + if lhs.higherItemIds.contains(rhs.id) { + return true + } + if rhs.higherItemIds.contains(lhs.id) { + return false + } + assertionFailure() + return false + } +} + +private struct OrderedLinkedListItem { + var item: T + var ordering: OrderedLinkedListItemOrdering +} + +private struct OrderedLinkedList: Sequence, Equatable { + private var items: [OrderedLinkedListItem] = [] + private var nextId: Int = 0 + + init(items: [T]) { + for i in 0 ..< items.count { + self.insert(items[i], at: i, id: nil) + } + } + + static func ==(lhs: OrderedLinkedList, rhs: OrderedLinkedList) -> Bool { + if lhs.items.count != rhs.items.count { + return false + } + for i in 0 ..< lhs.items.count { + if lhs.items[i].item != rhs.items[i].item { + return false + } + } + return true + } + + func makeIterator() -> AnyIterator> { + var index = 0 + return AnyIterator { () -> OrderedLinkedListItem? in + if index < self.items.count { + let currentIndex = index + index += 1 + return self.items[currentIndex] + } + return nil + } + } + + subscript(index: Int) -> OrderedLinkedListItem { + return self.items[index] + } + + mutating func update(at index: Int, _ f: (inout T) -> Void) { + f(&self.items[index].item) + } + + var count: Int { + return self.items.count + } + + var isEmpty: Bool { + return self.items.isEmpty + } + + var last: OrderedLinkedListItem? { + return self.items.last + } + + mutating func append(_ item: T, id: OrderedLinkedListItemOrderingId?) { + self.insert(item, at: self.items.count, id: id) + } + + mutating func insert(_ item: T, at index: Int, id: OrderedLinkedListItemOrderingId?) { + let previousId = id + let id = previousId ?? OrderedLinkedListItemOrderingId(rawValue: self.nextId) + self.nextId += 1 + + if let previousId = previousId { + for i in 0 ..< self.items.count { + self.items[i].ordering.higherItemIds.remove(previousId) + self.items[i].ordering.lowerItemIds.remove(previousId) + } + } + + var lowerItemIds = Set() + var higherItemIds = Set() + for i in 0 ..< self.items.count { + if i < index { + lowerItemIds.insert(self.items[i].ordering.id) + self.items[i].ordering.higherItemIds.insert(id) + } else { + higherItemIds.insert(self.items[i].ordering.id) + self.items[i].ordering.lowerItemIds.insert(id) + } + } + + self.items.insert(OrderedLinkedListItem(item: item, ordering: OrderedLinkedListItemOrdering(id: id, lowerItemIds: lowerItemIds, higherItemIds: higherItemIds)), at: index) + } + + mutating func remove(at index: Int) { + self.items.remove(at: index) + } +} + private let maxTextLength = 255 private let maxOptionLength = 100 +private let maxOptionCount = 10 private func processPollText(_ text: String) -> String { var text = text.trimmingCharacters(in: .whitespacesAndNewlines) @@ -29,14 +152,15 @@ private final class CreatePollControllerArguments { let moveToNextOption: (Int) -> Void let moveToPreviousOption: (Int) -> Void let removeOption: (Int, Bool) -> Void - let optionFocused: (Int) -> Void + let optionFocused: (Int, Bool) -> Void let setItemIdWithRevealedOptions: (Int?, Int?) -> Void let toggleOptionSelected: (Int) -> Void let updateAnonymous: (Bool) -> Void let updateMultipleChoice: (Bool) -> Void + let displayMultipleChoiceDisabled: () -> Void let updateQuiz: (Bool) -> Void - init(updatePollText: @escaping (String) -> Void, updateOptionText: @escaping (Int, String) -> Void, moveToNextOption: @escaping (Int) -> Void, moveToPreviousOption: @escaping (Int) -> Void, removeOption: @escaping (Int, Bool) -> Void, optionFocused: @escaping (Int) -> Void, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, toggleOptionSelected: @escaping (Int) -> Void, updateAnonymous: @escaping (Bool) -> Void, updateMultipleChoice: @escaping (Bool) -> Void, updateQuiz: @escaping (Bool) -> Void) { + init(updatePollText: @escaping (String) -> Void, updateOptionText: @escaping (Int, String) -> Void, moveToNextOption: @escaping (Int) -> Void, moveToPreviousOption: @escaping (Int) -> Void, removeOption: @escaping (Int, Bool) -> Void, optionFocused: @escaping (Int, Bool) -> Void, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, toggleOptionSelected: @escaping (Int) -> Void, updateAnonymous: @escaping (Bool) -> Void, updateMultipleChoice: @escaping (Bool) -> Void, displayMultipleChoiceDisabled: @escaping () -> Void, updateQuiz: @escaping (Bool) -> Void) { self.updatePollText = updatePollText self.updateOptionText = updateOptionText self.moveToNextOption = moveToNextOption @@ -47,6 +171,7 @@ private final class CreatePollControllerArguments { self.toggleOptionSelected = toggleOptionSelected self.updateAnonymous = updateAnonymous self.updateMultipleChoice = updateMultipleChoice + self.displayMultipleChoiceDisabled = displayMultipleChoiceDisabled self.updateQuiz = updateQuiz } } @@ -86,7 +211,7 @@ private enum CreatePollEntry: ItemListNodeEntry { case textHeader(String, ItemListSectionHeaderAccessoryText) case text(String, String, Int) case optionsHeader(String) - case option(id: Int, index: Int, placeholder: String, text: String, revealed: Bool, hasNext: Bool, isLast: Bool, isSelected: Bool?) + case option(id: Int, ordering: OrderedLinkedListItemOrdering, placeholder: String, text: String, revealed: Bool, hasNext: Bool, isLast: Bool, isSelected: Bool?) case optionsInfo(String) case anonymousVotes(String, Bool) case multipleChoice(String, Bool, Bool) @@ -148,7 +273,7 @@ private enum CreatePollEntry: ItemListNodeEntry { case .optionsHeader: return 2 case let .option(option): - return 3 + option.index + return 3 case .optionsInfo: return 1001 case .anonymousVotes: @@ -163,6 +288,17 @@ private enum CreatePollEntry: ItemListNodeEntry { } static func <(lhs: CreatePollEntry, rhs: CreatePollEntry) -> Bool { + switch lhs { + case let .option(lhsOption): + switch rhs { + case let .option(rhsOption): + return lhsOption.ordering < rhsOption.ordering + default: + break + } + default: + break + } return lhs.sortId < rhs.sortId } @@ -191,8 +327,8 @@ private enum CreatePollEntry: ItemListNodeEntry { arguments.moveToPreviousOption(id) } }, canDelete: !isLast, - focused: { - arguments.optionFocused(id) + focused: { isFocused in + arguments.optionFocused(id, isFocused) }, toggleSelected: { arguments.toggleOptionSelected(id) }, tag: CreatePollEntryTag.option(id)) @@ -205,6 +341,8 @@ private enum CreatePollEntry: ItemListNodeEntry { case let .multipleChoice(text, value, enabled): return ItemListSwitchItem(presentationData: presentationData, title: text, value: value, enabled: enabled, sectionId: self.section, style: .blocks, updated: { value in arguments.updateMultipleChoice(value) + }, activatedWhileDisabled: { + arguments.displayMultipleChoiceDisabled() }) case let .quiz(text, value): return ItemListSwitchItem(presentationData: presentationData, title: text, value: value, sectionId: self.section, style: .blocks, updated: { value in @@ -224,7 +362,7 @@ private struct CreatePollControllerOption: Equatable { private struct CreatePollControllerState: Equatable { var text: String = "" - var options: [CreatePollControllerOption] = [CreatePollControllerOption(text: "", id: 0, isSelected: false), CreatePollControllerOption(text: "", id: 1, isSelected: false)] + var options = OrderedLinkedList(items: [CreatePollControllerOption(text: "", id: 0, isSelected: false), CreatePollControllerOption(text: "", id: 1, isSelected: false)]) var nextOptionId: Int = 2 var focusOptionId: Int? var optionIdWithRevealControls: Int? @@ -245,10 +383,13 @@ private func createPollControllerEntries(presentationData: PresentationData, sta entries.append(.text(presentationData.strings.CreatePoll_TextPlaceholder, state.text, Int(limitsConfiguration.maxMediaCaptionLength))) entries.append(.optionsHeader(presentationData.strings.CreatePoll_OptionsHeader)) for i in 0 ..< state.options.count { - entries.append(.option(id: state.options[i].id, index: i, placeholder: presentationData.strings.CreatePoll_OptionPlaceholder, text: state.options[i].text, revealed: state.optionIdWithRevealControls == state.options[i].id, hasNext: i != 9, isLast: i == state.options.count - 1, isSelected: state.isQuiz ? state.options[i].isSelected : nil)) + let isSecondLast = state.options.count == 2 && i == 0 + let isLast = i == state.options.count - 1 + let option = state.options[i].item + entries.append(.option(id: option.id, ordering: state.options[i].ordering, placeholder: isLast ? presentationData.strings.CreatePoll_AddOption : presentationData.strings.CreatePoll_OptionPlaceholder, text: option.text, revealed: state.optionIdWithRevealControls == option.id, hasNext: i != 9, isLast: isLast || isSecondLast, isSelected: state.isQuiz ? option.isSelected : nil)) } - if state.options.count < 10 { - entries.append(.optionsInfo(presentationData.strings.CreatePoll_AddMoreOptions(Int32(10 - state.options.count)))) + if state.options.count < maxOptionCount { + entries.append(.optionsInfo(presentationData.strings.CreatePoll_AddMoreOptions(Int32(maxOptionCount - state.options.count)))) } else { entries.append(.optionsInfo(presentationData.strings.CreatePoll_AllOptionsAdded)) } @@ -272,7 +413,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple var dismissImpl: (() -> Void)? var ensureTextVisibleImpl: (() -> Void)? var ensureOptionVisibleImpl: ((Int) -> Void)? - var displayQuizTooltipImpl: (() -> Void)? + var displayQuizTooltipImpl: ((Bool) -> Void)? let actionsDisposable = DisposableSet() @@ -285,49 +426,50 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple let arguments = CreatePollControllerArguments(updatePollText: { value in updateState { state in var state = state + state.focusOptionId = nil state.text = value return state } ensureTextVisibleImpl?() }, updateOptionText: { id, value in + var ensureVisibleId = id updateState { state in var state = state for i in 0 ..< state.options.count { - if state.options[i].id == id { - state.options[i].text = value - if !value.isEmpty && i == state.options.count - 1 { - state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId, isSelected: false)) + if state.options[i].item.id == id { + state.focusOptionId = id + state.options.update(at: i, { option in + option.text = value + }) + if !value.isEmpty && i == state.options.count - 1 && state.options.count < maxOptionCount { + state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId, isSelected: false), id: nil) state.nextOptionId += 1 } + if i != state.options.count - 1 { + ensureVisibleId = state.options[i + 1].item.id + } break } } - if state.options.count > 2 { - for i in (1 ..< state.options.count - 1).reversed() { - if state.options[i - 1].text.isEmpty && state.options[i].text.isEmpty { - state.options.remove(at: i) - } - } - } return state } - ensureOptionVisibleImpl?(id) + ensureOptionVisibleImpl?(ensureVisibleId) }, moveToNextOption: { id in var resetFocusOptionId: Int? updateState { state in var state = state for i in 0 ..< state.options.count { - if state.options[i].id == id { + if state.options[i].item.id == id { if i == state.options.count - 1 { - state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId, isSelected: false)) + /*state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId, isSelected: false)) state.focusOptionId = state.nextOptionId - state.nextOptionId += 1 + state.nextOptionId += 1*/ } else { - if state.focusOptionId == state.options[i + 1].id { - resetFocusOptionId = state.options[i + 1].id + if state.focusOptionId == state.options[i + 1].item.id { + resetFocusOptionId = state.options[i + 1].item.id state.focusOptionId = -1 } else { - state.focusOptionId = state.options[i + 1].id + state.focusOptionId = state.options[i + 1].item.id } } break @@ -347,13 +489,13 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple updateState { state in var state = state for i in 0 ..< state.options.count { - if state.options[i].id == id { + if state.options[i].item.id == id { if i != 0 { - if state.focusOptionId == state.options[i - 1].id { - resetFocusOptionId = state.options[i - 1].id + if state.focusOptionId == state.options[i - 1].item.id { + resetFocusOptionId = state.options[i - 1].item.id state.focusOptionId = -1 } else { - state.focusOptionId = state.options[i - 1].id + state.focusOptionId = state.options[i - 1].item.id } } break @@ -372,10 +514,10 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple updateState { state in var state = state for i in 0 ..< state.options.count { - if state.options[i].id == id { + if state.options[i].item.id == id { state.options.remove(at: i) if focused && i != 0 { - state.focusOptionId = state.options[i - 1].id + state.focusOptionId = state.options[i - 1].item.id } break } @@ -384,19 +526,36 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple if state.options.count < 2 { for i in 0 ..< (2 - state.options.count) { if i == 0 && focusOnFirst { - state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId, isSelected: false)) + state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId, isSelected: false), id: nil) state.focusOptionId = state.nextOptionId state.nextOptionId += 1 } else { - state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId, isSelected: false)) + state.options.append(CreatePollControllerOption(text: "", id: state.nextOptionId, isSelected: false), id: nil) state.nextOptionId += 1 } } } return state } - }, optionFocused: { id in - ensureOptionVisibleImpl?(id) + }, optionFocused: { id, isFocused in + if isFocused { + ensureOptionVisibleImpl?(id) + } else { + updateState { state in + var state = state + if state.options.count > 2 { + for i in 0 ..< state.options.count { + if state.options[i].item.id == id { + if state.options[i].item.text.isEmpty && i != state.options.count - 1 { + state.options.remove(at: i) + } + break + } + } + } + return state + } + } }, setItemIdWithRevealedOptions: { id, fromId in updateState { state in var state = state @@ -411,12 +570,16 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple updateState { state in var state = state for i in 0 ..< state.options.count { - if state.options[i].id == id { - state.options[i].isSelected = !state.options[i].isSelected - if state.options[i].isSelected && state.isQuiz { + if state.options[i].item.id == id { + state.options.update(at: i, { option in + option.isSelected = !option.isSelected + }) + if state.options[i].item.isSelected && state.isQuiz { for j in 0 ..< state.options.count { if i != j { - state.options[j].isSelected = false + state.options.update(at: j, { option in + option.isSelected = false + }) } } } @@ -428,28 +591,39 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple }, updateAnonymous: { value in updateState { state in var state = state + state.focusOptionId = -1 state.isAnonymous = value return state } }, updateMultipleChoice: { value in updateState { state in var state = state + state.focusOptionId = -1 state.isMultipleChoice = value return state } + }, displayMultipleChoiceDisabled: { + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.CreatePoll_MultipleChoiceQuizAlert, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_OK, action: {})]), nil) }, updateQuiz: { value in + if !value { + displayQuizTooltipImpl?(value) + } updateState { state in var state = state + state.focusOptionId = -1 state.isQuiz = value if value { state.isMultipleChoice = false var foundSelectedOption = false for i in 0 ..< state.options.count { - if state.options[i].isSelected { + if state.options[i].item.isSelected { if !foundSelectedOption { foundSelectedOption = true } else { - state.options[i].isSelected = false + state.options.update(at: i, { option in + option.isSelected = false + }) } } } @@ -457,7 +631,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple return state } if value { - displayQuizTooltipImpl?() + displayQuizTooltipImpl?(value) } }) @@ -478,17 +652,17 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple var nonEmptyOptionCount = 0 var hasSelectedOptions = false for option in state.options { - if !option.text.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { + if !option.item.text.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { nonEmptyOptionCount += 1 } - if option.text.count > maxOptionLength { + if option.item.text.count > maxOptionLength { enabled = false } - if option.isSelected { + if option.item.isSelected { hasSelectedOptions = true } if state.isQuiz { - if option.text.isEmpty && option.isSelected { + if option.item.text.isEmpty && option.item.isSelected { enabled = false } } @@ -507,11 +681,11 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple var options: [TelegramMediaPollOption] = [] var correctAnswers: [Data]? for i in 0 ..< state.options.count { - let optionText = state.options[i].text.trimmingCharacters(in: .whitespacesAndNewlines) + let optionText = state.options[i].item.text.trimmingCharacters(in: .whitespacesAndNewlines) if !optionText.isEmpty { let optionData = "\(i)".data(using: .utf8)! options.append(TelegramMediaPollOption(text: optionText, opaqueIdentifier: optionData)) - if state.isQuiz && state.options[i].isSelected { + if state.isQuiz && state.options[i].item.isSelected { correctAnswers = [optionData] } } @@ -536,7 +710,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple let state = stateValue.with { $0 } var hasNonEmptyOptions = false for i in 0 ..< state.options.count { - let optionText = state.options[i].text.trimmingCharacters(in: .whitespacesAndNewlines) + let optionText = state.options[i].item.text.trimmingCharacters(in: .whitespacesAndNewlines) if !optionText.isEmpty { hasNonEmptyOptions = true } @@ -551,14 +725,14 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple } }) - let optionIds = state.options.map { $0.id } + let optionIds = state.options.map { $0.item.id } let previousIds = previousOptionIds.swap(optionIds) var focusItemTag: ItemListItemTag? var ensureVisibleItemTag: ItemListItemTag? if let focusOptionId = state.focusOptionId { focusItemTag = CreatePollEntryTag.option(focusOptionId) - if focusOptionId == state.options.last?.id { + if focusOptionId == state.options.last?.item.id { ensureVisibleItemTag = nil } else { ensureVisibleItemTag = focusItemTag @@ -577,6 +751,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple actionsDisposable.dispose() } + weak var currentTooltipController: TooltipController? let controller = ItemListController(context: context, state: signal) controller.navigationPresentation = .modal presentControllerImpl = { [weak controller] c, a in @@ -615,7 +790,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple var resultItemNode: ListViewItemNode? let state = stateValue.with({ $0 }) - if state.options.last?.id == id { + if state.options.last?.item.id == id { } if resultItemNode == nil { let _ = controller.frameForItemNode({ itemNode in @@ -634,27 +809,38 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple } }) } - displayQuizTooltipImpl = { [weak controller] in + displayQuizTooltipImpl = { [weak controller] display in guard let controller = controller else { return } var resultItemNode: CreatePollOptionItemNode? + let insets = controller.listInsets let _ = controller.frameForItemNode({ itemNode in if resultItemNode == nil, let itemNode = itemNode as? CreatePollOptionItemNode { - resultItemNode = itemNode - return true + if itemNode.frame.minY >= insets.top { + resultItemNode = itemNode + return true + } } return false }) - if let resultItemNode = resultItemNode { - let presentationData = context.sharedContext.currentPresentationData.with { $0 } - let tooltipController = TooltipController(content: .text(presentationData.strings.CreatePoll_QuizTip), baseFontSize: presentationData.listsFontSize.baseDisplaySize, dismissByTapOutside: true) - controller.present(tooltipController, in: .window(.root), with: TooltipControllerPresentationArguments(sourceViewAndRect: { [weak resultItemNode] in - if let resultItemNode = resultItemNode { - return (resultItemNode.view, CGRect(origin: CGPoint(x: 0.0, y: 4.0), size: CGSize(width: 54.0, height: resultItemNode.bounds.height - 8.0))) - } - return nil - })) + if let resultItemNode = resultItemNode, let localCheckNodeFrame = resultItemNode.checkNodeFrame { + let checkNodeFrame = resultItemNode.view.convert(localCheckNodeFrame, to: controller.view) + if display { + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + let tooltipController = TooltipController(content: .text(presentationData.strings.CreatePoll_QuizTip), baseFontSize: presentationData.listsFontSize.baseDisplaySize, dismissByTapOutside: true) + controller.present(tooltipController, in: .window(.root), with: TooltipControllerPresentationArguments(sourceViewAndRect: { [weak controller] in + if let controller = controller { + return (controller.view, checkNodeFrame.insetBy(dx: 0.0, dy: 0.0)) + } + return nil + })) + tooltipController.displayNode.layer.animatePosition(from: CGPoint(x: -checkNodeFrame.maxX, y: 0.0), to: CGPoint(), duration: 0.3, timingFunction: kCAMediaTimingFunctionSpring, additive: true) + currentTooltipController = tooltipController + } else if let tooltipController = currentTooltipController{ + currentTooltipController = nil + tooltipController.displayNode.layer.animatePosition(from: CGPoint(), to: CGPoint(x: -checkNodeFrame.maxX, y: 0.0), duration: 0.3, timingFunction: kCAMediaTimingFunctionSpring, removeOnCompletion: false, additive: true) + } } } controller.setReorderEntry({ (fromIndex: Int, toIndex: Int, entries: [CreatePollEntry]) -> Void in @@ -683,9 +869,9 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple updateState { state in var state = state var options = state.options - var reorderOption: CreatePollControllerOption? + var reorderOption: OrderedLinkedListItem? for i in 0 ..< options.count { - if options[i].id == id { + if options[i].item.id == id { reorderOption = options[i] options.remove(at: i) break @@ -694,24 +880,32 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple if let reorderOption = reorderOption { if let referenceId = referenceId { var inserted = false - for i in 0 ..< options.count { - if options[i].id == referenceId { + for i in 0 ..< options.count - 1 { + if options[i].item.id == referenceId { if fromIndex < toIndex { - options.insert(reorderOption, at: i + 1) + options.insert(reorderOption.item, at: i + 1, id: reorderOption.ordering.id) } else { - options.insert(reorderOption, at: i) + options.insert(reorderOption.item, at: i, id: reorderOption.ordering.id) } inserted = true break } } if !inserted { - options.append(reorderOption) + if options.count >= 2 { + options.insert(reorderOption.item, at: options.count - 1, id: reorderOption.ordering.id) + } else { + options.append(reorderOption.item, id: reorderOption.ordering.id) + } } } else if beforeAll { - options.insert(reorderOption, at: 0) + options.insert(reorderOption.item, at: 0, id: reorderOption.ordering.id) } else if afterAll { - options.append(reorderOption) + if options.count >= 2 { + options.insert(reorderOption.item, at: options.count - 1, id: reorderOption.ordering.id) + } else { + options.append(reorderOption.item, id: reorderOption.ordering.id) + } } state.options = options } @@ -721,6 +915,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple controller.isOpaqueWhenInOverlay = true controller.blocksBackgroundWhenInOverlay = true controller.experimentalSnapScrollToItem = true + controller.alwaysSynchronous = true return controller } diff --git a/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift b/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift index 91fdbdff70..45adac7e97 100644 --- a/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift +++ b/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift @@ -27,11 +27,11 @@ class CreatePollOptionItem: ListViewItem, ItemListItem { let next: (() -> Void)? let delete: (Bool) -> Void let canDelete: Bool - let focused: () -> Void + let focused: (Bool) -> Void let toggleSelected: () -> Void let tag: ItemListItemTag? - init(presentationData: ItemListPresentationData, id: Int, placeholder: String, value: String, isSelected: Bool?, maxLength: Int, editing: CreatePollOptionItemEditing, sectionId: ItemListSectionId, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, updated: @escaping (String) -> Void, next: (() -> Void)?, delete: @escaping (Bool) -> Void, canDelete: Bool, focused: @escaping () -> Void, toggleSelected: @escaping () -> Void, tag: ItemListItemTag?) { + init(presentationData: ItemListPresentationData, id: Int, placeholder: String, value: String, isSelected: Bool?, maxLength: Int, editing: CreatePollOptionItemEditing, sectionId: ItemListSectionId, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, updated: @escaping (String) -> Void, next: (() -> Void)?, delete: @escaping (Bool) -> Void, canDelete: Bool, focused: @escaping (Bool) -> Void, toggleSelected: @escaping () -> Void, tag: ItemListItemTag?) { self.presentationData = presentationData self.id = id self.placeholder = placeholder @@ -115,6 +115,13 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, return self.containerNode } + var checkNodeFrame: CGRect? { + guard let _ = self.layoutParams, let checkNode = self.checkNode else { + return nil + } + return checkNode.frame + } + init() { self.containerNode = ASDisplayNode() self.containerNode.clipsToBounds = true @@ -171,7 +178,11 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, } func editableTextNodeDidBeginEditing(_ editableTextNode: ASEditableTextNode) { - self.item?.focused() + self.item?.focused(true) + } + + func editableTextNodeDidFinishEditing(_ editableTextNode: ASEditableTextNode) { + self.item?.focused(false) } func editableTextNode(_ editableTextNode: ASEditableTextNode, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { @@ -287,8 +298,6 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, strongSelf.item = item strongSelf.layoutParams = params - strongSelf.containerNode.frame = CGRect(origin: CGPoint(), size: layout.contentSize) - if let _ = updatedTheme { strongSelf.topStripeNode.backgroundColor = item.presentationData.theme.list.itemBlocksSeparatorColor strongSelf.bottomStripeNode.backgroundColor = item.presentationData.theme.list.itemBlocksSeparatorColor @@ -404,14 +413,18 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, strongSelf.maskNode.image = hasCorners ? PresentationResourcesItemList.cornersImage(item.presentationData.theme, top: hasTopCorners, bottom: hasBottomCorners) : nil - strongSelf.backgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: params.width, height: contentSize.height + min(insets.top, separatorHeight) + min(insets.bottom, separatorHeight))) - strongSelf.maskNode.frame = strongSelf.backgroundNode.frame.insetBy(dx: params.leftInset, dy: 0.0) strongSelf.topStripeNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: layout.contentSize.width, height: separatorHeight)) - transition.updateFrame(node: strongSelf.bottomStripeNode, frame: CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height - UIScreenPixel), size: CGSize(width: layout.contentSize.width - bottomStripeInset, height: separatorHeight))) + if strongSelf.animationForKey("apparentHeight") == nil { + strongSelf.containerNode.frame = CGRect(origin: CGPoint(), size: layout.contentSize) + strongSelf.backgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: params.width, height: contentSize.height + min(insets.top, separatorHeight) + min(insets.bottom, separatorHeight))) + strongSelf.maskNode.frame = strongSelf.backgroundNode.frame.insetBy(dx: params.leftInset, dy: 0.0) + strongSelf.bottomStripeNode.frame = CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height - UIScreenPixel), size: CGSize(width: layout.contentSize.width - bottomStripeInset, height: separatorHeight)) + } - let _ = reorderSizeAndApply.1(layout.contentSize.height, displayTextLimit && layout.contentSize.height <= 44.0) + let _ = reorderSizeAndApply.1(layout.contentSize.height, displayTextLimit, transition) let reorderControlFrame = CGRect(origin: CGPoint(x: params.width + revealOffset - params.rightInset - reorderSizeAndApply.0, y: 0.0), size: CGSize(width: reorderSizeAndApply.0, height: layout.contentSize.height)) strongSelf.reorderControlNode.frame = reorderControlFrame + strongSelf.reorderControlNode.isHidden = !item.canDelete let _ = textLimitApply() strongSelf.textLimitNode.frame = CGRect(origin: CGPoint(x: reorderControlFrame.minX + floor((reorderControlFrame.width - textLimitLayout.size.width) / 2.0) - 4.0 - UIScreenPixel, y: max(floor(reorderControlFrame.midY + 2.0), layout.contentSize.height - 15.0 - textLimitLayout.size.height)), size: textLimitLayout.size) @@ -473,7 +486,7 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, } override func isReorderable(at point: CGPoint) -> Bool { - if self.reorderControlNode.frame.contains(point), !self.isDisplayingRevealedOptions { + if self.reorderControlNode.frame.contains(point), !self.reorderControlNode.isHidden, !self.isDisplayingRevealedOptions { return true } return false @@ -487,5 +500,14 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, self.bottomStripeNode.frame = separatorFrame self.containerNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: self.containerNode.bounds.width, height: currentValue)) + + let insets = self.insets + let separatorHeight = UIScreenPixel + guard let params = self.layoutParams else { + return + } + + self.backgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: self.containerNode.bounds.width, height: currentValue + min(insets.top, separatorHeight) + min(insets.bottom, separatorHeight))) + self.maskNode.frame = self.backgroundNode.frame.insetBy(dx: params.leftInset, dy: 0.0) } } diff --git a/submodules/Display/Display/ListView.swift b/submodules/Display/Display/ListView.swift index 111982ef98..ea18fb4f9a 100644 --- a/submodules/Display/Display/ListView.swift +++ b/submodules/Display/Display/ListView.swift @@ -3024,7 +3024,7 @@ open class ListView: ASDisplayNode, UIScrollViewAccessibilityDelegate, UIGesture stickLocationDistanceFactor = max(0.0, min(1.0, stickLocationDistance / itemHeaderHeight)) case .topEdge: headerFrame = CGRect(origin: CGPoint(x: 0.0, y: min(max(upperDisplayBound, upperBoundEdge - itemHeaderHeight), lowerBound - itemHeaderHeight)), size: CGSize(width: self.visibleSize.width, height: itemHeaderHeight)) - stickLocationDistance = headerFrame.minY - upperBoundEdge - itemHeaderHeight + stickLocationDistance = headerFrame.maxY - upperBoundEdge - itemHeaderHeight stickLocationDistanceFactor = max(0.0, min(1.0, stickLocationDistance / itemHeaderHeight)) case .bottom: headerFrame = CGRect(origin: CGPoint(x: 0.0, y: max(upperBound, min(lowerBound, lowerDisplayBound) - itemHeaderHeight)), size: CGSize(width: self.visibleSize.width, height: itemHeaderHeight)) diff --git a/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.swift b/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.swift index 7986570906..2b0988c6d8 100644 --- a/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.swift +++ b/submodules/ItemListPeerActionItem/Sources/ItemListPeerActionItem.swift @@ -20,9 +20,9 @@ public class ItemListPeerActionItem: ListViewItem, ItemListItem { let editing: Bool let height: ItemListPeerActionItemHeight public let sectionId: ItemListSectionId - let action: () -> Void + let action: (() -> Void)? - public init(presentationData: ItemListPresentationData, icon: UIImage?, title: String, alwaysPlain: Bool = false, sectionId: ItemListSectionId, height: ItemListPeerActionItemHeight = .peerList, editing: Bool, action: @escaping () -> Void) { + public init(presentationData: ItemListPresentationData, icon: UIImage?, title: String, alwaysPlain: Bool = false, sectionId: ItemListSectionId, height: ItemListPeerActionItemHeight = .peerList, editing: Bool, action: (() -> Void)?) { self.presentationData = presentationData self.icon = icon self.title = title @@ -79,11 +79,13 @@ public class ItemListPeerActionItem: ListViewItem, ItemListItem { } } - public var selectable: Bool = true + public var selectable: Bool { + return self.action != nil + } public func selected(listView: ListView){ listView.clearHighlightAnimated(true) - self.action() + self.action?() } } diff --git a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift index b499b3522f..264e996dc7 100644 --- a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift +++ b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift @@ -16,6 +16,195 @@ import PeerPresenceStatusManager import ContextUI import AccountContext +private final class ShimmerEffectNode: ASDisplayNode { + private var currentBackgroundColor: UIColor? + private var currentForegroundColor: UIColor? + private let imageNodeContainer: ASDisplayNode + private let imageNode: ASImageNode + + private var absoluteLocation: (CGRect, CGSize)? + private var isCurrentlyInHierarchy = false + private var shouldBeAnimating = false + + override init() { + self.imageNodeContainer = ASDisplayNode() + self.imageNodeContainer.isLayerBacked = true + + self.imageNode = ASImageNode() + self.imageNode.isLayerBacked = true + self.imageNode.displaysAsynchronously = false + self.imageNode.displayWithoutProcessing = true + self.imageNode.contentMode = .scaleToFill + + super.init() + + self.isLayerBacked = true + self.clipsToBounds = true + + self.imageNodeContainer.addSubnode(self.imageNode) + self.addSubnode(self.imageNodeContainer) + } + + override func didEnterHierarchy() { + super.didEnterHierarchy() + + self.isCurrentlyInHierarchy = true + self.updateAnimation() + } + + override func didExitHierarchy() { + super.didExitHierarchy() + + self.isCurrentlyInHierarchy = false + self.updateAnimation() + } + + func update(backgroundColor: UIColor, foregroundColor: UIColor) { + if let currentBackgroundColor = self.currentBackgroundColor, currentBackgroundColor.isEqual(backgroundColor), let currentForegroundColor = self.currentForegroundColor, currentForegroundColor.isEqual(foregroundColor) { + return + } + self.currentBackgroundColor = backgroundColor + self.currentForegroundColor = foregroundColor + + self.imageNode.image = generateImage(CGSize(width: 8.0, height: 100.0), opaque: true, scale: 1.0, rotatedContext: { size, context in + context.setFillColor(backgroundColor.cgColor) + context.fill(CGRect(origin: CGPoint(), size: size)) + + context.clip(to: CGRect(origin: CGPoint(), size: size)) + + let transparentColor = foregroundColor.withAlphaComponent(0.0).cgColor + let peakColor = foregroundColor.cgColor + + var locations: [CGFloat] = [0.0, 0.2, 0.5, 0.8, 1.0] + let colors: [CGColor] = [transparentColor, transparentColor, peakColor, transparentColor, transparentColor] + + let colorSpace = CGColorSpaceCreateDeviceRGB() + let gradient = CGGradient(colorsSpace: colorSpace, colors: colors as CFArray, locations: &locations)! + + context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) + }) + } + + func updateAbsoluteRect(_ rect: CGRect, within containerSize: CGSize) { + if let absoluteLocation = self.absoluteLocation, absoluteLocation.0 == rect && absoluteLocation.1 == containerSize { + return + } + let sizeUpdated = self.absoluteLocation?.1 != containerSize + let frameUpdated = self.absoluteLocation?.0 != rect + self.absoluteLocation = (rect, containerSize) + + if sizeUpdated { + if self.shouldBeAnimating { + self.imageNode.layer.removeAnimation(forKey: "shimmer") + self.addImageAnimation() + } + } + + if frameUpdated { + self.imageNodeContainer.frame = CGRect(origin: CGPoint(x: -rect.minX, y: -rect.minY), size: containerSize) + } + } + + private func updateAnimation() { + let shouldBeAnimating = self.isCurrentlyInHierarchy && self.absoluteLocation != nil + if shouldBeAnimating != self.shouldBeAnimating { + self.shouldBeAnimating = shouldBeAnimating + if shouldBeAnimating { + self.addImageAnimation() + } else { + self.imageNode.layer.removeAnimation(forKey: "shimmer") + } + } + } + + private func addImageAnimation() { + guard let containerSize = self.absoluteLocation?.1 else { + return + } + let gradientHeight: CGFloat = 250.0 + self.imageNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -gradientHeight), size: CGSize(width: containerSize.width, height: gradientHeight)) + let animation = self.imageNode.layer.makeAnimation(from: 0.0 as NSNumber, to: (containerSize.height + gradientHeight) as NSNumber, keyPath: "position.y", timingFunction: CAMediaTimingFunctionName.easeOut.rawValue, duration: 1.3 * 1.0, delay: 0.0, mediaTimingFunction: nil, removeOnCompletion: true, additive: true) + animation.repeatCount = Float.infinity + animation.beginTime = 1.0 + self.imageNode.layer.add(animation, forKey: "shimmer") + } +} + +private final class LoadingShimmerNode: ASDisplayNode { + enum Shape: Equatable { + case circle(CGRect) + case roundedRectLine(startPoint: CGPoint, width: CGFloat, diameter: CGFloat) + } + + private let backgroundNode: ASDisplayNode + private let effectNode: ShimmerEffectNode + private let foregroundNode: ASImageNode + + private var currentShapes: [Shape] = [] + private var currentBackgroundColor: UIColor? + private var currentForegroundColor: UIColor? + private var currentShimmeringColor: UIColor? + private var currentSize = CGSize() + + override init() { + self.backgroundNode = ASDisplayNode() + + self.effectNode = ShimmerEffectNode() + + self.foregroundNode = ASImageNode() + self.foregroundNode.displaysAsynchronously = false + self.foregroundNode.displayWithoutProcessing = true + + super.init() + + self.addSubnode(self.backgroundNode) + self.addSubnode(self.effectNode) + self.addSubnode(self.foregroundNode) + } + + func updateAbsoluteRect(_ rect: CGRect, within containerSize: CGSize) { + self.effectNode.updateAbsoluteRect(rect, within: containerSize) + } + + func update(backgroundColor: UIColor, foregroundColor: UIColor, shimmeringColor: UIColor, shapes: [Shape], size: CGSize) { + if self.currentShapes == shapes, let currentBackgroundColor = self.currentBackgroundColor, currentBackgroundColor.isEqual(backgroundColor), let currentForegroundColor = self.currentForegroundColor, currentForegroundColor.isEqual(foregroundColor), let currentShimmeringColor = self.currentShimmeringColor, currentShimmeringColor.isEqual(shimmeringColor), self.currentSize == size { + return + } + + self.currentBackgroundColor = backgroundColor + self.currentForegroundColor = foregroundColor + self.currentShimmeringColor = shimmeringColor + self.currentShapes = shapes + self.currentSize = size + + self.backgroundNode.backgroundColor = foregroundColor + + self.effectNode.update(backgroundColor: foregroundColor, foregroundColor: shimmeringColor) + + self.foregroundNode.image = generateImage(size, rotatedContext: { size, context in + context.setFillColor(backgroundColor.cgColor) + context.setBlendMode(.copy) + context.fill(CGRect(origin: CGPoint(), size: size)) + + context.setFillColor(UIColor.clear.cgColor) + for shape in shapes { + switch shape { + case let .circle(frame): + context.fillEllipse(in: frame) + case let .roundedRectLine(startPoint, width, diameter): + context.fillEllipse(in: CGRect(origin: startPoint, size: CGSize(width: diameter, height: diameter))) + context.fillEllipse(in: CGRect(origin: CGPoint(x: startPoint.x + width - diameter, y: startPoint.y), size: CGSize(width: diameter, height: diameter))) + context.fill(CGRect(origin: CGPoint(x: startPoint.x + diameter / 2.0, y: startPoint.y), size: CGSize(width: width - diameter, height: diameter))) + } + } + }) + + self.backgroundNode.frame = CGRect(origin: CGPoint(), size: size) + self.foregroundNode.frame = CGRect(origin: CGPoint(), size: size) + self.effectNode.frame = CGRect(origin: CGPoint(), size: size) + } +} + public struct ItemListPeerItemEditing: Equatable { public var editable: Bool public var editing: Bool @@ -107,6 +296,14 @@ public struct ItemListPeerItemRevealOptions { } } +public struct ItemListPeerItemShimmering { + public var alternationIndex: Int + + public init(alternationIndex: Int) { + self.alternationIndex = alternationIndex + } +} + public final class ItemListPeerItem: ListViewItem, ItemListItem { let presentationData: ItemListPresentationData let dateTimeFormat: PresentationDateTimeFormat @@ -136,8 +333,9 @@ public final class ItemListPeerItem: ListViewItem, ItemListItem { let noInsets: Bool public let tag: ItemListItemTag? let header: ListViewItemHeader? + let shimmering: ItemListPeerItemShimmering? - public init(presentationData: ItemListPresentationData, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, context: AccountContext, peer: Peer, height: ItemListPeerItemHeight = .peerList, aliasHandling: ItemListPeerItemAliasHandling = .standard, nameColor: ItemListPeerItemNameColor = .primary, nameStyle: ItemListPeerItemNameStyle = .distinctBold, presence: PeerPresence?, text: ItemListPeerItemText, label: ItemListPeerItemLabel, editing: ItemListPeerItemEditing, revealOptions: ItemListPeerItemRevealOptions? = nil, switchValue: ItemListPeerItemSwitch?, enabled: Bool, selectable: Bool, sectionId: ItemListSectionId, action: (() -> Void)?, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, removePeer: @escaping (PeerId) -> Void, toggleUpdated: ((Bool) -> Void)? = nil, contextAction: ((ASDisplayNode, ContextGesture?) -> Void)? = nil, hasTopStripe: Bool = true, hasTopGroupInset: Bool = true, noInsets: Bool = false, tag: ItemListItemTag? = nil, header: ListViewItemHeader? = nil) { + public init(presentationData: ItemListPresentationData, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, context: AccountContext, peer: Peer, height: ItemListPeerItemHeight = .peerList, aliasHandling: ItemListPeerItemAliasHandling = .standard, nameColor: ItemListPeerItemNameColor = .primary, nameStyle: ItemListPeerItemNameStyle = .distinctBold, presence: PeerPresence?, text: ItemListPeerItemText, label: ItemListPeerItemLabel, editing: ItemListPeerItemEditing, revealOptions: ItemListPeerItemRevealOptions? = nil, switchValue: ItemListPeerItemSwitch?, enabled: Bool, selectable: Bool, sectionId: ItemListSectionId, action: (() -> Void)?, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, removePeer: @escaping (PeerId) -> Void, toggleUpdated: ((Bool) -> Void)? = nil, contextAction: ((ASDisplayNode, ContextGesture?) -> Void)? = nil, hasTopStripe: Bool = true, hasTopGroupInset: Bool = true, noInsets: Bool = false, tag: ItemListItemTag? = nil, header: ListViewItemHeader? = nil, shimmering: ItemListPeerItemShimmering? = nil) { self.presentationData = presentationData self.dateTimeFormat = dateTimeFormat self.nameDisplayOrder = nameDisplayOrder @@ -166,6 +364,7 @@ public final class ItemListPeerItem: ListViewItem, ItemListItem { self.noInsets = noInsets self.tag = tag self.header = header + self.shimmering = shimmering } public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { @@ -247,6 +446,9 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo private var switchNode: SwitchNode? private var checkNode: ASImageNode? + private var shimmerNode: LoadingShimmerNode? + private var absoluteLocation: (CGRect, CGSize)? + private var peerPresenceManager: PeerPresenceStatusManager? private var layoutParams: (ItemListPeerItem, ListViewItemLayoutParams, ItemListNeighbors, Bool)? @@ -847,6 +1049,44 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo strongSelf.peerPresenceManager?.reset(presence: presence) } + if let shimmering = item.shimmering { + strongSelf.avatarNode.isHidden = true + strongSelf.titleNode.isHidden = true + + let shimmerNode: LoadingShimmerNode + if let current = strongSelf.shimmerNode { + shimmerNode = current + } else { + shimmerNode = LoadingShimmerNode() + strongSelf.shimmerNode = shimmerNode + strongSelf.insertSubnode(shimmerNode, aboveSubnode: strongSelf.backgroundNode) + } + shimmerNode.frame = CGRect(origin: CGPoint(), size: layout.contentSize) + if let (rect, size) = strongSelf.absoluteLocation { + shimmerNode.updateAbsoluteRect(rect, within: size) + } + var shapes: [LoadingShimmerNode.Shape] = [] + shapes.append(.circle(strongSelf.avatarNode.frame)) + let possibleLines: [[CGFloat]] = [ + [50.0, 40.0], + [70.0, 45.0] + ] + let titleFrame = strongSelf.titleNode.frame + let lineDiameter: CGFloat = 10.0 + var lineStart = titleFrame.minX + for lineWidth in possibleLines[shimmering.alternationIndex % possibleLines.count] { + shapes.append(.roundedRectLine(startPoint: CGPoint(x: lineStart, y: titleFrame.minY + floor((titleFrame.height - lineDiameter) / 2.0)), width: lineWidth, diameter: lineDiameter)) + lineStart += lineWidth + lineDiameter + } + shimmerNode.update(backgroundColor: item.presentationData.theme.list.itemBlocksBackgroundColor, foregroundColor: item.presentationData.theme.list.mediaPlaceholderColor, shimmeringColor: item.presentationData.theme.list.itemBlocksBackgroundColor.withAlphaComponent(0.4), shapes: shapes, size: layout.contentSize) + } else if let shimmerNode = strongSelf.shimmerNode { + strongSelf.avatarNode.isHidden = false + strongSelf.titleNode.isHidden = false + + strongSelf.shimmerNode = nil + shimmerNode.removeFromSupernode() + } + strongSelf.updateLayout(size: layout.contentSize, leftInset: params.leftInset, rightInset: params.rightInset) strongSelf.setRevealOptions((left: [], right: peerRevealOptions)) @@ -993,6 +1233,15 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo override public func header() -> ListViewItemHeader? { return self.layoutParams?.0.header } + + override public func updateAbsoluteRect(_ rect: CGRect, within containerSize: CGSize) { + var rect = rect + rect.origin.y += self.insets.top + self.absoluteLocation = (rect, containerSize) + if let shimmerNode = self.shimmerNode { + shimmerNode.updateAbsoluteRect(rect, within: containerSize) + } + } } public final class ItemListPeerItemHeader: ListViewItemHeader { @@ -1033,6 +1282,7 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { private var validLayout: (size: CGSize, leftInset: CGFloat, rightInset: CGFloat)? private let backgroundNode: ASDisplayNode + private let snappedBackgroundNode: ASDisplayNode private let separatorNode: ASDisplayNode private let textNode: ImmediateTextNode private let actionTextNode: ImmediateTextNode @@ -1049,6 +1299,10 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { self.backgroundNode = ASDisplayNode() self.backgroundNode.backgroundColor = theme.list.blocksBackgroundColor + self.snappedBackgroundNode = ASDisplayNode() + self.snappedBackgroundNode.backgroundColor = theme.rootController.navigationBar.backgroundColor + self.snappedBackgroundNode.alpha = 0.0 + self.separatorNode = ASDisplayNode() self.separatorNode.backgroundColor = theme.list.itemBlocksSeparatorColor @@ -1070,6 +1324,7 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { super.init() self.addSubnode(self.backgroundNode) + self.addSubnode(self.snappedBackgroundNode) self.addSubnode(self.separatorNode) self.addSubnode(self.textNode) self.addSubnode(self.actionTextNode) @@ -1117,6 +1372,7 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { override public func updateLayout(size: CGSize, leftInset: CGFloat, rightInset: CGFloat) { self.validLayout = (size, leftInset, rightInset) self.backgroundNode.frame = CGRect(origin: CGPoint(), size: size) + self.snappedBackgroundNode.frame = CGRect(origin: CGPoint(), size: size) self.separatorNode.frame = CGRect(origin: CGPoint(x: 0.0, y: size.height - UIScreenPixel), size: CGSize(width: size.width, height: UIScreenPixel)) let sideInset: CGFloat = 15.0 + leftInset @@ -1135,6 +1391,6 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { } override public func updateStickDistanceFactor(_ factor: CGFloat, transition: ContainedViewLayoutTransition) { - //transition.updateAlpha(node: self.separatorNode, alpha: (1.0 - factor) * 0.0 + factor * 1.0) + transition.updateAlpha(node: self.snappedBackgroundNode, alpha: (1.0 - factor) * 0.0 + factor * 1.0) } } diff --git a/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.swift b/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.swift index 23d9798148..0eb1793f6c 100644 --- a/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.swift +++ b/submodules/ItemListStickerPackItem/Sources/ItemListStickerPackItem.swift @@ -324,7 +324,7 @@ class ItemListStickerPackItemNode: ItemListRevealOptionsItemNode { let separatorHeight = UIScreenPixel var editableControlSizeAndApply: (CGFloat, (CGFloat) -> ItemListEditableControlNode)? - var reorderControlSizeAndApply: (CGFloat, (CGFloat, Bool) -> ItemListEditableReorderControlNode)? + var reorderControlSizeAndApply: (CGFloat, (CGFloat, Bool, ContainedViewLayoutTransition) -> ItemListEditableReorderControlNode)? var editingOffset: CGFloat = 0.0 var reorderInset: CGFloat = 0.0 @@ -485,7 +485,7 @@ class ItemListStickerPackItemNode: ItemListRevealOptionsItemNode { if let reorderControlSizeAndApply = reorderControlSizeAndApply { if strongSelf.reorderControlNode == nil { - let reorderControlNode = reorderControlSizeAndApply.1(layout.contentSize.height, false) + let reorderControlNode = reorderControlSizeAndApply.1(layout.contentSize.height, false, .immediate) strongSelf.reorderControlNode = reorderControlNode strongSelf.addSubnode(reorderControlNode) reorderControlNode.alpha = 0.0 diff --git a/submodules/ItemListUI/Sources/ItemListController.swift b/submodules/ItemListUI/Sources/ItemListController.swift index eb4ba6cd0d..4d64b03c76 100644 --- a/submodules/ItemListUI/Sources/ItemListController.swift +++ b/submodules/ItemListUI/Sources/ItemListController.swift @@ -517,6 +517,10 @@ open class ItemListController: ViewController, KeyShortcutResponder, Presentable self.didDisappear?(animated) } + public var listInsets: UIEdgeInsets { + return (self.displayNode as! ItemListControllerNode).listNode.insets + } + public func frameForItemNode(_ predicate: (ListViewItemNode) -> Bool) -> CGRect? { var result: CGRect? (self.displayNode as! ItemListControllerNode).listNode.forEachItemNode { itemNode in diff --git a/submodules/ItemListUI/Sources/ItemListEditableReorderControlNode.swift b/submodules/ItemListUI/Sources/ItemListEditableReorderControlNode.swift index ce53c7ca5c..e3c6028ec1 100644 --- a/submodules/ItemListUI/Sources/ItemListEditableReorderControlNode.swift +++ b/submodules/ItemListUI/Sources/ItemListEditableReorderControlNode.swift @@ -19,7 +19,7 @@ public final class ItemListEditableReorderControlNode: ASDisplayNode { self.addSubnode(self.iconNode) } - public static func asyncLayout(_ node: ItemListEditableReorderControlNode?) -> (_ theme: PresentationTheme) -> (CGFloat, (CGFloat, Bool) -> ItemListEditableReorderControlNode) { + public static func asyncLayout(_ node: ItemListEditableReorderControlNode?) -> (_ theme: PresentationTheme) -> (CGFloat, (CGFloat, Bool, ContainedViewLayoutTransition) -> ItemListEditableReorderControlNode) { return { theme in let image = PresentationResourcesItemList.itemListReorderIndicatorIcon(theme) @@ -31,9 +31,9 @@ public final class ItemListEditableReorderControlNode: ASDisplayNode { } resultNode.iconNode.image = image - return (40.0, { height, offsetForLabel in + return (40.0, { height, offsetForLabel, transition in if let image = image { - resultNode.iconNode.frame = CGRect(origin: CGPoint(x: 7.0, y: floor((height - image.size.height) / 2.0) - (offsetForLabel ? 6.0 : 0.0)), size: image.size) + transition.updateFrame(node: resultNode.iconNode, frame: CGRect(origin: CGPoint(x: 7.0, y: floor((height - image.size.height) / 2.0) - (offsetForLabel ? 6.0 : 0.0)), size: image.size)) } return resultNode }) diff --git a/submodules/SettingsUI/Sources/Data and Storage/ProxySettingsServerItem.swift b/submodules/SettingsUI/Sources/Data and Storage/ProxySettingsServerItem.swift index bde8b6ce21..5d7e756311 100644 --- a/submodules/SettingsUI/Sources/Data and Storage/ProxySettingsServerItem.swift +++ b/submodules/SettingsUI/Sources/Data and Storage/ProxySettingsServerItem.swift @@ -241,7 +241,7 @@ private final class ProxySettingsServerItemNode: ItemListRevealOptionsItemNode { let statusAttributedString = NSAttributedString(string: item.label, font: statusFont, textColor: item.labelAccent ? item.theme.list.itemAccentColor : item.theme.list.itemSecondaryTextColor) var editableControlSizeAndApply: (CGFloat, (CGFloat) -> ItemListEditableControlNode)? - var reorderControlSizeAndApply: (CGFloat, (CGFloat, Bool) -> ItemListEditableReorderControlNode)? + var reorderControlSizeAndApply: (CGFloat, (CGFloat, Bool, ContainedViewLayoutTransition) -> ItemListEditableReorderControlNode)? let editingOffset: CGFloat var reorderInset: CGFloat = 0.0 @@ -341,7 +341,7 @@ private final class ProxySettingsServerItemNode: ItemListRevealOptionsItemNode { if let reorderControlSizeAndApply = reorderControlSizeAndApply { if strongSelf.reorderControlNode == nil { - let reorderControlNode = reorderControlSizeAndApply.1(layout.contentSize.height, false) + let reorderControlNode = reorderControlSizeAndApply.1(layout.contentSize.height, false, .immediate) strongSelf.reorderControlNode = reorderControlNode strongSelf.addSubnode(reorderControlNode) reorderControlNode.alpha = 0.0 diff --git a/submodules/ShareController/Sources/ShareController.swift b/submodules/ShareController/Sources/ShareController.swift index 2c93585f78..80e42a7db5 100644 --- a/submodules/ShareController/Sources/ShareController.swift +++ b/submodules/ShareController/Sources/ShareController.swift @@ -172,10 +172,19 @@ private func collectExternalShareItems(strings: PresentationStrings, dateTimeFor text.append("\n— \(option.text)") } let totalVoters = poll.results.totalVoters ?? 0 - if totalVoters == 0 { - text.append("\n\(strings.MessagePoll_NoVotes)") - } else { - text.append("\n\(strings.MessagePoll_VotedCount(totalVoters))") + switch poll.kind { + case .poll: + if totalVoters == 0 { + text.append("\n\(strings.MessagePoll_NoVotes)") + } else { + text.append("\n\(strings.MessagePoll_VotedCount(totalVoters))") + } + case .quiz: + if totalVoters == 0 { + text.append("\n\(strings.MessagePoll_QuizNoUsers)") + } else { + text.append("\n\(strings.MessagePoll_QuizCount(totalVoters))") + } } signals.append(.single(.done(.text(text)))) } else if let mediaReference = item.mediaReference, let contact = mediaReference.media as? TelegramMediaContact { diff --git a/submodules/TelegramCore/Sources/FetchedMediaResource.swift b/submodules/TelegramCore/Sources/FetchedMediaResource.swift index 7adb6c9e2a..8ab6ae7d41 100644 --- a/submodules/TelegramCore/Sources/FetchedMediaResource.swift +++ b/submodules/TelegramCore/Sources/FetchedMediaResource.swift @@ -445,12 +445,12 @@ struct RevalidatedMediaResource { func revalidateMediaResourceReference(postbox: Postbox, network: Network, revalidationContext: MediaReferenceRevalidationContext, info: TelegramCloudMediaResourceFetchInfo, resource: MediaResource) -> Signal { var updatedReference = info.reference if case let .media(media, resource) = updatedReference { - if case let .message(_, mediaValue) = media { + if case let .message(messageReference, mediaValue) = media { if let file = mediaValue as? TelegramMediaFile { if let partialReference = file.partialReference { updatedReference = partialReference.mediaReference(media.media).resourceReference(resource) } - if file.isSticker { + if file.isSticker, messageReference.isSecret == true { var stickerPackReference: StickerPackReference? for attribute in file.attributes { if case let .Sticker(sticker) = attribute { diff --git a/submodules/TelegramCore/Sources/Polls.swift b/submodules/TelegramCore/Sources/Polls.swift index 1e3b1ca56a..213f4a264b 100644 --- a/submodules/TelegramCore/Sources/Polls.swift +++ b/submodules/TelegramCore/Sources/Polls.swift @@ -10,7 +10,7 @@ public enum RequestMessageSelectPollOptionError { case generic } -public func requestMessageSelectPollOption(account: Account, messageId: MessageId, opaqueIdentifiers: [Data]) -> Signal { +public func requestMessageSelectPollOption(account: Account, messageId: MessageId, opaqueIdentifiers: [Data]) -> Signal { return account.postbox.loadedPeerWithId(messageId.peerId) |> take(1) |> castError(RequestMessageSelectPollOptionError.self) @@ -20,12 +20,46 @@ public func requestMessageSelectPollOption(account: Account, messageId: MessageI |> mapError { _ -> RequestMessageSelectPollOptionError in return .generic } - |> mapToSignal { result -> Signal in + |> mapToSignal { result -> Signal in + var resultPoll: TelegramMediaPoll? + switch result { + case let .updates(updates, _, _, _, _): + for update in updates { + switch update { + case let .updateMessagePoll(_, pollId, poll, results): + if let poll = poll { + switch poll { + case let .poll(id, flags, question, answers): + let publicity: TelegramMediaPollPublicity + if (flags & (1 << 1)) != 0 { + publicity = .public + } else { + publicity = .anonymous + } + let kind: TelegramMediaPollKind + if (flags & (1 << 3)) != 0 { + kind = .quiz + } else { + kind = .poll(multipleAnswers: (flags & (1 << 2)) != 0) + } + resultPoll = TelegramMediaPoll(pollId: MediaId(namespace: Namespaces.Media.CloudPoll, id: id), publicity: publicity, kind: kind, text: question, options: answers.map(TelegramMediaPollOption.init(apiOption:)), correctAnswers: nil, results: TelegramMediaPollResults(apiResults: results), isClosed: (flags & (1 << 0)) != 0) + default: + break + } + } + default: + break + } + } + break + default: + break + } account.stateManager.addUpdates(result) - return .complete() + return .single(resultPoll) } } else { - return .complete() + return .single(nil) } } } @@ -131,7 +165,7 @@ private final class PollResultsOptionContext { } |> mapToSignal { inputPeer -> Signal<([RenderedPeer], Int, String?), NoError> in if let inputPeer = inputPeer { - return account.network.request(Api.functions.messages.getPollVotes(flags: 1 << 0, peer: inputPeer, id: messageId.id, option: Buffer(data: opaqueIdentifier), offset: nextOffset, limit: nextOffset == nil ? 15 : 50)) + let signal = account.network.request(Api.functions.messages.getPollVotes(flags: 1 << 0, peer: inputPeer, id: messageId.id, option: Buffer(data: opaqueIdentifier), offset: nextOffset, limit: nextOffset == nil ? 1 : 50)) |> map(Optional.init) |> `catch` { _ -> Signal in return .single(nil) @@ -163,6 +197,10 @@ private final class PollResultsOptionContext { } } } + #if DEBUG + return signal |> delay(4.0, queue: .concurrentDefaultQueue()) + #endif + return signal } else { return .single(([], 0, nil)) } diff --git a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift index f3fd1ac110..bf162c39fb 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift @@ -226,6 +226,7 @@ public func customizeDefaultDayTheme(theme: PresentationTheme, editing: Bool, ti linkHighlightColor: accentColor?.withAlphaComponent(0.3), accentTextColor: accentColor, accentControlColor: accentColor, + accentControlDisabledColor: accentColor?.withAlphaComponent(0.7), mediaActiveControlColor: accentColor, fileTitleColor: accentColor, polls: chat.message.incoming.polls.withUpdated( @@ -261,6 +262,7 @@ public func customizeDefaultDayTheme(theme: PresentationTheme, editing: Bool, ti scamColor: outgoingScamColor, accentTextColor: outgoingAccentTextColor, accentControlColor: outgoingControlColor, + accentControlDisabledColor: outgoingControlColor?.withAlphaComponent(0.7), mediaActiveControlColor: outgoingControlColor, mediaInactiveControlColor: outgoingInactiveControlColor, mediaControlInnerBackgroundColor: .clear, @@ -516,7 +518,7 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio textHighlightColor: UIColor(rgb: 0xffe438), accentTextColor: UIColor(rgb: 0x00a700), accentControlColor: UIColor(rgb: 0x3fc33b), - accentControlDisabledColor: UIColor(rgb: 0x00A700).withAlphaComponent(0.7), + accentControlDisabledColor: UIColor(rgb: 0x3fc33b).withAlphaComponent(0.7), mediaActiveControlColor: UIColor(rgb: 0x3fc33b), mediaInactiveControlColor: UIColor(rgb: 0x93d987), mediaControlInnerBackgroundColor: UIColor(rgb: 0xe1ffc7), diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index cc30fd292c..61586448a3 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -309,4980 +309,4990 @@ public final class PresentationStrings: Equatable { public func Wallet_Info_TransactionBlockchainFee(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[115]!, self._r[115]!, [_0]) } - public var Conversation_StopLiveLocation: String { return self._s[117]! } - public var Channel_AdminLogFilter_EventsAll: String { return self._s[118]! } - public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[120]! } - public var Username_LinkCopied: String { return self._s[122]! } - public var GroupRemoved_Title: String { return self._s[123]! } - public var SecretVideo_Title: String { return self._s[124]! } + public var Conversation_StopLiveLocation: String { return self._s[118]! } + public var Channel_AdminLogFilter_EventsAll: String { return self._s[119]! } + public var GroupInfo_InviteLink_CopyAlert_Success: String { return self._s[121]! } + public var Username_LinkCopied: String { return self._s[123]! } + public var GroupRemoved_Title: String { return self._s[124]! } + public var SecretVideo_Title: String { return self._s[125]! } public func PUSH_PINNED_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[125]!, self._r[125]!, [_1]) + return formatWithArgumentRanges(self._s[126]!, self._r[126]!, [_1]) } - public var AccessDenied_PhotosAndVideos: String { return self._s[126]! } - public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[127]! } + public var AccessDenied_PhotosAndVideos: String { return self._s[127]! } + public var Appearance_ThemePreview_Chat_1_Text: String { return self._s[128]! } public func PUSH_CHANNEL_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[129]!, self._r[129]!, [_1]) + return formatWithArgumentRanges(self._s[130]!, self._r[130]!, [_1]) } - public var Map_OpenInGoogleMaps: String { return self._s[131]! } + public var Map_OpenInGoogleMaps: String { return self._s[132]! } public func Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[132]!, self._r[132]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[133]!, self._r[133]!, [_1, _2, _3]) } public func Channel_AdminLog_MessageKickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[133]!, self._r[133]!, [_1, _2]) + return formatWithArgumentRanges(self._s[134]!, self._r[134]!, [_1, _2]) } - public var Call_StatusRinging: String { return self._s[134]! } - public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[135]! } - public var Group_Username_InvalidStartsWithNumber: String { return self._s[136]! } - public var UserInfo_NotificationsEnabled: String { return self._s[137]! } - public var Map_Search: String { return self._s[138]! } - public var ClearCache_StorageFree: String { return self._s[140]! } - public var Login_TermsOfServiceHeader: String { return self._s[141]! } + public var Call_StatusRinging: String { return self._s[135]! } + public var SettingsSearch_Synonyms_EditProfile_Username: String { return self._s[136]! } + public var Group_Username_InvalidStartsWithNumber: String { return self._s[137]! } + public var UserInfo_NotificationsEnabled: String { return self._s[138]! } + public var Map_Search: String { return self._s[139]! } + public var ClearCache_StorageFree: String { return self._s[141]! } + public var Login_TermsOfServiceHeader: String { return self._s[142]! } public func Notification_PinnedVideoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[142]!, self._r[142]!, [_0]) - } - public func Channel_AdminLog_MessageToggleSignaturesOn(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[143]!, self._r[143]!, [_0]) } - public var Wallet_Sent_Title: String { return self._s[144]! } - public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[145]! } - public var Weekday_Today: String { return self._s[146]! } + public func Channel_AdminLog_MessageToggleSignaturesOn(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[145]!, self._r[145]!, [_0]) + } + public var Wallet_Sent_Title: String { return self._s[146]! } + public var TwoStepAuth_SetupPasswordConfirmPassword: String { return self._s[147]! } + public var Weekday_Today: String { return self._s[148]! } public func InstantPage_AuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[148]!, self._r[148]!, [_1, _2]) + return formatWithArgumentRanges(self._s[150]!, self._r[150]!, [_1, _2]) } public func Conversation_MessageDialogRetryAll(_ _1: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[149]!, self._r[149]!, ["\(_1)"]) + return formatWithArgumentRanges(self._s[151]!, self._r[151]!, ["\(_1)"]) } - public var Notification_PassportValuePersonalDetails: String { return self._s[151]! } - public var Channel_AdminLog_MessagePreviousLink: String { return self._s[152]! } - public var ChangePhoneNumberNumber_NewNumber: String { return self._s[153]! } - public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[154]! } - public var TwoStepAuth_ChangePasswordDescription: String { return self._s[155]! } - public var PhotoEditor_BlurToolLinear: String { return self._s[156]! } - public var Contacts_PermissionsAllowInSettings: String { return self._s[157]! } - public var Weekday_ShortMonday: String { return self._s[158]! } - public var Cache_KeepMedia: String { return self._s[159]! } - public var Passport_FieldIdentitySelfieHelp: String { return self._s[160]! } + public var Notification_PassportValuePersonalDetails: String { return self._s[153]! } + public var Channel_AdminLog_MessagePreviousLink: String { return self._s[154]! } + public var ChangePhoneNumberNumber_NewNumber: String { return self._s[155]! } + public var ApplyLanguage_LanguageNotSupportedError: String { return self._s[156]! } + public var TwoStepAuth_ChangePasswordDescription: String { return self._s[157]! } + public var PhotoEditor_BlurToolLinear: String { return self._s[158]! } + public var Contacts_PermissionsAllowInSettings: String { return self._s[159]! } + public var Weekday_ShortMonday: String { return self._s[160]! } + public var Cache_KeepMedia: String { return self._s[161]! } + public var Passport_FieldIdentitySelfieHelp: String { return self._s[162]! } public func PUSH_PINNED_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[161]!, self._r[161]!, [_1, _2]) + return formatWithArgumentRanges(self._s[163]!, self._r[163]!, [_1, _2]) } public func Chat_SlowmodeTooltip(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[162]!, self._r[162]!, [_0]) + return formatWithArgumentRanges(self._s[164]!, self._r[164]!, [_0]) } - public var Wallet_Receive_ShareUrlInfo: String { return self._s[163]! } - public var Conversation_ClousStorageInfo_Description4: String { return self._s[164]! } - public var Wallet_RestoreFailed_Title: String { return self._s[165]! } - public var Passport_Language_ru: String { return self._s[166]! } + public var Wallet_Receive_ShareUrlInfo: String { return self._s[165]! } + public var Conversation_ClousStorageInfo_Description4: String { return self._s[166]! } + public var Wallet_RestoreFailed_Title: String { return self._s[167]! } + public var Passport_Language_ru: String { return self._s[168]! } public func Notification_CreatedChatWithTitle(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[167]!, self._r[167]!, [_0, _1]) + return formatWithArgumentRanges(self._s[169]!, self._r[169]!, [_0, _1]) } - public var WallpaperPreview_PatternIntensity: String { return self._s[168]! } - public var WebBrowser_InAppSafari: String { return self._s[171]! } - public var TwoStepAuth_RecoveryUnavailable: String { return self._s[172]! } - public var EnterPasscode_TouchId: String { return self._s[173]! } - public var PhotoEditor_QualityVeryHigh: String { return self._s[176]! } - public var Checkout_NewCard_SaveInfo: String { return self._s[178]! } - public var Gif_NoGifsPlaceholder: String { return self._s[180]! } + public var WallpaperPreview_PatternIntensity: String { return self._s[170]! } + public var WebBrowser_InAppSafari: String { return self._s[173]! } + public var TwoStepAuth_RecoveryUnavailable: String { return self._s[174]! } + public var EnterPasscode_TouchId: String { return self._s[175]! } + public var PhotoEditor_QualityVeryHigh: String { return self._s[178]! } + public var Checkout_NewCard_SaveInfo: String { return self._s[180]! } + public var Gif_NoGifsPlaceholder: String { return self._s[182]! } public func Notification_InvitedMultiple(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[182]!, self._r[182]!, [_0, _1]) + return formatWithArgumentRanges(self._s[184]!, self._r[184]!, [_0, _1]) } - public var ChatSettings_AutoDownloadEnabled: String { return self._s[183]! } - public var NetworkUsageSettings_BytesSent: String { return self._s[184]! } - public var Checkout_PasswordEntry_Pay: String { return self._s[185]! } - public var AuthSessions_TerminateSession: String { return self._s[186]! } - public var Message_File: String { return self._s[187]! } - public var MediaPicker_VideoMuteDescription: String { return self._s[188]! } - public var SocksProxySetup_ProxyStatusConnected: String { return self._s[189]! } - public var TwoStepAuth_RecoveryCode: String { return self._s[190]! } - public var EnterPasscode_EnterCurrentPasscode: String { return self._s[191]! } + public var ChatSettings_AutoDownloadEnabled: String { return self._s[185]! } + public var NetworkUsageSettings_BytesSent: String { return self._s[186]! } + public var Checkout_PasswordEntry_Pay: String { return self._s[187]! } + public var AuthSessions_TerminateSession: String { return self._s[188]! } + public var Message_File: String { return self._s[189]! } + public var MediaPicker_VideoMuteDescription: String { return self._s[190]! } + public var SocksProxySetup_ProxyStatusConnected: String { return self._s[191]! } + public var TwoStepAuth_RecoveryCode: String { return self._s[192]! } + public var EnterPasscode_EnterCurrentPasscode: String { return self._s[193]! } public func TwoStepAuth_EnterPasswordHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[192]!, self._r[192]!, [_0]) + return formatWithArgumentRanges(self._s[194]!, self._r[194]!, [_0]) } - public var Conversation_Moderate_Report: String { return self._s[194]! } - public var TwoStepAuth_EmailInvalid: String { return self._s[195]! } - public var Passport_Language_ms: String { return self._s[196]! } - public var Channel_Edit_AboutItem: String { return self._s[198]! } - public var DialogList_SearchSectionGlobal: String { return self._s[202]! } - public var AttachmentMenu_WebSearch: String { return self._s[203]! } - public var PasscodeSettings_TurnPasscodeOn: String { return self._s[204]! } - public var Channel_BanUser_Title: String { return self._s[205]! } - public var WallpaperPreview_SwipeTopText: String { return self._s[206]! } - public var ChatList_DeleteSavedMessagesConfirmationText: String { return self._s[207]! } - public var ArchivedChats_IntroText2: String { return self._s[208]! } - public var Conversation_OpenBotLinkTitle: String { return self._s[209]! } - public var ChatSearch_SearchPlaceholder: String { return self._s[211]! } - public var Notification_Exceptions_DeleteAll: String { return self._s[212]! } - public var Passport_FieldAddressTranslationHelp: String { return self._s[213]! } - public var NotificationsSound_Aurora: String { return self._s[214]! } + public var Conversation_Moderate_Report: String { return self._s[196]! } + public var TwoStepAuth_EmailInvalid: String { return self._s[197]! } + public var Passport_Language_ms: String { return self._s[198]! } + public var Channel_Edit_AboutItem: String { return self._s[200]! } + public var DialogList_SearchSectionGlobal: String { return self._s[204]! } + public var AttachmentMenu_WebSearch: String { return self._s[205]! } + public var PasscodeSettings_TurnPasscodeOn: String { return self._s[206]! } + public var Channel_BanUser_Title: String { return self._s[207]! } + public var WallpaperPreview_SwipeTopText: String { return self._s[208]! } + public var ChatList_DeleteSavedMessagesConfirmationText: String { return self._s[209]! } + public var ArchivedChats_IntroText2: String { return self._s[210]! } + public var Conversation_OpenBotLinkTitle: String { return self._s[211]! } + public var ChatSearch_SearchPlaceholder: String { return self._s[213]! } + public var Notification_Exceptions_DeleteAll: String { return self._s[214]! } + public var Passport_FieldAddressTranslationHelp: String { return self._s[215]! } + public var NotificationsSound_Aurora: String { return self._s[216]! } public func Channel_AdminLog_MessageTransferedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[215]!, self._r[215]!, [_1, _2]) + return formatWithArgumentRanges(self._s[217]!, self._r[217]!, [_1, _2]) } public func FileSize_GB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[216]!, self._r[216]!, [_0]) + return formatWithArgumentRanges(self._s[218]!, self._r[218]!, [_0]) } - public var AuthSessions_LoggedInWithTelegram: String { return self._s[219]! } + public var AuthSessions_LoggedInWithTelegram: String { return self._s[221]! } public func Privacy_GroupsAndChannels_InviteToGroupError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[220]!, self._r[220]!, [_0, _1]) + return formatWithArgumentRanges(self._s[222]!, self._r[222]!, [_0, _1]) } - public var Passport_PasswordNext: String { return self._s[221]! } - public var Bot_GroupStatusReadsHistory: String { return self._s[222]! } - public var EmptyGroupInfo_Line2: String { return self._s[223]! } - public var VoiceOver_Chat_SeenByRecipients: String { return self._s[224]! } - public var Settings_FAQ_Intro: String { return self._s[227]! } - public var PrivacySettings_PasscodeAndTouchId: String { return self._s[229]! } - public var FeaturedStickerPacks_Title: String { return self._s[230]! } - public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[232]! } - public var Username_Title: String { return self._s[233]! } + public var Passport_PasswordNext: String { return self._s[223]! } + public var Bot_GroupStatusReadsHistory: String { return self._s[224]! } + public var EmptyGroupInfo_Line2: String { return self._s[225]! } + public var VoiceOver_Chat_SeenByRecipients: String { return self._s[226]! } + public var Settings_FAQ_Intro: String { return self._s[229]! } + public var PrivacySettings_PasscodeAndTouchId: String { return self._s[231]! } + public var FeaturedStickerPacks_Title: String { return self._s[232]! } + public var TwoStepAuth_PasswordRemoveConfirmation: String { return self._s[234]! } + public var Username_Title: String { return self._s[235]! } public func Message_StickerText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[234]!, self._r[234]!, [_0]) + return formatWithArgumentRanges(self._s[236]!, self._r[236]!, [_0]) } - public var PasscodeSettings_AlphanumericCode: String { return self._s[235]! } - public var Localization_LanguageOther: String { return self._s[236]! } - public var Stickers_SuggestStickers: String { return self._s[237]! } + public var PasscodeSettings_AlphanumericCode: String { return self._s[237]! } + public var Localization_LanguageOther: String { return self._s[238]! } + public var Stickers_SuggestStickers: String { return self._s[239]! } public func Channel_AdminLog_MessageRemovedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[238]!, self._r[238]!, [_0]) + return formatWithArgumentRanges(self._s[240]!, self._r[240]!, [_0]) } - public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[239]! } - public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[240]! } - public var Conversation_DefaultRestrictedStickers: String { return self._s[241]! } + public var NotificationSettings_ShowNotificationsFromAccountsSection: String { return self._s[241]! } + public var Channel_AdminLogFilter_EventsAdmins: String { return self._s[242]! } + public var Conversation_DefaultRestrictedStickers: String { return self._s[243]! } public func Notification_PinnedDeletedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[242]!, self._r[242]!, [_0]) + return formatWithArgumentRanges(self._s[244]!, self._r[244]!, [_0]) } - public var Wallet_TransactionInfo_CopyAddress: String { return self._s[244]! } - public var Group_UpgradeConfirmation: String { return self._s[245]! } - public var DialogList_Unpin: String { return self._s[246]! } - public var Passport_Identity_DateOfBirth: String { return self._s[247]! } - public var Month_ShortOctober: String { return self._s[248]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[249]! } - public var TwoFactorSetup_Done_Text: String { return self._s[250]! } - public var Notification_CallCanceledShort: String { return self._s[251]! } - public var Passport_Phone_Help: String { return self._s[252]! } - public var Passport_Language_az: String { return self._s[254]! } - public var CreatePoll_TextPlaceholder: String { return self._s[256]! } - public var VoiceOver_Chat_AnonymousPoll: String { return self._s[257]! } - public var Passport_Identity_DocumentNumber: String { return self._s[258]! } - public var PhotoEditor_CurvesRed: String { return self._s[259]! } - public var PhoneNumberHelp_Alert: String { return self._s[261]! } - public var SocksProxySetup_Port: String { return self._s[262]! } - public var Checkout_PayNone: String { return self._s[263]! } - public var AutoDownloadSettings_WiFi: String { return self._s[264]! } - public var GroupInfo_GroupType: String { return self._s[265]! } - public var StickerSettings_ContextHide: String { return self._s[266]! } - public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[267]! } - public var Group_Setup_HistoryTitle: String { return self._s[269]! } - public var Passport_Identity_FilesUploadNew: String { return self._s[270]! } - public var PasscodeSettings_AutoLock: String { return self._s[271]! } - public var Passport_Title: String { return self._s[272]! } - public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[273]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[274]! } - public var GroupPermission_NoSendGifs: String { return self._s[275]! } - public var PrivacySettings_PasscodeOn: String { return self._s[276]! } + public var Wallet_TransactionInfo_CopyAddress: String { return self._s[246]! } + public var Group_UpgradeConfirmation: String { return self._s[247]! } + public var DialogList_Unpin: String { return self._s[248]! } + public var Passport_Identity_DateOfBirth: String { return self._s[249]! } + public var Month_ShortOctober: String { return self._s[250]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsSync: String { return self._s[251]! } + public var TwoFactorSetup_Done_Text: String { return self._s[252]! } + public var Notification_CallCanceledShort: String { return self._s[253]! } + public var Conversation_StopQuiz: String { return self._s[254]! } + public var Passport_Phone_Help: String { return self._s[255]! } + public var Passport_Language_az: String { return self._s[257]! } + public var CreatePoll_TextPlaceholder: String { return self._s[259]! } + public var VoiceOver_Chat_AnonymousPoll: String { return self._s[260]! } + public var Passport_Identity_DocumentNumber: String { return self._s[261]! } + public var PhotoEditor_CurvesRed: String { return self._s[262]! } + public var PhoneNumberHelp_Alert: String { return self._s[264]! } + public var SocksProxySetup_Port: String { return self._s[265]! } + public var Checkout_PayNone: String { return self._s[266]! } + public var AutoDownloadSettings_WiFi: String { return self._s[267]! } + public var GroupInfo_GroupType: String { return self._s[268]! } + public var StickerSettings_ContextHide: String { return self._s[269]! } + public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[270]! } + public var Group_Setup_HistoryTitle: String { return self._s[272]! } + public var Passport_Identity_FilesUploadNew: String { return self._s[273]! } + public var PasscodeSettings_AutoLock: String { return self._s[274]! } + public var Passport_Title: String { return self._s[275]! } + public var VoiceOver_Chat_ContactPhoneNumber: String { return self._s[276]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[277]! } + public var GroupPermission_NoSendGifs: String { return self._s[278]! } + public var PrivacySettings_PasscodeOn: String { return self._s[279]! } public func Conversation_ScheduleMessage_SendTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[277]!, self._r[277]!, [_0]) + return formatWithArgumentRanges(self._s[280]!, self._r[280]!, [_0]) } - public var State_WaitingForNetwork: String { return self._s[280]! } + public var State_WaitingForNetwork: String { return self._s[283]! } public func Notification_Invited(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[281]!, self._r[281]!, [_0, _1]) + return formatWithArgumentRanges(self._s[284]!, self._r[284]!, [_0, _1]) } - public var Calls_NotNow: String { return self._s[283]! } + public var Calls_NotNow: String { return self._s[286]! } public func Channel_DiscussionGroup_HeaderSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[284]!, self._r[284]!, [_0]) + return formatWithArgumentRanges(self._s[287]!, self._r[287]!, [_0]) } - public var UserInfo_SendMessage: String { return self._s[285]! } - public var TwoStepAuth_PasswordSet: String { return self._s[286]! } - public var Passport_DeleteDocument: String { return self._s[287]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[288]! } + public var UserInfo_SendMessage: String { return self._s[288]! } + public var TwoStepAuth_PasswordSet: String { return self._s[289]! } + public var Passport_DeleteDocument: String { return self._s[290]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[291]! } public func PUSH_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[289]!, self._r[289]!, [_1]) + return formatWithArgumentRanges(self._s[292]!, self._r[292]!, [_1]) } - public var AuthSessions_AddedDeviceTitle: String { return self._s[290]! } - public var GroupRemoved_Remove: String { return self._s[291]! } - public var Passport_FieldIdentity: String { return self._s[292]! } - public var Group_Setup_TypePrivateHelp: String { return self._s[293]! } - public var Conversation_Processing: String { return self._s[296]! } - public var Wallet_Settings_BackupWallet: String { return self._s[298]! } - public var ChatSettings_AutoPlayAnimations: String { return self._s[299]! } - public var AuthSessions_LogOutApplicationsHelp: String { return self._s[302]! } - public var Month_GenFebruary: String { return self._s[303]! } - public var Wallet_Send_NetworkErrorTitle: String { return self._s[304]! } + public var AuthSessions_AddedDeviceTitle: String { return self._s[293]! } + public var GroupRemoved_Remove: String { return self._s[294]! } + public var Passport_FieldIdentity: String { return self._s[295]! } + public var Group_Setup_TypePrivateHelp: String { return self._s[296]! } + public var Conversation_Processing: String { return self._s[299]! } + public var Wallet_Settings_BackupWallet: String { return self._s[301]! } + public var ChatSettings_AutoPlayAnimations: String { return self._s[302]! } + public var AuthSessions_LogOutApplicationsHelp: String { return self._s[305]! } + public var Month_GenFebruary: String { return self._s[306]! } + public var Wallet_Send_NetworkErrorTitle: String { return self._s[307]! } public func Login_InvalidPhoneEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[306]!, self._r[306]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[309]!, self._r[309]!, [_1, _2, _3, _4, _5]) } - public var Passport_Identity_TypeIdentityCard: String { return self._s[307]! } - public var Wallet_Month_ShortJune: String { return self._s[309]! } - public var AutoDownloadSettings_DataUsageMedium: String { return self._s[310]! } - public var GroupInfo_AddParticipant: String { return self._s[311]! } - public var KeyCommand_SendMessage: String { return self._s[312]! } - public var VoiceOver_Chat_YourContact: String { return self._s[314]! } - public var Map_LiveLocationShowAll: String { return self._s[315]! } - public var WallpaperSearch_ColorOrange: String { return self._s[317]! } - public var Appearance_AppIconDefaultX: String { return self._s[318]! } - public var Checkout_Receipt_Title: String { return self._s[319]! } - public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[320]! } - public var WallpaperPreview_PreviewTopText: String { return self._s[321]! } - public var Message_Contact: String { return self._s[322]! } - public var Call_StatusIncoming: String { return self._s[323]! } - public var Wallet_TransactionInfo_StorageFeeInfo: String { return self._s[324]! } + public var Passport_Identity_TypeIdentityCard: String { return self._s[310]! } + public var Wallet_Month_ShortJune: String { return self._s[312]! } + public var AutoDownloadSettings_DataUsageMedium: String { return self._s[313]! } + public var GroupInfo_AddParticipant: String { return self._s[314]! } + public var KeyCommand_SendMessage: String { return self._s[315]! } + public var VoiceOver_Chat_YourContact: String { return self._s[317]! } + public var Map_LiveLocationShowAll: String { return self._s[318]! } + public var WallpaperSearch_ColorOrange: String { return self._s[320]! } + public var Appearance_AppIconDefaultX: String { return self._s[321]! } + public var Checkout_Receipt_Title: String { return self._s[322]! } + public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[323]! } + public var WallpaperPreview_PreviewTopText: String { return self._s[324]! } + public var Message_Contact: String { return self._s[325]! } + public var Call_StatusIncoming: String { return self._s[326]! } + public var Wallet_TransactionInfo_StorageFeeInfo: String { return self._s[327]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[325]!, self._r[325]!, [_1]) + return formatWithArgumentRanges(self._s[328]!, self._r[328]!, [_1]) } public func PUSH_ENCRYPTED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[327]!, self._r[327]!, [_1]) + return formatWithArgumentRanges(self._s[330]!, self._r[330]!, [_1]) } - public var VoiceOver_Media_PlaybackRate: String { return self._s[328]! } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[329]! } - public var Conversation_ViewChannel: String { return self._s[330]! } + public var VoiceOver_Media_PlaybackRate: String { return self._s[331]! } + public var Passport_FieldIdentityDetailsHelp: String { return self._s[332]! } + public var Conversation_ViewChannel: String { return self._s[333]! } public func Time_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[331]!, self._r[331]!, [_0]) + return formatWithArgumentRanges(self._s[334]!, self._r[334]!, [_0]) } - public var Theme_Colors_Accent: String { return self._s[332]! } - public var Passport_Language_nl: String { return self._s[334]! } - public var Camera_Retake: String { return self._s[335]! } + public var Theme_Colors_Accent: String { return self._s[335]! } + public var Passport_Language_nl: String { return self._s[337]! } + public var Camera_Retake: String { return self._s[338]! } public func UserInfo_BlockActionTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[336]!, self._r[336]!, [_0]) + return formatWithArgumentRanges(self._s[339]!, self._r[339]!, [_0]) } - public var AuthSessions_LogOutApplications: String { return self._s[337]! } - public var ApplyLanguage_ApplySuccess: String { return self._s[338]! } - public var Tour_Title6: String { return self._s[339]! } - public var Map_ChooseAPlace: String { return self._s[340]! } - public var CallSettings_Never: String { return self._s[342]! } + public var AuthSessions_LogOutApplications: String { return self._s[340]! } + public var ApplyLanguage_ApplySuccess: String { return self._s[341]! } + public var Tour_Title6: String { return self._s[342]! } + public var Map_ChooseAPlace: String { return self._s[343]! } + public var CallSettings_Never: String { return self._s[345]! } public func Notification_ChangedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[343]!, self._r[343]!, [_0]) + return formatWithArgumentRanges(self._s[346]!, self._r[346]!, [_0]) } - public var ChannelRemoved_RemoveInfo: String { return self._s[344]! } + public var ChannelRemoved_RemoveInfo: String { return self._s[347]! } public func AutoDownloadSettings_PreloadVideoInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[345]!, self._r[345]!, [_0]) + return formatWithArgumentRanges(self._s[348]!, self._r[348]!, [_0]) } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[346]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[349]! } public func Conversation_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[347]!, self._r[347]!, [_0]) + return formatWithArgumentRanges(self._s[350]!, self._r[350]!, [_0]) } - public var GroupInfo_InviteLink_Title: String { return self._s[348]! } + public var GroupInfo_InviteLink_Title: String { return self._s[351]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[349]!, self._r[349]!, [_1, _2]) + return formatWithArgumentRanges(self._s[352]!, self._r[352]!, [_1, _2]) } - public var KeyCommand_ScrollUp: String { return self._s[350]! } - public var ContactInfo_URLLabelHomepage: String { return self._s[351]! } - public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[352]! } + public var KeyCommand_ScrollUp: String { return self._s[353]! } + public var ContactInfo_URLLabelHomepage: String { return self._s[354]! } + public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[355]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[353]!, self._r[353]!, [_0]) + return formatWithArgumentRanges(self._s[356]!, self._r[356]!, [_0]) } - public var TwoFactorSetup_Done_Title: String { return self._s[354]! } + public var TwoFactorSetup_Done_Title: String { return self._s[357]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[355]!, self._r[355]!, [_0]) + return formatWithArgumentRanges(self._s[358]!, self._r[358]!, [_0]) } - public var CallFeedback_ReasonDistortedSpeech: String { return self._s[356]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[357]! } - public var ContactList_Context_SendMessage: String { return self._s[359]! } - public var Weekday_Tuesday: String { return self._s[360]! } - public var Wallet_Created_Title: String { return self._s[362]! } - public var ScheduledMessages_Delete: String { return self._s[363]! } - public var UserInfo_StartSecretChat: String { return self._s[364]! } - public var Passport_Identity_FilesTitle: String { return self._s[365]! } - public var Permissions_NotificationsAllow_v0: String { return self._s[366]! } - public var DialogList_DeleteConversationConfirmation: String { return self._s[368]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[369]! } + public var CallFeedback_ReasonDistortedSpeech: String { return self._s[359]! } + public var Watch_LastSeen_WithinAWeek: String { return self._s[360]! } + public var ContactList_Context_SendMessage: String { return self._s[362]! } + public var Weekday_Tuesday: String { return self._s[363]! } + public var Wallet_Created_Title: String { return self._s[365]! } + public var ScheduledMessages_Delete: String { return self._s[366]! } + public var UserInfo_StartSecretChat: String { return self._s[367]! } + public var Passport_Identity_FilesTitle: String { return self._s[368]! } + public var Permissions_NotificationsAllow_v0: String { return self._s[369]! } + public var DialogList_DeleteConversationConfirmation: String { return self._s[371]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[372]! } public func Wallet_Configuration_ApplyErrorTextURLUnreachable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[370]!, self._r[370]!, [_0]) - } - public var AuthSessions_Sessions: String { return self._s[371]! } - public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[373]!, self._r[373]!, [_0]) } - public var TwoStepAuth_RecoveryEmailChangeDescription: String { return self._s[374]! } - public var Call_StatusWaiting: String { return self._s[375]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[376]! } - public var FastTwoStepSetup_HintHelp: String { return self._s[377]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[378]! } - public var EditTheme_Expand_Preview_OutgoingText: String { return self._s[379]! } - public var LogoutOptions_AddAccountText: String { return self._s[380]! } - public var PasscodeSettings_6DigitCode: String { return self._s[381]! } - public var Settings_LogoutConfirmationText: String { return self._s[382]! } - public var Passport_Identity_TypePassport: String { return self._s[384]! } - public var Map_Work: String { return self._s[387]! } + public var AuthSessions_Sessions: String { return self._s[374]! } + public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[376]!, self._r[376]!, [_0]) + } + public var TwoStepAuth_RecoveryEmailChangeDescription: String { return self._s[377]! } + public var Call_StatusWaiting: String { return self._s[378]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[379]! } + public var FastTwoStepSetup_HintHelp: String { return self._s[380]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[381]! } + public var EditTheme_Expand_Preview_OutgoingText: String { return self._s[382]! } + public var LogoutOptions_AddAccountText: String { return self._s[383]! } + public var PasscodeSettings_6DigitCode: String { return self._s[384]! } + public var Settings_LogoutConfirmationText: String { return self._s[385]! } + public var Passport_Identity_TypePassport: String { return self._s[387]! } + public var Map_Work: String { return self._s[390]! } public func PUSH_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[388]!, self._r[388]!, [_1, _2]) + return formatWithArgumentRanges(self._s[391]!, self._r[391]!, [_1, _2]) } - public var SocksProxySetup_SaveProxy: String { return self._s[389]! } - public var AccessDenied_SaveMedia: String { return self._s[390]! } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[392]! } - public var CreatePoll_MultipleChoice: String { return self._s[393]! } - public var Settings_Title: String { return self._s[395]! } - public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[396]! } - public var Contacts_InviteSearchLabel: String { return self._s[398]! } - public var PrivacySettings_WebSessions: String { return self._s[399]! } - public var ConvertToSupergroup_Title: String { return self._s[400]! } + public var SocksProxySetup_SaveProxy: String { return self._s[392]! } + public var AccessDenied_SaveMedia: String { return self._s[393]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[395]! } + public var CreatePoll_MultipleChoice: String { return self._s[396]! } + public var Settings_Title: String { return self._s[398]! } + public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[399]! } + public var Contacts_InviteSearchLabel: String { return self._s[401]! } + public var PrivacySettings_WebSessions: String { return self._s[402]! } + public var ConvertToSupergroup_Title: String { return self._s[403]! } public func Channel_AdminLog_CaptionEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[401]!, self._r[401]!, [_0]) + return formatWithArgumentRanges(self._s[404]!, self._r[404]!, [_0]) } - public var TwoFactorSetup_Hint_Text: String { return self._s[402]! } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[403]! } + public var TwoFactorSetup_Hint_Text: String { return self._s[405]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[406]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[404]!, self._r[404]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[407]!, self._r[407]!, [_1, _2, _3]) } - public var ChatSettings_AutomaticPhotoDownload: String { return self._s[405]! } - public var UserInfo_BotHelp: String { return self._s[406]! } - public var PrivacySettings_LastSeenEverybody: String { return self._s[407]! } - public var Checkout_Name: String { return self._s[408]! } - public var AutoDownloadSettings_DataUsage: String { return self._s[409]! } - public var Channel_BanUser_BlockFor: String { return self._s[410]! } - public var Checkout_ShippingAddress: String { return self._s[411]! } - public var AutoDownloadSettings_MaxVideoSize: String { return self._s[412]! } - public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[413]! } - public var Privacy_Forwards: String { return self._s[414]! } - public var Channel_BanUser_PermissionSendPolls: String { return self._s[415]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[416]! } + public var ChatSettings_AutomaticPhotoDownload: String { return self._s[408]! } + public var UserInfo_BotHelp: String { return self._s[409]! } + public var PrivacySettings_LastSeenEverybody: String { return self._s[410]! } + public var Checkout_Name: String { return self._s[411]! } + public var AutoDownloadSettings_DataUsage: String { return self._s[412]! } + public var Channel_BanUser_BlockFor: String { return self._s[413]! } + public var Checkout_ShippingAddress: String { return self._s[414]! } + public var AutoDownloadSettings_MaxVideoSize: String { return self._s[415]! } + public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[416]! } + public var Privacy_Forwards: String { return self._s[417]! } + public var Channel_BanUser_PermissionSendPolls: String { return self._s[418]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[419]! } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[419]!, self._r[419]!, [_0]) + return formatWithArgumentRanges(self._s[422]!, self._r[422]!, [_0]) } - public var Contacts_SortedByName: String { return self._s[420]! } - public var Group_OwnershipTransfer_Title: String { return self._s[421]! } - public var VoiceOver_Chat_OpenHint: String { return self._s[423]! } - public var Group_LeaveGroup: String { return self._s[424]! } - public var Settings_UsernameEmpty: String { return self._s[425]! } + public var Contacts_SortedByName: String { return self._s[423]! } + public var Group_OwnershipTransfer_Title: String { return self._s[424]! } + public var VoiceOver_Chat_OpenHint: String { return self._s[426]! } + public var Group_LeaveGroup: String { return self._s[427]! } + public var Settings_UsernameEmpty: String { return self._s[428]! } public func Notification_PinnedPollMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[426]!, self._r[426]!, [_0]) + return formatWithArgumentRanges(self._s[429]!, self._r[429]!, [_0]) } public func TwoStepAuth_ConfirmEmailDescription(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[427]!, self._r[427]!, [_1]) + return formatWithArgumentRanges(self._s[430]!, self._r[430]!, [_1]) } public func Channel_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[428]!, self._r[428]!, [_1, _2]) + return formatWithArgumentRanges(self._s[431]!, self._r[431]!, [_1, _2]) } - public var Message_ImageExpired: String { return self._s[429]! } - public var TwoStepAuth_RecoveryFailed: String { return self._s[431]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[432]! } - public var UserInfo_AddToExisting: String { return self._s[433]! } - public var TwoStepAuth_EnabledSuccess: String { return self._s[434]! } - public var Wallet_Send_SyncInProgress: String { return self._s[435]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[436]! } + public var Message_ImageExpired: String { return self._s[432]! } + public var TwoStepAuth_RecoveryFailed: String { return self._s[434]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[435]! } + public var UserInfo_AddToExisting: String { return self._s[436]! } + public var TwoStepAuth_EnabledSuccess: String { return self._s[437]! } + public var Wallet_Send_SyncInProgress: String { return self._s[438]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[439]! } public func PUSH_CHANNEL_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[437]!, self._r[437]!, [_1]) + return formatWithArgumentRanges(self._s[440]!, self._r[440]!, [_1]) } - public var Notifications_GroupNotificationsAlert: String { return self._s[438]! } - public var Passport_Language_km: String { return self._s[439]! } - public var SocksProxySetup_AdNoticeHelp: String { return self._s[441]! } - public var VoiceOver_Media_PlaybackPlay: String { return self._s[442]! } - public var Notification_CallMissedShort: String { return self._s[443]! } - public var Wallet_Info_YourBalance: String { return self._s[444]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[445]! } - public var Watch_Compose_Send: String { return self._s[446]! } - public var Passport_Identity_TypeInternalPassportUploadScan: String { return self._s[449]! } - public var TwoFactorSetup_Email_Action: String { return self._s[450]! } - public var Conversation_HoldForVideo: String { return self._s[451]! } - public var Wallet_Configuration_ApplyErrorTextURLInvalidData: String { return self._s[452]! } - public var AuthSessions_OtherDevices: String { return self._s[453]! } - public var Wallet_TransactionInfo_CommentHeader: String { return self._s[454]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[456]! } - public var Appearance_AutoNightThemeDisabled: String { return self._s[458]! } - public var Channel_LinkItem: String { return self._s[459]! } + public var Notifications_GroupNotificationsAlert: String { return self._s[441]! } + public var Passport_Language_km: String { return self._s[442]! } + public var SocksProxySetup_AdNoticeHelp: String { return self._s[444]! } + public var VoiceOver_Media_PlaybackPlay: String { return self._s[445]! } + public var Notification_CallMissedShort: String { return self._s[446]! } + public var Wallet_Info_YourBalance: String { return self._s[447]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[448]! } + public var Watch_Compose_Send: String { return self._s[449]! } + public var Passport_Identity_TypeInternalPassportUploadScan: String { return self._s[452]! } + public var TwoFactorSetup_Email_Action: String { return self._s[453]! } + public var Conversation_HoldForVideo: String { return self._s[454]! } + public var Wallet_Configuration_ApplyErrorTextURLInvalidData: String { return self._s[455]! } + public var AuthSessions_OtherDevices: String { return self._s[456]! } + public var Wallet_TransactionInfo_CommentHeader: String { return self._s[457]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[459]! } + public var Appearance_AutoNightThemeDisabled: String { return self._s[461]! } + public var Channel_LinkItem: String { return self._s[462]! } public func PrivacySettings_LastSeenContactsMinusPlus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[460]!, self._r[460]!, [_0, _1]) + return formatWithArgumentRanges(self._s[463]!, self._r[463]!, [_0, _1]) } public func Passport_Identity_NativeNameTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[463]!, self._r[463]!, [_0]) + return formatWithArgumentRanges(self._s[466]!, self._r[466]!, [_0]) } - public var VoiceOver_Recording_StopAndPreview: String { return self._s[464]! } - public var Passport_Language_dv: String { return self._s[465]! } - public var Undo_LeftChannel: String { return self._s[466]! } - public var Notifications_ExceptionsMuted: String { return self._s[467]! } - public var ChatList_UnhideAction: String { return self._s[468]! } - public var Conversation_ContextMenuShare: String { return self._s[469]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[470]! } - public var ShareFileTip_Title: String { return self._s[471]! } - public var NotificationsSound_Chord: String { return self._s[472]! } - public var Wallet_TransactionInfo_OtherFeeHeader: String { return self._s[473]! } + public var VoiceOver_Recording_StopAndPreview: String { return self._s[467]! } + public var Passport_Language_dv: String { return self._s[468]! } + public var Undo_LeftChannel: String { return self._s[469]! } + public var Notifications_ExceptionsMuted: String { return self._s[470]! } + public var ChatList_UnhideAction: String { return self._s[471]! } + public var Conversation_ContextMenuShare: String { return self._s[472]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[473]! } + public var ShareFileTip_Title: String { return self._s[474]! } + public var NotificationsSound_Chord: String { return self._s[475]! } + public var Wallet_TransactionInfo_OtherFeeHeader: String { return self._s[476]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[474]!, self._r[474]!, [_1, _2]) + return formatWithArgumentRanges(self._s[477]!, self._r[477]!, [_1, _2]) } - public var Passport_Address_EditTemporaryRegistration: String { return self._s[475]! } + public var Passport_Address_EditTemporaryRegistration: String { return self._s[478]! } public func Notification_Joined(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[476]!, self._r[476]!, [_0]) + return formatWithArgumentRanges(self._s[479]!, self._r[479]!, [_0]) } public func Wallet_Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[477]!, self._r[477]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[480]!, self._r[480]!, [_1, _2, _3]) } - public var Wallet_Settings_ConfigurationInfo: String { return self._s[478]! } - public var Wallpaper_ErrorNotFound: String { return self._s[479]! } - public var Notification_CallOutgoingShort: String { return self._s[481]! } - public var Wallet_WordImport_IncorrectText: String { return self._s[482]! } + public var Wallet_Settings_ConfigurationInfo: String { return self._s[481]! } + public var Wallpaper_ErrorNotFound: String { return self._s[482]! } + public var Notification_CallOutgoingShort: String { return self._s[484]! } + public var Wallet_WordImport_IncorrectText: String { return self._s[485]! } public func Watch_Time_ShortFullAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[483]!, self._r[483]!, [_1, _2]) + return formatWithArgumentRanges(self._s[486]!, self._r[486]!, [_1, _2]) } - public var Passport_Address_TypeUtilityBill: String { return self._s[484]! } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[485]! } - public var ReportPeer_Report: String { return self._s[486]! } - public var SettingsSearch_Synonyms_Proxy_Title: String { return self._s[487]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[488]! } + public var Passport_Address_TypeUtilityBill: String { return self._s[487]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[488]! } + public var ReportPeer_Report: String { return self._s[489]! } + public var SettingsSearch_Synonyms_Proxy_Title: String { return self._s[490]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[491]! } public func VoiceOver_Chat_MusicTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[489]!, self._r[489]!, [_1, _2]) + return formatWithArgumentRanges(self._s[492]!, self._r[492]!, [_1, _2]) } - public var StickerPack_Send: String { return self._s[490]! } - public var Login_CodeSentInternal: String { return self._s[491]! } - public var Wallet_Month_GenJanuary: String { return self._s[492]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[493]! } + public var StickerPack_Send: String { return self._s[493]! } + public var Login_CodeSentInternal: String { return self._s[494]! } + public var Wallet_Month_GenJanuary: String { return self._s[495]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[496]! } public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[494]!, self._r[494]!, [_0]) + return formatWithArgumentRanges(self._s[497]!, self._r[497]!, [_0]) } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[496]!, self._r[496]!, [_0]) + return formatWithArgumentRanges(self._s[499]!, self._r[499]!, [_0]) } - public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[497]! } + public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[500]! } public func PUSH_PINNED_GAME(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[498]!, self._r[498]!, [_1]) + return formatWithArgumentRanges(self._s[501]!, self._r[501]!, [_1]) } - public var ReportPeer_ReasonViolence: String { return self._s[500]! } - public var Appearance_ShareThemeColor: String { return self._s[501]! } - public var Map_Locating: String { return self._s[502]! } + public var ReportPeer_ReasonViolence: String { return self._s[503]! } + public var Appearance_ShareThemeColor: String { return self._s[504]! } + public var Map_Locating: String { return self._s[505]! } public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[503]!, self._r[503]!, [_0]) + return formatWithArgumentRanges(self._s[506]!, self._r[506]!, [_0]) } public func PUSH_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[504]!, self._r[504]!, [_1]) + return formatWithArgumentRanges(self._s[507]!, self._r[507]!, [_1]) } - public var AutoDownloadSettings_GroupChats: String { return self._s[506]! } - public var CheckoutInfo_SaveInfo: String { return self._s[507]! } - public var SharedMedia_EmptyLinksText: String { return self._s[509]! } - public var Passport_Address_CityPlaceholder: String { return self._s[510]! } - public var CheckoutInfo_ErrorStateInvalid: String { return self._s[511]! } - public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[512]! } - public var Wallet_Send_OwnAddressAlertTitle: String { return self._s[514]! } - public var Channel_AdminLog_CanAddAdmins: String { return self._s[515]! } + public var AutoDownloadSettings_GroupChats: String { return self._s[509]! } + public var CheckoutInfo_SaveInfo: String { return self._s[510]! } + public var SharedMedia_EmptyLinksText: String { return self._s[512]! } + public var Passport_Address_CityPlaceholder: String { return self._s[513]! } + public var CheckoutInfo_ErrorStateInvalid: String { return self._s[514]! } + public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[515]! } + public var Wallet_Send_OwnAddressAlertTitle: String { return self._s[517]! } + public var Channel_AdminLog_CanAddAdmins: String { return self._s[518]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[516]!, self._r[516]!, [_1]) + return formatWithArgumentRanges(self._s[519]!, self._r[519]!, [_1]) } public func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[517]!, self._r[517]!, [_0]) + return formatWithArgumentRanges(self._s[520]!, self._r[520]!, [_0]) } - public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[518]! } - public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[519]! } - public var ChangePhoneNumberCode_Code: String { return self._s[520]! } - public var Appearance_CreateTheme: String { return self._s[521]! } + public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[521]! } + public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[522]! } + public var ChangePhoneNumberCode_Code: String { return self._s[523]! } + public var Appearance_CreateTheme: String { return self._s[524]! } public func UserInfo_NotificationsDefaultSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[522]!, self._r[522]!, [_0]) + return formatWithArgumentRanges(self._s[525]!, self._r[525]!, [_0]) } - public var TwoStepAuth_SetupEmail: String { return self._s[523]! } - public var HashtagSearch_AllChats: String { return self._s[524]! } - public var MediaPlayer_UnknownTrack: String { return self._s[525]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[527]! } + public var TwoStepAuth_SetupEmail: String { return self._s[526]! } + public var HashtagSearch_AllChats: String { return self._s[527]! } + public var MediaPlayer_UnknownTrack: String { return self._s[528]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[530]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[528]!, self._r[528]!, [_0]) - } - public var PhotoEditor_QualityHigh: String { return self._s[530]! } - public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[531]!, self._r[531]!, [_0]) } - public var ApplyLanguage_ApplyLanguageAction: String { return self._s[532]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[533]! } - public var Message_LiveLocation: String { return self._s[534]! } - public var Cache_LowDiskSpaceText: String { return self._s[535]! } - public var Wallet_Receive_ShareAddress: String { return self._s[536]! } - public var EditTheme_ErrorLinkTaken: String { return self._s[537]! } - public var Conversation_SendMessage: String { return self._s[538]! } - public var AuthSessions_EmptyTitle: String { return self._s[539]! } - public var Privacy_PhoneNumber: String { return self._s[540]! } - public var PeopleNearby_CreateGroup: String { return self._s[541]! } - public var CallSettings_UseLessData: String { return self._s[542]! } - public var NetworkUsageSettings_MediaDocumentDataSection: String { return self._s[543]! } - public var Stickers_AddToFavorites: String { return self._s[544]! } - public var Wallet_WordImport_Title: String { return self._s[545]! } - public var PhotoEditor_QualityLow: String { return self._s[546]! } - public var Watch_UserInfo_Unblock: String { return self._s[547]! } - public var Settings_Logout: String { return self._s[548]! } + public var PhotoEditor_QualityHigh: String { return self._s[533]! } + public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[534]!, self._r[534]!, [_0]) + } + public var ApplyLanguage_ApplyLanguageAction: String { return self._s[535]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[536]! } + public var Message_LiveLocation: String { return self._s[537]! } + public var Cache_LowDiskSpaceText: String { return self._s[538]! } + public var Wallet_Receive_ShareAddress: String { return self._s[539]! } + public var EditTheme_ErrorLinkTaken: String { return self._s[540]! } + public var Conversation_SendMessage: String { return self._s[541]! } + public var AuthSessions_EmptyTitle: String { return self._s[542]! } + public var Privacy_PhoneNumber: String { return self._s[543]! } + public var PeopleNearby_CreateGroup: String { return self._s[544]! } + public var CallSettings_UseLessData: String { return self._s[545]! } + public var NetworkUsageSettings_MediaDocumentDataSection: String { return self._s[546]! } + public var Stickers_AddToFavorites: String { return self._s[547]! } + public var Wallet_WordImport_Title: String { return self._s[548]! } + public var PhotoEditor_QualityLow: String { return self._s[549]! } + public var Watch_UserInfo_Unblock: String { return self._s[550]! } + public var Settings_Logout: String { return self._s[551]! } public func PUSH_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[549]!, self._r[549]!, [_1]) + return formatWithArgumentRanges(self._s[552]!, self._r[552]!, [_1]) } - public var ContactInfo_PhoneLabelWork: String { return self._s[550]! } - public var ChannelInfo_Stats: String { return self._s[551]! } - public var TextFormat_Link: String { return self._s[552]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[553]! } + public var ChannelInfo_Stats: String { return self._s[554]! } + public var TextFormat_Link: String { return self._s[555]! } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[553]!, self._r[553]!, [_1, _2]) + return formatWithArgumentRanges(self._s[556]!, self._r[556]!, [_1, _2]) } - public var Wallet_TransactionInfo_Title: String { return self._s[554]! } + public var Wallet_TransactionInfo_Title: String { return self._s[557]! } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[555]!, self._r[555]!, [_0]) + return formatWithArgumentRanges(self._s[558]!, self._r[558]!, [_0]) } - public var Watch_Notification_Joined: String { return self._s[556]! } - public var Group_Setup_TypePublicHelp: String { return self._s[557]! } - public var Passport_Scans_UploadNew: String { return self._s[558]! } - public var Checkout_LiabilityAlertTitle: String { return self._s[559]! } - public var DialogList_Title: String { return self._s[562]! } - public var NotificationSettings_ContactJoined: String { return self._s[563]! } - public var GroupInfo_LabelAdmin: String { return self._s[564]! } - public var KeyCommand_ChatInfo: String { return self._s[565]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[566]! } - public var Call_ReportIncludeLog: String { return self._s[567]! } + public var Watch_Notification_Joined: String { return self._s[559]! } + public var Group_Setup_TypePublicHelp: String { return self._s[560]! } + public var Passport_Scans_UploadNew: String { return self._s[561]! } + public var Checkout_LiabilityAlertTitle: String { return self._s[562]! } + public var DialogList_Title: String { return self._s[565]! } + public var NotificationSettings_ContactJoined: String { return self._s[566]! } + public var GroupInfo_LabelAdmin: String { return self._s[567]! } + public var KeyCommand_ChatInfo: String { return self._s[568]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[569]! } + public var Call_ReportIncludeLog: String { return self._s[570]! } public func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[570]!, self._r[570]!, [_0]) + return formatWithArgumentRanges(self._s[573]!, self._r[573]!, [_0]) } - public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[571]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[572]! } - public var LocalGroup_IrrelevantWarning: String { return self._s[573]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[574]! } - public var Message_Sticker: String { return self._s[575]! } - public var LastSeen_JustNow: String { return self._s[577]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[579]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[580]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[581]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[582]! } - public var TwoStepAuth_Email: String { return self._s[583]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsSound: String { return self._s[584]! } - public var PhotoEditor_BlurToolOff: String { return self._s[585]! } - public var Message_PinnedStickerMessage: String { return self._s[586]! } - public var ContactInfo_PhoneLabelPager: String { return self._s[587]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[588]! } - public var Passport_DiscardMessageTitle: String { return self._s[589]! } - public var Privacy_PaymentsTitle: String { return self._s[590]! } - public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[591]! } - public var ClearCache_StorageCache: String { return self._s[592]! } - public var Appearance_TextSizeSetting: String { return self._s[593]! } - public var Channel_DiscussionGroup_Header: String { return self._s[595]! } - public var VoiceOver_Chat_OptionSelected: String { return self._s[596]! } - public var Appearance_ColorTheme: String { return self._s[597]! } - public var UserInfo_ShareContact: String { return self._s[598]! } - public var Passport_Address_TypePassportRegistration: String { return self._s[599]! } - public var Common_More: String { return self._s[600]! } - public var Watch_Message_Call: String { return self._s[601]! } - public var Profile_EncryptionKey: String { return self._s[604]! } - public var Privacy_TopPeers: String { return self._s[605]! } - public var Conversation_StopPollConfirmation: String { return self._s[606]! } - public var Wallet_Words_NotDoneText: String { return self._s[608]! } - public var Privacy_TopPeersWarning: String { return self._s[610]! } - public var SettingsSearch_Synonyms_Data_DownloadInBackground: String { return self._s[611]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[612]! } - public var Wallet_RestoreFailed_EnterWords: String { return self._s[615]! } - public var DialogList_SearchSectionMessages: String { return self._s[616]! } - public var Notifications_ChannelNotifications: String { return self._s[617]! } - public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[618]! } - public var Passport_Language_sk: String { return self._s[619]! } - public var Notification_MessageLifetime1h: String { return self._s[620]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[621]! } - public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[622]! } - public var Call_ReportSkip: String { return self._s[624]! } - public var Cache_ServiceFiles: String { return self._s[625]! } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[626]! } - public var VoiceOver_Chat_YourFile: String { return self._s[627]! } - public var Map_Hybrid: String { return self._s[628]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[630]! } - public var ChatSettings_AutoDownloadVideos: String { return self._s[632]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[633]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[634]! } - public var SocksProxySetup_ProxyTelegram: String { return self._s[637]! } + public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[574]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[575]! } + public var LocalGroup_IrrelevantWarning: String { return self._s[576]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[577]! } + public var Message_Sticker: String { return self._s[578]! } + public var LastSeen_JustNow: String { return self._s[580]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[582]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[583]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[584]! } + public var Channel_EditAdmin_PermissionsHeader: String { return self._s[585]! } + public var TwoStepAuth_Email: String { return self._s[586]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsSound: String { return self._s[587]! } + public var PhotoEditor_BlurToolOff: String { return self._s[588]! } + public var Message_PinnedStickerMessage: String { return self._s[589]! } + public var ContactInfo_PhoneLabelPager: String { return self._s[590]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[591]! } + public var Passport_DiscardMessageTitle: String { return self._s[592]! } + public var Privacy_PaymentsTitle: String { return self._s[593]! } + public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[594]! } + public var ClearCache_StorageCache: String { return self._s[595]! } + public var Appearance_TextSizeSetting: String { return self._s[596]! } + public var Channel_DiscussionGroup_Header: String { return self._s[598]! } + public var VoiceOver_Chat_OptionSelected: String { return self._s[599]! } + public var Appearance_ColorTheme: String { return self._s[600]! } + public var UserInfo_ShareContact: String { return self._s[601]! } + public var Passport_Address_TypePassportRegistration: String { return self._s[602]! } + public var Common_More: String { return self._s[603]! } + public var Watch_Message_Call: String { return self._s[604]! } + public var Profile_EncryptionKey: String { return self._s[607]! } + public var Privacy_TopPeers: String { return self._s[608]! } + public var Conversation_StopPollConfirmation: String { return self._s[609]! } + public var Wallet_Words_NotDoneText: String { return self._s[611]! } + public var Privacy_TopPeersWarning: String { return self._s[613]! } + public var SettingsSearch_Synonyms_Data_DownloadInBackground: String { return self._s[614]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[615]! } + public var Wallet_RestoreFailed_EnterWords: String { return self._s[618]! } + public var DialogList_SearchSectionMessages: String { return self._s[619]! } + public var Notifications_ChannelNotifications: String { return self._s[620]! } + public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[621]! } + public var Passport_Language_sk: String { return self._s[622]! } + public var Notification_MessageLifetime1h: String { return self._s[623]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[624]! } + public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[625]! } + public var Call_ReportSkip: String { return self._s[627]! } + public var Cache_ServiceFiles: String { return self._s[628]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[629]! } + public var VoiceOver_Chat_YourFile: String { return self._s[630]! } + public var Map_Hybrid: String { return self._s[631]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[633]! } + public var ChatSettings_AutoDownloadVideos: String { return self._s[635]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[636]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[637]! } + public var SocksProxySetup_ProxyTelegram: String { return self._s[640]! } public func PUSH_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[638]!, self._r[638]!, [_1]) + return formatWithArgumentRanges(self._s[641]!, self._r[641]!, [_1]) } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[640]! } - public var ScheduledMessages_ScheduledToday: String { return self._s[641]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[643]! } + public var ScheduledMessages_ScheduledToday: String { return self._s[644]! } public func PUSH_CHAT_TITLE_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[642]!, self._r[642]!, [_1, _2]) + return formatWithArgumentRanges(self._s[645]!, self._r[645]!, [_1, _2]) } - public var Conversation_LiveLocationYou: String { return self._s[643]! } - public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[644]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[645]! } - public var UserInfo_ShareBot: String { return self._s[648]! } + public var Conversation_LiveLocationYou: String { return self._s[646]! } + public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[647]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[648]! } + public var UserInfo_ShareBot: String { return self._s[651]! } public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[649]!, self._r[649]!, [_1, _2]) + return formatWithArgumentRanges(self._s[652]!, self._r[652]!, [_1, _2]) } - public var Conversation_ClearCache: String { return self._s[650]! } - public var PhotoEditor_ShadowsTint: String { return self._s[651]! } - public var Message_Audio: String { return self._s[652]! } - public var Passport_Language_lt: String { return self._s[653]! } + public var Conversation_ClearCache: String { return self._s[653]! } + public var PhotoEditor_ShadowsTint: String { return self._s[654]! } + public var Message_Audio: String { return self._s[655]! } + public var Passport_Language_lt: String { return self._s[656]! } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[654]!, self._r[654]!, [_0]) + return formatWithArgumentRanges(self._s[657]!, self._r[657]!, [_0]) } - public var Permissions_SiriText_v0: String { return self._s[655]! } - public var Conversation_FileICloudDrive: String { return self._s[656]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[657]! } - public var Notifications_Badge_IncludeMutedChats: String { return self._s[658]! } + public var Permissions_SiriText_v0: String { return self._s[658]! } + public var Conversation_FileICloudDrive: String { return self._s[659]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[660]! } + public var Notifications_Badge_IncludeMutedChats: String { return self._s[661]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[659]!, self._r[659]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[662]!, self._r[662]!, [_1, _2, _3, _4, _5, _6]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[660]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[663]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[661]!, self._r[661]!, [_0]) + return formatWithArgumentRanges(self._s[664]!, self._r[664]!, [_0]) } - public var Channel_SignMessages: String { return self._s[662]! } + public var Channel_SignMessages: String { return self._s[665]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[663]!, self._r[663]!, [_1]) + return formatWithArgumentRanges(self._s[666]!, self._r[666]!, [_1]) } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[664]! } - public var Passport_ScanPassport: String { return self._s[665]! } - public var Watch_Suggestion_Thanks: String { return self._s[666]! } - public var BlockedUsers_AddNew: String { return self._s[667]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[667]! } + public var Passport_ScanPassport: String { return self._s[668]! } + public var Watch_Suggestion_Thanks: String { return self._s[669]! } + public var BlockedUsers_AddNew: String { return self._s[670]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[668]!, self._r[668]!, [_1, _2]) + return formatWithArgumentRanges(self._s[671]!, self._r[671]!, [_1, _2]) } - public var Watch_Message_Invoice: String { return self._s[669]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[670]! } - public var Month_GenJuly: String { return self._s[671]! } - public var CreatePoll_QuizInfo: String { return self._s[672]! } - public var UserInfo_StartSecretChatStart: String { return self._s[673]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[674]! } - public var IntentsSettings_SuggestByShare: String { return self._s[676]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[677]! } - public var Notification_ChannelInviterSelf: String { return self._s[678]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[679]! } + public var Watch_Message_Invoice: String { return self._s[672]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[673]! } + public var Month_GenJuly: String { return self._s[674]! } + public var CreatePoll_QuizInfo: String { return self._s[675]! } + public var UserInfo_StartSecretChatStart: String { return self._s[676]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[677]! } + public var IntentsSettings_SuggestByShare: String { return self._s[679]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[680]! } + public var Notification_ChannelInviterSelf: String { return self._s[681]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[682]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[680]!, self._r[680]!, [_1, _2]) + return formatWithArgumentRanges(self._s[683]!, self._r[683]!, [_1, _2]) } - public var CheckoutInfo_Title: String { return self._s[681]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[682]! } + public var CheckoutInfo_Title: String { return self._s[684]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[685]! } public func Map_DistanceAway(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[683]!, self._r[683]!, [_0]) + return formatWithArgumentRanges(self._s[686]!, self._r[686]!, [_0]) } - public var Passport_Identity_MainPage: String { return self._s[684]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[685]! } - public var Passport_Language_de: String { return self._s[686]! } - public var Update_Title: String { return self._s[687]! } - public var ContactInfo_PhoneLabelWorkFax: String { return self._s[688]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[689]! } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[690]! } - public var Notifications_ChannelNotificationsPreview: String { return self._s[691]! } - public var NotificationsSound_Telegraph: String { return self._s[692]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[693]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[694]! } + public var Passport_Identity_MainPage: String { return self._s[687]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[688]! } + public var Passport_Language_de: String { return self._s[689]! } + public var Update_Title: String { return self._s[690]! } + public var ContactInfo_PhoneLabelWorkFax: String { return self._s[691]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[692]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[693]! } + public var Notifications_ChannelNotificationsPreview: String { return self._s[694]! } + public var NotificationsSound_Telegraph: String { return self._s[695]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[696]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[697]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[695]!, self._r[695]!, [_0]) + return formatWithArgumentRanges(self._s[698]!, self._r[698]!, [_0]) } - public var ClearCache_Description: String { return self._s[696]! } - public var Stickers_SuggestAll: String { return self._s[697]! } - public var Conversation_ForwardTitle: String { return self._s[698]! } - public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[699]! } + public var ClearCache_Description: String { return self._s[699]! } + public var Stickers_SuggestAll: String { return self._s[700]! } + public var Conversation_ForwardTitle: String { return self._s[701]! } + public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[702]! } public func Notification_JoinedChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[700]!, self._r[700]!, [_0]) + return formatWithArgumentRanges(self._s[703]!, self._r[703]!, [_0]) } - public var Calls_NewCall: String { return self._s[701]! } - public var Call_StatusEnded: String { return self._s[702]! } - public var AutoDownloadSettings_DataUsageLow: String { return self._s[703]! } - public var Settings_ProxyConnected: String { return self._s[704]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[705]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[706]! } - public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[707]! } - public var Passport_PasswordPlaceholder: String { return self._s[708]! } - public var Message_PinnedInvoice: String { return self._s[709]! } - public var Passport_Identity_IssueDate: String { return self._s[710]! } - public var Passport_Language_pl: String { return self._s[711]! } + public var Calls_NewCall: String { return self._s[704]! } + public var Call_StatusEnded: String { return self._s[705]! } + public var AutoDownloadSettings_DataUsageLow: String { return self._s[706]! } + public var Settings_ProxyConnected: String { return self._s[707]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[708]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[709]! } + public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[710]! } + public var Passport_PasswordPlaceholder: String { return self._s[711]! } + public var Message_PinnedInvoice: String { return self._s[712]! } + public var Passport_Identity_IssueDate: String { return self._s[713]! } + public var Passport_Language_pl: String { return self._s[714]! } public func ChannelInfo_ChannelForbidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[712]!, self._r[712]!, [_0]) - } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[713]! } - public var Call_StatusConnecting: String { return self._s[714]! } - public func Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[715]!, self._r[715]!, [_0]) } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[717]! } - public var Common_Edit: String { return self._s[718]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[719]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[716]! } + public var Call_StatusConnecting: String { return self._s[717]! } + public func Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[718]!, self._r[718]!, [_0]) + } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[720]! } + public var Common_Edit: String { return self._s[721]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[722]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[720]!, self._r[720]!, [_0]) + return formatWithArgumentRanges(self._s[723]!, self._r[723]!, [_0]) } - public var GroupInfo_ChatAdmins: String { return self._s[721]! } - public var PrivateDataSettings_Title: String { return self._s[722]! } - public var Login_CancelPhoneVerificationStop: String { return self._s[723]! } - public var ChatList_Read: String { return self._s[724]! } - public var Wallet_WordImport_Text: String { return self._s[725]! } - public var Undo_ChatClearedForBothSides: String { return self._s[726]! } - public var GroupPermission_SectionTitle: String { return self._s[727]! } - public var TwoFactorSetup_Intro_Title: String { return self._s[729]! } + public var GroupInfo_ChatAdmins: String { return self._s[724]! } + public var PrivateDataSettings_Title: String { return self._s[725]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[726]! } + public var ChatList_Read: String { return self._s[727]! } + public var Wallet_WordImport_Text: String { return self._s[728]! } + public var Undo_ChatClearedForBothSides: String { return self._s[729]! } + public var GroupPermission_SectionTitle: String { return self._s[730]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[732]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[730]!, self._r[730]!, [_1, _2]) + return formatWithArgumentRanges(self._s[733]!, self._r[733]!, [_1, _2]) } - public var Checkout_ErrorPaymentFailed: String { return self._s[731]! } - public var Update_UpdateApp: String { return self._s[732]! } - public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[733]! } - public var Settings_Appearance: String { return self._s[734]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[738]! } - public var Watch_Location_Access: String { return self._s[739]! } - public var ShareMenu_CopyShareLink: String { return self._s[741]! } - public var TwoStepAuth_SetupHintTitle: String { return self._s[742]! } - public var Conversation_Theme: String { return self._s[744]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[734]! } + public var Update_UpdateApp: String { return self._s[735]! } + public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[736]! } + public var Settings_Appearance: String { return self._s[737]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[741]! } + public var Watch_Location_Access: String { return self._s[742]! } + public var ShareMenu_CopyShareLink: String { return self._s[744]! } + public var TwoStepAuth_SetupHintTitle: String { return self._s[745]! } + public var Conversation_Theme: String { return self._s[747]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[745]!, self._r[745]!, [_0]) + return formatWithArgumentRanges(self._s[748]!, self._r[748]!, [_0]) } - public var Notifications_ClassicTones: String { return self._s[746]! } - public var Weekday_ShortWednesday: String { return self._s[747]! } - public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[748]! } - public var Undo_LeftGroup: String { return self._s[751]! } - public var Wallet_RestoreFailed_Text: String { return self._s[752]! } - public var Conversation_LinkDialogCopy: String { return self._s[753]! } - public var Wallet_TransactionInfo_NoAddress: String { return self._s[755]! } - public var Wallet_Navigation_Back: String { return self._s[756]! } - public var KeyCommand_FocusOnInputField: String { return self._s[757]! } - public var Contacts_SelectAll: String { return self._s[758]! } - public var Preview_SaveToCameraRoll: String { return self._s[759]! } - public var PrivacySettings_PasscodeOff: String { return self._s[760]! } - public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[761]! } - public var Wallpaper_Title: String { return self._s[762]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[763]! } - public var AccessDenied_Camera: String { return self._s[764]! } - public var Watch_Compose_CurrentLocation: String { return self._s[765]! } - public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[767]! } + public var Notifications_ClassicTones: String { return self._s[749]! } + public var Weekday_ShortWednesday: String { return self._s[750]! } + public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[751]! } + public var Undo_LeftGroup: String { return self._s[754]! } + public var Wallet_RestoreFailed_Text: String { return self._s[755]! } + public var Conversation_LinkDialogCopy: String { return self._s[756]! } + public var Wallet_TransactionInfo_NoAddress: String { return self._s[758]! } + public var Wallet_Navigation_Back: String { return self._s[759]! } + public var KeyCommand_FocusOnInputField: String { return self._s[760]! } + public var Contacts_SelectAll: String { return self._s[761]! } + public var Preview_SaveToCameraRoll: String { return self._s[762]! } + public var PrivacySettings_PasscodeOff: String { return self._s[763]! } + public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[764]! } + public var Wallpaper_Title: String { return self._s[765]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[766]! } + public var AccessDenied_Camera: String { return self._s[767]! } + public var Watch_Compose_CurrentLocation: String { return self._s[768]! } + public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[770]! } public func SecretImage_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[768]!, self._r[768]!, [_0]) + return formatWithArgumentRanges(self._s[771]!, self._r[771]!, [_0]) } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[769]! } - public var Passport_Language_ro: String { return self._s[770]! } - public var EditTheme_UploadNewTheme: String { return self._s[771]! } - public var CheckoutInfo_SaveInfoHelp: String { return self._s[772]! } - public var Wallet_Intro_Terms: String { return self._s[773]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[772]! } + public var Passport_Language_ro: String { return self._s[773]! } + public var EditTheme_UploadNewTheme: String { return self._s[774]! } + public var CheckoutInfo_SaveInfoHelp: String { return self._s[775]! } + public var Wallet_Intro_Terms: String { return self._s[776]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[774]!, self._r[774]!, [_0]) + return formatWithArgumentRanges(self._s[777]!, self._r[777]!, [_0]) } - public var Login_CancelPhoneVerification: String { return self._s[775]! } - public var State_ConnectingToProxy: String { return self._s[776]! } - public var Calls_RatingTitle: String { return self._s[777]! } - public var Generic_ErrorMoreInfo: String { return self._s[778]! } - public var ChatList_Search_ShowMore: String { return self._s[779]! } - public var Appearance_PreviewReplyText: String { return self._s[780]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[781]! } + public var Login_CancelPhoneVerification: String { return self._s[778]! } + public var State_ConnectingToProxy: String { return self._s[779]! } + public var Calls_RatingTitle: String { return self._s[780]! } + public var Generic_ErrorMoreInfo: String { return self._s[781]! } + public var ChatList_Search_ShowMore: String { return self._s[782]! } + public var Appearance_PreviewReplyText: String { return self._s[783]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[784]! } public func Wallet_Send_Balance(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[782]!, self._r[782]!, [_0]) + return formatWithArgumentRanges(self._s[785]!, self._r[785]!, [_0]) } - public var IntentsSettings_SuggestedChatsContacts: String { return self._s[783]! } - public var SharedMedia_CategoryLinks: String { return self._s[784]! } - public var Calls_Missed: String { return self._s[785]! } - public var Cache_Photos: String { return self._s[789]! } - public var GroupPermission_NoAddMembers: String { return self._s[790]! } - public var ScheduledMessages_Title: String { return self._s[791]! } + public var IntentsSettings_SuggestedChatsContacts: String { return self._s[786]! } + public var SharedMedia_CategoryLinks: String { return self._s[787]! } + public var Calls_Missed: String { return self._s[788]! } + public var Cache_Photos: String { return self._s[792]! } + public var GroupPermission_NoAddMembers: String { return self._s[793]! } + public var ScheduledMessages_Title: String { return self._s[794]! } public func Channel_AdminLog_MessageUnpinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[792]!, self._r[792]!, [_0]) + return formatWithArgumentRanges(self._s[795]!, self._r[795]!, [_0]) } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[793]! } - public var Settings_ProxyDisabled: String { return self._s[794]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[796]! } + public var Settings_ProxyDisabled: String { return self._s[797]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[795]!, self._r[795]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[798]!, self._r[798]!, [_1, _2, _3, _4]) } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[796]!, self._r[796]!, [_0]) + return formatWithArgumentRanges(self._s[799]!, self._r[799]!, [_0]) } - public var ChatList_Context_RemoveFromRecents: String { return self._s[798]! } - public var Appearance_Title: String { return self._s[799]! } + public var ChatList_Context_RemoveFromRecents: String { return self._s[801]! } + public var Appearance_Title: String { return self._s[802]! } public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[801]!, self._r[801]!, [_0]) + return formatWithArgumentRanges(self._s[804]!, self._r[804]!, [_0]) } - public var Conversation_WalletRequiredText: String { return self._s[802]! } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[803]! } - public var OldChannels_NoticeCreateText: String { return self._s[804]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[805]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[806]! } - public var Preview_DeletePhoto: String { return self._s[807]! } - public var Appearance_AppIconFilledX: String { return self._s[808]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[809]! } + public var Conversation_WalletRequiredText: String { return self._s[805]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[806]! } + public var OldChannels_NoticeCreateText: String { return self._s[807]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[808]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[809]! } + public var Preview_DeletePhoto: String { return self._s[810]! } + public var Appearance_AppIconFilledX: String { return self._s[811]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[812]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[810]!, self._r[810]!, [_0]) + return formatWithArgumentRanges(self._s[813]!, self._r[813]!, [_0]) } - public var Coub_TapForSound: String { return self._s[812]! } - public var Map_LocatingError: String { return self._s[813]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[815]! } - public var Conversation_SendMessage_SendSilently: String { return self._s[816]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[817]! } + public var Coub_TapForSound: String { return self._s[816]! } + public var Map_LocatingError: String { return self._s[817]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[819]! } + public var Conversation_SendMessage_SendSilently: String { return self._s[820]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[821]! } public func Wallet_Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[818]!, self._r[818]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[822]!, self._r[822]!, [_1, _2, _3]) } - public var Passport_ForgottenPassword: String { return self._s[819]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[820]! } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[821]! } - public var Login_TermsOfServiceSignupDecline: String { return self._s[823]! } - public var Channel_Moderator_AccessLevelRevoke: String { return self._s[824]! } - public var Message_Location: String { return self._s[825]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[826]! } - public var Channel_Management_Title: String { return self._s[827]! } - public var DialogList_SearchSectionDialogs: String { return self._s[829]! } - public var Compose_NewChannel_Members: String { return self._s[830]! } + public var Passport_ForgottenPassword: String { return self._s[823]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[824]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[825]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[827]! } + public var Channel_Moderator_AccessLevelRevoke: String { return self._s[828]! } + public var Message_Location: String { return self._s[829]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[830]! } + public var Channel_Management_Title: String { return self._s[831]! } + public var DialogList_SearchSectionDialogs: String { return self._s[833]! } + public var Compose_NewChannel_Members: String { return self._s[834]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[831]!, self._r[831]!, [_0]) + return formatWithArgumentRanges(self._s[835]!, self._r[835]!, [_0]) } - public var GroupInfo_Location: String { return self._s[832]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[833]! } - public var ClearCache_Clear: String { return self._s[834]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[835]! } - public var PhotoEditor_WarmthTool: String { return self._s[836]! } - public var Passport_Language_tr: String { return self._s[837]! } + public var GroupInfo_Location: String { return self._s[836]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[837]! } + public var ClearCache_Clear: String { return self._s[838]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[839]! } + public var PhotoEditor_WarmthTool: String { return self._s[840]! } + public var Passport_Language_tr: String { return self._s[841]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[838]!, self._r[838]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[842]!, self._r[842]!, [_1, _2, _3]) } - public var OldChannels_NoticeUpgradeText: String { return self._s[839]! } - public var Login_ResetAccountProtected_Reset: String { return self._s[841]! } - public var Watch_PhotoView_Title: String { return self._s[842]! } - public var Passport_Phone_Delete: String { return self._s[843]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[844]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[845]! } - public var GroupInfo_Permissions: String { return self._s[846]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[847]! } - public var Profile_ShareContactButton: String { return self._s[848]! } - public var ChatSettings_Other: String { return self._s[849]! } - public var UserInfo_NotificationsDisabled: String { return self._s[850]! } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[851]! } - public var LastSeen_WithinAMonth: String { return self._s[852]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[853]! } - public var Conversation_ReportGroupLocation: String { return self._s[854]! } - public var Conversation_EncryptionCanceled: String { return self._s[855]! } - public var MediaPicker_GroupDescription: String { return self._s[856]! } - public var WebSearch_Images: String { return self._s[857]! } + public var OldChannels_NoticeUpgradeText: String { return self._s[843]! } + public var Login_ResetAccountProtected_Reset: String { return self._s[845]! } + public var Watch_PhotoView_Title: String { return self._s[846]! } + public var Passport_Phone_Delete: String { return self._s[847]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[848]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[849]! } + public var GroupInfo_Permissions: String { return self._s[850]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[851]! } + public var Profile_ShareContactButton: String { return self._s[852]! } + public var ChatSettings_Other: String { return self._s[853]! } + public var UserInfo_NotificationsDisabled: String { return self._s[854]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[855]! } + public var LastSeen_WithinAMonth: String { return self._s[856]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[857]! } + public var Conversation_ReportGroupLocation: String { return self._s[858]! } + public var Conversation_EncryptionCanceled: String { return self._s[859]! } + public var MediaPicker_GroupDescription: String { return self._s[860]! } + public var WebSearch_Images: String { return self._s[861]! } public func Channel_Management_PromotedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[858]!, self._r[858]!, [_0]) + return formatWithArgumentRanges(self._s[862]!, self._r[862]!, [_0]) } - public var Message_Photo: String { return self._s[859]! } - public var PasscodeSettings_HelpBottom: String { return self._s[860]! } - public var AutoDownloadSettings_VideosTitle: String { return self._s[861]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[862]! } - public var Passport_Identity_AddDriversLicense: String { return self._s[863]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[864]! } - public var NotificationsSound_Calypso: String { return self._s[865]! } - public var Map_Map: String { return self._s[866]! } - public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[868]! } - public var ChatSettings_TextSizeUnits: String { return self._s[869]! } + public var Message_Photo: String { return self._s[863]! } + public var PasscodeSettings_HelpBottom: String { return self._s[864]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[865]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[866]! } + public var Passport_Identity_AddDriversLicense: String { return self._s[867]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[868]! } + public var NotificationsSound_Calypso: String { return self._s[869]! } + public var Map_Map: String { return self._s[870]! } + public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[872]! } + public var ChatSettings_TextSizeUnits: String { return self._s[873]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[870]!, self._r[870]!, [_0]) + return formatWithArgumentRanges(self._s[874]!, self._r[874]!, [_0]) } - public var Common_of: String { return self._s[871]! } - public var Conversation_ForwardContacts: String { return self._s[874]! } - public var IntentsSettings_SuggestByAll: String { return self._s[876]! } + public var Common_of: String { return self._s[875]! } + public var Conversation_ForwardContacts: String { return self._s[878]! } + public var IntentsSettings_SuggestByAll: String { return self._s[880]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[877]!, self._r[877]!, [_0]) + return formatWithArgumentRanges(self._s[881]!, self._r[881]!, [_0]) } - public var Passport_Language_hy: String { return self._s[878]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[879]! } - public var AutoDownloadSettings_Reset: String { return self._s[880]! } - public var Wallet_TransactionInfo_AddressCopied: String { return self._s[881]! } - public var Paint_ClearConfirm: String { return self._s[882]! } - public var Camera_VideoMode: String { return self._s[883]! } + public var Passport_Language_hy: String { return self._s[882]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[883]! } + public var AutoDownloadSettings_Reset: String { return self._s[884]! } + public var Wallet_TransactionInfo_AddressCopied: String { return self._s[885]! } + public var Paint_ClearConfirm: String { return self._s[886]! } + public var Camera_VideoMode: String { return self._s[887]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[884]!, self._r[884]!, [_0]) + return formatWithArgumentRanges(self._s[888]!, self._r[888]!, [_0]) } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[885]! } - public var Conversation_ViewBackground: String { return self._s[886]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[889]! } + public var Conversation_ViewBackground: String { return self._s[890]! } public func Wallet_Info_TransactionDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[887]!, self._r[887]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[891]!, self._r[891]!, [_1, _2, _3]) } - public var Passport_Language_el: String { return self._s[888]! } - public var PhotoEditor_Original: String { return self._s[889]! } - public var Settings_FAQ_Button: String { return self._s[891]! } - public var Channel_Setup_PublicNoLink: String { return self._s[893]! } - public var Conversation_UnsupportedMedia: String { return self._s[894]! } - public var Conversation_SlideToCancel: String { return self._s[895]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[896]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[897]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[898]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[899]! } - public var AutoNightTheme_NotAvailable: String { return self._s[900]! } - public var Conversation_Owner: String { return self._s[901]! } - public var Common_Create: String { return self._s[902]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[903]! } - public var ContactList_Context_Call: String { return self._s[904]! } - public var Localization_ChooseLanguage: String { return self._s[906]! } - public var ChatList_Context_AddToContacts: String { return self._s[908]! } - public var OldChannels_NoticeTitle: String { return self._s[909]! } - public var Settings_Proxy: String { return self._s[911]! } - public var Privacy_TopPeersHelp: String { return self._s[912]! } - public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[913]! } - public var Chat_UnsendMyMessages: String { return self._s[914]! } + public var Passport_Language_el: String { return self._s[892]! } + public var PhotoEditor_Original: String { return self._s[893]! } + public var Settings_FAQ_Button: String { return self._s[895]! } + public var Channel_Setup_PublicNoLink: String { return self._s[897]! } + public var Conversation_UnsupportedMedia: String { return self._s[898]! } + public var Conversation_SlideToCancel: String { return self._s[899]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[900]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[901]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[902]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[903]! } + public var AutoNightTheme_NotAvailable: String { return self._s[904]! } + public var Conversation_Owner: String { return self._s[905]! } + public var Common_Create: String { return self._s[906]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[907]! } + public var ContactList_Context_Call: String { return self._s[908]! } + public var Localization_ChooseLanguage: String { return self._s[910]! } + public var ChatList_Context_AddToContacts: String { return self._s[912]! } + public var OldChannels_NoticeTitle: String { return self._s[913]! } + public var Settings_Proxy: String { return self._s[915]! } + public var Privacy_TopPeersHelp: String { return self._s[916]! } + public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[917]! } + public var Chat_UnsendMyMessages: String { return self._s[918]! } public func VoiceOver_Chat_Duration(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[915]!, self._r[915]!, [_0]) + return formatWithArgumentRanges(self._s[919]!, self._r[919]!, [_0]) } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[916]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[920]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[918]!, self._r[918]!, [_0]) - } - public var Contacts_SortedByPresence: String { return self._s[919]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[920]! } - public var Cache_Title: String { return self._s[921]! } - public func Login_PhoneBannedEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[922]!, self._r[922]!, [_0]) } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[923]! } - public var Channel_Moderator_Title: String { return self._s[924]! } - public var InstantPage_AutoNightTheme: String { return self._s[926]! } + public var Contacts_SortedByPresence: String { return self._s[923]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[924]! } + public var Cache_Title: String { return self._s[925]! } + public func Login_PhoneBannedEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[926]!, self._r[926]!, [_0]) + } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[927]! } + public var Channel_Moderator_Title: String { return self._s[928]! } + public var InstantPage_AutoNightTheme: String { return self._s[930]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[929]!, self._r[929]!, [_1]) + return formatWithArgumentRanges(self._s[933]!, self._r[933]!, [_1]) } - public var Passport_Scans_Upload: String { return self._s[930]! } - public var Undo_Undo: String { return self._s[932]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[933]! } - public var TwoStepAuth_RemovePassword: String { return self._s[934]! } - public var Common_Delete: String { return self._s[935]! } - public var Contacts_AddPeopleNearby: String { return self._s[937]! } - public var Conversation_ContextMenuDelete: String { return self._s[938]! } - public var SocksProxySetup_Credentials: String { return self._s[939]! } - public var Appearance_EditTheme: String { return self._s[941]! } - public var ClearCache_StorageOtherApps: String { return self._s[942]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[943]! } - public var Wallet_Send_NetworkErrorText: String { return self._s[944]! } - public var AuthSessions_DevicesTitle: String { return self._s[946]! } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[948]! } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[949]! } - public var Passport_Language_id: String { return self._s[951]! } - public var WallpaperSearch_ColorTeal: String { return self._s[952]! } - public var ChannelIntro_Title: String { return self._s[953]! } + public var Passport_Scans_Upload: String { return self._s[934]! } + public var Undo_Undo: String { return self._s[936]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[937]! } + public var TwoStepAuth_RemovePassword: String { return self._s[938]! } + public var Common_Delete: String { return self._s[939]! } + public var Contacts_AddPeopleNearby: String { return self._s[941]! } + public var Conversation_ContextMenuDelete: String { return self._s[942]! } + public var SocksProxySetup_Credentials: String { return self._s[943]! } + public var Appearance_EditTheme: String { return self._s[945]! } + public var ClearCache_StorageOtherApps: String { return self._s[946]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[947]! } + public var Wallet_Send_NetworkErrorText: String { return self._s[948]! } + public var AuthSessions_DevicesTitle: String { return self._s[950]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[952]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[953]! } + public var Passport_Language_id: String { return self._s[955]! } + public var WallpaperSearch_ColorTeal: String { return self._s[956]! } + public var ChannelIntro_Title: String { return self._s[957]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[954]!, self._r[954]!, [_0]) + return formatWithArgumentRanges(self._s[958]!, self._r[958]!, [_0]) } - public var VoiceOver_Chat_OpenLinkHint: String { return self._s[956]! } - public var VoiceOver_Chat_Reply: String { return self._s[957]! } - public var ScheduledMessages_BotActionUnavailable: String { return self._s[958]! } - public var Channel_Info_Description: String { return self._s[959]! } - public var Stickers_FavoriteStickers: String { return self._s[960]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[961]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[962]! } - public var ChatSearch_ResultsTooltip: String { return self._s[963]! } - public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[964]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[965]! } - public var Group_PublicLink_Placeholder: String { return self._s[966]! } - public var Notifications_ExceptionsDefaultSound: String { return self._s[967]! } + public var VoiceOver_Chat_OpenLinkHint: String { return self._s[960]! } + public var VoiceOver_Chat_Reply: String { return self._s[961]! } + public var ScheduledMessages_BotActionUnavailable: String { return self._s[962]! } + public var Channel_Info_Description: String { return self._s[963]! } + public var Stickers_FavoriteStickers: String { return self._s[964]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[965]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[966]! } + public var ChatSearch_ResultsTooltip: String { return self._s[967]! } + public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[968]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[969]! } + public var Group_PublicLink_Placeholder: String { return self._s[970]! } + public var Notifications_ExceptionsDefaultSound: String { return self._s[971]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[968]!, self._r[968]!, [_1]) + return formatWithArgumentRanges(self._s[972]!, self._r[972]!, [_1]) } - public var TextFormat_Underline: String { return self._s[969]! } + public var TextFormat_Underline: String { return self._s[973]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[971]!, self._r[971]!, [_1, _2]) + return formatWithArgumentRanges(self._s[975]!, self._r[975]!, [_1, _2]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[972]!, self._r[972]!, [_0]) + return formatWithArgumentRanges(self._s[976]!, self._r[976]!, [_0]) } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[973]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[977]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[974]!, self._r[974]!, [_1, _2]) + return formatWithArgumentRanges(self._s[978]!, self._r[978]!, [_1, _2]) } - public var Wallet_Intro_ImportExisting: String { return self._s[975]! } - public var GroupPermission_Delete: String { return self._s[976]! } - public var Passport_Language_uk: String { return self._s[977]! } - public var StickerPack_HideStickers: String { return self._s[979]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[980]! } + public var Wallet_Intro_ImportExisting: String { return self._s[979]! } + public var GroupPermission_Delete: String { return self._s[980]! } + public var Passport_Language_uk: String { return self._s[981]! } + public var StickerPack_HideStickers: String { return self._s[983]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[984]! } public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[981]!, self._r[981]!, [_1, _2]) + return formatWithArgumentRanges(self._s[985]!, self._r[985]!, [_1, _2]) } - public var Activity_UploadingVideoMessage: String { return self._s[982]! } + public var Activity_UploadingVideoMessage: String { return self._s[986]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[983]!, self._r[983]!, [_0]) + return formatWithArgumentRanges(self._s[987]!, self._r[987]!, [_0]) } - public var Channel_TitleInfo: String { return self._s[984]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[985]! } - public var Settings_CallSettings: String { return self._s[986]! } - public var Camera_SquareMode: String { return self._s[987]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[988]! } - public var GroupInfo_SharedMediaNone: String { return self._s[989]! } + public var Channel_TitleInfo: String { return self._s[988]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[989]! } + public var Settings_CallSettings: String { return self._s[990]! } + public var Camera_SquareMode: String { return self._s[991]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[992]! } + public var GroupInfo_SharedMediaNone: String { return self._s[993]! } public func PUSH_MESSAGE_VIDEO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[990]!, self._r[990]!, [_1]) + return formatWithArgumentRanges(self._s[994]!, self._r[994]!, [_1]) } - public var Bot_GenericBotStatus: String { return self._s[991]! } - public var Application_Update: String { return self._s[993]! } - public var Month_ShortJanuary: String { return self._s[994]! } - public var Contacts_PermissionsKeepDisabled: String { return self._s[995]! } - public var Channel_AdminLog_BanReadMessages: String { return self._s[996]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[997]! } - public var Passport_Address_Street2Placeholder: String { return self._s[998]! } + public var Bot_GenericBotStatus: String { return self._s[995]! } + public var Application_Update: String { return self._s[997]! } + public var Month_ShortJanuary: String { return self._s[998]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[999]! } + public var Channel_AdminLog_BanReadMessages: String { return self._s[1000]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[1001]! } + public var Passport_Address_Street2Placeholder: String { return self._s[1002]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[999]!, self._r[999]!, [_0]) + return formatWithArgumentRanges(self._s[1003]!, self._r[1003]!, [_0]) } - public var NetworkUsageSettings_Cellular: String { return self._s[1000]! } - public var Appearance_PreviewOutgoingText: String { return self._s[1001]! } + public var NetworkUsageSettings_Cellular: String { return self._s[1004]! } + public var Appearance_PreviewOutgoingText: String { return self._s[1005]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1002]!, self._r[1002]!, [_0]) + return formatWithArgumentRanges(self._s[1006]!, self._r[1006]!, [_0]) } - public var Notifications_PermissionsAllowInSettings: String { return self._s[1003]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[1005]! } - public var Map_Directions: String { return self._s[1006]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[1008]! } - public var Appearance_ThemeDay: String { return self._s[1009]! } - public var LogoutOptions_LogOut: String { return self._s[1010]! } - public var Group_PublicLink_Title: String { return self._s[1012]! } - public var Channel_AddBotErrorNoRights: String { return self._s[1013]! } - public var ChatList_Search_ShowLess: String { return self._s[1014]! } - public var Passport_Identity_AddPassport: String { return self._s[1015]! } - public var LocalGroup_ButtonTitle: String { return self._s[1016]! } - public var Call_Message: String { return self._s[1017]! } - public var PhotoEditor_ExposureTool: String { return self._s[1018]! } - public var Wallet_Receive_CommentInfo: String { return self._s[1020]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[1021]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[1023]! } - public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[1024]! } - public var Appearance_Preview: String { return self._s[1025]! } - public var Compose_ChannelMembers: String { return self._s[1026]! } - public var Conversation_DeleteManyMessages: String { return self._s[1027]! } - public var ReportPeer_ReasonOther_Title: String { return self._s[1028]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1029]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1030]! } - public var Channel_Stickers_CreateYourOwn: String { return self._s[1033]! } - public var Conversation_UpdateTelegram: String { return self._s[1034]! } - public var EditTheme_Create_TopInfo: String { return self._s[1035]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[1007]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[1009]! } + public var Map_Directions: String { return self._s[1010]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[1012]! } + public var Appearance_ThemeDay: String { return self._s[1013]! } + public var LogoutOptions_LogOut: String { return self._s[1014]! } + public var Group_PublicLink_Title: String { return self._s[1016]! } + public var Channel_AddBotErrorNoRights: String { return self._s[1017]! } + public var ChatList_Search_ShowLess: String { return self._s[1018]! } + public var Passport_Identity_AddPassport: String { return self._s[1019]! } + public var LocalGroup_ButtonTitle: String { return self._s[1020]! } + public var Call_Message: String { return self._s[1021]! } + public var PhotoEditor_ExposureTool: String { return self._s[1022]! } + public var Wallet_Receive_CommentInfo: String { return self._s[1024]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[1025]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[1027]! } + public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[1028]! } + public var Appearance_Preview: String { return self._s[1029]! } + public var Compose_ChannelMembers: String { return self._s[1030]! } + public var Conversation_DeleteManyMessages: String { return self._s[1031]! } + public var ReportPeer_ReasonOther_Title: String { return self._s[1032]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1033]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1034]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[1037]! } + public var Conversation_UpdateTelegram: String { return self._s[1038]! } + public var EditTheme_Create_TopInfo: String { return self._s[1039]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1036]!, self._r[1036]!, [_0]) + return formatWithArgumentRanges(self._s[1040]!, self._r[1040]!, [_0]) } - public var Wallet_WordCheck_Continue: String { return self._s[1037]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[1038]! } - public var IntentsSettings_ResetAll: String { return self._s[1039]! } + public var Wallet_WordCheck_Continue: String { return self._s[1041]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[1042]! } + public var IntentsSettings_ResetAll: String { return self._s[1043]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1040]!, self._r[1040]!, [_1]) + return formatWithArgumentRanges(self._s[1044]!, self._r[1044]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[1041]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[1042]! } + public var GroupInfo_Administrators_Title: String { return self._s[1045]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[1046]! } public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1043]!, self._r[1043]!, [_0]) + return formatWithArgumentRanges(self._s[1047]!, self._r[1047]!, [_0]) } - public var Tour_Title3: String { return self._s[1044]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[1045]! } - public var Clipboard_SendPhoto: String { return self._s[1049]! } - public var MediaPicker_Videos: String { return self._s[1050]! } - public var Passport_Email_Title: String { return self._s[1051]! } + public var Tour_Title3: String { return self._s[1048]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[1049]! } + public var Clipboard_SendPhoto: String { return self._s[1053]! } + public var MediaPicker_Videos: String { return self._s[1054]! } + public var Passport_Email_Title: String { return self._s[1055]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1052]!, self._r[1052]!, [_0]) + return formatWithArgumentRanges(self._s[1056]!, self._r[1056]!, [_0]) } - public var StickerPacksSettings_Title: String { return self._s[1053]! } - public var Conversation_MessageDialogDelete: String { return self._s[1054]! } - public var Privacy_Calls_CustomHelp: String { return self._s[1056]! } - public var Message_Wallpaper: String { return self._s[1057]! } - public var MemberSearch_BotSection: String { return self._s[1058]! } - public var GroupInfo_SetSound: String { return self._s[1059]! } - public var Core_ServiceUserStatus: String { return self._s[1060]! } - public var LiveLocationUpdated_JustNow: String { return self._s[1061]! } - public var Call_StatusFailed: String { return self._s[1062]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[1063]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1064]! } - public var TwoStepAuth_SetPassword: String { return self._s[1065]! } - public var Permissions_PeopleNearbyText_v0: String { return self._s[1066]! } + public var StickerPacksSettings_Title: String { return self._s[1057]! } + public var Conversation_MessageDialogDelete: String { return self._s[1058]! } + public var Privacy_Calls_CustomHelp: String { return self._s[1060]! } + public var Message_Wallpaper: String { return self._s[1061]! } + public var MemberSearch_BotSection: String { return self._s[1062]! } + public var GroupInfo_SetSound: String { return self._s[1063]! } + public var Core_ServiceUserStatus: String { return self._s[1064]! } + public var LiveLocationUpdated_JustNow: String { return self._s[1065]! } + public var Call_StatusFailed: String { return self._s[1066]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[1067]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1068]! } + public var TwoStepAuth_SetPassword: String { return self._s[1069]! } + public var Permissions_PeopleNearbyText_v0: String { return self._s[1070]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1068]!, self._r[1068]!, [_0]) + return formatWithArgumentRanges(self._s[1072]!, self._r[1072]!, [_0]) } - public var Calls_SubmitRating: String { return self._s[1069]! } - public var Map_NoPlacesNearby: String { return self._s[1070]! } - public var Profile_Username: String { return self._s[1071]! } - public var Bot_DescriptionTitle: String { return self._s[1072]! } - public var MaskStickerSettings_Title: String { return self._s[1073]! } - public var SharedMedia_CategoryOther: String { return self._s[1074]! } - public var GroupInfo_SetGroupPhoto: String { return self._s[1075]! } - public var Common_NotNow: String { return self._s[1076]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[1077]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[1078]! } - public var Map_Location: String { return self._s[1079]! } - public var Invitation_JoinGroup: String { return self._s[1080]! } - public var AutoDownloadSettings_Title: String { return self._s[1082]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1083]! } - public var Channel_ErrorAddBlocked: String { return self._s[1084]! } - public var Conversation_UnblockUser: String { return self._s[1085]! } - public var EditTheme_Edit_TopInfo: String { return self._s[1086]! } - public var Watch_Bot_Restart: String { return self._s[1087]! } - public var TwoStepAuth_Title: String { return self._s[1088]! } - public var Channel_AdminLog_BanSendMessages: String { return self._s[1089]! } - public var Checkout_ShippingMethod: String { return self._s[1090]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1091]! } + public var Calls_SubmitRating: String { return self._s[1073]! } + public var Map_NoPlacesNearby: String { return self._s[1074]! } + public var Profile_Username: String { return self._s[1075]! } + public var Bot_DescriptionTitle: String { return self._s[1076]! } + public var MaskStickerSettings_Title: String { return self._s[1077]! } + public var SharedMedia_CategoryOther: String { return self._s[1078]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1079]! } + public var Common_NotNow: String { return self._s[1080]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[1081]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[1082]! } + public var Map_Location: String { return self._s[1083]! } + public var Invitation_JoinGroup: String { return self._s[1084]! } + public var AutoDownloadSettings_Title: String { return self._s[1086]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1087]! } + public var Channel_ErrorAddBlocked: String { return self._s[1088]! } + public var Conversation_UnblockUser: String { return self._s[1089]! } + public var EditTheme_Edit_TopInfo: String { return self._s[1090]! } + public var Watch_Bot_Restart: String { return self._s[1091]! } + public var TwoStepAuth_Title: String { return self._s[1092]! } + public var Channel_AdminLog_BanSendMessages: String { return self._s[1093]! } + public var Checkout_ShippingMethod: String { return self._s[1094]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1095]! } public func PUSH_CHAT_MESSAGE_STICKER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1092]!, self._r[1092]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1096]!, self._r[1096]!, [_1, _2, _3]) } - public var EditTheme_ChangeColors: String { return self._s[1094]! } + public var EditTheme_ChangeColors: String { return self._s[1098]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1095]!, self._r[1095]!, [_0]) + return formatWithArgumentRanges(self._s[1099]!, self._r[1099]!, [_0]) } public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1096]!, self._r[1096]!, [_0]) + return formatWithArgumentRanges(self._s[1100]!, self._r[1100]!, [_0]) } - public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1097]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1098]! } - public var AuthSessions_TerminateOtherSessions: String { return self._s[1099]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[1100]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[1101]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1102]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1103]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[1104]! } - public var Checkout_PaymentMethod_Title: String { return self._s[1105]! } - public var SocksProxySetup_Connection: String { return self._s[1106]! } - public var Group_MessagePhotoRemoved: String { return self._s[1107]! } - public var Channel_Stickers_NotFound: String { return self._s[1110]! } - public var Group_About_Help: String { return self._s[1111]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[1112]! } - public var PeopleNearby_Title: String { return self._s[1114]! } + public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1101]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1102]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[1103]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[1104]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[1105]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1106]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1107]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[1108]! } + public var Checkout_PaymentMethod_Title: String { return self._s[1109]! } + public var SocksProxySetup_Connection: String { return self._s[1110]! } + public var Group_MessagePhotoRemoved: String { return self._s[1111]! } + public var Channel_Stickers_NotFound: String { return self._s[1114]! } + public var Group_About_Help: String { return self._s[1115]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[1116]! } + public var PeopleNearby_Title: String { return self._s[1118]! } public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1115]!, self._r[1115]!, [_1]) + return formatWithArgumentRanges(self._s[1119]!, self._r[1119]!, [_1]) } - public var Map_Home: String { return self._s[1116]! } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1118]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1119]! } - public var SocksProxySetup_Password: String { return self._s[1120]! } - public var Notifications_PermissionsEnable: String { return self._s[1121]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[1123]! } + public var Map_Home: String { return self._s[1120]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1122]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1123]! } + public var SocksProxySetup_Password: String { return self._s[1124]! } + public var Notifications_PermissionsEnable: String { return self._s[1125]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[1127]! } public func Channel_AdminLog_MessageInvitedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1124]!, self._r[1124]!, [_1]) + return formatWithArgumentRanges(self._s[1128]!, self._r[1128]!, [_1]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1126]!, self._r[1126]!, [_0]) + return formatWithArgumentRanges(self._s[1130]!, self._r[1130]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[1127]! } - public var ArchivedPacksAlert_Title: String { return self._s[1128]! } - public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1129]! } - public var Map_PlacesNearby: String { return self._s[1130]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[1131]! } + public var ArchivedPacksAlert_Title: String { return self._s[1132]! } + public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1133]! } + public var Map_PlacesNearby: String { return self._s[1134]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1131]!, self._r[1131]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1135]!, self._r[1135]!, [_1, _2, _3]) } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1132]! } - public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1134]! } - public var Conversation_StatusTyping: String { return self._s[1135]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[1136]! } - public var Notification_PassportValueProofOfAddress: String { return self._s[1137]! } - public var UserInfo_CreateNewContact: String { return self._s[1138]! } - public var Passport_Identity_FrontSide: String { return self._s[1139]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1140]! } - public var Calls_CallTabTitle: String { return self._s[1141]! } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1142]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1136]! } + public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1138]! } + public var Conversation_StatusTyping: String { return self._s[1139]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[1140]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[1141]! } + public var UserInfo_CreateNewContact: String { return self._s[1142]! } + public var Passport_Identity_FrontSide: String { return self._s[1143]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1144]! } + public var Calls_CallTabTitle: String { return self._s[1145]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1146]! } public func Login_BannedPhoneBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1144]!, self._r[1144]!, [_0]) + return formatWithArgumentRanges(self._s[1148]!, self._r[1148]!, [_0]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[1145]! } - public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1146]! } - public var SharedMedia_EmptyMusicText: String { return self._s[1147]! } - public var Wallet_Completed_Text: String { return self._s[1148]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1149]! } - public var Paint_Stickers: String { return self._s[1150]! } - public var Privacy_GroupsAndChannels: String { return self._s[1151]! } - public var ChatList_Context_Delete: String { return self._s[1153]! } - public var UserInfo_AddContact: String { return self._s[1154]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[1149]! } + public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1150]! } + public var SharedMedia_EmptyMusicText: String { return self._s[1151]! } + public var Wallet_Completed_Text: String { return self._s[1152]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1153]! } + public var Paint_Stickers: String { return self._s[1154]! } + public var Privacy_GroupsAndChannels: String { return self._s[1155]! } + public var ChatList_Context_Delete: String { return self._s[1157]! } + public var UserInfo_AddContact: String { return self._s[1158]! } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1155]!, self._r[1155]!, [_0]) - } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[1157]! } - public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1159]!, self._r[1159]!, [_0]) } - public var DialogList_NoMessagesTitle: String { return self._s[1160]! } - public var EditProfile_NameAndPhotoHelp: String { return self._s[1161]! } - public var BlockedUsers_BlockUser: String { return self._s[1162]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[1163]! } - public var MediaPicker_UngroupDescription: String { return self._s[1164]! } - public var Watch_NoConnection: String { return self._s[1165]! } - public var Month_GenSeptember: String { return self._s[1166]! } - public var Conversation_ViewGroup: String { return self._s[1168]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1171]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[1172]! } - public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1173]! } - public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1174]! } - public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1175]! } - public var MediaPicker_CameraRoll: String { return self._s[1177]! } - public var Month_GenAugust: String { return self._s[1178]! } - public var Wallet_Configuration_SourceHeader: String { return self._s[1179]! } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[1180]! } - public var SharedMedia_EmptyText: String { return self._s[1181]! } - public var Map_ShareLiveLocation: String { return self._s[1182]! } - public var Calls_All: String { return self._s[1183]! } - public var Map_SendThisPlace: String { return self._s[1185]! } - public var Appearance_ThemeNight: String { return self._s[1187]! } - public var Conversation_HoldForAudio: String { return self._s[1188]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[1191]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[1192]! } - public var SocksProxySetup_Secret: String { return self._s[1193]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[1161]! } + public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1163]!, self._r[1163]!, [_0]) + } + public var DialogList_NoMessagesTitle: String { return self._s[1164]! } + public var EditProfile_NameAndPhotoHelp: String { return self._s[1165]! } + public var BlockedUsers_BlockUser: String { return self._s[1166]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[1167]! } + public var MediaPicker_UngroupDescription: String { return self._s[1169]! } + public var Watch_NoConnection: String { return self._s[1170]! } + public var Month_GenSeptember: String { return self._s[1171]! } + public var Conversation_ViewGroup: String { return self._s[1173]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1176]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[1177]! } + public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1178]! } + public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1179]! } + public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1180]! } + public var MediaPicker_CameraRoll: String { return self._s[1182]! } + public var Month_GenAugust: String { return self._s[1183]! } + public var Wallet_Configuration_SourceHeader: String { return self._s[1184]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[1185]! } + public var SharedMedia_EmptyText: String { return self._s[1186]! } + public var Map_ShareLiveLocation: String { return self._s[1187]! } + public var Calls_All: String { return self._s[1188]! } + public var Map_SendThisPlace: String { return self._s[1190]! } + public var Appearance_ThemeNight: String { return self._s[1192]! } + public var Conversation_HoldForAudio: String { return self._s[1193]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[1196]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[1197]! } + public var SocksProxySetup_Secret: String { return self._s[1198]! } public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1194]!, self._r[1194]!, [_0]) + return formatWithArgumentRanges(self._s[1199]!, self._r[1199]!, [_0]) } - public var Channel_BanList_RestrictedTitle: String { return self._s[1196]! } - public var Conversation_Location: String { return self._s[1197]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[1201]! } + public var Conversation_Location: String { return self._s[1202]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1198]!, self._r[1198]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1203]!, self._r[1203]!, [_1, _2]) } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[1200]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1201]! } - public var Notifications_PermissionsText: String { return self._s[1202]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1203]! } - public var Call_Flip: String { return self._s[1204]! } - public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1206]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1207]! } - public var Wallet_TransactionInfo_StorageFeeInfoUrl: String { return self._s[1208]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1209]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1211]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1213]! } - public var Channel_TooMuchBots: String { return self._s[1215]! } - public var Passport_DeletePassportConfirmation: String { return self._s[1216]! } - public var Login_InvalidCodeError: String { return self._s[1217]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1218]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[1205]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1206]! } + public var Notifications_PermissionsText: String { return self._s[1207]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1208]! } + public var Call_Flip: String { return self._s[1209]! } + public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1211]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1212]! } + public var Wallet_TransactionInfo_StorageFeeInfoUrl: String { return self._s[1213]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1214]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1216]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1218]! } + public var Channel_TooMuchBots: String { return self._s[1220]! } + public var Passport_DeletePassportConfirmation: String { return self._s[1221]! } + public var Login_InvalidCodeError: String { return self._s[1222]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1223]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1219]!, self._r[1219]!, [_0]) + return formatWithArgumentRanges(self._s[1224]!, self._r[1224]!, [_0]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1220]!, self._r[1220]!, [_0]) + return formatWithArgumentRanges(self._s[1225]!, self._r[1225]!, [_0]) } - public var VoiceOver_Navigation_ProxySettings: String { return self._s[1221]! } - public var Call_CallInProgressTitle: String { return self._s[1222]! } - public var Month_ShortSeptember: String { return self._s[1223]! } - public var Watch_ChannelInfo_Title: String { return self._s[1224]! } - public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1227]! } - public var DialogList_PasscodeLockHelp: String { return self._s[1228]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[1229]! } - public var Wallet_Receive_Title: String { return self._s[1230]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[1231]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1232]! } - public var PhotoEditor_CropReset: String { return self._s[1233]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1235]! } - public var Channel_Management_LabelEditor: String { return self._s[1236]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1238]! } - public var PhotoEditor_HighlightsTool: String { return self._s[1239]! } - public var Wallet_Info_WalletCreated: String { return self._s[1240]! } - public var UserInfo_Title: String { return self._s[1241]! } - public var ChatList_HideAction: String { return self._s[1242]! } - public var AccessDenied_Title: String { return self._s[1243]! } - public var DialogList_SearchLabel: String { return self._s[1244]! } - public var Group_Setup_HistoryHidden: String { return self._s[1245]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1246]! } - public var State_Updating: String { return self._s[1248]! } - public var Contacts_TabTitle: String { return self._s[1249]! } - public var Notifications_Badge_CountUnreadMessages: String { return self._s[1251]! } - public var GroupInfo_GroupHistory: String { return self._s[1252]! } - public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1253]! } - public var Wallpaper_SetColor: String { return self._s[1254]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1255]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1256]! } - public var Chat_AttachmentLimitReached: String { return self._s[1257]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1258]! } - public var Contacts_NotRegisteredSection: String { return self._s[1259]! } + public var VoiceOver_Navigation_ProxySettings: String { return self._s[1226]! } + public var Call_CallInProgressTitle: String { return self._s[1227]! } + public var Month_ShortSeptember: String { return self._s[1228]! } + public var Watch_ChannelInfo_Title: String { return self._s[1229]! } + public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1232]! } + public var DialogList_PasscodeLockHelp: String { return self._s[1233]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[1234]! } + public var Wallet_Receive_Title: String { return self._s[1235]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[1236]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1237]! } + public var PhotoEditor_CropReset: String { return self._s[1238]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1240]! } + public var Channel_Management_LabelEditor: String { return self._s[1241]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1243]! } + public var PhotoEditor_HighlightsTool: String { return self._s[1244]! } + public var Wallet_Info_WalletCreated: String { return self._s[1245]! } + public var UserInfo_Title: String { return self._s[1246]! } + public var ChatList_HideAction: String { return self._s[1247]! } + public var AccessDenied_Title: String { return self._s[1248]! } + public var DialogList_SearchLabel: String { return self._s[1249]! } + public var Group_Setup_HistoryHidden: String { return self._s[1250]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1251]! } + public var State_Updating: String { return self._s[1253]! } + public var Contacts_TabTitle: String { return self._s[1254]! } + public var Notifications_Badge_CountUnreadMessages: String { return self._s[1256]! } + public var GroupInfo_GroupHistory: String { return self._s[1257]! } + public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1258]! } + public var Wallpaper_SetColor: String { return self._s[1259]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1260]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1261]! } + public var Chat_AttachmentLimitReached: String { return self._s[1262]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1263]! } + public var Contacts_NotRegisteredSection: String { return self._s[1264]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1260]!, self._r[1260]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1265]!, self._r[1265]!, [_1, _2, _3]) } - public var Paint_Clear: String { return self._s[1261]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[1262]! } - public var SocksProxySetup_Connecting: String { return self._s[1263]! } - public var ExplicitContent_AlertChannel: String { return self._s[1264]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[1265]! } - public var Conversation_Contact: String { return self._s[1266]! } - public var Login_CodeExpired: String { return self._s[1267]! } - public var Passport_DiscardMessageAction: String { return self._s[1268]! } - public var ChatList_Context_Unpin: String { return self._s[1269]! } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1270]! } + public var Paint_Clear: String { return self._s[1266]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[1267]! } + public var SocksProxySetup_Connecting: String { return self._s[1268]! } + public var ExplicitContent_AlertChannel: String { return self._s[1269]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[1270]! } + public var Conversation_Contact: String { return self._s[1271]! } + public var Login_CodeExpired: String { return self._s[1272]! } + public var Passport_DiscardMessageAction: String { return self._s[1273]! } + public var ChatList_Context_Unpin: String { return self._s[1274]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1275]! } public func VoiceOver_Chat_MusicFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1271]!, self._r[1271]!, [_0]) + return formatWithArgumentRanges(self._s[1276]!, self._r[1276]!, [_0]) } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[1272]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1273]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[1277]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1278]! } public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1274]!, self._r[1274]!, [_0]) + return formatWithArgumentRanges(self._s[1279]!, self._r[1279]!, [_0]) } - public var Month_ShortApril: String { return self._s[1275]! } - public var AuthSessions_CurrentSession: String { return self._s[1276]! } - public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1279]! } - public var Wallet_Navigation_Cancel: String { return self._s[1281]! } - public var WallpaperPreview_CropTopText: String { return self._s[1282]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1283]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1284]! } + public var Month_ShortApril: String { return self._s[1280]! } + public var AuthSessions_CurrentSession: String { return self._s[1281]! } + public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1284]! } + public var Wallet_Navigation_Cancel: String { return self._s[1286]! } + public var WallpaperPreview_CropTopText: String { return self._s[1287]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1288]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1289]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1285]!, self._r[1285]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1290]!, self._r[1290]!, [_0, _1]) } - public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1286]! } - public var Channel_Setup_TypePrivate: String { return self._s[1288]! } - public var Forward_ChannelReadOnly: String { return self._s[1291]! } - public var PhotoEditor_CurvesBlue: String { return self._s[1292]! } - public var AddContact_SharedContactException: String { return self._s[1293]! } - public var UserInfo_BotPrivacy: String { return self._s[1295]! } - public var Wallet_CreateInvoice_Title: String { return self._s[1296]! } - public var Notification_PassportValueEmail: String { return self._s[1297]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[1298]! } - public var GroupPermission_NewTitle: String { return self._s[1299]! } - public var CallFeedback_ReasonDropped: String { return self._s[1300]! } - public var GroupInfo_Permissions_AddException: String { return self._s[1301]! } - public var Channel_SignMessages_Help: String { return self._s[1303]! } - public var Undo_ChatDeleted: String { return self._s[1305]! } - public var Conversation_ChatBackground: String { return self._s[1306]! } + public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1291]! } + public var Channel_Setup_TypePrivate: String { return self._s[1293]! } + public var Forward_ChannelReadOnly: String { return self._s[1296]! } + public var PhotoEditor_CurvesBlue: String { return self._s[1297]! } + public var AddContact_SharedContactException: String { return self._s[1298]! } + public var UserInfo_BotPrivacy: String { return self._s[1300]! } + public var Wallet_CreateInvoice_Title: String { return self._s[1301]! } + public var Notification_PassportValueEmail: String { return self._s[1302]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[1303]! } + public var GroupPermission_NewTitle: String { return self._s[1304]! } + public var CallFeedback_ReasonDropped: String { return self._s[1305]! } + public var GroupInfo_Permissions_AddException: String { return self._s[1306]! } + public var Channel_SignMessages_Help: String { return self._s[1308]! } + public var Undo_ChatDeleted: String { return self._s[1310]! } + public var Conversation_ChatBackground: String { return self._s[1311]! } public func Wallet_WordCheck_Text(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1307]!, self._r[1307]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1312]!, self._r[1312]!, [_1, _2, _3]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1308]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1309]! } - public var Passport_Language_pt: String { return self._s[1310]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1311]! } - public var NotificationsSound_Popcorn: String { return self._s[1314]! } - public var AutoNightTheme_Disabled: String { return self._s[1315]! } - public var BlockedUsers_LeavePrefix: String { return self._s[1316]! } - public var WallpaperPreview_CustomColorTopText: String { return self._s[1317]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1318]! } - public var WallpaperSearch_ColorBlue: String { return self._s[1319]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1313]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1314]! } + public var Passport_Language_pt: String { return self._s[1315]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1316]! } + public var NotificationsSound_Popcorn: String { return self._s[1319]! } + public var AutoNightTheme_Disabled: String { return self._s[1320]! } + public var BlockedUsers_LeavePrefix: String { return self._s[1321]! } + public var WallpaperPreview_CustomColorTopText: String { return self._s[1322]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1323]! } + public var WallpaperSearch_ColorBlue: String { return self._s[1324]! } public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1320]!, self._r[1320]!, [_0]) + return formatWithArgumentRanges(self._s[1325]!, self._r[1325]!, [_0]) } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1321]! } - public var SocksProxySetup_UseForCalls: String { return self._s[1322]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[1324]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1326]! } + public var SocksProxySetup_UseForCalls: String { return self._s[1327]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[1329]! } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1325]!, self._r[1325]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1330]!, self._r[1330]!, ["\(_0)"]) } - public var SocksProxySetup_Hostname: String { return self._s[1328]! } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1329]! } - public var Compose_NewEncryptedChat: String { return self._s[1330]! } - public var Login_CodeFloodError: String { return self._s[1331]! } - public var Calls_TabTitle: String { return self._s[1332]! } - public var Privacy_ProfilePhoto: String { return self._s[1333]! } - public var Passport_Language_he: String { return self._s[1334]! } + public var SocksProxySetup_Hostname: String { return self._s[1333]! } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1334]! } + public var Compose_NewEncryptedChat: String { return self._s[1335]! } + public var Login_CodeFloodError: String { return self._s[1336]! } + public var Calls_TabTitle: String { return self._s[1337]! } + public var Privacy_ProfilePhoto: String { return self._s[1338]! } + public var Passport_Language_he: String { return self._s[1339]! } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1335]!, self._r[1335]!, [_0]) + return formatWithArgumentRanges(self._s[1340]!, self._r[1340]!, [_0]) } - public var GroupPermission_Title: String { return self._s[1336]! } + public var GroupPermission_Title: String { return self._s[1341]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1337]!, self._r[1337]!, [_0]) + return formatWithArgumentRanges(self._s[1342]!, self._r[1342]!, [_0]) } - public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1338]! } - public var GroupPermission_NoChangeInfo: String { return self._s[1339]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[1340]! } - public var Tour_Text1: String { return self._s[1341]! } - public var Channel_EditAdmin_TransferOwnership: String { return self._s[1342]! } - public var Month_ShortFebruary: String { return self._s[1343]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1344]! } + public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1343]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1344]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[1345]! } + public var Tour_Text1: String { return self._s[1346]! } + public var Channel_EditAdmin_TransferOwnership: String { return self._s[1347]! } + public var Month_ShortFebruary: String { return self._s[1348]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1349]! } public func Wallet_Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1345]!, self._r[1345]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1350]!, self._r[1350]!, [_1, _2, _3]) } - public var NotificationsSound_Glass: String { return self._s[1346]! } - public var Appearance_ThemeNightBlue: String { return self._s[1347]! } - public var CheckoutInfo_Pay: String { return self._s[1348]! } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1350]! } - public var Call_CallAgain: String { return self._s[1352]! } - public var AttachmentMenu_SendAsFile: String { return self._s[1353]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[1354]! } - public var Passport_InvalidPasswordError: String { return self._s[1355]! } - public var Watch_Message_Game: String { return self._s[1356]! } - public var Stickers_Install: String { return self._s[1357]! } - public var VoiceOver_Chat_Message: String { return self._s[1358]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1359]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[1361]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1362]! } - public var AuthSessions_OtherSessions: String { return self._s[1363]! } - public var Channel_Username_Help: String { return self._s[1364]! } - public var Camera_Title: String { return self._s[1365]! } - public var IntentsSettings_Title: String { return self._s[1366]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1368]! } - public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1369]! } - public var Channel_AdminLog_SendPolls: String { return self._s[1370]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1371]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1372]! } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1373]! } - public var ScheduledMessages_DeleteMany: String { return self._s[1374]! } - public var Conversation_RestrictedStickers: String { return self._s[1375]! } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[1377]! } - public var UserInfo_TelegramCall: String { return self._s[1379]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1380]! } - public var CreatePoll_OptionsHeader: String { return self._s[1381]! } - public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1382]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1383]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1384]! } - public var Theme_Colors_Proceed: String { return self._s[1385]! } - public var Passport_Identity_EditPersonalDetails: String { return self._s[1386]! } + public var NotificationsSound_Glass: String { return self._s[1351]! } + public var Appearance_ThemeNightBlue: String { return self._s[1352]! } + public var CheckoutInfo_Pay: String { return self._s[1353]! } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1355]! } + public var Call_CallAgain: String { return self._s[1357]! } + public var AttachmentMenu_SendAsFile: String { return self._s[1358]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[1359]! } + public var Passport_InvalidPasswordError: String { return self._s[1360]! } + public var Watch_Message_Game: String { return self._s[1361]! } + public var Stickers_Install: String { return self._s[1362]! } + public var VoiceOver_Chat_Message: String { return self._s[1363]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1364]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[1366]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1367]! } + public var AuthSessions_OtherSessions: String { return self._s[1368]! } + public var Channel_Username_Help: String { return self._s[1369]! } + public var Camera_Title: String { return self._s[1370]! } + public var IntentsSettings_Title: String { return self._s[1371]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1373]! } + public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1374]! } + public var Channel_AdminLog_SendPolls: String { return self._s[1375]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1376]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1377]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1378]! } + public var ScheduledMessages_DeleteMany: String { return self._s[1379]! } + public var Conversation_RestrictedStickers: String { return self._s[1380]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[1382]! } + public var UserInfo_TelegramCall: String { return self._s[1384]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1385]! } + public var CreatePoll_OptionsHeader: String { return self._s[1386]! } + public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1387]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1388]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1389]! } + public var Theme_Colors_Proceed: String { return self._s[1390]! } + public var Passport_Identity_EditPersonalDetails: String { return self._s[1391]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1387]!, self._r[1387]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1392]!, self._r[1392]!, [_1, _2, _3]) } - public var Wallet_Month_GenAugust: String { return self._s[1388]! } - public var Settings_SaveEditedPhotos: String { return self._s[1389]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[1390]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1391]! } - public var Conversation_MessageDialogRetry: String { return self._s[1392]! } - public var ChatList_Context_MarkAsUnread: String { return self._s[1393]! } - public var MessagePoll_SubmitVote: String { return self._s[1394]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[1395]! } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1396]! } - public var Group_Setup_TypeHeader: String { return self._s[1397]! } - public var Paint_RecentStickers: String { return self._s[1398]! } - public var PhotoEditor_GrainTool: String { return self._s[1399]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[1400]! } - public var EmptyGroupInfo_Line4: String { return self._s[1401]! } - public var Watch_AuthRequired: String { return self._s[1403]! } + public var Wallet_Month_GenAugust: String { return self._s[1393]! } + public var Settings_SaveEditedPhotos: String { return self._s[1394]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[1395]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1396]! } + public var Conversation_MessageDialogRetry: String { return self._s[1397]! } + public var ChatList_Context_MarkAsUnread: String { return self._s[1398]! } + public var MessagePoll_SubmitVote: String { return self._s[1399]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[1400]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1401]! } + public var Group_Setup_TypeHeader: String { return self._s[1402]! } + public var Paint_RecentStickers: String { return self._s[1403]! } + public var PhotoEditor_GrainTool: String { return self._s[1404]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[1405]! } + public var EmptyGroupInfo_Line4: String { return self._s[1406]! } + public var Watch_AuthRequired: String { return self._s[1408]! } public func Passport_Email_UseTelegramEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1404]!, self._r[1404]!, [_0]) + return formatWithArgumentRanges(self._s[1409]!, self._r[1409]!, [_0]) } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1405]! } - public var ChannelIntro_Text: String { return self._s[1406]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[1407]! } - public var GroupPermission_NoSendMedia: String { return self._s[1408]! } - public var Calls_AddTab: String { return self._s[1409]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[1410]! } - public var Channel_AdminLog_EmptyFilterText: String { return self._s[1411]! } - public var Conversation_WalletRequiredSetup: String { return self._s[1412]! } - public var Notification_MessageLifetime1d: String { return self._s[1413]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1414]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1415]! } - public var Passport_Identity_GenderFemale: String { return self._s[1416]! } - public var BlockedUsers_BlockTitle: String { return self._s[1417]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1410]! } + public var ChannelIntro_Text: String { return self._s[1411]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[1412]! } + public var GroupPermission_NoSendMedia: String { return self._s[1413]! } + public var Calls_AddTab: String { return self._s[1414]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[1415]! } + public var Channel_AdminLog_EmptyFilterText: String { return self._s[1416]! } + public var Conversation_WalletRequiredSetup: String { return self._s[1417]! } + public var Notification_MessageLifetime1d: String { return self._s[1418]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1419]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1420]! } + public var Passport_Identity_GenderFemale: String { return self._s[1421]! } + public var BlockedUsers_BlockTitle: String { return self._s[1422]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1418]!, self._r[1418]!, [_1]) + return formatWithArgumentRanges(self._s[1423]!, self._r[1423]!, [_1]) } - public var Weekday_Yesterday: String { return self._s[1419]! } - public var WallpaperSearch_ColorBlack: String { return self._s[1420]! } - public var Settings_Context_Logout: String { return self._s[1421]! } - public var Wallet_Info_UnknownTransaction: String { return self._s[1422]! } - public var ChatList_ArchiveAction: String { return self._s[1423]! } - public var AutoNightTheme_Scheduled: String { return self._s[1424]! } - public var TwoFactorSetup_Email_SkipAction: String { return self._s[1425]! } - public var Settings_Devices: String { return self._s[1426]! } - public var ContactInfo_Note: String { return self._s[1427]! } + public var Weekday_Yesterday: String { return self._s[1424]! } + public var WallpaperSearch_ColorBlack: String { return self._s[1425]! } + public var Settings_Context_Logout: String { return self._s[1426]! } + public var Wallet_Info_UnknownTransaction: String { return self._s[1427]! } + public var ChatList_ArchiveAction: String { return self._s[1428]! } + public var AutoNightTheme_Scheduled: String { return self._s[1429]! } + public var TwoFactorSetup_Email_SkipAction: String { return self._s[1430]! } + public var Settings_Devices: String { return self._s[1431]! } + public var ContactInfo_Note: String { return self._s[1432]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1428]!, self._r[1428]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[1433]!, self._r[1433]!, [_1, _2, _3, _4, _5, _6]) } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1429]! } - public var Wallet_Receive_CreateInvoice: String { return self._s[1430]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1431]! } - public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[1432]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1434]! } + public var Wallet_Receive_CreateInvoice: String { return self._s[1435]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1436]! } + public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[1437]! } public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1433]!, self._r[1433]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1438]!, self._r[1438]!, [_1, _2]) } - public var CreatePoll_Create: String { return self._s[1434]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1435]! } + public var CreatePoll_Create: String { return self._s[1439]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1440]! } public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1436]!, self._r[1436]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1441]!, self._r[1441]!, [_1, _2]) } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1437]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1438]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[1440]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1442]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1443]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[1445]! } public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1441]!, self._r[1441]!, [_1]) + return formatWithArgumentRanges(self._s[1446]!, self._r[1446]!, [_1]) } - public var Preview_OpenInInstagram: String { return self._s[1442]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1443]! } + public var Preview_OpenInInstagram: String { return self._s[1447]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1448]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1444]!, self._r[1444]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1449]!, self._r[1449]!, [_1, _2, _3]) } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1445]!, self._r[1445]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1450]!, self._r[1450]!, [_1, _2]) } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1446]! } - public var ArchivedChats_IntroText3: String { return self._s[1447]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[1448]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1449]! } - public var Wallet_Month_GenSeptember: String { return self._s[1450]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1451]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1451]! } + public var ArchivedChats_IntroText3: String { return self._s[1452]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[1453]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1454]! } + public var Wallet_Month_GenSeptember: String { return self._s[1455]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1456]! } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1452]!, self._r[1452]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1457]!, self._r[1457]!, [_1, _2, _3]) } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1454]! } - public var FastTwoStepSetup_HintSection: String { return self._s[1455]! } - public var Wallpaper_PhotoLibrary: String { return self._s[1456]! } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1457]! } - public var Gif_NoGifsFound: String { return self._s[1458]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[1459]! } - public var VoiceOver_MessageContextDelete: String { return self._s[1460]! } - public var EditTheme_Preview: String { return self._s[1461]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1459]! } + public var FastTwoStepSetup_HintSection: String { return self._s[1460]! } + public var Wallpaper_PhotoLibrary: String { return self._s[1461]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1462]! } + public var Gif_NoGifsFound: String { return self._s[1463]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[1464]! } + public var VoiceOver_MessageContextDelete: String { return self._s[1465]! } + public var EditTheme_Preview: String { return self._s[1466]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1462]!, self._r[1462]!, [_0]) + return formatWithArgumentRanges(self._s[1467]!, self._r[1467]!, [_0]) } - public var GroupInfo_ActionPromote: String { return self._s[1463]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[1464]! } - public var GroupInfo_Permissions_Title: String { return self._s[1465]! } - public var Permissions_ContactsText_v0: String { return self._s[1466]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1467]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1468]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1471]! } - public var Passport_FieldEmailHelp: String { return self._s[1472]! } + public var GroupInfo_ActionPromote: String { return self._s[1468]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[1469]! } + public var GroupInfo_Permissions_Title: String { return self._s[1470]! } + public var Permissions_ContactsText_v0: String { return self._s[1471]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1472]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1473]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1476]! } + public var Passport_FieldEmailHelp: String { return self._s[1477]! } public func Activity_RemindAboutUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1473]!, self._r[1473]!, [_0]) + return formatWithArgumentRanges(self._s[1478]!, self._r[1478]!, [_0]) } - public var Passport_Identity_GenderPlaceholder: String { return self._s[1474]! } - public var Weekday_ShortSaturday: String { return self._s[1475]! } - public var ContactInfo_PhoneLabelMain: String { return self._s[1476]! } - public var Watch_Conversation_UserInfo: String { return self._s[1477]! } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1478]! } - public var GroupPermission_PermissionDisabledByDefault: String { return self._s[1479]! } - public var PrivacyLastSeenSettings_Title: String { return self._s[1480]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[1481]! } - public var PhotoEditor_VignetteTool: String { return self._s[1482]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1483]! } - public var Passport_Language_et: String { return self._s[1484]! } - public var AppUpgrade_Running: String { return self._s[1485]! } - public var Channel_DiscussionGroup_Info: String { return self._s[1487]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1488]! } - public var Passport_Language_bg: String { return self._s[1489]! } - public var Stickers_NoStickersFound: String { return self._s[1491]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1479]! } + public var Weekday_ShortSaturday: String { return self._s[1480]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[1481]! } + public var Watch_Conversation_UserInfo: String { return self._s[1482]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1483]! } + public var GroupPermission_PermissionDisabledByDefault: String { return self._s[1484]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[1485]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[1486]! } + public var PhotoEditor_VignetteTool: String { return self._s[1487]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1488]! } + public var Passport_Language_et: String { return self._s[1489]! } + public var AppUpgrade_Running: String { return self._s[1490]! } + public var Channel_DiscussionGroup_Info: String { return self._s[1492]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1493]! } + public var Passport_Language_bg: String { return self._s[1494]! } + public var Stickers_NoStickersFound: String { return self._s[1496]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1493]!, self._r[1493]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1498]!, self._r[1498]!, [_1, _2]) } public func VoiceOver_Chat_ContactFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1494]!, self._r[1494]!, [_0]) + return formatWithArgumentRanges(self._s[1499]!, self._r[1499]!, [_0]) } - public var Wallet_Month_GenJuly: String { return self._s[1495]! } - public var Wallet_Receive_AddressHeader: String { return self._s[1496]! } - public var Wallet_Send_AmountText: String { return self._s[1497]! } - public var Settings_About: String { return self._s[1498]! } + public var Wallet_Month_GenJuly: String { return self._s[1500]! } + public var Wallet_Receive_AddressHeader: String { return self._s[1501]! } + public var Wallet_Send_AmountText: String { return self._s[1502]! } + public var Settings_About: String { return self._s[1503]! } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1499]!, self._r[1499]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1504]!, self._r[1504]!, [_0, _1, _2]) } - public var ChatList_Context_MarkAsRead: String { return self._s[1501]! } - public var KeyCommand_NewMessage: String { return self._s[1502]! } - public var Group_ErrorAddBlocked: String { return self._s[1503]! } + public var ChatList_Context_MarkAsRead: String { return self._s[1506]! } + public var KeyCommand_NewMessage: String { return self._s[1507]! } + public var Group_ErrorAddBlocked: String { return self._s[1508]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1504]!, self._r[1504]!, [_0]) - } - public var Map_LocationTitle: String { return self._s[1505]! } - public var ReportGroupLocation_Title: String { return self._s[1506]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1507]! } - public var Cache_ClearProgress: String { return self._s[1508]! } - public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1509]!, self._r[1509]!, [_0]) } - public var GroupRemoved_AddToGroup: String { return self._s[1510]! } - public var Passport_UpdateRequiredError: String { return self._s[1511]! } - public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1512]! } + public var Map_LocationTitle: String { return self._s[1510]! } + public var ReportGroupLocation_Title: String { return self._s[1511]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1512]! } + public var Cache_ClearProgress: String { return self._s[1513]! } + public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1514]!, self._r[1514]!, [_0]) + } + public var GroupRemoved_AddToGroup: String { return self._s[1515]! } + public var Passport_UpdateRequiredError: String { return self._s[1516]! } + public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1517]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1513]!, self._r[1513]!, [_1]) + return formatWithArgumentRanges(self._s[1518]!, self._r[1518]!, [_1]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[1515]! } - public var Passport_Identity_MainPageHelp: String { return self._s[1516]! } - public var Conversation_StatusKickedFromGroup: String { return self._s[1517]! } - public var Passport_Language_ka: String { return self._s[1518]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[1520]! } + public var Passport_Identity_MainPageHelp: String { return self._s[1521]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[1522]! } + public var Passport_Language_ka: String { return self._s[1523]! } public func Wallet_Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1519]!, self._r[1519]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1524]!, self._r[1524]!, [_1, _2, _3]) } - public var Call_Decline: String { return self._s[1520]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[1521]! } - public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1524]! } + public var Call_Decline: String { return self._s[1525]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[1526]! } + public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1529]! } public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1525]!, self._r[1525]!, [_0]) + return formatWithArgumentRanges(self._s[1530]!, self._r[1530]!, [_0]) } - public var CallFeedback_Send: String { return self._s[1526]! } - public var EditTheme_EditTitle: String { return self._s[1527]! } + public var CallFeedback_Send: String { return self._s[1531]! } + public var EditTheme_EditTitle: String { return self._s[1532]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1528]!, self._r[1528]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1533]!, self._r[1533]!, [_1, _2]) } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1529]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1534]! } public func Wallet_Updated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1531]!, self._r[1531]!, [_0]) + return formatWithArgumentRanges(self._s[1536]!, self._r[1536]!, [_0]) } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1532]! } - public var Passport_DeletePassport: String { return self._s[1533]! } - public var Appearance_AppIconFilled: String { return self._s[1534]! } - public var Privacy_Calls_P2PAlways: String { return self._s[1535]! } - public var Month_ShortDecember: String { return self._s[1536]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1538]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1537]! } + public var Passport_DeletePassport: String { return self._s[1538]! } + public var Appearance_AppIconFilled: String { return self._s[1539]! } + public var Privacy_Calls_P2PAlways: String { return self._s[1540]! } + public var Month_ShortDecember: String { return self._s[1541]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1543]! } public func Contacts_AccessDeniedHelpLandscape(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1539]!, self._r[1539]!, [_0]) + return formatWithArgumentRanges(self._s[1544]!, self._r[1544]!, [_0]) } - public var Channel_Stickers_Searching: String { return self._s[1540]! } - public var Conversation_EncryptedDescription1: String { return self._s[1541]! } - public var Conversation_EncryptedDescription2: String { return self._s[1542]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[1543]! } - public var Conversation_EncryptedDescription3: String { return self._s[1545]! } - public var PhotoEditor_SharpenTool: String { return self._s[1546]! } - public var Wallet_Configuration_Title: String { return self._s[1547]! } + public var Channel_Stickers_Searching: String { return self._s[1545]! } + public var Conversation_EncryptedDescription1: String { return self._s[1546]! } + public var Conversation_EncryptedDescription2: String { return self._s[1547]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[1548]! } + public var Conversation_EncryptedDescription3: String { return self._s[1550]! } + public var PhotoEditor_SharpenTool: String { return self._s[1551]! } + public var Wallet_Configuration_Title: String { return self._s[1552]! } public func Conversation_AddNameToContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1548]!, self._r[1548]!, [_0]) + return formatWithArgumentRanges(self._s[1553]!, self._r[1553]!, [_0]) } - public var Conversation_EncryptedDescription4: String { return self._s[1550]! } - public var Channel_Members_AddMembers: String { return self._s[1551]! } - public var Wallpaper_Search: String { return self._s[1552]! } - public var Weekday_Friday: String { return self._s[1554]! } - public var Privacy_ContactsSync: String { return self._s[1555]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1556]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1557]! } + public var Conversation_EncryptedDescription4: String { return self._s[1555]! } + public var Channel_Members_AddMembers: String { return self._s[1556]! } + public var Wallpaper_Search: String { return self._s[1557]! } + public var Weekday_Friday: String { return self._s[1559]! } + public var Privacy_ContactsSync: String { return self._s[1560]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1561]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1562]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1558]!, self._r[1558]!, [_0]) - } - public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[1559]! } - public var GroupInfo_Permissions_Removed: String { return self._s[1560]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[1561]! } - public var Passport_Identity_GenderMale: String { return self._s[1562]! } - public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1563]!, self._r[1563]!, [_0]) } - public var Notifications_PermissionsKeepDisabled: String { return self._s[1564]! } - public var Conversation_JumpToDate: String { return self._s[1565]! } - public var Contacts_GlobalSearch: String { return self._s[1566]! } - public var AutoDownloadSettings_ResetHelp: String { return self._s[1567]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[1568]! } - public var Profile_MessageLifetime1d: String { return self._s[1569]! } + public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[1564]! } + public var GroupInfo_Permissions_Removed: String { return self._s[1565]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[1566]! } + public var Passport_Identity_GenderMale: String { return self._s[1567]! } + public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1568]!, self._r[1568]!, [_0]) + } + public var Notifications_PermissionsKeepDisabled: String { return self._s[1569]! } + public var Conversation_JumpToDate: String { return self._s[1570]! } + public var Contacts_GlobalSearch: String { return self._s[1571]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[1572]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[1573]! } + public var Profile_MessageLifetime1d: String { return self._s[1574]! } public func MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1570]!, self._r[1570]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1575]!, self._r[1575]!, [_1, _2]) } - public var StickerPack_BuiltinPackName: String { return self._s[1573]! } + public var StickerPack_BuiltinPackName: String { return self._s[1578]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1574]!, self._r[1574]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1579]!, self._r[1579]!, [_1, _2]) } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1575]! } - public var Passport_InfoTitle: String { return self._s[1577]! } - public var Notifications_PermissionsUnreachableText: String { return self._s[1578]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1580]! } + public var Passport_InfoTitle: String { return self._s[1582]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[1583]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1582]!, self._r[1582]!, [_0]) + return formatWithArgumentRanges(self._s[1587]!, self._r[1587]!, [_0]) } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1583]!, self._r[1583]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1588]!, self._r[1588]!, [_1, _2]) } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1584]! } - public var Profile_BotInfo: String { return self._s[1585]! } - public var Watch_Compose_CreateMessage: String { return self._s[1586]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1587]! } - public var Month_ShortNovember: String { return self._s[1588]! } - public var Conversation_ScamWarning: String { return self._s[1589]! } - public var Wallpaper_SetCustomBackground: String { return self._s[1590]! } - public var Appearance_TextSize_Title: String { return self._s[1591]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1592]! } - public var NotificationsSound_Chime: String { return self._s[1593]! } - public var Passport_Language_ko: String { return self._s[1595]! } - public var InviteText_URL: String { return self._s[1596]! } - public var TextFormat_Monospace: String { return self._s[1597]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1589]! } + public var Profile_BotInfo: String { return self._s[1590]! } + public var Watch_Compose_CreateMessage: String { return self._s[1591]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1592]! } + public var Month_ShortNovember: String { return self._s[1593]! } + public var Conversation_ScamWarning: String { return self._s[1594]! } + public var Wallpaper_SetCustomBackground: String { return self._s[1595]! } + public var Appearance_TextSize_Title: String { return self._s[1596]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1597]! } + public var NotificationsSound_Chime: String { return self._s[1598]! } + public var Passport_Language_ko: String { return self._s[1600]! } + public var InviteText_URL: String { return self._s[1601]! } + public var TextFormat_Monospace: String { return self._s[1602]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1598]!, self._r[1598]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1603]!, self._r[1603]!, [_1, _2, _3]) } - public var EditTheme_Edit_BottomInfo: String { return self._s[1599]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[1604]! } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1600]!, self._r[1600]!, [_0]) + return formatWithArgumentRanges(self._s[1605]!, self._r[1605]!, [_0]) } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1601]!, self._r[1601]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1606]!, self._r[1606]!, [_1, _2]) } - public var Wallet_Words_Title: String { return self._s[1602]! } - public var Wallet_Month_ShortMay: String { return self._s[1603]! } - public var EditTheme_CreateTitle: String { return self._s[1605]! } - public var Passport_InfoLearnMore: String { return self._s[1606]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[1607]! } - public var Passport_Identity_AddIdentityCard: String { return self._s[1608]! } - public var Your_card_has_expired: String { return self._s[1609]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[1610]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1611]! } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[1615]! } - public var Conversation_Report: String { return self._s[1617]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1618]! } - public var Notification_MessageLifetime1m: String { return self._s[1619]! } - public var Privacy_ContactsTitle: String { return self._s[1620]! } - public var Conversation_ShareMyContactInfo: String { return self._s[1621]! } - public var Wallet_WordCheck_Title: String { return self._s[1622]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1623]! } - public var Channel_Members_Title: String { return self._s[1624]! } - public var Map_OpenInWaze: String { return self._s[1625]! } - public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1626]! } - public var Login_PhoneBannedError: String { return self._s[1627]! } + public var Wallet_Words_Title: String { return self._s[1607]! } + public var Wallet_Month_ShortMay: String { return self._s[1608]! } + public var EditTheme_CreateTitle: String { return self._s[1610]! } + public var Passport_InfoLearnMore: String { return self._s[1611]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[1612]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[1613]! } + public var Your_card_has_expired: String { return self._s[1614]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[1615]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1616]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[1620]! } + public var Conversation_Report: String { return self._s[1622]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1623]! } + public var Notification_MessageLifetime1m: String { return self._s[1624]! } + public var Privacy_ContactsTitle: String { return self._s[1625]! } + public var Conversation_ShareMyContactInfo: String { return self._s[1626]! } + public var Wallet_WordCheck_Title: String { return self._s[1627]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1628]! } + public var Channel_Members_Title: String { return self._s[1629]! } + public var Map_OpenInWaze: String { return self._s[1630]! } + public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1631]! } + public var Login_PhoneBannedError: String { return self._s[1632]! } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1628]!, self._r[1628]!, [_0]) + return formatWithArgumentRanges(self._s[1633]!, self._r[1633]!, [_0]) } - public var IntentsSettings_MainAccount: String { return self._s[1629]! } - public var Group_Management_AddModeratorHelp: String { return self._s[1630]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[1631]! } - public var Common_OK: String { return self._s[1632]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1633]! } - public var Wallet_Words_NotDoneResponse: String { return self._s[1634]! } - public var Cache_Music: String { return self._s[1635]! } - public var Wallet_Configuration_SourceURL: String { return self._s[1636]! } - public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1637]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1639]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1640]! } + public var IntentsSettings_MainAccount: String { return self._s[1634]! } + public var Group_Management_AddModeratorHelp: String { return self._s[1635]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[1636]! } + public var Common_OK: String { return self._s[1637]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1638]! } + public var Wallet_Words_NotDoneResponse: String { return self._s[1639]! } + public var Cache_Music: String { return self._s[1640]! } + public var Wallet_Configuration_SourceURL: String { return self._s[1641]! } + public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1642]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1644]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1645]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1641]!, self._r[1641]!, [_1]) + return formatWithArgumentRanges(self._s[1646]!, self._r[1646]!, [_1]) } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1642]!, self._r[1642]!, [_0]) + return formatWithArgumentRanges(self._s[1647]!, self._r[1647]!, [_0]) } - public var TwoFactorSetup_Done_Action: String { return self._s[1643]! } + public var TwoFactorSetup_Done_Action: String { return self._s[1648]! } public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1644]!, self._r[1644]!, [_0]) + return formatWithArgumentRanges(self._s[1649]!, self._r[1649]!, [_0]) } - public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1645]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1647]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[1648]! } - public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1650]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1651]! } - public var State_ConnectingToProxyInfo: String { return self._s[1652]! } - public var Conversation_SwipeToReplyHintTitle: String { return self._s[1653]! } - public var Message_VideoMessage: String { return self._s[1655]! } - public var ChannelInfo_DeleteChannel: String { return self._s[1656]! } - public var ContactInfo_PhoneLabelOther: String { return self._s[1657]! } - public var Channel_EditAdmin_CannotEdit: String { return self._s[1658]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[1659]! } + public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1650]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1652]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[1653]! } + public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1655]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1656]! } + public var State_ConnectingToProxyInfo: String { return self._s[1657]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[1658]! } + public var Message_VideoMessage: String { return self._s[1660]! } + public var ChannelInfo_DeleteChannel: String { return self._s[1661]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[1662]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[1663]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[1664]! } public func Wallet_Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1660]!, self._r[1660]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1665]!, self._r[1665]!, [_1, _2, _3]) } - public var WallpaperPreview_SwipeBottomText: String { return self._s[1661]! } - public var Activity_RecordingAudio: String { return self._s[1662]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[1663]! } - public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1664]! } - public var Wallet_Info_Address: String { return self._s[1665]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[1666]! } + public var Activity_RecordingAudio: String { return self._s[1667]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[1668]! } + public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1669]! } + public var Wallet_Info_Address: String { return self._s[1670]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1667]!, self._r[1667]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1672]!, self._r[1672]!, [_0, _1]) } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1671]!, self._r[1671]!, [_0]) - } - public var Conversation_ApplyLocalization: String { return self._s[1672]! } - public var TwoFactorSetup_Intro_Action: String { return self._s[1673]! } - public var UserInfo_AddPhone: String { return self._s[1674]! } - public var Map_ShareLiveLocationHelp: String { return self._s[1675]! } - public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1676]!, self._r[1676]!, [_0]) } - public var Passport_Scans: String { return self._s[1678]! } - public var BlockedUsers_Unblock: String { return self._s[1679]! } + public var Conversation_ApplyLocalization: String { return self._s[1677]! } + public var TwoFactorSetup_Intro_Action: String { return self._s[1678]! } + public var UserInfo_AddPhone: String { return self._s[1679]! } + public var Map_ShareLiveLocationHelp: String { return self._s[1680]! } + public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1681]!, self._r[1681]!, [_0]) + } + public var Passport_Scans: String { return self._s[1683]! } + public var BlockedUsers_Unblock: String { return self._s[1684]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1680]!, self._r[1680]!, [_1]) + return formatWithArgumentRanges(self._s[1685]!, self._r[1685]!, [_1]) } - public var Channel_Management_LabelCreator: String { return self._s[1681]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[1682]! } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1683]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1684]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1685]! } + public var Channel_Management_LabelCreator: String { return self._s[1686]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[1687]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1688]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1689]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1690]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1686]!, self._r[1686]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1691]!, self._r[1691]!, [_0, _1, _2]) } - public var Login_PhoneNumberHelp: String { return self._s[1687]! } - public var LastSeen_ALongTimeAgo: String { return self._s[1688]! } - public var Channel_AdminLog_CanPinMessages: String { return self._s[1689]! } - public var ChannelIntro_CreateChannel: String { return self._s[1690]! } - public var Conversation_UnreadMessages: String { return self._s[1691]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1692]! } - public var Channel_AdminLog_EmptyText: String { return self._s[1693]! } - public var Theme_Context_Apply: String { return self._s[1694]! } - public var Notification_GroupActivated: String { return self._s[1695]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[1696]! } - public var Wallet_Intro_CreateWallet: String { return self._s[1697]! } + public var Login_PhoneNumberHelp: String { return self._s[1692]! } + public var LastSeen_ALongTimeAgo: String { return self._s[1693]! } + public var Channel_AdminLog_CanPinMessages: String { return self._s[1694]! } + public var ChannelIntro_CreateChannel: String { return self._s[1695]! } + public var Conversation_UnreadMessages: String { return self._s[1696]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1697]! } + public var Channel_AdminLog_EmptyText: String { return self._s[1698]! } + public var Theme_Context_Apply: String { return self._s[1699]! } + public var Notification_GroupActivated: String { return self._s[1700]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[1701]! } + public var Wallet_Intro_CreateWallet: String { return self._s[1702]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1698]!, self._r[1698]!, [_0]) + return formatWithArgumentRanges(self._s[1703]!, self._r[1703]!, [_0]) } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1699]!, self._r[1699]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1704]!, self._r[1704]!, [_0, _1]) } - public var GroupInfo_ConvertToSupergroup: String { return self._s[1701]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[1706]! } public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1702]!, self._r[1702]!, [_0]) - } - public var Undo_DeletedChannel: String { return self._s[1703]! } - public var CallFeedback_AddComment: String { return self._s[1704]! } - public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1705]!, self._r[1705]!, [_0]) - } - public var Document_TargetConfirmationFormat: String { return self._s[1706]! } - public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1707]!, self._r[1707]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[1708]! } + public var Undo_DeletedChannel: String { return self._s[1708]! } + public var CallFeedback_AddComment: String { return self._s[1709]! } + public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1710]!, self._r[1710]!, [_0]) + } + public var Document_TargetConfirmationFormat: String { return self._s[1711]! } + public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1712]!, self._r[1712]!, [_0]) + } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[1713]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1709]!, self._r[1709]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[1714]!, self._r[1714]!, [_1, _2, _3, _4]) } - public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1710]! } - public var Theme_ErrorNotFound: String { return self._s[1711]! } - public var Contacts_SortByName: String { return self._s[1712]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1713]! } + public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1715]! } + public var Theme_ErrorNotFound: String { return self._s[1716]! } + public var Contacts_SortByName: String { return self._s[1717]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1718]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1715]!, self._r[1715]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1720]!, self._r[1720]!, [_1, _2, _3]) } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1716]! } - public var ScheduledMessages_EditTime: String { return self._s[1717]! } - public var Conversation_ClearSelfHistory: String { return self._s[1718]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1719]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[1720]! } - public var Stickers_SuggestNone: String { return self._s[1721]! } - public var ChatSettings_Cache: String { return self._s[1722]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1723]! } - public var Media_ShareThisPhoto: String { return self._s[1724]! } - public var Chat_SlowmodeTooltipPending: String { return self._s[1725]! } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[1726]! } - public var Conversation_ContextMenuCopyLink: String { return self._s[1727]! } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1728]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1729]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1730]! } - public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[1731]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1721]! } + public var ScheduledMessages_EditTime: String { return self._s[1722]! } + public var Conversation_ClearSelfHistory: String { return self._s[1723]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1724]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[1725]! } + public var Stickers_SuggestNone: String { return self._s[1726]! } + public var ChatSettings_Cache: String { return self._s[1727]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1728]! } + public var Media_ShareThisPhoto: String { return self._s[1729]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[1730]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[1731]! } + public var Conversation_ContextMenuCopyLink: String { return self._s[1732]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1733]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1734]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1735]! } + public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[1736]! } public func Wallet_SecureStorageReset_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1732]!, self._r[1732]!, [_0]) + return formatWithArgumentRanges(self._s[1737]!, self._r[1737]!, [_0]) } - public var Permissions_CellularDataTitle_v0: String { return self._s[1733]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1735]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1736]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[1737]! } - public var Map_OpenIn: String { return self._s[1738]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[1738]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1740]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1741]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[1742]! } + public var Map_OpenIn: String { return self._s[1743]! } public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1741]!, self._r[1741]!, [_1]) + return formatWithArgumentRanges(self._s[1746]!, self._r[1746]!, [_1]) } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1742]!, self._r[1742]!, [_0]) + return formatWithArgumentRanges(self._s[1747]!, self._r[1747]!, [_0]) } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1743]! } - public var MessagePoll_LabelClosed: String { return self._s[1744]! } - public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1746]! } - public var Wallet_Send_SendAnyway: String { return self._s[1747]! } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1748]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[1749]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1750]! } - public var Map_SetThisPlace: String { return self._s[1751]! } - public var Login_SelectCountry_Title: String { return self._s[1752]! } - public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1753]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1748]! } + public var MessagePoll_LabelClosed: String { return self._s[1749]! } + public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1751]! } + public var Wallet_Send_SendAnyway: String { return self._s[1752]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1753]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[1754]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1755]! } + public var Map_SetThisPlace: String { return self._s[1756]! } + public var Login_SelectCountry_Title: String { return self._s[1757]! } + public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1758]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1754]!, self._r[1754]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1759]!, self._r[1759]!, [_1, _2]) } - public var Channel_AdminLog_ChangeInfo: String { return self._s[1755]! } - public var Watch_Suggestion_BRB: String { return self._s[1756]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[1757]! } - public var Contacts_PermissionsTitle: String { return self._s[1758]! } - public var Conversation_RestrictedInline: String { return self._s[1759]! } - public var Appearance_RemoveThemeColor: String { return self._s[1761]! } - public var StickerPack_ViewPack: String { return self._s[1762]! } - public var Wallet_UnknownError: String { return self._s[1763]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[1760]! } + public var Watch_Suggestion_BRB: String { return self._s[1761]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[1762]! } + public var Contacts_PermissionsTitle: String { return self._s[1763]! } + public var Conversation_RestrictedInline: String { return self._s[1764]! } + public var Appearance_RemoveThemeColor: String { return self._s[1766]! } + public var StickerPack_ViewPack: String { return self._s[1767]! } + public var Wallet_UnknownError: String { return self._s[1768]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1764]!, self._r[1764]!, [_0]) + return formatWithArgumentRanges(self._s[1769]!, self._r[1769]!, [_0]) } - public var Compose_NewChannel: String { return self._s[1766]! } - public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1769]! } - public var MessagePoll_LabelQuiz: String { return self._s[1771]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1772]! } - public var Channel_Info_Stickers: String { return self._s[1773]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[1774]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1775]! } - public var Passport_DeletePersonalDetails: String { return self._s[1776]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[1777]! } - public var Channel_DiscussionGroupInfo: String { return self._s[1778]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1779]! } - public var Conversation_SearchNoResults: String { return self._s[1782]! } - public var Wallet_Configuration_ApplyErrorTextURLInvalid: String { return self._s[1783]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1784]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1785]! } - public var Login_Code: String { return self._s[1786]! } - public var EditTheme_Create_BottomInfo: String { return self._s[1787]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[1788]! } - public var Weekday_ShortThursday: String { return self._s[1789]! } - public var Resolve_ErrorNotFound: String { return self._s[1791]! } - public var LastSeen_Offline: String { return self._s[1792]! } - public var PeopleNearby_NoMembers: String { return self._s[1793]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[1794]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1795]! } - public var GroupInfo_Title: String { return self._s[1797]! } - public var NotificationsSound_Note: String { return self._s[1798]! } - public var Conversation_EditingMessagePanelTitle: String { return self._s[1799]! } - public var Watch_Message_Poll: String { return self._s[1800]! } - public var Privacy_Calls: String { return self._s[1801]! } + public var Compose_NewChannel: String { return self._s[1771]! } + public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1774]! } + public var MessagePoll_LabelQuiz: String { return self._s[1776]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1777]! } + public var Channel_Info_Stickers: String { return self._s[1778]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[1779]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1780]! } + public var Passport_DeletePersonalDetails: String { return self._s[1781]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[1782]! } + public var Channel_DiscussionGroupInfo: String { return self._s[1783]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1784]! } + public var Conversation_SearchNoResults: String { return self._s[1787]! } + public var Wallet_Configuration_ApplyErrorTextURLInvalid: String { return self._s[1788]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1789]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1790]! } + public var Login_Code: String { return self._s[1791]! } + public var EditTheme_Create_BottomInfo: String { return self._s[1792]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[1793]! } + public var Weekday_ShortThursday: String { return self._s[1794]! } + public var Resolve_ErrorNotFound: String { return self._s[1796]! } + public var LastSeen_Offline: String { return self._s[1797]! } + public var PeopleNearby_NoMembers: String { return self._s[1798]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[1799]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1800]! } + public var GroupInfo_Title: String { return self._s[1802]! } + public var NotificationsSound_Note: String { return self._s[1803]! } + public var Conversation_EditingMessagePanelTitle: String { return self._s[1804]! } + public var Watch_Message_Poll: String { return self._s[1805]! } + public var Privacy_Calls: String { return self._s[1806]! } public func Channel_AdminLog_MessageRankUsername(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1802]!, self._r[1802]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1807]!, self._r[1807]!, [_1, _2, _3]) } - public var Month_ShortAugust: String { return self._s[1803]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[1804]! } - public var Notifications_Reset: String { return self._s[1805]! } - public var Conversation_Pin: String { return self._s[1806]! } - public var Passport_Language_lv: String { return self._s[1807]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1808]! } - public var BlockedUsers_Info: String { return self._s[1809]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1811]! } - public var Watch_Conversation_Unblock: String { return self._s[1813]! } + public var Month_ShortAugust: String { return self._s[1808]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[1809]! } + public var Notifications_Reset: String { return self._s[1810]! } + public var Conversation_Pin: String { return self._s[1811]! } + public var Passport_Language_lv: String { return self._s[1812]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1813]! } + public var BlockedUsers_Info: String { return self._s[1814]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1816]! } + public var Watch_Conversation_Unblock: String { return self._s[1818]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1814]!, self._r[1814]!, [_0]) + return formatWithArgumentRanges(self._s[1819]!, self._r[1819]!, [_0]) } - public var CloudStorage_Title: String { return self._s[1815]! } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1816]! } + public var CloudStorage_Title: String { return self._s[1820]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1821]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1817]!, self._r[1817]!, [_0]) + return formatWithArgumentRanges(self._s[1822]!, self._r[1822]!, [_0]) } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1818]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[1819]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1820]! } - public var Passport_Address_EditBankStatement: String { return self._s[1821]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1823]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[1824]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1825]! } + public var Passport_Address_EditBankStatement: String { return self._s[1826]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1822]!, self._r[1822]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1827]!, self._r[1827]!, [_1, _2]) } - public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1823]! } - public var ShareMenu_Comment: String { return self._s[1824]! } - public var Permissions_ContactsTitle_v0: String { return self._s[1825]! } - public var Notifications_PermissionsTitle: String { return self._s[1826]! } - public var GroupPermission_NoSendLinks: String { return self._s[1827]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1828]! } - public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1829]! } - public var Settings_Support: String { return self._s[1830]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1831]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1832]! } - public var Privacy_Forwards_Preview: String { return self._s[1833]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[1834]! } - public var Watch_Stickers_StickerPacks: String { return self._s[1835]! } - public var Common_Select: String { return self._s[1837]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1838]! } - public var WallpaperSearch_ColorGray: String { return self._s[1841]! } - public var TwoFactorSetup_Password_PlaceholderPassword: String { return self._s[1842]! } - public var TwoFactorSetup_Hint_SkipAction: String { return self._s[1843]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1844]! } - public var PollResults_Title: String { return self._s[1845]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1846]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[1847]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1848]! } - public var Widget_AuthRequired: String { return self._s[1849]! } - public var Camera_FlashOn: String { return self._s[1850]! } - public var Conversation_ContextMenuLookUp: String { return self._s[1851]! } - public var Channel_Stickers_NotFoundHelp: String { return self._s[1852]! } - public var Watch_Suggestion_OK: String { return self._s[1853]! } + public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1828]! } + public var ShareMenu_Comment: String { return self._s[1829]! } + public var Permissions_ContactsTitle_v0: String { return self._s[1830]! } + public var Notifications_PermissionsTitle: String { return self._s[1831]! } + public var GroupPermission_NoSendLinks: String { return self._s[1832]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1833]! } + public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1834]! } + public var Settings_Support: String { return self._s[1835]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1836]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1837]! } + public var Privacy_Forwards_Preview: String { return self._s[1838]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[1839]! } + public var Watch_Stickers_StickerPacks: String { return self._s[1840]! } + public var Common_Select: String { return self._s[1842]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1843]! } + public var WallpaperSearch_ColorGray: String { return self._s[1846]! } + public var TwoFactorSetup_Password_PlaceholderPassword: String { return self._s[1847]! } + public var TwoFactorSetup_Hint_SkipAction: String { return self._s[1848]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1849]! } + public var PollResults_Title: String { return self._s[1850]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1851]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[1852]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1853]! } + public var Widget_AuthRequired: String { return self._s[1854]! } + public var Camera_FlashOn: String { return self._s[1855]! } + public var Conversation_ContextMenuLookUp: String { return self._s[1856]! } + public var Channel_Stickers_NotFoundHelp: String { return self._s[1857]! } + public var Watch_Suggestion_OK: String { return self._s[1858]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1855]!, self._r[1855]!, [_0]) + return formatWithArgumentRanges(self._s[1860]!, self._r[1860]!, [_0]) } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1857]!, self._r[1857]!, [_0]) + return formatWithArgumentRanges(self._s[1862]!, self._r[1862]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[1858]! } - public var DialogList_AdLabel: String { return self._s[1859]! } - public var WatchRemote_NotificationText: String { return self._s[1860]! } - public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1861]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1862]! } - public var Conversation_ReportSpam: String { return self._s[1863]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1864]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[1866]! } - public var PhoneLabel_Title: String { return self._s[1867]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[1868]! } - public var Settings_ChangePhoneNumber: String { return self._s[1869]! } - public var Notifications_ExceptionsTitle: String { return self._s[1870]! } - public var Notifications_AlertTones: String { return self._s[1871]! } - public var Call_ReportIncludeLogDescription: String { return self._s[1872]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1873]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1874]! } - public var VoiceOver_Chat_Photo: String { return self._s[1876]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[1877]! } - public var ReportPeer_ReasonOther: String { return self._s[1878]! } - public var ChatList_Context_JoinChannel: String { return self._s[1879]! } - public var KeyCommand_ScrollDown: String { return self._s[1881]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[1882]! } + public var TextFormat_Strikethrough: String { return self._s[1863]! } + public var DialogList_AdLabel: String { return self._s[1864]! } + public var WatchRemote_NotificationText: String { return self._s[1865]! } + public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1866]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1867]! } + public var Conversation_ReportSpam: String { return self._s[1868]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1869]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[1871]! } + public var PhoneLabel_Title: String { return self._s[1872]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[1873]! } + public var Settings_ChangePhoneNumber: String { return self._s[1874]! } + public var Notifications_ExceptionsTitle: String { return self._s[1875]! } + public var Notifications_AlertTones: String { return self._s[1876]! } + public var Call_ReportIncludeLogDescription: String { return self._s[1877]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1878]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1879]! } + public var VoiceOver_Chat_Photo: String { return self._s[1881]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[1882]! } + public var ReportPeer_ReasonOther: String { return self._s[1883]! } + public var ChatList_Context_JoinChannel: String { return self._s[1884]! } + public var KeyCommand_ScrollDown: String { return self._s[1886]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[1887]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1883]!, self._r[1883]!, [_0]) + return formatWithArgumentRanges(self._s[1888]!, self._r[1888]!, [_0]) } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1884]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1885]! } - public var AuthSessions_LogOut: String { return self._s[1886]! } - public var Passport_Identity_TypeInternalPassport: String { return self._s[1887]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1888]! } - public var Passport_Phone_Title: String { return self._s[1889]! } - public var ContactList_Context_StartSecretChat: String { return self._s[1890]! } - public var Settings_PhoneNumber: String { return self._s[1891]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1889]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1890]! } + public var AuthSessions_LogOut: String { return self._s[1891]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[1892]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1893]! } + public var Passport_Phone_Title: String { return self._s[1894]! } + public var ContactList_Context_StartSecretChat: String { return self._s[1895]! } + public var Settings_PhoneNumber: String { return self._s[1896]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1892]!, self._r[1892]!, [_0]) + return formatWithArgumentRanges(self._s[1897]!, self._r[1897]!, [_0]) } - public var NotificationsSound_Alert: String { return self._s[1894]! } - public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1895]! } - public var WebSearch_SearchNoResults: String { return self._s[1896]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1898]! } - public var Wallet_Configuration_SourceInfo: String { return self._s[1899]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1900]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[1901]! } - public var PhotoEditor_CurvesTool: String { return self._s[1902]! } - public var Checkout_PaymentMethod: String { return self._s[1904]! } + public var NotificationsSound_Alert: String { return self._s[1899]! } + public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1900]! } + public var WebSearch_SearchNoResults: String { return self._s[1901]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1903]! } + public var Wallet_Configuration_SourceInfo: String { return self._s[1904]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1905]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[1906]! } + public var PhotoEditor_CurvesTool: String { return self._s[1907]! } + public var Checkout_PaymentMethod: String { return self._s[1909]! } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1905]!, self._r[1905]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1910]!, self._r[1910]!, [_1, _2]) } - public var Contacts_AccessDeniedError: String { return self._s[1906]! } - public var Camera_PhotoMode: String { return self._s[1909]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1910]! } - public var Appearance_TextSize_Apply: String { return self._s[1911]! } - public var Passport_Address_AddUtilityBill: String { return self._s[1913]! } - public var CallSettings_OnMobile: String { return self._s[1914]! } - public var Tour_Text2: String { return self._s[1915]! } + public var Contacts_AccessDeniedError: String { return self._s[1911]! } + public var Camera_PhotoMode: String { return self._s[1914]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1915]! } + public var Appearance_TextSize_Apply: String { return self._s[1916]! } + public var Passport_Address_AddUtilityBill: String { return self._s[1918]! } + public var CallSettings_OnMobile: String { return self._s[1919]! } + public var Tour_Text2: String { return self._s[1920]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1916]!, self._r[1916]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1921]!, self._r[1921]!, [_1, _2]) } - public var DialogList_EncryptionProcessing: String { return self._s[1918]! } - public var Permissions_Skip: String { return self._s[1919]! } - public var Wallet_Words_NotDoneOk: String { return self._s[1920]! } - public var SecretImage_Title: String { return self._s[1921]! } - public var Watch_MessageView_Title: String { return self._s[1922]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1923]! } - public var AttachmentMenu_Poll: String { return self._s[1924]! } + public var DialogList_EncryptionProcessing: String { return self._s[1923]! } + public var Permissions_Skip: String { return self._s[1924]! } + public var Wallet_Words_NotDoneOk: String { return self._s[1925]! } + public var SecretImage_Title: String { return self._s[1926]! } + public var Watch_MessageView_Title: String { return self._s[1927]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1928]! } + public var AttachmentMenu_Poll: String { return self._s[1929]! } public func Notification_GroupInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1925]!, self._r[1925]!, [_0]) + return formatWithArgumentRanges(self._s[1930]!, self._r[1930]!, [_0]) } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1926]!, self._r[1926]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1931]!, self._r[1931]!, [_1, _2]) } - public var Notification_CallCanceled: String { return self._s[1927]! } - public var WallpaperPreview_Title: String { return self._s[1928]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1929]! } - public var Settings_ProxyConnecting: String { return self._s[1930]! } - public var Settings_CheckPhoneNumberText: String { return self._s[1932]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[1933]! } - public var Wallet_Intro_Title: String { return self._s[1934]! } - public var TwoFactorSetup_Password_Action: String { return self._s[1935]! } - public var Profile_MessageLifetime5s: String { return self._s[1936]! } - public var Username_InvalidCharacters: String { return self._s[1937]! } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1938]! } - public var ScheduledMessages_ClearAll: String { return self._s[1939]! } - public var WallpaperPreview_CropBottomText: String { return self._s[1940]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[1941]! } - public var Settings_AddAccount: String { return self._s[1942]! } - public var Notification_CreatedChannel: String { return self._s[1945]! } + public var Notification_CallCanceled: String { return self._s[1932]! } + public var WallpaperPreview_Title: String { return self._s[1933]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1934]! } + public var Settings_ProxyConnecting: String { return self._s[1935]! } + public var Settings_CheckPhoneNumberText: String { return self._s[1937]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[1938]! } + public var Wallet_Intro_Title: String { return self._s[1939]! } + public var TwoFactorSetup_Password_Action: String { return self._s[1940]! } + public var Profile_MessageLifetime5s: String { return self._s[1941]! } + public var Username_InvalidCharacters: String { return self._s[1942]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1943]! } + public var ScheduledMessages_ClearAll: String { return self._s[1944]! } + public var WallpaperPreview_CropBottomText: String { return self._s[1945]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[1946]! } + public var Settings_AddAccount: String { return self._s[1947]! } + public var Notification_CreatedChannel: String { return self._s[1950]! } public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1946]!, self._r[1946]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1951]!, self._r[1951]!, [_1, _2, _3]) } - public var Passcode_AppLockedAlert: String { return self._s[1948]! } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1949]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[1950]! } - public var Contacts_TopSection: String { return self._s[1951]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1952]! } + public var Passcode_AppLockedAlert: String { return self._s[1953]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1954]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[1955]! } + public var Contacts_TopSection: String { return self._s[1956]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1957]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1953]!, self._r[1953]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1958]!, self._r[1958]!, [_0, _1]) } - public var Wallet_Info_Receive: String { return self._s[1954]! } - public var Wallet_Completed_ViewWallet: String { return self._s[1955]! } + public var Wallet_Info_Receive: String { return self._s[1959]! } + public var Wallet_Completed_ViewWallet: String { return self._s[1960]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1956]!, self._r[1956]!, [_0]) + return formatWithArgumentRanges(self._s[1961]!, self._r[1961]!, [_0]) } - public var ReportPeer_ReasonSpam: String { return self._s[1957]! } - public var UserInfo_TapToCall: String { return self._s[1958]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1960]! } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1961]! } - public var Common_Search: String { return self._s[1962]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1963]! } + public var ReportPeer_ReasonSpam: String { return self._s[1962]! } + public var UserInfo_TapToCall: String { return self._s[1963]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1965]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1966]! } + public var Common_Search: String { return self._s[1967]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1968]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1964]!, self._r[1964]!, [_0]) + return formatWithArgumentRanges(self._s[1969]!, self._r[1969]!, [_0]) } - public var Wallet_Month_ShortJuly: String { return self._s[1965]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1967]! } - public var Message_InvoiceLabel: String { return self._s[1968]! } - public var Conversation_InputTextPlaceholder: String { return self._s[1969]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1970]! } + public var Wallet_Month_ShortJuly: String { return self._s[1970]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1972]! } + public var Message_InvoiceLabel: String { return self._s[1973]! } + public var Conversation_InputTextPlaceholder: String { return self._s[1974]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1975]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1971]!, self._r[1971]!, [_0]) + return formatWithArgumentRanges(self._s[1976]!, self._r[1976]!, [_0]) } - public var IntentsSettings_Reset: String { return self._s[1972]! } - public var Conversation_Info: String { return self._s[1973]! } - public var Login_InfoDeletePhoto: String { return self._s[1974]! } - public var Passport_Language_vi: String { return self._s[1976]! } - public var UserInfo_ScamUserWarning: String { return self._s[1977]! } - public var Conversation_Search: String { return self._s[1978]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1980]! } - public var ReportPeer_ReasonPornography: String { return self._s[1981]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1982]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1983]! } - public var Map_LiveLocationGroupDescription: String { return self._s[1984]! } - public var Channel_Setup_TypeHeader: String { return self._s[1985]! } - public var AuthSessions_LoggedIn: String { return self._s[1986]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1987]! } - public var Login_SmsRequestState3: String { return self._s[1988]! } - public var Passport_Address_EditUtilityBill: String { return self._s[1989]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1990]! } - public var Join_ChannelsTooMuch: String { return self._s[1991]! } - public var Channel_Edit_LinkItem: String { return self._s[1992]! } - public var Privacy_Calls_P2PNever: String { return self._s[1993]! } - public var Conversation_AddToReadingList: String { return self._s[1995]! } - public var Share_MultipleMessagesDisabled: String { return self._s[1996]! } - public var Message_Animation: String { return self._s[1997]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[1998]! } - public var Map_Unknown: String { return self._s[1999]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[2000]! } + public var IntentsSettings_Reset: String { return self._s[1977]! } + public var Conversation_Info: String { return self._s[1978]! } + public var Login_InfoDeletePhoto: String { return self._s[1979]! } + public var Passport_Language_vi: String { return self._s[1981]! } + public var UserInfo_ScamUserWarning: String { return self._s[1982]! } + public var Conversation_Search: String { return self._s[1983]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1985]! } + public var ReportPeer_ReasonPornography: String { return self._s[1986]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1987]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1988]! } + public var Map_LiveLocationGroupDescription: String { return self._s[1989]! } + public var Channel_Setup_TypeHeader: String { return self._s[1990]! } + public var AuthSessions_LoggedIn: String { return self._s[1991]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1992]! } + public var Login_SmsRequestState3: String { return self._s[1993]! } + public var Passport_Address_EditUtilityBill: String { return self._s[1994]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1995]! } + public var Join_ChannelsTooMuch: String { return self._s[1996]! } + public var Channel_Edit_LinkItem: String { return self._s[1997]! } + public var Privacy_Calls_P2PNever: String { return self._s[1998]! } + public var Conversation_AddToReadingList: String { return self._s[2000]! } + public var Share_MultipleMessagesDisabled: String { return self._s[2001]! } + public var Message_Animation: String { return self._s[2002]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[2003]! } + public var Map_Unknown: String { return self._s[2004]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[2005]! } public func PUSH_PINNED_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2001]!, self._r[2001]!, [_1, _2]) - } - public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2002]!, self._r[2002]!, [_1, _2]) - } - public var Call_StatusRequesting: String { return self._s[2003]! } - public var Conversation_SecretChatContextBotAlert: String { return self._s[2004]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[2005]! } - public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2006]!, self._r[2006]!, [_1, _2]) } + public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2007]!, self._r[2007]!, [_1, _2]) + } + public var Call_StatusRequesting: String { return self._s[2008]! } + public var Conversation_SecretChatContextBotAlert: String { return self._s[2009]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[2010]! } + public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2011]!, self._r[2011]!, [_1, _2]) + } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2007]!, self._r[2007]!, [_0]) + return formatWithArgumentRanges(self._s[2012]!, self._r[2012]!, [_0]) } - public var Update_Skip: String { return self._s[2008]! } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2009]! } - public var Message_PinnedPollMessage: String { return self._s[2010]! } - public var BlockedUsers_Title: String { return self._s[2011]! } + public var Update_Skip: String { return self._s[2013]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2014]! } + public var Message_PinnedPollMessage: String { return self._s[2015]! } + public var BlockedUsers_Title: String { return self._s[2016]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2012]!, self._r[2012]!, [_1]) + return formatWithArgumentRanges(self._s[2017]!, self._r[2017]!, [_1]) } - public var Username_CheckingUsername: String { return self._s[2013]! } - public var NotificationsSound_Bell: String { return self._s[2014]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[2015]! } - public var Weekday_Monday: String { return self._s[2016]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[2017]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[2018]! } - public var ChatSettings_Groups: String { return self._s[2019]! } - public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2020]! } + public var Username_CheckingUsername: String { return self._s[2018]! } + public var NotificationsSound_Bell: String { return self._s[2019]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[2020]! } + public var Weekday_Monday: String { return self._s[2021]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[2022]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[2023]! } + public var ChatSettings_Groups: String { return self._s[2024]! } + public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2025]! } public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2021]!, self._r[2021]!, [_0]) + return formatWithArgumentRanges(self._s[2026]!, self._r[2026]!, [_0]) } - public var Your_card_was_declined: String { return self._s[2022]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2024]! } - public var Wallet_Month_ShortApril: String { return self._s[2025]! } - public var ChatList_Unmute: String { return self._s[2026]! } - public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2027]! } - public var PhotoEditor_CurvesAll: String { return self._s[2028]! } - public var Weekday_ShortTuesday: String { return self._s[2029]! } - public var DialogList_Read: String { return self._s[2030]! } - public var Appearance_AppIconClassic: String { return self._s[2031]! } - public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[2032]! } - public var Passport_Identity_Gender: String { return self._s[2033]! } + public var Your_card_was_declined: String { return self._s[2027]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2029]! } + public var Wallet_Month_ShortApril: String { return self._s[2030]! } + public var ChatList_Unmute: String { return self._s[2031]! } + public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2032]! } + public var PhotoEditor_CurvesAll: String { return self._s[2033]! } + public var Weekday_ShortTuesday: String { return self._s[2034]! } + public var DialogList_Read: String { return self._s[2035]! } + public var Appearance_AppIconClassic: String { return self._s[2036]! } + public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[2037]! } + public var Passport_Identity_Gender: String { return self._s[2038]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2034]!, self._r[2034]!, [_0]) + return formatWithArgumentRanges(self._s[2039]!, self._r[2039]!, [_0]) } - public var Target_SelectGroup: String { return self._s[2035]! } - public var Map_HomeAndWorkInfo: String { return self._s[2037]! } + public var Target_SelectGroup: String { return self._s[2040]! } + public var Map_HomeAndWorkInfo: String { return self._s[2042]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2038]!, self._r[2038]!, [_0]) + return formatWithArgumentRanges(self._s[2043]!, self._r[2043]!, [_0]) } - public var Passport_Language_en: String { return self._s[2039]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[2040]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2041]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[2042]! } - public var ScheduledMessages_SendNow: String { return self._s[2043]! } - public var Checkout_NewCard_PaymentCard: String { return self._s[2045]! } - public var Login_InfoHelp: String { return self._s[2046]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2047]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2048]! } + public var Passport_Language_en: String { return self._s[2044]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[2045]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2046]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[2047]! } + public var ScheduledMessages_SendNow: String { return self._s[2048]! } + public var Checkout_NewCard_PaymentCard: String { return self._s[2050]! } + public var Login_InfoHelp: String { return self._s[2051]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2052]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2053]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2049]!, self._r[2049]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2054]!, self._r[2054]!, [_1, _2]) } - public var SocksProxySetup_AddProxy: String { return self._s[2052]! } - public var CreatePoll_Title: String { return self._s[2053]! } - public var Conversation_ViewTheme: String { return self._s[2054]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2055]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2056]! } - public var TwoFactorSetup_Intro_Text: String { return self._s[2057]! } - public var UserInfo_GroupsInCommon: String { return self._s[2058]! } - public var TelegramWallet_Intro_TermsUrl: String { return self._s[2059]! } - public var Call_AudioRouteHide: String { return self._s[2060]! } + public var SocksProxySetup_AddProxy: String { return self._s[2057]! } + public var CreatePoll_Title: String { return self._s[2058]! } + public var MessagePoll_QuizNoUsers: String { return self._s[2059]! } + public var Conversation_ViewTheme: String { return self._s[2060]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2061]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2062]! } + public var TwoFactorSetup_Intro_Text: String { return self._s[2063]! } + public var UserInfo_GroupsInCommon: String { return self._s[2064]! } + public var TelegramWallet_Intro_TermsUrl: String { return self._s[2065]! } + public var Call_AudioRouteHide: String { return self._s[2066]! } public func Wallet_Info_TransactionDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2062]!, self._r[2062]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2068]!, self._r[2068]!, [_1, _2]) } - public var ContactInfo_PhoneLabelMobile: String { return self._s[2063]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2064]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[2069]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2070]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2065]!, self._r[2065]!, [_0]) + return formatWithArgumentRanges(self._s[2071]!, self._r[2071]!, [_0]) } - public var TextFormat_Bold: String { return self._s[2066]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2067]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[2068]! } - public var Notifications_Title: String { return self._s[2069]! } - public var Group_Username_InvalidTooShort: String { return self._s[2070]! } - public var Channel_ErrorAddTooMuch: String { return self._s[2071]! } + public var TextFormat_Bold: String { return self._s[2072]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2073]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[2074]! } + public var Notifications_Title: String { return self._s[2075]! } + public var Group_Username_InvalidTooShort: String { return self._s[2076]! } + public var Channel_ErrorAddTooMuch: String { return self._s[2077]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2072]!, self._r[2072]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2078]!, self._r[2078]!, ["\(_0)"]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[2074]! } - public var Stickers_SuggestAdded: String { return self._s[2075]! } - public var Login_CountryCode: String { return self._s[2076]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[2077]! } - public var Map_GetDirections: String { return self._s[2078]! } - public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2079]! } - public var Login_PhoneFloodError: String { return self._s[2080]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[2080]! } + public var Stickers_SuggestAdded: String { return self._s[2081]! } + public var Login_CountryCode: String { return self._s[2082]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[2083]! } + public var Map_GetDirections: String { return self._s[2084]! } + public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2085]! } + public var Login_PhoneFloodError: String { return self._s[2086]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2081]!, self._r[2081]!, [_0]) + return formatWithArgumentRanges(self._s[2087]!, self._r[2087]!, [_0]) } public func Wallet_Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2082]!, self._r[2082]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2088]!, self._r[2088]!, [_1, _2, _3]) } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2083]! } - public var Settings_SetUsername: String { return self._s[2085]! } - public var Group_Location_ChangeLocation: String { return self._s[2086]! } - public var Notification_GroupInviterSelf: String { return self._s[2087]! } - public var InstantPage_TapToOpenLink: String { return self._s[2088]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2089]! } + public var Settings_SetUsername: String { return self._s[2091]! } + public var Group_Location_ChangeLocation: String { return self._s[2092]! } + public var Notification_GroupInviterSelf: String { return self._s[2093]! } + public var InstantPage_TapToOpenLink: String { return self._s[2094]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2089]!, self._r[2089]!, [_0]) + return formatWithArgumentRanges(self._s[2095]!, self._r[2095]!, [_0]) } - public var Watch_Suggestion_TalkLater: String { return self._s[2090]! } - public var SecretChat_Title: String { return self._s[2091]! } - public var Group_UpgradeNoticeText1: String { return self._s[2092]! } - public var AuthSessions_Title: String { return self._s[2093]! } + public var Watch_Suggestion_TalkLater: String { return self._s[2096]! } + public var SecretChat_Title: String { return self._s[2097]! } + public var Group_UpgradeNoticeText1: String { return self._s[2098]! } + public var AuthSessions_Title: String { return self._s[2099]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2094]!, self._r[2094]!, [_0]) + return formatWithArgumentRanges(self._s[2100]!, self._r[2100]!, [_0]) } - public var PhotoEditor_CropAuto: String { return self._s[2095]! } - public var Channel_About_Title: String { return self._s[2096]! } - public var Theme_ThemeChanged: String { return self._s[2097]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[2098]! } + public var PhotoEditor_CropAuto: String { return self._s[2101]! } + public var Channel_About_Title: String { return self._s[2102]! } + public var Theme_ThemeChanged: String { return self._s[2103]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[2104]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2100]!, self._r[2100]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2106]!, self._r[2106]!, ["\(_0)"]) } - public var VoiceOver_MessageContextReport: String { return self._s[2101]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2103]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[2104]! } + public var VoiceOver_MessageContextReport: String { return self._s[2107]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2109]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[2110]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2105]!, self._r[2105]!, [_1]) + return formatWithArgumentRanges(self._s[2111]!, self._r[2111]!, [_1]) } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2107]!, self._r[2107]!, [_0]) + return formatWithArgumentRanges(self._s[2113]!, self._r[2113]!, [_0]) } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2108]!, self._r[2108]!, [_0]) + return formatWithArgumentRanges(self._s[2114]!, self._r[2114]!, [_0]) } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2109]! } - public var Presence_online: String { return self._s[2112]! } - public var PasscodeSettings_Title: String { return self._s[2113]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2114]! } - public var Web_OpenExternal: String { return self._s[2115]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[2117]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2118]! } - public var LocalGroup_Title: String { return self._s[2119]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2115]! } + public var Presence_online: String { return self._s[2118]! } + public var PasscodeSettings_Title: String { return self._s[2119]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2120]! } + public var Web_OpenExternal: String { return self._s[2121]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[2123]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2124]! } + public var LocalGroup_Title: String { return self._s[2125]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2120]!, self._r[2120]!, [_0]) + return formatWithArgumentRanges(self._s[2126]!, self._r[2126]!, [_0]) } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2121]! } - public var Map_YouAreHere: String { return self._s[2122]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2127]! } + public var Conversation_StopQuizConfirmation: String { return self._s[2128]! } + public var Map_YouAreHere: String { return self._s[2129]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2123]!, self._r[2123]!, [_0]) + return formatWithArgumentRanges(self._s[2130]!, self._r[2130]!, [_0]) } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2124]!, self._r[2124]!, [_0]) + return formatWithArgumentRanges(self._s[2131]!, self._r[2131]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[2125]! } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2126]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2127]! } + public var Theme_Context_ChangeColors: String { return self._s[2132]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2133]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2134]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2128]!, self._r[2128]!, [_0]) + return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_0]) } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2129]!, self._r[2129]!, [_0]) + return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[2130]! } - public var Bot_Start: String { return self._s[2131]! } + public var SocksProxySetup_Username: String { return self._s[2137]! } + public var Bot_Start: String { return self._s[2138]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2132]!, self._r[2132]!, [_0]) - } - public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2133]!, self._r[2133]!, [_0]) - } - public var Contacts_SortByPresence: String { return self._s[2134]! } - public var AccentColor_Title: String { return self._s[2136]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2137]! } - public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2138]!, self._r[2138]!, [_1, _2]) - } - public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2139]!, self._r[2139]!, [_0]) } + public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2140]!, self._r[2140]!, [_0]) + } + public var Contacts_SortByPresence: String { return self._s[2141]! } + public var AccentColor_Title: String { return self._s[2143]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2144]! } + public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2145]!, self._r[2145]!, [_1, _2]) + } + public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2146]!, self._r[2146]!, [_0]) + } public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2140]!, self._r[2140]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2147]!, self._r[2147]!, [_1, _2]) } - public var Passport_Email_EnterOtherEmail: String { return self._s[2141]! } - public var Login_InfoAvatarPhoto: String { return self._s[2142]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2143]! } - public var Tour_Title4: String { return self._s[2144]! } - public var Passport_Identity_Translation: String { return self._s[2145]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2146]! } - public var Login_TermsOfServiceLabel: String { return self._s[2148]! } - public var Passport_Language_it: String { return self._s[2149]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2150]! } - public var Passport_Identity_SelfieHelp: String { return self._s[2151]! } - public var Conversation_ClearAll: String { return self._s[2153]! } - public var Wallet_Send_UninitializedText: String { return self._s[2155]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[2156]! } - public var TwoStepAuth_FloodError: String { return self._s[2157]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[2148]! } + public var Login_InfoAvatarPhoto: String { return self._s[2149]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2150]! } + public var Tour_Title4: String { return self._s[2151]! } + public var Passport_Identity_Translation: String { return self._s[2152]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2153]! } + public var Login_TermsOfServiceLabel: String { return self._s[2155]! } + public var Passport_Language_it: String { return self._s[2156]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2157]! } + public var Passport_Identity_SelfieHelp: String { return self._s[2158]! } + public var Conversation_ClearAll: String { return self._s[2160]! } + public var Wallet_Send_UninitializedText: String { return self._s[2162]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[2163]! } + public var TwoStepAuth_FloodError: String { return self._s[2164]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2158]!, self._r[2158]!, [_1]) + return formatWithArgumentRanges(self._s[2165]!, self._r[2165]!, [_1]) } - public var Paint_Delete: String { return self._s[2159]! } + public var Paint_Delete: String { return self._s[2166]! } public func Wallet_Sent_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2160]!, self._r[2160]!, [_0]) + return formatWithArgumentRanges(self._s[2167]!, self._r[2167]!, [_0]) } - public var Privacy_AddNewPeer: String { return self._s[2161]! } + public var Privacy_AddNewPeer: String { return self._s[2168]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2162]!, self._r[2162]!, [_1]) + return formatWithArgumentRanges(self._s[2169]!, self._r[2169]!, [_1]) } - public var LogoutOptions_SetPasscodeText: String { return self._s[2163]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[2170]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2164]!, self._r[2164]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2171]!, self._r[2171]!, [_1, _2]) } - public var Message_PinnedAudioMessage: String { return self._s[2165]! } + public var Message_PinnedAudioMessage: String { return self._s[2172]! } public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2166]!, self._r[2166]!, [_0]) + return formatWithArgumentRanges(self._s[2173]!, self._r[2173]!, [_0]) } - public var Notification_Mute1hMin: String { return self._s[2167]! } - public var Notifications_GroupNotificationsSound: String { return self._s[2168]! } - public var Wallet_Month_GenNovember: String { return self._s[2169]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[2170]! } - public var Conversation_MessageEditedLabel: String { return self._s[2171]! } + public var Notification_Mute1hMin: String { return self._s[2174]! } + public var Notifications_GroupNotificationsSound: String { return self._s[2175]! } + public var Wallet_Month_GenNovember: String { return self._s[2176]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[2177]! } + public var Conversation_MessageEditedLabel: String { return self._s[2178]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2172]!, self._r[2172]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2179]!, self._r[2179]!, [_0, _1]) } - public var Notification_Exceptions_AlwaysOff: String { return self._s[2173]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2174]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[2180]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2181]! } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2175]!, self._r[2175]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2182]!, self._r[2182]!, [_0, _1, _2]) } - public var NetworkUsageSettings_ResetStats: String { return self._s[2176]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[2183]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2177]!, self._r[2177]!, [_1]) + return formatWithArgumentRanges(self._s[2184]!, self._r[2184]!, [_1]) } - public var AccessDenied_LocationTracking: String { return self._s[2178]! } - public var Month_GenOctober: String { return self._s[2179]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2180]! } - public var EnterPasscode_EnterPasscode: String { return self._s[2181]! } - public var MediaPicker_TimerTooltip: String { return self._s[2183]! } - public var SharedMedia_TitleAll: String { return self._s[2184]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2187]! } - public var Conversation_RestrictedMedia: String { return self._s[2188]! } - public var AccessDenied_PhotosRestricted: String { return self._s[2189]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2191]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2192]! } + public var AccessDenied_LocationTracking: String { return self._s[2185]! } + public var Month_GenOctober: String { return self._s[2186]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2187]! } + public var EnterPasscode_EnterPasscode: String { return self._s[2188]! } + public var MediaPicker_TimerTooltip: String { return self._s[2190]! } + public var SharedMedia_TitleAll: String { return self._s[2191]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2194]! } + public var Conversation_RestrictedMedia: String { return self._s[2195]! } + public var AccessDenied_PhotosRestricted: String { return self._s[2196]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2198]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2199]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2193]!, self._r[2193]!, [_0]) + return formatWithArgumentRanges(self._s[2200]!, self._r[2200]!, [_0]) } - public var Conversation_SavedMessages: String { return self._s[2196]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[2198]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2199]! } + public var Conversation_SavedMessages: String { return self._s[2203]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[2205]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2206]! } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2201]!, self._r[2201]!, [_0]) + return formatWithArgumentRanges(self._s[2208]!, self._r[2208]!, [_0]) } - public var VoiceOver_Chat_YourMessage: String { return self._s[2202]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2209]! } public func VoiceOver_Chat_Title(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2203]!, self._r[2203]!, [_0]) + return formatWithArgumentRanges(self._s[2210]!, self._r[2210]!, [_0]) } - public var ReportPeer_AlertSuccess: String { return self._s[2204]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2205]! } + public var ReportPeer_AlertSuccess: String { return self._s[2211]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2212]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2206]!, self._r[2206]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2213]!, self._r[2213]!, [_1, _2]) } - public var Checkout_PasswordEntry_Title: String { return self._s[2207]! } - public var PhotoEditor_FadeTool: String { return self._s[2208]! } - public var Privacy_ContactsReset: String { return self._s[2209]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2214]! } + public var PhotoEditor_FadeTool: String { return self._s[2215]! } + public var Privacy_ContactsReset: String { return self._s[2216]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2211]!, self._r[2211]!, [_0]) + return formatWithArgumentRanges(self._s[2218]!, self._r[2218]!, [_0]) } - public var Message_PinnedVideoMessage: String { return self._s[2212]! } - public var ChatList_Mute: String { return self._s[2213]! } + public var Message_PinnedVideoMessage: String { return self._s[2219]! } + public var ChatList_Mute: String { return self._s[2220]! } public func Wallet_Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2214]!, self._r[2214]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2221]!, self._r[2221]!, [_1, _2, _3]) } - public var Permissions_CellularDataText_v0: String { return self._s[2215]! } - public var ShareMenu_SelectChats: String { return self._s[2218]! } - public var ChatList_Context_Unarchive: String { return self._s[2219]! } - public var MusicPlayer_VoiceNote: String { return self._s[2220]! } - public var Conversation_RestrictedText: String { return self._s[2221]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2222]! } - public var Wallet_Month_GenApril: String { return self._s[2223]! } - public var Wallet_Month_ShortMarch: String { return self._s[2224]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[2225]! } - public var Cache_Videos: String { return self._s[2226]! } - public var PrivacySettings_PhoneNumber: String { return self._s[2227]! } - public var Wallet_Month_GenFebruary: String { return self._s[2228]! } - public var FeatureDisabled_Oops: String { return self._s[2230]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[2231]! } + public var Permissions_CellularDataText_v0: String { return self._s[2222]! } + public var ShareMenu_SelectChats: String { return self._s[2225]! } + public var ChatList_Context_Unarchive: String { return self._s[2226]! } + public var MusicPlayer_VoiceNote: String { return self._s[2227]! } + public var Conversation_RestrictedText: String { return self._s[2228]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2229]! } + public var Wallet_Month_GenApril: String { return self._s[2230]! } + public var Wallet_Month_ShortMarch: String { return self._s[2231]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2232]! } + public var Cache_Videos: String { return self._s[2233]! } + public var PrivacySettings_PhoneNumber: String { return self._s[2234]! } + public var Wallet_Month_GenFebruary: String { return self._s[2235]! } + public var FeatureDisabled_Oops: String { return self._s[2237]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[2238]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2232]!, self._r[2232]!, [_0]) + return formatWithArgumentRanges(self._s[2239]!, self._r[2239]!, [_0]) } - public var Stickers_GroupStickersHelp: String { return self._s[2233]! } - public var GroupPermission_NoSendPolls: String { return self._s[2234]! } - public var Wallet_Qr_ScanCode: String { return self._s[2235]! } - public var Message_VideoExpired: String { return self._s[2237]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[2238]! } - public var Notifications_Badge: String { return self._s[2239]! } - public var Wallet_Receive_AddressCopied: String { return self._s[2240]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[2241]! } - public var Username_InvalidTooShort: String { return self._s[2242]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2243]! } - public var Channel_AdminLog_PinMessages: String { return self._s[2244]! } - public var ArchivedChats_IntroTitle3: String { return self._s[2245]! } + public var Stickers_GroupStickersHelp: String { return self._s[2240]! } + public var GroupPermission_NoSendPolls: String { return self._s[2241]! } + public var Wallet_Qr_ScanCode: String { return self._s[2242]! } + public var Message_VideoExpired: String { return self._s[2244]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[2245]! } + public var Notifications_Badge: String { return self._s[2246]! } + public var Wallet_Receive_AddressCopied: String { return self._s[2247]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[2248]! } + public var Username_InvalidTooShort: String { return self._s[2249]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2250]! } + public var Channel_AdminLog_PinMessages: String { return self._s[2251]! } + public var ArchivedChats_IntroTitle3: String { return self._s[2252]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2246]!, self._r[2246]!, [_1]) + return formatWithArgumentRanges(self._s[2253]!, self._r[2253]!, [_1]) } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[2247]! } - public var Conversation_DefaultRestrictedText: String { return self._s[2248]! } - public var SharedMedia_CategoryDocs: String { return self._s[2251]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[2254]! } + public var Conversation_DefaultRestrictedText: String { return self._s[2255]! } + public var SharedMedia_CategoryDocs: String { return self._s[2258]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2252]!, self._r[2252]!, [_1]) + return formatWithArgumentRanges(self._s[2259]!, self._r[2259]!, [_1]) } - public var Wallet_Send_UninitializedTitle: String { return self._s[2253]! } - public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2254]! } - public var Privacy_Forwards_NeverLink: String { return self._s[2256]! } + public var Wallet_Send_UninitializedTitle: String { return self._s[2260]! } + public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2261]! } + public var Privacy_Forwards_NeverLink: String { return self._s[2263]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2257]!, self._r[2257]!, [_1]) + return formatWithArgumentRanges(self._s[2264]!, self._r[2264]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2258]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2265]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2259]!, self._r[2259]!, [_0]) + return formatWithArgumentRanges(self._s[2266]!, self._r[2266]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[2260]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2261]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[2262]! } - public var Channel_UpdatePhotoItem: String { return self._s[2263]! } - public var GroupInfo_LeftStatus: String { return self._s[2264]! } - public var Watch_MessageView_Forward: String { return self._s[2266]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[2267]! } - public var Cache_ClearEmpty: String { return self._s[2269]! } - public var Localization_LanguageName: String { return self._s[2270]! } - public var Wallet_AccessDenied_Title: String { return self._s[2271]! } - public var WebSearch_GIFs: String { return self._s[2272]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2273]! } - public var Wallet_AccessDenied_Settings: String { return self._s[2274]! } - public var Username_InvalidStartsWithNumber: String { return self._s[2275]! } - public var Common_Back: String { return self._s[2276]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2277]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2278]! } - public var Wallet_Send_Send: String { return self._s[2279]! } + public var ChatSettings_PrivateChats: String { return self._s[2267]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2268]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[2269]! } + public var Channel_UpdatePhotoItem: String { return self._s[2270]! } + public var GroupInfo_LeftStatus: String { return self._s[2271]! } + public var Watch_MessageView_Forward: String { return self._s[2273]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[2274]! } + public var Cache_ClearEmpty: String { return self._s[2276]! } + public var Localization_LanguageName: String { return self._s[2277]! } + public var Wallet_AccessDenied_Title: String { return self._s[2278]! } + public var WebSearch_GIFs: String { return self._s[2279]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2280]! } + public var Wallet_AccessDenied_Settings: String { return self._s[2281]! } + public var Username_InvalidStartsWithNumber: String { return self._s[2282]! } + public var Common_Back: String { return self._s[2283]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2284]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2285]! } + public var Wallet_Send_Send: String { return self._s[2286]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2281]!, self._r[2281]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2288]!, self._r[2288]!, [_1, _2]) } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[2282]! } - public var Wallet_Month_GenJune: String { return self._s[2283]! } - public var Passport_Email_Help: String { return self._s[2284]! } - public var Watch_Conversation_Reply: String { return self._s[2286]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[2289]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2290]! } - public var Channel_BanUser_Unban: String { return self._s[2292]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2293]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2294]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2296]! } - public var Wallet_Send_AddressHeader: String { return self._s[2297]! } - public var Passport_Identity_Name: String { return self._s[2298]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[2289]! } + public var Wallet_Month_GenJune: String { return self._s[2290]! } + public var Passport_Email_Help: String { return self._s[2291]! } + public var Watch_Conversation_Reply: String { return self._s[2293]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[2296]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2297]! } + public var Channel_BanUser_Unban: String { return self._s[2299]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2300]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2301]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2303]! } + public var Wallet_Send_AddressHeader: String { return self._s[2304]! } + public var Passport_Identity_Name: String { return self._s[2305]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2299]!, self._r[2299]!, [_0]) + return formatWithArgumentRanges(self._s[2306]!, self._r[2306]!, [_0]) } - public var GroupRemoved_ViewUserInfo: String { return self._s[2300]! } - public var Conversation_BlockUser: String { return self._s[2301]! } - public var Month_GenJanuary: String { return self._s[2302]! } - public var ChatSettings_TextSize: String { return self._s[2303]! } - public var Notification_PassportValuePhone: String { return self._s[2304]! } - public var MediaPlayer_UnknownArtist: String { return self._s[2305]! } - public var Passport_Language_ne: String { return self._s[2306]! } - public var Notification_CallBack: String { return self._s[2307]! } - public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2308]! } - public var TwoStepAuth_EmailHelp: String { return self._s[2309]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[2307]! } + public var Conversation_BlockUser: String { return self._s[2308]! } + public var Month_GenJanuary: String { return self._s[2309]! } + public var ChatSettings_TextSize: String { return self._s[2310]! } + public var Notification_PassportValuePhone: String { return self._s[2311]! } + public var MediaPlayer_UnknownArtist: String { return self._s[2312]! } + public var Passport_Language_ne: String { return self._s[2313]! } + public var Notification_CallBack: String { return self._s[2314]! } + public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2315]! } + public var TwoStepAuth_EmailHelp: String { return self._s[2316]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2310]!, self._r[2310]!, [_0]) + return formatWithArgumentRanges(self._s[2317]!, self._r[2317]!, [_0]) } - public var Channel_Info_Management: String { return self._s[2311]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[2312]! } - public var Stickers_FrequentlyUsed: String { return self._s[2313]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2314]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2316]! } + public var Channel_Info_Management: String { return self._s[2318]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[2319]! } + public var Stickers_FrequentlyUsed: String { return self._s[2320]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2321]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2323]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2317]!, self._r[2317]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[2324]!, self._r[2324]!, [_1, "\(_2)"]) } - public var TwoFactorSetup_Password_Title: String { return self._s[2318]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[2319]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[2320]! } - public var CreatePoll_TextHeader: String { return self._s[2321]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2325]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[2326]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[2327]! } + public var CreatePoll_TextHeader: String { return self._s[2328]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2322]!, self._r[2322]!, [_0]) - } - public var PhotoEditor_QualityMedium: String { return self._s[2323]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2324]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[2326]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[2327]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[2328]! } - public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2329]!, self._r[2329]!, [_0]) } + public var PhotoEditor_QualityMedium: String { return self._s[2330]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2331]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[2333]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[2334]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[2335]! } + public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2336]!, self._r[2336]!, [_0]) + } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2330]!, self._r[2330]!, [_1]) + return formatWithArgumentRanges(self._s[2337]!, self._r[2337]!, [_1]) } - public var LogoutOptions_LogOutWalletInfo: String { return self._s[2331]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2332]! } - public var Conversation_LinkDialogOpen: String { return self._s[2334]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2335]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[2336]! } - public var Settings_Username: String { return self._s[2338]! } - public var Conversation_Block: String { return self._s[2340]! } - public var Wallpaper_Wallpaper: String { return self._s[2341]! } - public var SocksProxySetup_UseProxy: String { return self._s[2343]! } - public var Wallet_Send_Confirmation: String { return self._s[2344]! } - public var EditTheme_UploadEditedTheme: String { return self._s[2345]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[2346]! } - public var MessageTimer_Forever: String { return self._s[2347]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[2348]! } - public var PhotoEditor_DiscardChanges: String { return self._s[2349]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2350]! } - public var Passport_Language_da: String { return self._s[2351]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[2352]! } + public var LogoutOptions_LogOutWalletInfo: String { return self._s[2338]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2339]! } + public var Conversation_LinkDialogOpen: String { return self._s[2341]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2342]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[2343]! } + public var Settings_Username: String { return self._s[2345]! } + public var Conversation_Block: String { return self._s[2347]! } + public var Wallpaper_Wallpaper: String { return self._s[2348]! } + public var SocksProxySetup_UseProxy: String { return self._s[2350]! } + public var Wallet_Send_Confirmation: String { return self._s[2351]! } + public var EditTheme_UploadEditedTheme: String { return self._s[2352]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[2353]! } + public var MessageTimer_Forever: String { return self._s[2354]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[2355]! } + public var PhotoEditor_DiscardChanges: String { return self._s[2356]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2357]! } + public var Passport_Language_da: String { return self._s[2358]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[2359]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2353]!, self._r[2353]!, [_0]) + return formatWithArgumentRanges(self._s[2360]!, self._r[2360]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[2354]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[2361]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2356]!, self._r[2356]!, [_0]) + return formatWithArgumentRanges(self._s[2363]!, self._r[2363]!, [_0]) } - public var Settings_AddDevice: String { return self._s[2357]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2359]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2360]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2361]! } - public var Conversation_PinnedPoll: String { return self._s[2362]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2363]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2364]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2365]! } + public var Settings_AddDevice: String { return self._s[2364]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2366]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2367]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2368]! } + public var Conversation_PinnedPoll: String { return self._s[2369]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2370]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2371]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2372]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2366]!, self._r[2366]!, [_1]) + return formatWithArgumentRanges(self._s[2373]!, self._r[2373]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[2367]! } - public var Cache_ByPeerHeader: String { return self._s[2368]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2374]! } + public var Cache_ByPeerHeader: String { return self._s[2375]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2369]!, self._r[2369]!, [_0]) + return formatWithArgumentRanges(self._s[2376]!, self._r[2376]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[2370]! } - public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2373]! } - public var Wallet_Completed_Title: String { return self._s[2374]! } - public var Notification_PinnedMessage: String { return self._s[2375]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2376]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2378]! } - public var Contacts_SortBy: String { return self._s[2379]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[2377]! } + public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2380]! } + public var Wallet_Completed_Title: String { return self._s[2381]! } + public var Notification_PinnedMessage: String { return self._s[2382]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2383]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2385]! } + public var Contacts_SortBy: String { return self._s[2386]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2380]!, self._r[2380]!, [_1]) + return formatWithArgumentRanges(self._s[2387]!, self._r[2387]!, [_1]) } - public var Appearance_ColorThemeNight: String { return self._s[2382]! } + public var Appearance_ColorThemeNight: String { return self._s[2389]! } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2383]!, self._r[2383]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2390]!, self._r[2390]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[2384]! } - public var Watch_UserInfo_Service: String { return self._s[2385]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2387]! } - public var Conversation_Unpin: String { return self._s[2389]! } - public var CancelResetAccount_Title: String { return self._s[2390]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[2391]! } + public var Call_EncryptionKey_Title: String { return self._s[2391]! } + public var Watch_UserInfo_Service: String { return self._s[2392]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2394]! } + public var Conversation_Unpin: String { return self._s[2396]! } + public var CancelResetAccount_Title: String { return self._s[2397]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[2398]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2393]!, self._r[2393]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2400]!, self._r[2400]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2394]! } - public var CallSettings_Title: String { return self._s[2395]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2396]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[2398]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2399]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2401]! } + public var CallSettings_Title: String { return self._s[2402]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2403]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[2405]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2406]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2400]!, self._r[2400]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2407]!, self._r[2407]!, [_1, _2]) } - public var Passport_Identity_DocumentDetails: String { return self._s[2401]! } - public var LoginPassword_PasswordHelp: String { return self._s[2402]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2403]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2404]! } - public var ChatContextMenu_TextSelectionTip: String { return self._s[2405]! } - public var Checkout_TotalPaidAmount: String { return self._s[2406]! } + public var Passport_Identity_DocumentDetails: String { return self._s[2408]! } + public var LoginPassword_PasswordHelp: String { return self._s[2409]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2410]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2411]! } + public var ChatContextMenu_TextSelectionTip: String { return self._s[2412]! } + public var Checkout_TotalPaidAmount: String { return self._s[2413]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2407]!, self._r[2407]!, [_0]) + return formatWithArgumentRanges(self._s[2414]!, self._r[2414]!, [_0]) } - public var PasscodeSettings_ChangePasscode: String { return self._s[2408]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[2410]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[2411]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[2415]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[2417]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[2418]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2412]!, self._r[2412]!, [_1]) + return formatWithArgumentRanges(self._s[2419]!, self._r[2419]!, [_1]) } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2413]! } - public var Contacts_InviteFriends: String { return self._s[2415]! } - public var Map_ChooseLocationTitle: String { return self._s[2416]! } - public var Conversation_StopPoll: String { return self._s[2418]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2420]! } + public var Contacts_InviteFriends: String { return self._s[2422]! } + public var Map_ChooseLocationTitle: String { return self._s[2423]! } + public var Conversation_StopPoll: String { return self._s[2425]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2419]!, self._r[2419]!, [_0]) + return formatWithArgumentRanges(self._s[2426]!, self._r[2426]!, [_0]) } - public var Call_Camera: String { return self._s[2420]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2421]! } - public var AppWallet_Intro_Text: String { return self._s[2422]! } - public var Calls_RatingFeedback: String { return self._s[2423]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2425]! } - public var Wallet_Alert_OK: String { return self._s[2426]! } - public var NotificationsSound_Pulse: String { return self._s[2427]! } - public var Watch_LastSeen_Lately: String { return self._s[2428]! } - public var ReportGroupLocation_Report: String { return self._s[2431]! } - public var Widget_NoUsers: String { return self._s[2432]! } - public var Conversation_UnvotePoll: String { return self._s[2433]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2435]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2436]! } - public var NotificationsSound_Circles: String { return self._s[2437]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2440]! } - public var Wallet_Settings_DeleteWallet: String { return self._s[2441]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2442]! } - public var Proxy_TooltipUnavailable: String { return self._s[2443]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2445]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2447]! } - public var Conversation_FileDropbox: String { return self._s[2448]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[2449]! } - public var Tour_Text3: String { return self._s[2451]! } - public var Login_ResetAccountProtected_Title: String { return self._s[2453]! } - public var GroupPermission_NoSendMessages: String { return self._s[2454]! } - public var WallpaperSearch_ColorTitle: String { return self._s[2455]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2456]! } + public var Call_Camera: String { return self._s[2427]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2428]! } + public var AppWallet_Intro_Text: String { return self._s[2429]! } + public var Calls_RatingFeedback: String { return self._s[2430]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2432]! } + public var Wallet_Alert_OK: String { return self._s[2433]! } + public var NotificationsSound_Pulse: String { return self._s[2434]! } + public var Watch_LastSeen_Lately: String { return self._s[2435]! } + public var ReportGroupLocation_Report: String { return self._s[2438]! } + public var Widget_NoUsers: String { return self._s[2439]! } + public var Conversation_UnvotePoll: String { return self._s[2440]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2442]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2443]! } + public var NotificationsSound_Circles: String { return self._s[2444]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2447]! } + public var Wallet_Settings_DeleteWallet: String { return self._s[2448]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2449]! } + public var Proxy_TooltipUnavailable: String { return self._s[2450]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2452]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2454]! } + public var Conversation_FileDropbox: String { return self._s[2455]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[2456]! } + public var Tour_Text3: String { return self._s[2458]! } + public var Login_ResetAccountProtected_Title: String { return self._s[2460]! } + public var GroupPermission_NoSendMessages: String { return self._s[2461]! } + public var WallpaperSearch_ColorTitle: String { return self._s[2462]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2463]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2458]!, self._r[2458]!, [_0]) + return formatWithArgumentRanges(self._s[2465]!, self._r[2465]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[2459]! } - public var Checkout_ShippingOption_Title: String { return self._s[2460]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2461]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[2466]! } + public var Checkout_ShippingOption_Title: String { return self._s[2467]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2468]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2462]!, self._r[2462]!, [_0]) + return formatWithArgumentRanges(self._s[2469]!, self._r[2469]!, [_0]) } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2463]!, self._r[2463]!, [_0]) + return formatWithArgumentRanges(self._s[2470]!, self._r[2470]!, [_0]) } - public var Channel_Management_LabelAdministrator: String { return self._s[2464]! } - public var EditTheme_FileReadError: String { return self._s[2465]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[2466]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2467]! } - public var AutoDownloadSettings_Photos: String { return self._s[2469]! } - public var Appearance_PreviewIncomingText: String { return self._s[2470]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[2471]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[2472]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2473]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2474]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2475]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2476]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2477]! } - public var Notification_SecretChatScreenshot: String { return self._s[2478]! } - public var AccessDenied_Wallpapers: String { return self._s[2479]! } - public var ChatList_Context_Mute: String { return self._s[2481]! } - public var Passport_Address_City: String { return self._s[2482]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2483]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[2484]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2485]! } - public var AccessDenied_LocationDisabled: String { return self._s[2486]! } - public var Group_Location_Title: String { return self._s[2487]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2489]! } - public var GroupInfo_Sound: String { return self._s[2490]! } - public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2491]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[2492]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2493]! } - public var Contacts_Title: String { return self._s[2494]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[2495]! } - public var Passport_Language_fr: String { return self._s[2496]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2497]! } - public var Notifications_ResetAllNotifications: String { return self._s[2498]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2500]! } - public var PrivacySettings_SecurityTitle: String { return self._s[2502]! } - public var Checkout_NewCard_Title: String { return self._s[2503]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[2504]! } - public var Conversation_ForwardChats: String { return self._s[2505]! } - public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2507]! } - public var PasscodeSettings_4DigitCode: String { return self._s[2508]! } - public var Settings_FAQ: String { return self._s[2510]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2511]! } - public var Conversation_ContextMenuForward: String { return self._s[2512]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[2515]! } - public var PrivacyPolicy_Title: String { return self._s[2518]! } - public var Notifications_TextTone: String { return self._s[2519]! } - public var Profile_CreateNewContact: String { return self._s[2520]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2521]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2523]! } - public var Call_Speaker: String { return self._s[2524]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2525]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2527]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2528]! } + public var Channel_Management_LabelAdministrator: String { return self._s[2471]! } + public var EditTheme_FileReadError: String { return self._s[2472]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[2473]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2474]! } + public var AutoDownloadSettings_Photos: String { return self._s[2476]! } + public var Appearance_PreviewIncomingText: String { return self._s[2477]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[2478]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[2479]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2480]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2481]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2482]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2483]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2484]! } + public var Notification_SecretChatScreenshot: String { return self._s[2485]! } + public var AccessDenied_Wallpapers: String { return self._s[2486]! } + public var ChatList_Context_Mute: String { return self._s[2488]! } + public var Passport_Address_City: String { return self._s[2489]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2490]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[2491]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2492]! } + public var AccessDenied_LocationDisabled: String { return self._s[2493]! } + public var Group_Location_Title: String { return self._s[2494]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2496]! } + public var GroupInfo_Sound: String { return self._s[2497]! } + public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2498]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[2499]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2500]! } + public var Contacts_Title: String { return self._s[2501]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[2502]! } + public var Passport_Language_fr: String { return self._s[2503]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2504]! } + public var Notifications_ResetAllNotifications: String { return self._s[2505]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2507]! } + public var PrivacySettings_SecurityTitle: String { return self._s[2509]! } + public var Checkout_NewCard_Title: String { return self._s[2510]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[2511]! } + public var Conversation_ForwardChats: String { return self._s[2512]! } + public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2514]! } + public var PasscodeSettings_4DigitCode: String { return self._s[2515]! } + public var Settings_FAQ: String { return self._s[2517]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2518]! } + public var Conversation_ContextMenuForward: String { return self._s[2519]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[2522]! } + public var PrivacyPolicy_Title: String { return self._s[2525]! } + public var Notifications_TextTone: String { return self._s[2526]! } + public var Profile_CreateNewContact: String { return self._s[2527]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2528]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2530]! } + public var Call_Speaker: String { return self._s[2531]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2532]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2534]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2535]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2529]!, self._r[2529]!, [_0]) + return formatWithArgumentRanges(self._s[2536]!, self._r[2536]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2530]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2531]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2532]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2533]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[2534]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2535]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2536]! } - public var Bot_Unblock: String { return self._s[2537]! } - public var TextFormat_Italic: String { return self._s[2538]! } - public var WallpaperSearch_ColorPink: String { return self._s[2539]! } - public var Settings_About_Help: String { return self._s[2541]! } - public var SearchImages_Title: String { return self._s[2542]! } - public var Weekday_Wednesday: String { return self._s[2543]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2544]! } - public var ExplicitContent_AlertTitle: String { return self._s[2545]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2537]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2538]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2539]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2540]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[2541]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2542]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2543]! } + public var Bot_Unblock: String { return self._s[2544]! } + public var TextFormat_Italic: String { return self._s[2545]! } + public var WallpaperSearch_ColorPink: String { return self._s[2546]! } + public var Settings_About_Help: String { return self._s[2548]! } + public var SearchImages_Title: String { return self._s[2549]! } + public var Weekday_Wednesday: String { return self._s[2550]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2551]! } + public var ExplicitContent_AlertTitle: String { return self._s[2552]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2546]!, self._r[2546]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2553]!, self._r[2553]!, [_1, _2, _3]) } - public var Channel_DiscussionGroup_Create: String { return self._s[2547]! } - public var Weekday_Thursday: String { return self._s[2548]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2549]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2550]! } + public var Channel_DiscussionGroup_Create: String { return self._s[2554]! } + public var Weekday_Thursday: String { return self._s[2555]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2556]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2557]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2551]!, self._r[2551]!, [_0]) + return formatWithArgumentRanges(self._s[2558]!, self._r[2558]!, [_0]) } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2552]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2553]! } - public var Passport_RequestedInformation: String { return self._s[2554]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2555]! } - public var Conversation_EncryptionProcessing: String { return self._s[2557]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2558]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2560]! } - public var Channel_Setup_Title: String { return self._s[2561]! } - public var Conversation_SearchPlaceholder: String { return self._s[2562]! } - public var OldChannels_GroupEmptyFormat: String { return self._s[2563]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2564]! } - public var Checkout_ErrorGeneric: String { return self._s[2565]! } - public var Passport_Language_hu: String { return self._s[2566]! } - public var GroupPermission_EditingDisabled: String { return self._s[2567]! } - public var Wallet_Month_ShortSeptember: String { return self._s[2569]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2559]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2560]! } + public var Passport_RequestedInformation: String { return self._s[2561]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2562]! } + public var Conversation_EncryptionProcessing: String { return self._s[2564]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2565]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2567]! } + public var Channel_Setup_Title: String { return self._s[2568]! } + public var Conversation_SearchPlaceholder: String { return self._s[2569]! } + public var OldChannels_GroupEmptyFormat: String { return self._s[2570]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2571]! } + public var Checkout_ErrorGeneric: String { return self._s[2572]! } + public var Passport_Language_hu: String { return self._s[2573]! } + public var GroupPermission_EditingDisabled: String { return self._s[2574]! } + public var Wallet_Month_ShortSeptember: String { return self._s[2576]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2570]!, self._r[2570]!, [_0]) + return formatWithArgumentRanges(self._s[2577]!, self._r[2577]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2573]!, self._r[2573]!, [_1]) + return formatWithArgumentRanges(self._s[2580]!, self._r[2580]!, [_1]) } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2574]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2581]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2575]!, self._r[2575]!, [_0]) + return formatWithArgumentRanges(self._s[2582]!, self._r[2582]!, [_0]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2576]! } - public var Group_Location_Info: String { return self._s[2577]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2578]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2579]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2583]! } + public var Group_Location_Info: String { return self._s[2584]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2585]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2586]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2580]!, self._r[2580]!, [_0]) + return formatWithArgumentRanges(self._s[2587]!, self._r[2587]!, [_0]) } - public var Conversation_ClearPrivateHistory: String { return self._s[2581]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2582]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[2583]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2584]! } + public var Conversation_ClearPrivateHistory: String { return self._s[2588]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2589]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[2590]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2591]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2585]!, self._r[2585]!, [_0]) + return formatWithArgumentRanges(self._s[2592]!, self._r[2592]!, [_0]) } - public var Passport_Language_cs: String { return self._s[2586]! } - public var Message_PinnedAnimationMessage: String { return self._s[2588]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2590]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2591]! } - public var Wallet_Info_TransactionTo: String { return self._s[2593]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2594]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2595]! } - public var Embed_PlayingInPIP: String { return self._s[2596]! } - public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2597]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2598]! } + public var Passport_Language_cs: String { return self._s[2593]! } + public var Message_PinnedAnimationMessage: String { return self._s[2595]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2597]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2598]! } + public var Wallet_Info_TransactionTo: String { return self._s[2600]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2601]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2602]! } + public var Embed_PlayingInPIP: String { return self._s[2603]! } + public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2604]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2605]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2599]!, self._r[2599]!, [_0]) + return formatWithArgumentRanges(self._s[2606]!, self._r[2606]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2600]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[2607]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2601]!, self._r[2601]!, [_1]) + return formatWithArgumentRanges(self._s[2608]!, self._r[2608]!, [_1]) } - public var Notification_PaymentSent: String { return self._s[2602]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2603]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2604]! } - public var AutoNightTheme_System: String { return self._s[2605]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2606]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2607]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2608]! } + public var Notification_PaymentSent: String { return self._s[2609]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2610]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2611]! } + public var AutoNightTheme_System: String { return self._s[2612]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2613]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2614]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2615]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2611]!, self._r[2611]!, [_1]) + return formatWithArgumentRanges(self._s[2618]!, self._r[2618]!, [_1]) } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2612]!, self._r[2612]!, [_1]) + return formatWithArgumentRanges(self._s[2619]!, self._r[2619]!, [_1]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2613]!, self._r[2613]!, [_1]) + return formatWithArgumentRanges(self._s[2620]!, self._r[2620]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2615]! } - public var PasscodeSettings_HelpTop: String { return self._s[2616]! } - public var Conversation_WalletRequiredTitle: String { return self._s[2617]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2618]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2619]! } - public var EditTheme_ShortLink: String { return self._s[2620]! } - public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2621]! } - public var ProxyServer_VoiceOver_Active: String { return self._s[2622]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2623]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2624]! } - public var Call_Accept: String { return self._s[2626]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2627]! } - public var Month_GenMarch: String { return self._s[2629]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2630]! } - public var LoginPassword_Title: String { return self._s[2631]! } - public var Call_End: String { return self._s[2632]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2633]! } - public var VoiceOver_Chat_Contact: String { return self._s[2634]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2635]! } - public var CallSettings_Always: String { return self._s[2636]! } - public var CallFeedback_Success: String { return self._s[2637]! } - public var TwoStepAuth_SetupHint: String { return self._s[2638]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2622]! } + public var PasscodeSettings_HelpTop: String { return self._s[2623]! } + public var Conversation_WalletRequiredTitle: String { return self._s[2624]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2625]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2626]! } + public var EditTheme_ShortLink: String { return self._s[2627]! } + public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2628]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[2629]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2630]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2631]! } + public var Call_Accept: String { return self._s[2633]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2634]! } + public var Month_GenMarch: String { return self._s[2636]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2637]! } + public var LoginPassword_Title: String { return self._s[2638]! } + public var Call_End: String { return self._s[2639]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2640]! } + public var VoiceOver_Chat_Contact: String { return self._s[2641]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2642]! } + public var CallSettings_Always: String { return self._s[2643]! } + public var CallFeedback_Success: String { return self._s[2644]! } + public var TwoStepAuth_SetupHint: String { return self._s[2645]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2639]!, self._r[2639]!, [_1]) + return formatWithArgumentRanges(self._s[2646]!, self._r[2646]!, [_1]) } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2640]! } - public var Login_PhoneTitle: String { return self._s[2641]! } - public var Passport_FieldPhoneHelp: String { return self._s[2642]! } - public var Weekday_ShortSunday: String { return self._s[2643]! } - public var Passport_InfoFAQ_URL: String { return self._s[2644]! } - public var ContactInfo_Job: String { return self._s[2646]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2647]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[2648]! } - public var CreatePoll_QuizTip: String { return self._s[2649]! } - public var TwoFactorSetup_Email_Text: String { return self._s[2650]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2651]! } - public var Invite_ChannelsTooMuch: String { return self._s[2652]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[2653]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2654]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2655]! } - public var Wallet_Receive_AmountText: String { return self._s[2656]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2657]! } - public var CallFeedback_ReasonNoise: String { return self._s[2658]! } - public var Appearance_AppIconDefault: String { return self._s[2660]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2661]! } - public var MediaPicker_AddCaption: String { return self._s[2662]! } - public var CallSettings_TabIconDescription: String { return self._s[2663]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2647]! } + public var Login_PhoneTitle: String { return self._s[2648]! } + public var Passport_FieldPhoneHelp: String { return self._s[2649]! } + public var Weekday_ShortSunday: String { return self._s[2650]! } + public var Passport_InfoFAQ_URL: String { return self._s[2651]! } + public var ContactInfo_Job: String { return self._s[2653]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2654]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[2655]! } + public var CreatePoll_QuizTip: String { return self._s[2656]! } + public var TwoFactorSetup_Email_Text: String { return self._s[2657]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2658]! } + public var Invite_ChannelsTooMuch: String { return self._s[2659]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[2660]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2661]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2662]! } + public var Wallet_Receive_AmountText: String { return self._s[2663]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2664]! } + public var CallFeedback_ReasonNoise: String { return self._s[2665]! } + public var Appearance_AppIconDefault: String { return self._s[2667]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2668]! } + public var MediaPicker_AddCaption: String { return self._s[2669]! } + public var CallSettings_TabIconDescription: String { return self._s[2670]! } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2664]!, self._r[2664]!, [_0]) + return formatWithArgumentRanges(self._s[2671]!, self._r[2671]!, [_0]) } - public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2665]! } + public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2672]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2666]!, self._r[2666]!, [_0]) + return formatWithArgumentRanges(self._s[2673]!, self._r[2673]!, [_0]) } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2667]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2668]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2669]! } - public var DialogList_SearchSectionRecent: String { return self._s[2670]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2671]! } - public var CreatePoll_Anonymous: String { return self._s[2672]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2675]! } - public var LastSeen_WithinAWeek: String { return self._s[2676]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2677]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2679]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2680]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2674]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2675]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2676]! } + public var DialogList_SearchSectionRecent: String { return self._s[2677]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2678]! } + public var CreatePoll_Anonymous: String { return self._s[2679]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2682]! } + public var LastSeen_WithinAWeek: String { return self._s[2683]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2684]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2686]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2687]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2681]!, self._r[2681]!, [_0]) + return formatWithArgumentRanges(self._s[2688]!, self._r[2688]!, [_0]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2682]! } - public var Conversation_StatusLeftGroup: String { return self._s[2683]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2684]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2686]! } - public var GroupPermission_AddSuccess: String { return self._s[2687]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2689]! } - public var Conversation_ContextMenuCopy: String { return self._s[2690]! } - public var AccessDenied_CallMicrophone: String { return self._s[2691]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2689]! } + public var Conversation_StatusLeftGroup: String { return self._s[2690]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2691]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2693]! } + public var GroupPermission_AddSuccess: String { return self._s[2694]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2696]! } + public var Conversation_ContextMenuCopy: String { return self._s[2697]! } + public var AccessDenied_CallMicrophone: String { return self._s[2698]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2692]!, self._r[2692]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2699]!, self._r[2699]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2693]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2694]! } - public var Checkout_PaymentMethod_New: String { return self._s[2695]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2696]! } - public var PhotoEditor_QualityTool: String { return self._s[2697]! } - public var Login_SendCodeViaSms: String { return self._s[2698]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2699]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2700]! } - public var Wallet_Receive_CopyAddress: String { return self._s[2701]! } - public var Login_EmailNotConfiguredError: String { return self._s[2702]! } - public var SocksProxySetup_Status: String { return self._s[2703]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2704]! } - public var PrivacyPolicy_Accept: String { return self._s[2705]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2706]! } - public var Appearance_AppIconClassicX: String { return self._s[2707]! } + public var Login_InvalidFirstNameError: String { return self._s[2700]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2701]! } + public var Checkout_PaymentMethod_New: String { return self._s[2702]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2703]! } + public var PhotoEditor_QualityTool: String { return self._s[2704]! } + public var Login_SendCodeViaSms: String { return self._s[2705]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2706]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2707]! } + public var Wallet_Receive_CopyAddress: String { return self._s[2708]! } + public var Login_EmailNotConfiguredError: String { return self._s[2709]! } + public var SocksProxySetup_Status: String { return self._s[2710]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2711]! } + public var PrivacyPolicy_Accept: String { return self._s[2712]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2713]! } + public var Appearance_AppIconClassicX: String { return self._s[2714]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2708]!, self._r[2708]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2715]!, self._r[2715]!, [_1, _2, _3]) } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[2709]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2711]! } - public var AutoNightTheme_Automatic: String { return self._s[2712]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2713]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2714]! } - public var Cache_Help: String { return self._s[2715]! } - public var Group_ErrorAccessDenied: String { return self._s[2716]! } - public var Passport_Language_fa: String { return self._s[2717]! } - public var Wallet_Intro_Text: String { return self._s[2718]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2719]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2720]! } - public var PrivacySettings_LastSeen: String { return self._s[2721]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[2716]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2718]! } + public var AutoNightTheme_Automatic: String { return self._s[2719]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2720]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2721]! } + public var Cache_Help: String { return self._s[2722]! } + public var Group_ErrorAccessDenied: String { return self._s[2723]! } + public var Passport_Language_fa: String { return self._s[2724]! } + public var Wallet_Intro_Text: String { return self._s[2725]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2726]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2727]! } + public var PrivacySettings_LastSeen: String { return self._s[2728]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2722]!, self._r[2722]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2729]!, self._r[2729]!, [_0, _1]) } - public var Wallet_Configuration_Apply: String { return self._s[2726]! } - public var Preview_SaveGif: String { return self._s[2727]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2728]! } - public var Profile_About: String { return self._s[2729]! } - public var Channel_About_Placeholder: String { return self._s[2730]! } - public var Login_InfoTitle: String { return self._s[2731]! } + public var Wallet_Configuration_Apply: String { return self._s[2733]! } + public var Preview_SaveGif: String { return self._s[2734]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2735]! } + public var Profile_About: String { return self._s[2736]! } + public var Channel_About_Placeholder: String { return self._s[2737]! } + public var Login_InfoTitle: String { return self._s[2738]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2732]!, self._r[2732]!, [_0]) + return formatWithArgumentRanges(self._s[2739]!, self._r[2739]!, [_0]) } - public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2733]! } - public var Watch_Suggestion_CantTalk: String { return self._s[2735]! } - public var ContactInfo_Title: String { return self._s[2736]! } - public var Media_ShareThisVideo: String { return self._s[2737]! } - public var Weekday_ShortFriday: String { return self._s[2738]! } - public var AccessDenied_Contacts: String { return self._s[2740]! } - public var Notification_CallIncomingShort: String { return self._s[2741]! } - public var Group_Setup_TypePublic: String { return self._s[2742]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2743]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2744]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2747]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2748]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2749]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2750]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2751]! } + public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2740]! } + public var Watch_Suggestion_CantTalk: String { return self._s[2742]! } + public var ContactInfo_Title: String { return self._s[2743]! } + public var Media_ShareThisVideo: String { return self._s[2744]! } + public var Weekday_ShortFriday: String { return self._s[2745]! } + public var AccessDenied_Contacts: String { return self._s[2747]! } + public var Notification_CallIncomingShort: String { return self._s[2748]! } + public var Group_Setup_TypePublic: String { return self._s[2749]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2750]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[2751]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[2754]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2755]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2756]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2757]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2758]! } public func Wallet_SecureStorageChanged_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2752]!, self._r[2752]!, [_0]) + return formatWithArgumentRanges(self._s[2759]!, self._r[2759]!, [_0]) } - public var DialogList_Typing: String { return self._s[2753]! } - public var CallFeedback_IncludeLogs: String { return self._s[2755]! } - public var Checkout_Phone: String { return self._s[2757]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[2760]! } - public var Privacy_Calls_Integration: String { return self._s[2761]! } - public var Notifications_PermissionsAllow: String { return self._s[2762]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[2766]! } - public var Settings_ChatSettings: String { return self._s[2767]! } - public var Conversation_SendingOptionsTooltip: String { return self._s[2768]! } + public var DialogList_Typing: String { return self._s[2760]! } + public var CallFeedback_IncludeLogs: String { return self._s[2762]! } + public var Checkout_Phone: String { return self._s[2764]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[2767]! } + public var Privacy_Calls_Integration: String { return self._s[2768]! } + public var Notifications_PermissionsAllow: String { return self._s[2769]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[2773]! } + public var Settings_ChatSettings: String { return self._s[2774]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[2775]! } public func UserInfo_StartSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2770]!, self._r[2770]!, [_0]) + return formatWithArgumentRanges(self._s[2777]!, self._r[2777]!, [_0]) } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2771]!, self._r[2771]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2778]!, self._r[2778]!, [_1, _2]) } - public var GroupRemoved_DeleteUser: String { return self._s[2773]! } + public var GroupRemoved_DeleteUser: String { return self._s[2780]! } public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2774]!, self._r[2774]!, [_0]) + return formatWithArgumentRanges(self._s[2781]!, self._r[2781]!, [_0]) } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2775]!, self._r[2775]!, [_1]) + return formatWithArgumentRanges(self._s[2782]!, self._r[2782]!, [_1]) } - public var Login_ContinueWithLocalization: String { return self._s[2776]! } - public var Watch_Message_ForwardedFrom: String { return self._s[2777]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[2779]! } - public var Conversation_Unblock: String { return self._s[2780]! } - public var PrivacySettings_DataSettings: String { return self._s[2781]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[2782]! } - public var Group_PublicLink_Info: String { return self._s[2783]! } + public var Login_ContinueWithLocalization: String { return self._s[2783]! } + public var Watch_Message_ForwardedFrom: String { return self._s[2784]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[2786]! } + public var Conversation_Unblock: String { return self._s[2787]! } + public var PrivacySettings_DataSettings: String { return self._s[2788]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[2789]! } + public var Group_PublicLink_Info: String { return self._s[2790]! } public func Wallet_Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2784]!, self._r[2784]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2791]!, self._r[2791]!, [_1, _2, _3]) } - public var Notifications_InAppNotificationsVibrate: String { return self._s[2785]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[2792]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2786]!, self._r[2786]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2793]!, self._r[2793]!, [_0, _1]) } - public var OldChannels_ChannelsHeader: String { return self._s[2788]! } - public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2789]! } - public var PrivacySettings_Passcode: String { return self._s[2791]! } - public var Call_Mute: String { return self._s[2792]! } - public var Wallet_Weekday_Yesterday: String { return self._s[2793]! } - public var Passport_Language_dz: String { return self._s[2794]! } - public var Wallet_Receive_AmountHeader: String { return self._s[2795]! } - public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2796]! } - public var Passport_Language_tk: String { return self._s[2797]! } + public var OldChannels_ChannelsHeader: String { return self._s[2795]! } + public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2796]! } + public var PrivacySettings_Passcode: String { return self._s[2798]! } + public var Call_Mute: String { return self._s[2799]! } + public var Wallet_Weekday_Yesterday: String { return self._s[2800]! } + public var Passport_Language_dz: String { return self._s[2801]! } + public var Wallet_Receive_AmountHeader: String { return self._s[2802]! } + public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2803]! } + public var Passport_Language_tk: String { return self._s[2804]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2798]!, self._r[2798]!, [_0]) + return formatWithArgumentRanges(self._s[2805]!, self._r[2805]!, [_0]) } - public var Settings_Search: String { return self._s[2799]! } - public var Wallet_Month_ShortFebruary: String { return self._s[2800]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2801]! } - public var Wallet_Configuration_SourceJSON: String { return self._s[2802]! } - public var Conversation_ContextMenuReply: String { return self._s[2803]! } - public var WallpaperSearch_ColorBrown: String { return self._s[2804]! } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2805]! } - public var Tour_Title1: String { return self._s[2806]! } - public var Wallet_Alert_Cancel: String { return self._s[2807]! } - public var Conversation_ClearGroupHistory: String { return self._s[2809]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2810]! } - public var WallpaperPreview_Motion: String { return self._s[2811]! } + public var Settings_Search: String { return self._s[2806]! } + public var Wallet_Month_ShortFebruary: String { return self._s[2807]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2808]! } + public var Wallet_Configuration_SourceJSON: String { return self._s[2809]! } + public var Conversation_ContextMenuReply: String { return self._s[2810]! } + public var WallpaperSearch_ColorBrown: String { return self._s[2811]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2812]! } + public var Tour_Title1: String { return self._s[2813]! } + public var Wallet_Alert_Cancel: String { return self._s[2814]! } + public var Conversation_ClearGroupHistory: String { return self._s[2816]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2817]! } + public var WallpaperPreview_Motion: String { return self._s[2818]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2812]!, self._r[2812]!, [_0]) + return formatWithArgumentRanges(self._s[2819]!, self._r[2819]!, [_0]) } - public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2813]! } - public var Call_RateCall: String { return self._s[2814]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2815]! } - public var Passport_PasswordCompleteSetup: String { return self._s[2816]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2817]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[2819]! } + public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2820]! } + public var Call_RateCall: String { return self._s[2821]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2822]! } + public var Passport_PasswordCompleteSetup: String { return self._s[2823]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2824]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[2826]! } public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2821]!, self._r[2821]!, [_0]) + return formatWithArgumentRanges(self._s[2828]!, self._r[2828]!, [_0]) } - public var Compose_Create: String { return self._s[2822]! } - public var Contacts_InviteToTelegram: String { return self._s[2823]! } - public var GroupInfo_Notifications: String { return self._s[2824]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2826]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[2827]! } - public var Month_GenApril: String { return self._s[2828]! } - public var Appearance_AutoNightTheme: String { return self._s[2829]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[2831]! } - public var Login_CodeSentSms: String { return self._s[2833]! } + public var Compose_Create: String { return self._s[2829]! } + public var Contacts_InviteToTelegram: String { return self._s[2830]! } + public var GroupInfo_Notifications: String { return self._s[2831]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2833]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[2834]! } + public var Month_GenApril: String { return self._s[2835]! } + public var Appearance_AutoNightTheme: String { return self._s[2836]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[2838]! } + public var Login_CodeSentSms: String { return self._s[2840]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2834]!, self._r[2834]!, [_0]) + return formatWithArgumentRanges(self._s[2841]!, self._r[2841]!, [_0]) } - public var EmptyGroupInfo_Line3: String { return self._s[2835]! } - public var LogoutOptions_ContactSupportText: String { return self._s[2836]! } - public var Passport_Language_hr: String { return self._s[2837]! } - public var Common_ActionNotAllowedError: String { return self._s[2838]! } + public var EmptyGroupInfo_Line3: String { return self._s[2842]! } + public var LogoutOptions_ContactSupportText: String { return self._s[2843]! } + public var Passport_Language_hr: String { return self._s[2844]! } + public var Common_ActionNotAllowedError: String { return self._s[2845]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2839]!, self._r[2839]!, [_0]) + return formatWithArgumentRanges(self._s[2846]!, self._r[2846]!, [_0]) } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[2840]! } - public var Wallet_Info_TransactionFrom: String { return self._s[2841]! } - public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2842]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2843]! } - public var Privacy_SecretChatsTitle: String { return self._s[2844]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2846]! } - public var GroupInfo_AddUserLeftError: String { return self._s[2847]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2848]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[2849]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2850]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[2851]! } - public var Preview_DeleteGif: String { return self._s[2852]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2853]! } - public var Group_ErrorNotMutualContact: String { return self._s[2854]! } - public var Notification_MessageLifetime5s: String { return self._s[2855]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[2856]! } - public var OldChannels_ChannelFormat: String { return self._s[2857]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[2847]! } + public var Wallet_Info_TransactionFrom: String { return self._s[2848]! } + public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2849]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2850]! } + public var Privacy_SecretChatsTitle: String { return self._s[2851]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2853]! } + public var GroupInfo_AddUserLeftError: String { return self._s[2854]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2855]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[2856]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2857]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[2858]! } + public var Preview_DeleteGif: String { return self._s[2859]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2860]! } + public var Group_ErrorNotMutualContact: String { return self._s[2861]! } + public var Notification_MessageLifetime5s: String { return self._s[2862]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[2863]! } + public var OldChannels_ChannelFormat: String { return self._s[2864]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2858]!, self._r[2858]!, [_0]) + return formatWithArgumentRanges(self._s[2865]!, self._r[2865]!, [_0]) } - public var VoiceOver_Chat_Video: String { return self._s[2859]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2861]! } - public var ReportSpam_DeleteThisChat: String { return self._s[2862]! } - public var Passport_Address_AddBankStatement: String { return self._s[2863]! } - public var Notification_CallIncoming: String { return self._s[2864]! } - public var Wallet_Words_NotDoneTitle: String { return self._s[2865]! } - public var Compose_NewGroupTitle: String { return self._s[2866]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2868]! } - public var Passport_Address_Postcode: String { return self._s[2870]! } + public var VoiceOver_Chat_Video: String { return self._s[2866]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2868]! } + public var ReportSpam_DeleteThisChat: String { return self._s[2869]! } + public var Passport_Address_AddBankStatement: String { return self._s[2870]! } + public var Notification_CallIncoming: String { return self._s[2871]! } + public var Wallet_Words_NotDoneTitle: String { return self._s[2872]! } + public var Compose_NewGroupTitle: String { return self._s[2873]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2875]! } + public var Passport_Address_Postcode: String { return self._s[2877]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2871]!, self._r[2871]!, [_0]) + return formatWithArgumentRanges(self._s[2878]!, self._r[2878]!, [_0]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2872]! } - public var Wallet_Month_ShortOctober: String { return self._s[2873]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2874]! } - public var WallpaperColors_Title: String { return self._s[2875]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2876]! } - public var VoiceOver_MessageContextForward: String { return self._s[2877]! } - public var GroupPermission_Duration: String { return self._s[2878]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2879]! } + public var Wallet_Month_ShortOctober: String { return self._s[2880]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2881]! } + public var WallpaperColors_Title: String { return self._s[2882]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2883]! } + public var VoiceOver_MessageContextForward: String { return self._s[2884]! } + public var GroupPermission_Duration: String { return self._s[2885]! } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2879]!, self._r[2879]!, [_0]) + return formatWithArgumentRanges(self._s[2886]!, self._r[2886]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2880]! } - public var Username_Placeholder: String { return self._s[2881]! } - public var CallFeedback_WhatWentWrong: String { return self._s[2882]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2883]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2884]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2887]! } + public var Username_Placeholder: String { return self._s[2888]! } + public var CallFeedback_WhatWentWrong: String { return self._s[2889]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2890]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2891]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2886]!, self._r[2886]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2893]!, self._r[2893]!, [_1, _2]) } - public var Passport_PasswordDescription: String { return self._s[2887]! } - public var Channel_MessagePhotoUpdated: String { return self._s[2888]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[2889]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2890]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[2891]! } - public var Conversation_ContextMenuMore: String { return self._s[2892]! } - public var Privacy_PaymentsClearInfo: String { return self._s[2893]! } - public var CallSettings_TabIcon: String { return self._s[2894]! } - public var KeyCommand_Find: String { return self._s[2895]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2896]! } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2897]! } - public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2898]! } - public var Message_PinnedGame: String { return self._s[2899]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2900]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2902]! } - public var Login_CallRequestState2: String { return self._s[2904]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2906]! } + public var Passport_PasswordDescription: String { return self._s[2894]! } + public var Channel_MessagePhotoUpdated: String { return self._s[2895]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[2896]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2897]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[2898]! } + public var Conversation_ContextMenuMore: String { return self._s[2899]! } + public var Privacy_PaymentsClearInfo: String { return self._s[2900]! } + public var CallSettings_TabIcon: String { return self._s[2901]! } + public var KeyCommand_Find: String { return self._s[2902]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2903]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2904]! } + public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2905]! } + public var Message_PinnedGame: String { return self._s[2906]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2907]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2909]! } + public var Login_CallRequestState2: String { return self._s[2911]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2913]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2907]!, self._r[2907]!, [_0]) + return formatWithArgumentRanges(self._s[2914]!, self._r[2914]!, [_0]) } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2909]!, self._r[2909]!, [_0]) + return formatWithArgumentRanges(self._s[2916]!, self._r[2916]!, [_0]) } - public var AuthSessions_AddDevice: String { return self._s[2910]! } - public var WallpaperPreview_Blurred: String { return self._s[2911]! } - public var Conversation_InstantPagePreview: String { return self._s[2912]! } + public var AuthSessions_AddDevice: String { return self._s[2917]! } + public var WallpaperPreview_Blurred: String { return self._s[2918]! } + public var Conversation_InstantPagePreview: String { return self._s[2919]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2913]!, self._r[2913]!, [_0]) + return formatWithArgumentRanges(self._s[2920]!, self._r[2920]!, [_0]) } - public var SecretTimer_VideoDescription: String { return self._s[2916]! } - public var WallpaperSearch_ColorRed: String { return self._s[2917]! } - public var GroupPermission_NoPinMessages: String { return self._s[2918]! } - public var Passport_Language_es: String { return self._s[2919]! } - public var Permissions_ContactsAllow_v0: String { return self._s[2921]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2922]! } + public var SecretTimer_VideoDescription: String { return self._s[2923]! } + public var WallpaperSearch_ColorRed: String { return self._s[2924]! } + public var GroupPermission_NoPinMessages: String { return self._s[2925]! } + public var Passport_Language_es: String { return self._s[2926]! } + public var Permissions_ContactsAllow_v0: String { return self._s[2928]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2929]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2930]!, self._r[2930]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[2924]! } - public var WebPreview_GettingLinkInfo: String { return self._s[2925]! } - public var Watch_UserInfo_Unmute: String { return self._s[2926]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2927]! } - public var AccessDenied_CameraRestricted: String { return self._s[2929]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[2931]! } + public var WebPreview_GettingLinkInfo: String { return self._s[2932]! } + public var Watch_UserInfo_Unmute: String { return self._s[2933]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2934]! } + public var AccessDenied_CameraRestricted: String { return self._s[2936]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2930]!, self._r[2930]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2937]!, self._r[2937]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[2932]! } - public var Settings_CopyUsername: String { return self._s[2933]! } - public var Contacts_SearchLabel: String { return self._s[2934]! } - public var Map_OpenInYandexNavigator: String { return self._s[2936]! } - public var PasscodeSettings_EncryptData: String { return self._s[2937]! } - public var Settings_Wallet: String { return self._s[2938]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2939]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[2940]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[2941]! } - public var DialogList_AdNoticeAlert: String { return self._s[2942]! } - public var Wallet_Month_GenMay: String { return self._s[2944]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2945]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2946]! } - public var Localization_LanguageCustom: String { return self._s[2947]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2948]! } - public var CallFeedback_Title: String { return self._s[2949]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2952]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2953]! } - public var Wallet_Intro_CreateErrorTitle: String { return self._s[2954]! } - public var Conversation_InfoGroup: String { return self._s[2955]! } - public var Compose_NewMessage: String { return self._s[2956]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2957]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2958]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2959]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2960]! } + public var ChatList_ReadAll: String { return self._s[2939]! } + public var Settings_CopyUsername: String { return self._s[2940]! } + public var Contacts_SearchLabel: String { return self._s[2941]! } + public var Map_OpenInYandexNavigator: String { return self._s[2943]! } + public var PasscodeSettings_EncryptData: String { return self._s[2944]! } + public var Settings_Wallet: String { return self._s[2945]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2946]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2947]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[2948]! } + public var DialogList_AdNoticeAlert: String { return self._s[2949]! } + public var Wallet_Month_GenMay: String { return self._s[2951]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2952]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2953]! } + public var Localization_LanguageCustom: String { return self._s[2954]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2955]! } + public var CallFeedback_Title: String { return self._s[2956]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2959]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2960]! } + public var Wallet_Intro_CreateErrorTitle: String { return self._s[2961]! } + public var Conversation_InfoGroup: String { return self._s[2962]! } + public var Compose_NewMessage: String { return self._s[2963]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2964]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2965]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2966]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2967]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2961]!, self._r[2961]!, [_0]) + return formatWithArgumentRanges(self._s[2968]!, self._r[2968]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2962]! } - public var Login_CancelSignUpConfirmation: String { return self._s[2963]! } - public var ChangePhoneNumberCode_Help: String { return self._s[2964]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[2965]! } - public var Channel_BlackList_Title: String { return self._s[2966]! } - public var UserInfo_PhoneCall: String { return self._s[2967]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2969]! } - public var Wallet_Month_ShortJanuary: String { return self._s[2970]! } - public var State_connecting: String { return self._s[2971]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2972]! } - public var Wallet_Month_GenMarch: String { return self._s[2973]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2974]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[2975]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2969]! } + public var Login_CancelSignUpConfirmation: String { return self._s[2970]! } + public var ChangePhoneNumberCode_Help: String { return self._s[2971]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[2972]! } + public var Channel_BlackList_Title: String { return self._s[2973]! } + public var UserInfo_PhoneCall: String { return self._s[2974]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2976]! } + public var Wallet_Month_ShortJanuary: String { return self._s[2977]! } + public var State_connecting: String { return self._s[2978]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2979]! } + public var Wallet_Month_GenMarch: String { return self._s[2980]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2981]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[2982]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2976]!, self._r[2976]!, [_0]) + return formatWithArgumentRanges(self._s[2983]!, self._r[2983]!, [_0]) } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2977]!, self._r[2977]!, [_0]) + return formatWithArgumentRanges(self._s[2984]!, self._r[2984]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[2978]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2979]! } - public var Passport_Identity_EditPassport: String { return self._s[2980]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2982]! } - public var Localization_EnglishLanguageName: String { return self._s[2983]! } - public var Share_AuthDescription: String { return self._s[2984]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2985]! } - public var Passport_Identity_Surname: String { return self._s[2986]! } - public var Compose_TokenListPlaceholder: String { return self._s[2987]! } - public var Wallet_AccessDenied_Camera: String { return self._s[2988]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[2989]! } - public var Settings_AboutEmpty: String { return self._s[2990]! } - public var Conversation_Unmute: String { return self._s[2991]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[2993]! } - public var Wallet_Sending_Text: String { return self._s[2994]! } + public var Notifications_GroupNotifications: String { return self._s[2985]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2986]! } + public var Passport_Identity_EditPassport: String { return self._s[2987]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2989]! } + public var Localization_EnglishLanguageName: String { return self._s[2990]! } + public var Share_AuthDescription: String { return self._s[2991]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2992]! } + public var Passport_Identity_Surname: String { return self._s[2993]! } + public var Compose_TokenListPlaceholder: String { return self._s[2994]! } + public var Wallet_AccessDenied_Camera: String { return self._s[2995]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[2996]! } + public var Settings_AboutEmpty: String { return self._s[2997]! } + public var Conversation_Unmute: String { return self._s[2998]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[3000]! } + public var Wallet_Sending_Text: String { return self._s[3001]! } public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2995]!, self._r[2995]!, [_1]) + return formatWithArgumentRanges(self._s[3002]!, self._r[3002]!, [_1]) } - public var Login_CodeSentCall: String { return self._s[2996]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2998]! } - public var ChatSettings_Appearance: String { return self._s[2999]! } - public var ClearCache_StorageUsage: String { return self._s[3000]! } - public var Appearance_PickAccentColor: String { return self._s[3001]! } + public var Login_CodeSentCall: String { return self._s[3003]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3005]! } + public var ChatSettings_Appearance: String { return self._s[3006]! } + public var ClearCache_StorageUsage: String { return self._s[3007]! } + public var Appearance_PickAccentColor: String { return self._s[3008]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3002]!, self._r[3002]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3009]!, self._r[3009]!, [_1, _2]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3003]!, self._r[3003]!, [_1]) + return formatWithArgumentRanges(self._s[3010]!, self._r[3010]!, [_1]) } - public var Notification_CallMissed: String { return self._s[3004]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3005]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3006]! } - public var Wallet_Month_GenOctober: String { return self._s[3008]! } - public var ChatAdmins_AdminLabel: String { return self._s[3009]! } - public var KeyCommand_JumpToNextChat: String { return self._s[3010]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[3012]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3013]! } - public var Month_GenJune: String { return self._s[3014]! } - public var IntentsSettings_MainAccountInfo: String { return self._s[3015]! } - public var Watch_Location_Current: String { return self._s[3016]! } - public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3017]! } - public var Conversation_TitleMute: String { return self._s[3018]! } + public var Notification_CallMissed: String { return self._s[3011]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3012]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3013]! } + public var Wallet_Month_GenOctober: String { return self._s[3015]! } + public var ChatAdmins_AdminLabel: String { return self._s[3016]! } + public var KeyCommand_JumpToNextChat: String { return self._s[3017]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[3019]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3020]! } + public var Month_GenJune: String { return self._s[3021]! } + public var IntentsSettings_MainAccountInfo: String { return self._s[3022]! } + public var Watch_Location_Current: String { return self._s[3023]! } + public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3024]! } + public var Conversation_TitleMute: String { return self._s[3025]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3019]!, self._r[3019]!, [_1]) + return formatWithArgumentRanges(self._s[3026]!, self._r[3026]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[3020]! } + public var GroupInfo_DeleteAndExit: String { return self._s[3027]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3021]!, self._r[3021]!, [_0]) + return formatWithArgumentRanges(self._s[3028]!, self._r[3028]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[3022]! } - public var Chat_SlowmodeSendError: String { return self._s[3023]! } - public var MaskStickerSettings_Info: String { return self._s[3024]! } - public var EditTheme_Expand_TopInfo: String { return self._s[3025]! } + public var Call_ReportPlaceholder: String { return self._s[3029]! } + public var Chat_SlowmodeSendError: String { return self._s[3030]! } + public var MaskStickerSettings_Info: String { return self._s[3031]! } + public var EditTheme_Expand_TopInfo: String { return self._s[3032]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3026]!, self._r[3026]!, [_0]) + return formatWithArgumentRanges(self._s[3033]!, self._r[3033]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[3027]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3029]! } - public var Contacts_ShareTelegram: String { return self._s[3030]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3031]! } - public var Map_AddressOnMap: String { return self._s[3032]! } - public var Channel_ErrorAccessDenied: String { return self._s[3033]! } - public var UserInfo_ScamBotWarning: String { return self._s[3035]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[3036]! } - public var Call_ConnectionErrorTitle: String { return self._s[3037]! } - public var UserInfo_NotificationsEnable: String { return self._s[3038]! } - public var ArchivedChats_IntroText1: String { return self._s[3039]! } - public var Tour_Text4: String { return self._s[3042]! } - public var WallpaperSearch_Recent: String { return self._s[3043]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[3044]! } - public var Profile_MessageLifetime2s: String { return self._s[3046]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3047]! } - public var Notification_MessageLifetime2s: String { return self._s[3048]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[3034]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3036]! } + public var Contacts_ShareTelegram: String { return self._s[3037]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3038]! } + public var Map_AddressOnMap: String { return self._s[3039]! } + public var Channel_ErrorAccessDenied: String { return self._s[3040]! } + public var UserInfo_ScamBotWarning: String { return self._s[3042]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[3043]! } + public var Call_ConnectionErrorTitle: String { return self._s[3044]! } + public var UserInfo_NotificationsEnable: String { return self._s[3045]! } + public var ArchivedChats_IntroText1: String { return self._s[3046]! } + public var Tour_Text4: String { return self._s[3049]! } + public var WallpaperSearch_Recent: String { return self._s[3050]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[3051]! } + public var Profile_MessageLifetime2s: String { return self._s[3053]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3054]! } + public var Notification_MessageLifetime2s: String { return self._s[3055]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3049]!, self._r[3049]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3056]!, self._r[3056]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[3050]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3051]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3052]! } + public var Cache_ClearCache: String { return self._s[3057]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3058]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3059]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3056]!, self._r[3056]!, [_0]) + return formatWithArgumentRanges(self._s[3063]!, self._r[3063]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3058]!, self._r[3058]!, [_0]) + return formatWithArgumentRanges(self._s[3065]!, self._r[3065]!, [_0]) } - public var LocalGroup_Text: String { return self._s[3059]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3060]! } - public var SocksProxySetup_TypeSocks: String { return self._s[3061]! } - public var ChatList_UnarchiveAction: String { return self._s[3062]! } - public var AutoNightTheme_Title: String { return self._s[3063]! } - public var InstantPage_FeedbackButton: String { return self._s[3064]! } - public var Passport_FieldAddress: String { return self._s[3065]! } + public var LocalGroup_Text: String { return self._s[3066]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3067]! } + public var SocksProxySetup_TypeSocks: String { return self._s[3068]! } + public var ChatList_UnarchiveAction: String { return self._s[3069]! } + public var AutoNightTheme_Title: String { return self._s[3070]! } + public var InstantPage_FeedbackButton: String { return self._s[3071]! } + public var Passport_FieldAddress: String { return self._s[3072]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3066]!, self._r[3066]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3073]!, self._r[3073]!, [_1, _2]) } - public var Month_ShortMarch: String { return self._s[3067]! } + public var Month_ShortMarch: String { return self._s[3074]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3068]!, self._r[3068]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3075]!, self._r[3075]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3069]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3070]! } - public var Passport_FloodError: String { return self._s[3071]! } - public var SecretGif_Title: String { return self._s[3072]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3073]! } - public var ChatList_Context_UnhideArchive: String { return self._s[3074]! } - public var Passport_Language_th: String { return self._s[3076]! } - public var Passport_Address_Address: String { return self._s[3077]! } - public var Login_InvalidLastNameError: String { return self._s[3078]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3079]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[3080]! } - public var ChatList_Context_Archive: String { return self._s[3081]! } - public var SettingsSearch_FAQ: String { return self._s[3082]! } - public var ShareMenu_Send: String { return self._s[3083]! } - public var WallpaperSearch_ColorYellow: String { return self._s[3085]! } - public var Month_GenNovember: String { return self._s[3087]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3089]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3076]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3077]! } + public var Passport_FloodError: String { return self._s[3078]! } + public var SecretGif_Title: String { return self._s[3079]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3080]! } + public var ChatList_Context_UnhideArchive: String { return self._s[3081]! } + public var Passport_Language_th: String { return self._s[3083]! } + public var Passport_Address_Address: String { return self._s[3084]! } + public var Login_InvalidLastNameError: String { return self._s[3085]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3086]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[3087]! } + public var ChatList_Context_Archive: String { return self._s[3088]! } + public var SettingsSearch_FAQ: String { return self._s[3089]! } + public var ShareMenu_Send: String { return self._s[3090]! } + public var WallpaperSearch_ColorYellow: String { return self._s[3092]! } + public var Month_GenNovember: String { return self._s[3094]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3096]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3090]!, self._r[3090]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3097]!, self._r[3097]!, [_1, _2]) } - public var Conversation_SwipeToReplyHintText: String { return self._s[3091]! } - public var Checkout_Email: String { return self._s[3092]! } - public var NotificationsSound_Tritone: String { return self._s[3093]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[3095]! } - public var Wallet_ContextMenuCopy: String { return self._s[3097]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3098]! } + public var Checkout_Email: String { return self._s[3099]! } + public var NotificationsSound_Tritone: String { return self._s[3100]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[3102]! } + public var Wallet_ContextMenuCopy: String { return self._s[3104]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3099]!, self._r[3099]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3106]!, self._r[3106]!, [_1, _2, _3]) } - public var Appearance_TextSize_Automatic: String { return self._s[3100]! } + public var Appearance_TextSize_Automatic: String { return self._s[3107]! } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3101]!, self._r[3101]!, [_1]) + return formatWithArgumentRanges(self._s[3108]!, self._r[3108]!, [_1]) } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3102]!, self._r[3102]!, [_0]) + return formatWithArgumentRanges(self._s[3109]!, self._r[3109]!, [_0]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[3103]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[3110]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3104]!, self._r[3104]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3111]!, self._r[3111]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[3105]! } - public var Notification_Exceptions_Add: String { return self._s[3106]! } - public var DialogList_You: String { return self._s[3107]! } - public var MediaPicker_Send: String { return self._s[3110]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3111]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3112]! } - public var Call_AudioRouteSpeaker: String { return self._s[3113]! } - public var Watch_UserInfo_Title: String { return self._s[3114]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[3115]! } - public var Appearance_AccentColor: String { return self._s[3117]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3112]! } + public var Notification_Exceptions_Add: String { return self._s[3113]! } + public var DialogList_You: String { return self._s[3114]! } + public var MediaPicker_Send: String { return self._s[3117]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3118]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3119]! } + public var Call_AudioRouteSpeaker: String { return self._s[3120]! } + public var Watch_UserInfo_Title: String { return self._s[3121]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[3122]! } + public var Appearance_AccentColor: String { return self._s[3124]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3118]!, self._r[3118]!, [_0]) + return formatWithArgumentRanges(self._s[3125]!, self._r[3125]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3119]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3126]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3120]!, self._r[3120]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3127]!, self._r[3127]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[3121]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3122]! } - public var Notification_CallOutgoing: String { return self._s[3123]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3124]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3125]! } - public var Call_RecordingDisabledMessage: String { return self._s[3126]! } - public var Message_Game: String { return self._s[3127]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[3128]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3129]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3130]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3131]! } - public var Date_DialogDateFormat: String { return self._s[3133]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3134]! } - public var Notifications_InAppNotifications: String { return self._s[3135]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[3128]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3129]! } + public var Notification_CallOutgoing: String { return self._s[3130]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3131]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3132]! } + public var Call_RecordingDisabledMessage: String { return self._s[3133]! } + public var Message_Game: String { return self._s[3134]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[3135]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3136]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3137]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3138]! } + public var Date_DialogDateFormat: String { return self._s[3140]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3141]! } + public var Notifications_InAppNotifications: String { return self._s[3142]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3136]!, self._r[3136]!, [_0]) + return formatWithArgumentRanges(self._s[3143]!, self._r[3143]!, [_0]) } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3137]!, self._r[3137]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3144]!, self._r[3144]!, [_1, _2]) } - public var NewContact_Title: String { return self._s[3138]! } + public var NewContact_Title: String { return self._s[3145]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3139]!, self._r[3139]!, [_0]) + return formatWithArgumentRanges(self._s[3146]!, self._r[3146]!, [_0]) } - public var Conversation_ViewContactDetails: String { return self._s[3140]! } + public var Conversation_ViewContactDetails: String { return self._s[3147]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3142]!, self._r[3142]!, [_1]) + return formatWithArgumentRanges(self._s[3149]!, self._r[3149]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3143]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3144]! } - public var PrivacySettings_Title: String { return self._s[3145]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3148]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[3149]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[3150]! } - public var Contacts_PhoneNumber: String { return self._s[3151]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3153]! } - public var Map_ShowPlaces: String { return self._s[3154]! } - public var ChatAdmins_Title: String { return self._s[3155]! } - public var InstantPage_Reference: String { return self._s[3157]! } - public var Wallet_Info_Updating: String { return self._s[3158]! } - public var ReportGroupLocation_Text: String { return self._s[3159]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3150]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3151]! } + public var PrivacySettings_Title: String { return self._s[3152]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3155]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[3156]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[3157]! } + public var Contacts_PhoneNumber: String { return self._s[3158]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3160]! } + public var Map_ShowPlaces: String { return self._s[3161]! } + public var ChatAdmins_Title: String { return self._s[3162]! } + public var InstantPage_Reference: String { return self._s[3164]! } + public var Wallet_Info_Updating: String { return self._s[3165]! } + public var ReportGroupLocation_Text: String { return self._s[3166]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3160]!, self._r[3160]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3167]!, self._r[3167]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[3161]! } - public var Watch_UserInfo_Block: String { return self._s[3162]! } - public var ChatSettings_Stickers: String { return self._s[3163]! } - public var ChatSettings_DownloadInBackground: String { return self._s[3164]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3165]! } + public var Camera_FlashOff: String { return self._s[3168]! } + public var Watch_UserInfo_Block: String { return self._s[3169]! } + public var ChatSettings_Stickers: String { return self._s[3170]! } + public var ChatSettings_DownloadInBackground: String { return self._s[3171]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3172]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3166]!, self._r[3166]!, [_0]) + return formatWithArgumentRanges(self._s[3173]!, self._r[3173]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[3167]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3168]! } - public var AutoDownloadSettings_Cellular: String { return self._s[3169]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[3170]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3171]! } - public var VoiceOver_MessageContextShare: String { return self._s[3172]! } + public var Settings_ViewPhoto: String { return self._s[3174]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3175]! } + public var AutoDownloadSettings_Cellular: String { return self._s[3176]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[3177]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3178]! } + public var VoiceOver_MessageContextShare: String { return self._s[3179]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3174]!, self._r[3174]!, [_0]) + return formatWithArgumentRanges(self._s[3181]!, self._r[3181]!, [_0]) } - public var Privacy_DeleteDrafts: String { return self._s[3175]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3176]! } + public var Privacy_DeleteDrafts: String { return self._s[3182]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3183]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3177]!, self._r[3177]!, [_0]) + return formatWithArgumentRanges(self._s[3184]!, self._r[3184]!, [_0]) } - public var DialogList_SavedMessagesHelp: String { return self._s[3178]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3179]! } - public var DialogList_SavedMessages: String { return self._s[3180]! } - public var GroupInfo_UpgradeButton: String { return self._s[3181]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3183]! } - public var DialogList_Pin: String { return self._s[3184]! } + public var DialogList_SavedMessagesHelp: String { return self._s[3185]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3186]! } + public var DialogList_SavedMessages: String { return self._s[3187]! } + public var GroupInfo_UpgradeButton: String { return self._s[3188]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3190]! } + public var DialogList_Pin: String { return self._s[3191]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3192]!, self._r[3192]!, [_0, _1]) } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3186]!, self._r[3186]!, [_0]) + return formatWithArgumentRanges(self._s[3193]!, self._r[3193]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3187]! } - public var UserInfo_NotificationsDisable: String { return self._s[3188]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[3189]! } - public var Paint_Outlined: String { return self._s[3190]! } - public var Activity_PlayingGame: String { return self._s[3191]! } - public var SearchImages_NoImagesFound: String { return self._s[3192]! } - public var SocksProxySetup_ProxyType: String { return self._s[3193]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3195]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3196]! } - public var Settings_AppLanguage: String { return self._s[3197]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3198]! } - public var Common_ChoosePhoto: String { return self._s[3199]! } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3200]! } - public var CallFeedback_ReasonEcho: String { return self._s[3201]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3194]! } + public var UserInfo_NotificationsDisable: String { return self._s[3195]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[3196]! } + public var Paint_Outlined: String { return self._s[3197]! } + public var Activity_PlayingGame: String { return self._s[3198]! } + public var SearchImages_NoImagesFound: String { return self._s[3199]! } + public var SocksProxySetup_ProxyType: String { return self._s[3200]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3202]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3203]! } + public var Settings_AppLanguage: String { return self._s[3204]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3205]! } + public var Common_ChoosePhoto: String { return self._s[3206]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3207]! } + public var CallFeedback_ReasonEcho: String { return self._s[3208]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3202]!, self._r[3202]!, [_1]) + return formatWithArgumentRanges(self._s[3209]!, self._r[3209]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3203]! } - public var PollResults_Collapse: String { return self._s[3204]! } - public var Activity_UploadingVideo: String { return self._s[3205]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3206]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3207]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3208]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3209]! } - public var PUSH_SENDER_YOU: String { return self._s[3210]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3211]! } - public var Checkout_PayWithTouchId: String { return self._s[3212]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3213]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3210]! } + public var PollResults_Collapse: String { return self._s[3211]! } + public var Activity_UploadingVideo: String { return self._s[3212]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3213]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3214]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3215]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3216]! } + public var PUSH_SENDER_YOU: String { return self._s[3217]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3218]! } + public var Checkout_PayWithTouchId: String { return self._s[3219]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3220]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3215]!, self._r[3215]!, [_1]) + return formatWithArgumentRanges(self._s[3222]!, self._r[3222]!, [_1]) } - public var Notifications_ExceptionsNone: String { return self._s[3216]! } + public var Notifications_ExceptionsNone: String { return self._s[3223]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3217]!, self._r[3217]!, [_0]) + return formatWithArgumentRanges(self._s[3224]!, self._r[3224]!, [_0]) } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3218]!, self._r[3218]!, [_1]) + return formatWithArgumentRanges(self._s[3225]!, self._r[3225]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3220]! } - public var Passport_Address_Region: String { return self._s[3223]! } - public var ChatList_DeleteChat: String { return self._s[3224]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3225]! } - public var PhotoEditor_TiltShift: String { return self._s[3226]! } - public var Settings_FAQ_URL: String { return self._s[3227]! } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3228]! } - public var Passport_Language_sl: String { return self._s[3229]! } - public var Settings_PrivacySettings: String { return self._s[3231]! } - public var SharedMedia_TitleLink: String { return self._s[3232]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3233]! } - public var Settings_SetProfilePhoto: String { return self._s[3234]! } - public var Channel_About_Help: String { return self._s[3235]! } - public var Contacts_PermissionsEnable: String { return self._s[3236]! } - public var Wallet_Sending_Title: String { return self._s[3237]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3238]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3239]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3241]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3242]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3243]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3244]! } - public var OldChannels_Title: String { return self._s[3245]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3246]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3248]! } - public var Map_OpenInYandexMaps: String { return self._s[3250]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3251]! } - public var VoiceOver_MessageContextReply: String { return self._s[3252]! } - public var PhotoEditor_SaturationTool: String { return self._s[3254]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3227]! } + public var Passport_Address_Region: String { return self._s[3230]! } + public var ChatList_DeleteChat: String { return self._s[3231]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3232]! } + public var PhotoEditor_TiltShift: String { return self._s[3233]! } + public var Settings_FAQ_URL: String { return self._s[3234]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3235]! } + public var Passport_Language_sl: String { return self._s[3236]! } + public var Settings_PrivacySettings: String { return self._s[3238]! } + public var SharedMedia_TitleLink: String { return self._s[3239]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3240]! } + public var Settings_SetProfilePhoto: String { return self._s[3241]! } + public var Channel_About_Help: String { return self._s[3242]! } + public var Contacts_PermissionsEnable: String { return self._s[3243]! } + public var Wallet_Sending_Title: String { return self._s[3244]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3245]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3246]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3248]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3249]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3250]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3251]! } + public var OldChannels_Title: String { return self._s[3252]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3253]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3255]! } + public var Map_OpenInYandexMaps: String { return self._s[3257]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3258]! } + public var VoiceOver_MessageContextReply: String { return self._s[3259]! } + public var PhotoEditor_SaturationTool: String { return self._s[3261]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3255]!, self._r[3255]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3262]!, self._r[3262]!, [_1, _2]) } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3256]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3257]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3258]! } + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3263]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3264]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3265]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3259]!, self._r[3259]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3266]!, self._r[3266]!, [_1, "\(_2)"]) } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3260]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3262]! } - public var SettingsSearch_Synonyms_Wallet: String { return self._s[3263]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3267]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3269]! } + public var SettingsSearch_Synonyms_Wallet: String { return self._s[3270]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3264]!, self._r[3264]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3271]!, self._r[3271]!, [_1, _2]) } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3265]!, self._r[3265]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3272]!, self._r[3272]!, [_1, _2, _3]) } - public var WallpaperPreview_PatternTitle: String { return self._s[3266]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[3267]! } - public var Passport_PassportInformation: String { return self._s[3270]! } - public var Theme_Unsupported: String { return self._s[3271]! } - public var WatchRemote_AlertTitle: String { return self._s[3272]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3273]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3275]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3273]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3274]! } + public var Passport_PassportInformation: String { return self._s[3277]! } + public var Theme_Unsupported: String { return self._s[3278]! } + public var WatchRemote_AlertTitle: String { return self._s[3279]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3280]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3282]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3276]!, self._r[3276]!, [_0]) - } - public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3277]!, self._r[3277]!, [_1]) - } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3278]! } - public var Wallet_Navigation_Done: String { return self._s[3280]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3281]! } - public var AccessDenied_CameraDisabled: String { return self._s[3282]! } - public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3283]!, self._r[3283]!, [_0]) } - public var ClearCache_Forever: String { return self._s[3284]! } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3285]! } - public var CreatePoll_Quiz: String { return self._s[3286]! } - public var PhotoEditor_ContrastTool: String { return self._s[3289]! } + public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3284]!, self._r[3284]!, [_1]) + } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3285]! } + public var Wallet_Navigation_Done: String { return self._s[3287]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3288]! } + public var AccessDenied_CameraDisabled: String { return self._s[3289]! } + public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3290]!, self._r[3290]!, [_0]) + } + public var ClearCache_Forever: String { return self._s[3291]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3292]! } + public var CreatePoll_Quiz: String { return self._s[3293]! } + public var PhotoEditor_ContrastTool: String { return self._s[3296]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3290]!, self._r[3290]!, [_1]) + return formatWithArgumentRanges(self._s[3297]!, self._r[3297]!, [_1]) } - public var DialogList_Draft: String { return self._s[3291]! } - public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3292]! } - public var Privacy_TopPeersDelete: String { return self._s[3294]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3295]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3296]! } - public var WebSearch_RecentSectionClear: String { return self._s[3297]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3298]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3300]! } - public var Common_Done: String { return self._s[3302]! } - public var Shortcut_SwitchAccount: String { return self._s[3303]! } - public var AuthSessions_EmptyText: String { return self._s[3304]! } - public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3305]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3306]! } - public var Tour_Title5: String { return self._s[3307]! } - public var Wallet_Settings_Title: String { return self._s[3308]! } + public var DialogList_Draft: String { return self._s[3298]! } + public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3299]! } + public var Privacy_TopPeersDelete: String { return self._s[3301]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3302]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3303]! } + public var WebSearch_RecentSectionClear: String { return self._s[3304]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3305]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3307]! } + public var Common_Done: String { return self._s[3309]! } + public var Shortcut_SwitchAccount: String { return self._s[3310]! } + public var AuthSessions_EmptyText: String { return self._s[3311]! } + public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3312]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3313]! } + public var Tour_Title5: String { return self._s[3314]! } + public var Wallet_Settings_Title: String { return self._s[3315]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3309]!, self._r[3309]!, [_0]) + return formatWithArgumentRanges(self._s[3316]!, self._r[3316]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3310]! } - public var Conversation_LinkDialogSave: String { return self._s[3311]! } - public var GroupInfo_ActionRestrict: String { return self._s[3312]! } - public var Checkout_Title: String { return self._s[3313]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3315]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3317]! } - public var Notification_RenamedGroup: String { return self._s[3318]! } - public var PeopleNearby_Groups: String { return self._s[3319]! } - public var Checkout_PayWithFaceId: String { return self._s[3320]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3321]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3323]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3324]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3325]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3317]! } + public var Conversation_LinkDialogSave: String { return self._s[3318]! } + public var GroupInfo_ActionRestrict: String { return self._s[3319]! } + public var Checkout_Title: String { return self._s[3320]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3322]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3324]! } + public var Notification_RenamedGroup: String { return self._s[3325]! } + public var PeopleNearby_Groups: String { return self._s[3326]! } + public var Checkout_PayWithFaceId: String { return self._s[3327]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3328]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3330]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3331]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3332]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3326]!, self._r[3326]!, [_0]) + return formatWithArgumentRanges(self._s[3333]!, self._r[3333]!, [_0]) } - public var Profile_AddToExisting: String { return self._s[3328]! } + public var Profile_AddToExisting: String { return self._s[3335]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3329]!, self._r[3329]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3336]!, self._r[3336]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3331]! } - public var Permissions_PrivacyPolicy: String { return self._s[3332]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3333]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3334]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3336]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3338]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3339]! } + public var Cache_Files: String { return self._s[3338]! } + public var Permissions_PrivacyPolicy: String { return self._s[3339]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3340]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3341]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3343]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3345]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3346]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3340]!, self._r[3340]!, [_0]) + return formatWithArgumentRanges(self._s[3347]!, self._r[3347]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3341]! } - public var VoiceOver_AttachMedia: String { return self._s[3344]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3345]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3348]! } + public var VoiceOver_AttachMedia: String { return self._s[3351]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3352]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3346]!, self._r[3346]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3353]!, self._r[3353]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3347]! } - public var Conversation_SetReminder_Title: String { return self._s[3348]! } - public var Passport_FieldAddressHelp: String { return self._s[3349]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3350]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3351]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3354]! } + public var Conversation_SetReminder_Title: String { return self._s[3355]! } + public var Passport_FieldAddressHelp: String { return self._s[3356]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3357]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3358]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3352]!, self._r[3352]!, [_0]) + return formatWithArgumentRanges(self._s[3359]!, self._r[3359]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3353]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3354]! } - public var Login_UnknownError: String { return self._s[3355]! } - public var Group_UpgradeNoticeText2: String { return self._s[3358]! } - public var Watch_Compose_AddContact: String { return self._s[3359]! } - public var ClearCache_StorageServiceFiles: String { return self._s[3360]! } - public var Web_Error: String { return self._s[3361]! } - public var Gif_Search: String { return self._s[3362]! } - public var Profile_MessageLifetime1h: String { return self._s[3363]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3364]! } - public var Channel_Username_CheckingUsername: String { return self._s[3365]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3366]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3367]! } - public var Channel_AboutItem: String { return self._s[3368]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3370]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3371]! } - public var GroupInfo_SharedMedia: String { return self._s[3372]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3360]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3361]! } + public var Login_UnknownError: String { return self._s[3362]! } + public var Group_UpgradeNoticeText2: String { return self._s[3365]! } + public var Watch_Compose_AddContact: String { return self._s[3366]! } + public var ClearCache_StorageServiceFiles: String { return self._s[3367]! } + public var Web_Error: String { return self._s[3368]! } + public var Gif_Search: String { return self._s[3369]! } + public var Profile_MessageLifetime1h: String { return self._s[3370]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3371]! } + public var Channel_Username_CheckingUsername: String { return self._s[3372]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3373]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3374]! } + public var Channel_AboutItem: String { return self._s[3375]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3377]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3378]! } + public var GroupInfo_SharedMedia: String { return self._s[3379]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3373]!, self._r[3373]!, [_1]) + return formatWithArgumentRanges(self._s[3380]!, self._r[3380]!, [_1]) } - public var Call_PhoneCallInProgressMessage: String { return self._s[3374]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3381]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3375]!, self._r[3375]!, [_1]) + return formatWithArgumentRanges(self._s[3382]!, self._r[3382]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3376]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3377]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3378]! } - public var CreatePoll_AddOption: String { return self._s[3379]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3380]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3381]! } - public var Channel_Management_AddModerator: String { return self._s[3382]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3383]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3384]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3385]! } - public var Theme_Colors_Background: String { return self._s[3386]! } - public var NotificationsSound_Hello: String { return self._s[3388]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3389]! } - public var Channel_Stickers_Placeholder: String { return self._s[3391]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3383]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3384]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3385]! } + public var CreatePoll_AddOption: String { return self._s[3386]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3387]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3388]! } + public var Channel_Management_AddModerator: String { return self._s[3389]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3390]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3391]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3392]! } + public var Theme_Colors_Background: String { return self._s[3393]! } + public var NotificationsSound_Hello: String { return self._s[3395]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3396]! } + public var Channel_Stickers_Placeholder: String { return self._s[3398]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3392]!, self._r[3392]!, [_0]) + return formatWithArgumentRanges(self._s[3399]!, self._r[3399]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3393]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3394]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3395]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3396]! } - public var AutoDownloadSettings_Channels: String { return self._s[3397]! } - public var Passport_Language_mn: String { return self._s[3398]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3401]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3402]! } - public var Passport_Language_ja: String { return self._s[3404]! } - public var Settings_About_Title: String { return self._s[3405]! } - public var Settings_NotificationsAndSounds: String { return self._s[3406]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3407]! } - public var Settings_BlockedUsers: String { return self._s[3408]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3400]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3401]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3402]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3403]! } + public var AutoDownloadSettings_Channels: String { return self._s[3404]! } + public var Passport_Language_mn: String { return self._s[3405]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3408]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3409]! } + public var Passport_Language_ja: String { return self._s[3411]! } + public var Settings_About_Title: String { return self._s[3412]! } + public var Settings_NotificationsAndSounds: String { return self._s[3413]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3414]! } + public var Settings_BlockedUsers: String { return self._s[3415]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3409]!, self._r[3409]!, [_0]) - } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3410]! } - public var Wallet_Weekday_Today: String { return self._s[3411]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3412]! } - public var Widget_ApplicationLocked: String { return self._s[3413]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3414]! } - public var Channel_Username_Title: String { return self._s[3415]! } - public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3416]!, self._r[3416]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3418]! } - public var AppleWatch_Title: String { return self._s[3419]! } - public var Activity_RecordingVideoMessage: String { return self._s[3420]! } - public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3421]!, self._r[3421]!, [_1, _2]) + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3417]! } + public var Wallet_Weekday_Today: String { return self._s[3418]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3419]! } + public var Widget_ApplicationLocked: String { return self._s[3420]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3421]! } + public var Channel_Username_Title: String { return self._s[3422]! } + public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3423]!, self._r[3423]!, [_0]) } - public var Theme_Colors_Messages: String { return self._s[3422]! } - public var Weekday_Saturday: String { return self._s[3423]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3424]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3425]! } - public var Common_Next: String { return self._s[3427]! } - public var Channel_Stickers_YourStickers: String { return self._s[3429]! } - public var Message_Theme: String { return self._s[3430]! } - public var Call_AudioRouteHeadphones: String { return self._s[3431]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3433]! } - public var Watch_Contacts_NoResults: String { return self._s[3435]! } - public var PhotoEditor_TintTool: String { return self._s[3438]! } - public var LoginPassword_ResetAccount: String { return self._s[3440]! } - public var Settings_SavedMessages: String { return self._s[3441]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3442]! } - public var Bot_GenericSupportStatus: String { return self._s[3443]! } - public var StickerPack_Add: String { return self._s[3444]! } - public var Checkout_TotalAmount: String { return self._s[3445]! } - public var Your_cards_number_is_invalid: String { return self._s[3446]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3447]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3448]! } + public var AttachmentMenu_File: String { return self._s[3425]! } + public var AppleWatch_Title: String { return self._s[3426]! } + public var Activity_RecordingVideoMessage: String { return self._s[3427]! } + public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3428]!, self._r[3428]!, [_1, _2]) + } + public var Theme_Colors_Messages: String { return self._s[3429]! } + public var Weekday_Saturday: String { return self._s[3430]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3431]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3432]! } + public var Common_Next: String { return self._s[3434]! } + public var Channel_Stickers_YourStickers: String { return self._s[3436]! } + public var Message_Theme: String { return self._s[3437]! } + public var Call_AudioRouteHeadphones: String { return self._s[3438]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3440]! } + public var Watch_Contacts_NoResults: String { return self._s[3442]! } + public var PhotoEditor_TintTool: String { return self._s[3445]! } + public var LoginPassword_ResetAccount: String { return self._s[3447]! } + public var Settings_SavedMessages: String { return self._s[3448]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3449]! } + public var Bot_GenericSupportStatus: String { return self._s[3450]! } + public var StickerPack_Add: String { return self._s[3451]! } + public var Checkout_TotalAmount: String { return self._s[3452]! } + public var Your_cards_number_is_invalid: String { return self._s[3453]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3454]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3455]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3449]!, self._r[3449]!, [_0]) + return formatWithArgumentRanges(self._s[3456]!, self._r[3456]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3450]!, self._r[3450]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3457]!, self._r[3457]!, [_1, _2]) } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3451]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3458]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3453]!, self._r[3453]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3460]!, self._r[3460]!, [_1, _2]) } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3454]!, self._r[3454]!, [_0]) + return formatWithArgumentRanges(self._s[3461]!, self._r[3461]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3455]! } - public var StickerPack_Share: String { return self._s[3456]! } - public var Passport_DeleteAddress: String { return self._s[3457]! } - public var Settings_Passport: String { return self._s[3458]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3459]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3460]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3461]! } - public var Contacts_PermissionsText: String { return self._s[3462]! } - public var Group_Setup_HistoryVisible: String { return self._s[3463]! } - public var Wallet_Month_ShortDecember: String { return self._s[3465]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3466]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3467]! } - public var SocksProxySetup_Title: String { return self._s[3468]! } - public var Notification_Mute1h: String { return self._s[3469]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3462]! } + public var StickerPack_Share: String { return self._s[3463]! } + public var Passport_DeleteAddress: String { return self._s[3464]! } + public var Settings_Passport: String { return self._s[3465]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3466]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3467]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3468]! } + public var Contacts_PermissionsText: String { return self._s[3469]! } + public var Group_Setup_HistoryVisible: String { return self._s[3470]! } + public var Wallet_Month_ShortDecember: String { return self._s[3472]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3473]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3474]! } + public var SocksProxySetup_Title: String { return self._s[3475]! } + public var Notification_Mute1h: String { return self._s[3476]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3470]!, self._r[3470]!, [_0]) + return formatWithArgumentRanges(self._s[3477]!, self._r[3477]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3471]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3478]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3472]!, self._r[3472]!, [_1]) + return formatWithArgumentRanges(self._s[3479]!, self._r[3479]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3473]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3476]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3478]! } - public var DialogList_NoMessagesText: String { return self._s[3479]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3480]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3481]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3483]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3484]! } - public var Common_TakePhotoOrVideo: String { return self._s[3485]! } - public var Wallet_Words_Text: String { return self._s[3486]! } - public var Call_StatusBusy: String { return self._s[3487]! } - public var Conversation_PinnedMessage: String { return self._s[3488]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3489]! } - public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3490]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3491]! } - public var Undo_ChatCleared: String { return self._s[3492]! } - public var AppleWatch_ReplyPresets: String { return self._s[3493]! } - public var Passport_DiscardMessageDescription: String { return self._s[3495]! } - public var Login_NetworkError: String { return self._s[3496]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3480]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3483]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3485]! } + public var DialogList_NoMessagesText: String { return self._s[3486]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3487]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3488]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3490]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3491]! } + public var Common_TakePhotoOrVideo: String { return self._s[3492]! } + public var Wallet_Words_Text: String { return self._s[3493]! } + public var Call_StatusBusy: String { return self._s[3494]! } + public var Conversation_PinnedMessage: String { return self._s[3495]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3496]! } + public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3497]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3498]! } + public var Undo_ChatCleared: String { return self._s[3499]! } + public var AppleWatch_ReplyPresets: String { return self._s[3500]! } + public var Passport_DiscardMessageDescription: String { return self._s[3502]! } + public var Login_NetworkError: String { return self._s[3503]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3497]!, self._r[3497]!, [_0]) - } - public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3498]!, self._r[3498]!, [_0]) - } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3499]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3501]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3502]! } - public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3504]!, self._r[3504]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3505]! } - public var VoiceOver_Chat_Music: String { return self._s[3506]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3507]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3509]! } - public var ConversationMedia_Title: String { return self._s[3510]! } - public var EncryptionKey_Title: String { return self._s[3512]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3513]! } - public var Notification_Exceptions_AddException: String { return self._s[3514]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3515]! } - public var Profile_MessageLifetime1m: String { return self._s[3516]! } + public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3505]!, self._r[3505]!, [_0]) + } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3506]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3508]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3509]! } + public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3511]!, self._r[3511]!, [_0]) + } + public var Call_ConnectionErrorMessage: String { return self._s[3512]! } + public var VoiceOver_Chat_Music: String { return self._s[3513]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3514]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3516]! } + public var ConversationMedia_Title: String { return self._s[3517]! } + public var EncryptionKey_Title: String { return self._s[3519]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3520]! } + public var Notification_Exceptions_AddException: String { return self._s[3521]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3522]! } + public var Profile_MessageLifetime1m: String { return self._s[3523]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3517]!, self._r[3517]!, [_1]) + return formatWithArgumentRanges(self._s[3524]!, self._r[3524]!, [_1]) } - public var Month_GenMay: String { return self._s[3518]! } + public var Month_GenMay: String { return self._s[3525]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3519]!, self._r[3519]!, [_0]) + return formatWithArgumentRanges(self._s[3526]!, self._r[3526]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3520]! } - public var Wallet_Send_AddressInfo: String { return self._s[3521]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3522]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3523]! } + public var PeopleNearby_Users: String { return self._s[3527]! } + public var Wallet_Send_AddressInfo: String { return self._s[3528]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3529]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3530]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3525]!, self._r[3525]!, [_0]) + return formatWithArgumentRanges(self._s[3532]!, self._r[3532]!, [_0]) } - public var Conversation_EmptyPlaceholder: String { return self._s[3526]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3527]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3528]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3529]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3530]! } - public var Channel_JoinChannel: String { return self._s[3532]! } - public var Appearance_Animations: String { return self._s[3535]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3533]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3534]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3535]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3536]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3537]! } + public var Channel_JoinChannel: String { return self._s[3539]! } + public var Appearance_Animations: String { return self._s[3542]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3536]!, self._r[3536]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3543]!, self._r[3543]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3538]! } - public var Appearance_ShareTheme: String { return self._s[3539]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3540]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3542]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3543]! } - public var Passport_Address_Street: String { return self._s[3544]! } - public var Conversation_AddContact: String { return self._s[3545]! } - public var Login_PhonePlaceholder: String { return self._s[3546]! } - public var Channel_Members_InviteLink: String { return self._s[3548]! } - public var Bot_Stop: String { return self._s[3549]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3551]! } - public var Notification_PassportValueAddress: String { return self._s[3552]! } - public var Month_ShortJuly: String { return self._s[3553]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3554]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3555]! } - public var Passport_Identity_ReverseSide: String { return self._s[3556]! } - public var Watch_Stickers_Recents: String { return self._s[3559]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3561]! } - public var Map_SendThisLocation: String { return self._s[3562]! } + public var Stickers_GroupStickers: String { return self._s[3545]! } + public var Appearance_ShareTheme: String { return self._s[3546]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3547]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3549]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3550]! } + public var Passport_Address_Street: String { return self._s[3551]! } + public var Conversation_AddContact: String { return self._s[3552]! } + public var Login_PhonePlaceholder: String { return self._s[3553]! } + public var Channel_Members_InviteLink: String { return self._s[3555]! } + public var Bot_Stop: String { return self._s[3556]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3558]! } + public var Notification_PassportValueAddress: String { return self._s[3559]! } + public var Month_ShortJuly: String { return self._s[3560]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3561]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3562]! } + public var Passport_Identity_ReverseSide: String { return self._s[3563]! } + public var Watch_Stickers_Recents: String { return self._s[3566]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3568]! } + public var Map_SendThisLocation: String { return self._s[3569]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3563]!, self._r[3563]!, [_0]) + return formatWithArgumentRanges(self._s[3570]!, self._r[3570]!, [_0]) } public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3564]!, self._r[3564]!, [_0]) + return formatWithArgumentRanges(self._s[3571]!, self._r[3571]!, [_0]) } - public var ConvertToSupergroup_Note: String { return self._s[3565]! } - public var Wallet_Intro_NotNow: String { return self._s[3566]! } + public var ConvertToSupergroup_Note: String { return self._s[3572]! } + public var Wallet_Intro_NotNow: String { return self._s[3573]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3567]!, self._r[3567]!, [_0]) + return formatWithArgumentRanges(self._s[3574]!, self._r[3574]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3568]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3575]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3569]!, self._r[3569]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3576]!, self._r[3576]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3571]! } - public var Wallpaper_SearchShort: String { return self._s[3572]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3574]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3575]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3576]! } + public var Login_CallRequestState3: String { return self._s[3578]! } + public var Wallpaper_SearchShort: String { return self._s[3579]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3581]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3582]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3583]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3577]!, self._r[3577]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3584]!, self._r[3584]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3578]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3580]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3583]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3585]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3587]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3590]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3584]!, self._r[3584]!, [_0]) + return formatWithArgumentRanges(self._s[3591]!, self._r[3591]!, [_0]) } - public var Passport_CorrectErrors: String { return self._s[3585]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3586]! } + public var Passport_CorrectErrors: String { return self._s[3592]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3593]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3587]!, self._r[3587]!, [_0]) + return formatWithArgumentRanges(self._s[3594]!, self._r[3594]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3588]! } - public var Channel_DiscussionGroup: String { return self._s[3589]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3590]! } + public var Map_SendMyCurrentLocation: String { return self._s[3595]! } + public var Channel_DiscussionGroup: String { return self._s[3596]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3597]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3591]!, self._r[3591]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3598]!, self._r[3598]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3592]! } - public var Permissions_NotificationsText_v0: String { return self._s[3593]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3594]! } - public var Appearance_AppIcon: String { return self._s[3595]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3596]! } - public var LoginPassword_FloodError: String { return self._s[3597]! } - public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3599]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3600]! } + public var SharedMedia_SearchNoResults: String { return self._s[3599]! } + public var Permissions_NotificationsText_v0: String { return self._s[3600]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3601]! } + public var Appearance_AppIcon: String { return self._s[3602]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3603]! } + public var LoginPassword_FloodError: String { return self._s[3604]! } + public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3606]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3607]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3601]!, self._r[3601]!, [_0]) + return formatWithArgumentRanges(self._s[3608]!, self._r[3608]!, [_0]) } - public var Passport_Language_bn: String { return self._s[3602]! } + public var Passport_Language_bn: String { return self._s[3609]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3603]!, self._r[3603]!, [_0]) + return formatWithArgumentRanges(self._s[3610]!, self._r[3610]!, [_0]) } - public var ChatList_Context_Pin: String { return self._s[3604]! } + public var ChatList_Context_Pin: String { return self._s[3611]! } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3605]!, self._r[3605]!, [_0]) + return formatWithArgumentRanges(self._s[3612]!, self._r[3612]!, [_0]) } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3606]!, self._r[3606]!, [_0]) + return formatWithArgumentRanges(self._s[3613]!, self._r[3613]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3607]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3611]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3613]! } - public var Wallet_Month_GenDecember: String { return self._s[3614]! } - public var Contacts_PermissionsAllow: String { return self._s[3615]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3616]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3617]! } - public var WallpaperPreview_Pattern: String { return self._s[3618]! } - public var Paint_Duplicate: String { return self._s[3619]! } - public var Passport_Address_Country: String { return self._s[3620]! } - public var Notification_RenamedChannel: String { return self._s[3622]! } - public var ChatList_Context_Unmute: String { return self._s[3623]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3624]! } - public var Group_MessagePhotoUpdated: String { return self._s[3625]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3626]! } - public var Conversation_ContextMenuBan: String { return self._s[3627]! } - public var TwoStepAuth_EmailSent: String { return self._s[3628]! } - public var MessagePoll_NoVotes: String { return self._s[3629]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3630]! } - public var Passport_Language_is: String { return self._s[3631]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3633]! } - public var Tour_Text5: String { return self._s[3634]! } + public var Wallet_Navigation_Close: String { return self._s[3614]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3618]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3620]! } + public var Wallet_Month_GenDecember: String { return self._s[3621]! } + public var Contacts_PermissionsAllow: String { return self._s[3622]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3623]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3624]! } + public var WallpaperPreview_Pattern: String { return self._s[3625]! } + public var Paint_Duplicate: String { return self._s[3626]! } + public var Passport_Address_Country: String { return self._s[3627]! } + public var Notification_RenamedChannel: String { return self._s[3629]! } + public var ChatList_Context_Unmute: String { return self._s[3630]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3631]! } + public var Group_MessagePhotoUpdated: String { return self._s[3632]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3633]! } + public var Conversation_ContextMenuBan: String { return self._s[3634]! } + public var TwoStepAuth_EmailSent: String { return self._s[3635]! } + public var MessagePoll_NoVotes: String { return self._s[3636]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3637]! } + public var Passport_Language_is: String { return self._s[3639]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3641]! } + public var Tour_Text5: String { return self._s[3642]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3636]!, self._r[3636]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3645]!, self._r[3645]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3637]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3638]! } + public var Undo_SecretChatDeleted: String { return self._s[3646]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3647]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3639]!, self._r[3639]!, [_0]) + return formatWithArgumentRanges(self._s[3648]!, self._r[3648]!, [_0]) } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3640]! } - public var Paint_Edit: String { return self._s[3642]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3644]! } - public var Undo_DeletedGroup: String { return self._s[3646]! } - public var LoginPassword_ForgotPassword: String { return self._s[3647]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3648]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3649]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3649]! } + public var Paint_Edit: String { return self._s[3651]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3653]! } + public var Undo_DeletedGroup: String { return self._s[3655]! } + public var LoginPassword_ForgotPassword: String { return self._s[3656]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3657]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3658]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3650]!, self._r[3650]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3659]!, self._r[3659]!, [_0, _1]) } - public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3651]! } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3652]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3653]! } - public var Passport_Language_uz: String { return self._s[3654]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3655]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3656]! } - public var Map_StopLiveLocation: String { return self._s[3658]! } - public var VoiceOver_MessageContextSend: String { return self._s[3660]! } - public var PasscodeSettings_Help: String { return self._s[3661]! } - public var NotificationsSound_Input: String { return self._s[3662]! } - public var Share_Title: String { return self._s[3665]! } - public var LogoutOptions_Title: String { return self._s[3666]! } - public var Wallet_Send_AddressText: String { return self._s[3667]! } - public var Login_TermsOfServiceAgree: String { return self._s[3668]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3669]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3670]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3671]! } - public var EnterPasscode_EnterTitle: String { return self._s[3672]! } + public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3660]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3661]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3662]! } + public var Passport_Language_uz: String { return self._s[3663]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3664]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3665]! } + public var Map_StopLiveLocation: String { return self._s[3667]! } + public var VoiceOver_MessageContextSend: String { return self._s[3669]! } + public var PasscodeSettings_Help: String { return self._s[3670]! } + public var NotificationsSound_Input: String { return self._s[3671]! } + public var Share_Title: String { return self._s[3674]! } + public var LogoutOptions_Title: String { return self._s[3675]! } + public var Wallet_Send_AddressText: String { return self._s[3676]! } + public var Login_TermsOfServiceAgree: String { return self._s[3677]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3678]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3679]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3680]! } + public var EnterPasscode_EnterTitle: String { return self._s[3681]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3673]!, self._r[3673]!, [_0]) + return formatWithArgumentRanges(self._s[3682]!, self._r[3682]!, [_0]) } - public var Settings_CopyPhoneNumber: String { return self._s[3674]! } - public var Conversation_AddToContacts: String { return self._s[3675]! } + public var Settings_CopyPhoneNumber: String { return self._s[3683]! } + public var Conversation_AddToContacts: String { return self._s[3684]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3676]!, self._r[3676]!, [_0]) + return formatWithArgumentRanges(self._s[3685]!, self._r[3685]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[3677]! } + public var NotificationsSound_Keys: String { return self._s[3686]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3678]!, self._r[3678]!, [_0]) - } - public var Notification_MessageLifetime1w: String { return self._s[3679]! } - public var Message_Video: String { return self._s[3680]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3681]! } - public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3682]!, self._r[3682]!, [_1]) - } - public var Wallet_Receive_AmountInfo: String { return self._s[3685]! } - public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3686]!, self._r[3686]!, [_0]) - } - public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3687]!, self._r[3687]!, [_0]) } - public var Passport_Language_mk: String { return self._s[3688]! } - public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3689]!, self._r[3689]!, [_1, _2, _3]) + public var Notification_MessageLifetime1w: String { return self._s[3688]! } + public var Message_Video: String { return self._s[3689]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3690]! } + public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3691]!, self._r[3691]!, [_1]) } - public var CreatePoll_CancelConfirmation: String { return self._s[3690]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3691]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3693]! } - public var PrivacyPolicy_Decline: String { return self._s[3694]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3695]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3696]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3697]! } - public var Permissions_SiriAllow_v0: String { return self._s[3699]! } - public var Wallet_Month_ShortAugust: String { return self._s[3700]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3701]! } + public var Wallet_Receive_AmountInfo: String { return self._s[3694]! } + public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3695]!, self._r[3695]!, [_0]) + } + public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3696]!, self._r[3696]!, [_0]) + } + public var Passport_Language_mk: String { return self._s[3697]! } + public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_1, _2, _3]) + } + public var CreatePoll_CancelConfirmation: String { return self._s[3699]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3700]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3702]! } + public var PrivacyPolicy_Decline: String { return self._s[3703]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3704]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3705]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3706]! } + public var Permissions_SiriAllow_v0: String { return self._s[3708]! } + public var Wallet_Month_ShortAugust: String { return self._s[3709]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3710]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3702]!, self._r[3702]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3711]!, self._r[3711]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3703]!, self._r[3703]!, [_0]) + return formatWithArgumentRanges(self._s[3712]!, self._r[3712]!, [_0]) } - public var Paint_Regular: String { return self._s[3704]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3705]! } - public var SocksProxySetup_ShareLink: String { return self._s[3706]! } - public var Wallet_Qr_Title: String { return self._s[3707]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3708]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3710]! } - public var Wallet_Settings_Configuration: String { return self._s[3711]! } - public var GroupInfo_InviteByLink: String { return self._s[3712]! } - public var MessageTimer_Custom: String { return self._s[3713]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3714]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3716]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[3717]! } - public var VoiceOver_Chat_Selected: String { return self._s[3718]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3719]! } - public var Channel_Username_InvalidTaken: String { return self._s[3720]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3721]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3722]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[3723]! } - public var Settings_ChatBackground: String { return self._s[3724]! } - public var Channel_Subscribers_Title: String { return self._s[3725]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3726]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3727]! } - public var Watch_ConnectionDescription: String { return self._s[3728]! } - public var OldChannels_NoticeText: String { return self._s[3731]! } - public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3732]! } - public var IntentsSettings_SuggestBy: String { return self._s[3734]! } - public var Theme_ThemeChangedText: String { return self._s[3735]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[3736]! } - public var Wallpaper_ResetWallpapers: String { return self._s[3737]! } - public var Wallet_Send_TransactionInProgress: String { return self._s[3738]! } - public var EditProfile_Title: String { return self._s[3739]! } - public var NotificationsSound_Bamboo: String { return self._s[3741]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3743]! } - public var Login_SmsRequestState2: String { return self._s[3744]! } - public var Passport_Language_ar: String { return self._s[3745]! } + public var Paint_Regular: String { return self._s[3713]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3714]! } + public var SocksProxySetup_ShareLink: String { return self._s[3715]! } + public var Wallet_Qr_Title: String { return self._s[3716]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3717]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3719]! } + public var Wallet_Settings_Configuration: String { return self._s[3720]! } + public var GroupInfo_InviteByLink: String { return self._s[3721]! } + public var MessageTimer_Custom: String { return self._s[3722]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3723]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3724]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3726]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[3727]! } + public var VoiceOver_Chat_Selected: String { return self._s[3728]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3729]! } + public var Channel_Username_InvalidTaken: String { return self._s[3730]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3731]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3732]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[3733]! } + public var Settings_ChatBackground: String { return self._s[3734]! } + public var Channel_Subscribers_Title: String { return self._s[3735]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3736]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3737]! } + public var Watch_ConnectionDescription: String { return self._s[3738]! } + public var OldChannels_NoticeText: String { return self._s[3741]! } + public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3742]! } + public var IntentsSettings_SuggestBy: String { return self._s[3744]! } + public var Theme_ThemeChangedText: String { return self._s[3745]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[3746]! } + public var Wallpaper_ResetWallpapers: String { return self._s[3747]! } + public var Wallet_Send_TransactionInProgress: String { return self._s[3748]! } + public var EditProfile_Title: String { return self._s[3749]! } + public var NotificationsSound_Bamboo: String { return self._s[3751]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3753]! } + public var Login_SmsRequestState2: String { return self._s[3754]! } + public var Passport_Language_ar: String { return self._s[3755]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3746]!, self._r[3746]!, [_0]) + return formatWithArgumentRanges(self._s[3756]!, self._r[3756]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3747]! } - public var Wallet_Created_Text: String { return self._s[3748]! } - public var Conversation_MessageDialogEdit: String { return self._s[3750]! } - public var Wallet_Created_Proceed: String { return self._s[3751]! } - public var Wallet_Words_Done: String { return self._s[3752]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3753]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3757]! } + public var Wallet_Created_Text: String { return self._s[3758]! } + public var Conversation_MessageDialogEdit: String { return self._s[3760]! } + public var Wallet_Created_Proceed: String { return self._s[3761]! } + public var Wallet_Words_Done: String { return self._s[3762]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3763]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3754]!, self._r[3754]!, [_1]) + return formatWithArgumentRanges(self._s[3764]!, self._r[3764]!, [_1]) } - public var Common_Close: String { return self._s[3755]! } - public var GroupInfo_PublicLink: String { return self._s[3756]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3757]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3758]! } + public var Common_Close: String { return self._s[3765]! } + public var GroupInfo_PublicLink: String { return self._s[3766]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3767]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3768]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3762]!, self._r[3762]!, [_0]) + return formatWithArgumentRanges(self._s[3772]!, self._r[3772]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3763]! } + public var UserInfo_About_Placeholder: String { return self._s[3773]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3764]!, self._r[3764]!, [_0]) + return formatWithArgumentRanges(self._s[3774]!, self._r[3774]!, [_0]) } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[3765]! } - public var Channel_Info_Banned: String { return self._s[3767]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[3775]! } + public var Channel_Info_Banned: String { return self._s[3777]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3768]!, self._r[3768]!, [_0]) + return formatWithArgumentRanges(self._s[3778]!, self._r[3778]!, [_0]) } - public var Appearance_Other: String { return self._s[3769]! } - public var Passport_Language_my: String { return self._s[3770]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3771]! } + public var Appearance_Other: String { return self._s[3779]! } + public var Passport_Language_my: String { return self._s[3780]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3781]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3772]!, self._r[3772]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3782]!, self._r[3782]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3773]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3774]! } - public var Preview_CopyAddress: String { return self._s[3775]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3783]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3784]! } + public var Preview_CopyAddress: String { return self._s[3785]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3776]!, self._r[3776]!, [_0]) + return formatWithArgumentRanges(self._s[3786]!, self._r[3786]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3777]! } - public var UserInfo_BotSettings: String { return self._s[3778]! } - public var LiveLocation_MenuStopAll: String { return self._s[3780]! } - public var Passport_PasswordCreate: String { return self._s[3781]! } - public var StickerSettings_MaskContextInfo: String { return self._s[3782]! } - public var Message_PinnedLocationMessage: String { return self._s[3783]! } - public var Map_Satellite: String { return self._s[3784]! } - public var Watch_Message_Unsupported: String { return self._s[3785]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[3786]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3787]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3787]! } + public var UserInfo_BotSettings: String { return self._s[3788]! } + public var LiveLocation_MenuStopAll: String { return self._s[3790]! } + public var Passport_PasswordCreate: String { return self._s[3791]! } + public var StickerSettings_MaskContextInfo: String { return self._s[3792]! } + public var Message_PinnedLocationMessage: String { return self._s[3793]! } + public var Map_Satellite: String { return self._s[3794]! } + public var Watch_Message_Unsupported: String { return self._s[3795]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[3796]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3797]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3788]!, self._r[3788]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3798]!, self._r[3798]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_0]) + return formatWithArgumentRanges(self._s[3799]!, self._r[3799]!, [_0]) } - public var Wallet_WordImport_Continue: String { return self._s[3790]! } + public var Wallet_WordImport_Continue: String { return self._s[3800]! } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3791]!, self._r[3791]!, [_0]) + return formatWithArgumentRanges(self._s[3801]!, self._r[3801]!, [_0]) } - public var Notifications_ChannelNotificationsHelp: String { return self._s[3792]! } - public var Privacy_Calls_P2PContacts: String { return self._s[3793]! } - public var NotificationsSound_None: String { return self._s[3794]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3795]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3797]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[3798]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[3802]! } + public var Privacy_Calls_P2PContacts: String { return self._s[3803]! } + public var NotificationsSound_None: String { return self._s[3804]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3805]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3807]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[3808]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3799]!, self._r[3799]!, [_1]) + return formatWithArgumentRanges(self._s[3809]!, self._r[3809]!, [_1]) } - public var Cache_Indexing: String { return self._s[3800]! } - public var DialogList_RecentTitlePeople: String { return self._s[3802]! } - public var DialogList_EncryptionRejected: String { return self._s[3803]! } - public var GroupInfo_Administrators: String { return self._s[3804]! } - public var Passport_ScanPassportHelp: String { return self._s[3805]! } - public var Application_Name: String { return self._s[3806]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3807]! } - public var Appearance_ThemeCarouselDay: String { return self._s[3809]! } - public var Passport_Identity_TranslationHelp: String { return self._s[3810]! } + public var Cache_Indexing: String { return self._s[3810]! } + public var DialogList_RecentTitlePeople: String { return self._s[3812]! } + public var DialogList_EncryptionRejected: String { return self._s[3813]! } + public var GroupInfo_Administrators: String { return self._s[3814]! } + public var Passport_ScanPassportHelp: String { return self._s[3815]! } + public var Application_Name: String { return self._s[3816]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3817]! } + public var Appearance_ThemeCarouselDay: String { return self._s[3819]! } + public var Passport_Identity_TranslationHelp: String { return self._s[3820]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3811]!, self._r[3811]!, [_0]) + return formatWithArgumentRanges(self._s[3821]!, self._r[3821]!, [_0]) } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3812]!, self._r[3812]!, [_0]) + return formatWithArgumentRanges(self._s[3822]!, self._r[3822]!, [_0]) } public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3813]!, self._r[3813]!, [_0]) + return formatWithArgumentRanges(self._s[3823]!, self._r[3823]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3814]! } - public var Privacy_ChatsTitle: String { return self._s[3815]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[3816]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3817]! } - public var Watch_Suggestion_HoldOn: String { return self._s[3818]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3819]! } - public var WebBrowser_Title: String { return self._s[3820]! } - public var Group_LinkedChannel: String { return self._s[3821]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3822]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[3823]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3824]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3825]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[3826]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[3828]! } - public var Channel_Setup_TypePublic: String { return self._s[3830]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3824]! } + public var Privacy_ChatsTitle: String { return self._s[3825]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[3826]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3827]! } + public var Watch_Suggestion_HoldOn: String { return self._s[3828]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3829]! } + public var WebBrowser_Title: String { return self._s[3830]! } + public var Group_LinkedChannel: String { return self._s[3831]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3832]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[3833]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3834]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3835]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[3836]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[3838]! } + public var Channel_Setup_TypePublic: String { return self._s[3840]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3831]!, self._r[3831]!, [_0]) + return formatWithArgumentRanges(self._s[3841]!, self._r[3841]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[3833]! } - public var MessagePoll_ViewResults: String { return self._s[3834]! } - public var Map_OpenInMaps: String { return self._s[3836]! } + public var Channel_TypeSetup_Title: String { return self._s[3843]! } + public var MessagePoll_ViewResults: String { return self._s[3844]! } + public var Map_OpenInMaps: String { return self._s[3846]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3837]!, self._r[3837]!, [_1]) + return formatWithArgumentRanges(self._s[3847]!, self._r[3847]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[3839]! } + public var NotificationsSound_Tremolo: String { return self._s[3849]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3840]!, self._r[3840]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3850]!, self._r[3850]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3841]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3842]! } - public var Passport_PasswordHelp: String { return self._s[3843]! } - public var Login_CodeExpiredError: String { return self._s[3844]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3845]! } - public var Conversation_TitleUnmute: String { return self._s[3846]! } - public var Passport_Identity_ScansHelp: String { return self._s[3847]! } - public var Passport_Language_lo: String { return self._s[3848]! } - public var Camera_FlashAuto: String { return self._s[3849]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3850]! } - public var Common_Cancel: String { return self._s[3851]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[3852]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3853]! } - public var Appearance_TintAllColors: String { return self._s[3854]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3851]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3852]! } + public var Passport_PasswordHelp: String { return self._s[3853]! } + public var Login_CodeExpiredError: String { return self._s[3854]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3855]! } + public var Conversation_TitleUnmute: String { return self._s[3856]! } + public var Passport_Identity_ScansHelp: String { return self._s[3857]! } + public var Passport_Language_lo: String { return self._s[3858]! } + public var Camera_FlashAuto: String { return self._s[3859]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3860]! } + public var Common_Cancel: String { return self._s[3861]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[3862]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3863]! } + public var Appearance_TintAllColors: String { return self._s[3864]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3855]!, self._r[3855]!, [_1]) + return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[3856]! } - public var ChatSettings_Title: String { return self._s[3858]! } - public var Passport_PasswordReset: String { return self._s[3859]! } - public var SocksProxySetup_TypeNone: String { return self._s[3860]! } - public var EditTheme_Title: String { return self._s[3863]! } - public var PhoneNumberHelp_Help: String { return self._s[3864]! } - public var Checkout_EnterPassword: String { return self._s[3865]! } - public var Share_AuthTitle: String { return self._s[3867]! } - public var Activity_UploadingDocument: String { return self._s[3868]! } - public var State_Connecting: String { return self._s[3869]! } - public var Profile_MessageLifetime1w: String { return self._s[3870]! } - public var Conversation_ContextMenuReport: String { return self._s[3871]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3872]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3873]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[3866]! } + public var ChatSettings_Title: String { return self._s[3868]! } + public var Passport_PasswordReset: String { return self._s[3869]! } + public var SocksProxySetup_TypeNone: String { return self._s[3870]! } + public var EditTheme_Title: String { return self._s[3873]! } + public var PhoneNumberHelp_Help: String { return self._s[3874]! } + public var Checkout_EnterPassword: String { return self._s[3875]! } + public var Share_AuthTitle: String { return self._s[3877]! } + public var Activity_UploadingDocument: String { return self._s[3878]! } + public var State_Connecting: String { return self._s[3879]! } + public var Profile_MessageLifetime1w: String { return self._s[3880]! } + public var Conversation_ContextMenuReport: String { return self._s[3881]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3882]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3883]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3874]!, self._r[3874]!, [_0]) + return formatWithArgumentRanges(self._s[3884]!, self._r[3884]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[3875]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[3876]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3878]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3879]! } - public var PhotoEditor_Set: String { return self._s[3880]! } - public var EmptyGroupInfo_Title: String { return self._s[3881]! } - public var Login_PadPhoneHelp: String { return self._s[3882]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3884]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3886]! } - public var NotificationsSound_Complete: String { return self._s[3887]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3888]! } - public var Group_Info_AdminLog: String { return self._s[3889]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3890]! } + public var AuthSessions_Terminate: String { return self._s[3885]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[3886]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3888]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3889]! } + public var PhotoEditor_Set: String { return self._s[3890]! } + public var EmptyGroupInfo_Title: String { return self._s[3891]! } + public var Login_PadPhoneHelp: String { return self._s[3892]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3894]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3896]! } + public var NotificationsSound_Complete: String { return self._s[3897]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3898]! } + public var Group_Info_AdminLog: String { return self._s[3899]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3900]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3891]!, self._r[3891]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3901]!, self._r[3901]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3892]! } - public var Group_Location_CreateInThisPlace: String { return self._s[3894]! } - public var Conversation_Admin: String { return self._s[3895]! } - public var Conversation_GifTooltip: String { return self._s[3896]! } - public var Passport_NotLoggedInMessage: String { return self._s[3897]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3902]! } + public var Group_Location_CreateInThisPlace: String { return self._s[3904]! } + public var Conversation_Admin: String { return self._s[3905]! } + public var Conversation_GifTooltip: String { return self._s[3906]! } + public var Passport_NotLoggedInMessage: String { return self._s[3907]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3899]!, self._r[3899]!, [_0]) + return formatWithArgumentRanges(self._s[3909]!, self._r[3909]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[3900]! } - public var SharedMedia_EmptyTitle: String { return self._s[3902]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3904]! } - public var Username_Help: String { return self._s[3905]! } - public var DialogList_LanguageTooltip: String { return self._s[3907]! } - public var Map_LoadError: String { return self._s[3908]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3909]! } - public var Channel_AdminLog_AddMembers: String { return self._s[3910]! } - public var ArchivedChats_IntroTitle2: String { return self._s[3911]! } - public var Notification_Exceptions_NewException: String { return self._s[3912]! } - public var TwoStepAuth_EmailTitle: String { return self._s[3913]! } - public var WatchRemote_AlertText: String { return self._s[3914]! } + public var Profile_MessageLifetimeForever: String { return self._s[3910]! } + public var SharedMedia_EmptyTitle: String { return self._s[3912]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3914]! } + public var Username_Help: String { return self._s[3915]! } + public var DialogList_LanguageTooltip: String { return self._s[3917]! } + public var Map_LoadError: String { return self._s[3918]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3919]! } + public var Channel_AdminLog_AddMembers: String { return self._s[3920]! } + public var ArchivedChats_IntroTitle2: String { return self._s[3921]! } + public var Notification_Exceptions_NewException: String { return self._s[3922]! } + public var TwoStepAuth_EmailTitle: String { return self._s[3923]! } + public var WatchRemote_AlertText: String { return self._s[3924]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3915]!, self._r[3915]!, [_1, _2, _3]) - } - public var ChatSettings_ConnectionType_Title: String { return self._s[3919]! } - public var WebBrowser_DefaultBrowser: String { return self._s[3920]! } - public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3921]!, self._r[3921]!, [_0]) - } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3922]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[3923]! } - public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3924]!, self._r[3924]!, [_0]) - } - public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3925]!, self._r[3925]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[3926]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3927]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[3929]! } - public var Wallet_Created_ExportErrorText: String { return self._s[3930]! } - public var ChatList_UndoArchiveText1: String { return self._s[3931]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3932]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3933]! } - public var Cache_ClearNone: String { return self._s[3934]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3935]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3936]! } - public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3937]!, self._r[3937]!, [_0]) + public var ChatSettings_ConnectionType_Title: String { return self._s[3929]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3930]! } + public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3931]!, self._r[3931]!, [_0]) } - public var Passport_Identity_Country: String { return self._s[3938]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3932]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[3933]! } + public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3934]!, self._r[3934]!, [_0]) + } + public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3935]!, self._r[3935]!, [_1, _2, _3]) + } + public var Group_AdminLog_EmptyText: String { return self._s[3936]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3937]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3939]! } + public var Wallet_Created_ExportErrorText: String { return self._s[3940]! } + public var ChatList_UndoArchiveText1: String { return self._s[3941]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3942]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3943]! } + public var Cache_ClearNone: String { return self._s[3944]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3945]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3946]! } + public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3947]!, self._r[3947]!, [_0]) + } + public var Passport_Identity_Country: String { return self._s[3948]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3939]!, self._r[3939]!, [_0]) + return formatWithArgumentRanges(self._s[3949]!, self._r[3949]!, [_0]) } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_0]) + return formatWithArgumentRanges(self._s[3950]!, self._r[3950]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[3941]! } - public var AccessDenied_Settings: String { return self._s[3942]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3943]! } - public var Month_ShortMay: String { return self._s[3944]! } - public var Compose_NewGroup: String { return self._s[3946]! } - public var Group_Setup_TypePrivate: String { return self._s[3948]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3950]! } - public var Appearance_ThemeDayClassic: String { return self._s[3951]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3952]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3953]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3954]! } - public var Conversation_typing: String { return self._s[3956]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[3957]! } - public var Paint_Masks: String { return self._s[3958]! } - public var Contacts_DeselectAll: String { return self._s[3959]! } + public var Exceptions_AddToExceptions: String { return self._s[3951]! } + public var AccessDenied_Settings: String { return self._s[3952]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3953]! } + public var Month_ShortMay: String { return self._s[3954]! } + public var Compose_NewGroup: String { return self._s[3956]! } + public var Group_Setup_TypePrivate: String { return self._s[3958]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3960]! } + public var Appearance_ThemeDayClassic: String { return self._s[3961]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3962]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3963]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3964]! } + public var Conversation_typing: String { return self._s[3966]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[3967]! } + public var Paint_Masks: String { return self._s[3968]! } + public var Contacts_DeselectAll: String { return self._s[3969]! } public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3960]!, self._r[3960]!, [_0]) + return formatWithArgumentRanges(self._s[3970]!, self._r[3970]!, [_0]) } - public var Username_InvalidTaken: String { return self._s[3961]! } - public var Call_StatusNoAnswer: String { return self._s[3962]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3963]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3964]! } - public var Passport_Identity_Selfie: String { return self._s[3965]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3966]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3967]! } - public var Conversation_ClearSecretHistory: String { return self._s[3968]! } - public var PeopleNearby_Description: String { return self._s[3970]! } - public var NetworkUsageSettings_Title: String { return self._s[3971]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3973]! } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3971]! } + public var Username_InvalidTaken: String { return self._s[3972]! } + public var Call_StatusNoAnswer: String { return self._s[3973]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3974]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3975]! } + public var Passport_Identity_Selfie: String { return self._s[3976]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3977]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3978]! } + public var Conversation_ClearSecretHistory: String { return self._s[3979]! } + public var PeopleNearby_Description: String { return self._s[3981]! } + public var NetworkUsageSettings_Title: String { return self._s[3982]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3984]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3975]!, self._r[3975]!, [_0]) + return formatWithArgumentRanges(self._s[3986]!, self._r[3986]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3976]!, self._r[3976]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3987]!, self._r[3987]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[3978]! } - public var VoiceOver_Navigation_Search: String { return self._s[3979]! } - public var Map_LiveLocationTitle: String { return self._s[3980]! } - public var Login_InfoAvatarAdd: String { return self._s[3981]! } - public var Passport_Identity_FilesView: String { return self._s[3982]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3983]! } - public var Privacy_Calls_NeverAllow: String { return self._s[3984]! } - public var VoiceOver_Chat_File: String { return self._s[3985]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[3986]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[3989]! } + public var VoiceOver_Navigation_Search: String { return self._s[3990]! } + public var Map_LiveLocationTitle: String { return self._s[3991]! } + public var Login_InfoAvatarAdd: String { return self._s[3992]! } + public var Passport_Identity_FilesView: String { return self._s[3993]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3994]! } + public var Privacy_Calls_NeverAllow: String { return self._s[3995]! } + public var VoiceOver_Chat_File: String { return self._s[3996]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[3997]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3987]!, self._r[3987]!, [_0]) + return formatWithArgumentRanges(self._s[3998]!, self._r[3998]!, [_0]) } - public var ContactInfo_PhoneNumberHidden: String { return self._s[3988]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[3989]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3990]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[3999]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[4000]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4001]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3991]!, self._r[3991]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4002]!, self._r[4002]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3992]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[3993]! } - public var Tour_Title2: String { return self._s[3994]! } - public var Wallet_Sent_ViewWallet: String { return self._s[3995]! } - public var Conversation_FileOpenIn: String { return self._s[3996]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3997]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[3998]! } - public var Wallpaper_Set: String { return self._s[3999]! } - public var Passport_Identity_Translations: String { return self._s[4001]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4003]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[4004]! } + public var Tour_Title2: String { return self._s[4005]! } + public var Wallet_Sent_ViewWallet: String { return self._s[4006]! } + public var Conversation_FileOpenIn: String { return self._s[4007]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4008]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4009]! } + public var Wallpaper_Set: String { return self._s[4010]! } + public var Passport_Identity_Translations: String { return self._s[4012]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4002]!, self._r[4002]!, [_0]) + return formatWithArgumentRanges(self._s[4013]!, self._r[4013]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[4003]! } + public var Channel_LeaveChannel: String { return self._s[4014]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4004]!, self._r[4004]!, [_1]) + return formatWithArgumentRanges(self._s[4015]!, self._r[4015]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4006]! } - public var PhotoEditor_HighlightsTint: String { return self._s[4007]! } - public var MessagePoll_LabelPoll: String { return self._s[4008]! } - public var Passport_Email_Delete: String { return self._s[4009]! } - public var Conversation_Mute: String { return self._s[4011]! } - public var Channel_AddBotAsAdmin: String { return self._s[4012]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[4014]! } - public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4015]! } - public var ChatSettings_IntentsSettings: String { return self._s[4017]! } - public var Channel_Management_LabelOwner: String { return self._s[4018]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4017]! } + public var PhotoEditor_HighlightsTint: String { return self._s[4018]! } + public var MessagePoll_LabelPoll: String { return self._s[4019]! } + public var Passport_Email_Delete: String { return self._s[4020]! } + public var Conversation_Mute: String { return self._s[4022]! } + public var Channel_AddBotAsAdmin: String { return self._s[4023]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[4025]! } + public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4026]! } + public var ChatSettings_IntentsSettings: String { return self._s[4028]! } + public var Channel_Management_LabelOwner: String { return self._s[4029]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4019]!, self._r[4019]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4030]!, self._r[4030]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[4020]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[4021]! } - public var Common_No: String { return self._s[4022]! } - public var Weekday_Sunday: String { return self._s[4023]! } - public var Notification_Reply: String { return self._s[4024]! } - public var Conversation_ViewMessage: String { return self._s[4025]! } + public var Calls_CallTabDescription: String { return self._s[4031]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[4032]! } + public var Common_No: String { return self._s[4033]! } + public var Weekday_Sunday: String { return self._s[4034]! } + public var Notification_Reply: String { return self._s[4035]! } + public var Conversation_ViewMessage: String { return self._s[4036]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4026]!, self._r[4026]!, [_0]) + return formatWithArgumentRanges(self._s[4037]!, self._r[4037]!, [_0]) } public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4027]!, self._r[4027]!, [_0]) + return formatWithArgumentRanges(self._s[4038]!, self._r[4038]!, [_0]) } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4028]!, self._r[4028]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4039]!, self._r[4039]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4029]! } - public var Wallet_Send_Title: String { return self._s[4030]! } - public var Message_PinnedDocumentMessage: String { return self._s[4031]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[4032]! } - public var DialogList_TabTitle: String { return self._s[4034]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4035]! } - public var Passport_FieldEmail: String { return self._s[4036]! } - public var Conversation_UnpinMessageAlert: String { return self._s[4037]! } - public var Passport_Address_TypeBankStatement: String { return self._s[4038]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[4039]! } - public var Passport_Identity_ExpiryDate: String { return self._s[4040]! } - public var Privacy_Calls_P2P: String { return self._s[4041]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4040]! } + public var Wallet_Send_Title: String { return self._s[4041]! } + public var Message_PinnedDocumentMessage: String { return self._s[4042]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[4043]! } + public var DialogList_TabTitle: String { return self._s[4045]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4046]! } + public var Passport_FieldEmail: String { return self._s[4047]! } + public var Conversation_UnpinMessageAlert: String { return self._s[4048]! } + public var Passport_Address_TypeBankStatement: String { return self._s[4049]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[4050]! } + public var Passport_Identity_ExpiryDate: String { return self._s[4051]! } + public var Privacy_Calls_P2P: String { return self._s[4052]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4043]!, self._r[4043]!, [_0]) + return formatWithArgumentRanges(self._s[4054]!, self._r[4054]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[4044]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[4055]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4045]!, self._r[4045]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4056]!, self._r[4056]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[4046]! } - public var EnterPasscode_ChangeTitle: String { return self._s[4047]! } - public var TwoFactorSetup_Email_Title: String { return self._s[4048]! } - public var Passport_InfoText: String { return self._s[4049]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4050]! } + public var Stickers_ClearRecent: String { return self._s[4057]! } + public var EnterPasscode_ChangeTitle: String { return self._s[4058]! } + public var TwoFactorSetup_Email_Title: String { return self._s[4059]! } + public var Passport_InfoText: String { return self._s[4060]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4061]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4051]!, self._r[4051]!, [_0]) + return formatWithArgumentRanges(self._s[4062]!, self._r[4062]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4052]!, self._r[4052]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4063]!, self._r[4063]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4053]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[4054]! } - public var VoiceOver_Navigation_Compose: String { return self._s[4055]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[4056]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[4058]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4059]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4064]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[4065]! } + public var VoiceOver_Navigation_Compose: String { return self._s[4066]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[4067]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[4069]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4070]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4060]!, self._r[4060]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4071]!, self._r[4071]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4062]! } - public var ChatSettings_OpenLinksIn: String { return self._s[4063]! } - public var Map_HomeAndWorkTitle: String { return self._s[4064]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4073]! } + public var ChatSettings_OpenLinksIn: String { return self._s[4074]! } + public var Map_HomeAndWorkTitle: String { return self._s[4075]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4066]!, self._r[4066]!, [_0]) + return formatWithArgumentRanges(self._s[4077]!, self._r[4077]!, [_0]) } - public var DialogList_Unread: String { return self._s[4067]! } + public var DialogList_Unread: String { return self._s[4078]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4068]!, self._r[4068]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4079]!, self._r[4079]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[4069]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4070]! } + public var User_DeletedAccount: String { return self._s[4080]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4081]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4071]!, self._r[4071]!, [_0]) + return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[4072]! } - public var SharedMedia_CategoryMedia: String { return self._s[4073]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4074]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4075]! } - public var Watch_ChatList_Compose: String { return self._s[4076]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4077]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[4078]! } - public var Watch_Microphone_Access: String { return self._s[4079]! } - public var Group_Setup_HistoryHeader: String { return self._s[4080]! } - public var Map_SetThisLocation: String { return self._s[4081]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4082]! } - public var Activity_UploadingPhoto: String { return self._s[4083]! } - public var Conversation_Edit: String { return self._s[4085]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[4086]! } - public var Login_TermsOfServiceDecline: String { return self._s[4087]! } - public var Message_PinnedContactMessage: String { return self._s[4088]! } + public var UserInfo_NotificationsDefault: String { return self._s[4083]! } + public var SharedMedia_CategoryMedia: String { return self._s[4084]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4085]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4086]! } + public var Watch_ChatList_Compose: String { return self._s[4087]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4088]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[4089]! } + public var Watch_Microphone_Access: String { return self._s[4090]! } + public var Group_Setup_HistoryHeader: String { return self._s[4091]! } + public var Map_SetThisLocation: String { return self._s[4092]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4093]! } + public var Activity_UploadingPhoto: String { return self._s[4094]! } + public var Conversation_Edit: String { return self._s[4096]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[4097]! } + public var Login_TermsOfServiceDecline: String { return self._s[4098]! } + public var Message_PinnedContactMessage: String { return self._s[4099]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4089]!, self._r[4089]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4100]!, self._r[4100]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4090]!, self._r[4090]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[4101]!, self._r[4101]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[4091]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4093]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4094]! } + public var Appearance_LargeEmoji: String { return self._s[4102]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4104]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4105]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4095]!, self._r[4095]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4106]!, self._r[4106]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[4096]! } - public var Message_PinnedPhotoMessage: String { return self._s[4097]! } - public var Passport_FieldPhone: String { return self._s[4098]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4099]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[4100]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[4102]! } - public var Conversation_Call: String { return self._s[4103]! } - public var Common_TakePhoto: String { return self._s[4105]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4106]! } - public var Wallet_Receive_CommentHeader: String { return self._s[4107]! } - public var Channel_NotificationLoading: String { return self._s[4108]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[4107]! } + public var Message_PinnedPhotoMessage: String { return self._s[4108]! } + public var Passport_FieldPhone: String { return self._s[4109]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4110]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[4111]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[4113]! } + public var Conversation_Call: String { return self._s[4114]! } + public var Common_TakePhoto: String { return self._s[4116]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4117]! } + public var Wallet_Receive_CommentHeader: String { return self._s[4118]! } + public var Channel_NotificationLoading: String { return self._s[4119]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4109]!, self._r[4109]!, [_0]) + return formatWithArgumentRanges(self._s[4120]!, self._r[4120]!, [_0]) } public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4110]!, self._r[4110]!, [_0]) + return formatWithArgumentRanges(self._s[4121]!, self._r[4121]!, [_0]) } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4111]!, self._r[4111]!, [_1]) + return formatWithArgumentRanges(self._s[4122]!, self._r[4122]!, [_1]) } - public var Permissions_SiriTitle_v0: String { return self._s[4112]! } + public var Permissions_SiriTitle_v0: String { return self._s[4123]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4113]!, self._r[4113]!, [_0]) + return formatWithArgumentRanges(self._s[4124]!, self._r[4124]!, [_0]) } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4114]!, self._r[4114]!, [_0]) + return formatWithArgumentRanges(self._s[4125]!, self._r[4125]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[4115]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[4116]! } - public var ClearCache_FreeSpace: String { return self._s[4117]! } - public var Common_edit: String { return self._s[4118]! } - public var PrivacySettings_AuthSessions: String { return self._s[4119]! } - public var Month_ShortJune: String { return self._s[4120]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4121]! } - public var Call_ReportSend: String { return self._s[4122]! } - public var Watch_LastSeen_JustNow: String { return self._s[4123]! } - public var Notifications_MessageNotifications: String { return self._s[4124]! } - public var WallpaperSearch_ColorGreen: String { return self._s[4125]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4127]! } - public var Group_Status: String { return self._s[4128]! } + public var Channel_MessagePhotoRemoved: String { return self._s[4126]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[4127]! } + public var ClearCache_FreeSpace: String { return self._s[4128]! } + public var Common_edit: String { return self._s[4129]! } + public var PrivacySettings_AuthSessions: String { return self._s[4130]! } + public var Month_ShortJune: String { return self._s[4131]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4132]! } + public var Call_ReportSend: String { return self._s[4133]! } + public var Watch_LastSeen_JustNow: String { return self._s[4134]! } + public var Notifications_MessageNotifications: String { return self._s[4135]! } + public var WallpaperSearch_ColorGreen: String { return self._s[4136]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4138]! } + public var Group_Status: String { return self._s[4139]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4129]!, self._r[4129]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4140]!, self._r[4140]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[4130]! } - public var ShareMenu_ShareTo: String { return self._s[4131]! } - public var Conversation_Moderate_Ban: String { return self._s[4132]! } + public var TextFormat_AddLinkTitle: String { return self._s[4141]! } + public var ShareMenu_ShareTo: String { return self._s[4142]! } + public var Conversation_Moderate_Ban: String { return self._s[4143]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4133]!, self._r[4133]!, [_0]) + return formatWithArgumentRanges(self._s[4144]!, self._r[4144]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[4134]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4135]! } + public var SharedMedia_ViewInChat: String { return self._s[4145]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4146]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4136]!, self._r[4136]!, [_1]) + return formatWithArgumentRanges(self._s[4147]!, self._r[4147]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4137]!, self._r[4137]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4148]!, self._r[4148]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4139]!, self._r[4139]!, [_0]) + return formatWithArgumentRanges(self._s[4150]!, self._r[4150]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[4140]! } - public var Appearance_ReduceMotion: String { return self._s[4141]! } + public var Map_OpenInHereMaps: String { return self._s[4151]! } + public var Appearance_ReduceMotion: String { return self._s[4152]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4142]!, self._r[4142]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[4143]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[4144]! } - public var PhotoEditor_Skip: String { return self._s[4145]! } - public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { + public var Channel_Setup_TypePublicHelp: String { return self._s[4154]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[4155]! } + public var PhotoEditor_Skip: String { return self._s[4156]! } + public func Conversation_StatusMembers(_ 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 ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + public func Media_ShareVideo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Seconds(_ value: Int32) -> String { + public func Conversation_StatusOnline(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_Exceptions(_ value: Int32) -> String { + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { + public func MessageTimer_ShortHours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedGifs(_ value: Int32) -> String { + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[5 * 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[6 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_Years(_ value: Int32) -> String { + public func MessagePoll_VotedCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedGifs(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + public func InviteText_ContactsCountText(_ 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 PollResults_ShowMore(_ value: Int32) -> String { + public func Passport_Scans(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + public func ForwardedLocations(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[12 * 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[13 * 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[14 * 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[15 * 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[16 * 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[17 * 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[18 * 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[19 * 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[20 * 6 + Int(form.rawValue)]!, _0, _1) + return String(format: self._ps[11 * 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[21 * 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[22 * 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[23 * 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[24 * 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[25 * 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[26 * 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[27 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Map_ETAMinutes(_ 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 Media_ShareItem(_ 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 OldChannels_Leave(_ 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 PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[12 * 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[32 * 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[33 * 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[34 * 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[35 * 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[36 * 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[37 * 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[38 * 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[39 * 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[40 * 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[41 * 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[42 * 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[43 * 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[44 * 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[45 * 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[46 * 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[47 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Conversation_StatusOnline(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_InactiveYear(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[51 * 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[52 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_HoursAgo(_ 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Weeks(_ 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 Conversation_StatusSubscribers(_ 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 UserCount(_ 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 ServiceMessage_GameScoreSelfSimple(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, _1, _2) - } - 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[60 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - 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[61 * 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[62 * 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[63 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[64 * 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[65 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Seconds(_ 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 Notification_GameScoreExtended(_ 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 ForwardedFiles(_ 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 VoiceOver_Chat_PollVotes(_ 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 Conversation_SelectedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Minutes(_ 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 ChatList_SelectedChats(_ 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) + return String(format: self._ps[13 * 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[74 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + public func Call_Seconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 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[76 * 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[77 * 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[78 * 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[79 * 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[80 * 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[81 * 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[82 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - 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[83 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func SharedMedia_Photo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[84 * 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[85 * 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[86 * 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[87 * 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[88 * 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[89 * 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[90 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_Months(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessagePoll_VotedCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[92 * 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[93 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[94 * 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[95 * 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[96 * 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[97 * 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[98 * 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[99 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[15 * 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[100 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortDays(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + public func ChatList_SelectedChats(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedMessages(_ value: Int32) -> String { + public func Conversation_SelectedMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Days(_ value: Int32) -> String { + public func Map_ETAHours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteFor_Days(_ value: Int32) -> String { + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 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[107 * 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[108 * 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[109 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[22 * 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[110 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedPhotos(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[111 * 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[112 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_MinutesAgo(_ 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 Contacts_InviteContacts(_ 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 ChatList_DeleteConfirmation(_ 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 Notifications_ExceptionMuteExpires_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 AttachmentMenu_SendPhoto(_ 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 MuteExpires_Minutes(_ 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_ParticipantCount(_ 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) + return String(format: self._ps[24 * 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[120 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortHours(_ value: Int32) -> String { + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[27 * 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[28 * 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[29 * 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[30 * 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[31 * 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[123 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[32 * 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[33 * 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[34 * 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[35 * 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[36 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Wallet_Updated_HoursAgo(_ 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 PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + 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[39 * 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[40 * 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[41 * 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[42 * 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[43 * 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[44 * 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[45 * 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[46 * 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[47 * 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[48 * 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[49 * 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[50 * 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[51 * 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[52 * 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[53 * 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[54 * 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[55 * 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[56 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Contacts_ImportersCount(_ 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 Chat_DeleteMessagesConfirmation(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func StickerPack_AddMaskCount(_ 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 MessageTimer_Hours(_ 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 VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_Months(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func MessageTimer_Weeks(_ 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 SharedMedia_Photo(_ 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 PollResults_ShowMore(_ 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 Media_SharePhoto(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func StickerPack_StickerCount(_ 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 SharedMedia_DeleteItemsConfirmation(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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 Watch_LastSeen_HoursAgo(_ 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 SharedMedia_Video(_ 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 MessageTimer_ShortMinutes(_ 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 Call_ShortSeconds(_ 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 Notifications_Exceptions(_ 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 MessageTimer_Days(_ 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 Map_ETAMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ 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 MessageTimer_Minutes(_ 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 Media_ShareItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Years(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedContacts(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 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[89 * 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[90 * 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[91 * 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[92 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_MinutesAgo(_ 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 OldChannels_Leave(_ 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 LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreExtended(_ 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 MessageTimer_ShortDays(_ 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 Notification_GameScoreSelfExtended(_ 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 LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, _1, _2) + } + 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[102 * 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[103 * 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[104 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ChatList_DeletedChats(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 OldChannels_InactiveWeek(_ 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 Notification_GameScoreExtended(_ 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 DialogList_LiveLocationChatsCount(_ 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 Invitation_Members(_ 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 ChatList_DeleteConfirmation(_ 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 ForwardedPolls(_ 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 Conversation_StatusSubscribers(_ 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_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_Link(_ 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 LastSeen_HoursAgo(_ 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 ForwardedVideos(_ 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 ServiceMessage_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 MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func StickerPack_RemoveStickerCount(_ 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 Call_ShortMinutes(_ 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 Watch_LastSeen_MinutesAgo(_ 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 ForwardedVideoMessages(_ 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 MessageTimer_Seconds(_ 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 init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?, groupingSeparator: String) { self.primaryComponent = primaryComponent diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index ed59ac9d2a..dc7560a5c2 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -1538,11 +1538,29 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G guard let strongSelf = self, let controllerInteraction = strongSelf.controllerInteraction else { return } + guard !strongSelf.presentationInterfaceState.isScheduledMessages else { strongSelf.present(textAlertController(context: strongSelf.context, title: nil, text: strongSelf.presentationData.strings.ScheduledMessages_PollUnavailable, actions: [TextAlertAction(type: .defaultAction, title: strongSelf.presentationData.strings.Common_OK, action: {})]), in: .window(.root)) return } if controllerInteraction.pollActionState.pollMessageIdsInProgress[id] == nil { + #if DEBUG + if false { + var found = false + strongSelf.chatDisplayNode.historyNode.forEachVisibleItemNode { itemNode in + if !found, let itemNode = itemNode as? ChatMessageBubbleItemNode, itemNode.item?.message.id == id { + found = true + itemNode.animateQuizInvalidOptionSelected() + } + } + return; + } + if false { + strongSelf.chatDisplayNode.animateQuizCorrectOptionSelected() + return; + } + #endif + controllerInteraction.pollActionState.pollMessageIdsInProgress[id] = opaqueIdentifiers strongSelf.chatDisplayNode.historyNode.requestMessageUpdate(id) let disposables: DisposableDict @@ -1554,7 +1572,38 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } let signal = requestMessageSelectPollOption(account: strongSelf.context.account, messageId: id, opaqueIdentifiers: opaqueIdentifiers) disposables.set((signal - |> deliverOnMainQueue).start(error: { _ in + |> deliverOnMainQueue).start(next: { resultPoll in + guard let strongSelf = self, let resultPoll = resultPoll else { + return + } + guard let message = strongSelf.chatDisplayNode.historyNode.messageInCurrentHistoryView(id) else { + return + } + + switch resultPoll.kind { + case .poll: + break + case .quiz: + if let voters = resultPoll.results.voters { + for voter in voters { + if voter.selected { + if voter.isCorrect { + strongSelf.chatDisplayNode.animateQuizCorrectOptionSelected() + } else { + var found = false + strongSelf.chatDisplayNode.historyNode.forEachVisibleItemNode { itemNode in + if !found, let itemNode = itemNode as? ChatMessageBubbleItemNode, itemNode.item?.message.id == id { + found = true + itemNode.animateQuizInvalidOptionSelected() + } + } + } + break + } + } + } + } + }, error: { _ in guard let strongSelf = self, let controllerInteraction = strongSelf.controllerInteraction else { return } @@ -3993,14 +4042,37 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G strongSelf.selectPollOptionFeedback?.success() }), forKey: id) }, requestStopPollInMessage: { [weak self] id in - guard let strongSelf = self else { + guard let strongSelf = self, let message = strongSelf.chatDisplayNode.historyNode.messageInCurrentHistoryView(id) else { return } + var maybePoll: TelegramMediaPoll? + for media in message.media { + if let poll = media as? TelegramMediaPoll { + maybePoll = poll + break + } + } + + guard let poll = maybePoll else { + return + } + + let actionTitle: String + let actionButtonText: String + switch poll.kind { + case .poll: + actionTitle = strongSelf.presentationData.strings.Conversation_StopPollConfirmationTitle + actionButtonText = strongSelf.presentationData.strings.Conversation_StopPollConfirmation + case .quiz: + actionTitle = strongSelf.presentationData.strings.Conversation_StopQuizConfirmationTitle + actionButtonText = strongSelf.presentationData.strings.Conversation_StopQuizConfirmation + } + let actionSheet = ActionSheetController(presentationData: strongSelf.presentationData) actionSheet.setItemGroups([ActionSheetItemGroup(items: [ - ActionSheetTextItem(title: strongSelf.presentationData.strings.Conversation_StopPollConfirmationTitle), - ActionSheetButtonItem(title: strongSelf.presentationData.strings.Conversation_StopPollConfirmation, color: .destructive, action: { [weak self, weak actionSheet] in + ActionSheetTextItem(title: actionTitle), + ActionSheetButtonItem(title: actionButtonText, color: .destructive, action: { [weak self, weak actionSheet] in actionSheet?.dismissAnimated() guard let strongSelf = self else { return diff --git a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift index df12564141..645c01b06d 100644 --- a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift @@ -2324,4 +2324,124 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { transition.updateAlpha(node: self.inputPanelBackgroundSeparatorNode, alpha: resolvedValue, beginWithCurrentState: true) } } + + func animateQuizCorrectOptionSelected() { + class ConfettiView: UIView { + private let direction: Bool + private let confettiViewEmitterLayer = CAEmitterLayer() + private let confettiViewEmitterCell = CAEmitterCell() + + init(frame: CGRect, direction: Bool) { + self.direction = direction + + super.init(frame: frame) + + self.isUserInteractionEnabled = false + + self.setupConfettiEmitterLayer() + + self.confettiViewEmitterLayer.frame = self.bounds + self.confettiViewEmitterLayer.emitterCells = generateConfettiEmitterCells() + self.layer.addSublayer(self.confettiViewEmitterLayer) + + let animation = CAKeyframeAnimation(keyPath: #keyPath(CAEmitterLayer.birthRate)) + animation.duration = 0.5 + animation.timingFunction = CAMediaTimingFunction(name: .easeIn) + animation.fillMode = .forwards + animation.values = [1, 0, 0] + animation.keyTimes = [0, 0.5, 1] + animation.isRemovedOnCompletion = false + + self.confettiViewEmitterLayer.beginTime = CACurrentMediaTime() + self.confettiViewEmitterLayer.birthRate = 1.0 + + CATransaction.begin() + CATransaction.setCompletionBlock { [weak self] in + guard let strongSelf = self else { + return + } + strongSelf.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.25, delay: 1.0, removeOnCompletion: false, completion: { _ in + self?.removeFromSuperview() + }) + } + self.confettiViewEmitterLayer.add(animation, forKey: nil) + CATransaction.commit() + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func setupConfettiEmitterLayer() { + let emitterWidth: CGFloat = self.bounds.width / 4.0 + self.confettiViewEmitterLayer.emitterSize = CGSize(width: emitterWidth, height: 2.0) + self.confettiViewEmitterLayer.emitterShape = .line + self.confettiViewEmitterLayer.emitterPosition = CGPoint(x: direction ? 0.0 : (self.bounds.width - emitterWidth * 0.0), y: self.bounds.height) + } + + private func generateConfettiEmitterCells() -> [CAEmitterCell] { + var cells = [CAEmitterCell]() + + let cellImageCircle = generateFilledCircleImage(diameter: 4.0, color: .white)!.cgImage! + let cellImageLine = generateImage(CGSize(width: 4.0, height: 10.0), opaque: false, rotatedContext: { size, context in + context.clear(CGRect(origin: CGPoint(), size: size)) + context.setFillColor(UIColor.white.cgColor) + context.fillEllipse(in: CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: size.width, height: size.width))) + context.fillEllipse(in: CGRect(origin: CGPoint(x: 0.0, y: size.height - size.width), size: CGSize(width: size.width, height: size.width))) + context.fill(CGRect(origin: CGPoint(x: 0.0, y: size.width / 2.0), size: CGSize(width: size.width, height: size.height - size.width))) + })!.cgImage! + + for index in 0 ..< 4 { + let cell = CAEmitterCell() + cell.color = self.nextColor(i: index).cgColor + cell.contents = index % 2 == 0 ? cellImageCircle : cellImageLine + cell.birthRate = 60.0 + cell.lifetime = 14.0 + cell.lifetimeRange = 0 + if index % 2 == 0 { + cell.scale = 0.8 + cell.scaleRange = 0.4 + } else { + cell.scale = 0.5 + cell.scaleRange = 0.1 + } + cell.velocity = -self.randomVelocity + cell.velocityRange = abs(cell.velocity) * 0.3 + cell.yAcceleration = 3000.0 + cell.emissionLongitude = (self.direction ? -1.0 : 1.0) * (CGFloat.pi * 0.95) + cell.emissionRange = 0.2 + cell.spin = 5.5 + cell.spinRange = 1.0 + + cells.append(cell) + } + + return cells + } + + var randomNumber: Int { + let dimension = 4 + return Int(arc4random_uniform(UInt32(dimension))) + } + + var randomVelocity: CGFloat { + let velocities: [CGFloat] = [100.0, 120.0, 130.0, 140.0] + return velocities[self.randomNumber] * 12.0 + } + + private let colors: [UIColor] = ([ + 0x56CE6B, + 0xCD89D0, + 0x1E9AFF, + 0xFF8724 + ] as [UInt32]).map(UIColor.init(rgb:)) + + private func nextColor(i: Int) -> UIColor { + return self.colors[i % self.colors.count] + } + } + + self.view.insertSubview(ConfettiView(frame: self.view.bounds, direction: true), aboveSubview: self.historyNode.view) + self.view.insertSubview(ConfettiView(frame: self.view.bounds, direction: false), aboveSubview: self.historyNode.view) + } } diff --git a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift index 915720e34f..166e5e84db 100644 --- a/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift +++ b/submodules/TelegramUI/TelegramUI/ChatInterfaceStateContextMenus.swift @@ -565,7 +565,14 @@ func contextMenuForChatPresentationIntefaceState(chatPresentationInterfaceState: } if canStopPoll { - actions.append(.action(ContextMenuActionItem(text: chatPresentationInterfaceState.strings.Conversation_StopPoll, icon: { theme in + let stopPollAction: String + switch activePoll.kind { + case .poll: + stopPollAction = chatPresentationInterfaceState.strings.Conversation_StopPoll + case .quiz: + stopPollAction = chatPresentationInterfaceState.strings.Conversation_StopQuiz + } + actions.append(.action(ContextMenuActionItem(text: stopPollAction, icon: { theme in return generateTintedImage(image: UIImage(bundleImageName: "Chat/Context Menu/StopPoll"), color: theme.actionSheet.primaryTextColor) }, action: { _, f in interfaceInteraction.requestStopPollInMessage(messages[0].id) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift index 90efe7d024..5bf541b341 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift @@ -2895,4 +2895,53 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode let isPreview = self.item?.presentationData.isPreview ?? false return self.contextSourceNode.isExtractedToContextPreview || hasWallpaper || isPreview } + + func animateQuizInvalidOptionSelected() { + let duration: Double = 0.5 + let minScale: CGFloat = -0.03 + let scaleAnimation0 = self.layer.makeAnimation(from: 0.0 as NSNumber, to: minScale as NSNumber, keyPath: "transform.scale", timingFunction: CAMediaTimingFunctionName.linear.rawValue, duration: duration / 2.0, removeOnCompletion: false, additive: true, completion: { [weak self] _ in + guard let strongSelf = self else { + return + } + let scaleAnimation1 = strongSelf.layer.makeAnimation(from: minScale as NSNumber, to: 0.0 as NSNumber, keyPath: "transform.scale", timingFunction: CAMediaTimingFunctionName.linear.rawValue, duration: duration / 2.0, additive: true) + strongSelf.layer.add(scaleAnimation1, forKey: "quizInvalidScale") + }) + self.layer.add(scaleAnimation0, forKey: "quizInvalidScale") + + let k = Float(UIView.animationDurationFactor()) + var speed: Float = 1.0 + if k != 0 && k != 1 { + speed = Float(1.0) / k + } + + let count = 4 + + let animation = CAKeyframeAnimation(keyPath: "transform.rotation.z") + var values: [CGFloat] = [] + values.append(0.0) + let rotationAmplitude: CGFloat = CGFloat.pi / 180.0 * 3.0 + for i in 0 ..< count { + let sign: CGFloat = (i % 2 == 0) ? 1.0 : -1.0 + let amplitude: CGFloat = rotationAmplitude + values.append(amplitude * sign) + } + values.append(0.0) + animation.values = values.map { ($0 as NSNumber) as AnyObject } + var keyTimes: [NSNumber] = [] + for i in 0 ..< values.count { + if i == 0 { + keyTimes.append(0.0) + } else if i == values.count - 1 { + keyTimes.append(1.0) + } else { + keyTimes.append((Double(i) / Double(values.count - 1)) as NSNumber) + } + } + animation.keyTimes = keyTimes + animation.speed = speed + animation.duration = duration + animation.isAdditive = true + + self.layer.add(animation, forKey: "quizInvalidRotation") + } } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index f16e3d9022..bd23c5b8c1 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -518,6 +518,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { node.option = option let previousResult = node.currentResult node.currentResult = optionResult + node.currentSelection = selection node.highlightedBackgroundNode.backgroundColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.highlight : presentationData.theme.theme.chat.message.outgoing.polls.highlight @@ -745,6 +746,10 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } } } + + self.avatarsNode.pressed = { [weak self] in + self?.buttonPressed() + } } required init?(coder aDecoder: NSCoder) { @@ -921,11 +926,20 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { let (typeLayout, typeApply) = makeTypeLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: typeText, font: labelsFont, textColor: messageTheme.secondaryTextColor), backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: textConstrainedSize, alignment: .natural, cutout: nil, insets: UIEdgeInsets())) let votersString: String - if let totalVoters = poll?.results.totalVoters { - if totalVoters == 0 { - votersString = item.presentationData.strings.MessagePoll_NoVotes - } else { - votersString = item.presentationData.strings.MessagePoll_VotedCount(totalVoters) + if let poll = poll, let totalVoters = poll.results.totalVoters { + switch poll.kind { + case .poll: + if totalVoters == 0 { + votersString = item.presentationData.strings.MessagePoll_NoVotes + } else { + votersString = item.presentationData.strings.MessagePoll_VotedCount(totalVoters) + } + case .quiz: + if totalVoters == 0 { + votersString = item.presentationData.strings.MessagePoll_QuizNoUsers + } else { + votersString = item.presentationData.strings.MessagePoll_QuizCount(totalVoters) + } } } else { votersString = " " @@ -1058,7 +1072,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } let optionsVotersSpacing: CGFloat = 11.0 - let optionsButtonSpacing: CGFloat = 8.0 + let optionsButtonSpacing: CGFloat = 9.0 let votersBottomSpacing: CGFloat = 11.0 resultSize.height += optionsVotersSpacing + votersLayout.size.height + votersBottomSpacing @@ -1165,8 +1179,17 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } let typeFrame = CGRect(origin: CGPoint(x: textFrame.minX, y: textFrame.maxY + titleTypeSpacing), size: typeLayout.size) strongSelf.typeNode.frame = typeFrame - strongSelf.avatarsNode.frame = CGRect(origin: CGPoint(x: typeFrame.maxX + 6.0, y: typeFrame.minY + floor((typeFrame.height - mergedImageSize) / 2.0)), size: CGSize(width: mergedImageSpacing * 3.0, height: mergedImageSize)) + let avatarsFrame = CGRect(origin: CGPoint(x: typeFrame.maxX + 6.0, y: typeFrame.minY + floor((typeFrame.height - mergedImageSize) / 2.0)), size: CGSize(width: mergedImageSize + mergedImageSpacing * 2.0, height: mergedImageSize)) + strongSelf.avatarsNode.frame = avatarsFrame + strongSelf.avatarsNode.updateLayout(size: avatarsFrame.size) strongSelf.avatarsNode.update(context: item.context, peers: avatarPeers, synchronousLoad: synchronousLoad) + let alphaTransition: ContainedViewLayoutTransition + if animation.isAnimated { + alphaTransition = .animated(duration: 0.25, curve: .easeInOut) + alphaTransition.updateAlpha(node: strongSelf.avatarsNode, alpha: avatarPeers.isEmpty ? 0.0 : 1.0) + } else { + alphaTransition = .immediate + } let _ = votersApply() strongSelf.votersNode.frame = CGRect(origin: CGPoint(x: floor((resultSize.width - votersLayout.size.width) / 2.0), y: verticalOffset + optionsVotersSpacing), size: votersLayout.size) @@ -1211,6 +1234,13 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } } + var hasResults = false + if let totalVoters = poll.results.totalVoters, totalVoters != 0 { + if let _ = poll.results.voters { + hasResults = true + } + } + if hasSelection && poll.pollId.namespace == Namespaces.Media.CloudPoll { self.votersNode.isHidden = true self.buttonViewResultsTextNode.isHidden = true @@ -1218,7 +1248,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { self.buttonSubmitActiveTextNode.isHidden = !hasSelectedOptions self.buttonNode.isHidden = !hasSelectedOptions } else { - if case .public = poll.publicity { + if case .public = poll.publicity, hasResults { self.votersNode.isHidden = true self.buttonViewResultsTextNode.isHidden = false self.buttonNode.isHidden = false @@ -1230,6 +1260,8 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { self.buttonSubmitInactiveTextNode.isHidden = true self.buttonSubmitActiveTextNode.isHidden = true } + + self.avatarsNode.isUserInteractionEnabled = !self.buttonViewResultsTextNode.isHidden } override func animateInsertion(_ currentTimestamp: Double, duration: Double) { @@ -1272,12 +1304,21 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { if optionNode.frame.contains(point) { if optionNode.isUserInteractionEnabled { return .ignore - } else if let result = optionNode.currentResult, let item = self.item { + } else if let result = optionNode.currentResult, let item = self.item, let poll = self.poll { let string: String - if result.count == 0 { - string = item.presentationData.strings.MessagePoll_NoVotes - } else { - string = item.presentationData.strings.MessagePoll_VotedCount(result.count) + switch poll.kind { + case .poll: + if result.count == 0 { + string = item.presentationData.strings.MessagePoll_NoVotes + } else { + string = item.presentationData.strings.MessagePoll_VotedCount(result.count) + } + case .quiz: + if result.count == 0 { + string = item.presentationData.strings.MessagePoll_QuizNoUsers + } else { + string = item.presentationData.strings.MessagePoll_QuizCount(result.count) + } } return .tooltip(string, optionNode, optionNode.bounds.offsetBy(dx: 0.0, dy: 10.0)) } @@ -1286,6 +1327,9 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { if self.buttonNode.isUserInteractionEnabled, !self.buttonNode.isHidden, self.buttonNode.frame.contains(point) { return .ignore } + if self.avatarsNode.isUserInteractionEnabled, !self.avatarsNode.isHidden, self.avatarsNode.frame.contains(point) { + return .ignore + } return .none } } @@ -1341,12 +1385,19 @@ private final class MergedAvatarsNode: ASDisplayNode { private var peers: [PeerAvatarReference] = [] private var images: [PeerId: UIImage] = [:] private var disposables: [PeerId: Disposable] = [:] + private let buttonNode: HighlightTrackingButtonNode + + var pressed: (() -> Void)? override init() { + self.buttonNode = HighlightTrackingButtonNode() + super.init() self.isOpaque = false self.displaysAsynchronously = true + self.buttonNode.addTarget(self, action: #selector(self.buttonPressed), forControlEvents: .touchUpInside) + self.addSubnode(self.buttonNode) } deinit { @@ -1355,6 +1406,14 @@ private final class MergedAvatarsNode: ASDisplayNode { } } + @objc private func buttonPressed() { + self.pressed?() + } + + func updateLayout(size: CGSize) { + self.buttonNode.frame = CGRect(origin: CGPoint(), size: size) + } + func update(context: AccountContext, peers: [Peer], synchronousLoad: Bool) { var filteredPeers = peers.map(PeerAvatarReference.init) if filteredPeers.count > 3 { @@ -1443,20 +1502,23 @@ private final class MergedAvatarsNode: ASDisplayNode { context.setFillColor(UIColor.clear.cgColor) context.fillEllipse(in: imageRect.insetBy(dx: -1.0, dy: -1.0)) + context.saveGState() switch parameters.peers[i] { case let .letters(peerId, letters): - context.saveGState() context.translateBy(x: currentX, y: 0.0) drawPeerAvatarLetters(context: context, size: CGSize(width: mergedImageSize, height: mergedImageSize), font: avatarFont, letters: letters, peerId: peerId) - context.restoreGState() case let .image(reference): if let image = parameters.images[parameters.peers[i].peerId] { + context.translateBy(x: imageRect.midX, y: imageRect.midY) + context.scaleBy(x: 1.0, y: -1.0) + context.translateBy(x: -imageRect.midX, y: -imageRect.midY) context.draw(image.cgImage!, in: imageRect) } else { context.setFillColor(UIColor.gray.cgColor) context.fillEllipse(in: imageRect) } } + context.restoreGState() currentX -= mergedImageSpacing } } diff --git a/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift b/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift index 39da4e104f..ed05896e1f 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift +++ b/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift @@ -135,11 +135,16 @@ func legacyInstantVideoController(theme: PresentationTheme, panelFrame: CGRect, done?(time) } } - controller.finishedWithVideo = { videoUrl, previewImage, _, duration, dimensions, liveUploadData, adjustments, isSilent, scheduleTimestamp in + controller.finishedWithVideo = { [weak controller] videoUrl, previewImage, _, duration, dimensions, liveUploadData, adjustments, isSilent, scheduleTimestamp in guard let videoUrl = videoUrl else { return } + let strongController = controller + Queue.mainQueue().after(4.0, { + strongController?.resignFirstResponder() + }) + var finalDimensions: CGSize = dimensions var finalDuration: Double = duration diff --git a/submodules/TelegramUI/TelegramUI/LegacyLiveUploadInterface.swift b/submodules/TelegramUI/TelegramUI/LegacyLiveUploadInterface.swift index 82c7b859f7..eaa93bf258 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyLiveUploadInterface.swift +++ b/submodules/TelegramUI/TelegramUI/LegacyLiveUploadInterface.swift @@ -62,6 +62,7 @@ final class LegacyLiveUploadInterface: VideoConversionWatcher, TGLiveUploadInter override func fileUpdated(_ completed: Bool) -> Any! { let _ = super.fileUpdated(completed) + print("**fileUpdated \(completed)") if completed { let result = self.dataValue.modify { dataValue in if let dataValue = dataValue { diff --git a/submodules/TelegramUI/TelegramUI/PollResultsController.swift b/submodules/TelegramUI/TelegramUI/PollResultsController.swift index ec86253a00..2da50aa3a8 100644 --- a/submodules/TelegramUI/TelegramUI/PollResultsController.swift +++ b/submodules/TelegramUI/TelegramUI/PollResultsController.swift @@ -10,7 +10,7 @@ import Display import ItemListPeerItem import ItemListPeerActionItem -private let collapsedResultCount: Int = 10 +private let collapsedResultCount: Int = 1 private final class PollResultsControllerArguments { let context: AccountContext @@ -48,8 +48,8 @@ private enum PollResultsEntryId: Hashable { private enum PollResultsEntry: ItemListNodeEntry { case text(String) - case optionPeer(optionId: Int, index: Int, peer: RenderedPeer, optionText: String, optionPercentage: Int, optionExpanded: Bool, opaqueIdentifier: Data) - case optionExpand(optionId: Int, opaqueIdentifier: Data, text: String) + case optionPeer(optionId: Int, index: Int, peer: RenderedPeer, optionText: String, optionPercentage: Int, optionExpanded: Bool, opaqueIdentifier: Data, shimmeringAlternation: Int?) + case optionExpand(optionId: Int, opaqueIdentifier: Data, text: String, enabled: Bool) var section: ItemListSectionId { switch self { @@ -124,19 +124,19 @@ private enum PollResultsEntry: ItemListNodeEntry { switch self { case let .text(text): return ItemListTextItem(presentationData: presentationData, text: .large(text), sectionId: self.section) - case let .optionPeer(optionId, _, peer, optionText, optionPercentage, optionExpanded, opaqueIdentifier): + case let .optionPeer(optionId, _, peer, optionText, optionPercentage, optionExpanded, opaqueIdentifier, shimmeringAlternation): let header = ItemListPeerItemHeader(theme: presentationData.theme, strings: presentationData.strings, text: optionText, actionTitle: optionExpanded ? presentationData.strings.PollResults_Collapse : "\(optionPercentage)%", id: Int64(optionId), action: optionExpanded ? { arguments.collapseOption(opaqueIdentifier) } : nil) - return ItemListPeerItem(presentationData: presentationData, dateTimeFormat: PresentationDateTimeFormat(timeFormat: .regular, dateFormat: .dayFirst, dateSeparator: ".", decimalSeparator: ".", groupingSeparator: ""), nameDisplayOrder: .firstLast, context: arguments.context, peer: peer.peers[peer.peerId]!, presence: nil, text: .none, label: .none, editing: ItemListPeerItemEditing(editable: false, editing: false, revealed: false), switchValue: nil, enabled: true, selectable: true, sectionId: self.section, action: { + return ItemListPeerItem(presentationData: presentationData, dateTimeFormat: PresentationDateTimeFormat(timeFormat: .regular, dateFormat: .dayFirst, dateSeparator: ".", decimalSeparator: ".", groupingSeparator: ""), nameDisplayOrder: .firstLast, context: arguments.context, peer: peer.peers[peer.peerId]!, presence: nil, text: .none, label: .none, editing: ItemListPeerItemEditing(editable: false, editing: false, revealed: false), switchValue: nil, enabled: true, selectable: shimmeringAlternation == nil, sectionId: self.section, action: { arguments.openPeer(peer) }, setPeerIdWithRevealedOptions: { _, _ in }, removePeer: { _ in - }, noInsets: true, header: header) - case let .optionExpand(_, opaqueIdentifier, text): - return ItemListPeerActionItem(presentationData: presentationData, icon: PresentationResourcesItemList.downArrowImage(presentationData.theme), title: text, sectionId: self.section, editing: false, action: { + }, noInsets: true, header: header, shimmering: shimmeringAlternation.flatMap { ItemListPeerItemShimmering(alternationIndex: $0) }) + case let .optionExpand(_, opaqueIdentifier, text, enabled): + return ItemListPeerActionItem(presentationData: presentationData, icon: PresentationResourcesItemList.downArrowImage(presentationData.theme), title: text, sectionId: self.section, editing: false, action: enabled ? { arguments.expandOption(opaqueIdentifier) - }) + } : nil) } } } @@ -158,10 +158,6 @@ private func pollResultsControllerEntries(presentationData: PresentationData, po entries.append(.text(poll.text)) - if isEmpty { - return entries - } - var optionVoterCount: [Int: Int32] = [:] let totalVoterCount = poll.results.totalVoters ?? 0 var optionPercentage: [Int] = [] @@ -182,34 +178,48 @@ private func pollResultsControllerEntries(presentationData: PresentationData, po } for i in 0 ..< poll.options.count { + let percentage = optionPercentage.count > i ? optionPercentage[i] : 0 let option = poll.options[i] - if let optionState = resultsState.options[option.opaqueIdentifier], !optionState.peers.isEmpty { - let percentage = optionPercentage.count > i ? optionPercentage[i] : 0 - var peerIndex = 0 - var hasMore = false - let optionExpanded = state.expandedOptions.contains(option.opaqueIdentifier) - - var peers = optionState.peers - var count = optionState.count - /*#if DEBUG - for _ in 0 ..< 10 { - peers += peers - } - count = max(count, peers.count) - #endif*/ - - inner: for peer in peers { - if !optionExpanded && peerIndex >= collapsedResultCount { - hasMore = true - break inner + if isEmpty { + if let voterCount = optionVoterCount[i], voterCount != 0 { + let displayCount = min(collapsedResultCount, Int(voterCount)) + for peerIndex in 0 ..< displayCount { + let fakeUser = TelegramUser(id: PeerId(namespace: -1, id: 0), accessHash: nil, firstName: "", lastName: "", username: nil, phone: nil, photo: [], botInfo: nil, restrictionInfo: nil, flags: []) + let peer = RenderedPeer(peer: fakeUser) + entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: option.text, optionPercentage: percentage, optionExpanded: false, opaqueIdentifier: option.opaqueIdentifier, shimmeringAlternation: peerIndex % 2)) + } + if displayCount < Int(voterCount) { + let remainingCount = Int(voterCount) - displayCount + entries.append(.optionExpand(optionId: i, opaqueIdentifier: option.opaqueIdentifier, text: presentationData.strings.PollResults_ShowMore(Int32(remainingCount)), enabled: false)) } - entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: option.text, optionPercentage: percentage, optionExpanded: optionExpanded, opaqueIdentifier: option.opaqueIdentifier)) - peerIndex += 1 } - - if hasMore { + } else { + if let optionState = resultsState.options[option.opaqueIdentifier], !optionState.peers.isEmpty { + var peerIndex = 0 + var hasMore = false + let optionExpanded = state.expandedOptions.contains(option.opaqueIdentifier) + + var peers = optionState.peers + var count = optionState.count + /*#if DEBUG + for _ in 0 ..< 10 { + peers += peers + } + count = max(count, peers.count) + #endif*/ + + inner: for peer in peers { + if !optionExpanded && peerIndex >= collapsedResultCount { + break inner + } + entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: option.text, optionPercentage: percentage, optionExpanded: optionExpanded, opaqueIdentifier: option.opaqueIdentifier, shimmeringAlternation: nil)) + peerIndex += 1 + } + let remainingCount = count - peerIndex - entries.append(.optionExpand(optionId: i, opaqueIdentifier: option.opaqueIdentifier, text: presentationData.strings.PollResults_ShowMore(Int32(remainingCount)))) + if remainingCount > 0 { + entries.append(.optionExpand(optionId: i, opaqueIdentifier: option.opaqueIdentifier, text: presentationData.strings.PollResults_ShowMore(Int32(remainingCount)), enabled: true)) + } } } } @@ -281,15 +291,10 @@ public func pollResultsController(context: AccountContext, messageId: MessageId, } } - var emptyStateItem: ItemListControllerEmptyStateItem? - if isEmpty { - emptyStateItem = ItemListLoadingIndicatorEmptyStateItem(theme: presentationData.theme) - } - let previousWasEmptyValue = previousWasEmpty.swap(isEmpty) let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(presentationData.strings.PollResults_Title), leftNavigationButton: leftNavigationButton, rightNavigationButton: nil, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) - let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: pollResultsControllerEntries(presentationData: presentationData, poll: poll, state: state, resultsState: resultsState), style: .blocks, focusItemTag: nil, ensureVisibleItemTag: nil, emptyStateItem: emptyStateItem, crossfadeState: previousWasEmptyValue != nil && previousWasEmptyValue == true && isEmpty == false, animateChanges: false) + let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: pollResultsControllerEntries(presentationData: presentationData, poll: poll, state: state, resultsState: resultsState), style: .blocks, focusItemTag: nil, ensureVisibleItemTag: nil, emptyStateItem: nil, crossfadeState: previousWasEmptyValue != nil && previousWasEmptyValue == true && isEmpty == false, animateChanges: false) return (controllerState, (listState, arguments)) } diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping index 50908ecc674c59dd50dc4fc22f6d4b0e7e646ebc..803d6efeb45323a5fbc46f5dc182aa377d35cb95 100644 GIT binary patch delta 43240 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%0DQ0QM z8>%cUjzpCM>SgJzW^L=qoj}K{d|VIi@FBXrNkiGe1Xy8v2W`9~@_j8*Em~BJzz$p( zj0Nyr67=9q*%?epHGw5;J(N3JRsGdLO{Fuzbe^VmW9sSTn6}X|cYxO^teA|P9?LD@ z@KfNPWV&U43XK}0O}8RP3XC?0s%{O4w>FQC4IFN9EgVILK@GtwK%eSBjjBu9L2=T9 z4QUBQ!K&)OnCjZF&B96g8M!c7_M2f=JRRs%p((nPT(#Z~l=xwiNSMeHVq3H}AF9X} z+t$L}v2R8iLjIG2dSDy^^pDUPN%B9yayQUstS}aIyg5pJJ<@hVN9Qu%X-t4Svjl^-80J% z>*q_e%u2rww5eB`u{QXB&XNA8$VBH}HmK9R^>@3(oN6+^1L7;f30A8IHvr}LK zePXs%8PXvvfX~g=0TTZ;+suc7%OV2fSemX%>WA{nhEv}fCmW%z-X;~yUPB9OTzn*W zt#oQeGVQKO;6+F|1q|+XI#;8G9rVu{2kfA!wGLq2UbX4G3=H{Hu-qm-U(ED6b%Dw1 zN7H)nl+)hYY&M2|to5?7lvrnF<0!8#laE&$0V-4t5|V!cawKLZ>mCVgAFgvL*LDz_ z-h#Gqye?Upq%H)hA5&Z?fn7(|P`Y(8%E*aR&19-}IHDHFTwUK&C=kjpSAgScAk@~q zsU2uhehTdl#Vdghf<JqY2bI!)+^>DX$pqeZ81AnBHt}f6Y5)^%&U-sE6rq4 zA>_*cZt4l0Uhw-!{>m-Svg3!EvUI94&*T6Ol>$da

>`a%Ky|wmq{f}8s)YQA~XbhZ%&gH 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 delta 43140 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 diff --git a/submodules/WalletUI/Resources/WalletStrings.mapping b/submodules/WalletUI/Resources/WalletStrings.mapping index 9f7c34892095545bdfb3f1e1871a24394137ff12..589c6fe85e4fa03a50b6adefffe67915bd39bf1c 100644 GIT binary patch delta 40 vcmX@$c))Q(i-L?e0|P^NVopwKiC$ String { + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = walletStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { + public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = walletStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) From 3e492e73c5cf0816d7f8f28350a2a820ac000568 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 10 Jan 2020 21:05:28 +0400 Subject: [PATCH 07/63] Disallow public polls in public channels --- .../Sources/CreatePollController.swift | 15 +++++++++++---- .../TelegramUI/TelegramUI/ChatController.swift | 4 ++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/submodules/ComposePollUI/Sources/CreatePollController.swift b/submodules/ComposePollUI/Sources/CreatePollController.swift index 2f08c82b77..f66429cf3a 100644 --- a/submodules/ComposePollUI/Sources/CreatePollController.swift +++ b/submodules/ComposePollUI/Sources/CreatePollController.swift @@ -371,7 +371,7 @@ private struct CreatePollControllerState: Equatable { var isQuiz: Bool = false } -private func createPollControllerEntries(presentationData: PresentationData, state: CreatePollControllerState, limitsConfiguration: LimitsConfiguration) -> [CreatePollEntry] { +private func createPollControllerEntries(presentationData: PresentationData, peer: Peer, state: CreatePollControllerState, limitsConfiguration: LimitsConfiguration) -> [CreatePollEntry] { var entries: [CreatePollEntry] = [] var textLimitText = ItemListSectionHeaderAccessoryText(value: "", color: .generic) @@ -394,7 +394,14 @@ private func createPollControllerEntries(presentationData: PresentationData, sta entries.append(.optionsInfo(presentationData.strings.CreatePoll_AllOptionsAdded)) } - entries.append(.anonymousVotes(presentationData.strings.CreatePoll_Anonymous, state.isAnonymous)) + var canBePublic = true + if let channel = peer as? TelegramChannel, case .broadcast = channel.info, let username = channel.username, !username.isEmpty { + canBePublic = false + } + + if canBePublic { + entries.append(.anonymousVotes(presentationData.strings.CreatePoll_Anonymous, state.isAnonymous)) + } entries.append(.multipleChoice(presentationData.strings.CreatePoll_MultipleChoice, state.isMultipleChoice && !state.isQuiz, !state.isQuiz)) entries.append(.quiz(presentationData.strings.CreatePoll_Quiz, state.isQuiz)) entries.append(.quizInfo(presentationData.strings.CreatePoll_QuizInfo)) @@ -402,7 +409,7 @@ private func createPollControllerEntries(presentationData: PresentationData, sta return entries } -public func createPollController(context: AccountContext, peerId: PeerId, completion: @escaping (EnqueueMessage) -> Void) -> ViewController { +public func createPollController(context: AccountContext, peer: Peer, completion: @escaping (EnqueueMessage) -> Void) -> ViewController { let statePromise = ValuePromise(CreatePollControllerState(), ignoreRepeated: true) let stateValue = Atomic(value: CreatePollControllerState()) let updateState: ((CreatePollControllerState) -> CreatePollControllerState) -> Void = { f in @@ -743,7 +750,7 @@ public func createPollController(context: AccountContext, peerId: PeerId, comple } let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(presentationData.strings.CreatePoll_Title), leftNavigationButton: leftNavigationButton, rightNavigationButton: rightNavigationButton, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) - let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: createPollControllerEntries(presentationData: presentationData, state: state, limitsConfiguration: limitsConfiguration), style: .blocks, focusItemTag: focusItemTag, ensureVisibleItemTag: ensureVisibleItemTag, animateChanges: previousIds != nil) + let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: createPollControllerEntries(presentationData: presentationData, peer: peer, state: state, limitsConfiguration: limitsConfiguration), style: .blocks, focusItemTag: focusItemTag, ensureVisibleItemTag: ensureVisibleItemTag, animateChanges: previousIds != nil) return (controllerState, (listState, arguments)) } diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index dc7560a5c2..acc9ef606f 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -6081,8 +6081,8 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } private func presentPollCreation() { - if case let .peer(peerId) = self.chatLocation { - self.effectiveNavigationController?.pushViewController(createPollController(context: self.context, peerId: peerId, completion: { [weak self] message in + if case .peer = self.chatLocation, let peer = self.presentationInterfaceState.renderedPeer?.peer { + self.effectiveNavigationController?.pushViewController(createPollController(context: self.context, peer: peer, completion: { [weak self] message in guard let strongSelf = self else { return } From c0fecbb27b8e69c84026a7f20ed2eb92fb04c360 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 10 Jan 2020 21:05:39 +0400 Subject: [PATCH 08/63] Update localization --- Telegram-iOS/en.lproj/Localizable.strings | 30 +++++++++++------------ 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index f3fc4c7f93..62d29f37f0 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -5246,31 +5246,31 @@ Any member of this group will be able to see messages in the channel."; "Map.NoPlacesNearby" = "There are no known places nearby.\nTry a different location."; -"CreatePoll.Anonymous" = "Anonymous Votes"; +"CreatePoll.Anonymous" = "Anonymous Voting"; "CreatePoll.MultipleChoice" = "Multiple Choice"; -"CreatePoll.MultipleChoiceQuizAlert" = "Quiz can have only one correct answer."; +"CreatePoll.MultipleChoiceQuizAlert" = "A quiz has one correct answer."; "CreatePoll.Quiz" = "Quiz Mode"; -"CreatePoll.QuizInfo" = "Quiz has only one correct answer. Users can't revoke their votes."; -"CreatePoll.QuizTip" = "Tap to select the correct option"; +"CreatePoll.QuizInfo" = "A quiz has one correct answer. Users can't revoke their answers."; +"CreatePoll.QuizTip" = "Tap to choose the correct answer"; -"MessagePoll.LabelPoll" = "Poll"; +"MessagePoll.LabelPoll" = "Public Poll"; "MessagePoll.LabelAnonymousQuiz" = "Anonymous Quiz"; "MessagePoll.LabelQuiz" = "Quiz"; "MessagePoll.SubmitVote" = "Submit Vote"; "MessagePoll.ViewResults" = "View Results"; -"MessagePoll.QuizNoUsers" = "No one played"; -"MessagePoll.QuizCount_0" = "%@ played"; -"MessagePoll.QuizCount_1" = "1 played"; -"MessagePoll.QuizCount_2" = "2 played"; -"MessagePoll.QuizCount_3_10" = "%@ played"; -"MessagePoll.QuizCount_many" = "%@ played"; -"MessagePoll.QuizCount_any" = "%@ played"; +"MessagePoll.QuizNoUsers" = "Nobody answered yet"; +"MessagePoll.QuizCount_0" = "%@ answered"; +"MessagePoll.QuizCount_1" = "1 answered"; +"MessagePoll.QuizCount_2" = "2 answered"; +"MessagePoll.QuizCount_3_10" = "%@ answered"; +"MessagePoll.QuizCount_many" = "%@ answered"; +"MessagePoll.QuizCount_any" = "%@ answered"; "PollResults.Title" = "Poll Results"; "PollResults.Collapse" = "COLLAPSE"; -"PollResults.ShowMore_1" = "Show %@ More Voter"; -"PollResults.ShowMore_any" = "Show %@ More Voters"; +"PollResults.ShowMore_1" = "Show %@ More Person"; +"PollResults.ShowMore_any" = "Show %@ More People"; "Conversation.StopQuiz" = "Stop Quiz"; -"Conversation.StopQuizConfirmationTitle" = "If you stop this quiz now, nobody will be able to participate in it anymore. This action cannot be undone."; +"Conversation.StopQuizConfirmationTitle" = "If you stop this quiz now, nobody will be able to submit answers. This action cannot be undone.; "Conversation.StopQuizConfirmation" = "Stop Quiz"; From 646b73ebabbbffbc3a8180931a52a75cb3b3dedd Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 10 Jan 2020 22:32:48 +0400 Subject: [PATCH 09/63] Fix Localizable.strings --- Telegram-iOS/en.lproj/Localizable.strings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index 62d29f37f0..f3ac22b322 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -5272,5 +5272,5 @@ Any member of this group will be able to see messages in the channel."; "PollResults.ShowMore_any" = "Show %@ More People"; "Conversation.StopQuiz" = "Stop Quiz"; -"Conversation.StopQuizConfirmationTitle" = "If you stop this quiz now, nobody will be able to submit answers. This action cannot be undone.; +"Conversation.StopQuizConfirmationTitle" = "If you stop this quiz now, nobody will be able to submit answers. This action cannot be undone."; "Conversation.StopQuizConfirmation" = "Stop Quiz"; From 0e792f05026badda618fb48c0d1bdbbb24565224 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Sat, 11 Jan 2020 01:43:27 +0400 Subject: [PATCH 10/63] Adjust collapsed voter count --- submodules/TelegramCore/Sources/Polls.swift | 2 +- submodules/TelegramUI/TelegramUI/PollResultsController.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/TelegramCore/Sources/Polls.swift b/submodules/TelegramCore/Sources/Polls.swift index 213f4a264b..3e6c4c8288 100644 --- a/submodules/TelegramCore/Sources/Polls.swift +++ b/submodules/TelegramCore/Sources/Polls.swift @@ -165,7 +165,7 @@ private final class PollResultsOptionContext { } |> mapToSignal { inputPeer -> Signal<([RenderedPeer], Int, String?), NoError> in if let inputPeer = inputPeer { - let signal = account.network.request(Api.functions.messages.getPollVotes(flags: 1 << 0, peer: inputPeer, id: messageId.id, option: Buffer(data: opaqueIdentifier), offset: nextOffset, limit: nextOffset == nil ? 1 : 50)) + let signal = account.network.request(Api.functions.messages.getPollVotes(flags: 1 << 0, peer: inputPeer, id: messageId.id, option: Buffer(data: opaqueIdentifier), offset: nextOffset, limit: nextOffset == nil ? 10 : 50)) |> map(Optional.init) |> `catch` { _ -> Signal in return .single(nil) diff --git a/submodules/TelegramUI/TelegramUI/PollResultsController.swift b/submodules/TelegramUI/TelegramUI/PollResultsController.swift index 2da50aa3a8..f497ed39f6 100644 --- a/submodules/TelegramUI/TelegramUI/PollResultsController.swift +++ b/submodules/TelegramUI/TelegramUI/PollResultsController.swift @@ -10,7 +10,7 @@ import Display import ItemListPeerItem import ItemListPeerActionItem -private let collapsedResultCount: Int = 1 +private let collapsedResultCount: Int = 10 private final class PollResultsControllerArguments { let context: AccountContext From 2a6f1f811bdb1568f84c4b56bf4665f618fc9169 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Sun, 12 Jan 2020 22:07:37 +0400 Subject: [PATCH 11/63] Poll UI improvements --- .../Sources/CreatePollController.swift | 79 ++++++++++++++----- .../Sources/CreatePollOptionItem.swift | 15 +++- submodules/Display/Display/ListView.swift | 35 ++++++-- .../Display/Display/ListViewItemNode.swift | 2 +- .../Navigation/NavigationModalContainer.swift | 14 +++- .../Sources/ItemListController.swift | 6 +- .../Sources/ItemListControllerNode.swift | 4 +- .../Sources/Items/ItemListTextItem.swift | 19 ++++- .../ProxyListSettingsController.swift | 8 +- .../InstalledStickerPacksController.swift | 15 +++- .../TelegramCore/Sources/ProxySettings.swift | 11 ++- .../DefaultDarkPresentationTheme.swift | 4 +- .../ChatMessagePollBubbleContentNode.swift | 43 +++++++--- 13 files changed, 196 insertions(+), 59 deletions(-) diff --git a/submodules/ComposePollUI/Sources/CreatePollController.swift b/submodules/ComposePollUI/Sources/CreatePollController.swift index f66429cf3a..de43ccc426 100644 --- a/submodules/ComposePollUI/Sources/CreatePollController.swift +++ b/submodules/ComposePollUI/Sources/CreatePollController.swift @@ -197,6 +197,7 @@ private enum CreatePollEntryId: Hashable { private enum CreatePollEntryTag: Equatable, ItemListItemTag { case text case option(Int) + case optionsInfo func isEqual(to other: ItemListItemTag) -> Bool { if let other = other as? CreatePollEntryTag { @@ -333,7 +334,7 @@ private enum CreatePollEntry: ItemListNodeEntry { arguments.toggleOptionSelected(id) }, tag: CreatePollEntryTag.option(id)) case let .optionsInfo(text): - return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section) + return ItemListTextItem(presentationData: presentationData, text: .plain(text), sectionId: self.section, tag: CreatePollEntryTag.optionsInfo) case let .anonymousVotes(text, value): return ItemListSwitchItem(presentationData: presentationData, title: text, value: value, sectionId: self.section, style: .blocks, updated: { value in arguments.updateAnonymous(value) @@ -421,6 +422,7 @@ public func createPollController(context: AccountContext, peer: Peer, completion var ensureTextVisibleImpl: (() -> Void)? var ensureOptionVisibleImpl: ((Int) -> Void)? var displayQuizTooltipImpl: ((Bool) -> Void)? + var attemptNavigationImpl: (() -> Bool)? let actionsDisposable = DisposableSet() @@ -714,20 +716,7 @@ public func createPollController(context: AccountContext, peer: Peer, completion }) let leftNavigationButton = ItemListNavigationButton(content: .text(presentationData.strings.Common_Cancel), style: .regular, enabled: true, action: { - let state = stateValue.with { $0 } - var hasNonEmptyOptions = false - for i in 0 ..< state.options.count { - let optionText = state.options[i].item.text.trimmingCharacters(in: .whitespacesAndNewlines) - if !optionText.isEmpty { - hasNonEmptyOptions = true - } - } - if hasNonEmptyOptions || !state.text.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { - let presentationData = context.sharedContext.currentPresentationData.with { $0 } - presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.CreatePoll_CancelConfirmation, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_No, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_Yes, action: { - dismissImpl?() - })]), nil) - } else { + if let attemptNavigationImpl = attemptNavigationImpl, attemptNavigationImpl() { dismissImpl?() } }) @@ -797,14 +786,23 @@ public func createPollController(context: AccountContext, peer: Peer, completion var resultItemNode: ListViewItemNode? let state = stateValue.with({ $0 }) + var isLast = false if state.options.last?.item.id == id { + isLast = true } if resultItemNode == nil { let _ = controller.frameForItemNode({ itemNode in - if let itemNode = itemNode as? ItemListItemNode { - if let tag = itemNode.tag, tag.isEqual(to: CreatePollEntryTag.option(id)) { - resultItemNode = itemNode as? ListViewItemNode - return true + if let itemNode = itemNode as? ItemListItemNode, let tag = itemNode.tag { + if isLast { + if tag.isEqual(to: CreatePollEntryTag.optionsInfo) { + resultItemNode = itemNode as? ListViewItemNode + return true + } + } else { + if tag.isEqual(to: CreatePollEntryTag.option(id)) { + resultItemNode = itemNode as? ListViewItemNode + return true + } } } return false @@ -850,10 +848,10 @@ public func createPollController(context: AccountContext, peer: Peer, completion } } } - controller.setReorderEntry({ (fromIndex: Int, toIndex: Int, entries: [CreatePollEntry]) -> Void in + controller.setReorderEntry({ (fromIndex: Int, toIndex: Int, entries: [CreatePollEntry]) -> Signal in let fromEntry = entries[fromIndex] guard case let .option(option) = fromEntry else { - return + return .single(false) } let id = option.id var referenceId: Int? @@ -873,13 +871,18 @@ public func createPollController(context: AccountContext, peer: Peer, completion } else { afterAll = true } + + var didReorder = false + updateState { state in var state = state var options = state.options var reorderOption: OrderedLinkedListItem? + var previousIndex: Int? for i in 0 ..< options.count { if options[i].item.id == id { reorderOption = options[i] + previousIndex = i options.remove(at: i) break } @@ -890,8 +893,10 @@ public func createPollController(context: AccountContext, peer: Peer, completion for i in 0 ..< options.count - 1 { if options[i].item.id == referenceId { if fromIndex < toIndex { + didReorder = previousIndex != i + 1 options.insert(reorderOption.item, at: i + 1, id: reorderOption.ordering.id) } else { + didReorder = previousIndex != i options.insert(reorderOption.item, at: i, id: reorderOption.ordering.id) } inserted = true @@ -900,17 +905,22 @@ public func createPollController(context: AccountContext, peer: Peer, completion } if !inserted { if options.count >= 2 { + didReorder = previousIndex != options.count - 1 options.insert(reorderOption.item, at: options.count - 1, id: reorderOption.ordering.id) } else { + didReorder = previousIndex != options.count options.append(reorderOption.item, id: reorderOption.ordering.id) } } } else if beforeAll { + didReorder = previousIndex != 0 options.insert(reorderOption.item, at: 0, id: reorderOption.ordering.id) } else if afterAll { if options.count >= 2 { + didReorder = previousIndex != options.count - 1 options.insert(reorderOption.item, at: options.count - 1, id: reorderOption.ordering.id) } else { + didReorder = previousIndex != options.count options.append(reorderOption.item, id: reorderOption.ordering.id) } } @@ -918,7 +928,34 @@ public func createPollController(context: AccountContext, peer: Peer, completion } return state } + + return .single(didReorder) }) + attemptNavigationImpl = { + let state = stateValue.with { $0 } + var hasNonEmptyOptions = false + for i in 0 ..< state.options.count { + let optionText = state.options[i].item.text.trimmingCharacters(in: .whitespacesAndNewlines) + if !optionText.isEmpty { + hasNonEmptyOptions = true + } + } + if hasNonEmptyOptions || !state.text.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty { + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.CreatePoll_CancelConfirmation, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_No, action: {}), TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_Yes, action: { + dismissImpl?() + })]), nil) + return false + } else { + return true + } + } + controller.attemptNavigation = { _ in + if let attemptNavigationImpl = attemptNavigationImpl, attemptNavigationImpl() { + return true + } + return false + } controller.isOpaqueWhenInOverlay = true controller.blocksBackgroundWhenInOverlay = true controller.experimentalSnapScrollToItem = true diff --git a/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift b/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift index 45adac7e97..8661a2da7d 100644 --- a/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift +++ b/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift @@ -391,6 +391,8 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, strongSelf.containerNode.insertSubnode(strongSelf.maskNode, at: 3) } + let bottomStripeWasHidden = strongSelf.bottomStripeNode.isHidden + let hasCorners = itemListHasRoundedBlockLayout(params) var hasTopCorners = false var hasBottomCorners = false @@ -405,6 +407,7 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, switch neighbors.bottom { case .sameSection(false): bottomStripeInset = leftInset + strongSelf.bottomStripeNode.isHidden = false default: bottomStripeInset = 0.0 hasBottomCorners = true @@ -418,7 +421,17 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, strongSelf.containerNode.frame = CGRect(origin: CGPoint(), size: layout.contentSize) strongSelf.backgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: params.width, height: contentSize.height + min(insets.top, separatorHeight) + min(insets.bottom, separatorHeight))) strongSelf.maskNode.frame = strongSelf.backgroundNode.frame.insetBy(dx: params.leftInset, dy: 0.0) - strongSelf.bottomStripeNode.frame = CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height - UIScreenPixel), size: CGSize(width: layout.contentSize.width - bottomStripeInset, height: separatorHeight)) + let previousX = strongSelf.bottomStripeNode.frame.minX + strongSelf.bottomStripeNode.frame = CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height - UIScreenPixel), size: CGSize(width: layout.contentSize.width, height: separatorHeight)) + if !bottomStripeWasHidden { + transition.animatePositionAdditive(node: strongSelf.bottomStripeNode, offset: CGPoint(x: previousX - strongSelf.bottomStripeNode.frame.minX, y: 0.0)) + } + } else { + let previousX = strongSelf.bottomStripeNode.frame.minX + strongSelf.bottomStripeNode.frame = CGRect(origin: CGPoint(x: bottomStripeInset, y: strongSelf.bottomStripeNode.frame.minY), size: CGSize(width: layout.contentSize.width, height: separatorHeight)) + if !bottomStripeWasHidden { + transition.animatePositionAdditive(node: strongSelf.bottomStripeNode, offset: CGPoint(x: previousX - strongSelf.bottomStripeNode.frame.minX, y: 0.0)) + } } let _ = reorderSizeAndApply.1(layout.contentSize.height, displayTextLimit, transition) diff --git a/submodules/Display/Display/ListView.swift b/submodules/Display/Display/ListView.swift index ea18fb4f9a..fd2b2ded3a 100644 --- a/submodules/Display/Display/ListView.swift +++ b/submodules/Display/Display/ListView.swift @@ -435,6 +435,10 @@ open class ListView: ASDisplayNode, UIScrollViewAccessibilityDelegate, UIGesture } private func endReordering() { + self.itemReorderingTimer?.invalidate() + self.itemReorderingTimer = nil + self.lastReorderingOffset = nil + let f: () -> Void = { [weak self] in guard let strongSelf = self else { return @@ -467,11 +471,32 @@ open class ListView: ASDisplayNode, UIScrollViewAccessibilityDelegate, UIGesture } } - private func checkItemReordering() { - if let reorderNode = self.reorderNode, let reorderItemNode = reorderNode.itemNode, let reorderItemIndex = reorderItemNode.index, reorderItemNode.supernode == self { - guard let verticalTopOffset = reorderNode.currentOffset() else { - return - } + private var itemReorderingTimer: SwiftSignalKit.Timer? + private var lastReorderingOffset: CGFloat? + + private func checkItemReordering(force: Bool = false) { + guard let reorderNode = self.reorderNode, let verticalTopOffset = reorderNode.currentOffset() else { + return + } + + if let lastReorderingOffset = self.lastReorderingOffset, abs(lastReorderingOffset - verticalTopOffset) < 4.0 && !force { + return + } + + self.itemReorderingTimer?.invalidate() + self.itemReorderingTimer = nil + + self.lastReorderingOffset = verticalTopOffset + + if !force { + self.itemReorderingTimer = SwiftSignalKit.Timer(timeout: 0.025, repeat: false, completion: { [weak self] in + self?.checkItemReordering(force: true) + }, queue: Queue.mainQueue()) + self.itemReorderingTimer?.start() + return + } + + if let reorderItemNode = reorderNode.itemNode, let reorderItemIndex = reorderItemNode.index, reorderItemNode.supernode == self { let verticalOffset = verticalTopOffset var closestIndex: (Int, CGFloat)? for i in 0 ..< self.itemNodes.count { diff --git a/submodules/Display/Display/ListViewItemNode.swift b/submodules/Display/Display/ListViewItemNode.swift index a2a920f641..608580a667 100644 --- a/submodules/Display/Display/ListViewItemNode.swift +++ b/submodules/Display/Display/ListViewItemNode.swift @@ -564,6 +564,6 @@ open class ListViewItemNode: ASDisplayNode { } open func snapshotForReordering() -> UIView? { - return self.view.snapshotContentTree() + return self.view.snapshotContentTree(keepTransform: true) } } diff --git a/submodules/Display/Display/Navigation/NavigationModalContainer.swift b/submodules/Display/Display/Navigation/NavigationModalContainer.swift index 65c7d2233c..0f3f0dee97 100644 --- a/submodules/Display/Display/Navigation/NavigationModalContainer.swift +++ b/submodules/Display/Display/Navigation/NavigationModalContainer.swift @@ -131,6 +131,16 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes return false } + private func checkInteractiveDismissWithControllers() -> Bool { + if let controller = self.container.controllers.last { + if !controller.attemptNavigation({ + }) { + return false + } + } + return true + } + @objc private func panGesture(_ recognizer: UIPanGestureRecognizer) { switch recognizer.state { case .began: @@ -147,7 +157,7 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes let progress = translation / self.bounds.width let velocity = recognizer.velocity(in: self.view).x - if velocity > 1000 || progress > 0.2 { + if (velocity > 1000 || progress > 0.2) && self.checkInteractiveDismissWithControllers() { self.isDismissed = true self.horizontalDismissOffset = self.bounds.width self.dismissProgress = 1.0 @@ -243,7 +253,7 @@ final class NavigationModalContainer: ASDisplayNode, UIScrollViewDelegate, UIGes let duration = Double(min(0.3, velocityFactor)) let transition: ContainedViewLayoutTransition let dismissProgress: CGFloat - if velocity.y < -0.5 || progress >= 0.5 { + if (velocity.y < -0.5 || progress >= 0.5) && self.checkInteractiveDismissWithControllers() { dismissProgress = 1.0 targetOffset = 0.0 transition = .animated(duration: duration, curve: .easeInOut) diff --git a/submodules/ItemListUI/Sources/ItemListController.swift b/submodules/ItemListUI/Sources/ItemListController.swift index 4d64b03c76..893e09c32a 100644 --- a/submodules/ItemListUI/Sources/ItemListController.swift +++ b/submodules/ItemListUI/Sources/ItemListController.swift @@ -197,12 +197,12 @@ open class ItemListController: ViewController, KeyShortcutResponder, Presentable public var willScrollToTop: (() -> Void)? - public func setReorderEntry(_ f: @escaping (Int, Int, [T]) -> Void) { + public func setReorderEntry(_ f: @escaping (Int, Int, [T]) -> Signal) { self.reorderEntry = { a, b, list in - f(a, b, list.map { $0 as! T }) + return f(a, b, list.map { $0 as! T }) } } - private var reorderEntry: ((Int, Int, [ItemListNodeAnyEntry]) -> Void)? { + private var reorderEntry: ((Int, Int, [ItemListNodeAnyEntry]) -> Signal)? { didSet { if self.isNodeLoaded { (self.displayNode as! ItemListControllerNode).reorderEntry = self.reorderEntry diff --git a/submodules/ItemListUI/Sources/ItemListControllerNode.swift b/submodules/ItemListUI/Sources/ItemListControllerNode.swift index a56087ca9e..7f99f946e5 100644 --- a/submodules/ItemListUI/Sources/ItemListControllerNode.swift +++ b/submodules/ItemListUI/Sources/ItemListControllerNode.swift @@ -217,7 +217,7 @@ open class ItemListControllerNode: ASDisplayNode, UIScrollViewDelegate { public var contentOffsetChanged: ((ListViewVisibleContentOffset, Bool) -> Void)? public var contentScrollingEnded: ((ListView) -> Bool)? public var searchActivated: ((Bool) -> Void)? - public var reorderEntry: ((Int, Int, [ItemListNodeAnyEntry]) -> Void)? + public var reorderEntry: ((Int, Int, [ItemListNodeAnyEntry]) -> Signal)? public var reorderCompleted: (([ItemListNodeAnyEntry]) -> Void)? public var requestLayout: ((ContainedViewLayoutTransition) -> Void)? @@ -269,7 +269,7 @@ open class ItemListControllerNode: ASDisplayNode, UIScrollViewDelegate { self.listNode.reorderItem = { [weak self] fromIndex, toIndex, opaqueTransactionState in if let strongSelf = self, let reorderEntry = strongSelf.reorderEntry, let mergedEntries = (opaqueTransactionState as? ItemListNodeOpaqueState)?.mergedEntries { if fromIndex >= 0 && fromIndex < mergedEntries.count && toIndex >= 0 && toIndex < mergedEntries.count { - reorderEntry(fromIndex, toIndex, mergedEntries) + return reorderEntry(fromIndex, toIndex, mergedEntries) } } return .single(false) diff --git a/submodules/ItemListUI/Sources/Items/ItemListTextItem.swift b/submodules/ItemListUI/Sources/Items/ItemListTextItem.swift index 32307fdf36..6344e1bdca 100644 --- a/submodules/ItemListUI/Sources/Items/ItemListTextItem.swift +++ b/submodules/ItemListUI/Sources/Items/ItemListTextItem.swift @@ -24,13 +24,15 @@ public class ItemListTextItem: ListViewItem, ItemListItem { let linkAction: ((ItemListTextItemLinkAction) -> Void)? let style: ItemListStyle public let isAlwaysPlain: Bool = true + public let tag: ItemListItemTag? - public init(presentationData: ItemListPresentationData, text: ItemListTextItemText, sectionId: ItemListSectionId, linkAction: ((ItemListTextItemLinkAction) -> Void)? = nil, style: ItemListStyle = .blocks) { + public init(presentationData: ItemListPresentationData, text: ItemListTextItemText, sectionId: ItemListSectionId, linkAction: ((ItemListTextItemLinkAction) -> Void)? = nil, style: ItemListStyle = .blocks, tag: ItemListItemTag? = nil) { self.presentationData = presentationData self.text = text self.sectionId = sectionId self.linkAction = linkAction self.style = style + self.tag = tag } public func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { @@ -70,12 +72,16 @@ public class ItemListTextItem: ListViewItem, ItemListItem { } } -public class ItemListTextItemNode: ListViewItemNode { +public class ItemListTextItemNode: ListViewItemNode, ItemListItemNode { private let titleNode: TextNode private let activateArea: AccessibilityAreaNode private var item: ItemListTextItem? + public var tag: ItemListItemTag? { + return self.item?.tag + } + public init() { self.titleNode = TextNode() self.titleNode.isUserInteractionEnabled = false @@ -111,6 +117,7 @@ public class ItemListTextItemNode: ListViewItemNode { let titleFont = Font.regular(item.presentationData.fontSize.itemListBaseHeaderFontSize) let largeTitleFont = Font.semibold(floor(item.presentationData.fontSize.itemListBaseHeaderFontSize * 2.0)) + let semiLargeTitleFont = Font.semibold(floor(item.presentationData.fontSize.itemListBaseHeaderFontSize * 1.2)) let titleBoldFont = Font.semibold(item.presentationData.fontSize.itemListBaseHeaderFontSize) let attributedText: NSAttributedString @@ -118,7 +125,13 @@ public class ItemListTextItemNode: ListViewItemNode { case let .plain(text): attributedText = NSAttributedString(string: text, font: titleFont, textColor: item.presentationData.theme.list.freeTextColor) case let .large(text): - attributedText = NSAttributedString(string: text, font: largeTitleFont, textColor: item.presentationData.theme.list.itemPrimaryTextColor) + let font: UIFont + if params.width >= 330.0 { + font = largeTitleFont + } else { + font = semiLargeTitleFont + } + attributedText = NSAttributedString(string: text, font: font, textColor: item.presentationData.theme.list.itemPrimaryTextColor) case let .markdown(text): attributedText = parseMarkdownIntoAttributedString(text, attributes: MarkdownAttributes(body: MarkdownAttributeSet(font: titleFont, textColor: item.presentationData.theme.list.freeTextColor), bold: MarkdownAttributeSet(font: titleBoldFont, textColor: item.presentationData.theme.list.freeTextColor), link: MarkdownAttributeSet(font: titleFont, textColor: item.presentationData.theme.list.itemAccentColor), linkAttribute: { contents in return (TelegramTextAttributes.URL, contents) diff --git a/submodules/SettingsUI/Sources/Data and Storage/ProxyListSettingsController.swift b/submodules/SettingsUI/Sources/Data and Storage/ProxyListSettingsController.swift index 317eedd81f..c0424de212 100644 --- a/submodules/SettingsUI/Sources/Data and Storage/ProxyListSettingsController.swift +++ b/submodules/SettingsUI/Sources/Data and Storage/ProxyListSettingsController.swift @@ -453,10 +453,10 @@ public func proxySettingsController(accountManager: AccountManager, context: Acc dismissImpl = { [weak controller] in controller?.dismiss() } - controller.setReorderEntry({ (fromIndex: Int, toIndex: Int, entries: [ProxySettingsControllerEntry]) -> Void in + controller.setReorderEntry({ (fromIndex: Int, toIndex: Int, entries: [ProxySettingsControllerEntry]) -> Signal in let fromEntry = entries[fromIndex] guard case let .server(_, _, _, fromServer, _, _, _, _) = fromEntry else { - return + return .single(false) } var referenceServer: ProxyServerSettings? var beforeAll = false @@ -476,7 +476,7 @@ public func proxySettingsController(accountManager: AccountManager, context: Acc afterAll = true } - let _ = updateProxySettingsInteractively(accountManager: accountManager, { current in + return updateProxySettingsInteractively(accountManager: accountManager, { current in var current = current if let index = current.servers.firstIndex(of: fromServer) { current.servers.remove(at: index) @@ -503,7 +503,7 @@ public func proxySettingsController(accountManager: AccountManager, context: Acc current.servers.append(fromServer) } return current - }).start() + }) }) shareProxyListImpl = { [weak controller] in diff --git a/submodules/SettingsUI/Sources/Stickers/InstalledStickerPacksController.swift b/submodules/SettingsUI/Sources/Stickers/InstalledStickerPacksController.swift index a3ee302d57..84a7c355c4 100644 --- a/submodules/SettingsUI/Sources/Stickers/InstalledStickerPacksController.swift +++ b/submodules/SettingsUI/Sources/Stickers/InstalledStickerPacksController.swift @@ -698,10 +698,10 @@ public func installedStickerPacksController(context: AccountContext, mode: Insta if case .modal = mode { controller.navigationPresentation = .modal } - controller.setReorderEntry({ (fromIndex: Int, toIndex: Int, entries: [InstalledStickerPacksEntry]) -> Void in + controller.setReorderEntry({ (fromIndex: Int, toIndex: Int, entries: [InstalledStickerPacksEntry]) -> Signal in let fromEntry = entries[fromIndex] guard case let .pack(_, _, _, fromPackInfo, _, _, _, _, _) = fromEntry else { - return + return .single(false) } var referenceId: ItemCollectionId? var beforeAll = false @@ -731,20 +731,26 @@ public func installedStickerPacksController(context: AccountContext, mode: Insta } } + var previousIndex: Int? for i in 0 ..< currentIds.count { if currentIds[i] == fromPackInfo.id { + previousIndex = i currentIds.remove(at: i) break } } + var didReorder = false + if let referenceId = referenceId { var inserted = false for i in 0 ..< currentIds.count { if currentIds[i] == referenceId { if fromIndex < toIndex { + didReorder = previousIndex != i + 1 currentIds.insert(fromPackInfo.id, at: i + 1) } else { + didReorder = previousIndex != i currentIds.insert(fromPackInfo.id, at: i) } inserted = true @@ -752,15 +758,20 @@ public func installedStickerPacksController(context: AccountContext, mode: Insta } } if !inserted { + didReorder = previousIndex != currentIds.count currentIds.append(fromPackInfo.id) } } else if beforeAll { + didReorder = previousIndex != 0 currentIds.insert(fromPackInfo.id, at: 0) } else if afterAll { + didReorder = previousIndex != currentIds.count currentIds.append(fromPackInfo.id) } temporaryPackOrder.set(.single(currentIds)) + + return .single(didReorder) }) controller.setReorderCompleted({ (entries: [InstalledStickerPacksEntry]) -> Void in diff --git a/submodules/TelegramCore/Sources/ProxySettings.swift b/submodules/TelegramCore/Sources/ProxySettings.swift index 82253e7fb4..933f79dc14 100644 --- a/submodules/TelegramCore/Sources/ProxySettings.swift +++ b/submodules/TelegramCore/Sources/ProxySettings.swift @@ -4,9 +4,9 @@ import SwiftSignalKit import MtProtoKit import SyncCore -public func updateProxySettingsInteractively(accountManager: AccountManager, _ f: @escaping (ProxySettings) -> ProxySettings) -> Signal { - return accountManager.transaction { transaction -> Void in - updateProxySettingsInteractively(transaction: transaction, f) +public func updateProxySettingsInteractively(accountManager: AccountManager, _ f: @escaping (ProxySettings) -> ProxySettings) -> Signal { + return accountManager.transaction { transaction -> Bool in + return updateProxySettingsInteractively(transaction: transaction, f) } } @@ -21,10 +21,13 @@ extension ProxyServerSettings { } } -public func updateProxySettingsInteractively(transaction: AccountManagerModifier, _ f: @escaping (ProxySettings) -> ProxySettings) { +public func updateProxySettingsInteractively(transaction: AccountManagerModifier, _ f: @escaping (ProxySettings) -> ProxySettings) -> Bool { + var hasChanges = false transaction.updateSharedData(SharedDataKeys.proxySettings, { current in let previous = (current as? ProxySettings) ?? ProxySettings.defaultSettings let updated = f(previous) + hasChanges = previous != updated return updated }) + return hasChanges } diff --git a/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift index ae70b59e7b..ff9250a2c3 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift @@ -343,7 +343,7 @@ public func makeDefaultDarkPresentationTheme(extendingThemeReference: Presentati primaryColor: UIColor(rgb: 0xffffff), controlColor: UIColor(rgb: 0x4d4d4d) ), - mediaPlaceholderColor: UIColor(rgb: 0x1c1c1d), + mediaPlaceholderColor: UIColor(rgb: 0xffffff).withMultipliedBrightnessBy(0.1), scrollIndicatorColor: UIColor(rgb: 0xffffff, alpha: 0.3), pageIndicatorInactiveColor: UIColor(white: 1.0, alpha: 0.3), inputClearButtonColor: UIColor(rgb: 0x8b9197), @@ -388,7 +388,7 @@ public func makeDefaultDarkPresentationTheme(extendingThemeReference: Presentati let message = PresentationThemeChatMessage( incoming: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x262628), highlightedFill: UIColor(rgb: 0x353539), stroke: UIColor(rgb: 0x262628)), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x262628), highlightedFill: UIColor(rgb: 0x353539), stroke: UIColor(rgb: 0x262628))), primaryTextColor: UIColor(rgb: 0xffffff), secondaryTextColor: UIColor(rgb: 0xffffff, alpha: 0.5), linkTextColor: UIColor(rgb: 0xffffff), linkHighlightColor: UIColor(rgb: 0xffffff, alpha: 0.5), scamColor: UIColor(rgb: 0xeb5545), textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: UIColor(rgb: 0xffffff), accentControlColor: UIColor(rgb: 0xffffff), accentControlDisabledColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaActiveControlColor: UIColor(rgb: 0xffffff), mediaInactiveControlColor: UIColor(rgb: 0xffffff, alpha: 0.4), mediaControlInnerBackgroundColor: UIColor(rgb: 0x262628), pendingActivityColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileTitleColor: UIColor(rgb: 0xffffff), fileDescriptionColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileDurationColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaPlaceholderColor: UIColor(rgb: 0x1f1f1f).mixedWith(UIColor(rgb: 0xffffff), alpha: 0.05), polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0x737373), radioProgress: UIColor(rgb: 0xffffff), highlight: UIColor(rgb: 0xffffff, alpha: 0.12), separator: UIColor(rgb: 0x000000), bar: UIColor(rgb: 0xffffff), barIconForeground: .white, barPositive: UIColor(rgb: 0x00A700), barNegative: UIColor(rgb: 0xFE3824)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0x000000, alpha: 0.5), withoutWallpaper: UIColor(rgb: 0x000000, alpha: 0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xb2b2b2, alpha: 0.18)), actionButtonsTextColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xffffff)), textSelectionColor: UIColor(rgb: 0xffffff, alpha: 0.2), textSelectionKnobColor: UIColor(rgb: 0xffffff)), - outgoing: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x313131), gradientFill: UIColor(rgb: 0x313131), highlightedFill: UIColor(rgb: 0x464646), stroke: UIColor(rgb: 0x313131)), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x313131), gradientFill: UIColor(rgb: 0x313131), highlightedFill: UIColor(rgb: 0x464646), stroke: UIColor(rgb: 0x313131))), primaryTextColor: UIColor(rgb: 0xffffff), secondaryTextColor: UIColor(rgb: 0xffffff, alpha: 0.5), linkTextColor: UIColor(rgb: 0xffffff), linkHighlightColor: UIColor(rgb: 0xffffff, alpha: 0.5), scamColor: UIColor(rgb: 0xeb5545), textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: UIColor(rgb: 0xffffff), accentControlColor: UIColor(rgb: 0xffffff), accentControlDisabledColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaActiveControlColor: UIColor(rgb: 0xffffff), mediaInactiveControlColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaControlInnerBackgroundColor: UIColor(rgb: 0x313131), pendingActivityColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileTitleColor: UIColor(rgb: 0xffffff), fileDescriptionColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileDurationColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaPlaceholderColor: UIColor(rgb: 0x313131).mixedWith(UIColor(rgb: 0xffffff), alpha: 0.05), polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0xffffff), radioProgress: UIColor(rgb: 0xffffff), highlight: UIColor(rgb: 0xffffff).withAlphaComponent(0.12), separator: UIColor(rgb: 0xffffff, alpha: 0.5), bar: UIColor(rgb: 0xffffff), barIconForeground: .white, barPositive: UIColor(rgb: 0xffffff), barNegative: UIColor(rgb: 0xffffff)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0x000000, alpha: 0.5), withoutWallpaper: UIColor(rgb: 0x000000, alpha: 0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xb2b2b2, alpha: 0.18)), actionButtonsTextColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xffffff)), textSelectionColor: UIColor(rgb: 0xffffff, alpha: 0.2), textSelectionKnobColor: UIColor(rgb: 0xffffff)), + outgoing: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x313131), gradientFill: UIColor(rgb: 0x313131), highlightedFill: UIColor(rgb: 0x464646), stroke: UIColor(rgb: 0x313131)), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x313131), gradientFill: UIColor(rgb: 0x313131), highlightedFill: UIColor(rgb: 0x464646), stroke: UIColor(rgb: 0x313131))), primaryTextColor: UIColor(rgb: 0xffffff), secondaryTextColor: UIColor(rgb: 0xffffff, alpha: 0.5), linkTextColor: UIColor(rgb: 0xffffff), linkHighlightColor: UIColor(rgb: 0xffffff, alpha: 0.5), scamColor: UIColor(rgb: 0xeb5545), textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: UIColor(rgb: 0xffffff), accentControlColor: UIColor(rgb: 0xffffff), accentControlDisabledColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaActiveControlColor: UIColor(rgb: 0xffffff), mediaInactiveControlColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaControlInnerBackgroundColor: UIColor(rgb: 0x313131), pendingActivityColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileTitleColor: UIColor(rgb: 0xffffff), fileDescriptionColor: UIColor(rgb: 0xffffff, alpha: 0.5), fileDurationColor: UIColor(rgb: 0xffffff, alpha: 0.5), mediaPlaceholderColor: UIColor(rgb: 0x313131).mixedWith(UIColor(rgb: 0xffffff), alpha: 0.05), polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0xffffff), radioProgress: UIColor(rgb: 0xffffff), highlight: UIColor(rgb: 0xffffff).withAlphaComponent(0.12), separator: UIColor(rgb: 0xffffff, alpha: 0.5), bar: UIColor(rgb: 0xffffff), barIconForeground: .clear, barPositive: UIColor(rgb: 0xffffff), barNegative: UIColor(rgb: 0xffffff)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0x000000, alpha: 0.5), withoutWallpaper: UIColor(rgb: 0x000000, alpha: 0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xb2b2b2, alpha: 0.18)), actionButtonsTextColor: PresentationThemeVariableColor(color: UIColor(rgb: 0xffffff)), textSelectionColor: UIColor(rgb: 0xffffff, alpha: 0.2), textSelectionKnobColor: UIColor(rgb: 0xffffff)), freeform: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x1f1f1f), highlightedFill: UIColor(rgb: 0x2a2a2a), stroke: UIColor(rgb: 0x1f1f1f)), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: UIColor(rgb: 0x1f1f1f), highlightedFill: UIColor(rgb: 0x2a2a2a), stroke: UIColor(rgb: 0x1f1f1f))), infoPrimaryTextColor: UIColor(rgb: 0xffffff), infoLinkTextColor: UIColor(rgb: 0xffffff), diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index bd23c5b8c1..be7e8bfb4a 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -163,6 +163,7 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { self.animatedColor = animatedColor updated = true } + let wasAnimating = self.isAnimating if isAnimating != self.isAnimating { let previous = self.shouldBeAnimating self.isAnimating = isAnimating @@ -171,7 +172,7 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { self.updateAnimating() } } - if isSelectable { + if isSelectable && !isAnimating { if self.checkNode == nil { updated = true let checkNode = CheckNode(strokeColor: staticColor, fillColor: animatedColor, foregroundColor: foregroundColor, style: .plain) @@ -183,7 +184,13 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { } else if let checkNode = self.checkNode { updated = true self.checkNode = nil - checkNode.removeFromSupernode() + if wasAnimating != self.isAnimating { + checkNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.25, removeOnCompletion: false, completion: { [weak checkNode] _ in + checkNode?.removeFromSupernode() + }) + } else { + checkNode.removeFromSupernode() + } } if updated { self.setNeedsDisplay() @@ -487,6 +494,9 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { context.fillEllipse(in: CGRect(origin: CGPoint(), size: size)) let strokeColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.barIconForeground : presentationData.theme.theme.chat.message.outgoing.polls.barIconForeground + if strokeColor.alpha.isZero { + context.setBlendMode(.copy) + } context.setStrokeColor(strokeColor.cgColor) context.setLineWidth(1.5) context.setLineJoin(.round) @@ -1065,7 +1075,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { var optionNodesSizesAndApply: [(CGSize, (Bool, Bool) -> ChatMessagePollOptionNode)] = [] for finalizeLayout in pollOptionsFinalizeLayouts { - let result = finalizeLayout(boundingWidth - layoutConstants.bubble.borderInset * 2.0) + let result = finalizeLayout(boundingWidth - layoutConstants.bubble.borderInset * 2.0) resultSize.width = max(resultSize.width, result.0.width + layoutConstants.bubble.borderInset * 2.0) resultSize.height += result.0.height optionNodesSizesAndApply.append(result) @@ -1076,9 +1086,18 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { let votersBottomSpacing: CGFloat = 11.0 resultSize.height += optionsVotersSpacing + votersLayout.size.height + votersBottomSpacing + let buttonSubmitInactiveTextFrame = CGRect(origin: CGPoint(x: floor((resultSize.width - buttonSubmitInactiveTextLayout.size.width) / 2.0), y: optionsButtonSpacing), size: buttonSubmitInactiveTextLayout.size) + let buttonSubmitActiveTextFrame = CGRect(origin: CGPoint(x: floor((resultSize.width - buttonSubmitActiveTextLayout.size.width) / 2.0), y: optionsButtonSpacing), size: buttonSubmitActiveTextLayout.size) + let buttonViewResultsTextFrame = CGRect(origin: CGPoint(x: floor((resultSize.width - buttonViewResultsTextLayout.size.width) / 2.0), y: optionsButtonSpacing), size: buttonViewResultsTextLayout.size) + var adjustedStatusFrame: CGRect? if let statusFrame = statusFrame { - adjustedStatusFrame = CGRect(origin: CGPoint(x: boundingWidth - statusFrame.size.width - layoutConstants.text.bubbleInsets.right, y: resultSize.height - statusFrame.size.height - 6.0), size: statusFrame.size) + var localStatusFrame = CGRect(origin: CGPoint(x: boundingWidth - statusFrame.size.width - layoutConstants.text.bubbleInsets.right, y: resultSize.height - statusFrame.size.height - 6.0), size: statusFrame.size) + if localStatusFrame.minX <= buttonViewResultsTextFrame.maxX || localStatusFrame.minX <= buttonSubmitActiveTextFrame.maxX { + localStatusFrame.origin.y += 10.0 + resultSize.height += 10.0 + } + adjustedStatusFrame = localStatusFrame } return (resultSize, { [weak self] animation, synchronousLoad in @@ -1200,13 +1219,13 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } let _ = buttonSubmitInactiveTextApply() - strongSelf.buttonSubmitInactiveTextNode.frame = CGRect(origin: CGPoint(x: floor((resultSize.width - buttonSubmitInactiveTextLayout.size.width) / 2.0), y: verticalOffset + optionsButtonSpacing), size: buttonSubmitInactiveTextLayout.size) + strongSelf.buttonSubmitInactiveTextNode.frame = buttonSubmitInactiveTextFrame.offsetBy(dx: 0.0, dy: verticalOffset) let _ = buttonSubmitActiveTextApply() - strongSelf.buttonSubmitActiveTextNode.frame = CGRect(origin: CGPoint(x: floor((resultSize.width - buttonSubmitActiveTextLayout.size.width) / 2.0), y: verticalOffset + optionsButtonSpacing), size: buttonSubmitActiveTextLayout.size) + strongSelf.buttonSubmitActiveTextNode.frame = buttonSubmitActiveTextFrame.offsetBy(dx: 0.0, dy: verticalOffset) let _ = buttonViewResultsTextApply() - strongSelf.buttonViewResultsTextNode.frame = CGRect(origin: CGPoint(x: floor((resultSize.width - buttonViewResultsTextLayout.size.width) / 2.0), y: verticalOffset + optionsButtonSpacing), size: buttonViewResultsTextLayout.size) + strongSelf.buttonViewResultsTextNode.frame = buttonViewResultsTextFrame.offsetBy(dx: 0.0, dy: verticalOffset) strongSelf.buttonNode.frame = CGRect(origin: CGPoint(x: 0.0, y: verticalOffset), size: CGSize(width: resultSize.width, height: 44.0)) @@ -1224,10 +1243,16 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } var hasSelection = false + switch poll.kind { + case .poll(true): + hasSelection = true + default: + break + } + var hasSelectedOptions = false for optionNode in self.optionNodes { if let isChecked = optionNode.radioNode?.isChecked { - hasSelection = true if isChecked { hasSelectedOptions = true } @@ -1241,7 +1266,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } } - if hasSelection && poll.pollId.namespace == Namespaces.Media.CloudPoll { + if hasSelection && !hasResults && poll.pollId.namespace == Namespaces.Media.CloudPoll { self.votersNode.isHidden = true self.buttonViewResultsTextNode.isHidden = true self.buttonSubmitInactiveTextNode.isHidden = hasSelectedOptions From 6d5bfe1f1eb87013b2f9f02d759349072ff2e341 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Mon, 13 Jan 2020 00:37:27 +0400 Subject: [PATCH 12/63] Poll UI improvements --- .../Sources/CreatePollController.swift | 2 +- submodules/Display/Display/ListView.swift | 2 +- .../Sources/ItemListPeerItem.swift | 21 ++++- .../Sources/Items/ItemListTextItem.swift | 11 +-- submodules/Postbox/Sources/ValueBoxKey.swift | 7 ++ submodules/SyncCore/Sources/Namespaces.swift | 3 +- .../TelegramCore/Sources/AccountManager.swift | 1 + submodules/TelegramCore/Sources/Polls.swift | 77 ++++++++++++++++++- .../DefaultDarkPresentationTheme.swift | 2 +- .../DefaultDarkTintedPresentationTheme.swift | 2 +- .../TelegramUI/ChatController.swift | 27 +++++-- .../ChatMessagePollBubbleContentNode.swift | 15 +++- 12 files changed, 142 insertions(+), 28 deletions(-) diff --git a/submodules/ComposePollUI/Sources/CreatePollController.swift b/submodules/ComposePollUI/Sources/CreatePollController.swift index de43ccc426..73e9e6a5c4 100644 --- a/submodules/ComposePollUI/Sources/CreatePollController.swift +++ b/submodules/ComposePollUI/Sources/CreatePollController.swift @@ -396,7 +396,7 @@ private func createPollControllerEntries(presentationData: PresentationData, pee } var canBePublic = true - if let channel = peer as? TelegramChannel, case .broadcast = channel.info, let username = channel.username, !username.isEmpty { + if let channel = peer as? TelegramChannel, case .broadcast = channel.info { canBePublic = false } diff --git a/submodules/Display/Display/ListView.swift b/submodules/Display/Display/ListView.swift index fd2b2ded3a..e75afca77e 100644 --- a/submodules/Display/Display/ListView.swift +++ b/submodules/Display/Display/ListView.swift @@ -3049,7 +3049,7 @@ open class ListView: ASDisplayNode, UIScrollViewAccessibilityDelegate, UIGesture stickLocationDistanceFactor = max(0.0, min(1.0, stickLocationDistance / itemHeaderHeight)) case .topEdge: headerFrame = CGRect(origin: CGPoint(x: 0.0, y: min(max(upperDisplayBound, upperBoundEdge - itemHeaderHeight), lowerBound - itemHeaderHeight)), size: CGSize(width: self.visibleSize.width, height: itemHeaderHeight)) - stickLocationDistance = headerFrame.maxY - upperBoundEdge - itemHeaderHeight + stickLocationDistance = headerFrame.minY - upperBoundEdge + itemHeaderHeight stickLocationDistanceFactor = max(0.0, min(1.0, stickLocationDistance / itemHeaderHeight)) case .bottom: headerFrame = CGRect(origin: CGPoint(x: 0.0, y: max(upperBound, min(lowerBound, lowerDisplayBound) - itemHeaderHeight)), size: CGSize(width: self.visibleSize.width, height: itemHeaderHeight)) diff --git a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift index 264e996dc7..0b9c83aa51 100644 --- a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift +++ b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift @@ -66,7 +66,7 @@ private final class ShimmerEffectNode: ASDisplayNode { self.currentBackgroundColor = backgroundColor self.currentForegroundColor = foregroundColor - self.imageNode.image = generateImage(CGSize(width: 8.0, height: 100.0), opaque: true, scale: 1.0, rotatedContext: { size, context in + self.imageNode.image = generateImage(CGSize(width: 4.0, height: 320.0), opaque: true, scale: 1.0, rotatedContext: { size, context in context.setFillColor(backgroundColor.cgColor) context.fill(CGRect(origin: CGPoint(), size: size)) @@ -1288,7 +1288,7 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { private let actionTextNode: ImmediateTextNode private let actionButton: HighlightableButtonNode - private var stickDistanceFactor: CGFloat = 0.0 + private var stickDistanceFactor: CGFloat? public init(theme: PresentationTheme, strings: PresentationStrings, text: String, actionTitle: String?, action: (() -> Void)?) { self.theme = theme @@ -1305,6 +1305,7 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { self.separatorNode = ASDisplayNode() self.separatorNode.backgroundColor = theme.list.itemBlocksSeparatorColor + self.separatorNode.alpha = 0.0 let titleFont = Font.regular(13.0) @@ -1391,6 +1392,20 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { } override public func updateStickDistanceFactor(_ factor: CGFloat, transition: ContainedViewLayoutTransition) { - transition.updateAlpha(node: self.snappedBackgroundNode, alpha: (1.0 - factor) * 0.0 + factor * 1.0) + if self.stickDistanceFactor == factor { + return + } + self.stickDistanceFactor = factor + if let (size, leftInset, _) = self.validLayout { + if leftInset.isZero { + transition.updateAlpha(node: self.separatorNode, alpha: 1.0) + transition.updateAlpha(node: self.snappedBackgroundNode, alpha: (1.0 - factor) * 0.0 + factor * 1.0) + } else { + let distance = factor * size.height + let alpha = abs(distance) / 16.0 + transition.updateAlpha(node: self.separatorNode, alpha: max(0.0, min(1.0, alpha))) + transition.updateAlpha(node: self.snappedBackgroundNode, alpha: 0.0) + } + } } } diff --git a/submodules/ItemListUI/Sources/Items/ItemListTextItem.swift b/submodules/ItemListUI/Sources/Items/ItemListTextItem.swift index 6344e1bdca..e8bf1de0d2 100644 --- a/submodules/ItemListUI/Sources/Items/ItemListTextItem.swift +++ b/submodules/ItemListUI/Sources/Items/ItemListTextItem.swift @@ -116,8 +116,7 @@ public class ItemListTextItemNode: ListViewItemNode, ItemListItemNode { var bottomInset: CGFloat = 7.0 let titleFont = Font.regular(item.presentationData.fontSize.itemListBaseHeaderFontSize) - let largeTitleFont = Font.semibold(floor(item.presentationData.fontSize.itemListBaseHeaderFontSize * 2.0)) - let semiLargeTitleFont = Font.semibold(floor(item.presentationData.fontSize.itemListBaseHeaderFontSize * 1.2)) + let largeTitleFont = Font.semibold(floor(item.presentationData.fontSize.itemListBaseFontSize)) let titleBoldFont = Font.semibold(item.presentationData.fontSize.itemListBaseHeaderFontSize) let attributedText: NSAttributedString @@ -125,13 +124,7 @@ public class ItemListTextItemNode: ListViewItemNode, ItemListItemNode { case let .plain(text): attributedText = NSAttributedString(string: text, font: titleFont, textColor: item.presentationData.theme.list.freeTextColor) case let .large(text): - let font: UIFont - if params.width >= 330.0 { - font = largeTitleFont - } else { - font = semiLargeTitleFont - } - attributedText = NSAttributedString(string: text, font: font, textColor: item.presentationData.theme.list.itemPrimaryTextColor) + attributedText = NSAttributedString(string: text, font: largeTitleFont, textColor: item.presentationData.theme.list.itemPrimaryTextColor) case let .markdown(text): attributedText = parseMarkdownIntoAttributedString(text, attributes: MarkdownAttributes(body: MarkdownAttributeSet(font: titleFont, textColor: item.presentationData.theme.list.freeTextColor), bold: MarkdownAttributeSet(font: titleBoldFont, textColor: item.presentationData.theme.list.freeTextColor), link: MarkdownAttributeSet(font: titleFont, textColor: item.presentationData.theme.list.itemAccentColor), linkAttribute: { contents in return (TelegramTextAttributes.URL, contents) diff --git a/submodules/Postbox/Sources/ValueBoxKey.swift b/submodules/Postbox/Sources/ValueBoxKey.swift index b309f6589b..9c2d75487a 100644 --- a/submodules/Postbox/Sources/ValueBoxKey.swift +++ b/submodules/Postbox/Sources/ValueBoxKey.swift @@ -38,6 +38,13 @@ public struct ValueBoxKey: Equatable, Hashable, CustomStringConvertible, Compara memcpy(self.memory, buffer.memory, buffer.length) } + public func setData(_ offset: Int, value: Data) { + let valueLength = value.count + value.withUnsafeBytes { (bytes: UnsafePointer) -> Void in + memcpy(self.memory + offset, bytes, valueLength) + } + } + public func setInt32(_ offset: Int, value: Int32) { var bigEndianValue = Int32(bigEndian: value) memcpy(self.memory + offset, &bigEndianValue, 4) diff --git a/submodules/SyncCore/Sources/Namespaces.swift b/submodules/SyncCore/Sources/Namespaces.swift index 52ae19ac3a..96db1f9af2 100644 --- a/submodules/SyncCore/Sources/Namespaces.swift +++ b/submodules/SyncCore/Sources/Namespaces.swift @@ -67,7 +67,8 @@ public struct Namespaces { public static let cachedStickerQueryResults: Int8 = 5 public static let cachedSecureIdConfiguration: Int8 = 6 public static let cachedWallpapersConfiguration: Int8 = 7 - public static let cachedThemesConfiguration: Int8 = 7 + public static let cachedThemesConfiguration: Int8 = 8 + public static let cachedPollResults: Int8 = 9 } public struct UnorderedItemList { diff --git a/submodules/TelegramCore/Sources/AccountManager.swift b/submodules/TelegramCore/Sources/AccountManager.swift index 05576c23b2..f4e0043af9 100644 --- a/submodules/TelegramCore/Sources/AccountManager.swift +++ b/submodules/TelegramCore/Sources/AccountManager.swift @@ -151,6 +151,7 @@ private var declaredEncodables: Void = { declareEncodable(WalletCollection.self, f: { WalletCollection(decoder: $0) }) declareEncodable(EmbeddedMediaStickersMessageAttribute.self, f: { EmbeddedMediaStickersMessageAttribute(decoder: $0) }) declareEncodable(TelegramMediaWebpageAttribute.self, f: { TelegramMediaWebpageAttribute(decoder: $0) }) + declareEncodable(CachedPollOptionResult.self, f: { CachedPollOptionResult(decoder: $0) }) return }() diff --git a/submodules/TelegramCore/Sources/Polls.swift b/submodules/TelegramCore/Sources/Polls.swift index 3e6c4c8288..4ead2a9cfd 100644 --- a/submodules/TelegramCore/Sources/Polls.swift +++ b/submodules/TelegramCore/Sources/Polls.swift @@ -124,9 +124,40 @@ public func requestClosePoll(postbox: Postbox, network: Network, stateManager: A } } +private let cachedPollResultsCollectionSpec = ItemCacheCollectionSpec(lowWaterItemCount: 20, highWaterItemCount: 40) + +final class CachedPollOptionResult: PostboxCoding { + let peerIds: [PeerId] + let count: Int32 + + public static func key(pollId: MediaId, optionOpaqueIdentifier: Data) -> ValueBoxKey { + let key = ValueBoxKey(length: 4 + 8 + optionOpaqueIdentifier.count) + key.setInt32(0, value: pollId.namespace) + key.setInt64(4, value: pollId.id) + key.setData(4 + 8, value: optionOpaqueIdentifier) + return key + } + + public init(peerIds: [PeerId], count: Int32) { + self.peerIds = peerIds + self.count = count + } + + public init(decoder: PostboxDecoder) { + self.peerIds = decoder.decodeInt64ArrayForKey("peerIds").map(PeerId.init) + self.count = decoder.decodeInt32ForKey("count", orElse: 0) + } + + public func encode(_ encoder: PostboxEncoder) { + encoder.encodeInt64Array(self.peerIds.map { $0.toInt64() }, forKey: "peerIds") + encoder.encodeInt32(self.count, forKey: "count") + } +} + private final class PollResultsOptionContext { private let queue: Queue private let account: Account + private let pollId: MediaId private let messageId: MessageId private let opaqueIdentifier: Data private let disposable = MetaDisposable() @@ -136,15 +167,46 @@ private final class PollResultsOptionContext { private var nextOffset: String? private var results: [RenderedPeer] = [] private var count: Int + private var populateCache: Bool = true let state = Promise() - init(queue: Queue, account: Account, messageId: MessageId, opaqueIdentifier: Data, count: Int) { + init(queue: Queue, account: Account, pollId: MediaId, messageId: MessageId, opaqueIdentifier: Data, count: Int) { self.queue = queue self.account = account + self.pollId = pollId self.messageId = messageId self.opaqueIdentifier = opaqueIdentifier self.count = count + + self.isLoadingMore = true + self.disposable.set((account.postbox.transaction { transaction -> [RenderedPeer]? in + let cachedResult = transaction.retrieveItemCacheEntry(id: ItemCacheEntryId(collectionId: Namespaces.CachedItemCollection.cachedPollResults, key: CachedPollOptionResult.key(pollId: pollId, optionOpaqueIdentifier: opaqueIdentifier))) as? CachedPollOptionResult + if let cachedResult = cachedResult, Int(cachedResult.count) == count { + var result: [RenderedPeer] = [] + for peerId in cachedResult.peerIds { + if let peer = transaction.getPeer(peerId) { + result.append(RenderedPeer(peer: peer)) + } else { + return nil + } + } + return result + } else { + return nil + } + } + |> deliverOn(self.queue)).start(next: { [weak self] cachedPeers in + guard let strongSelf = self else { + return + } + strongSelf.isLoadingMore = false + if let cachedPeers = cachedPeers { + strongSelf.results = cachedPeers + strongSelf.hasLoadedOnce = true + } + strongSelf.loadMore() + })) } deinit { @@ -156,10 +218,12 @@ private final class PollResultsOptionContext { return } self.isLoadingMore = true + let pollId = self.pollId let messageId = self.messageId let opaqueIdentifier = self.opaqueIdentifier let account = self.account let nextOffset = self.nextOffset + let populateCache = self.populateCache self.disposable.set((self.account.postbox.transaction { transaction -> Api.InputPeer? in return transaction.getPeer(messageId.peerId).flatMap(apiInputPeer) } @@ -193,12 +257,15 @@ private final class PollResultsOptionContext { } } } + if populateCache { + transaction.putItemCacheEntry(id: ItemCacheEntryId(collectionId: Namespaces.CachedItemCollection.cachedPollResults, key: CachedPollOptionResult.key(pollId: pollId, optionOpaqueIdentifier: opaqueIdentifier)), entry: CachedPollOptionResult(peerIds: resultPeers.map { $0.peerId }, count: count), collectionSpec: cachedPollResultsCollectionSpec) + } return (resultPeers, Int(count), nextOffset) } } } #if DEBUG - return signal |> delay(4.0, queue: .concurrentDefaultQueue()) + //return signal |> delay(4.0, queue: .concurrentDefaultQueue()) #endif return signal } else { @@ -209,6 +276,10 @@ private final class PollResultsOptionContext { guard let strongSelf = self else { return } + if strongSelf.populateCache { + strongSelf.populateCache = false + strongSelf.results.removeAll() + } var existingIds = Set(strongSelf.results.map { $0.peerId }) for peer in peers { if !existingIds.contains(peer.peerId) { @@ -266,7 +337,7 @@ private final class PollResultsContextImpl { } } } - self.optionContexts[option.opaqueIdentifier] = PollResultsOptionContext(queue: self.queue, account: account, messageId: messageId, opaqueIdentifier: option.opaqueIdentifier, count: count) + self.optionContexts[option.opaqueIdentifier] = PollResultsOptionContext(queue: self.queue, account: account, pollId: poll.pollId, messageId: messageId, opaqueIdentifier: option.opaqueIdentifier, count: count) } self.state.set(combineLatest(queue: self.queue, self.optionContexts.map { (opaqueIdentifier, context) -> Signal<(Data, PollResultsOptionState), NoError> in diff --git a/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift index ff9250a2c3..ac9d1c1b2b 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift @@ -343,7 +343,7 @@ public func makeDefaultDarkPresentationTheme(extendingThemeReference: Presentati primaryColor: UIColor(rgb: 0xffffff), controlColor: UIColor(rgb: 0x4d4d4d) ), - mediaPlaceholderColor: UIColor(rgb: 0xffffff).withMultipliedBrightnessBy(0.1), + mediaPlaceholderColor: UIColor(rgb: 0xffffff).withMultipliedBrightnessBy(0.05), scrollIndicatorColor: UIColor(rgb: 0xffffff, alpha: 0.3), pageIndicatorInactiveColor: UIColor(white: 1.0, alpha: 0.3), inputClearButtonColor: UIColor(rgb: 0x8b9197), diff --git a/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift index a68b8d2109..fef8ffbbc6 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift @@ -644,7 +644,7 @@ public func makeDefaultDarkTintedPresentationTheme(extendingThemeReference: Pres let message = PresentationThemeChatMessage( incoming: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: mainBackgroundColor, highlightedFill: highlightedIncomingBubbleColor, stroke: mainBackgroundColor), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: mainBackgroundColor, highlightedFill: highlightedIncomingBubbleColor, stroke: mainBackgroundColor)), primaryTextColor: .white, secondaryTextColor: mainSecondaryTextColor.withAlphaComponent(0.5), linkTextColor: accentColor, linkHighlightColor: accentColor.withAlphaComponent(0.5), scamColor: UIColor(rgb: 0xff6767), textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: accentColor, accentControlColor: accentColor, accentControlDisabledColor: mainSecondaryTextColor.withAlphaComponent(0.5), mediaActiveControlColor: accentColor, mediaInactiveControlColor: accentColor.withAlphaComponent(0.5), mediaControlInnerBackgroundColor: mainBackgroundColor, pendingActivityColor: mainSecondaryTextColor.withAlphaComponent(0.5), fileTitleColor: accentColor, fileDescriptionColor: mainSecondaryTextColor.withAlphaComponent(0.5), fileDurationColor: mainSecondaryTextColor.withAlphaComponent(0.5), mediaPlaceholderColor: accentColor.withMultiplied(hue: 1.019, saturation: 0.585, brightness: 0.23), polls: PresentationThemeChatBubblePolls(radioButton: accentColor.withMultiplied(hue: 0.995, saturation: 0.317, brightness: 0.51), radioProgress: accentColor, highlight: accentColor.withAlphaComponent(0.12), separator: mainSeparatorColor, bar: accentColor, barIconForeground: .white, barPositive: UIColor(rgb: 0x00A700), barNegative: UIColor(rgb: 0xFE3824)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: additionalBackgroundColor.withAlphaComponent(0.5), withoutWallpaper: additionalBackgroundColor.withAlphaComponent(0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: buttonStrokeColor), actionButtonsTextColor: PresentationThemeVariableColor(color: .white), textSelectionColor: accentColor.withAlphaComponent(0.2), textSelectionKnobColor: accentColor), - outgoing: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: outgoingBubbleFillColor, gradientFill: outgoingBubbleFillGradientColor, highlightedFill: highlightedOutgoingBubbleColor, stroke: outgoingBubbleFillColor), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: outgoingBubbleFillColor, gradientFill: outgoingBubbleFillGradientColor, highlightedFill: highlightedOutgoingBubbleColor, stroke: outgoingBubbleFillColor)), primaryTextColor: outgoingPrimaryTextColor, secondaryTextColor: outgoingSecondaryTextColor, linkTextColor: outgoingLinkTextColor, linkHighlightColor: UIColor.white.withAlphaComponent(0.5), scamColor: outgoingScamColor, textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: outgoingPrimaryTextColor, accentControlColor: outgoingPrimaryTextColor, accentControlDisabledColor: mainSecondaryTextColor.withAlphaComponent(0.5), mediaActiveControlColor: outgoingPrimaryTextColor, mediaInactiveControlColor: outgoingSecondaryTextColor, mediaControlInnerBackgroundColor: outgoingBubbleFillColor, pendingActivityColor: outgoingSecondaryTextColor, fileTitleColor: outgoingPrimaryTextColor, fileDescriptionColor: outgoingSecondaryTextColor, fileDurationColor: outgoingSecondaryTextColor, mediaPlaceholderColor: accentColor.withMultiplied(hue: 1.019, saturation: 0.804, brightness: 0.51), polls: PresentationThemeChatBubblePolls(radioButton: outgoingPrimaryTextColor, radioProgress: accentColor.withMultiplied(hue: 0.99, saturation: 0.56, brightness: 1.0), highlight: accentColor.withMultiplied(hue: 0.99, saturation: 0.56, brightness: 1.0).withAlphaComponent(0.12), separator: mainSeparatorColor, bar: outgoingPrimaryTextColor, barIconForeground: .white, barPositive: outgoingPrimaryTextColor, barNegative: outgoingPrimaryTextColor), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: additionalBackgroundColor.withAlphaComponent(0.5), withoutWallpaper: additionalBackgroundColor.withAlphaComponent(0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: buttonStrokeColor), actionButtonsTextColor: PresentationThemeVariableColor(color: .white), textSelectionColor: UIColor.white.withAlphaComponent(0.2), textSelectionKnobColor: UIColor.white), + outgoing: PresentationThemePartedColors(bubble: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: outgoingBubbleFillColor, gradientFill: outgoingBubbleFillGradientColor, highlightedFill: highlightedOutgoingBubbleColor, stroke: outgoingBubbleFillColor), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: outgoingBubbleFillColor, gradientFill: outgoingBubbleFillGradientColor, highlightedFill: highlightedOutgoingBubbleColor, stroke: outgoingBubbleFillColor)), primaryTextColor: outgoingPrimaryTextColor, secondaryTextColor: outgoingSecondaryTextColor, linkTextColor: outgoingLinkTextColor, linkHighlightColor: UIColor.white.withAlphaComponent(0.5), scamColor: outgoingScamColor, textHighlightColor: UIColor(rgb: 0xf5c038), accentTextColor: outgoingPrimaryTextColor, accentControlColor: outgoingPrimaryTextColor, accentControlDisabledColor: mainSecondaryTextColor.withAlphaComponent(0.5), mediaActiveControlColor: outgoingPrimaryTextColor, mediaInactiveControlColor: outgoingSecondaryTextColor, mediaControlInnerBackgroundColor: outgoingBubbleFillColor, pendingActivityColor: outgoingSecondaryTextColor, fileTitleColor: outgoingPrimaryTextColor, fileDescriptionColor: outgoingSecondaryTextColor, fileDurationColor: outgoingSecondaryTextColor, mediaPlaceholderColor: accentColor.withMultiplied(hue: 1.019, saturation: 0.804, brightness: 0.51), polls: PresentationThemeChatBubblePolls(radioButton: outgoingPrimaryTextColor, radioProgress: accentColor.withMultiplied(hue: 0.99, saturation: 0.56, brightness: 1.0), highlight: accentColor.withMultiplied(hue: 0.99, saturation: 0.56, brightness: 1.0).withAlphaComponent(0.12), separator: mainSeparatorColor, bar: outgoingPrimaryTextColor, barIconForeground: .clear, barPositive: outgoingPrimaryTextColor, barNegative: outgoingPrimaryTextColor), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: additionalBackgroundColor.withAlphaComponent(0.5), withoutWallpaper: additionalBackgroundColor.withAlphaComponent(0.5)), actionButtonsStrokeColor: PresentationThemeVariableColor(color: buttonStrokeColor), actionButtonsTextColor: PresentationThemeVariableColor(color: .white), textSelectionColor: UIColor.white.withAlphaComponent(0.2), textSelectionKnobColor: UIColor.white), freeform: PresentationThemeBubbleColor(withWallpaper: PresentationThemeBubbleColorComponents(fill: mainBackgroundColor, highlightedFill: highlightedIncomingBubbleColor, stroke: mainBackgroundColor), withoutWallpaper: PresentationThemeBubbleColorComponents(fill: mainBackgroundColor, highlightedFill: highlightedIncomingBubbleColor, stroke: mainBackgroundColor)), infoPrimaryTextColor: UIColor(rgb: 0xffffff), infoLinkTextColor: accentColor, diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index acc9ef606f..79967a4123 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -1550,12 +1550,20 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G strongSelf.chatDisplayNode.historyNode.forEachVisibleItemNode { itemNode in if !found, let itemNode = itemNode as? ChatMessageBubbleItemNode, itemNode.item?.message.id == id { found = true + if strongSelf.selectPollOptionFeedback == nil { + strongSelf.selectPollOptionFeedback = HapticFeedback() + } + strongSelf.selectPollOptionFeedback?.error() itemNode.animateQuizInvalidOptionSelected() } } return; } if false { + if strongSelf.selectPollOptionFeedback == nil { + strongSelf.selectPollOptionFeedback = HapticFeedback() + } + strongSelf.selectPollOptionFeedback?.success() strongSelf.chatDisplayNode.animateQuizCorrectOptionSelected() return; } @@ -1582,18 +1590,31 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G switch resultPoll.kind { case .poll: - break + if strongSelf.selectPollOptionFeedback == nil { + strongSelf.selectPollOptionFeedback = HapticFeedback() + } + strongSelf.selectPollOptionFeedback?.success() case .quiz: if let voters = resultPoll.results.voters { for voter in voters { if voter.selected { if voter.isCorrect { + if strongSelf.selectPollOptionFeedback == nil { + strongSelf.selectPollOptionFeedback = HapticFeedback() + } + strongSelf.selectPollOptionFeedback?.success() + strongSelf.chatDisplayNode.animateQuizCorrectOptionSelected() } else { var found = false strongSelf.chatDisplayNode.historyNode.forEachVisibleItemNode { itemNode in if !found, let itemNode = itemNode as? ChatMessageBubbleItemNode, itemNode.item?.message.id == id { found = true + if strongSelf.selectPollOptionFeedback == nil { + strongSelf.selectPollOptionFeedback = HapticFeedback() + } + strongSelf.selectPollOptionFeedback?.error() + itemNode.animateQuizInvalidOptionSelected() } } @@ -1617,10 +1638,6 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if controllerInteraction.pollActionState.pollMessageIdsInProgress.removeValue(forKey: id) != nil { strongSelf.chatDisplayNode.historyNode.requestMessageUpdate(id) } - if strongSelf.selectPollOptionFeedback == nil { - strongSelf.selectPollOptionFeedback = HapticFeedback() - } - strongSelf.selectPollOptionFeedback?.success() }), forKey: id) } }, requestOpenMessagePollResults: { [weak self] messageId, pollId in diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index be7e8bfb4a..908242499f 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -1260,9 +1260,18 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } var hasResults = false - if let totalVoters = poll.results.totalVoters, totalVoters != 0 { - if let _ = poll.results.voters { - hasResults = true + if poll.isClosed { + hasResults = true + } else { + if let totalVoters = poll.results.totalVoters, totalVoters != 0 { + if let voters = poll.results.voters { + for voter in voters { + if voter.selected { + hasResults = true + break + } + } + } } } From 14f9d04a36a21aeaba31301165baa9460e0d360b Mon Sep 17 00:00:00 2001 From: Ali <> Date: Mon, 13 Jan 2020 02:20:40 +0400 Subject: [PATCH 13/63] Attempt to fix ItemListMultilineInputItem glitch --- .../Sources/Items/ItemListMultilineInputItem.swift | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/submodules/ItemListUI/Sources/Items/ItemListMultilineInputItem.swift b/submodules/ItemListUI/Sources/Items/ItemListMultilineInputItem.swift index b16081b935..8b26cbd59a 100644 --- a/submodules/ItemListUI/Sources/Items/ItemListMultilineInputItem.swift +++ b/submodules/ItemListUI/Sources/Items/ItemListMultilineInputItem.swift @@ -325,8 +325,6 @@ public class ItemListMultilineInputItemNode: ListViewItemNode, ASEditableTextNod strongSelf.maskNode.image = hasCorners ? PresentationResourcesItemList.cornersImage(item.presentationData.theme, top: hasTopCorners, bottom: hasBottomCorners) : nil - strongSelf.backgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: params.width, height: contentSize.height + min(insets.top, separatorHeight) + min(insets.bottom, separatorHeight))) - strongSelf.maskNode.frame = strongSelf.backgroundNode.frame.insetBy(dx: params.leftInset, dy: 0.0) strongSelf.topStripeNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: layoutSize.width, height: separatorHeight)) strongSelf.bottomStripeNode.frame = CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height), size: CGSize(width: layoutSize.width - bottomStripeInset, height: separatorHeight)) @@ -336,7 +334,11 @@ public class ItemListMultilineInputItemNode: ListViewItemNode, ASEditableTextNod strongSelf.textNode.keyboardAppearance = item.presentationData.theme.rootController.keyboardColor.keyboardAppearance - strongSelf.textClippingNode.frame = CGRect(origin: CGPoint(x: leftInset, y: textTopInset), size: CGSize(width: params.width - leftInset - params.rightInset, height: textLayout.size.height)) + if strongSelf.animationForKey("apparentHeight") == nil { + strongSelf.backgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: params.width, height: contentSize.height + min(insets.top, separatorHeight) + min(insets.bottom, separatorHeight))) + strongSelf.maskNode.frame = strongSelf.backgroundNode.frame.insetBy(dx: params.leftInset, dy: 0.0) + strongSelf.textClippingNode.frame = CGRect(origin: CGPoint(x: leftInset, y: textTopInset), size: CGSize(width: params.width - leftInset - params.rightInset, height: textLayout.size.height)) + } strongSelf.textNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: params.width - leftInset - 16.0 - rightInset, height: textLayout.size.height + 1.0)) let _ = limitTextApply() @@ -394,6 +396,7 @@ public class ItemListMultilineInputItemNode: ListViewItemNode, ASEditableTextNod let textBottomInset: CGFloat = 11.0 self.backgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: params.width, height: contentSize.height + min(insets.top, separatorHeight) + min(insets.bottom, separatorHeight))) + self.maskNode.frame = self.backgroundNode.frame.insetBy(dx: params.leftInset, dy: 0.0) self.bottomStripeNode.frame = CGRect(origin: CGPoint(x: self.bottomStripeNode.frame.minX, y: contentSize.height), size: CGSize(width: self.bottomStripeNode.frame.size.width, height: separatorHeight)) self.textClippingNode.frame = CGRect(origin: CGPoint(x: leftInset, y: textTopInset), size: CGSize(width: max(0.0, params.width - leftInset - params.rightInset), height: max(0.0, contentSize.height - textTopInset - textBottomInset))) From a85da959434d702268bc88080ad2cb8e85d9b359 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 14 Jan 2020 13:17:34 +0300 Subject: [PATCH 14/63] Various UI fixes --- .../Display/Display/TextAlertController.swift | 4 +- .../Display/Display/TooltipController.swift | 1 + .../Display/TooltipControllerNode.swift | 4 + .../Items/UniversalVideoGalleryItem.swift | 2 +- .../IntentsSettingsController.swift | 2 +- .../Sources/TelegramIntents.swift | 6 +- .../ChatMessageInstantVideoItemNode.swift | 164 ++++++++++-------- .../HashtagChatInputContextPanelNode.swift | 2 + .../MentionChatInputContextPanelNode.swift | 14 +- .../MentionChatInputPanelItem.swift | 6 +- .../TelegramUI/TelegramRootController.swift | 13 ++ .../Sources/IntentsSettings.swift | 4 +- .../Sources/WebEmbedVideoContent.swift | 2 + .../Sources/WallpaperResources.swift | 5 +- 14 files changed, 139 insertions(+), 90 deletions(-) diff --git a/submodules/Display/Display/TextAlertController.swift b/submodules/Display/Display/TextAlertController.swift index c6369e1d7b..d1d4d3f99e 100644 --- a/submodules/Display/Display/TextAlertController.swift +++ b/submodules/Display/Display/TextAlertController.swift @@ -360,8 +360,8 @@ public func standardTextAlertController(theme: AlertControllerTheme, title: Stri var dismissImpl: (() -> Void)? let attributedText: NSAttributedString if parseMarkdown { - let font = title == nil ? Font.semibold(theme.baseFontSize) : Font.regular(floor(theme.baseFontSize * 13.0 / 17.0)) - let boldFont = title == nil ? Font.bold(theme.baseFontSize) : Font.semibold(floor(theme.baseFontSize * 13.0 / 17.0)) + let font = title == nil ? Font.semibold(theme.baseFontSize * 13.0 / 17.0) : Font.regular(floor(theme.baseFontSize * 13.0 / 17.0)) + let boldFont = title == nil ? Font.bold(theme.baseFontSize * 13.0 / 17.0) : Font.semibold(floor(theme.baseFontSize * 13.0 / 17.0)) let body = MarkdownAttributeSet(font: font, textColor: theme.primaryColor) let bold = MarkdownAttributeSet(font: boldFont, textColor: theme.primaryColor) attributedText = parseMarkdownIntoAttributedString(text, attributes: MarkdownAttributes(body: body, bold: bold, link: body, linkAttribute: { _ in nil }), textAlignment: .center) diff --git a/submodules/Display/Display/TooltipController.swift b/submodules/Display/Display/TooltipController.swift index f1c103fbcb..34c320883d 100644 --- a/submodules/Display/Display/TooltipController.swift +++ b/submodules/Display/Display/TooltipController.swift @@ -185,6 +185,7 @@ open class TooltipController: ViewController, StandalonePresentableController { open func dismissImmediately() { self.dismissed?(false) + self.controllerNode.hide() self.presentingViewController?.dismiss(animated: false) } } diff --git a/submodules/Display/Display/TooltipControllerNode.swift b/submodules/Display/Display/TooltipControllerNode.swift index 62b790ca8f..ba0650c6ee 100644 --- a/submodules/Display/Display/TooltipControllerNode.swift +++ b/submodules/Display/Display/TooltipControllerNode.swift @@ -126,6 +126,10 @@ final class TooltipControllerNode: ASDisplayNode { }) } + func hide() { + self.containerNode.alpha = 0.0 + } + override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? { if let event = event { var eventIsPresses = false diff --git a/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift b/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift index 75fafb1291..183bce8efd 100644 --- a/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift +++ b/submodules/GalleryUI/Sources/Items/UniversalVideoGalleryItem.swift @@ -238,7 +238,7 @@ final class UniversalVideoGalleryItemNode: ZoomableContentGalleryItemNode { } self.statusButtonNode.addSubnode(self.statusNode) - self.statusButtonNode.addTarget(self, action: #selector(statusButtonPressed), forControlEvents: .touchUpInside) + self.statusButtonNode.addTarget(self, action: #selector(self.statusButtonPressed), forControlEvents: .touchUpInside) self.addSubnode(self.statusButtonNode) diff --git a/submodules/SettingsUI/Sources/Data and Storage/IntentsSettingsController.swift b/submodules/SettingsUI/Sources/Data and Storage/IntentsSettingsController.swift index 7c36f94b57..42a06eeccb 100644 --- a/submodules/SettingsUI/Sources/Data and Storage/IntentsSettingsController.swift +++ b/submodules/SettingsUI/Sources/Data and Storage/IntentsSettingsController.swift @@ -187,7 +187,7 @@ private enum IntentsSettingsControllerEntry: ItemListNodeEntry { case let .accountHeader(theme, text): return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section) case let .account(theme, peer, selected, _): - return ItemListPeerItem(presentationData: presentationData, dateTimeFormat: PresentationDateTimeFormat(timeFormat: .regular, dateFormat: .dayFirst, dateSeparator: ".", decimalSeparator: ".", groupingSeparator: ""), nameDisplayOrder: .firstLast, context: arguments.context, peer: peer, height: .generic, aliasHandling: .standard, nameStyle: .plain, presence: nil, text: .none, label: .none, editing: ItemListPeerItemEditing(editable: true, editing: false, revealed: false), revealOptions: nil, switchValue: ItemListPeerItemSwitch(value: selected, style: .check), enabled: true, selectable: true, sectionId: self.section, action: { + return ItemListPeerItem(presentationData: presentationData, dateTimeFormat: PresentationDateTimeFormat(timeFormat: .regular, dateFormat: .dayFirst, dateSeparator: ".", decimalSeparator: ".", groupingSeparator: ""), nameDisplayOrder: .firstLast, context: arguments.context.sharedContext.makeTempAccountContext(account: arguments.context.account), peer: peer, height: .generic, aliasHandling: .standard, nameStyle: .plain, presence: nil, text: .none, label: .none, editing: ItemListPeerItemEditing(editable: true, editing: false, revealed: false), revealOptions: nil, switchValue: ItemListPeerItemSwitch(value: selected, style: .check), enabled: true, selectable: true, sectionId: self.section, action: { arguments.updateSettings { $0.withUpdatedAccount(peer.id) } }, setPeerIdWithRevealedOptions: { _, _ in}, removePeer: { _ in }) return ItemListTextItem(presentationData: presentationData, text: .plain(""), sectionId: self.section) diff --git a/submodules/TelegramIntents/Sources/TelegramIntents.swift b/submodules/TelegramIntents/Sources/TelegramIntents.swift index 2215785209..3cf79eb5d8 100644 --- a/submodules/TelegramIntents/Sources/TelegramIntents.swift +++ b/submodules/TelegramIntents/Sources/TelegramIntents.swift @@ -151,7 +151,7 @@ public func donateSendMessageIntent(account: Account, sharedContext: SharedAccou let presentationData = sharedContext.currentPresentationData.with { $0 } for (peer, subject, avatarImage) in peers { - let recipientHandle = INPersonHandle(value: "tg\(peer.id.id)", type: .unknown) + let recipientHandle = INPersonHandle(value: "tg\(peer.id.toInt64())", type: .unknown) let displayTitle: String var nameComponents = PersonNameComponents() @@ -173,9 +173,9 @@ public func donateSendMessageIntent(account: Account, sharedContext: SharedAccou nameComponents.givenName = displayTitle } - let recipient = INPerson(personHandle: recipientHandle, nameComponents: nameComponents, displayName: displayTitle, image: nil, contactIdentifier: nil, customIdentifier: "tg\(peer.id.id)") + let recipient = INPerson(personHandle: recipientHandle, nameComponents: nameComponents, displayName: displayTitle, image: nil, contactIdentifier: nil, customIdentifier: "tg\(peer.id.toInt64())") - let intent = INSendMessageIntent(recipients: [recipient], content: nil, speakableGroupName: INSpeakableString(spokenPhrase: displayTitle), conversationIdentifier: "tg\(peer.id.id)", serviceName: nil, sender: nil) + let intent = INSendMessageIntent(recipients: [recipient], content: nil, speakableGroupName: INSpeakableString(spokenPhrase: displayTitle), conversationIdentifier: "tg\(peer.id.toInt64())", serviceName: nil, sender: nil) if let avatarImage = avatarImage, let avatarImageData = avatarImage.jpegData(compressionQuality: 0.8) { intent.setImage(INImage(imageData: avatarImageData), forParameterNamed: \.groupName) } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift index 77dbaa3cbe..0555e93e28 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift @@ -81,6 +81,14 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { } return .waitForSingleTap } + recognizer.longTap = { [weak self] point, recognizer in + guard let strongSelf = self else { + return + } + if strongSelf.gestureRecognized(gesture: .longTap, location: point, recognizer: recognizer) { + recognizer.cancel() + } + } self.view.addGestureRecognizer(recognizer) let replyRecognizer = ChatSwipeToReplyRecognizer(target: self, action: #selector(self.swipeToReplyGesture(_:))) @@ -580,87 +588,93 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { switch recognizer.state { case .ended: if let (gesture, location) = recognizer.lastRecognizedGestureAndLocation { - switch gesture { - case .tap: - if let avatarNode = self.accessoryItemNode as? ChatMessageAvatarAccessoryItemNode, avatarNode.frame.contains(location) { - if let item = self.item, let author = item.content.firstMessage.author { - var openPeerId = item.effectiveAuthorId ?? author.id - var navigate: ChatControllerInteractionNavigateToPeer - - if item.content.firstMessage.id.peerId == item.context.account.peerId { - navigate = .chat(textInputState: nil, subject: nil) - } else { - navigate = .info - } - - for attribute in item.content.firstMessage.attributes { - if let attribute = attribute as? SourceReferenceMessageAttribute { - openPeerId = attribute.messageId.peerId - navigate = .chat(textInputState: nil, subject: .message(attribute.messageId)) - } - } - - if item.effectiveAuthorId?.namespace == Namespaces.Peer.Empty { - item.controllerInteraction.displayMessageTooltip(item.content.firstMessage.id, item.presentationData.strings.Conversation_ForwardAuthorHiddenTooltip, self, avatarNode.frame) - } else { - if let channel = item.content.firstMessage.forwardInfo?.author as? TelegramChannel, channel.username == nil { - if case .member = channel.participationStatus { - } else { - item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, self, avatarNode.frame) - return - } - } - item.controllerInteraction.openPeer(openPeerId, navigate, item.message) - } - } - return - } - - if let replyInfoNode = self.replyInfoNode, replyInfoNode.frame.contains(location) { - if let item = self.item { - for attribute in item.message.attributes { - if let attribute = attribute as? ReplyMessageAttribute { - item.controllerInteraction.navigateToMessage(item.message.id, attribute.messageId) - return - } - } - } - } - - if let forwardInfoNode = self.forwardInfoNode, forwardInfoNode.frame.contains(location) { - if let item = self.item, let forwardInfo = item.message.forwardInfo { - if let sourceMessageId = forwardInfo.sourceMessageId { - if let channel = forwardInfo.author as? TelegramChannel, channel.username == nil { - if case .member = channel.participationStatus { - } else { - item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, forwardInfoNode, nil) - return - } - } - item.controllerInteraction.navigateToMessage(item.message.id, sourceMessageId) - } else if let id = forwardInfo.source?.id ?? forwardInfo.author?.id { - item.controllerInteraction.openPeer(id, .chat(textInputState: nil, subject: nil), nil) - } else if let _ = forwardInfo.authorSignature { - item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_ForwardAuthorHiddenTooltip, forwardInfoNode, nil) - } - return - } - } - - self.item?.controllerInteraction.clickThroughMessage() - case .longTap, .doubleTap: - if let item = self.item, let videoContentNode = self.interactiveVideoNode.videoContentNode(at: self.view.convert(location, to: self.interactiveVideoNode.view)) { - item.controllerInteraction.openMessageContextMenu(item.message, false, videoContentNode, videoContentNode.bounds, nil) - } - case .hold: - break - } + let _ = self.gestureRecognized(gesture: gesture, location: location, recognizer: nil) } default: break } } + private func gestureRecognized(gesture: TapLongTapOrDoubleTapGesture, location: CGPoint, recognizer: TapLongTapOrDoubleTapGestureRecognizer?) -> Bool { + switch gesture { + case .tap: + if let avatarNode = self.accessoryItemNode as? ChatMessageAvatarAccessoryItemNode, avatarNode.frame.contains(location) { + if let item = self.item, let author = item.content.firstMessage.author { + var openPeerId = item.effectiveAuthorId ?? author.id + var navigate: ChatControllerInteractionNavigateToPeer + + if item.content.firstMessage.id.peerId == item.context.account.peerId { + navigate = .chat(textInputState: nil, subject: nil) + } else { + navigate = .info + } + + for attribute in item.content.firstMessage.attributes { + if let attribute = attribute as? SourceReferenceMessageAttribute { + openPeerId = attribute.messageId.peerId + navigate = .chat(textInputState: nil, subject: .message(attribute.messageId)) + } + } + + if item.effectiveAuthorId?.namespace == Namespaces.Peer.Empty { + item.controllerInteraction.displayMessageTooltip(item.content.firstMessage.id, item.presentationData.strings.Conversation_ForwardAuthorHiddenTooltip, self, avatarNode.frame) + } else { + if let channel = item.content.firstMessage.forwardInfo?.author as? TelegramChannel, channel.username == nil { + if case .member = channel.participationStatus { + } else { + item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, self, avatarNode.frame) + return true + } + } + item.controllerInteraction.openPeer(openPeerId, navigate, item.message) + } + } + return true + } + + if let replyInfoNode = self.replyInfoNode, replyInfoNode.frame.contains(location) { + if let item = self.item { + for attribute in item.message.attributes { + if let attribute = attribute as? ReplyMessageAttribute { + item.controllerInteraction.navigateToMessage(item.message.id, attribute.messageId) + return true + } + } + } + } + + if let forwardInfoNode = self.forwardInfoNode, forwardInfoNode.frame.contains(location) { + if let item = self.item, let forwardInfo = item.message.forwardInfo { + if let sourceMessageId = forwardInfo.sourceMessageId { + if let channel = forwardInfo.author as? TelegramChannel, channel.username == nil { + if case .member = channel.participationStatus { + } else { + item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, forwardInfoNode, nil) + return true + } + } + item.controllerInteraction.navigateToMessage(item.message.id, sourceMessageId) + } else if let id = forwardInfo.source?.id ?? forwardInfo.author?.id { + item.controllerInteraction.openPeer(id, .chat(textInputState: nil, subject: nil), nil) + } else if let _ = forwardInfo.authorSignature { + item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_ForwardAuthorHiddenTooltip, forwardInfoNode, nil) + } + return true + } + } + + self.item?.controllerInteraction.clickThroughMessage() + case .longTap, .doubleTap: + if let item = self.item, let videoContentNode = self.interactiveVideoNode.videoContentNode(at: self.view.convert(location, to: self.interactiveVideoNode.view)) { + item.controllerInteraction.openMessageContextMenu(item.message, false, videoContentNode, videoContentNode.bounds, recognizer) + return false + } + case .hold: + break + } + return true + } + @objc func shareButtonPressed() { if let item = self.item { if item.content.firstMessage.id.peerId == item.context.account.peerId { diff --git a/submodules/TelegramUI/TelegramUI/HashtagChatInputContextPanelNode.swift b/submodules/TelegramUI/TelegramUI/HashtagChatInputContextPanelNode.swift index ba6669116c..13a84953cb 100644 --- a/submodules/TelegramUI/TelegramUI/HashtagChatInputContextPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/HashtagChatInputContextPanelNode.swift @@ -109,6 +109,7 @@ final class HashtagChatInputContextPanelNode: ChatInputContextPanelNode { let transition = preparedTransition(from: from ?? [], to: to, account: self.context.account, presentationData: presentationData, setHashtagRevealed: { [weak self] text in if let strongSelf = self { strongSelf.revealedHashtag = text + strongSelf.updateResults(strongSelf.currentResults) } }, hashtagSelected: { [weak self] text in if let strongSelf = self, let interfaceInteraction = strongSelf.interfaceInteraction { @@ -138,6 +139,7 @@ final class HashtagChatInputContextPanelNode: ChatInputContextPanelNode { }, removeRequested: { [weak self] text in if let strongSelf = self { let _ = removeRecentlyUsedHashtag(postbox: strongSelf.context.account.postbox, string: text).start() + strongSelf.revealedHashtag = nil } }) self.currentEntries = to diff --git a/submodules/TelegramUI/TelegramUI/MentionChatInputContextPanelNode.swift b/submodules/TelegramUI/TelegramUI/MentionChatInputContextPanelNode.swift index 4f2c0ab346..284e8bd01c 100644 --- a/submodules/TelegramUI/TelegramUI/MentionChatInputContextPanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/MentionChatInputContextPanelNode.swift @@ -62,6 +62,7 @@ final class MentionChatInputContextPanelNode: ChatInputContextPanelNode { private let listView: ListView private var currentEntries: [MentionChatInputContextPanelEntry]? + private var currentResults: [Peer] = [] private var revealedPeerId: PeerId? private var enqueuedTransitions: [(CommandChatInputContextPanelTransition, Bool)] = [] @@ -90,6 +91,8 @@ final class MentionChatInputContextPanelNode: ChatInputContextPanelNode { } func updateResults(_ results: [Peer]) { + self.currentResults = results + var entries: [MentionChatInputContextPanelEntry] = [] var index = 0 var peerIdSet = Set() @@ -99,7 +102,7 @@ final class MentionChatInputContextPanelNode: ChatInputContextPanelNode { continue } peerIdSet.insert(peerId) - entries.append(MentionChatInputContextPanelEntry(index: index, peer: peer, revealed: revealedPeerId == peer.id)) + entries.append(MentionChatInputContextPanelEntry(index: index, peer: peer, revealed: self.revealedPeerId == peer.id)) index += 1 } self.updateToEntries(entries: entries, forceUpdate: false) @@ -109,7 +112,10 @@ final class MentionChatInputContextPanelNode: ChatInputContextPanelNode { let firstTime = self.currentEntries == nil let presentationData = self.context.sharedContext.currentPresentationData.with { $0 } let transition = preparedTransition(from: self.currentEntries ?? [], to: entries, context: self.context, presentationData: presentationData, inverted: self.mode == .search, forceUpdate: forceUpdate, setPeerIdRevealed: { [weak self] peerId in - + if let strongSelf = self { + strongSelf.revealedPeerId = peerId + strongSelf.updateResults(strongSelf.currentResults) + } }, peerSelected: { [weak self] peer in if let strongSelf = self, let interfaceInteraction = strongSelf.interfaceInteraction { switch strongSelf.mode { @@ -157,6 +163,10 @@ final class MentionChatInputContextPanelNode: ChatInputContextPanelNode { }, removeRequested: { [weak self] peerId in if let strongSelf = self { let _ = removeRecentlyUsedInlineBot(account: strongSelf.context.account, peerId: peerId).start() + + strongSelf.revealedPeerId = nil + strongSelf.currentResults = strongSelf.currentResults.filter { $0.id != peerId } + strongSelf.updateResults(strongSelf.currentResults) } }) self.currentEntries = entries diff --git a/submodules/TelegramUI/TelegramUI/MentionChatInputPanelItem.swift b/submodules/TelegramUI/TelegramUI/MentionChatInputPanelItem.swift index d4d2c83949..4a6b0b748b 100644 --- a/submodules/TelegramUI/TelegramUI/MentionChatInputPanelItem.swift +++ b/submodules/TelegramUI/TelegramUI/MentionChatInputPanelItem.swift @@ -83,7 +83,11 @@ final class MentionChatInputPanelItem: ListViewItem { } func selected(listView: ListView) { - self.peerSelected(self.peer) + if self.revealed { + self.setPeerIdRevealed(nil) + } else { + self.peerSelected(self.peer) + } } } diff --git a/submodules/TelegramUI/TelegramUI/TelegramRootController.swift b/submodules/TelegramUI/TelegramUI/TelegramRootController.swift index 1e93467e36..9e44967397 100644 --- a/submodules/TelegramUI/TelegramUI/TelegramRootController.swift +++ b/submodules/TelegramUI/TelegramUI/TelegramRootController.swift @@ -120,6 +120,19 @@ public final class TelegramRootController: NavigationController { self.accountSettingsController = accountSettingsController self.rootTabController = tabBarController self.pushViewController(tabBarController, animated: false) + +// let _ = (archivedStickerPacks(account: self.context.account, namespace: .stickers) +// |> deliverOnMainQueue).start(next: { [weak self] stickerPacks in +// var packs: [(StickerPackCollectionInfo, StickerPackItem?)] = [] +// for pack in stickerPacks { +// packs.append((pack.info, pack.topItems.first)) +// } +// +// if let strongSelf = self { +// let controller = archivedStickersNoticeController(context: strongSelf.context, archivedStickerPacks: packs) +// strongSelf.chatListController?.present(controller, in: .window(.root)) +// } +// }) } public func updateRootControllers(showCallsTab: Bool) { diff --git a/submodules/TelegramUIPreferences/Sources/IntentsSettings.swift b/submodules/TelegramUIPreferences/Sources/IntentsSettings.swift index b7ba32db2b..77ba26eea7 100644 --- a/submodules/TelegramUIPreferences/Sources/IntentsSettings.swift +++ b/submodules/TelegramUIPreferences/Sources/IntentsSettings.swift @@ -27,7 +27,7 @@ public struct IntentsSettings: PreferencesEntry, Equatable { } public init(decoder: PostboxDecoder) { - self.initiallyReset = decoder.decodeBoolForKey("initiallyReset_v1", orElse: false) + self.initiallyReset = decoder.decodeBoolForKey("initiallyReset_v2", orElse: false) self.account = decoder.decodeOptionalInt64ForKey("account").flatMap { PeerId($0) } self.contacts = decoder.decodeBoolForKey("contacts", orElse: true) self.privateChats = decoder.decodeBoolForKey("privateChats", orElse: false) @@ -37,7 +37,7 @@ public struct IntentsSettings: PreferencesEntry, Equatable { } public func encode(_ encoder: PostboxEncoder) { - encoder.encodeBool(self.initiallyReset, forKey: "initiallyReset_v1") + encoder.encodeBool(self.initiallyReset, forKey: "initiallyReset_v2") if let account = self.account { encoder.encodeInt64(account.toInt64(), forKey: "account") } else { diff --git a/submodules/TelegramUniversalVideoContent/Sources/WebEmbedVideoContent.swift b/submodules/TelegramUniversalVideoContent/Sources/WebEmbedVideoContent.swift index bd59af1e90..25d71fd5f1 100644 --- a/submodules/TelegramUniversalVideoContent/Sources/WebEmbedVideoContent.swift +++ b/submodules/TelegramUniversalVideoContent/Sources/WebEmbedVideoContent.swift @@ -151,6 +151,8 @@ private final class WebEmbedVideoContentNode: ASDisplayNode, UniversalVideoConte func playOnceWithSound(playAndRecord: Bool, seek: MediaPlayerSeek, actionAtEnd: MediaPlayerPlayOnceWithSoundActionAtEnd) { if case let .timecode(time) = seek { self.playerNode.seek(timestamp: time) + } else { + self.playerNode.play() } } diff --git a/submodules/WallpaperResources/Sources/WallpaperResources.swift b/submodules/WallpaperResources/Sources/WallpaperResources.swift index ad2d8bb588..fda30d573b 100644 --- a/submodules/WallpaperResources/Sources/WallpaperResources.swift +++ b/submodules/WallpaperResources/Sources/WallpaperResources.swift @@ -779,7 +779,7 @@ public func drawThemeImage(context c: CGContext, theme: PresentationTheme, wallp c.fill(CGRect(origin: CGPoint(x: 0.0, y: drawingRect.height - 42.0), size: CGSize(width: drawingRect.width, height: 42.0))) c.setFillColor(theme.rootController.navigationBar.separatorColor.cgColor) - c.fill(CGRect(origin: CGPoint(x: 1.0, y: drawingRect.height - 43.0), size: CGSize(width: drawingRect.width - 2.0, height: 1.0))) + c.fill(CGRect(origin: CGPoint(x: 1.0, y: drawingRect.height - 42.0 - UIScreenPixel), size: CGSize(width: drawingRect.width - 2.0, height: UIScreenPixel))) c.setFillColor(theme.rootController.navigationBar.secondaryTextColor.cgColor) c.fillEllipse(in: CGRect(origin: CGPoint(x: drawingRect.width - 28.0 - 7.0, y: drawingRect.height - 7.0 - 28.0 - UIScreenPixel), size: CGSize(width: 28.0, height: 28.0))) @@ -796,7 +796,7 @@ public func drawThemeImage(context c: CGContext, theme: PresentationTheme, wallp c.fill(CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: drawingRect.width, height: 42.0))) c.setFillColor(theme.chat.inputPanel.panelSeparatorColor.cgColor) - c.fill(CGRect(origin: CGPoint(x: 1.0, y: 42.0), size: CGSize(width: drawingRect.width - 2.0, height: 1.0))) + c.fill(CGRect(origin: CGPoint(x: 1.0, y: 42.0), size: CGSize(width: drawingRect.width - 2.0, height: UIScreenPixel))) } c.setFillColor(theme.chat.inputPanel.inputBackgroundColor.cgColor) @@ -1323,7 +1323,6 @@ public func themeIconImage(account: Account, accountManager: AccountManager, the c.translateBy(x: drawingRect.width / 2.0, y: drawingRect.height / 2.0) c.scaleBy(x: 1.0, y: -1.0) c.translateBy(x: -drawingRect.width / 2.0, y: -drawingRect.height / 2.0) - c.draw(incoming!.cgImage!, in: CGRect(x: 9.0, y: 34.0, width: 57.0, height: 16.0)) c.translateBy(x: drawingRect.width / 2.0, y: drawingRect.height / 2.0) From 473249a60d7abdf6768a921d4fde5bedbce6d5b7 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 14 Jan 2020 16:07:47 +0400 Subject: [PATCH 15/63] Cleanup --- submodules/Postbox/Sources/MessageHistoryFailedTable.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/submodules/Postbox/Sources/MessageHistoryFailedTable.swift b/submodules/Postbox/Sources/MessageHistoryFailedTable.swift index 057e785ba4..eb9c7fa676 100644 --- a/submodules/Postbox/Sources/MessageHistoryFailedTable.swift +++ b/submodules/Postbox/Sources/MessageHistoryFailedTable.swift @@ -42,7 +42,7 @@ final class MessageHistoryFailedTable: Table { self.updatedMessageIds.remove(id) } - func get(peerId:PeerId) -> [MessageId] { + func get(peerId: PeerId) -> [MessageId] { var ids:[MessageId] = [] self.valueBox.range(self.table, start: self.lowerBound(peerId: peerId), end: self.upperBound(peerId: peerId), keys: { key in @@ -72,4 +72,3 @@ final class MessageHistoryFailedTable: Table { self.updatedPeerIds.removeAll() } } - From d775a5f178e0365b582d561372e981050ed8eee7 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 14 Jan 2020 16:08:38 +0400 Subject: [PATCH 16/63] Fix semantic progress transitions --- .../SemanticStatusNode/Sources/SemanticStatusNode.swift | 8 ++++---- .../TelegramUI/ChatMessageInteractiveFileNode.swift | 4 ++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/submodules/SemanticStatusNode/Sources/SemanticStatusNode.swift b/submodules/SemanticStatusNode/Sources/SemanticStatusNode.swift index 6f7f587be3..483e62c5a5 100644 --- a/submodules/SemanticStatusNode/Sources/SemanticStatusNode.swift +++ b/submodules/SemanticStatusNode/Sources/SemanticStatusNode.swift @@ -334,14 +334,14 @@ private final class SemanticStatusNodeProgressContext: SemanticStatusNodeStateCo let resolvedValue: CGFloat? if let value = self.value { if let transition = self.transition { - transition.valueAt(timestamp: timestamp, actualValue: value) + resolvedValue = transition.valueAt(timestamp: timestamp, actualValue: value) } else { resolvedValue = value } } else { resolvedValue = nil } - return DrawingState(transitionFraction: transitionFraction, value: self.value, displayCancel: self.displayCancel, timestamp: timestamp) + return DrawingState(transitionFraction: transitionFraction, value: resolvedValue, displayCancel: self.displayCancel, timestamp: timestamp) } func updateValue(value: CGFloat?) { @@ -351,7 +351,7 @@ private final class SemanticStatusNodeProgressContext: SemanticStatusNodeStateCo let timestamp = CACurrentMediaTime() if let value = value, let previousValue = previousValue { if let transition = self.transition { - self.transition = SemanticStatusNodeProgressTransition(beginTime: timestamp, initialValue: transition.valueAt(timestamp: timestamp, actualValue: value)) + self.transition = SemanticStatusNodeProgressTransition(beginTime: timestamp, initialValue: transition.valueAt(timestamp: timestamp, actualValue: previousValue)) } else { self.transition = SemanticStatusNodeProgressTransition(beginTime: timestamp, initialValue: previousValue) } @@ -388,7 +388,7 @@ private extension SemanticStatusNodeState { } case let .progress(value, cancelEnabled): if let current = current as? SemanticStatusNodeProgressContext, current.displayCancel == cancelEnabled { - current.value = value + current.updateValue(value: value) return current } else { return SemanticStatusNodeProgressContext(value: value, displayCancel: cancelEnabled) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveFileNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveFileNode.swift index 758b2a4aa4..1a3e3d599b 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveFileNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveFileNode.swift @@ -831,6 +831,10 @@ final class ChatMessageInteractiveFileNode: ASDisplayNode { if let statusNode = self.statusNode { if state == .none { self.statusNode = nil + if animated { + statusNode.layer.animateScale(from: 1.0, to: 0.1, duration: 0.2, removeOnCompletion: false) + statusNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false) + } } statusNode.transitionToState(state, animated: animated, synchronous: presentationData.theme.theme.preview, completion: { [weak statusNode] in if state == .none { From 0fa6de6410445aa875f872029c081ddc5473a4d0 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 14 Jan 2020 16:08:48 +0400 Subject: [PATCH 17/63] Poll improvements --- Telegram-iOS/en.lproj/Localizable.strings | 4 + .../Sources/PeerSelectionController.swift | 6 +- .../Sources/ChatListSearchContainerNode.swift | 7 + .../Sources/Node/ChatListNode.swift | 34 +- .../Sources/ContactsPeerItem.swift | 13 +- .../Sources/HashtagSearchController.swift | 1 + .../Sources/ItemListPeerItem.swift | 5 +- .../Sources/ItemListController.swift | 74 + .../Postbox/Sources/ItemCacheTable.swift | 15 + submodules/Postbox/Sources/Postbox.swift | 9 + .../SettingsUI/Sources/DebugController.swift | 5 + .../TextSizeSelectionController.swift | 2 +- .../ThemeAccentColorControllerNode.swift | 2 +- .../Themes/ThemePreviewControllerNode.swift | 2 +- submodules/TelegramApi/Sources/Api0.swift | 5 +- submodules/TelegramApi/Sources/Api1.swift | 108 +- submodules/TelegramCore/Sources/Polls.swift | 14 +- .../DefaultDarkPresentationTheme.swift | 2 +- .../DefaultDarkTintedPresentationTheme.swift | 4 +- .../Sources/DefaultDayPresentationTheme.swift | 4 +- .../Sources/PresentationStrings.swift | 7683 +++++++++-------- .../Sources/PresentationThemeCodable.swift | 2 +- .../TelegramUI/ChatBotInfoItem.swift | 8 +- .../TelegramUI/ChatController.swift | 71 +- .../ChatControllerInteraction.swift | 5 +- .../TelegramUI/ChatControllerNode.swift | 6 +- .../ChatMessageActionItemNode.swift | 2 +- .../ChatMessageAttachedContentNode.swift | 2 +- .../TelegramUI/ChatMessageBackground.swift | 4 + .../ChatMessageBubbleBackdrop.swift | 4 + .../ChatMessageBubbleContentNode.swift | 2 +- .../ChatMessageBubbleItemNode.swift | 22 +- .../ChatMessageCallBubbleContentNode.swift | 2 +- .../ChatMessageContactBubbleContentNode.swift | 2 +- ...entLogPreviousDescriptionContentNode.swift | 2 +- ...ssageEventLogPreviousLinkContentNode.swift | 2 +- ...geEventLogPreviousMessageContentNode.swift | 4 +- .../ChatMessageGameBubbleContentNode.swift | 2 +- .../ChatMessageInvoiceBubbleContentNode.swift | 2 +- .../ChatMessageMapBubbleContentNode.swift | 2 +- .../ChatMessageMediaBubbleContentNode.swift | 2 +- .../ChatMessagePollBubbleContentNode.swift | 54 +- .../ChatMessageTextBubbleContentNode.swift | 2 +- ...tMessageUnsupportedBubbleContentNode.swift | 2 +- .../ChatMessageWebpageBubbleContentNode.swift | 4 +- .../ChatRecentActionsControllerNode.swift | 1 + .../ChatSearchResultsContollerNode.swift | 1 + .../TelegramUI/ComposeController.swift | 3 - .../TelegramUI/TelegramUI/ConfettiView.swift | 218 + .../TelegramUI/OpenChatMessage.swift | 1 + .../OverlayPlayerControllerNode.swift | 1 + .../PeerMediaCollectionController.swift | 1 + .../TelegramUI/PeerSelectionController.swift | 9 + .../PeerSelectionControllerNode.swift | 5 + .../TelegramUI/PollResultsController.swift | 82 +- .../Resources/PresentationStrings.mapping | Bin 143921 -> 144067 bytes .../TelegramUI/SharedAccountContext.swift | 1 + .../WalletUI/Resources/WalletStrings.mapping | Bin 8384 -> 8384 bytes .../WalletUI/Sources/WalletStrings.swift | 4 +- 59 files changed, 4583 insertions(+), 3953 deletions(-) create mode 100644 submodules/TelegramUI/TelegramUI/ConfettiView.swift diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index f3ac22b322..9dd93aa449 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -5274,3 +5274,7 @@ Any member of this group will be able to see messages in the channel."; "Conversation.StopQuiz" = "Stop Quiz"; "Conversation.StopQuizConfirmationTitle" = "If you stop this quiz now, nobody will be able to submit answers. This action cannot be undone."; "Conversation.StopQuizConfirmation" = "Stop Quiz"; + +"Forward.ErrorDisabledForChat" = "Sorry, you can't forward messages to this chat."; +"Forward.ErrorPublicPollDisabledInChannels" = "Sorry, you can't forward public poll to the channel."; +"Forward.ErrorPublicQuizDisabledInChannels" = "Sorry, you can't forward public quiz to the channel."; diff --git a/submodules/AccountContext/Sources/PeerSelectionController.swift b/submodules/AccountContext/Sources/PeerSelectionController.swift index fee175e265..5037f67c93 100644 --- a/submodules/AccountContext/Sources/PeerSelectionController.swift +++ b/submodules/AccountContext/Sources/PeerSelectionController.swift @@ -25,6 +25,8 @@ public struct ChatListNodePeersFilter: OptionSet { public static let excludeDisabled = ChatListNodePeersFilter(rawValue: 1 << 10) public static let includeSavedMessages = ChatListNodePeersFilter(rawValue: 1 << 11) + + public static let excludeChannels = ChatListNodePeersFilter(rawValue: 1 << 12) } public final class PeerSelectionControllerParams { @@ -32,12 +34,14 @@ public final class PeerSelectionControllerParams { public let filter: ChatListNodePeersFilter public let hasContactSelector: Bool public let title: String? + public let attemptSelection: ((Peer) -> Void)? - public init(context: AccountContext, filter: ChatListNodePeersFilter = [.onlyWriteable], hasContactSelector: Bool = true, title: String? = nil) { + public init(context: AccountContext, filter: ChatListNodePeersFilter = [.onlyWriteable], hasContactSelector: Bool = true, title: String? = nil, attemptSelection: ((Peer) -> Void)? = nil) { self.context = context self.filter = filter self.hasContactSelector = hasContactSelector self.title = title + self.attemptSelection = attemptSelection } } diff --git a/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift b/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift index 0c91905017..22e250ef4a 100644 --- a/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift +++ b/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift @@ -837,6 +837,12 @@ public final class ChatListSearchContainerNode: SearchDisplayControllerContentNo } } + if filter.contains(.excludeChannels) { + if let peer = peer as? TelegramChannel, case .broadcast = peer.info { + return false + } + } + return true } @@ -962,6 +968,7 @@ public final class ChatListSearchContainerNode: SearchDisplayControllerContentNo openPeer(peer, false) let _ = addRecentlySearchedPeer(postbox: context.account.postbox, peerId: peer.id).start() self?.listNode.clearHighlightAnimated(true) + }, disabledPeerSelected: { _ in }, togglePeerSelected: { _ in }, messageSelected: { [weak self] peer, message, _ in self?.view.endEditing(true) diff --git a/submodules/ChatListUI/Sources/Node/ChatListNode.swift b/submodules/ChatListUI/Sources/Node/ChatListNode.swift index 763d9279e8..0276a2bd8b 100644 --- a/submodules/ChatListUI/Sources/Node/ChatListNode.swift +++ b/submodules/ChatListUI/Sources/Node/ChatListNode.swift @@ -46,6 +46,7 @@ final class ChatListHighlightedLocation { public final class ChatListNodeInteraction { let activateSearch: () -> Void let peerSelected: (Peer) -> Void + let disabledPeerSelected: (Peer) -> Void let togglePeerSelected: (PeerId) -> Void let messageSelected: (Peer, Message, Bool) -> Void let groupSelected: (PeerGroupId) -> Void @@ -62,9 +63,10 @@ public final class ChatListNodeInteraction { public var searchTextHighightState: String? var highlightedChatLocation: ChatListHighlightedLocation? - public init(activateSearch: @escaping () -> Void, peerSelected: @escaping (Peer) -> Void, togglePeerSelected: @escaping (PeerId) -> Void, messageSelected: @escaping (Peer, Message, Bool) -> 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) -> Void, updatePeerGrouping: @escaping (PeerId, Bool) -> Void, togglePeerMarkedUnread: @escaping (PeerId, Bool) -> Void, toggleArchivedFolderHiddenByDefault: @escaping () -> Void, activateChatPreview: @escaping (ChatListItem, ASDisplayNode, ContextGesture?) -> Void) { + public init(activateSearch: @escaping () -> Void, peerSelected: @escaping (Peer) -> Void, disabledPeerSelected: @escaping (Peer) -> Void, togglePeerSelected: @escaping (PeerId) -> Void, messageSelected: @escaping (Peer, Message, Bool) -> 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) -> Void, updatePeerGrouping: @escaping (PeerId, Bool) -> Void, togglePeerMarkedUnread: @escaping (PeerId, Bool) -> Void, toggleArchivedFolderHiddenByDefault: @escaping () -> Void, activateChatPreview: @escaping (ChatListItem, ASDisplayNode, ContextGesture?) -> Void) { self.activateSearch = activateSearch self.peerSelected = peerSelected + self.disabledPeerSelected = disabledPeerSelected self.togglePeerSelected = togglePeerSelected self.messageSelected = messageSelected self.groupSelected = groupSelected @@ -202,11 +204,22 @@ private func mappedInsertEntries(context: AccountContext, nodeInteraction: ChatL enabled = false } } + if filter.contains(.excludeChannels) { + if let peer = peer.peers[peer.peerId] { + if let peer = peer as? TelegramChannel, case .broadcast = peer.info { + enabled = false + } + } + } 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: .none, enabled: enabled, selection: .none, editing: ContactsPeerItemEditing(editable: false, editing: false, revealed: false), index: nil, header: nil, action: { _ in if let chatPeer = chatPeer { nodeInteraction.peerSelected(chatPeer) } + }, disabledAction: { _ in + if let chatPeer = chatPeer { + nodeInteraction.disabledPeerSelected(chatPeer) + } }), directionHint: entry.directionHint) } case let .HoleEntry(_, theme): @@ -242,10 +255,19 @@ private func mappedUpdateEntries(context: AccountContext, nodeInteraction: ChatL enabled = false } } + if filter.contains(.excludeChannels) { + if let peer = peer.chatMainPeer as? TelegramChannel, case .broadcast = peer.info { + enabled = false + } + } 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: .none, enabled: enabled, selection: .none, editing: ContactsPeerItemEditing(editable: false, editing: false, revealed: false), index: nil, header: nil, action: { _ in if let chatPeer = chatPeer { nodeInteraction.peerSelected(chatPeer) } + }, disabledAction: { _ in + if let chatPeer = chatPeer { + nodeInteraction.disabledPeerSelected(chatPeer) + } }), directionHint: entry.directionHint) } case let .HoleEntry(_, theme): @@ -318,6 +340,7 @@ public final class ChatListNode: ListView { } public var peerSelected: ((PeerId, Bool, Bool) -> Void)? + public var disabledPeerSelected: ((Peer) -> Void)? public var groupSelected: ((PeerGroupId) -> Void)? public var addContact: ((String) -> Void)? public var activateSearch: (() -> Void)? @@ -409,6 +432,10 @@ public final class ChatListNode: ListView { if let strongSelf = self, let peerSelected = strongSelf.peerSelected { peerSelected(peer.id, true, false) } + }, disabledPeerSelected: { [weak self] peer in + if let strongSelf = self, let disabledPeerSelected = strongSelf.disabledPeerSelected { + disabledPeerSelected(peer) + } }, togglePeerSelected: { [weak self] peerId in self?.updateState { state in var state = state @@ -584,6 +611,11 @@ public final class ChatListNode: ListView { } } + if filter.contains(.excludeChannels) { + if let peer = peer.chatMainPeer as? TelegramChannel, case .broadcast = peer.info { + } + } + if filter.contains(.onlyWriteable) && filter.contains(.excludeDisabled) { if let peer = peer.peers[peer.peerId] { if !canSendMessagesToPeer(peer) { diff --git a/submodules/ContactsPeerItem/Sources/ContactsPeerItem.swift b/submodules/ContactsPeerItem/Sources/ContactsPeerItem.swift index 7e9ef44c72..183287730b 100644 --- a/submodules/ContactsPeerItem/Sources/ContactsPeerItem.swift +++ b/submodules/ContactsPeerItem/Sources/ContactsPeerItem.swift @@ -122,6 +122,7 @@ public class ContactsPeerItem: ItemListItem, ListViewItemWithHeader { let options: [ItemListPeerItemRevealOption] let actionIcon: ContactsPeerItemActionIcon let action: (ContactsPeerItemPeer) -> Void + let disabledAction: ((ContactsPeerItemPeer) -> Void)? let setPeerIdWithRevealedOptions: ((PeerId?, PeerId?) -> Void)? let deletePeer: ((PeerId) -> Void)? let itemHighlighting: ContactItemHighlighting? @@ -133,7 +134,7 @@ public class ContactsPeerItem: ItemListItem, ListViewItemWithHeader { public let header: ListViewItemHeader? - public init(presentationData: ItemListPresentationData, style: ItemListStyle = .plain, sectionId: ItemListSectionId = 0, sortOrder: PresentationPersonNameOrder, displayOrder: PresentationPersonNameOrder, context: AccountContext, peerMode: ContactsPeerItemPeerMode, peer: ContactsPeerItemPeer, status: ContactsPeerItemStatus, badge: ContactsPeerItemBadge? = nil, enabled: Bool, selection: ContactsPeerItemSelection, editing: ContactsPeerItemEditing, options: [ItemListPeerItemRevealOption] = [], actionIcon: ContactsPeerItemActionIcon = .none, index: PeerNameIndex?, header: ListViewItemHeader?, action: @escaping (ContactsPeerItemPeer) -> Void, setPeerIdWithRevealedOptions: ((PeerId?, PeerId?) -> Void)? = nil, deletePeer: ((PeerId) -> Void)? = nil, itemHighlighting: ContactItemHighlighting? = nil, contextAction: ((ASDisplayNode, ContextGesture?) -> Void)? = nil) { + public init(presentationData: ItemListPresentationData, style: ItemListStyle = .plain, sectionId: ItemListSectionId = 0, sortOrder: PresentationPersonNameOrder, displayOrder: PresentationPersonNameOrder, context: AccountContext, peerMode: ContactsPeerItemPeerMode, peer: ContactsPeerItemPeer, status: ContactsPeerItemStatus, badge: ContactsPeerItemBadge? = nil, enabled: Bool, selection: ContactsPeerItemSelection, editing: ContactsPeerItemEditing, options: [ItemListPeerItemRevealOption] = [], actionIcon: ContactsPeerItemActionIcon = .none, index: PeerNameIndex?, header: ListViewItemHeader?, action: @escaping (ContactsPeerItemPeer) -> Void, disabledAction: ((ContactsPeerItemPeer) -> Void)? = nil, setPeerIdWithRevealedOptions: ((PeerId?, PeerId?) -> Void)? = nil, deletePeer: ((PeerId) -> Void)? = nil, itemHighlighting: ContactItemHighlighting? = nil, contextAction: ((ASDisplayNode, ContextGesture?) -> Void)? = nil) { self.presentationData = presentationData self.style = style self.sectionId = sectionId @@ -150,11 +151,12 @@ public class ContactsPeerItem: ItemListItem, ListViewItemWithHeader { self.options = options self.actionIcon = actionIcon self.action = action + self.disabledAction = disabledAction self.setPeerIdWithRevealedOptions = setPeerIdWithRevealedOptions self.deletePeer = deletePeer self.header = header self.itemHighlighting = itemHighlighting - self.selectable = enabled + self.selectable = enabled || disabledAction != nil self.contextAction = contextAction if let index = index { @@ -245,7 +247,12 @@ public class ContactsPeerItem: ItemListItem, ListViewItemWithHeader { } public func selected(listView: ListView) { - self.action(self.peer) + if self.enabled { + self.action(self.peer) + } else { + listView.clearHighlightAnimated(true) + self.disabledAction?(self.peer) + } } static func mergeType(item: ContactsPeerItem, previousItem: ListViewItem?, nextItem: ListViewItem?) -> (first: Bool, last: Bool, firstWithHeader: Bool) { diff --git a/submodules/HashtagSearchUI/Sources/HashtagSearchController.swift b/submodules/HashtagSearchUI/Sources/HashtagSearchController.swift index 5d2b266ad4..a6e14bb87e 100644 --- a/submodules/HashtagSearchUI/Sources/HashtagSearchController.swift +++ b/submodules/HashtagSearchUI/Sources/HashtagSearchController.swift @@ -49,6 +49,7 @@ public final class HashtagSearchController: TelegramBaseController { } let interaction = ChatListNodeInteraction(activateSearch: { }, peerSelected: { peer in + }, disabledPeerSelected: { _ in }, togglePeerSelected: { _ in }, messageSelected: { [weak self] peer, message, _ in if let strongSelf = self { diff --git a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift index 0b9c83aa51..9a0a9238d2 100644 --- a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift +++ b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift @@ -75,8 +75,8 @@ private final class ShimmerEffectNode: ASDisplayNode { let transparentColor = foregroundColor.withAlphaComponent(0.0).cgColor let peakColor = foregroundColor.cgColor - var locations: [CGFloat] = [0.0, 0.2, 0.5, 0.8, 1.0] - let colors: [CGColor] = [transparentColor, transparentColor, peakColor, transparentColor, transparentColor] + var locations: [CGFloat] = [0.0, 0.5, 1.0] + let colors: [CGColor] = [transparentColor, peakColor, transparentColor] let colorSpace = CGColorSpaceCreateDeviceRGB() let gradient = CGGradient(colorsSpace: colorSpace, colors: colors as CFArray, locations: &locations)! @@ -1312,6 +1312,7 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { self.textNode = ImmediateTextNode() self.textNode.displaysAsynchronously = false self.textNode.maximumNumberOfLines = 1 + self.textNode.truncationType = .middle self.textNode.attributedText = NSAttributedString(string: text, font: titleFont, textColor: theme.list.sectionHeaderTextColor) self.actionTextNode = ImmediateTextNode() diff --git a/submodules/ItemListUI/Sources/ItemListController.swift b/submodules/ItemListUI/Sources/ItemListController.swift index 893e09c32a..70a717c81f 100644 --- a/submodules/ItemListUI/Sources/ItemListController.swift +++ b/submodules/ItemListUI/Sources/ItemListController.swift @@ -56,6 +56,7 @@ public struct ItemListBackButton: Equatable { public enum ItemListControllerTitle: Equatable { case text(String) + case textWithSubtitle(String, String) case sectionControl([String], Int) } @@ -287,6 +288,10 @@ open class ItemListController: ViewController, KeyShortcutResponder, Presentable strongSelf.title = text strongSelf.navigationItem.titleView = nil strongSelf.segmentedTitleView = nil + case let .textWithSubtitle(title, subtitle): + strongSelf.title = "" + strongSelf.navigationItem.titleView = ItemListTextWithSubtitleTitleView(theme: controllerState.presentationData.theme, title: title, subtitle: subtitle) + strongSelf.segmentedTitleView = nil case let .sectionControl(sections, index): strongSelf.title = "" if let segmentedTitleView = strongSelf.segmentedTitleView, segmentedTitleView.segments == sections { @@ -417,6 +422,10 @@ open class ItemListController: ViewController, KeyShortcutResponder, Presentable strongSelf.segmentedTitleView?.theme = controllerState.presentationData.theme + if let titleView = strongSelf.navigationItem.titleView as? ItemListTextWithSubtitleTitleView { + titleView.updateTheme(theme: controllerState.presentationData.theme) + } + var items = strongSelf.navigationItem.rightBarButtonItems ?? [] for i in 0 ..< strongSelf.rightNavigationButtonTitleAndStyle.count { if case .activity = strongSelf.rightNavigationButtonTitleAndStyle[i].1 { @@ -602,3 +611,68 @@ open class ItemListController: ViewController, KeyShortcutResponder, Presentable })] } } + +private final class ItemListTextWithSubtitleTitleView: UIView, NavigationBarTitleView { + private let titleNode: ImmediateTextNode + private let subtitleNode: ImmediateTextNode + + private var validLayout: (CGSize, CGRect)? + + init(theme: PresentationTheme, title: String, subtitle: String) { + self.titleNode = ImmediateTextNode() + self.titleNode.displaysAsynchronously = false + self.titleNode.maximumNumberOfLines = 1 + self.titleNode.isOpaque = false + + self.titleNode.attributedText = NSAttributedString(string: title, font: Font.medium(17.0), textColor: theme.rootController.navigationBar.primaryTextColor) + + self.subtitleNode = ImmediateTextNode() + self.subtitleNode.displaysAsynchronously = false + self.subtitleNode.maximumNumberOfLines = 1 + self.subtitleNode.isOpaque = false + + self.subtitleNode.attributedText = NSAttributedString(string: subtitle, font: Font.regular(13.0), textColor: theme.rootController.navigationBar.secondaryTextColor) + + super.init(frame: CGRect()) + + self.addSubnode(self.titleNode) + self.addSubnode(self.subtitleNode) + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + func updateTheme(theme: PresentationTheme) { + self.titleNode.attributedText = NSAttributedString(string: self.titleNode.attributedText?.string ?? "", font: Font.medium(17.0), textColor: theme.rootController.navigationBar.primaryTextColor) + self.subtitleNode.attributedText = NSAttributedString(string: self.subtitleNode.attributedText?.string ?? "", font: Font.regular(13.0), textColor: theme.rootController.navigationBar.secondaryTextColor) + if let (size, clearBounds) = self.validLayout { + self.updateLayout(size: size, clearBounds: clearBounds, transition: .immediate) + } + } + + override func layoutSubviews() { + super.layoutSubviews() + + if let (size, clearBounds) = self.validLayout { + self.updateLayout(size: size, clearBounds: clearBounds, transition: .immediate) + } + } + + func updateLayout(size: CGSize, clearBounds: CGRect, transition: ContainedViewLayoutTransition) { + self.validLayout = (size, clearBounds) + + let titleSize = self.titleNode.updateLayout(size) + let subtitleSize = self.subtitleNode.updateLayout(size) + let spacing: CGFloat = 0.0 + let contentHeight = titleSize.height + spacing + subtitleSize.height + let titleFrame = CGRect(origin: CGPoint(x: floor((size.width - titleSize.width) / 2.0), y: floor((size.height - contentHeight) / 2.0)), size: titleSize) + let subtitleFrame = CGRect(origin: CGPoint(x: floor((size.width - subtitleSize.width) / 2.0), y: titleFrame.maxY + spacing), size: subtitleSize) + + self.titleNode.frame = titleFrame + self.subtitleNode.frame = subtitleFrame + } + + func animateLayoutTransition() { + } +} diff --git a/submodules/Postbox/Sources/ItemCacheTable.swift b/submodules/Postbox/Sources/ItemCacheTable.swift index 60bfed7d1b..82a782081f 100644 --- a/submodules/Postbox/Sources/ItemCacheTable.swift +++ b/submodules/Postbox/Sources/ItemCacheTable.swift @@ -37,6 +37,17 @@ final class ItemCacheTable: Table { return key } + private func lowerBound(collectionId: ItemCacheCollectionId) -> ValueBoxKey { + let key = ValueBoxKey(length: 1 + 1) + key.setInt8(0, value: ItemCacheSection.items.rawValue) + key.setInt8(1, value: collectionId) + return key + } + + private func upperBound(collectionId: ItemCacheCollectionId) -> ValueBoxKey { + return self.lowerBound(collectionId: collectionId).successor + } + private func itemIdToAccessIndexKey(id: ItemCacheEntryId) -> ValueBoxKey { let key = ValueBoxKey(length: 1 + 1 + id.key.length) key.setInt8(0, value: ItemCacheSection.accessIndexToItemId.rawValue) @@ -72,6 +83,10 @@ final class ItemCacheTable: Table { self.valueBox.remove(self.table, key: self.itemKey(id: id), secure: false) } + func removeAll(collectionId: ItemCacheCollectionId) { + self.valueBox.removeRange(self.table, start: self.lowerBound(collectionId: collectionId), end: self.upperBound(collectionId: collectionId)) + } + override func clearMemoryCache() { } diff --git a/submodules/Postbox/Sources/Postbox.swift b/submodules/Postbox/Sources/Postbox.swift index 9e333e6f9f..fc19228729 100644 --- a/submodules/Postbox/Sources/Postbox.swift +++ b/submodules/Postbox/Sources/Postbox.swift @@ -655,6 +655,11 @@ public final class Transaction { return self.postbox?.retrieveItemCacheEntry(id: id) } + public func clearItemCacheCollection(collectionId: ItemCacheCollectionId) { + assert(!self.disposed) + self.postbox?.clearItemCacheCollection(collectionId: collectionId) + } + public func operationLogGetNextEntryLocalIndex(peerId: PeerId, tag: PeerOperationLogTag) -> Int32 { assert(!self.disposed) if let postbox = self.postbox { @@ -2065,6 +2070,10 @@ public final class Postbox { return self.itemCacheTable.retrieve(id: id, metaTable: self.itemCacheMetaTable) } + func clearItemCacheCollection(collectionId: ItemCacheCollectionId) { + return self.itemCacheTable.removeAll(collectionId: collectionId) + } + fileprivate func removeItemCacheEntry(id: ItemCacheEntryId) { self.itemCacheTable.remove(id: id, metaTable: self.itemCacheMetaTable) } diff --git a/submodules/SettingsUI/Sources/DebugController.swift b/submodules/SettingsUI/Sources/DebugController.swift index 9d7e830613..be90bdccfa 100644 --- a/submodules/SettingsUI/Sources/DebugController.swift +++ b/submodules/SettingsUI/Sources/DebugController.swift @@ -393,6 +393,11 @@ private enum DebugControllerEntry: ItemListNodeEntry { let _ = (arguments.sharedContext.accountManager.transaction { transaction -> Void in transaction.clearNotices() }).start() + if let context = arguments.context { + let _ = (context.account.postbox.transaction { transaction -> Void in + transaction.clearItemCacheCollection(collectionId: Namespaces.CachedItemCollection.cachedPollResults) + }).start() + } }) case let .reimport(theme): return ItemListActionItem(presentationData: presentationData, title: "Reimport Application Data", kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { diff --git a/submodules/SettingsUI/Sources/Text Size/TextSizeSelectionController.swift b/submodules/SettingsUI/Sources/Text Size/TextSizeSelectionController.swift index 3aa34eab3d..20a23a462b 100644 --- a/submodules/SettingsUI/Sources/Text Size/TextSizeSelectionController.swift +++ b/submodules/SettingsUI/Sources/Text Size/TextSizeSelectionController.swift @@ -213,7 +213,7 @@ private final class TextSizeSelectionControllerNode: ASDisplayNode, UIScrollView private func updateChatsLayout(layout: ContainerViewLayout, topInset: CGFloat, transition: ContainedViewLayoutTransition) { var items: [ChatListItem] = [] - let interaction = ChatListNodeInteraction(activateSearch: {}, peerSelected: { _ in }, togglePeerSelected: { _ in }, messageSelected: { _, _, _ in}, groupSelected: { _ in }, addContact: { _ in }, setPeerIdWithRevealedOptions: { _, _ in }, setItemPinned: { _, _ in }, setPeerMuted: { _, _ in }, deletePeer: { _ in }, updatePeerGrouping: { _, _ in }, togglePeerMarkedUnread: { _, _ in}, toggleArchivedFolderHiddenByDefault: {}, activateChatPreview: { _, _, gesture in + let interaction = ChatListNodeInteraction(activateSearch: {}, peerSelected: { _ in }, disabledPeerSelected: { _ in }, togglePeerSelected: { _ in }, messageSelected: { _, _, _ in}, groupSelected: { _ in }, addContact: { _ in }, setPeerIdWithRevealedOptions: { _, _ in }, setItemPinned: { _, _ in }, setPeerMuted: { _, _ in }, deletePeer: { _ in }, updatePeerGrouping: { _, _ in }, togglePeerMarkedUnread: { _, _ in}, toggleArchivedFolderHiddenByDefault: {}, activateChatPreview: { _, _, gesture in gesture?.cancel() }) let chatListPresentationData = ChatListPresentationData(theme: self.presentationData.theme, fontSize: self.presentationData.listsFontSize, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameSortOrder: self.presentationData.nameSortOrder, nameDisplayOrder: self.presentationData.nameDisplayOrder, disableAnimations: true) diff --git a/submodules/SettingsUI/Sources/Themes/ThemeAccentColorControllerNode.swift b/submodules/SettingsUI/Sources/Themes/ThemeAccentColorControllerNode.swift index 5a7eb80052..beef472dec 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeAccentColorControllerNode.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeAccentColorControllerNode.swift @@ -765,7 +765,7 @@ final class ThemeAccentColorControllerNode: ASDisplayNode, UIScrollViewDelegate private func updateChatsLayout(layout: ContainerViewLayout, topInset: CGFloat, transition: ContainedViewLayoutTransition) { var items: [ChatListItem] = [] - let interaction = ChatListNodeInteraction(activateSearch: {}, peerSelected: { _ in }, togglePeerSelected: { _ in }, messageSelected: { _, _, _ in}, groupSelected: { _ in }, addContact: { _ in }, setPeerIdWithRevealedOptions: { _, _ in }, setItemPinned: { _, _ in }, setPeerMuted: { _, _ in }, deletePeer: { _ in }, updatePeerGrouping: { _, _ in }, togglePeerMarkedUnread: { _, _ in}, toggleArchivedFolderHiddenByDefault: {}, activateChatPreview: { _, _, gesture in + let interaction = ChatListNodeInteraction(activateSearch: {}, peerSelected: { _ in }, disabledPeerSelected: { _ in }, togglePeerSelected: { _ in }, messageSelected: { _, _, _ in}, groupSelected: { _ in }, addContact: { _ in }, setPeerIdWithRevealedOptions: { _, _ in }, setItemPinned: { _, _ in }, setPeerMuted: { _, _ in }, deletePeer: { _ in }, updatePeerGrouping: { _, _ in }, togglePeerMarkedUnread: { _, _ in}, toggleArchivedFolderHiddenByDefault: {}, activateChatPreview: { _, _, gesture in gesture?.cancel() }) let chatListPresentationData = ChatListPresentationData(theme: self.theme, fontSize: self.presentationData.listsFontSize, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameSortOrder: self.presentationData.nameSortOrder, nameDisplayOrder: self.presentationData.nameDisplayOrder, disableAnimations: true) diff --git a/submodules/SettingsUI/Sources/Themes/ThemePreviewControllerNode.swift b/submodules/SettingsUI/Sources/Themes/ThemePreviewControllerNode.swift index fa3397d30e..b4b5cbaf2f 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemePreviewControllerNode.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemePreviewControllerNode.swift @@ -350,7 +350,7 @@ final class ThemePreviewControllerNode: ASDisplayNode, UIScrollViewDelegate { private func updateChatsLayout(layout: ContainerViewLayout, topInset: CGFloat, transition: ContainedViewLayoutTransition) { var items: [ChatListItem] = [] - let interaction = ChatListNodeInteraction(activateSearch: {}, peerSelected: { _ in }, togglePeerSelected: { _ in }, messageSelected: { _, _, _ in}, groupSelected: { _ in }, addContact: { _ in }, setPeerIdWithRevealedOptions: { _, _ in }, setItemPinned: { _, _ in }, setPeerMuted: { _, _ in }, deletePeer: { _ in }, updatePeerGrouping: { _, _ in }, togglePeerMarkedUnread: { _, _ in}, toggleArchivedFolderHiddenByDefault: {}, activateChatPreview: { _, _, gesture in + let interaction = ChatListNodeInteraction(activateSearch: {}, peerSelected: { _ in }, disabledPeerSelected: { _ in }, togglePeerSelected: { _ in }, messageSelected: { _, _, _ in}, groupSelected: { _ in }, addContact: { _ in }, setPeerIdWithRevealedOptions: { _, _ in }, setItemPinned: { _, _ in }, setPeerMuted: { _, _ in }, deletePeer: { _ in }, updatePeerGrouping: { _, _ in }, togglePeerMarkedUnread: { _, _ in}, toggleArchivedFolderHiddenByDefault: {}, activateChatPreview: { _, _, gesture in gesture?.cancel() }) let chatListPresentationData = ChatListPresentationData(theme: self.previewTheme, fontSize: self.presentationData.listsFontSize, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameSortOrder: self.presentationData.nameSortOrder, nameDisplayOrder: self.presentationData.nameDisplayOrder, disableAnimations: true) diff --git a/submodules/TelegramApi/Sources/Api0.swift b/submodules/TelegramApi/Sources/Api0.swift index 30c4e3b39c..2108ef81ca 100644 --- a/submodules/TelegramApi/Sources/Api0.swift +++ b/submodules/TelegramApi/Sources/Api0.swift @@ -246,6 +246,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[-2112423005] = { return Api.Update.parse_updateTheme($0) } dict[-2027964103] = { return Api.Update.parse_updateGeoLiveViewed($0) } dict[1448076945] = { return Api.Update.parse_updateLoginToken($0) } + dict[1123585836] = { return Api.Update.parse_updateMessagePollVote($0) } dict[136574537] = { return Api.messages.VotesList.parse_votesList($0) } dict[1558266229] = { return Api.PopularContact.parse_popularContact($0) } dict[-373643672] = { return Api.FolderPeer.parse_folderPeer($0) } @@ -254,7 +255,9 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[470789295] = { return Api.ChannelParticipant.parse_channelParticipantBanned($0) } dict[-859915345] = { return Api.ChannelParticipant.parse_channelParticipantAdmin($0) } dict[-2138237532] = { return Api.ChannelParticipant.parse_channelParticipantCreator($0) } - dict[-233638547] = { return Api.MessageUserVote.parse_messageUserVote($0) } + dict[-1567730343] = { return Api.MessageUserVote.parse_messageUserVote($0) } + dict[909603888] = { return Api.MessageUserVote.parse_messageUserVoteInputOption($0) } + dict[244310238] = { return Api.MessageUserVote.parse_messageUserVoteMultiple($0) } dict[471043349] = { return Api.contacts.Blocked.parse_blocked($0) } dict[-1878523231] = { return Api.contacts.Blocked.parse_blockedSlice($0) } dict[-55902537] = { return Api.InputDialogPeer.parse_inputDialogPeer($0) } diff --git a/submodules/TelegramApi/Sources/Api1.swift b/submodules/TelegramApi/Sources/Api1.swift index dbf3f8df84..835d0f96dc 100644 --- a/submodules/TelegramApi/Sources/Api1.swift +++ b/submodules/TelegramApi/Sources/Api1.swift @@ -5860,6 +5860,7 @@ public extension Api { case updateTheme(theme: Api.Theme) case updateGeoLiveViewed(peer: Api.Peer, msgId: Int32) case updateLoginToken + case updateMessagePollVote(pollId: Int64, userId: Int32, options: [Buffer]) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { @@ -6496,6 +6497,18 @@ public extension Api { buffer.appendInt32(1448076945) } + break + case .updateMessagePollVote(let pollId, let userId, let options): + if boxed { + buffer.appendInt32(1123585836) + } + serializeInt64(pollId, buffer: buffer, boxed: false) + serializeInt32(userId, buffer: buffer, boxed: false) + buffer.appendInt32(481674261) + buffer.appendInt32(Int32(options.count)) + for item in options { + serializeBytes(item, buffer: buffer, boxed: false) + } break } } @@ -6654,6 +6667,8 @@ public extension Api { return ("updateGeoLiveViewed", [("peer", peer), ("msgId", msgId)]) case .updateLoginToken: return ("updateLoginToken", []) + case .updateMessagePollVote(let pollId, let userId, let options): + return ("updateMessagePollVote", [("pollId", pollId), ("userId", userId), ("options", options)]) } } @@ -7931,6 +7946,25 @@ public extension Api { public static func parse_updateLoginToken(_ reader: BufferReader) -> Update? { return Api.Update.updateLoginToken } + public static func parse_updateMessagePollVote(_ reader: BufferReader) -> Update? { + var _1: Int64? + _1 = reader.readInt64() + var _2: Int32? + _2 = reader.readInt32() + var _3: [Buffer]? + if let _ = reader.readInt32() { + _3 = Api.parseVector(reader, elementSignature: -1255641564, elementType: Buffer.self) + } + let _c1 = _1 != nil + let _c2 = _2 != nil + let _c3 = _3 != nil + if _c1 && _c2 && _c3 { + return Api.Update.updateMessagePollVote(pollId: _1!, userId: _2!, options: _3!) + } + else { + return nil + } + } } public enum PopularContact: TypeConstructorDescription { @@ -8190,24 +8224,50 @@ public extension Api { } public enum MessageUserVote: TypeConstructorDescription { - case messageUserVote(userId: Int32, option: Buffer) + case messageUserVote(userId: Int32, option: Buffer, date: Int32) + case messageUserVoteInputOption(userId: Int32, date: Int32) + case messageUserVoteMultiple(userId: Int32, options: [Buffer], date: Int32) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { - case .messageUserVote(let userId, let option): + case .messageUserVote(let userId, let option, let date): if boxed { - buffer.appendInt32(-233638547) + buffer.appendInt32(-1567730343) } serializeInt32(userId, buffer: buffer, boxed: false) serializeBytes(option, buffer: buffer, boxed: false) + serializeInt32(date, buffer: buffer, boxed: false) + break + case .messageUserVoteInputOption(let userId, let date): + if boxed { + buffer.appendInt32(909603888) + } + serializeInt32(userId, buffer: buffer, boxed: false) + serializeInt32(date, buffer: buffer, boxed: false) + break + case .messageUserVoteMultiple(let userId, let options, let date): + if boxed { + buffer.appendInt32(244310238) + } + serializeInt32(userId, buffer: buffer, boxed: false) + buffer.appendInt32(481674261) + buffer.appendInt32(Int32(options.count)) + for item in options { + serializeBytes(item, buffer: buffer, boxed: false) + } + serializeInt32(date, buffer: buffer, boxed: false) break } } public func descriptionFields() -> (String, [(String, Any)]) { switch self { - case .messageUserVote(let userId, let option): - return ("messageUserVote", [("userId", userId), ("option", option)]) + case .messageUserVote(let userId, let option, let date): + return ("messageUserVote", [("userId", userId), ("option", option), ("date", date)]) + case .messageUserVoteInputOption(let userId, let date): + return ("messageUserVoteInputOption", [("userId", userId), ("date", date)]) + case .messageUserVoteMultiple(let userId, let options, let date): + return ("messageUserVoteMultiple", [("userId", userId), ("options", options), ("date", date)]) } } @@ -8216,10 +8276,46 @@ public extension Api { _1 = reader.readInt32() var _2: Buffer? _2 = parseBytes(reader) + var _3: Int32? + _3 = reader.readInt32() + let _c1 = _1 != nil + let _c2 = _2 != nil + let _c3 = _3 != nil + if _c1 && _c2 && _c3 { + return Api.MessageUserVote.messageUserVote(userId: _1!, option: _2!, date: _3!) + } + else { + return nil + } + } + public static func parse_messageUserVoteInputOption(_ reader: BufferReader) -> MessageUserVote? { + var _1: Int32? + _1 = reader.readInt32() + var _2: Int32? + _2 = reader.readInt32() let _c1 = _1 != nil let _c2 = _2 != nil if _c1 && _c2 { - return Api.MessageUserVote.messageUserVote(userId: _1!, option: _2!) + return Api.MessageUserVote.messageUserVoteInputOption(userId: _1!, date: _2!) + } + else { + return nil + } + } + public static func parse_messageUserVoteMultiple(_ reader: BufferReader) -> MessageUserVote? { + var _1: Int32? + _1 = reader.readInt32() + var _2: [Buffer]? + if let _ = reader.readInt32() { + _2 = Api.parseVector(reader, elementSignature: -1255641564, elementType: Buffer.self) + } + var _3: Int32? + _3 = reader.readInt32() + let _c1 = _1 != nil + let _c2 = _2 != nil + let _c3 = _3 != nil + if _c1 && _c2 && _c3 { + return Api.MessageUserVote.messageUserVoteMultiple(userId: _1!, options: _2!, date: _3!) } else { return nil diff --git a/submodules/TelegramCore/Sources/Polls.swift b/submodules/TelegramCore/Sources/Polls.swift index 4ead2a9cfd..81d99f3cf4 100644 --- a/submodules/TelegramCore/Sources/Polls.swift +++ b/submodules/TelegramCore/Sources/Polls.swift @@ -250,11 +250,17 @@ private final class PollResultsOptionContext { }) var resultPeers: [RenderedPeer] = [] for vote in votes { + let peerId: PeerId switch vote { - case let .messageUserVote(userId, _): - if let peer = transaction.getPeer(PeerId(namespace: Namespaces.Peer.CloudUser, id: userId)) { - resultPeers.append(RenderedPeer(peer: peer)) - } + case let .messageUserVote(userId, _, _): + peerId = PeerId(namespace: Namespaces.Peer.CloudUser, id: userId) + case let .messageUserVoteInputOption(userId, _): + peerId = PeerId(namespace: Namespaces.Peer.CloudUser, id: userId) + case let .messageUserVoteMultiple(userId, _, _): + peerId = PeerId(namespace: Namespaces.Peer.CloudUser, id: userId) + } + if let peer = transaction.getPeer(peerId) { + resultPeers.append(RenderedPeer(peer: peer)) } } if populateCache { diff --git a/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift index ac9d1c1b2b..e1be4c62bf 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDarkPresentationTheme.swift @@ -343,7 +343,7 @@ public func makeDefaultDarkPresentationTheme(extendingThemeReference: Presentati primaryColor: UIColor(rgb: 0xffffff), controlColor: UIColor(rgb: 0x4d4d4d) ), - mediaPlaceholderColor: UIColor(rgb: 0xffffff).withMultipliedBrightnessBy(0.05), + mediaPlaceholderColor: UIColor(rgb: 0xffffff).mixedWith(UIColor(rgb: 0x1c1c1d), alpha: 0.9), scrollIndicatorColor: UIColor(rgb: 0xffffff, alpha: 0.3), pageIndicatorInactiveColor: UIColor(white: 1.0, alpha: 0.3), inputClearButtonColor: UIColor(rgb: 0x8b9197), diff --git a/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift index fef8ffbbc6..850da9400b 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDarkTintedPresentationTheme.swift @@ -154,7 +154,7 @@ public func customizeDefaultDarkTintedPresentationTheme(theme: PresentationTheme backgroundColor: mainSecondaryTextColor?.withAlphaComponent(0.5), strokeColor: mainSecondaryTextColor?.withAlphaComponent(0.5) ), - mediaPlaceholderColor: accentColor?.withMultiplied(hue: 1.019, saturation: 0.585, brightness: 0.23), + mediaPlaceholderColor: UIColor(rgb: 0xffffff).mixedWith(mainBackgroundColor ?? list.itemBlocksBackgroundColor, alpha: 0.9), pageIndicatorInactiveColor: mainSecondaryTextColor?.withAlphaComponent(0.4), inputClearButtonColor: mainSecondaryColor, itemBarChart: list.itemBarChart.withUpdated( @@ -597,7 +597,7 @@ public func makeDefaultDarkTintedPresentationTheme(extendingThemeReference: Pres primaryColor: .white, controlColor: UIColor(rgb: 0x4d4d4d) ), - mediaPlaceholderColor: accentColor.withMultiplied(hue: 1.019, saturation: 0.585, brightness: 0.23), + mediaPlaceholderColor: UIColor(rgb: 0xffffff).mixedWith(mainBackgroundColor, alpha: 0.9), scrollIndicatorColor: UIColor(white: 1.0, alpha: 0.3), pageIndicatorInactiveColor: mainSecondaryTextColor.withAlphaComponent(0.4), inputClearButtonColor: mainSecondaryColor, diff --git a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift index bf162c39fb..b44e4626d5 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift @@ -271,7 +271,7 @@ public func customizeDefaultDayTheme(theme: PresentationTheme, editing: Bool, ti fileDescriptionColor: outgoingFileDescriptionColor, fileDurationColor: outgoingFileDurationColor, mediaPlaceholderColor: day ? accentColor?.withMultipliedBrightnessBy(0.95) : outgoingMediaPlaceholderColor, - polls: chat.message.outgoing.polls.withUpdated(radioButton: outgoingPollsButtonColor, radioProgress: outgoingPollsProgressColor, highlight: outgoingPollsProgressColor?.withAlphaComponent(0.12), separator: outgoingPollsButtonColor, bar: outgoingPollsProgressColor, barPositive: outgoingPollsProgressColor, barNegative: outgoingPollsProgressColor), + polls: chat.message.outgoing.polls.withUpdated(radioButton: outgoingPollsButtonColor, radioProgress: outgoingPollsProgressColor, highlight: outgoingPollsProgressColor?.withAlphaComponent(0.12), separator: outgoingPollsButtonColor, bar: outgoingPollsProgressColor, barIconForeground: .clear, barPositive: outgoingPollsProgressColor, barNegative: outgoingPollsProgressColor), actionButtonsFillColor: chat.message.outgoing.actionButtonsFillColor.withUpdated(withWallpaper: serviceBackgroundColor), actionButtonsStrokeColor: day ? chat.message.outgoing.actionButtonsStrokeColor.withUpdated(withoutWallpaper: accentColor) : nil, actionButtonsTextColor: day ? chat.message.outgoing.actionButtonsTextColor.withUpdated(withoutWallpaper: accentColor) : nil, @@ -440,7 +440,7 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio primaryColor: UIColor(rgb: 0x000000), controlColor: UIColor(rgb: 0xbcbcc0) ), - mediaPlaceholderColor: UIColor(rgb: 0xe4e4e4), + mediaPlaceholderColor: UIColor(rgb: 0xEFEFF4), scrollIndicatorColor: UIColor(white: 0.0, alpha: 0.3), pageIndicatorInactiveColor: UIColor(rgb: 0xe3e3e7), inputClearButtonColor: UIColor(rgb: 0xcccccc), diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 61586448a3..007f01cc43 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -503,4795 +503,4798 @@ public final class PresentationStrings: Equatable { public var Wallet_Settings_BackupWallet: String { return self._s[301]! } public var ChatSettings_AutoPlayAnimations: String { return self._s[302]! } public var AuthSessions_LogOutApplicationsHelp: String { return self._s[305]! } - public var Month_GenFebruary: String { return self._s[306]! } - public var Wallet_Send_NetworkErrorTitle: String { return self._s[307]! } + public var Forward_ErrorPublicQuizDisabledInChannels: String { return self._s[306]! } + public var Month_GenFebruary: String { return self._s[307]! } + public var Wallet_Send_NetworkErrorTitle: String { return self._s[308]! } public func Login_InvalidPhoneEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[309]!, self._r[309]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[310]!, self._r[310]!, [_1, _2, _3, _4, _5]) } - public var Passport_Identity_TypeIdentityCard: String { return self._s[310]! } - public var Wallet_Month_ShortJune: String { return self._s[312]! } - public var AutoDownloadSettings_DataUsageMedium: String { return self._s[313]! } - public var GroupInfo_AddParticipant: String { return self._s[314]! } - public var KeyCommand_SendMessage: String { return self._s[315]! } - public var VoiceOver_Chat_YourContact: String { return self._s[317]! } - public var Map_LiveLocationShowAll: String { return self._s[318]! } - public var WallpaperSearch_ColorOrange: String { return self._s[320]! } - public var Appearance_AppIconDefaultX: String { return self._s[321]! } - public var Checkout_Receipt_Title: String { return self._s[322]! } - public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[323]! } - public var WallpaperPreview_PreviewTopText: String { return self._s[324]! } - public var Message_Contact: String { return self._s[325]! } - public var Call_StatusIncoming: String { return self._s[326]! } - public var Wallet_TransactionInfo_StorageFeeInfo: String { return self._s[327]! } + public var Passport_Identity_TypeIdentityCard: String { return self._s[311]! } + public var Wallet_Month_ShortJune: String { return self._s[313]! } + public var AutoDownloadSettings_DataUsageMedium: String { return self._s[314]! } + public var GroupInfo_AddParticipant: String { return self._s[315]! } + public var KeyCommand_SendMessage: String { return self._s[316]! } + public var VoiceOver_Chat_YourContact: String { return self._s[318]! } + public var Map_LiveLocationShowAll: String { return self._s[319]! } + public var WallpaperSearch_ColorOrange: String { return self._s[321]! } + public var Appearance_AppIconDefaultX: String { return self._s[322]! } + public var Checkout_Receipt_Title: String { return self._s[323]! } + public var Group_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[324]! } + public var WallpaperPreview_PreviewTopText: String { return self._s[325]! } + public var Message_Contact: String { return self._s[326]! } + public var Call_StatusIncoming: String { return self._s[327]! } + public var Wallet_TransactionInfo_StorageFeeInfo: String { return self._s[328]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[328]!, self._r[328]!, [_1]) + return formatWithArgumentRanges(self._s[329]!, self._r[329]!, [_1]) } public func PUSH_ENCRYPTED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[330]!, self._r[330]!, [_1]) + return formatWithArgumentRanges(self._s[331]!, self._r[331]!, [_1]) } - public var VoiceOver_Media_PlaybackRate: String { return self._s[331]! } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[332]! } - public var Conversation_ViewChannel: String { return self._s[333]! } + public var VoiceOver_Media_PlaybackRate: String { return self._s[332]! } + public var Passport_FieldIdentityDetailsHelp: String { return self._s[333]! } + public var Conversation_ViewChannel: String { return self._s[334]! } public func Time_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[334]!, self._r[334]!, [_0]) + return formatWithArgumentRanges(self._s[335]!, self._r[335]!, [_0]) } - public var Theme_Colors_Accent: String { return self._s[335]! } - public var Passport_Language_nl: String { return self._s[337]! } - public var Camera_Retake: String { return self._s[338]! } + public var Theme_Colors_Accent: String { return self._s[336]! } + public var Passport_Language_nl: String { return self._s[338]! } + public var Camera_Retake: String { return self._s[339]! } public func UserInfo_BlockActionTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[339]!, self._r[339]!, [_0]) + return formatWithArgumentRanges(self._s[340]!, self._r[340]!, [_0]) } - public var AuthSessions_LogOutApplications: String { return self._s[340]! } - public var ApplyLanguage_ApplySuccess: String { return self._s[341]! } - public var Tour_Title6: String { return self._s[342]! } - public var Map_ChooseAPlace: String { return self._s[343]! } - public var CallSettings_Never: String { return self._s[345]! } + public var AuthSessions_LogOutApplications: String { return self._s[341]! } + public var ApplyLanguage_ApplySuccess: String { return self._s[342]! } + public var Tour_Title6: String { return self._s[343]! } + public var Map_ChooseAPlace: String { return self._s[344]! } + public var CallSettings_Never: String { return self._s[346]! } public func Notification_ChangedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[346]!, self._r[346]!, [_0]) + return formatWithArgumentRanges(self._s[347]!, self._r[347]!, [_0]) } - public var ChannelRemoved_RemoveInfo: String { return self._s[347]! } + public var ChannelRemoved_RemoveInfo: String { return self._s[348]! } public func AutoDownloadSettings_PreloadVideoInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[348]!, self._r[348]!, [_0]) + return formatWithArgumentRanges(self._s[349]!, self._r[349]!, [_0]) } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[349]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[350]! } public func Conversation_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[350]!, self._r[350]!, [_0]) + return formatWithArgumentRanges(self._s[351]!, self._r[351]!, [_0]) } - public var GroupInfo_InviteLink_Title: String { return self._s[351]! } + public var GroupInfo_InviteLink_Title: String { return self._s[352]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[352]!, self._r[352]!, [_1, _2]) + return formatWithArgumentRanges(self._s[353]!, self._r[353]!, [_1, _2]) } - public var KeyCommand_ScrollUp: String { return self._s[353]! } - public var ContactInfo_URLLabelHomepage: String { return self._s[354]! } - public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[355]! } + public var KeyCommand_ScrollUp: String { return self._s[354]! } + public var ContactInfo_URLLabelHomepage: String { return self._s[355]! } + public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[356]! } public func Channel_AdminLog_DisabledSlowmode(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[356]!, self._r[356]!, [_0]) + return formatWithArgumentRanges(self._s[357]!, self._r[357]!, [_0]) } - public var TwoFactorSetup_Done_Title: String { return self._s[357]! } + public var TwoFactorSetup_Done_Title: String { return self._s[358]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[358]!, self._r[358]!, [_0]) + return formatWithArgumentRanges(self._s[359]!, self._r[359]!, [_0]) } - public var CallFeedback_ReasonDistortedSpeech: String { return self._s[359]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[360]! } - public var ContactList_Context_SendMessage: String { return self._s[362]! } - public var Weekday_Tuesday: String { return self._s[363]! } - public var Wallet_Created_Title: String { return self._s[365]! } - public var ScheduledMessages_Delete: String { return self._s[366]! } - public var UserInfo_StartSecretChat: String { return self._s[367]! } - public var Passport_Identity_FilesTitle: String { return self._s[368]! } - public var Permissions_NotificationsAllow_v0: String { return self._s[369]! } - public var DialogList_DeleteConversationConfirmation: String { return self._s[371]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[372]! } + public var CallFeedback_ReasonDistortedSpeech: String { return self._s[360]! } + public var Watch_LastSeen_WithinAWeek: String { return self._s[361]! } + public var ContactList_Context_SendMessage: String { return self._s[363]! } + public var Weekday_Tuesday: String { return self._s[364]! } + public var Wallet_Created_Title: String { return self._s[366]! } + public var ScheduledMessages_Delete: String { return self._s[367]! } + public var UserInfo_StartSecretChat: String { return self._s[368]! } + public var Passport_Identity_FilesTitle: String { return self._s[369]! } + public var Permissions_NotificationsAllow_v0: String { return self._s[370]! } + public var DialogList_DeleteConversationConfirmation: String { return self._s[372]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[373]! } public func Wallet_Configuration_ApplyErrorTextURLUnreachable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[373]!, self._r[373]!, [_0]) + return formatWithArgumentRanges(self._s[374]!, self._r[374]!, [_0]) } - public var AuthSessions_Sessions: String { return self._s[374]! } + public var AuthSessions_Sessions: String { return self._s[375]! } public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[376]!, self._r[376]!, [_0]) + return formatWithArgumentRanges(self._s[377]!, self._r[377]!, [_0]) } - public var TwoStepAuth_RecoveryEmailChangeDescription: String { return self._s[377]! } - public var Call_StatusWaiting: String { return self._s[378]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[379]! } - public var FastTwoStepSetup_HintHelp: String { return self._s[380]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[381]! } - public var EditTheme_Expand_Preview_OutgoingText: String { return self._s[382]! } - public var LogoutOptions_AddAccountText: String { return self._s[383]! } - public var PasscodeSettings_6DigitCode: String { return self._s[384]! } - public var Settings_LogoutConfirmationText: String { return self._s[385]! } - public var Passport_Identity_TypePassport: String { return self._s[387]! } - public var Map_Work: String { return self._s[390]! } + public var TwoStepAuth_RecoveryEmailChangeDescription: String { return self._s[378]! } + public var Call_StatusWaiting: String { return self._s[379]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[380]! } + public var FastTwoStepSetup_HintHelp: String { return self._s[381]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[382]! } + public var EditTheme_Expand_Preview_OutgoingText: String { return self._s[383]! } + public var LogoutOptions_AddAccountText: String { return self._s[384]! } + public var PasscodeSettings_6DigitCode: String { return self._s[385]! } + public var Settings_LogoutConfirmationText: String { return self._s[386]! } + public var Passport_Identity_TypePassport: String { return self._s[388]! } + public var Map_Work: String { return self._s[391]! } public func PUSH_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[391]!, self._r[391]!, [_1, _2]) + return formatWithArgumentRanges(self._s[392]!, self._r[392]!, [_1, _2]) } - public var SocksProxySetup_SaveProxy: String { return self._s[392]! } - public var AccessDenied_SaveMedia: String { return self._s[393]! } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[395]! } - public var CreatePoll_MultipleChoice: String { return self._s[396]! } - public var Settings_Title: String { return self._s[398]! } - public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[399]! } - public var Contacts_InviteSearchLabel: String { return self._s[401]! } - public var PrivacySettings_WebSessions: String { return self._s[402]! } - public var ConvertToSupergroup_Title: String { return self._s[403]! } + public var SocksProxySetup_SaveProxy: String { return self._s[393]! } + public var AccessDenied_SaveMedia: String { return self._s[394]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[396]! } + public var CreatePoll_MultipleChoice: String { return self._s[397]! } + public var Settings_Title: String { return self._s[399]! } + public var VoiceOver_Chat_RecordModeVideoMessageInfo: String { return self._s[400]! } + public var Contacts_InviteSearchLabel: String { return self._s[402]! } + public var PrivacySettings_WebSessions: String { return self._s[403]! } + public var ConvertToSupergroup_Title: String { return self._s[404]! } public func Channel_AdminLog_CaptionEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[404]!, self._r[404]!, [_0]) + return formatWithArgumentRanges(self._s[405]!, self._r[405]!, [_0]) } - public var TwoFactorSetup_Hint_Text: String { return self._s[405]! } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[406]! } + public var TwoFactorSetup_Hint_Text: String { return self._s[406]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[407]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[407]!, self._r[407]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[408]!, self._r[408]!, [_1, _2, _3]) } - public var ChatSettings_AutomaticPhotoDownload: String { return self._s[408]! } - public var UserInfo_BotHelp: String { return self._s[409]! } - public var PrivacySettings_LastSeenEverybody: String { return self._s[410]! } - public var Checkout_Name: String { return self._s[411]! } - public var AutoDownloadSettings_DataUsage: String { return self._s[412]! } - public var Channel_BanUser_BlockFor: String { return self._s[413]! } - public var Checkout_ShippingAddress: String { return self._s[414]! } - public var AutoDownloadSettings_MaxVideoSize: String { return self._s[415]! } - public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[416]! } - public var Privacy_Forwards: String { return self._s[417]! } - public var Channel_BanUser_PermissionSendPolls: String { return self._s[418]! } - public var Appearance_ThemeCarouselNewNight: String { return self._s[419]! } + public var ChatSettings_AutomaticPhotoDownload: String { return self._s[409]! } + public var UserInfo_BotHelp: String { return self._s[410]! } + public var PrivacySettings_LastSeenEverybody: String { return self._s[411]! } + public var Checkout_Name: String { return self._s[412]! } + public var AutoDownloadSettings_DataUsage: String { return self._s[413]! } + public var Channel_BanUser_BlockFor: String { return self._s[414]! } + public var Checkout_ShippingAddress: String { return self._s[415]! } + public var AutoDownloadSettings_MaxVideoSize: String { return self._s[416]! } + public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[417]! } + public var Privacy_Forwards: String { return self._s[418]! } + public var Channel_BanUser_PermissionSendPolls: String { return self._s[419]! } + public var Appearance_ThemeCarouselNewNight: String { return self._s[420]! } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[422]!, self._r[422]!, [_0]) + return formatWithArgumentRanges(self._s[423]!, self._r[423]!, [_0]) } - public var Contacts_SortedByName: String { return self._s[423]! } - public var Group_OwnershipTransfer_Title: String { return self._s[424]! } - public var VoiceOver_Chat_OpenHint: String { return self._s[426]! } - public var Group_LeaveGroup: String { return self._s[427]! } - public var Settings_UsernameEmpty: String { return self._s[428]! } + public var Contacts_SortedByName: String { return self._s[424]! } + public var Group_OwnershipTransfer_Title: String { return self._s[425]! } + public var VoiceOver_Chat_OpenHint: String { return self._s[427]! } + public var Group_LeaveGroup: String { return self._s[428]! } + public var Settings_UsernameEmpty: String { return self._s[429]! } public func Notification_PinnedPollMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[429]!, self._r[429]!, [_0]) + return formatWithArgumentRanges(self._s[430]!, self._r[430]!, [_0]) } public func TwoStepAuth_ConfirmEmailDescription(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[430]!, self._r[430]!, [_1]) + return formatWithArgumentRanges(self._s[431]!, self._r[431]!, [_1]) } public func Channel_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[431]!, self._r[431]!, [_1, _2]) + return formatWithArgumentRanges(self._s[432]!, self._r[432]!, [_1, _2]) } - public var Message_ImageExpired: String { return self._s[432]! } - public var TwoStepAuth_RecoveryFailed: String { return self._s[434]! } - public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[435]! } - public var UserInfo_AddToExisting: String { return self._s[436]! } - public var TwoStepAuth_EnabledSuccess: String { return self._s[437]! } - public var Wallet_Send_SyncInProgress: String { return self._s[438]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[439]! } + public var Message_ImageExpired: String { return self._s[433]! } + public var TwoStepAuth_RecoveryFailed: String { return self._s[435]! } + public var EditTheme_Edit_Preview_OutgoingText: String { return self._s[436]! } + public var UserInfo_AddToExisting: String { return self._s[437]! } + public var TwoStepAuth_EnabledSuccess: String { return self._s[438]! } + public var Wallet_Send_SyncInProgress: String { return self._s[439]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[440]! } public func PUSH_CHANNEL_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[440]!, self._r[440]!, [_1]) + return formatWithArgumentRanges(self._s[441]!, self._r[441]!, [_1]) } - public var Notifications_GroupNotificationsAlert: String { return self._s[441]! } - public var Passport_Language_km: String { return self._s[442]! } - public var SocksProxySetup_AdNoticeHelp: String { return self._s[444]! } - public var VoiceOver_Media_PlaybackPlay: String { return self._s[445]! } - public var Notification_CallMissedShort: String { return self._s[446]! } - public var Wallet_Info_YourBalance: String { return self._s[447]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[448]! } - public var Watch_Compose_Send: String { return self._s[449]! } - public var Passport_Identity_TypeInternalPassportUploadScan: String { return self._s[452]! } - public var TwoFactorSetup_Email_Action: String { return self._s[453]! } - public var Conversation_HoldForVideo: String { return self._s[454]! } - public var Wallet_Configuration_ApplyErrorTextURLInvalidData: String { return self._s[455]! } - public var AuthSessions_OtherDevices: String { return self._s[456]! } - public var Wallet_TransactionInfo_CommentHeader: String { return self._s[457]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[459]! } - public var Appearance_AutoNightThemeDisabled: String { return self._s[461]! } - public var Channel_LinkItem: String { return self._s[462]! } + public var Notifications_GroupNotificationsAlert: String { return self._s[442]! } + public var Passport_Language_km: String { return self._s[443]! } + public var SocksProxySetup_AdNoticeHelp: String { return self._s[445]! } + public var VoiceOver_Media_PlaybackPlay: String { return self._s[446]! } + public var Notification_CallMissedShort: String { return self._s[447]! } + public var Wallet_Info_YourBalance: String { return self._s[448]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[449]! } + public var Watch_Compose_Send: String { return self._s[450]! } + public var Passport_Identity_TypeInternalPassportUploadScan: String { return self._s[453]! } + public var TwoFactorSetup_Email_Action: String { return self._s[454]! } + public var Conversation_HoldForVideo: String { return self._s[455]! } + public var Wallet_Configuration_ApplyErrorTextURLInvalidData: String { return self._s[456]! } + public var AuthSessions_OtherDevices: String { return self._s[457]! } + public var Wallet_TransactionInfo_CommentHeader: String { return self._s[458]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[460]! } + public var Appearance_AutoNightThemeDisabled: String { return self._s[462]! } + public var Channel_LinkItem: String { return self._s[463]! } public func PrivacySettings_LastSeenContactsMinusPlus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[463]!, self._r[463]!, [_0, _1]) + return formatWithArgumentRanges(self._s[464]!, self._r[464]!, [_0, _1]) } public func Passport_Identity_NativeNameTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[466]!, self._r[466]!, [_0]) + return formatWithArgumentRanges(self._s[467]!, self._r[467]!, [_0]) } - public var VoiceOver_Recording_StopAndPreview: String { return self._s[467]! } - public var Passport_Language_dv: String { return self._s[468]! } - public var Undo_LeftChannel: String { return self._s[469]! } - public var Notifications_ExceptionsMuted: String { return self._s[470]! } - public var ChatList_UnhideAction: String { return self._s[471]! } - public var Conversation_ContextMenuShare: String { return self._s[472]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[473]! } - public var ShareFileTip_Title: String { return self._s[474]! } - public var NotificationsSound_Chord: String { return self._s[475]! } - public var Wallet_TransactionInfo_OtherFeeHeader: String { return self._s[476]! } + public var VoiceOver_Recording_StopAndPreview: String { return self._s[468]! } + public var Passport_Language_dv: String { return self._s[469]! } + public var Undo_LeftChannel: String { return self._s[470]! } + public var Notifications_ExceptionsMuted: String { return self._s[471]! } + public var ChatList_UnhideAction: String { return self._s[472]! } + public var Conversation_ContextMenuShare: String { return self._s[473]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[474]! } + public var ShareFileTip_Title: String { return self._s[475]! } + public var NotificationsSound_Chord: String { return self._s[476]! } + public var Wallet_TransactionInfo_OtherFeeHeader: String { return self._s[477]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[477]!, self._r[477]!, [_1, _2]) + return formatWithArgumentRanges(self._s[478]!, self._r[478]!, [_1, _2]) } - public var Passport_Address_EditTemporaryRegistration: String { return self._s[478]! } + public var Passport_Address_EditTemporaryRegistration: String { return self._s[479]! } public func Notification_Joined(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[479]!, self._r[479]!, [_0]) + return formatWithArgumentRanges(self._s[480]!, self._r[480]!, [_0]) } public func Wallet_Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[480]!, self._r[480]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[481]!, self._r[481]!, [_1, _2, _3]) } - public var Wallet_Settings_ConfigurationInfo: String { return self._s[481]! } - public var Wallpaper_ErrorNotFound: String { return self._s[482]! } - public var Notification_CallOutgoingShort: String { return self._s[484]! } - public var Wallet_WordImport_IncorrectText: String { return self._s[485]! } + public var Wallet_Settings_ConfigurationInfo: String { return self._s[482]! } + public var Wallpaper_ErrorNotFound: String { return self._s[483]! } + public var Notification_CallOutgoingShort: String { return self._s[485]! } + public var Wallet_WordImport_IncorrectText: String { return self._s[486]! } public func Watch_Time_ShortFullAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[486]!, self._r[486]!, [_1, _2]) + return formatWithArgumentRanges(self._s[487]!, self._r[487]!, [_1, _2]) } - public var Passport_Address_TypeUtilityBill: String { return self._s[487]! } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[488]! } - public var ReportPeer_Report: String { return self._s[489]! } - public var SettingsSearch_Synonyms_Proxy_Title: String { return self._s[490]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[491]! } + public var Passport_Address_TypeUtilityBill: String { return self._s[488]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[489]! } + public var ReportPeer_Report: String { return self._s[490]! } + public var SettingsSearch_Synonyms_Proxy_Title: String { return self._s[491]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[492]! } public func VoiceOver_Chat_MusicTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[492]!, self._r[492]!, [_1, _2]) + return formatWithArgumentRanges(self._s[493]!, self._r[493]!, [_1, _2]) } - public var StickerPack_Send: String { return self._s[493]! } - public var Login_CodeSentInternal: String { return self._s[494]! } - public var Wallet_Month_GenJanuary: String { return self._s[495]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[496]! } + public var StickerPack_Send: String { return self._s[494]! } + public var Login_CodeSentInternal: String { return self._s[495]! } + public var Wallet_Month_GenJanuary: String { return self._s[496]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[497]! } public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[497]!, self._r[497]!, [_0]) + return formatWithArgumentRanges(self._s[498]!, self._r[498]!, [_0]) } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[499]!, self._r[499]!, [_0]) + return formatWithArgumentRanges(self._s[500]!, self._r[500]!, [_0]) } - public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[500]! } + public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[501]! } public func PUSH_PINNED_GAME(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[501]!, self._r[501]!, [_1]) + return formatWithArgumentRanges(self._s[502]!, self._r[502]!, [_1]) } - public var ReportPeer_ReasonViolence: String { return self._s[503]! } - public var Appearance_ShareThemeColor: String { return self._s[504]! } - public var Map_Locating: String { return self._s[505]! } + public var ReportPeer_ReasonViolence: String { return self._s[504]! } + public var Appearance_ShareThemeColor: String { return self._s[505]! } + public var Map_Locating: String { return self._s[506]! } public func VoiceOver_Chat_VideoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[506]!, self._r[506]!, [_0]) + return formatWithArgumentRanges(self._s[507]!, self._r[507]!, [_0]) } public func PUSH_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[507]!, self._r[507]!, [_1]) + return formatWithArgumentRanges(self._s[508]!, self._r[508]!, [_1]) } - public var AutoDownloadSettings_GroupChats: String { return self._s[509]! } - public var CheckoutInfo_SaveInfo: String { return self._s[510]! } - public var SharedMedia_EmptyLinksText: String { return self._s[512]! } - public var Passport_Address_CityPlaceholder: String { return self._s[513]! } - public var CheckoutInfo_ErrorStateInvalid: String { return self._s[514]! } - public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[515]! } - public var Wallet_Send_OwnAddressAlertTitle: String { return self._s[517]! } - public var Channel_AdminLog_CanAddAdmins: String { return self._s[518]! } + public var AutoDownloadSettings_GroupChats: String { return self._s[510]! } + public var CheckoutInfo_SaveInfo: String { return self._s[511]! } + public var SharedMedia_EmptyLinksText: String { return self._s[513]! } + public var Passport_Address_CityPlaceholder: String { return self._s[514]! } + public var CheckoutInfo_ErrorStateInvalid: String { return self._s[515]! } + public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[516]! } + public var Wallet_Send_OwnAddressAlertTitle: String { return self._s[518]! } + public var Channel_AdminLog_CanAddAdmins: String { return self._s[519]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[519]!, self._r[519]!, [_1]) + return formatWithArgumentRanges(self._s[520]!, self._r[520]!, [_1]) } public func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[520]!, self._r[520]!, [_0]) + return formatWithArgumentRanges(self._s[521]!, self._r[521]!, [_0]) } - public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[521]! } - public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[522]! } - public var ChangePhoneNumberCode_Code: String { return self._s[523]! } - public var Appearance_CreateTheme: String { return self._s[524]! } + public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[522]! } + public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[523]! } + public var ChangePhoneNumberCode_Code: String { return self._s[524]! } + public var Appearance_CreateTheme: String { return self._s[525]! } public func UserInfo_NotificationsDefaultSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[525]!, self._r[525]!, [_0]) + return formatWithArgumentRanges(self._s[526]!, self._r[526]!, [_0]) } - public var TwoStepAuth_SetupEmail: String { return self._s[526]! } - public var HashtagSearch_AllChats: String { return self._s[527]! } - public var MediaPlayer_UnknownTrack: String { return self._s[528]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[530]! } + public var TwoStepAuth_SetupEmail: String { return self._s[527]! } + public var HashtagSearch_AllChats: String { return self._s[528]! } + public var MediaPlayer_UnknownTrack: String { return self._s[529]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[531]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[531]!, self._r[531]!, [_0]) + return formatWithArgumentRanges(self._s[532]!, self._r[532]!, [_0]) } - public var PhotoEditor_QualityHigh: String { return self._s[533]! } + public var PhotoEditor_QualityHigh: String { return self._s[534]! } public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[534]!, self._r[534]!, [_0]) + return formatWithArgumentRanges(self._s[535]!, self._r[535]!, [_0]) } - public var ApplyLanguage_ApplyLanguageAction: String { return self._s[535]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[536]! } - public var Message_LiveLocation: String { return self._s[537]! } - public var Cache_LowDiskSpaceText: String { return self._s[538]! } - public var Wallet_Receive_ShareAddress: String { return self._s[539]! } - public var EditTheme_ErrorLinkTaken: String { return self._s[540]! } - public var Conversation_SendMessage: String { return self._s[541]! } - public var AuthSessions_EmptyTitle: String { return self._s[542]! } - public var Privacy_PhoneNumber: String { return self._s[543]! } - public var PeopleNearby_CreateGroup: String { return self._s[544]! } - public var CallSettings_UseLessData: String { return self._s[545]! } - public var NetworkUsageSettings_MediaDocumentDataSection: String { return self._s[546]! } - public var Stickers_AddToFavorites: String { return self._s[547]! } - public var Wallet_WordImport_Title: String { return self._s[548]! } - public var PhotoEditor_QualityLow: String { return self._s[549]! } - public var Watch_UserInfo_Unblock: String { return self._s[550]! } - public var Settings_Logout: String { return self._s[551]! } + public var ApplyLanguage_ApplyLanguageAction: String { return self._s[536]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[537]! } + public var Message_LiveLocation: String { return self._s[538]! } + public var Cache_LowDiskSpaceText: String { return self._s[539]! } + public var Wallet_Receive_ShareAddress: String { return self._s[540]! } + public var EditTheme_ErrorLinkTaken: String { return self._s[541]! } + public var Conversation_SendMessage: String { return self._s[542]! } + public var AuthSessions_EmptyTitle: String { return self._s[543]! } + public var Privacy_PhoneNumber: String { return self._s[544]! } + public var PeopleNearby_CreateGroup: String { return self._s[545]! } + public var CallSettings_UseLessData: String { return self._s[546]! } + public var NetworkUsageSettings_MediaDocumentDataSection: String { return self._s[547]! } + public var Stickers_AddToFavorites: String { return self._s[548]! } + public var Wallet_WordImport_Title: String { return self._s[549]! } + public var PhotoEditor_QualityLow: String { return self._s[550]! } + public var Watch_UserInfo_Unblock: String { return self._s[551]! } + public var Settings_Logout: String { return self._s[552]! } public func PUSH_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[552]!, self._r[552]!, [_1]) + return formatWithArgumentRanges(self._s[553]!, self._r[553]!, [_1]) } - public var ContactInfo_PhoneLabelWork: String { return self._s[553]! } - public var ChannelInfo_Stats: String { return self._s[554]! } - public var TextFormat_Link: String { return self._s[555]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[554]! } + public var ChannelInfo_Stats: String { return self._s[555]! } + public var TextFormat_Link: String { return self._s[556]! } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[556]!, self._r[556]!, [_1, _2]) + return formatWithArgumentRanges(self._s[557]!, self._r[557]!, [_1, _2]) } - public var Wallet_TransactionInfo_Title: String { return self._s[557]! } + public var Wallet_TransactionInfo_Title: String { return self._s[558]! } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[558]!, self._r[558]!, [_0]) + return formatWithArgumentRanges(self._s[559]!, self._r[559]!, [_0]) } - public var Watch_Notification_Joined: String { return self._s[559]! } - public var Group_Setup_TypePublicHelp: String { return self._s[560]! } - public var Passport_Scans_UploadNew: String { return self._s[561]! } - public var Checkout_LiabilityAlertTitle: String { return self._s[562]! } - public var DialogList_Title: String { return self._s[565]! } - public var NotificationSettings_ContactJoined: String { return self._s[566]! } - public var GroupInfo_LabelAdmin: String { return self._s[567]! } - public var KeyCommand_ChatInfo: String { return self._s[568]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[569]! } - public var Call_ReportIncludeLog: String { return self._s[570]! } + public var Watch_Notification_Joined: String { return self._s[560]! } + public var Group_Setup_TypePublicHelp: String { return self._s[561]! } + public var Passport_Scans_UploadNew: String { return self._s[562]! } + public var Checkout_LiabilityAlertTitle: String { return self._s[563]! } + public var DialogList_Title: String { return self._s[566]! } + public var NotificationSettings_ContactJoined: String { return self._s[567]! } + public var GroupInfo_LabelAdmin: String { return self._s[568]! } + public var KeyCommand_ChatInfo: String { return self._s[569]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[570]! } + public var Call_ReportIncludeLog: String { return self._s[571]! } public func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[573]!, self._r[573]!, [_0]) + return formatWithArgumentRanges(self._s[574]!, self._r[574]!, [_0]) } - public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[574]! } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[575]! } - public var LocalGroup_IrrelevantWarning: String { return self._s[576]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[577]! } - public var Message_Sticker: String { return self._s[578]! } - public var LastSeen_JustNow: String { return self._s[580]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[582]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[583]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[584]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[585]! } - public var TwoStepAuth_Email: String { return self._s[586]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsSound: String { return self._s[587]! } - public var PhotoEditor_BlurToolOff: String { return self._s[588]! } - public var Message_PinnedStickerMessage: String { return self._s[589]! } - public var ContactInfo_PhoneLabelPager: String { return self._s[590]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[591]! } - public var Passport_DiscardMessageTitle: String { return self._s[592]! } - public var Privacy_PaymentsTitle: String { return self._s[593]! } - public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[594]! } - public var ClearCache_StorageCache: String { return self._s[595]! } - public var Appearance_TextSizeSetting: String { return self._s[596]! } - public var Channel_DiscussionGroup_Header: String { return self._s[598]! } - public var VoiceOver_Chat_OptionSelected: String { return self._s[599]! } - public var Appearance_ColorTheme: String { return self._s[600]! } - public var UserInfo_ShareContact: String { return self._s[601]! } - public var Passport_Address_TypePassportRegistration: String { return self._s[602]! } - public var Common_More: String { return self._s[603]! } - public var Watch_Message_Call: String { return self._s[604]! } - public var Profile_EncryptionKey: String { return self._s[607]! } - public var Privacy_TopPeers: String { return self._s[608]! } - public var Conversation_StopPollConfirmation: String { return self._s[609]! } - public var Wallet_Words_NotDoneText: String { return self._s[611]! } - public var Privacy_TopPeersWarning: String { return self._s[613]! } - public var SettingsSearch_Synonyms_Data_DownloadInBackground: String { return self._s[614]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[615]! } - public var Wallet_RestoreFailed_EnterWords: String { return self._s[618]! } - public var DialogList_SearchSectionMessages: String { return self._s[619]! } - public var Notifications_ChannelNotifications: String { return self._s[620]! } - public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[621]! } - public var Passport_Language_sk: String { return self._s[622]! } - public var Notification_MessageLifetime1h: String { return self._s[623]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[624]! } - public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[625]! } - public var Call_ReportSkip: String { return self._s[627]! } - public var Cache_ServiceFiles: String { return self._s[628]! } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[629]! } - public var VoiceOver_Chat_YourFile: String { return self._s[630]! } - public var Map_Hybrid: String { return self._s[631]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[633]! } - public var ChatSettings_AutoDownloadVideos: String { return self._s[635]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[636]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[637]! } - public var SocksProxySetup_ProxyTelegram: String { return self._s[640]! } + public var Channel_AdminLog_InfoPanelChannelAlertText: String { return self._s[575]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[576]! } + public var LocalGroup_IrrelevantWarning: String { return self._s[577]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[578]! } + public var Message_Sticker: String { return self._s[579]! } + public var LastSeen_JustNow: String { return self._s[581]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[583]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[584]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[585]! } + public var Channel_EditAdmin_PermissionsHeader: String { return self._s[586]! } + public var TwoStepAuth_Email: String { return self._s[587]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsSound: String { return self._s[588]! } + public var PhotoEditor_BlurToolOff: String { return self._s[589]! } + public var Message_PinnedStickerMessage: String { return self._s[590]! } + public var ContactInfo_PhoneLabelPager: String { return self._s[591]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[592]! } + public var Passport_DiscardMessageTitle: String { return self._s[593]! } + public var Privacy_PaymentsTitle: String { return self._s[594]! } + public var EditTheme_Edit_Preview_IncomingReplyName: String { return self._s[595]! } + public var ClearCache_StorageCache: String { return self._s[596]! } + public var Appearance_TextSizeSetting: String { return self._s[597]! } + public var Channel_DiscussionGroup_Header: String { return self._s[599]! } + public var VoiceOver_Chat_OptionSelected: String { return self._s[600]! } + public var Appearance_ColorTheme: String { return self._s[601]! } + public var UserInfo_ShareContact: String { return self._s[602]! } + public var Passport_Address_TypePassportRegistration: String { return self._s[603]! } + public var Common_More: String { return self._s[604]! } + public var Watch_Message_Call: String { return self._s[605]! } + public var Profile_EncryptionKey: String { return self._s[608]! } + public var Privacy_TopPeers: String { return self._s[609]! } + public var Conversation_StopPollConfirmation: String { return self._s[610]! } + public var Wallet_Words_NotDoneText: String { return self._s[612]! } + public var Privacy_TopPeersWarning: String { return self._s[614]! } + public var SettingsSearch_Synonyms_Data_DownloadInBackground: String { return self._s[615]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[616]! } + public var Wallet_RestoreFailed_EnterWords: String { return self._s[619]! } + public var DialogList_SearchSectionMessages: String { return self._s[620]! } + public var Notifications_ChannelNotifications: String { return self._s[621]! } + public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[622]! } + public var Passport_Language_sk: String { return self._s[623]! } + public var Notification_MessageLifetime1h: String { return self._s[624]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[625]! } + public var Appearance_ThemePreview_Chat_5_Text: String { return self._s[626]! } + public var Call_ReportSkip: String { return self._s[628]! } + public var Cache_ServiceFiles: String { return self._s[629]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[630]! } + public var VoiceOver_Chat_YourFile: String { return self._s[631]! } + public var Map_Hybrid: String { return self._s[632]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[634]! } + public var ChatSettings_AutoDownloadVideos: String { return self._s[636]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[637]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[638]! } + public var SocksProxySetup_ProxyTelegram: String { return self._s[641]! } public func PUSH_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[641]!, self._r[641]!, [_1]) + return formatWithArgumentRanges(self._s[642]!, self._r[642]!, [_1]) } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[643]! } - public var ScheduledMessages_ScheduledToday: String { return self._s[644]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[644]! } + public var ScheduledMessages_ScheduledToday: String { return self._s[645]! } public func PUSH_CHAT_TITLE_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[645]!, self._r[645]!, [_1, _2]) + return formatWithArgumentRanges(self._s[646]!, self._r[646]!, [_1, _2]) } - public var Conversation_LiveLocationYou: String { return self._s[646]! } - public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[647]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[648]! } - public var UserInfo_ShareBot: String { return self._s[651]! } + public var Conversation_LiveLocationYou: String { return self._s[647]! } + public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[648]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[649]! } + public var UserInfo_ShareBot: String { return self._s[652]! } public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[652]!, self._r[652]!, [_1, _2]) + return formatWithArgumentRanges(self._s[653]!, self._r[653]!, [_1, _2]) } - public var Conversation_ClearCache: String { return self._s[653]! } - public var PhotoEditor_ShadowsTint: String { return self._s[654]! } - public var Message_Audio: String { return self._s[655]! } - public var Passport_Language_lt: String { return self._s[656]! } + public var Conversation_ClearCache: String { return self._s[654]! } + public var PhotoEditor_ShadowsTint: String { return self._s[655]! } + public var Message_Audio: String { return self._s[656]! } + public var Passport_Language_lt: String { return self._s[657]! } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[657]!, self._r[657]!, [_0]) + return formatWithArgumentRanges(self._s[658]!, self._r[658]!, [_0]) } - public var Permissions_SiriText_v0: String { return self._s[658]! } - public var Conversation_FileICloudDrive: String { return self._s[659]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[660]! } - public var Notifications_Badge_IncludeMutedChats: String { return self._s[661]! } + public var Permissions_SiriText_v0: String { return self._s[659]! } + public var Conversation_FileICloudDrive: String { return self._s[660]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[661]! } + public var Notifications_Badge_IncludeMutedChats: String { return self._s[662]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[662]!, self._r[662]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[663]!, self._r[663]!, [_1, _2, _3, _4, _5, _6]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[663]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[664]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[664]!, self._r[664]!, [_0]) + return formatWithArgumentRanges(self._s[665]!, self._r[665]!, [_0]) } - public var Channel_SignMessages: String { return self._s[665]! } + public var Channel_SignMessages: String { return self._s[666]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[666]!, self._r[666]!, [_1]) + return formatWithArgumentRanges(self._s[667]!, self._r[667]!, [_1]) } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[667]! } - public var Passport_ScanPassport: String { return self._s[668]! } - public var Watch_Suggestion_Thanks: String { return self._s[669]! } - public var BlockedUsers_AddNew: String { return self._s[670]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[668]! } + public var Passport_ScanPassport: String { return self._s[669]! } + public var Watch_Suggestion_Thanks: String { return self._s[670]! } + public var BlockedUsers_AddNew: String { return self._s[671]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[671]!, self._r[671]!, [_1, _2]) + return formatWithArgumentRanges(self._s[672]!, self._r[672]!, [_1, _2]) } - public var Watch_Message_Invoice: String { return self._s[672]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[673]! } - public var Month_GenJuly: String { return self._s[674]! } - public var CreatePoll_QuizInfo: String { return self._s[675]! } - public var UserInfo_StartSecretChatStart: String { return self._s[676]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[677]! } - public var IntentsSettings_SuggestByShare: String { return self._s[679]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[680]! } - public var Notification_ChannelInviterSelf: String { return self._s[681]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[682]! } + public var Watch_Message_Invoice: String { return self._s[673]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[674]! } + public var Month_GenJuly: String { return self._s[675]! } + public var CreatePoll_QuizInfo: String { return self._s[676]! } + public var UserInfo_StartSecretChatStart: String { return self._s[677]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[678]! } + public var IntentsSettings_SuggestByShare: String { return self._s[680]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[681]! } + public var Notification_ChannelInviterSelf: String { return self._s[682]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[683]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[683]!, self._r[683]!, [_1, _2]) + return formatWithArgumentRanges(self._s[684]!, self._r[684]!, [_1, _2]) } - public var CheckoutInfo_Title: String { return self._s[684]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[685]! } + public var CheckoutInfo_Title: String { return self._s[685]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[686]! } public func Map_DistanceAway(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[686]!, self._r[686]!, [_0]) + return formatWithArgumentRanges(self._s[687]!, self._r[687]!, [_0]) } - public var Passport_Identity_MainPage: String { return self._s[687]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[688]! } - public var Passport_Language_de: String { return self._s[689]! } - public var Update_Title: String { return self._s[690]! } - public var ContactInfo_PhoneLabelWorkFax: String { return self._s[691]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[692]! } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[693]! } - public var Notifications_ChannelNotificationsPreview: String { return self._s[694]! } - public var NotificationsSound_Telegraph: String { return self._s[695]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[696]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[697]! } + public var Passport_Identity_MainPage: String { return self._s[688]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[689]! } + public var Passport_Language_de: String { return self._s[690]! } + public var Update_Title: String { return self._s[691]! } + public var ContactInfo_PhoneLabelWorkFax: String { return self._s[692]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[693]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[694]! } + public var Notifications_ChannelNotificationsPreview: String { return self._s[695]! } + public var NotificationsSound_Telegraph: String { return self._s[696]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[697]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[698]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[698]!, self._r[698]!, [_0]) + return formatWithArgumentRanges(self._s[699]!, self._r[699]!, [_0]) } - public var ClearCache_Description: String { return self._s[699]! } - public var Stickers_SuggestAll: String { return self._s[700]! } - public var Conversation_ForwardTitle: String { return self._s[701]! } - public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[702]! } + public var ClearCache_Description: String { return self._s[700]! } + public var Stickers_SuggestAll: String { return self._s[701]! } + public var Conversation_ForwardTitle: String { return self._s[702]! } + public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[703]! } public func Notification_JoinedChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[703]!, self._r[703]!, [_0]) + return formatWithArgumentRanges(self._s[704]!, self._r[704]!, [_0]) } - public var Calls_NewCall: String { return self._s[704]! } - public var Call_StatusEnded: String { return self._s[705]! } - public var AutoDownloadSettings_DataUsageLow: String { return self._s[706]! } - public var Settings_ProxyConnected: String { return self._s[707]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[708]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[709]! } - public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[710]! } - public var Passport_PasswordPlaceholder: String { return self._s[711]! } - public var Message_PinnedInvoice: String { return self._s[712]! } - public var Passport_Identity_IssueDate: String { return self._s[713]! } - public var Passport_Language_pl: String { return self._s[714]! } + public var Calls_NewCall: String { return self._s[705]! } + public var Call_StatusEnded: String { return self._s[706]! } + public var AutoDownloadSettings_DataUsageLow: String { return self._s[707]! } + public var Settings_ProxyConnected: String { return self._s[708]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[709]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[710]! } + public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[711]! } + public var Passport_PasswordPlaceholder: String { return self._s[712]! } + public var Message_PinnedInvoice: String { return self._s[713]! } + public var Passport_Identity_IssueDate: String { return self._s[714]! } + public var Passport_Language_pl: String { return self._s[715]! } public func ChannelInfo_ChannelForbidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[715]!, self._r[715]!, [_0]) + return formatWithArgumentRanges(self._s[716]!, self._r[716]!, [_0]) } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[716]! } - public var Call_StatusConnecting: String { return self._s[717]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[717]! } + public var Call_StatusConnecting: String { return self._s[718]! } public func Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[718]!, self._r[718]!, [_0]) + return formatWithArgumentRanges(self._s[719]!, self._r[719]!, [_0]) } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[720]! } - public var Common_Edit: String { return self._s[721]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[722]! } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[721]! } + public var Common_Edit: String { return self._s[722]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[723]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[723]!, self._r[723]!, [_0]) + return formatWithArgumentRanges(self._s[724]!, self._r[724]!, [_0]) } - public var GroupInfo_ChatAdmins: String { return self._s[724]! } - public var PrivateDataSettings_Title: String { return self._s[725]! } - public var Login_CancelPhoneVerificationStop: String { return self._s[726]! } - public var ChatList_Read: String { return self._s[727]! } - public var Wallet_WordImport_Text: String { return self._s[728]! } - public var Undo_ChatClearedForBothSides: String { return self._s[729]! } - public var GroupPermission_SectionTitle: String { return self._s[730]! } - public var TwoFactorSetup_Intro_Title: String { return self._s[732]! } + public var GroupInfo_ChatAdmins: String { return self._s[725]! } + public var PrivateDataSettings_Title: String { return self._s[726]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[727]! } + public var ChatList_Read: String { return self._s[728]! } + public var Wallet_WordImport_Text: String { return self._s[729]! } + public var Undo_ChatClearedForBothSides: String { return self._s[730]! } + public var GroupPermission_SectionTitle: String { return self._s[731]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[733]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[733]!, self._r[733]!, [_1, _2]) + return formatWithArgumentRanges(self._s[734]!, self._r[734]!, [_1, _2]) } - public var Checkout_ErrorPaymentFailed: String { return self._s[734]! } - public var Update_UpdateApp: String { return self._s[735]! } - public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[736]! } - public var Settings_Appearance: String { return self._s[737]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[741]! } - public var Watch_Location_Access: String { return self._s[742]! } - public var ShareMenu_CopyShareLink: String { return self._s[744]! } - public var TwoStepAuth_SetupHintTitle: String { return self._s[745]! } - public var Conversation_Theme: String { return self._s[747]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[735]! } + public var Update_UpdateApp: String { return self._s[736]! } + public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[737]! } + public var Settings_Appearance: String { return self._s[738]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[742]! } + public var Watch_Location_Access: String { return self._s[743]! } + public var ShareMenu_CopyShareLink: String { return self._s[745]! } + public var TwoStepAuth_SetupHintTitle: String { return self._s[746]! } + public var Conversation_Theme: String { return self._s[748]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[748]!, self._r[748]!, [_0]) + return formatWithArgumentRanges(self._s[749]!, self._r[749]!, [_0]) } - public var Notifications_ClassicTones: String { return self._s[749]! } - public var Weekday_ShortWednesday: String { return self._s[750]! } - public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[751]! } - public var Undo_LeftGroup: String { return self._s[754]! } - public var Wallet_RestoreFailed_Text: String { return self._s[755]! } - public var Conversation_LinkDialogCopy: String { return self._s[756]! } - public var Wallet_TransactionInfo_NoAddress: String { return self._s[758]! } - public var Wallet_Navigation_Back: String { return self._s[759]! } - public var KeyCommand_FocusOnInputField: String { return self._s[760]! } - public var Contacts_SelectAll: String { return self._s[761]! } - public var Preview_SaveToCameraRoll: String { return self._s[762]! } - public var PrivacySettings_PasscodeOff: String { return self._s[763]! } - public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[764]! } - public var Wallpaper_Title: String { return self._s[765]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[766]! } - public var AccessDenied_Camera: String { return self._s[767]! } - public var Watch_Compose_CurrentLocation: String { return self._s[768]! } - public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[770]! } + public var Notifications_ClassicTones: String { return self._s[750]! } + public var Weekday_ShortWednesday: String { return self._s[751]! } + public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[752]! } + public var Undo_LeftGroup: String { return self._s[755]! } + public var Wallet_RestoreFailed_Text: String { return self._s[756]! } + public var Conversation_LinkDialogCopy: String { return self._s[757]! } + public var Wallet_TransactionInfo_NoAddress: String { return self._s[759]! } + public var Wallet_Navigation_Back: String { return self._s[760]! } + public var KeyCommand_FocusOnInputField: String { return self._s[761]! } + public var Contacts_SelectAll: String { return self._s[762]! } + public var Preview_SaveToCameraRoll: String { return self._s[763]! } + public var PrivacySettings_PasscodeOff: String { return self._s[764]! } + public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[765]! } + public var Wallpaper_Title: String { return self._s[766]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[767]! } + public var AccessDenied_Camera: String { return self._s[768]! } + public var Watch_Compose_CurrentLocation: String { return self._s[769]! } + public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[771]! } public func SecretImage_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[771]!, self._r[771]!, [_0]) + return formatWithArgumentRanges(self._s[772]!, self._r[772]!, [_0]) } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[772]! } - public var Passport_Language_ro: String { return self._s[773]! } - public var EditTheme_UploadNewTheme: String { return self._s[774]! } - public var CheckoutInfo_SaveInfoHelp: String { return self._s[775]! } - public var Wallet_Intro_Terms: String { return self._s[776]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[773]! } + public var Passport_Language_ro: String { return self._s[774]! } + public var EditTheme_UploadNewTheme: String { return self._s[775]! } + public var CheckoutInfo_SaveInfoHelp: String { return self._s[776]! } + public var Wallet_Intro_Terms: String { return self._s[777]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[777]!, self._r[777]!, [_0]) + return formatWithArgumentRanges(self._s[778]!, self._r[778]!, [_0]) } - public var Login_CancelPhoneVerification: String { return self._s[778]! } - public var State_ConnectingToProxy: String { return self._s[779]! } - public var Calls_RatingTitle: String { return self._s[780]! } - public var Generic_ErrorMoreInfo: String { return self._s[781]! } - public var ChatList_Search_ShowMore: String { return self._s[782]! } - public var Appearance_PreviewReplyText: String { return self._s[783]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[784]! } + public var Login_CancelPhoneVerification: String { return self._s[779]! } + public var State_ConnectingToProxy: String { return self._s[780]! } + public var Calls_RatingTitle: String { return self._s[781]! } + public var Generic_ErrorMoreInfo: String { return self._s[782]! } + public var ChatList_Search_ShowMore: String { return self._s[783]! } + public var Appearance_PreviewReplyText: String { return self._s[784]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[785]! } public func Wallet_Send_Balance(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[785]!, self._r[785]!, [_0]) + return formatWithArgumentRanges(self._s[786]!, self._r[786]!, [_0]) } - public var IntentsSettings_SuggestedChatsContacts: String { return self._s[786]! } - public var SharedMedia_CategoryLinks: String { return self._s[787]! } - public var Calls_Missed: String { return self._s[788]! } - public var Cache_Photos: String { return self._s[792]! } - public var GroupPermission_NoAddMembers: String { return self._s[793]! } - public var ScheduledMessages_Title: String { return self._s[794]! } + public var IntentsSettings_SuggestedChatsContacts: String { return self._s[787]! } + public var SharedMedia_CategoryLinks: String { return self._s[788]! } + public var Calls_Missed: String { return self._s[789]! } + public var Cache_Photos: String { return self._s[793]! } + public var GroupPermission_NoAddMembers: String { return self._s[794]! } + public var ScheduledMessages_Title: String { return self._s[795]! } public func Channel_AdminLog_MessageUnpinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[795]!, self._r[795]!, [_0]) + return formatWithArgumentRanges(self._s[796]!, self._r[796]!, [_0]) } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[796]! } - public var Settings_ProxyDisabled: String { return self._s[797]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[797]! } + public var Settings_ProxyDisabled: String { return self._s[798]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[798]!, self._r[798]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[799]!, self._r[799]!, [_1, _2, _3, _4]) } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[799]!, self._r[799]!, [_0]) + return formatWithArgumentRanges(self._s[800]!, self._r[800]!, [_0]) } - public var ChatList_Context_RemoveFromRecents: String { return self._s[801]! } - public var Appearance_Title: String { return self._s[802]! } + public var ChatList_Context_RemoveFromRecents: String { return self._s[802]! } + public var Appearance_Title: String { return self._s[803]! } public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[804]!, self._r[804]!, [_0]) + return formatWithArgumentRanges(self._s[805]!, self._r[805]!, [_0]) } - public var Conversation_WalletRequiredText: String { return self._s[805]! } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[806]! } - public var OldChannels_NoticeCreateText: String { return self._s[807]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[808]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[809]! } - public var Preview_DeletePhoto: String { return self._s[810]! } - public var Appearance_AppIconFilledX: String { return self._s[811]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[812]! } + public var Conversation_WalletRequiredText: String { return self._s[806]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[807]! } + public var OldChannels_NoticeCreateText: String { return self._s[808]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[809]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[810]! } + public var Preview_DeletePhoto: String { return self._s[811]! } + public var Appearance_AppIconFilledX: String { return self._s[812]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[813]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[813]!, self._r[813]!, [_0]) + return formatWithArgumentRanges(self._s[814]!, self._r[814]!, [_0]) } - public var Coub_TapForSound: String { return self._s[816]! } - public var Map_LocatingError: String { return self._s[817]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[819]! } - public var Conversation_SendMessage_SendSilently: String { return self._s[820]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[821]! } + public var Coub_TapForSound: String { return self._s[817]! } + public var Map_LocatingError: String { return self._s[818]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[820]! } + public var Conversation_SendMessage_SendSilently: String { return self._s[821]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[822]! } public func Wallet_Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[822]!, self._r[822]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[823]!, self._r[823]!, [_1, _2, _3]) } - public var Passport_ForgottenPassword: String { return self._s[823]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[824]! } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[825]! } - public var Login_TermsOfServiceSignupDecline: String { return self._s[827]! } - public var Channel_Moderator_AccessLevelRevoke: String { return self._s[828]! } - public var Message_Location: String { return self._s[829]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[830]! } - public var Channel_Management_Title: String { return self._s[831]! } - public var DialogList_SearchSectionDialogs: String { return self._s[833]! } - public var Compose_NewChannel_Members: String { return self._s[834]! } + public var Passport_ForgottenPassword: String { return self._s[824]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[825]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[826]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[828]! } + public var Channel_Moderator_AccessLevelRevoke: String { return self._s[829]! } + public var Message_Location: String { return self._s[830]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[831]! } + public var Channel_Management_Title: String { return self._s[832]! } + public var DialogList_SearchSectionDialogs: String { return self._s[834]! } + public var Compose_NewChannel_Members: String { return self._s[835]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[835]!, self._r[835]!, [_0]) + return formatWithArgumentRanges(self._s[836]!, self._r[836]!, [_0]) } - public var GroupInfo_Location: String { return self._s[836]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[837]! } - public var ClearCache_Clear: String { return self._s[838]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[839]! } - public var PhotoEditor_WarmthTool: String { return self._s[840]! } - public var Passport_Language_tr: String { return self._s[841]! } + public var GroupInfo_Location: String { return self._s[837]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[838]! } + public var ClearCache_Clear: String { return self._s[839]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[840]! } + public var PhotoEditor_WarmthTool: String { return self._s[841]! } + public var Passport_Language_tr: String { return self._s[842]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[842]!, self._r[842]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[843]!, self._r[843]!, [_1, _2, _3]) } - public var OldChannels_NoticeUpgradeText: String { return self._s[843]! } - public var Login_ResetAccountProtected_Reset: String { return self._s[845]! } - public var Watch_PhotoView_Title: String { return self._s[846]! } - public var Passport_Phone_Delete: String { return self._s[847]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[848]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[849]! } - public var GroupInfo_Permissions: String { return self._s[850]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[851]! } - public var Profile_ShareContactButton: String { return self._s[852]! } - public var ChatSettings_Other: String { return self._s[853]! } - public var UserInfo_NotificationsDisabled: String { return self._s[854]! } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[855]! } - public var LastSeen_WithinAMonth: String { return self._s[856]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[857]! } - public var Conversation_ReportGroupLocation: String { return self._s[858]! } - public var Conversation_EncryptionCanceled: String { return self._s[859]! } - public var MediaPicker_GroupDescription: String { return self._s[860]! } - public var WebSearch_Images: String { return self._s[861]! } + public var OldChannels_NoticeUpgradeText: String { return self._s[844]! } + public var Login_ResetAccountProtected_Reset: String { return self._s[846]! } + public var Watch_PhotoView_Title: String { return self._s[847]! } + public var Passport_Phone_Delete: String { return self._s[848]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[849]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[850]! } + public var GroupInfo_Permissions: String { return self._s[851]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[852]! } + public var Profile_ShareContactButton: String { return self._s[853]! } + public var ChatSettings_Other: String { return self._s[854]! } + public var UserInfo_NotificationsDisabled: String { return self._s[855]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[856]! } + public var LastSeen_WithinAMonth: String { return self._s[857]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[858]! } + public var Conversation_ReportGroupLocation: String { return self._s[859]! } + public var Conversation_EncryptionCanceled: String { return self._s[860]! } + public var MediaPicker_GroupDescription: String { return self._s[861]! } + public var WebSearch_Images: String { return self._s[862]! } public func Channel_Management_PromotedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[862]!, self._r[862]!, [_0]) + return formatWithArgumentRanges(self._s[863]!, self._r[863]!, [_0]) } - public var Message_Photo: String { return self._s[863]! } - public var PasscodeSettings_HelpBottom: String { return self._s[864]! } - public var AutoDownloadSettings_VideosTitle: String { return self._s[865]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[866]! } - public var Passport_Identity_AddDriversLicense: String { return self._s[867]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[868]! } - public var NotificationsSound_Calypso: String { return self._s[869]! } - public var Map_Map: String { return self._s[870]! } - public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[872]! } - public var ChatSettings_TextSizeUnits: String { return self._s[873]! } + public var Message_Photo: String { return self._s[864]! } + public var PasscodeSettings_HelpBottom: String { return self._s[865]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[866]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[867]! } + public var Passport_Identity_AddDriversLicense: String { return self._s[868]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[869]! } + public var NotificationsSound_Calypso: String { return self._s[870]! } + public var Map_Map: String { return self._s[871]! } + public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[873]! } + public var ChatSettings_TextSizeUnits: String { return self._s[874]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[874]!, self._r[874]!, [_0]) + return formatWithArgumentRanges(self._s[875]!, self._r[875]!, [_0]) } - public var Common_of: String { return self._s[875]! } - public var Conversation_ForwardContacts: String { return self._s[878]! } - public var IntentsSettings_SuggestByAll: String { return self._s[880]! } + public var Common_of: String { return self._s[876]! } + public var Conversation_ForwardContacts: String { return self._s[879]! } + public var IntentsSettings_SuggestByAll: String { return self._s[881]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[881]!, self._r[881]!, [_0]) + return formatWithArgumentRanges(self._s[882]!, self._r[882]!, [_0]) } - public var Passport_Language_hy: String { return self._s[882]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[883]! } - public var AutoDownloadSettings_Reset: String { return self._s[884]! } - public var Wallet_TransactionInfo_AddressCopied: String { return self._s[885]! } - public var Paint_ClearConfirm: String { return self._s[886]! } - public var Camera_VideoMode: String { return self._s[887]! } + public var Passport_Language_hy: String { return self._s[883]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[884]! } + public var AutoDownloadSettings_Reset: String { return self._s[885]! } + public var Wallet_TransactionInfo_AddressCopied: String { return self._s[886]! } + public var Paint_ClearConfirm: String { return self._s[887]! } + public var Camera_VideoMode: String { return self._s[888]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[888]!, self._r[888]!, [_0]) + return formatWithArgumentRanges(self._s[889]!, self._r[889]!, [_0]) } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[889]! } - public var Conversation_ViewBackground: String { return self._s[890]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[890]! } + public var Conversation_ViewBackground: String { return self._s[891]! } public func Wallet_Info_TransactionDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[891]!, self._r[891]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[892]!, self._r[892]!, [_1, _2, _3]) } - public var Passport_Language_el: String { return self._s[892]! } - public var PhotoEditor_Original: String { return self._s[893]! } - public var Settings_FAQ_Button: String { return self._s[895]! } - public var Channel_Setup_PublicNoLink: String { return self._s[897]! } - public var Conversation_UnsupportedMedia: String { return self._s[898]! } - public var Conversation_SlideToCancel: String { return self._s[899]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[900]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[901]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[902]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[903]! } - public var AutoNightTheme_NotAvailable: String { return self._s[904]! } - public var Conversation_Owner: String { return self._s[905]! } - public var Common_Create: String { return self._s[906]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[907]! } - public var ContactList_Context_Call: String { return self._s[908]! } - public var Localization_ChooseLanguage: String { return self._s[910]! } - public var ChatList_Context_AddToContacts: String { return self._s[912]! } - public var OldChannels_NoticeTitle: String { return self._s[913]! } - public var Settings_Proxy: String { return self._s[915]! } - public var Privacy_TopPeersHelp: String { return self._s[916]! } - public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[917]! } - public var Chat_UnsendMyMessages: String { return self._s[918]! } + public var Passport_Language_el: String { return self._s[893]! } + public var PhotoEditor_Original: String { return self._s[894]! } + public var Settings_FAQ_Button: String { return self._s[896]! } + public var Channel_Setup_PublicNoLink: String { return self._s[898]! } + public var Conversation_UnsupportedMedia: String { return self._s[899]! } + public var Conversation_SlideToCancel: String { return self._s[900]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[901]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[902]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[903]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[904]! } + public var AutoNightTheme_NotAvailable: String { return self._s[905]! } + public var Conversation_Owner: String { return self._s[906]! } + public var Common_Create: String { return self._s[907]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[908]! } + public var ContactList_Context_Call: String { return self._s[909]! } + public var Localization_ChooseLanguage: String { return self._s[911]! } + public var ChatList_Context_AddToContacts: String { return self._s[913]! } + public var OldChannels_NoticeTitle: String { return self._s[914]! } + public var Settings_Proxy: String { return self._s[916]! } + public var Privacy_TopPeersHelp: String { return self._s[917]! } + public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[918]! } + public var Chat_UnsendMyMessages: String { return self._s[919]! } public func VoiceOver_Chat_Duration(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[919]!, self._r[919]!, [_0]) + return formatWithArgumentRanges(self._s[920]!, self._r[920]!, [_0]) } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[920]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[921]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[922]!, self._r[922]!, [_0]) + return formatWithArgumentRanges(self._s[923]!, self._r[923]!, [_0]) } - public var Contacts_SortedByPresence: String { return self._s[923]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[924]! } - public var Cache_Title: String { return self._s[925]! } + public var Contacts_SortedByPresence: String { return self._s[924]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[925]! } + public var Cache_Title: String { return self._s[926]! } public func Login_PhoneBannedEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[926]!, self._r[926]!, [_0]) + return formatWithArgumentRanges(self._s[927]!, self._r[927]!, [_0]) } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[927]! } - public var Channel_Moderator_Title: String { return self._s[928]! } - public var InstantPage_AutoNightTheme: String { return self._s[930]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[928]! } + public var Channel_Moderator_Title: String { return self._s[929]! } + public var InstantPage_AutoNightTheme: String { return self._s[931]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[933]!, self._r[933]!, [_1]) + return formatWithArgumentRanges(self._s[934]!, self._r[934]!, [_1]) } - public var Passport_Scans_Upload: String { return self._s[934]! } - public var Undo_Undo: String { return self._s[936]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[937]! } - public var TwoStepAuth_RemovePassword: String { return self._s[938]! } - public var Common_Delete: String { return self._s[939]! } - public var Contacts_AddPeopleNearby: String { return self._s[941]! } - public var Conversation_ContextMenuDelete: String { return self._s[942]! } - public var SocksProxySetup_Credentials: String { return self._s[943]! } - public var Appearance_EditTheme: String { return self._s[945]! } - public var ClearCache_StorageOtherApps: String { return self._s[946]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[947]! } - public var Wallet_Send_NetworkErrorText: String { return self._s[948]! } - public var AuthSessions_DevicesTitle: String { return self._s[950]! } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[952]! } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[953]! } - public var Passport_Language_id: String { return self._s[955]! } - public var WallpaperSearch_ColorTeal: String { return self._s[956]! } - public var ChannelIntro_Title: String { return self._s[957]! } + public var Passport_Scans_Upload: String { return self._s[935]! } + public var Undo_Undo: String { return self._s[937]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[938]! } + public var TwoStepAuth_RemovePassword: String { return self._s[939]! } + public var Common_Delete: String { return self._s[940]! } + public var Contacts_AddPeopleNearby: String { return self._s[942]! } + public var Conversation_ContextMenuDelete: String { return self._s[943]! } + public var SocksProxySetup_Credentials: String { return self._s[944]! } + public var Appearance_EditTheme: String { return self._s[946]! } + public var ClearCache_StorageOtherApps: String { return self._s[947]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[948]! } + public var Wallet_Send_NetworkErrorText: String { return self._s[949]! } + public var AuthSessions_DevicesTitle: String { return self._s[951]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[953]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[954]! } + public var Passport_Language_id: String { return self._s[956]! } + public var WallpaperSearch_ColorTeal: String { return self._s[957]! } + public var ChannelIntro_Title: String { return self._s[958]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[958]!, self._r[958]!, [_0]) + return formatWithArgumentRanges(self._s[959]!, self._r[959]!, [_0]) } - public var VoiceOver_Chat_OpenLinkHint: String { return self._s[960]! } - public var VoiceOver_Chat_Reply: String { return self._s[961]! } - public var ScheduledMessages_BotActionUnavailable: String { return self._s[962]! } - public var Channel_Info_Description: String { return self._s[963]! } - public var Stickers_FavoriteStickers: String { return self._s[964]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[965]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[966]! } - public var ChatSearch_ResultsTooltip: String { return self._s[967]! } - public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[968]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[969]! } - public var Group_PublicLink_Placeholder: String { return self._s[970]! } - public var Notifications_ExceptionsDefaultSound: String { return self._s[971]! } + public var VoiceOver_Chat_OpenLinkHint: String { return self._s[961]! } + public var VoiceOver_Chat_Reply: String { return self._s[962]! } + public var ScheduledMessages_BotActionUnavailable: String { return self._s[963]! } + public var Channel_Info_Description: String { return self._s[964]! } + public var Stickers_FavoriteStickers: String { return self._s[965]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[966]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[967]! } + public var ChatSearch_ResultsTooltip: String { return self._s[968]! } + public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[969]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[970]! } + public var Group_PublicLink_Placeholder: String { return self._s[971]! } + public var Notifications_ExceptionsDefaultSound: String { return self._s[972]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[972]!, self._r[972]!, [_1]) + return formatWithArgumentRanges(self._s[973]!, self._r[973]!, [_1]) } - public var TextFormat_Underline: String { return self._s[973]! } + public var TextFormat_Underline: String { return self._s[974]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[975]!, self._r[975]!, [_1, _2]) + return formatWithArgumentRanges(self._s[976]!, self._r[976]!, [_1, _2]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[976]!, self._r[976]!, [_0]) + return formatWithArgumentRanges(self._s[977]!, self._r[977]!, [_0]) } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[977]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[978]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[978]!, self._r[978]!, [_1, _2]) + return formatWithArgumentRanges(self._s[979]!, self._r[979]!, [_1, _2]) } - public var Wallet_Intro_ImportExisting: String { return self._s[979]! } - public var GroupPermission_Delete: String { return self._s[980]! } - public var Passport_Language_uk: String { return self._s[981]! } - public var StickerPack_HideStickers: String { return self._s[983]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[984]! } + public var Wallet_Intro_ImportExisting: String { return self._s[980]! } + public var GroupPermission_Delete: String { return self._s[981]! } + public var Passport_Language_uk: String { return self._s[982]! } + public var StickerPack_HideStickers: String { return self._s[984]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[985]! } public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[985]!, self._r[985]!, [_1, _2]) + return formatWithArgumentRanges(self._s[986]!, self._r[986]!, [_1, _2]) } - public var Activity_UploadingVideoMessage: String { return self._s[986]! } + public var Activity_UploadingVideoMessage: String { return self._s[987]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[987]!, self._r[987]!, [_0]) + return formatWithArgumentRanges(self._s[988]!, self._r[988]!, [_0]) } - public var Channel_TitleInfo: String { return self._s[988]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[989]! } - public var Settings_CallSettings: String { return self._s[990]! } - public var Camera_SquareMode: String { return self._s[991]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[992]! } - public var GroupInfo_SharedMediaNone: String { return self._s[993]! } + public var Channel_TitleInfo: String { return self._s[989]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[990]! } + public var Settings_CallSettings: String { return self._s[991]! } + public var Camera_SquareMode: String { return self._s[992]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[993]! } + public var GroupInfo_SharedMediaNone: String { return self._s[994]! } public func PUSH_MESSAGE_VIDEO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[994]!, self._r[994]!, [_1]) + return formatWithArgumentRanges(self._s[995]!, self._r[995]!, [_1]) } - public var Bot_GenericBotStatus: String { return self._s[995]! } - public var Application_Update: String { return self._s[997]! } - public var Month_ShortJanuary: String { return self._s[998]! } - public var Contacts_PermissionsKeepDisabled: String { return self._s[999]! } - public var Channel_AdminLog_BanReadMessages: String { return self._s[1000]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[1001]! } - public var Passport_Address_Street2Placeholder: String { return self._s[1002]! } + public var Bot_GenericBotStatus: String { return self._s[996]! } + public var Application_Update: String { return self._s[998]! } + public var Month_ShortJanuary: String { return self._s[999]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[1000]! } + public var Channel_AdminLog_BanReadMessages: String { return self._s[1001]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[1002]! } + public var Passport_Address_Street2Placeholder: String { return self._s[1003]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1003]!, self._r[1003]!, [_0]) + return formatWithArgumentRanges(self._s[1004]!, self._r[1004]!, [_0]) } - public var NetworkUsageSettings_Cellular: String { return self._s[1004]! } - public var Appearance_PreviewOutgoingText: String { return self._s[1005]! } + public var NetworkUsageSettings_Cellular: String { return self._s[1005]! } + public var Appearance_PreviewOutgoingText: String { return self._s[1006]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1006]!, self._r[1006]!, [_0]) + return formatWithArgumentRanges(self._s[1007]!, self._r[1007]!, [_0]) } - public var Notifications_PermissionsAllowInSettings: String { return self._s[1007]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[1009]! } - public var Map_Directions: String { return self._s[1010]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[1012]! } - public var Appearance_ThemeDay: String { return self._s[1013]! } - public var LogoutOptions_LogOut: String { return self._s[1014]! } - public var Group_PublicLink_Title: String { return self._s[1016]! } - public var Channel_AddBotErrorNoRights: String { return self._s[1017]! } - public var ChatList_Search_ShowLess: String { return self._s[1018]! } - public var Passport_Identity_AddPassport: String { return self._s[1019]! } - public var LocalGroup_ButtonTitle: String { return self._s[1020]! } - public var Call_Message: String { return self._s[1021]! } - public var PhotoEditor_ExposureTool: String { return self._s[1022]! } - public var Wallet_Receive_CommentInfo: String { return self._s[1024]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[1025]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[1027]! } - public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[1028]! } - public var Appearance_Preview: String { return self._s[1029]! } - public var Compose_ChannelMembers: String { return self._s[1030]! } - public var Conversation_DeleteManyMessages: String { return self._s[1031]! } - public var ReportPeer_ReasonOther_Title: String { return self._s[1032]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1033]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1034]! } - public var Channel_Stickers_CreateYourOwn: String { return self._s[1037]! } - public var Conversation_UpdateTelegram: String { return self._s[1038]! } - public var EditTheme_Create_TopInfo: String { return self._s[1039]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[1008]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[1010]! } + public var Map_Directions: String { return self._s[1011]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[1013]! } + public var Appearance_ThemeDay: String { return self._s[1014]! } + public var LogoutOptions_LogOut: String { return self._s[1015]! } + public var Group_PublicLink_Title: String { return self._s[1017]! } + public var Channel_AddBotErrorNoRights: String { return self._s[1018]! } + public var ChatList_Search_ShowLess: String { return self._s[1019]! } + public var Passport_Identity_AddPassport: String { return self._s[1020]! } + public var LocalGroup_ButtonTitle: String { return self._s[1021]! } + public var Call_Message: String { return self._s[1022]! } + public var PhotoEditor_ExposureTool: String { return self._s[1023]! } + public var Wallet_Receive_CommentInfo: String { return self._s[1025]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[1026]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[1028]! } + public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[1029]! } + public var Appearance_Preview: String { return self._s[1030]! } + public var Compose_ChannelMembers: String { return self._s[1031]! } + public var Conversation_DeleteManyMessages: String { return self._s[1032]! } + public var ReportPeer_ReasonOther_Title: String { return self._s[1033]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1034]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1035]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[1038]! } + public var Conversation_UpdateTelegram: String { return self._s[1039]! } + public var EditTheme_Create_TopInfo: String { return self._s[1040]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1040]!, self._r[1040]!, [_0]) + return formatWithArgumentRanges(self._s[1041]!, self._r[1041]!, [_0]) } - public var Wallet_WordCheck_Continue: String { return self._s[1041]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[1042]! } - public var IntentsSettings_ResetAll: String { return self._s[1043]! } + public var Wallet_WordCheck_Continue: String { return self._s[1042]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[1043]! } + public var IntentsSettings_ResetAll: String { return self._s[1044]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1044]!, self._r[1044]!, [_1]) + return formatWithArgumentRanges(self._s[1045]!, self._r[1045]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[1045]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[1046]! } + public var GroupInfo_Administrators_Title: String { return self._s[1046]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[1047]! } public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1047]!, self._r[1047]!, [_0]) + return formatWithArgumentRanges(self._s[1048]!, self._r[1048]!, [_0]) } - public var Tour_Title3: String { return self._s[1048]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[1049]! } - public var Clipboard_SendPhoto: String { return self._s[1053]! } - public var MediaPicker_Videos: String { return self._s[1054]! } - public var Passport_Email_Title: String { return self._s[1055]! } + public var Tour_Title3: String { return self._s[1049]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[1050]! } + public var Clipboard_SendPhoto: String { return self._s[1054]! } + public var MediaPicker_Videos: String { return self._s[1055]! } + public var Passport_Email_Title: String { return self._s[1056]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1056]!, self._r[1056]!, [_0]) + return formatWithArgumentRanges(self._s[1057]!, self._r[1057]!, [_0]) } - public var StickerPacksSettings_Title: String { return self._s[1057]! } - public var Conversation_MessageDialogDelete: String { return self._s[1058]! } - public var Privacy_Calls_CustomHelp: String { return self._s[1060]! } - public var Message_Wallpaper: String { return self._s[1061]! } - public var MemberSearch_BotSection: String { return self._s[1062]! } - public var GroupInfo_SetSound: String { return self._s[1063]! } - public var Core_ServiceUserStatus: String { return self._s[1064]! } - public var LiveLocationUpdated_JustNow: String { return self._s[1065]! } - public var Call_StatusFailed: String { return self._s[1066]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[1067]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1068]! } - public var TwoStepAuth_SetPassword: String { return self._s[1069]! } - public var Permissions_PeopleNearbyText_v0: String { return self._s[1070]! } + public var StickerPacksSettings_Title: String { return self._s[1058]! } + public var Conversation_MessageDialogDelete: String { return self._s[1059]! } + public var Privacy_Calls_CustomHelp: String { return self._s[1061]! } + public var Message_Wallpaper: String { return self._s[1062]! } + public var MemberSearch_BotSection: String { return self._s[1063]! } + public var GroupInfo_SetSound: String { return self._s[1064]! } + public var Core_ServiceUserStatus: String { return self._s[1065]! } + public var LiveLocationUpdated_JustNow: String { return self._s[1066]! } + public var Call_StatusFailed: String { return self._s[1067]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[1068]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1069]! } + public var TwoStepAuth_SetPassword: String { return self._s[1070]! } + public var Permissions_PeopleNearbyText_v0: String { return self._s[1071]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1072]!, self._r[1072]!, [_0]) + return formatWithArgumentRanges(self._s[1073]!, self._r[1073]!, [_0]) } - public var Calls_SubmitRating: String { return self._s[1073]! } - public var Map_NoPlacesNearby: String { return self._s[1074]! } - public var Profile_Username: String { return self._s[1075]! } - public var Bot_DescriptionTitle: String { return self._s[1076]! } - public var MaskStickerSettings_Title: String { return self._s[1077]! } - public var SharedMedia_CategoryOther: String { return self._s[1078]! } - public var GroupInfo_SetGroupPhoto: String { return self._s[1079]! } - public var Common_NotNow: String { return self._s[1080]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[1081]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[1082]! } - public var Map_Location: String { return self._s[1083]! } - public var Invitation_JoinGroup: String { return self._s[1084]! } - public var AutoDownloadSettings_Title: String { return self._s[1086]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1087]! } - public var Channel_ErrorAddBlocked: String { return self._s[1088]! } - public var Conversation_UnblockUser: String { return self._s[1089]! } - public var EditTheme_Edit_TopInfo: String { return self._s[1090]! } - public var Watch_Bot_Restart: String { return self._s[1091]! } - public var TwoStepAuth_Title: String { return self._s[1092]! } - public var Channel_AdminLog_BanSendMessages: String { return self._s[1093]! } - public var Checkout_ShippingMethod: String { return self._s[1094]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1095]! } + public var Calls_SubmitRating: String { return self._s[1074]! } + public var Map_NoPlacesNearby: String { return self._s[1075]! } + public var Profile_Username: String { return self._s[1076]! } + public var Bot_DescriptionTitle: String { return self._s[1077]! } + public var MaskStickerSettings_Title: String { return self._s[1078]! } + public var SharedMedia_CategoryOther: String { return self._s[1079]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1080]! } + public var Common_NotNow: String { return self._s[1081]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[1082]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[1083]! } + public var Map_Location: String { return self._s[1084]! } + public var Invitation_JoinGroup: String { return self._s[1085]! } + public var AutoDownloadSettings_Title: String { return self._s[1087]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1088]! } + public var Channel_ErrorAddBlocked: String { return self._s[1089]! } + public var Conversation_UnblockUser: String { return self._s[1090]! } + public var EditTheme_Edit_TopInfo: String { return self._s[1091]! } + public var Watch_Bot_Restart: String { return self._s[1092]! } + public var TwoStepAuth_Title: String { return self._s[1093]! } + public var Channel_AdminLog_BanSendMessages: String { return self._s[1094]! } + public var Checkout_ShippingMethod: String { return self._s[1095]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1096]! } public func PUSH_CHAT_MESSAGE_STICKER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1096]!, self._r[1096]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1097]!, self._r[1097]!, [_1, _2, _3]) } - public var EditTheme_ChangeColors: String { return self._s[1098]! } + public var EditTheme_ChangeColors: String { return self._s[1099]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1099]!, self._r[1099]!, [_0]) - } - public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1100]!, self._r[1100]!, [_0]) } - public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1101]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1102]! } - public var AuthSessions_TerminateOtherSessions: String { return self._s[1103]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[1104]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[1105]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1106]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1107]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[1108]! } - public var Checkout_PaymentMethod_Title: String { return self._s[1109]! } - public var SocksProxySetup_Connection: String { return self._s[1110]! } - public var Group_MessagePhotoRemoved: String { return self._s[1111]! } - public var Channel_Stickers_NotFound: String { return self._s[1114]! } - public var Group_About_Help: String { return self._s[1115]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[1116]! } - public var PeopleNearby_Title: String { return self._s[1118]! } - public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1119]!, self._r[1119]!, [_1]) + public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1101]!, self._r[1101]!, [_0]) } - public var Map_Home: String { return self._s[1120]! } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1122]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1123]! } - public var SocksProxySetup_Password: String { return self._s[1124]! } - public var Notifications_PermissionsEnable: String { return self._s[1125]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[1127]! } + public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1102]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1103]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[1104]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[1105]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[1106]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1107]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1108]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[1109]! } + public var Checkout_PaymentMethod_Title: String { return self._s[1110]! } + public var SocksProxySetup_Connection: String { return self._s[1111]! } + public var Group_MessagePhotoRemoved: String { return self._s[1112]! } + public var Channel_Stickers_NotFound: String { return self._s[1115]! } + public var Group_About_Help: String { return self._s[1116]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[1117]! } + public var PeopleNearby_Title: String { return self._s[1119]! } + public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1120]!, self._r[1120]!, [_1]) + } + public var Map_Home: String { return self._s[1121]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1123]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1124]! } + public var SocksProxySetup_Password: String { return self._s[1125]! } + public var Notifications_PermissionsEnable: String { return self._s[1126]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[1128]! } public func Channel_AdminLog_MessageInvitedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1128]!, self._r[1128]!, [_1]) + return formatWithArgumentRanges(self._s[1129]!, self._r[1129]!, [_1]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1130]!, self._r[1130]!, [_0]) + return formatWithArgumentRanges(self._s[1131]!, self._r[1131]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[1131]! } - public var ArchivedPacksAlert_Title: String { return self._s[1132]! } - public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1133]! } - public var Map_PlacesNearby: String { return self._s[1134]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[1132]! } + public var ArchivedPacksAlert_Title: String { return self._s[1133]! } + public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1134]! } + public var Map_PlacesNearby: String { return self._s[1135]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1135]!, self._r[1135]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1136]!, self._r[1136]!, [_1, _2, _3]) } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1136]! } - public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1138]! } - public var Conversation_StatusTyping: String { return self._s[1139]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[1140]! } - public var Notification_PassportValueProofOfAddress: String { return self._s[1141]! } - public var UserInfo_CreateNewContact: String { return self._s[1142]! } - public var Passport_Identity_FrontSide: String { return self._s[1143]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1144]! } - public var Calls_CallTabTitle: String { return self._s[1145]! } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1146]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1137]! } + public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1139]! } + public var Conversation_StatusTyping: String { return self._s[1140]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[1141]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[1142]! } + public var UserInfo_CreateNewContact: String { return self._s[1143]! } + public var Passport_Identity_FrontSide: String { return self._s[1144]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1145]! } + public var Calls_CallTabTitle: String { return self._s[1146]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1147]! } public func Login_BannedPhoneBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1148]!, self._r[1148]!, [_0]) + return formatWithArgumentRanges(self._s[1149]!, self._r[1149]!, [_0]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[1149]! } - public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1150]! } - public var SharedMedia_EmptyMusicText: String { return self._s[1151]! } - public var Wallet_Completed_Text: String { return self._s[1152]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1153]! } - public var Paint_Stickers: String { return self._s[1154]! } - public var Privacy_GroupsAndChannels: String { return self._s[1155]! } - public var ChatList_Context_Delete: String { return self._s[1157]! } - public var UserInfo_AddContact: String { return self._s[1158]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[1150]! } + public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1151]! } + public var SharedMedia_EmptyMusicText: String { return self._s[1152]! } + public var Wallet_Completed_Text: String { return self._s[1153]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1154]! } + public var Paint_Stickers: String { return self._s[1155]! } + public var Privacy_GroupsAndChannels: String { return self._s[1156]! } + public var ChatList_Context_Delete: String { return self._s[1158]! } + public var UserInfo_AddContact: String { return self._s[1159]! } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1159]!, self._r[1159]!, [_0]) + return formatWithArgumentRanges(self._s[1160]!, self._r[1160]!, [_0]) } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[1161]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[1162]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1163]!, self._r[1163]!, [_0]) + return formatWithArgumentRanges(self._s[1164]!, self._r[1164]!, [_0]) } - public var DialogList_NoMessagesTitle: String { return self._s[1164]! } - public var EditProfile_NameAndPhotoHelp: String { return self._s[1165]! } - public var BlockedUsers_BlockUser: String { return self._s[1166]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[1167]! } - public var MediaPicker_UngroupDescription: String { return self._s[1169]! } - public var Watch_NoConnection: String { return self._s[1170]! } - public var Month_GenSeptember: String { return self._s[1171]! } - public var Conversation_ViewGroup: String { return self._s[1173]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1176]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[1177]! } - public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1178]! } - public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1179]! } - public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1180]! } - public var MediaPicker_CameraRoll: String { return self._s[1182]! } - public var Month_GenAugust: String { return self._s[1183]! } - public var Wallet_Configuration_SourceHeader: String { return self._s[1184]! } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[1185]! } - public var SharedMedia_EmptyText: String { return self._s[1186]! } - public var Map_ShareLiveLocation: String { return self._s[1187]! } - public var Calls_All: String { return self._s[1188]! } - public var Map_SendThisPlace: String { return self._s[1190]! } - public var Appearance_ThemeNight: String { return self._s[1192]! } - public var Conversation_HoldForAudio: String { return self._s[1193]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[1196]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[1197]! } - public var SocksProxySetup_Secret: String { return self._s[1198]! } + public var DialogList_NoMessagesTitle: String { return self._s[1165]! } + public var EditProfile_NameAndPhotoHelp: String { return self._s[1166]! } + public var BlockedUsers_BlockUser: String { return self._s[1167]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[1168]! } + public var MediaPicker_UngroupDescription: String { return self._s[1170]! } + public var Watch_NoConnection: String { return self._s[1171]! } + public var Month_GenSeptember: String { return self._s[1172]! } + public var Conversation_ViewGroup: String { return self._s[1174]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1177]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[1178]! } + public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1179]! } + public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1180]! } + public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1181]! } + public var MediaPicker_CameraRoll: String { return self._s[1183]! } + public var Month_GenAugust: String { return self._s[1184]! } + public var Wallet_Configuration_SourceHeader: String { return self._s[1185]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[1186]! } + public var SharedMedia_EmptyText: String { return self._s[1187]! } + public var Map_ShareLiveLocation: String { return self._s[1188]! } + public var Calls_All: String { return self._s[1189]! } + public var Map_SendThisPlace: String { return self._s[1191]! } + public var Appearance_ThemeNight: String { return self._s[1193]! } + public var Conversation_HoldForAudio: String { return self._s[1194]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[1197]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[1198]! } + public var SocksProxySetup_Secret: String { return self._s[1199]! } public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1199]!, self._r[1199]!, [_0]) + return formatWithArgumentRanges(self._s[1200]!, self._r[1200]!, [_0]) } - public var Channel_BanList_RestrictedTitle: String { return self._s[1201]! } - public var Conversation_Location: String { return self._s[1202]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[1202]! } + public var Conversation_Location: String { return self._s[1203]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1203]!, self._r[1203]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1204]!, self._r[1204]!, [_1, _2]) } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[1205]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1206]! } - public var Notifications_PermissionsText: String { return self._s[1207]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1208]! } - public var Call_Flip: String { return self._s[1209]! } - public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1211]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1212]! } - public var Wallet_TransactionInfo_StorageFeeInfoUrl: String { return self._s[1213]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1214]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1216]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1218]! } - public var Channel_TooMuchBots: String { return self._s[1220]! } - public var Passport_DeletePassportConfirmation: String { return self._s[1221]! } - public var Login_InvalidCodeError: String { return self._s[1222]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1223]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[1206]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1207]! } + public var Notifications_PermissionsText: String { return self._s[1208]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1209]! } + public var Call_Flip: String { return self._s[1210]! } + public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1212]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1213]! } + public var Wallet_TransactionInfo_StorageFeeInfoUrl: String { return self._s[1214]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1215]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1217]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1219]! } + public var Channel_TooMuchBots: String { return self._s[1221]! } + public var Passport_DeletePassportConfirmation: String { return self._s[1222]! } + public var Login_InvalidCodeError: String { return self._s[1223]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1224]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1224]!, self._r[1224]!, [_0]) - } - public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1225]!, self._r[1225]!, [_0]) } - public var VoiceOver_Navigation_ProxySettings: String { return self._s[1226]! } - public var Call_CallInProgressTitle: String { return self._s[1227]! } - public var Month_ShortSeptember: String { return self._s[1228]! } - public var Watch_ChannelInfo_Title: String { return self._s[1229]! } - public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1232]! } - public var DialogList_PasscodeLockHelp: String { return self._s[1233]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[1234]! } - public var Wallet_Receive_Title: String { return self._s[1235]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[1236]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1237]! } - public var PhotoEditor_CropReset: String { return self._s[1238]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1240]! } - public var Channel_Management_LabelEditor: String { return self._s[1241]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1243]! } - public var PhotoEditor_HighlightsTool: String { return self._s[1244]! } - public var Wallet_Info_WalletCreated: String { return self._s[1245]! } - public var UserInfo_Title: String { return self._s[1246]! } - public var ChatList_HideAction: String { return self._s[1247]! } - public var AccessDenied_Title: String { return self._s[1248]! } - public var DialogList_SearchLabel: String { return self._s[1249]! } - public var Group_Setup_HistoryHidden: String { return self._s[1250]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1251]! } - public var State_Updating: String { return self._s[1253]! } - public var Contacts_TabTitle: String { return self._s[1254]! } - public var Notifications_Badge_CountUnreadMessages: String { return self._s[1256]! } - public var GroupInfo_GroupHistory: String { return self._s[1257]! } - public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1258]! } - public var Wallpaper_SetColor: String { return self._s[1259]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1260]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1261]! } - public var Chat_AttachmentLimitReached: String { return self._s[1262]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1263]! } - public var Contacts_NotRegisteredSection: String { return self._s[1264]! } + public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1226]!, self._r[1226]!, [_0]) + } + public var VoiceOver_Navigation_ProxySettings: String { return self._s[1227]! } + public var Call_CallInProgressTitle: String { return self._s[1228]! } + public var Month_ShortSeptember: String { return self._s[1229]! } + public var Watch_ChannelInfo_Title: String { return self._s[1230]! } + public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1233]! } + public var DialogList_PasscodeLockHelp: String { return self._s[1234]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[1235]! } + public var Wallet_Receive_Title: String { return self._s[1236]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[1237]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1238]! } + public var PhotoEditor_CropReset: String { return self._s[1239]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1241]! } + public var Channel_Management_LabelEditor: String { return self._s[1242]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1244]! } + public var PhotoEditor_HighlightsTool: String { return self._s[1245]! } + public var Wallet_Info_WalletCreated: String { return self._s[1246]! } + public var UserInfo_Title: String { return self._s[1247]! } + public var ChatList_HideAction: String { return self._s[1248]! } + public var AccessDenied_Title: String { return self._s[1249]! } + public var DialogList_SearchLabel: String { return self._s[1250]! } + public var Group_Setup_HistoryHidden: String { return self._s[1251]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1252]! } + public var State_Updating: String { return self._s[1254]! } + public var Contacts_TabTitle: String { return self._s[1255]! } + public var Notifications_Badge_CountUnreadMessages: String { return self._s[1257]! } + public var GroupInfo_GroupHistory: String { return self._s[1258]! } + public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1259]! } + public var Wallpaper_SetColor: String { return self._s[1260]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1261]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1262]! } + public var Chat_AttachmentLimitReached: String { return self._s[1263]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1264]! } + public var Contacts_NotRegisteredSection: String { return self._s[1265]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1265]!, self._r[1265]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1266]!, self._r[1266]!, [_1, _2, _3]) } - public var Paint_Clear: String { return self._s[1266]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[1267]! } - public var SocksProxySetup_Connecting: String { return self._s[1268]! } - public var ExplicitContent_AlertChannel: String { return self._s[1269]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[1270]! } - public var Conversation_Contact: String { return self._s[1271]! } - public var Login_CodeExpired: String { return self._s[1272]! } - public var Passport_DiscardMessageAction: String { return self._s[1273]! } - public var ChatList_Context_Unpin: String { return self._s[1274]! } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1275]! } + public var Paint_Clear: String { return self._s[1267]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[1268]! } + public var SocksProxySetup_Connecting: String { return self._s[1269]! } + public var ExplicitContent_AlertChannel: String { return self._s[1270]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[1271]! } + public var Conversation_Contact: String { return self._s[1272]! } + public var Login_CodeExpired: String { return self._s[1273]! } + public var Passport_DiscardMessageAction: String { return self._s[1274]! } + public var ChatList_Context_Unpin: String { return self._s[1275]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1276]! } public func VoiceOver_Chat_MusicFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1276]!, self._r[1276]!, [_0]) + return formatWithArgumentRanges(self._s[1277]!, self._r[1277]!, [_0]) } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[1277]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1278]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[1278]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1279]! } public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1279]!, self._r[1279]!, [_0]) + return formatWithArgumentRanges(self._s[1280]!, self._r[1280]!, [_0]) } - public var Month_ShortApril: String { return self._s[1280]! } - public var AuthSessions_CurrentSession: String { return self._s[1281]! } - public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1284]! } - public var Wallet_Navigation_Cancel: String { return self._s[1286]! } - public var WallpaperPreview_CropTopText: String { return self._s[1287]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1288]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1289]! } + public var Month_ShortApril: String { return self._s[1281]! } + public var AuthSessions_CurrentSession: String { return self._s[1282]! } + public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1285]! } + public var Wallet_Navigation_Cancel: String { return self._s[1287]! } + public var WallpaperPreview_CropTopText: String { return self._s[1288]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1289]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1290]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1290]!, self._r[1290]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1291]!, self._r[1291]!, [_0, _1]) } - public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1291]! } - public var Channel_Setup_TypePrivate: String { return self._s[1293]! } - public var Forward_ChannelReadOnly: String { return self._s[1296]! } - public var PhotoEditor_CurvesBlue: String { return self._s[1297]! } - public var AddContact_SharedContactException: String { return self._s[1298]! } - public var UserInfo_BotPrivacy: String { return self._s[1300]! } - public var Wallet_CreateInvoice_Title: String { return self._s[1301]! } - public var Notification_PassportValueEmail: String { return self._s[1302]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[1303]! } - public var GroupPermission_NewTitle: String { return self._s[1304]! } - public var CallFeedback_ReasonDropped: String { return self._s[1305]! } - public var GroupInfo_Permissions_AddException: String { return self._s[1306]! } - public var Channel_SignMessages_Help: String { return self._s[1308]! } - public var Undo_ChatDeleted: String { return self._s[1310]! } - public var Conversation_ChatBackground: String { return self._s[1311]! } + public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1292]! } + public var Channel_Setup_TypePrivate: String { return self._s[1294]! } + public var Forward_ChannelReadOnly: String { return self._s[1297]! } + public var PhotoEditor_CurvesBlue: String { return self._s[1298]! } + public var AddContact_SharedContactException: String { return self._s[1299]! } + public var UserInfo_BotPrivacy: String { return self._s[1301]! } + public var Wallet_CreateInvoice_Title: String { return self._s[1302]! } + public var Notification_PassportValueEmail: String { return self._s[1303]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[1304]! } + public var GroupPermission_NewTitle: String { return self._s[1305]! } + public var CallFeedback_ReasonDropped: String { return self._s[1306]! } + public var GroupInfo_Permissions_AddException: String { return self._s[1307]! } + public var Channel_SignMessages_Help: String { return self._s[1309]! } + public var Undo_ChatDeleted: String { return self._s[1311]! } + public var Conversation_ChatBackground: String { return self._s[1312]! } public func Wallet_WordCheck_Text(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1312]!, self._r[1312]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1313]!, self._r[1313]!, [_1, _2, _3]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1313]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1314]! } - public var Passport_Language_pt: String { return self._s[1315]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1316]! } - public var NotificationsSound_Popcorn: String { return self._s[1319]! } - public var AutoNightTheme_Disabled: String { return self._s[1320]! } - public var BlockedUsers_LeavePrefix: String { return self._s[1321]! } - public var WallpaperPreview_CustomColorTopText: String { return self._s[1322]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1323]! } - public var WallpaperSearch_ColorBlue: String { return self._s[1324]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1314]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1315]! } + public var Passport_Language_pt: String { return self._s[1316]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1317]! } + public var NotificationsSound_Popcorn: String { return self._s[1320]! } + public var AutoNightTheme_Disabled: String { return self._s[1321]! } + public var BlockedUsers_LeavePrefix: String { return self._s[1322]! } + public var WallpaperPreview_CustomColorTopText: String { return self._s[1323]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1324]! } + public var WallpaperSearch_ColorBlue: String { return self._s[1325]! } public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1325]!, self._r[1325]!, [_0]) + return formatWithArgumentRanges(self._s[1326]!, self._r[1326]!, [_0]) } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1326]! } - public var SocksProxySetup_UseForCalls: String { return self._s[1327]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[1329]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1327]! } + public var SocksProxySetup_UseForCalls: String { return self._s[1328]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[1330]! } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1330]!, self._r[1330]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1331]!, self._r[1331]!, ["\(_0)"]) } - public var SocksProxySetup_Hostname: String { return self._s[1333]! } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1334]! } - public var Compose_NewEncryptedChat: String { return self._s[1335]! } - public var Login_CodeFloodError: String { return self._s[1336]! } - public var Calls_TabTitle: String { return self._s[1337]! } - public var Privacy_ProfilePhoto: String { return self._s[1338]! } - public var Passport_Language_he: String { return self._s[1339]! } + public var SocksProxySetup_Hostname: String { return self._s[1334]! } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1335]! } + public var Compose_NewEncryptedChat: String { return self._s[1336]! } + public var Login_CodeFloodError: String { return self._s[1337]! } + public var Calls_TabTitle: String { return self._s[1338]! } + public var Privacy_ProfilePhoto: String { return self._s[1339]! } + public var Passport_Language_he: String { return self._s[1340]! } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1340]!, self._r[1340]!, [_0]) + return formatWithArgumentRanges(self._s[1341]!, self._r[1341]!, [_0]) } - public var GroupPermission_Title: String { return self._s[1341]! } + public var GroupPermission_Title: String { return self._s[1342]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1342]!, self._r[1342]!, [_0]) + return formatWithArgumentRanges(self._s[1343]!, self._r[1343]!, [_0]) } - public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1343]! } - public var GroupPermission_NoChangeInfo: String { return self._s[1344]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[1345]! } - public var Tour_Text1: String { return self._s[1346]! } - public var Channel_EditAdmin_TransferOwnership: String { return self._s[1347]! } - public var Month_ShortFebruary: String { return self._s[1348]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1349]! } + public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1344]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1345]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[1346]! } + public var Tour_Text1: String { return self._s[1347]! } + public var Channel_EditAdmin_TransferOwnership: String { return self._s[1348]! } + public var Month_ShortFebruary: String { return self._s[1349]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1350]! } public func Wallet_Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1350]!, self._r[1350]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1351]!, self._r[1351]!, [_1, _2, _3]) } - public var NotificationsSound_Glass: String { return self._s[1351]! } - public var Appearance_ThemeNightBlue: String { return self._s[1352]! } - public var CheckoutInfo_Pay: String { return self._s[1353]! } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1355]! } - public var Call_CallAgain: String { return self._s[1357]! } - public var AttachmentMenu_SendAsFile: String { return self._s[1358]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[1359]! } - public var Passport_InvalidPasswordError: String { return self._s[1360]! } - public var Watch_Message_Game: String { return self._s[1361]! } - public var Stickers_Install: String { return self._s[1362]! } - public var VoiceOver_Chat_Message: String { return self._s[1363]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1364]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[1366]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1367]! } - public var AuthSessions_OtherSessions: String { return self._s[1368]! } - public var Channel_Username_Help: String { return self._s[1369]! } - public var Camera_Title: String { return self._s[1370]! } - public var IntentsSettings_Title: String { return self._s[1371]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1373]! } - public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1374]! } - public var Channel_AdminLog_SendPolls: String { return self._s[1375]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1376]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1377]! } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1378]! } - public var ScheduledMessages_DeleteMany: String { return self._s[1379]! } - public var Conversation_RestrictedStickers: String { return self._s[1380]! } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[1382]! } - public var UserInfo_TelegramCall: String { return self._s[1384]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1385]! } - public var CreatePoll_OptionsHeader: String { return self._s[1386]! } - public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1387]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1388]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1389]! } - public var Theme_Colors_Proceed: String { return self._s[1390]! } - public var Passport_Identity_EditPersonalDetails: String { return self._s[1391]! } + public var NotificationsSound_Glass: String { return self._s[1352]! } + public var Appearance_ThemeNightBlue: String { return self._s[1353]! } + public var CheckoutInfo_Pay: String { return self._s[1354]! } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1356]! } + public var Call_CallAgain: String { return self._s[1358]! } + public var AttachmentMenu_SendAsFile: String { return self._s[1359]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[1360]! } + public var Passport_InvalidPasswordError: String { return self._s[1361]! } + public var Watch_Message_Game: String { return self._s[1362]! } + public var Stickers_Install: String { return self._s[1363]! } + public var VoiceOver_Chat_Message: String { return self._s[1364]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1365]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[1367]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1368]! } + public var AuthSessions_OtherSessions: String { return self._s[1369]! } + public var Channel_Username_Help: String { return self._s[1370]! } + public var Camera_Title: String { return self._s[1371]! } + public var IntentsSettings_Title: String { return self._s[1372]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1374]! } + public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1375]! } + public var Channel_AdminLog_SendPolls: String { return self._s[1376]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1377]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1378]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1379]! } + public var ScheduledMessages_DeleteMany: String { return self._s[1380]! } + public var Conversation_RestrictedStickers: String { return self._s[1381]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[1383]! } + public var UserInfo_TelegramCall: String { return self._s[1385]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1386]! } + public var CreatePoll_OptionsHeader: String { return self._s[1387]! } + public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1388]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1389]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1390]! } + public var Theme_Colors_Proceed: String { return self._s[1391]! } + public var Passport_Identity_EditPersonalDetails: String { return self._s[1392]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1392]!, self._r[1392]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1393]!, self._r[1393]!, [_1, _2, _3]) } - public var Wallet_Month_GenAugust: String { return self._s[1393]! } - public var Settings_SaveEditedPhotos: String { return self._s[1394]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[1395]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1396]! } - public var Conversation_MessageDialogRetry: String { return self._s[1397]! } - public var ChatList_Context_MarkAsUnread: String { return self._s[1398]! } - public var MessagePoll_SubmitVote: String { return self._s[1399]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[1400]! } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1401]! } - public var Group_Setup_TypeHeader: String { return self._s[1402]! } - public var Paint_RecentStickers: String { return self._s[1403]! } - public var PhotoEditor_GrainTool: String { return self._s[1404]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[1405]! } - public var EmptyGroupInfo_Line4: String { return self._s[1406]! } - public var Watch_AuthRequired: String { return self._s[1408]! } + public var Wallet_Month_GenAugust: String { return self._s[1394]! } + public var Settings_SaveEditedPhotos: String { return self._s[1395]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[1396]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1397]! } + public var Conversation_MessageDialogRetry: String { return self._s[1398]! } + public var ChatList_Context_MarkAsUnread: String { return self._s[1399]! } + public var MessagePoll_SubmitVote: String { return self._s[1400]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[1401]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1402]! } + public var Group_Setup_TypeHeader: String { return self._s[1403]! } + public var Paint_RecentStickers: String { return self._s[1404]! } + public var PhotoEditor_GrainTool: String { return self._s[1405]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[1406]! } + public var EmptyGroupInfo_Line4: String { return self._s[1407]! } + public var Watch_AuthRequired: String { return self._s[1409]! } public func Passport_Email_UseTelegramEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1409]!, self._r[1409]!, [_0]) + return formatWithArgumentRanges(self._s[1410]!, self._r[1410]!, [_0]) } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1410]! } - public var ChannelIntro_Text: String { return self._s[1411]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[1412]! } - public var GroupPermission_NoSendMedia: String { return self._s[1413]! } - public var Calls_AddTab: String { return self._s[1414]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[1415]! } - public var Channel_AdminLog_EmptyFilterText: String { return self._s[1416]! } - public var Conversation_WalletRequiredSetup: String { return self._s[1417]! } - public var Notification_MessageLifetime1d: String { return self._s[1418]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1419]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1420]! } - public var Passport_Identity_GenderFemale: String { return self._s[1421]! } - public var BlockedUsers_BlockTitle: String { return self._s[1422]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1411]! } + public var ChannelIntro_Text: String { return self._s[1412]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[1413]! } + public var GroupPermission_NoSendMedia: String { return self._s[1414]! } + public var Calls_AddTab: String { return self._s[1415]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[1416]! } + public var Channel_AdminLog_EmptyFilterText: String { return self._s[1417]! } + public var Conversation_WalletRequiredSetup: String { return self._s[1418]! } + public var Notification_MessageLifetime1d: String { return self._s[1419]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1420]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1421]! } + public var Passport_Identity_GenderFemale: String { return self._s[1422]! } + public var BlockedUsers_BlockTitle: String { return self._s[1423]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1423]!, self._r[1423]!, [_1]) + return formatWithArgumentRanges(self._s[1424]!, self._r[1424]!, [_1]) } - public var Weekday_Yesterday: String { return self._s[1424]! } - public var WallpaperSearch_ColorBlack: String { return self._s[1425]! } - public var Settings_Context_Logout: String { return self._s[1426]! } - public var Wallet_Info_UnknownTransaction: String { return self._s[1427]! } - public var ChatList_ArchiveAction: String { return self._s[1428]! } - public var AutoNightTheme_Scheduled: String { return self._s[1429]! } - public var TwoFactorSetup_Email_SkipAction: String { return self._s[1430]! } - public var Settings_Devices: String { return self._s[1431]! } - public var ContactInfo_Note: String { return self._s[1432]! } + public var Weekday_Yesterday: String { return self._s[1425]! } + public var WallpaperSearch_ColorBlack: String { return self._s[1426]! } + public var Settings_Context_Logout: String { return self._s[1427]! } + public var Wallet_Info_UnknownTransaction: String { return self._s[1428]! } + public var ChatList_ArchiveAction: String { return self._s[1429]! } + public var AutoNightTheme_Scheduled: String { return self._s[1430]! } + public var TwoFactorSetup_Email_SkipAction: String { return self._s[1431]! } + public var Settings_Devices: String { return self._s[1432]! } + public var ContactInfo_Note: String { return self._s[1433]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1433]!, self._r[1433]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[1434]!, self._r[1434]!, [_1, _2, _3, _4, _5, _6]) } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1434]! } - public var Wallet_Receive_CreateInvoice: String { return self._s[1435]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1436]! } - public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[1437]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1435]! } + public var Wallet_Receive_CreateInvoice: String { return self._s[1436]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1437]! } + public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[1438]! } public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1438]!, self._r[1438]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1439]!, self._r[1439]!, [_1, _2]) } - public var CreatePoll_Create: String { return self._s[1439]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1440]! } + public var CreatePoll_Create: String { return self._s[1440]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1441]! } public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1441]!, self._r[1441]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1442]!, self._r[1442]!, [_1, _2]) } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1442]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1443]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[1445]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1443]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1444]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[1446]! } public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1446]!, self._r[1446]!, [_1]) + return formatWithArgumentRanges(self._s[1447]!, self._r[1447]!, [_1]) } - public var Preview_OpenInInstagram: String { return self._s[1447]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1448]! } + public var Preview_OpenInInstagram: String { return self._s[1448]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1449]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1449]!, self._r[1449]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1450]!, self._r[1450]!, [_1, _2, _3]) } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1450]!, self._r[1450]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1451]!, self._r[1451]!, [_1, _2]) } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1451]! } - public var ArchivedChats_IntroText3: String { return self._s[1452]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[1453]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1454]! } - public var Wallet_Month_GenSeptember: String { return self._s[1455]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1456]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1452]! } + public var ArchivedChats_IntroText3: String { return self._s[1453]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[1454]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1455]! } + public var Wallet_Month_GenSeptember: String { return self._s[1456]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1457]! } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1457]!, self._r[1457]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1458]!, self._r[1458]!, [_1, _2, _3]) } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1459]! } - public var FastTwoStepSetup_HintSection: String { return self._s[1460]! } - public var Wallpaper_PhotoLibrary: String { return self._s[1461]! } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1462]! } - public var Gif_NoGifsFound: String { return self._s[1463]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[1464]! } - public var VoiceOver_MessageContextDelete: String { return self._s[1465]! } - public var EditTheme_Preview: String { return self._s[1466]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1460]! } + public var FastTwoStepSetup_HintSection: String { return self._s[1461]! } + public var Wallpaper_PhotoLibrary: String { return self._s[1462]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1463]! } + public var Gif_NoGifsFound: String { return self._s[1464]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[1465]! } + public var VoiceOver_MessageContextDelete: String { return self._s[1466]! } + public var EditTheme_Preview: String { return self._s[1467]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1467]!, self._r[1467]!, [_0]) + return formatWithArgumentRanges(self._s[1468]!, self._r[1468]!, [_0]) } - public var GroupInfo_ActionPromote: String { return self._s[1468]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[1469]! } - public var GroupInfo_Permissions_Title: String { return self._s[1470]! } - public var Permissions_ContactsText_v0: String { return self._s[1471]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1472]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1473]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1476]! } - public var Passport_FieldEmailHelp: String { return self._s[1477]! } + public var GroupInfo_ActionPromote: String { return self._s[1469]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[1470]! } + public var GroupInfo_Permissions_Title: String { return self._s[1471]! } + public var Permissions_ContactsText_v0: String { return self._s[1472]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1473]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1474]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1477]! } + public var Passport_FieldEmailHelp: String { return self._s[1478]! } public func Activity_RemindAboutUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1478]!, self._r[1478]!, [_0]) + return formatWithArgumentRanges(self._s[1479]!, self._r[1479]!, [_0]) } - public var Passport_Identity_GenderPlaceholder: String { return self._s[1479]! } - public var Weekday_ShortSaturday: String { return self._s[1480]! } - public var ContactInfo_PhoneLabelMain: String { return self._s[1481]! } - public var Watch_Conversation_UserInfo: String { return self._s[1482]! } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1483]! } - public var GroupPermission_PermissionDisabledByDefault: String { return self._s[1484]! } - public var PrivacyLastSeenSettings_Title: String { return self._s[1485]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[1486]! } - public var PhotoEditor_VignetteTool: String { return self._s[1487]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1488]! } - public var Passport_Language_et: String { return self._s[1489]! } - public var AppUpgrade_Running: String { return self._s[1490]! } - public var Channel_DiscussionGroup_Info: String { return self._s[1492]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1493]! } - public var Passport_Language_bg: String { return self._s[1494]! } - public var Stickers_NoStickersFound: String { return self._s[1496]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1480]! } + public var Weekday_ShortSaturday: String { return self._s[1481]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[1482]! } + public var Watch_Conversation_UserInfo: String { return self._s[1483]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1484]! } + public var GroupPermission_PermissionDisabledByDefault: String { return self._s[1485]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[1486]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[1487]! } + public var PhotoEditor_VignetteTool: String { return self._s[1488]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1489]! } + public var Passport_Language_et: String { return self._s[1490]! } + public var AppUpgrade_Running: String { return self._s[1491]! } + public var Channel_DiscussionGroup_Info: String { return self._s[1493]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1494]! } + public var Passport_Language_bg: String { return self._s[1495]! } + public var Stickers_NoStickersFound: String { return self._s[1497]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1498]!, self._r[1498]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1499]!, self._r[1499]!, [_1, _2]) } public func VoiceOver_Chat_ContactFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1499]!, self._r[1499]!, [_0]) + return formatWithArgumentRanges(self._s[1500]!, self._r[1500]!, [_0]) } - public var Wallet_Month_GenJuly: String { return self._s[1500]! } - public var Wallet_Receive_AddressHeader: String { return self._s[1501]! } - public var Wallet_Send_AmountText: String { return self._s[1502]! } - public var Settings_About: String { return self._s[1503]! } + public var Wallet_Month_GenJuly: String { return self._s[1501]! } + public var Wallet_Receive_AddressHeader: String { return self._s[1502]! } + public var Wallet_Send_AmountText: String { return self._s[1503]! } + public var Settings_About: String { return self._s[1504]! } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1504]!, self._r[1504]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1505]!, self._r[1505]!, [_0, _1, _2]) } - public var ChatList_Context_MarkAsRead: String { return self._s[1506]! } - public var KeyCommand_NewMessage: String { return self._s[1507]! } - public var Group_ErrorAddBlocked: String { return self._s[1508]! } + public var ChatList_Context_MarkAsRead: String { return self._s[1507]! } + public var KeyCommand_NewMessage: String { return self._s[1508]! } + public var Group_ErrorAddBlocked: String { return self._s[1509]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1509]!, self._r[1509]!, [_0]) + return formatWithArgumentRanges(self._s[1510]!, self._r[1510]!, [_0]) } - public var Map_LocationTitle: String { return self._s[1510]! } - public var ReportGroupLocation_Title: String { return self._s[1511]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1512]! } - public var Cache_ClearProgress: String { return self._s[1513]! } + public var Map_LocationTitle: String { return self._s[1511]! } + public var ReportGroupLocation_Title: String { return self._s[1512]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1513]! } + public var Cache_ClearProgress: String { return self._s[1514]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1514]!, self._r[1514]!, [_0]) + return formatWithArgumentRanges(self._s[1515]!, self._r[1515]!, [_0]) } - public var GroupRemoved_AddToGroup: String { return self._s[1515]! } - public var Passport_UpdateRequiredError: String { return self._s[1516]! } - public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1517]! } + public var GroupRemoved_AddToGroup: String { return self._s[1516]! } + public var Passport_UpdateRequiredError: String { return self._s[1517]! } + public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1518]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1518]!, self._r[1518]!, [_1]) + return formatWithArgumentRanges(self._s[1519]!, self._r[1519]!, [_1]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[1520]! } - public var Passport_Identity_MainPageHelp: String { return self._s[1521]! } - public var Conversation_StatusKickedFromGroup: String { return self._s[1522]! } - public var Passport_Language_ka: String { return self._s[1523]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[1521]! } + public var Passport_Identity_MainPageHelp: String { return self._s[1522]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[1523]! } + public var Passport_Language_ka: String { return self._s[1524]! } public func Wallet_Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1524]!, self._r[1524]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1525]!, self._r[1525]!, [_1, _2, _3]) } - public var Call_Decline: String { return self._s[1525]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[1526]! } - public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1529]! } + public var Call_Decline: String { return self._s[1526]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[1527]! } + public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1530]! } public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1530]!, self._r[1530]!, [_0]) + return formatWithArgumentRanges(self._s[1531]!, self._r[1531]!, [_0]) } - public var CallFeedback_Send: String { return self._s[1531]! } - public var EditTheme_EditTitle: String { return self._s[1532]! } + public var CallFeedback_Send: String { return self._s[1532]! } + public var EditTheme_EditTitle: String { return self._s[1533]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1533]!, self._r[1533]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1534]!, self._r[1534]!, [_1, _2]) } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1534]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1535]! } public func Wallet_Updated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1536]!, self._r[1536]!, [_0]) + return formatWithArgumentRanges(self._s[1537]!, self._r[1537]!, [_0]) } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1537]! } - public var Passport_DeletePassport: String { return self._s[1538]! } - public var Appearance_AppIconFilled: String { return self._s[1539]! } - public var Privacy_Calls_P2PAlways: String { return self._s[1540]! } - public var Month_ShortDecember: String { return self._s[1541]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1543]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1538]! } + public var Passport_DeletePassport: String { return self._s[1539]! } + public var Appearance_AppIconFilled: String { return self._s[1540]! } + public var Privacy_Calls_P2PAlways: String { return self._s[1541]! } + public var Month_ShortDecember: String { return self._s[1542]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1544]! } public func Contacts_AccessDeniedHelpLandscape(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1544]!, self._r[1544]!, [_0]) + return formatWithArgumentRanges(self._s[1545]!, self._r[1545]!, [_0]) } - public var Channel_Stickers_Searching: String { return self._s[1545]! } - public var Conversation_EncryptedDescription1: String { return self._s[1546]! } - public var Conversation_EncryptedDescription2: String { return self._s[1547]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[1548]! } - public var Conversation_EncryptedDescription3: String { return self._s[1550]! } - public var PhotoEditor_SharpenTool: String { return self._s[1551]! } - public var Wallet_Configuration_Title: String { return self._s[1552]! } + public var Channel_Stickers_Searching: String { return self._s[1546]! } + public var Conversation_EncryptedDescription1: String { return self._s[1547]! } + public var Conversation_EncryptedDescription2: String { return self._s[1548]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[1549]! } + public var Conversation_EncryptedDescription3: String { return self._s[1551]! } + public var PhotoEditor_SharpenTool: String { return self._s[1552]! } + public var Wallet_Configuration_Title: String { return self._s[1553]! } public func Conversation_AddNameToContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1553]!, self._r[1553]!, [_0]) + return formatWithArgumentRanges(self._s[1554]!, self._r[1554]!, [_0]) } - public var Conversation_EncryptedDescription4: String { return self._s[1555]! } - public var Channel_Members_AddMembers: String { return self._s[1556]! } - public var Wallpaper_Search: String { return self._s[1557]! } - public var Weekday_Friday: String { return self._s[1559]! } - public var Privacy_ContactsSync: String { return self._s[1560]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1561]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1562]! } + public var Conversation_EncryptedDescription4: String { return self._s[1556]! } + public var Channel_Members_AddMembers: String { return self._s[1557]! } + public var Wallpaper_Search: String { return self._s[1558]! } + public var Weekday_Friday: String { return self._s[1560]! } + public var Privacy_ContactsSync: String { return self._s[1561]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1562]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1563]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1563]!, self._r[1563]!, [_0]) + return formatWithArgumentRanges(self._s[1564]!, self._r[1564]!, [_0]) } - public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[1564]! } - public var GroupInfo_Permissions_Removed: String { return self._s[1565]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[1566]! } - public var Passport_Identity_GenderMale: String { return self._s[1567]! } + public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[1565]! } + public var GroupInfo_Permissions_Removed: String { return self._s[1566]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[1567]! } + public var Passport_Identity_GenderMale: String { return self._s[1568]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1568]!, self._r[1568]!, [_0]) + return formatWithArgumentRanges(self._s[1569]!, self._r[1569]!, [_0]) } - public var Notifications_PermissionsKeepDisabled: String { return self._s[1569]! } - public var Conversation_JumpToDate: String { return self._s[1570]! } - public var Contacts_GlobalSearch: String { return self._s[1571]! } - public var AutoDownloadSettings_ResetHelp: String { return self._s[1572]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[1573]! } - public var Profile_MessageLifetime1d: String { return self._s[1574]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[1570]! } + public var Conversation_JumpToDate: String { return self._s[1571]! } + public var Contacts_GlobalSearch: String { return self._s[1572]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[1573]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[1574]! } + public var Profile_MessageLifetime1d: String { return self._s[1575]! } public func MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1575]!, self._r[1575]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1576]!, self._r[1576]!, [_1, _2]) } - public var StickerPack_BuiltinPackName: String { return self._s[1578]! } + public var StickerPack_BuiltinPackName: String { return self._s[1579]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1579]!, self._r[1579]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1580]!, self._r[1580]!, [_1, _2]) } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1580]! } - public var Passport_InfoTitle: String { return self._s[1582]! } - public var Notifications_PermissionsUnreachableText: String { return self._s[1583]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1581]! } + public var Passport_InfoTitle: String { return self._s[1583]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[1584]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1587]!, self._r[1587]!, [_0]) + return formatWithArgumentRanges(self._s[1588]!, self._r[1588]!, [_0]) } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1588]!, self._r[1588]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1589]!, self._r[1589]!, [_1, _2]) } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1589]! } - public var Profile_BotInfo: String { return self._s[1590]! } - public var Watch_Compose_CreateMessage: String { return self._s[1591]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1592]! } - public var Month_ShortNovember: String { return self._s[1593]! } - public var Conversation_ScamWarning: String { return self._s[1594]! } - public var Wallpaper_SetCustomBackground: String { return self._s[1595]! } - public var Appearance_TextSize_Title: String { return self._s[1596]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1597]! } - public var NotificationsSound_Chime: String { return self._s[1598]! } - public var Passport_Language_ko: String { return self._s[1600]! } - public var InviteText_URL: String { return self._s[1601]! } - public var TextFormat_Monospace: String { return self._s[1602]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1590]! } + public var Profile_BotInfo: String { return self._s[1591]! } + public var Watch_Compose_CreateMessage: String { return self._s[1592]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1593]! } + public var Month_ShortNovember: String { return self._s[1594]! } + public var Conversation_ScamWarning: String { return self._s[1595]! } + public var Wallpaper_SetCustomBackground: String { return self._s[1596]! } + public var Appearance_TextSize_Title: String { return self._s[1597]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1598]! } + public var NotificationsSound_Chime: String { return self._s[1599]! } + public var Passport_Language_ko: String { return self._s[1601]! } + public var InviteText_URL: String { return self._s[1602]! } + public var TextFormat_Monospace: String { return self._s[1603]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1603]!, self._r[1603]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1604]!, self._r[1604]!, [_1, _2, _3]) } - public var EditTheme_Edit_BottomInfo: String { return self._s[1604]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[1605]! } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1605]!, self._r[1605]!, [_0]) + return formatWithArgumentRanges(self._s[1606]!, self._r[1606]!, [_0]) } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1606]!, self._r[1606]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1607]!, self._r[1607]!, [_1, _2]) } - public var Wallet_Words_Title: String { return self._s[1607]! } - public var Wallet_Month_ShortMay: String { return self._s[1608]! } - public var EditTheme_CreateTitle: String { return self._s[1610]! } - public var Passport_InfoLearnMore: String { return self._s[1611]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[1612]! } - public var Passport_Identity_AddIdentityCard: String { return self._s[1613]! } - public var Your_card_has_expired: String { return self._s[1614]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[1615]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1616]! } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[1620]! } - public var Conversation_Report: String { return self._s[1622]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1623]! } - public var Notification_MessageLifetime1m: String { return self._s[1624]! } - public var Privacy_ContactsTitle: String { return self._s[1625]! } - public var Conversation_ShareMyContactInfo: String { return self._s[1626]! } - public var Wallet_WordCheck_Title: String { return self._s[1627]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1628]! } - public var Channel_Members_Title: String { return self._s[1629]! } - public var Map_OpenInWaze: String { return self._s[1630]! } - public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1631]! } - public var Login_PhoneBannedError: String { return self._s[1632]! } + public var Wallet_Words_Title: String { return self._s[1608]! } + public var Wallet_Month_ShortMay: String { return self._s[1609]! } + public var EditTheme_CreateTitle: String { return self._s[1611]! } + public var Passport_InfoLearnMore: String { return self._s[1612]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[1613]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[1614]! } + public var Your_card_has_expired: String { return self._s[1615]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[1616]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1617]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[1621]! } + public var Conversation_Report: String { return self._s[1623]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1624]! } + public var Notification_MessageLifetime1m: String { return self._s[1625]! } + public var Privacy_ContactsTitle: String { return self._s[1626]! } + public var Conversation_ShareMyContactInfo: String { return self._s[1627]! } + public var Wallet_WordCheck_Title: String { return self._s[1628]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1629]! } + public var Channel_Members_Title: String { return self._s[1630]! } + public var Map_OpenInWaze: String { return self._s[1631]! } + public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1632]! } + public var Login_PhoneBannedError: String { return self._s[1633]! } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1633]!, self._r[1633]!, [_0]) + return formatWithArgumentRanges(self._s[1634]!, self._r[1634]!, [_0]) } - public var IntentsSettings_MainAccount: String { return self._s[1634]! } - public var Group_Management_AddModeratorHelp: String { return self._s[1635]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[1636]! } - public var Common_OK: String { return self._s[1637]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1638]! } - public var Wallet_Words_NotDoneResponse: String { return self._s[1639]! } - public var Cache_Music: String { return self._s[1640]! } - public var Wallet_Configuration_SourceURL: String { return self._s[1641]! } - public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1642]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1644]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1645]! } + public var IntentsSettings_MainAccount: String { return self._s[1635]! } + public var Group_Management_AddModeratorHelp: String { return self._s[1636]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[1637]! } + public var Common_OK: String { return self._s[1638]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1639]! } + public var Wallet_Words_NotDoneResponse: String { return self._s[1640]! } + public var Cache_Music: String { return self._s[1641]! } + public var Wallet_Configuration_SourceURL: String { return self._s[1642]! } + public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1643]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1645]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1646]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1646]!, self._r[1646]!, [_1]) + return formatWithArgumentRanges(self._s[1647]!, self._r[1647]!, [_1]) } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1647]!, self._r[1647]!, [_0]) + return formatWithArgumentRanges(self._s[1648]!, self._r[1648]!, [_0]) } - public var TwoFactorSetup_Done_Action: String { return self._s[1648]! } + public var TwoFactorSetup_Done_Action: String { return self._s[1649]! } public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1649]!, self._r[1649]!, [_0]) + return formatWithArgumentRanges(self._s[1650]!, self._r[1650]!, [_0]) } - public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1650]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1652]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[1653]! } - public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1655]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1656]! } - public var State_ConnectingToProxyInfo: String { return self._s[1657]! } - public var Conversation_SwipeToReplyHintTitle: String { return self._s[1658]! } - public var Message_VideoMessage: String { return self._s[1660]! } - public var ChannelInfo_DeleteChannel: String { return self._s[1661]! } - public var ContactInfo_PhoneLabelOther: String { return self._s[1662]! } - public var Channel_EditAdmin_CannotEdit: String { return self._s[1663]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[1664]! } + public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1651]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1653]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[1654]! } + public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1656]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1657]! } + public var State_ConnectingToProxyInfo: String { return self._s[1658]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[1659]! } + public var Message_VideoMessage: String { return self._s[1661]! } + public var ChannelInfo_DeleteChannel: String { return self._s[1662]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[1663]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[1664]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[1665]! } public func Wallet_Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1665]!, self._r[1665]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1666]!, self._r[1666]!, [_1, _2, _3]) } - public var WallpaperPreview_SwipeBottomText: String { return self._s[1666]! } - public var Activity_RecordingAudio: String { return self._s[1667]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[1668]! } - public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1669]! } - public var Wallet_Info_Address: String { return self._s[1670]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[1667]! } + public var Activity_RecordingAudio: String { return self._s[1668]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[1669]! } + public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1670]! } + public var Wallet_Info_Address: String { return self._s[1671]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1672]!, self._r[1672]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1673]!, self._r[1673]!, [_0, _1]) } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1676]!, self._r[1676]!, [_0]) + return formatWithArgumentRanges(self._s[1677]!, self._r[1677]!, [_0]) } - public var Conversation_ApplyLocalization: String { return self._s[1677]! } - public var TwoFactorSetup_Intro_Action: String { return self._s[1678]! } - public var UserInfo_AddPhone: String { return self._s[1679]! } - public var Map_ShareLiveLocationHelp: String { return self._s[1680]! } + public var Conversation_ApplyLocalization: String { return self._s[1678]! } + public var TwoFactorSetup_Intro_Action: String { return self._s[1679]! } + public var UserInfo_AddPhone: String { return self._s[1680]! } + public var Map_ShareLiveLocationHelp: String { return self._s[1681]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1681]!, self._r[1681]!, [_0]) + return formatWithArgumentRanges(self._s[1682]!, self._r[1682]!, [_0]) } - public var Passport_Scans: String { return self._s[1683]! } - public var BlockedUsers_Unblock: String { return self._s[1684]! } + public var Passport_Scans: String { return self._s[1684]! } + public var BlockedUsers_Unblock: String { return self._s[1685]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1685]!, self._r[1685]!, [_1]) + return formatWithArgumentRanges(self._s[1686]!, self._r[1686]!, [_1]) } - public var Channel_Management_LabelCreator: String { return self._s[1686]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[1687]! } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1688]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1689]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1690]! } + public var Channel_Management_LabelCreator: String { return self._s[1687]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[1688]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1689]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1690]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1691]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1691]!, self._r[1691]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1692]!, self._r[1692]!, [_0, _1, _2]) } - public var Login_PhoneNumberHelp: String { return self._s[1692]! } - public var LastSeen_ALongTimeAgo: String { return self._s[1693]! } - public var Channel_AdminLog_CanPinMessages: String { return self._s[1694]! } - public var ChannelIntro_CreateChannel: String { return self._s[1695]! } - public var Conversation_UnreadMessages: String { return self._s[1696]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1697]! } - public var Channel_AdminLog_EmptyText: String { return self._s[1698]! } - public var Theme_Context_Apply: String { return self._s[1699]! } - public var Notification_GroupActivated: String { return self._s[1700]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[1701]! } - public var Wallet_Intro_CreateWallet: String { return self._s[1702]! } + public var Login_PhoneNumberHelp: String { return self._s[1693]! } + public var LastSeen_ALongTimeAgo: String { return self._s[1694]! } + public var Channel_AdminLog_CanPinMessages: String { return self._s[1695]! } + public var ChannelIntro_CreateChannel: String { return self._s[1696]! } + public var Conversation_UnreadMessages: String { return self._s[1697]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1698]! } + public var Channel_AdminLog_EmptyText: String { return self._s[1699]! } + public var Theme_Context_Apply: String { return self._s[1700]! } + public var Notification_GroupActivated: String { return self._s[1701]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[1702]! } + public var Wallet_Intro_CreateWallet: String { return self._s[1703]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1703]!, self._r[1703]!, [_0]) + return formatWithArgumentRanges(self._s[1704]!, self._r[1704]!, [_0]) } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1704]!, self._r[1704]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1705]!, self._r[1705]!, [_0, _1]) } - public var GroupInfo_ConvertToSupergroup: String { return self._s[1706]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[1707]! } public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1707]!, self._r[1707]!, [_0]) + return formatWithArgumentRanges(self._s[1708]!, self._r[1708]!, [_0]) } - public var Undo_DeletedChannel: String { return self._s[1708]! } - public var CallFeedback_AddComment: String { return self._s[1709]! } + public var Undo_DeletedChannel: String { return self._s[1709]! } + public var CallFeedback_AddComment: String { return self._s[1710]! } public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1710]!, self._r[1710]!, [_0]) + return formatWithArgumentRanges(self._s[1711]!, self._r[1711]!, [_0]) } - public var Document_TargetConfirmationFormat: String { return self._s[1711]! } + public var Document_TargetConfirmationFormat: String { return self._s[1712]! } public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1712]!, self._r[1712]!, [_0]) + return formatWithArgumentRanges(self._s[1713]!, self._r[1713]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[1713]! } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[1714]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1714]!, self._r[1714]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[1715]!, self._r[1715]!, [_1, _2, _3, _4]) } - public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1715]! } - public var Theme_ErrorNotFound: String { return self._s[1716]! } - public var Contacts_SortByName: String { return self._s[1717]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1718]! } + public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1716]! } + public var Theme_ErrorNotFound: String { return self._s[1717]! } + public var Contacts_SortByName: String { return self._s[1718]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1719]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1720]!, self._r[1720]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1721]!, self._r[1721]!, [_1, _2, _3]) } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1721]! } - public var ScheduledMessages_EditTime: String { return self._s[1722]! } - public var Conversation_ClearSelfHistory: String { return self._s[1723]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1724]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[1725]! } - public var Stickers_SuggestNone: String { return self._s[1726]! } - public var ChatSettings_Cache: String { return self._s[1727]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1728]! } - public var Media_ShareThisPhoto: String { return self._s[1729]! } - public var Chat_SlowmodeTooltipPending: String { return self._s[1730]! } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[1731]! } - public var Conversation_ContextMenuCopyLink: String { return self._s[1732]! } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1733]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1734]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1735]! } - public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[1736]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1722]! } + public var ScheduledMessages_EditTime: String { return self._s[1723]! } + public var Conversation_ClearSelfHistory: String { return self._s[1724]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1725]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[1726]! } + public var Stickers_SuggestNone: String { return self._s[1727]! } + public var ChatSettings_Cache: String { return self._s[1728]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1729]! } + public var Media_ShareThisPhoto: String { return self._s[1730]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[1731]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[1732]! } + public var Conversation_ContextMenuCopyLink: String { return self._s[1733]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1734]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1735]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1736]! } + public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[1737]! } public func Wallet_SecureStorageReset_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1737]!, self._r[1737]!, [_0]) + return formatWithArgumentRanges(self._s[1738]!, self._r[1738]!, [_0]) } - public var Permissions_CellularDataTitle_v0: String { return self._s[1738]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1740]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1741]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[1742]! } - public var Map_OpenIn: String { return self._s[1743]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[1739]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1741]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1742]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[1743]! } + public var Map_OpenIn: String { return self._s[1744]! } public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1746]!, self._r[1746]!, [_1]) + return formatWithArgumentRanges(self._s[1747]!, self._r[1747]!, [_1]) } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1747]!, self._r[1747]!, [_0]) + return formatWithArgumentRanges(self._s[1748]!, self._r[1748]!, [_0]) } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1748]! } - public var MessagePoll_LabelClosed: String { return self._s[1749]! } - public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1751]! } - public var Wallet_Send_SendAnyway: String { return self._s[1752]! } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1753]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[1754]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1755]! } - public var Map_SetThisPlace: String { return self._s[1756]! } - public var Login_SelectCountry_Title: String { return self._s[1757]! } - public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1758]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1749]! } + public var MessagePoll_LabelClosed: String { return self._s[1750]! } + public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1752]! } + public var Wallet_Send_SendAnyway: String { return self._s[1753]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1754]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[1755]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1756]! } + public var Map_SetThisPlace: String { return self._s[1757]! } + public var Login_SelectCountry_Title: String { return self._s[1758]! } + public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1759]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1759]!, self._r[1759]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1760]!, self._r[1760]!, [_1, _2]) } - public var Channel_AdminLog_ChangeInfo: String { return self._s[1760]! } - public var Watch_Suggestion_BRB: String { return self._s[1761]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[1762]! } - public var Contacts_PermissionsTitle: String { return self._s[1763]! } - public var Conversation_RestrictedInline: String { return self._s[1764]! } - public var Appearance_RemoveThemeColor: String { return self._s[1766]! } - public var StickerPack_ViewPack: String { return self._s[1767]! } - public var Wallet_UnknownError: String { return self._s[1768]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[1761]! } + public var Watch_Suggestion_BRB: String { return self._s[1762]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[1763]! } + public var Contacts_PermissionsTitle: String { return self._s[1764]! } + public var Conversation_RestrictedInline: String { return self._s[1765]! } + public var Appearance_RemoveThemeColor: String { return self._s[1767]! } + public var StickerPack_ViewPack: String { return self._s[1768]! } + public var Wallet_UnknownError: String { return self._s[1769]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1769]!, self._r[1769]!, [_0]) + return formatWithArgumentRanges(self._s[1770]!, self._r[1770]!, [_0]) } - public var Compose_NewChannel: String { return self._s[1771]! } - public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1774]! } - public var MessagePoll_LabelQuiz: String { return self._s[1776]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1777]! } - public var Channel_Info_Stickers: String { return self._s[1778]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[1779]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1780]! } - public var Passport_DeletePersonalDetails: String { return self._s[1781]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[1782]! } - public var Channel_DiscussionGroupInfo: String { return self._s[1783]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1784]! } - public var Conversation_SearchNoResults: String { return self._s[1787]! } - public var Wallet_Configuration_ApplyErrorTextURLInvalid: String { return self._s[1788]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1789]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1790]! } - public var Login_Code: String { return self._s[1791]! } - public var EditTheme_Create_BottomInfo: String { return self._s[1792]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[1793]! } - public var Weekday_ShortThursday: String { return self._s[1794]! } - public var Resolve_ErrorNotFound: String { return self._s[1796]! } - public var LastSeen_Offline: String { return self._s[1797]! } - public var PeopleNearby_NoMembers: String { return self._s[1798]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[1799]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1800]! } - public var GroupInfo_Title: String { return self._s[1802]! } - public var NotificationsSound_Note: String { return self._s[1803]! } - public var Conversation_EditingMessagePanelTitle: String { return self._s[1804]! } - public var Watch_Message_Poll: String { return self._s[1805]! } - public var Privacy_Calls: String { return self._s[1806]! } + public var Compose_NewChannel: String { return self._s[1772]! } + public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1775]! } + public var MessagePoll_LabelQuiz: String { return self._s[1777]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1778]! } + public var Channel_Info_Stickers: String { return self._s[1779]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[1780]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1781]! } + public var Passport_DeletePersonalDetails: String { return self._s[1782]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[1783]! } + public var Channel_DiscussionGroupInfo: String { return self._s[1784]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1785]! } + public var Conversation_SearchNoResults: String { return self._s[1788]! } + public var Wallet_Configuration_ApplyErrorTextURLInvalid: String { return self._s[1789]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1790]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1791]! } + public var Login_Code: String { return self._s[1792]! } + public var EditTheme_Create_BottomInfo: String { return self._s[1793]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[1794]! } + public var Weekday_ShortThursday: String { return self._s[1795]! } + public var Resolve_ErrorNotFound: String { return self._s[1797]! } + public var LastSeen_Offline: String { return self._s[1798]! } + public var PeopleNearby_NoMembers: String { return self._s[1799]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[1800]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1801]! } + public var GroupInfo_Title: String { return self._s[1803]! } + public var NotificationsSound_Note: String { return self._s[1804]! } + public var Conversation_EditingMessagePanelTitle: String { return self._s[1805]! } + public var Watch_Message_Poll: String { return self._s[1806]! } + public var Privacy_Calls: String { return self._s[1807]! } public func Channel_AdminLog_MessageRankUsername(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1807]!, self._r[1807]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1808]!, self._r[1808]!, [_1, _2, _3]) } - public var Month_ShortAugust: String { return self._s[1808]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[1809]! } - public var Notifications_Reset: String { return self._s[1810]! } - public var Conversation_Pin: String { return self._s[1811]! } - public var Passport_Language_lv: String { return self._s[1812]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1813]! } - public var BlockedUsers_Info: String { return self._s[1814]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1816]! } - public var Watch_Conversation_Unblock: String { return self._s[1818]! } + public var Month_ShortAugust: String { return self._s[1809]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[1810]! } + public var Notifications_Reset: String { return self._s[1811]! } + public var Conversation_Pin: String { return self._s[1812]! } + public var Passport_Language_lv: String { return self._s[1813]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1814]! } + public var BlockedUsers_Info: String { return self._s[1815]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1817]! } + public var Watch_Conversation_Unblock: String { return self._s[1819]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1819]!, self._r[1819]!, [_0]) + return formatWithArgumentRanges(self._s[1820]!, self._r[1820]!, [_0]) } - public var CloudStorage_Title: String { return self._s[1820]! } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1821]! } + public var CloudStorage_Title: String { return self._s[1821]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1822]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1822]!, self._r[1822]!, [_0]) + return formatWithArgumentRanges(self._s[1823]!, self._r[1823]!, [_0]) } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1823]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[1824]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1825]! } - public var Passport_Address_EditBankStatement: String { return self._s[1826]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1824]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[1825]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1826]! } + public var Passport_Address_EditBankStatement: String { return self._s[1827]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1827]!, self._r[1827]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1828]!, self._r[1828]!, [_1, _2]) } - public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1828]! } - public var ShareMenu_Comment: String { return self._s[1829]! } - public var Permissions_ContactsTitle_v0: String { return self._s[1830]! } - public var Notifications_PermissionsTitle: String { return self._s[1831]! } - public var GroupPermission_NoSendLinks: String { return self._s[1832]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1833]! } - public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1834]! } - public var Settings_Support: String { return self._s[1835]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1836]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1837]! } - public var Privacy_Forwards_Preview: String { return self._s[1838]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[1839]! } - public var Watch_Stickers_StickerPacks: String { return self._s[1840]! } - public var Common_Select: String { return self._s[1842]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1843]! } - public var WallpaperSearch_ColorGray: String { return self._s[1846]! } - public var TwoFactorSetup_Password_PlaceholderPassword: String { return self._s[1847]! } - public var TwoFactorSetup_Hint_SkipAction: String { return self._s[1848]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1849]! } - public var PollResults_Title: String { return self._s[1850]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1851]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[1852]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1853]! } - public var Widget_AuthRequired: String { return self._s[1854]! } - public var Camera_FlashOn: String { return self._s[1855]! } - public var Conversation_ContextMenuLookUp: String { return self._s[1856]! } - public var Channel_Stickers_NotFoundHelp: String { return self._s[1857]! } - public var Watch_Suggestion_OK: String { return self._s[1858]! } + public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1829]! } + public var ShareMenu_Comment: String { return self._s[1830]! } + public var Permissions_ContactsTitle_v0: String { return self._s[1831]! } + public var Notifications_PermissionsTitle: String { return self._s[1832]! } + public var GroupPermission_NoSendLinks: String { return self._s[1833]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1834]! } + public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1835]! } + public var Settings_Support: String { return self._s[1836]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1837]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1838]! } + public var Privacy_Forwards_Preview: String { return self._s[1839]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[1840]! } + public var Watch_Stickers_StickerPacks: String { return self._s[1841]! } + public var Common_Select: String { return self._s[1843]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1844]! } + public var WallpaperSearch_ColorGray: String { return self._s[1847]! } + public var TwoFactorSetup_Password_PlaceholderPassword: String { return self._s[1848]! } + public var TwoFactorSetup_Hint_SkipAction: String { return self._s[1849]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1850]! } + public var PollResults_Title: String { return self._s[1851]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1852]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[1853]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1854]! } + public var Widget_AuthRequired: String { return self._s[1855]! } + public var Camera_FlashOn: String { return self._s[1856]! } + public var Conversation_ContextMenuLookUp: String { return self._s[1857]! } + public var Channel_Stickers_NotFoundHelp: String { return self._s[1858]! } + public var Watch_Suggestion_OK: String { return self._s[1859]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1860]!, self._r[1860]!, [_0]) + return formatWithArgumentRanges(self._s[1861]!, self._r[1861]!, [_0]) } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1862]!, self._r[1862]!, [_0]) + return formatWithArgumentRanges(self._s[1863]!, self._r[1863]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[1863]! } - public var DialogList_AdLabel: String { return self._s[1864]! } - public var WatchRemote_NotificationText: String { return self._s[1865]! } - public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1866]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1867]! } - public var Conversation_ReportSpam: String { return self._s[1868]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1869]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[1871]! } - public var PhoneLabel_Title: String { return self._s[1872]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[1873]! } - public var Settings_ChangePhoneNumber: String { return self._s[1874]! } - public var Notifications_ExceptionsTitle: String { return self._s[1875]! } - public var Notifications_AlertTones: String { return self._s[1876]! } - public var Call_ReportIncludeLogDescription: String { return self._s[1877]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1878]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1879]! } - public var VoiceOver_Chat_Photo: String { return self._s[1881]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[1882]! } - public var ReportPeer_ReasonOther: String { return self._s[1883]! } - public var ChatList_Context_JoinChannel: String { return self._s[1884]! } - public var KeyCommand_ScrollDown: String { return self._s[1886]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[1887]! } + public var TextFormat_Strikethrough: String { return self._s[1864]! } + public var DialogList_AdLabel: String { return self._s[1865]! } + public var WatchRemote_NotificationText: String { return self._s[1866]! } + public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1867]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1868]! } + public var Conversation_ReportSpam: String { return self._s[1869]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1870]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[1872]! } + public var PhoneLabel_Title: String { return self._s[1873]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[1874]! } + public var Settings_ChangePhoneNumber: String { return self._s[1875]! } + public var Notifications_ExceptionsTitle: String { return self._s[1876]! } + public var Notifications_AlertTones: String { return self._s[1877]! } + public var Call_ReportIncludeLogDescription: String { return self._s[1878]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1879]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1880]! } + public var VoiceOver_Chat_Photo: String { return self._s[1882]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[1883]! } + public var ReportPeer_ReasonOther: String { return self._s[1884]! } + public var ChatList_Context_JoinChannel: String { return self._s[1885]! } + public var KeyCommand_ScrollDown: String { return self._s[1887]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[1888]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1888]!, self._r[1888]!, [_0]) + return formatWithArgumentRanges(self._s[1889]!, self._r[1889]!, [_0]) } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1889]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1890]! } - public var AuthSessions_LogOut: String { return self._s[1891]! } - public var Passport_Identity_TypeInternalPassport: String { return self._s[1892]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1893]! } - public var Passport_Phone_Title: String { return self._s[1894]! } - public var ContactList_Context_StartSecretChat: String { return self._s[1895]! } - public var Settings_PhoneNumber: String { return self._s[1896]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1890]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1891]! } + public var AuthSessions_LogOut: String { return self._s[1892]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[1893]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1894]! } + public var Passport_Phone_Title: String { return self._s[1895]! } + public var ContactList_Context_StartSecretChat: String { return self._s[1896]! } + public var Settings_PhoneNumber: String { return self._s[1897]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1897]!, self._r[1897]!, [_0]) + return formatWithArgumentRanges(self._s[1898]!, self._r[1898]!, [_0]) } - public var NotificationsSound_Alert: String { return self._s[1899]! } - public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1900]! } - public var WebSearch_SearchNoResults: String { return self._s[1901]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1903]! } - public var Wallet_Configuration_SourceInfo: String { return self._s[1904]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1905]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[1906]! } - public var PhotoEditor_CurvesTool: String { return self._s[1907]! } - public var Checkout_PaymentMethod: String { return self._s[1909]! } + public var NotificationsSound_Alert: String { return self._s[1900]! } + public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1901]! } + public var WebSearch_SearchNoResults: String { return self._s[1902]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1904]! } + public var Wallet_Configuration_SourceInfo: String { return self._s[1905]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1906]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[1907]! } + public var PhotoEditor_CurvesTool: String { return self._s[1908]! } + public var Checkout_PaymentMethod: String { return self._s[1910]! } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1910]!, self._r[1910]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1911]!, self._r[1911]!, [_1, _2]) } - public var Contacts_AccessDeniedError: String { return self._s[1911]! } - public var Camera_PhotoMode: String { return self._s[1914]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1915]! } - public var Appearance_TextSize_Apply: String { return self._s[1916]! } - public var Passport_Address_AddUtilityBill: String { return self._s[1918]! } - public var CallSettings_OnMobile: String { return self._s[1919]! } - public var Tour_Text2: String { return self._s[1920]! } + public var Contacts_AccessDeniedError: String { return self._s[1912]! } + public var Camera_PhotoMode: String { return self._s[1915]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1916]! } + public var Appearance_TextSize_Apply: String { return self._s[1917]! } + public var Passport_Address_AddUtilityBill: String { return self._s[1919]! } + public var CallSettings_OnMobile: String { return self._s[1920]! } + public var Tour_Text2: String { return self._s[1921]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1921]!, self._r[1921]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1922]!, self._r[1922]!, [_1, _2]) } - public var DialogList_EncryptionProcessing: String { return self._s[1923]! } - public var Permissions_Skip: String { return self._s[1924]! } - public var Wallet_Words_NotDoneOk: String { return self._s[1925]! } - public var SecretImage_Title: String { return self._s[1926]! } - public var Watch_MessageView_Title: String { return self._s[1927]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1928]! } - public var AttachmentMenu_Poll: String { return self._s[1929]! } + public var DialogList_EncryptionProcessing: String { return self._s[1924]! } + public var Permissions_Skip: String { return self._s[1925]! } + public var Wallet_Words_NotDoneOk: String { return self._s[1926]! } + public var SecretImage_Title: String { return self._s[1927]! } + public var Watch_MessageView_Title: String { return self._s[1928]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1929]! } + public var AttachmentMenu_Poll: String { return self._s[1930]! } public func Notification_GroupInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1930]!, self._r[1930]!, [_0]) + return formatWithArgumentRanges(self._s[1931]!, self._r[1931]!, [_0]) } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1931]!, self._r[1931]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1932]!, self._r[1932]!, [_1, _2]) } - public var Notification_CallCanceled: String { return self._s[1932]! } - public var WallpaperPreview_Title: String { return self._s[1933]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1934]! } - public var Settings_ProxyConnecting: String { return self._s[1935]! } - public var Settings_CheckPhoneNumberText: String { return self._s[1937]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[1938]! } - public var Wallet_Intro_Title: String { return self._s[1939]! } - public var TwoFactorSetup_Password_Action: String { return self._s[1940]! } - public var Profile_MessageLifetime5s: String { return self._s[1941]! } - public var Username_InvalidCharacters: String { return self._s[1942]! } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1943]! } - public var ScheduledMessages_ClearAll: String { return self._s[1944]! } - public var WallpaperPreview_CropBottomText: String { return self._s[1945]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[1946]! } - public var Settings_AddAccount: String { return self._s[1947]! } - public var Notification_CreatedChannel: String { return self._s[1950]! } + public var Notification_CallCanceled: String { return self._s[1933]! } + public var WallpaperPreview_Title: String { return self._s[1934]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1935]! } + public var Settings_ProxyConnecting: String { return self._s[1936]! } + public var Settings_CheckPhoneNumberText: String { return self._s[1938]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[1939]! } + public var Wallet_Intro_Title: String { return self._s[1940]! } + public var TwoFactorSetup_Password_Action: String { return self._s[1941]! } + public var Profile_MessageLifetime5s: String { return self._s[1942]! } + public var Username_InvalidCharacters: String { return self._s[1943]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1944]! } + public var ScheduledMessages_ClearAll: String { return self._s[1945]! } + public var WallpaperPreview_CropBottomText: String { return self._s[1946]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[1947]! } + public var Settings_AddAccount: String { return self._s[1948]! } + public var Notification_CreatedChannel: String { return self._s[1951]! } public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1951]!, self._r[1951]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1952]!, self._r[1952]!, [_1, _2, _3]) } - public var Passcode_AppLockedAlert: String { return self._s[1953]! } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1954]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[1955]! } - public var Contacts_TopSection: String { return self._s[1956]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1957]! } + public var Passcode_AppLockedAlert: String { return self._s[1954]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1955]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[1956]! } + public var Contacts_TopSection: String { return self._s[1957]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1958]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1958]!, self._r[1958]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1959]!, self._r[1959]!, [_0, _1]) } - public var Wallet_Info_Receive: String { return self._s[1959]! } - public var Wallet_Completed_ViewWallet: String { return self._s[1960]! } + public var Wallet_Info_Receive: String { return self._s[1960]! } + public var Wallet_Completed_ViewWallet: String { return self._s[1961]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1961]!, self._r[1961]!, [_0]) + return formatWithArgumentRanges(self._s[1962]!, self._r[1962]!, [_0]) } - public var ReportPeer_ReasonSpam: String { return self._s[1962]! } - public var UserInfo_TapToCall: String { return self._s[1963]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1965]! } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1966]! } - public var Common_Search: String { return self._s[1967]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1968]! } + public var ReportPeer_ReasonSpam: String { return self._s[1963]! } + public var UserInfo_TapToCall: String { return self._s[1964]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1966]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1967]! } + public var Common_Search: String { return self._s[1968]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1969]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1969]!, self._r[1969]!, [_0]) + return formatWithArgumentRanges(self._s[1970]!, self._r[1970]!, [_0]) } - public var Wallet_Month_ShortJuly: String { return self._s[1970]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1972]! } - public var Message_InvoiceLabel: String { return self._s[1973]! } - public var Conversation_InputTextPlaceholder: String { return self._s[1974]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1975]! } + public var Wallet_Month_ShortJuly: String { return self._s[1971]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1973]! } + public var Message_InvoiceLabel: String { return self._s[1974]! } + public var Conversation_InputTextPlaceholder: String { return self._s[1975]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1976]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1976]!, self._r[1976]!, [_0]) + return formatWithArgumentRanges(self._s[1977]!, self._r[1977]!, [_0]) } - public var IntentsSettings_Reset: String { return self._s[1977]! } - public var Conversation_Info: String { return self._s[1978]! } - public var Login_InfoDeletePhoto: String { return self._s[1979]! } - public var Passport_Language_vi: String { return self._s[1981]! } - public var UserInfo_ScamUserWarning: String { return self._s[1982]! } - public var Conversation_Search: String { return self._s[1983]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1985]! } - public var ReportPeer_ReasonPornography: String { return self._s[1986]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1987]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1988]! } - public var Map_LiveLocationGroupDescription: String { return self._s[1989]! } - public var Channel_Setup_TypeHeader: String { return self._s[1990]! } - public var AuthSessions_LoggedIn: String { return self._s[1991]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1992]! } - public var Login_SmsRequestState3: String { return self._s[1993]! } - public var Passport_Address_EditUtilityBill: String { return self._s[1994]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1995]! } - public var Join_ChannelsTooMuch: String { return self._s[1996]! } - public var Channel_Edit_LinkItem: String { return self._s[1997]! } - public var Privacy_Calls_P2PNever: String { return self._s[1998]! } - public var Conversation_AddToReadingList: String { return self._s[2000]! } - public var Share_MultipleMessagesDisabled: String { return self._s[2001]! } - public var Message_Animation: String { return self._s[2002]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[2003]! } - public var Map_Unknown: String { return self._s[2004]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[2005]! } + public var IntentsSettings_Reset: String { return self._s[1978]! } + public var Conversation_Info: String { return self._s[1979]! } + public var Login_InfoDeletePhoto: String { return self._s[1980]! } + public var Passport_Language_vi: String { return self._s[1982]! } + public var UserInfo_ScamUserWarning: String { return self._s[1983]! } + public var Conversation_Search: String { return self._s[1984]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1986]! } + public var ReportPeer_ReasonPornography: String { return self._s[1987]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1988]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1989]! } + public var Map_LiveLocationGroupDescription: String { return self._s[1990]! } + public var Channel_Setup_TypeHeader: String { return self._s[1991]! } + public var AuthSessions_LoggedIn: String { return self._s[1992]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1993]! } + public var Login_SmsRequestState3: String { return self._s[1994]! } + public var Passport_Address_EditUtilityBill: String { return self._s[1995]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1996]! } + public var Join_ChannelsTooMuch: String { return self._s[1997]! } + public var Channel_Edit_LinkItem: String { return self._s[1998]! } + public var Privacy_Calls_P2PNever: String { return self._s[1999]! } + public var Conversation_AddToReadingList: String { return self._s[2001]! } + public var Share_MultipleMessagesDisabled: String { return self._s[2002]! } + public var Message_Animation: String { return self._s[2003]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[2004]! } + public var Map_Unknown: String { return self._s[2005]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[2006]! } public func PUSH_PINNED_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2006]!, self._r[2006]!, [_1, _2]) - } - public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2007]!, self._r[2007]!, [_1, _2]) } - public var Call_StatusRequesting: String { return self._s[2008]! } - public var Conversation_SecretChatContextBotAlert: String { return self._s[2009]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[2010]! } + public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2008]!, self._r[2008]!, [_1, _2]) + } + public var Call_StatusRequesting: String { return self._s[2009]! } + public var Conversation_SecretChatContextBotAlert: String { return self._s[2010]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[2011]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2011]!, self._r[2011]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2012]!, self._r[2012]!, [_1, _2]) } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2012]!, self._r[2012]!, [_0]) + return formatWithArgumentRanges(self._s[2013]!, self._r[2013]!, [_0]) } - public var Update_Skip: String { return self._s[2013]! } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2014]! } - public var Message_PinnedPollMessage: String { return self._s[2015]! } - public var BlockedUsers_Title: String { return self._s[2016]! } + public var Update_Skip: String { return self._s[2014]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2015]! } + public var Message_PinnedPollMessage: String { return self._s[2016]! } + public var BlockedUsers_Title: String { return self._s[2017]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2017]!, self._r[2017]!, [_1]) + return formatWithArgumentRanges(self._s[2018]!, self._r[2018]!, [_1]) } - public var Username_CheckingUsername: String { return self._s[2018]! } - public var NotificationsSound_Bell: String { return self._s[2019]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[2020]! } - public var Weekday_Monday: String { return self._s[2021]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[2022]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[2023]! } - public var ChatSettings_Groups: String { return self._s[2024]! } - public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2025]! } + public var Username_CheckingUsername: String { return self._s[2019]! } + public var NotificationsSound_Bell: String { return self._s[2020]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[2021]! } + public var Weekday_Monday: String { return self._s[2022]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[2023]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[2024]! } + public var ChatSettings_Groups: String { return self._s[2025]! } + public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2026]! } public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2026]!, self._r[2026]!, [_0]) + return formatWithArgumentRanges(self._s[2027]!, self._r[2027]!, [_0]) } - public var Your_card_was_declined: String { return self._s[2027]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2029]! } - public var Wallet_Month_ShortApril: String { return self._s[2030]! } - public var ChatList_Unmute: String { return self._s[2031]! } - public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2032]! } - public var PhotoEditor_CurvesAll: String { return self._s[2033]! } - public var Weekday_ShortTuesday: String { return self._s[2034]! } - public var DialogList_Read: String { return self._s[2035]! } - public var Appearance_AppIconClassic: String { return self._s[2036]! } - public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[2037]! } - public var Passport_Identity_Gender: String { return self._s[2038]! } + public var Your_card_was_declined: String { return self._s[2028]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2030]! } + public var Wallet_Month_ShortApril: String { return self._s[2031]! } + public var ChatList_Unmute: String { return self._s[2032]! } + public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2033]! } + public var PhotoEditor_CurvesAll: String { return self._s[2034]! } + public var Weekday_ShortTuesday: String { return self._s[2035]! } + public var DialogList_Read: String { return self._s[2036]! } + public var Appearance_AppIconClassic: String { return self._s[2037]! } + public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[2038]! } + public var Passport_Identity_Gender: String { return self._s[2039]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2039]!, self._r[2039]!, [_0]) + return formatWithArgumentRanges(self._s[2040]!, self._r[2040]!, [_0]) } - public var Target_SelectGroup: String { return self._s[2040]! } - public var Map_HomeAndWorkInfo: String { return self._s[2042]! } + public var Target_SelectGroup: String { return self._s[2041]! } + public var Map_HomeAndWorkInfo: String { return self._s[2043]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2043]!, self._r[2043]!, [_0]) + return formatWithArgumentRanges(self._s[2044]!, self._r[2044]!, [_0]) } - public var Passport_Language_en: String { return self._s[2044]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[2045]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2046]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[2047]! } - public var ScheduledMessages_SendNow: String { return self._s[2048]! } - public var Checkout_NewCard_PaymentCard: String { return self._s[2050]! } - public var Login_InfoHelp: String { return self._s[2051]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2052]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2053]! } + public var Passport_Language_en: String { return self._s[2045]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[2046]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2047]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[2048]! } + public var ScheduledMessages_SendNow: String { return self._s[2049]! } + public var Checkout_NewCard_PaymentCard: String { return self._s[2051]! } + public var Login_InfoHelp: String { return self._s[2052]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2053]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2054]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2054]!, self._r[2054]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2055]!, self._r[2055]!, [_1, _2]) } - public var SocksProxySetup_AddProxy: String { return self._s[2057]! } - public var CreatePoll_Title: String { return self._s[2058]! } - public var MessagePoll_QuizNoUsers: String { return self._s[2059]! } - public var Conversation_ViewTheme: String { return self._s[2060]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2061]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2062]! } - public var TwoFactorSetup_Intro_Text: String { return self._s[2063]! } - public var UserInfo_GroupsInCommon: String { return self._s[2064]! } - public var TelegramWallet_Intro_TermsUrl: String { return self._s[2065]! } - public var Call_AudioRouteHide: String { return self._s[2066]! } + public var SocksProxySetup_AddProxy: String { return self._s[2058]! } + public var CreatePoll_Title: String { return self._s[2059]! } + public var MessagePoll_QuizNoUsers: String { return self._s[2060]! } + public var Conversation_ViewTheme: String { return self._s[2061]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2062]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2063]! } + public var TwoFactorSetup_Intro_Text: String { return self._s[2064]! } + public var UserInfo_GroupsInCommon: String { return self._s[2065]! } + public var TelegramWallet_Intro_TermsUrl: String { return self._s[2066]! } + public var Call_AudioRouteHide: String { return self._s[2067]! } public func Wallet_Info_TransactionDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2068]!, self._r[2068]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2069]!, self._r[2069]!, [_1, _2]) } - public var ContactInfo_PhoneLabelMobile: String { return self._s[2069]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2070]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[2070]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2071]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2071]!, self._r[2071]!, [_0]) + return formatWithArgumentRanges(self._s[2072]!, self._r[2072]!, [_0]) } - public var TextFormat_Bold: String { return self._s[2072]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2073]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[2074]! } - public var Notifications_Title: String { return self._s[2075]! } - public var Group_Username_InvalidTooShort: String { return self._s[2076]! } - public var Channel_ErrorAddTooMuch: String { return self._s[2077]! } + public var TextFormat_Bold: String { return self._s[2073]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2074]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[2075]! } + public var Notifications_Title: String { return self._s[2076]! } + public var Group_Username_InvalidTooShort: String { return self._s[2077]! } + public var Channel_ErrorAddTooMuch: String { return self._s[2078]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2078]!, self._r[2078]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2079]!, self._r[2079]!, ["\(_0)"]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[2080]! } - public var Stickers_SuggestAdded: String { return self._s[2081]! } - public var Login_CountryCode: String { return self._s[2082]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[2083]! } - public var Map_GetDirections: String { return self._s[2084]! } - public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2085]! } - public var Login_PhoneFloodError: String { return self._s[2086]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[2081]! } + public var Stickers_SuggestAdded: String { return self._s[2082]! } + public var Login_CountryCode: String { return self._s[2083]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[2084]! } + public var Map_GetDirections: String { return self._s[2085]! } + public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2086]! } + public var Login_PhoneFloodError: String { return self._s[2087]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2087]!, self._r[2087]!, [_0]) + return formatWithArgumentRanges(self._s[2088]!, self._r[2088]!, [_0]) } public func Wallet_Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2088]!, self._r[2088]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2089]!, self._r[2089]!, [_1, _2, _3]) } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2089]! } - public var Settings_SetUsername: String { return self._s[2091]! } - public var Group_Location_ChangeLocation: String { return self._s[2092]! } - public var Notification_GroupInviterSelf: String { return self._s[2093]! } - public var InstantPage_TapToOpenLink: String { return self._s[2094]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2090]! } + public var Settings_SetUsername: String { return self._s[2092]! } + public var Group_Location_ChangeLocation: String { return self._s[2093]! } + public var Notification_GroupInviterSelf: String { return self._s[2094]! } + public var InstantPage_TapToOpenLink: String { return self._s[2095]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2095]!, self._r[2095]!, [_0]) + return formatWithArgumentRanges(self._s[2096]!, self._r[2096]!, [_0]) } - public var Watch_Suggestion_TalkLater: String { return self._s[2096]! } - public var SecretChat_Title: String { return self._s[2097]! } - public var Group_UpgradeNoticeText1: String { return self._s[2098]! } - public var AuthSessions_Title: String { return self._s[2099]! } + public var Watch_Suggestion_TalkLater: String { return self._s[2097]! } + public var SecretChat_Title: String { return self._s[2098]! } + public var Group_UpgradeNoticeText1: String { return self._s[2099]! } + public var AuthSessions_Title: String { return self._s[2100]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2100]!, self._r[2100]!, [_0]) + return formatWithArgumentRanges(self._s[2101]!, self._r[2101]!, [_0]) } - public var PhotoEditor_CropAuto: String { return self._s[2101]! } - public var Channel_About_Title: String { return self._s[2102]! } - public var Theme_ThemeChanged: String { return self._s[2103]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[2104]! } + public var PhotoEditor_CropAuto: String { return self._s[2102]! } + public var Channel_About_Title: String { return self._s[2103]! } + public var Theme_ThemeChanged: String { return self._s[2104]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[2105]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2106]!, self._r[2106]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2107]!, self._r[2107]!, ["\(_0)"]) } - public var VoiceOver_MessageContextReport: String { return self._s[2107]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2109]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[2110]! } + public var VoiceOver_MessageContextReport: String { return self._s[2108]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2110]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[2111]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2111]!, self._r[2111]!, [_1]) + return formatWithArgumentRanges(self._s[2112]!, self._r[2112]!, [_1]) } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2113]!, self._r[2113]!, [_0]) - } - public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2114]!, self._r[2114]!, [_0]) } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2115]! } - public var Presence_online: String { return self._s[2118]! } - public var PasscodeSettings_Title: String { return self._s[2119]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2120]! } - public var Web_OpenExternal: String { return self._s[2121]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[2123]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2124]! } - public var LocalGroup_Title: String { return self._s[2125]! } + public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2115]!, self._r[2115]!, [_0]) + } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2116]! } + public var Presence_online: String { return self._s[2119]! } + public var PasscodeSettings_Title: String { return self._s[2120]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2121]! } + public var Web_OpenExternal: String { return self._s[2122]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[2124]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2125]! } + public var LocalGroup_Title: String { return self._s[2126]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2126]!, self._r[2126]!, [_0]) + return formatWithArgumentRanges(self._s[2127]!, self._r[2127]!, [_0]) } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2127]! } - public var Conversation_StopQuizConfirmation: String { return self._s[2128]! } - public var Map_YouAreHere: String { return self._s[2129]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2128]! } + public var Conversation_StopQuizConfirmation: String { return self._s[2129]! } + public var Map_YouAreHere: String { return self._s[2130]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2130]!, self._r[2130]!, [_0]) - } - public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2131]!, self._r[2131]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[2132]! } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2133]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2134]! } - public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_0]) + public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2132]!, self._r[2132]!, [_0]) } - public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { + public var Theme_Context_ChangeColors: String { return self._s[2133]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2134]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2135]! } + public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[2137]! } - public var Bot_Start: String { return self._s[2138]! } - public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2139]!, self._r[2139]!, [_0]) + public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2137]!, self._r[2137]!, [_0]) } - public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { + public var SocksProxySetup_Username: String { return self._s[2138]! } + public var Bot_Start: String { return self._s[2139]! } + public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2140]!, self._r[2140]!, [_0]) } - public var Contacts_SortByPresence: String { return self._s[2141]! } - public var AccentColor_Title: String { return self._s[2143]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2144]! } + public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2141]!, self._r[2141]!, [_0]) + } + public var Contacts_SortByPresence: String { return self._s[2142]! } + public var AccentColor_Title: String { return self._s[2144]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2145]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2145]!, self._r[2145]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2146]!, self._r[2146]!, [_1, _2]) } public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2146]!, self._r[2146]!, [_0]) + return formatWithArgumentRanges(self._s[2147]!, self._r[2147]!, [_0]) } public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2147]!, self._r[2147]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2148]!, self._r[2148]!, [_1, _2]) } - public var Passport_Email_EnterOtherEmail: String { return self._s[2148]! } - public var Login_InfoAvatarPhoto: String { return self._s[2149]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2150]! } - public var Tour_Title4: String { return self._s[2151]! } - public var Passport_Identity_Translation: String { return self._s[2152]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2153]! } - public var Login_TermsOfServiceLabel: String { return self._s[2155]! } - public var Passport_Language_it: String { return self._s[2156]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2157]! } - public var Passport_Identity_SelfieHelp: String { return self._s[2158]! } - public var Conversation_ClearAll: String { return self._s[2160]! } - public var Wallet_Send_UninitializedText: String { return self._s[2162]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[2163]! } - public var TwoStepAuth_FloodError: String { return self._s[2164]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[2149]! } + public var Login_InfoAvatarPhoto: String { return self._s[2150]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2151]! } + public var Tour_Title4: String { return self._s[2152]! } + public var Passport_Identity_Translation: String { return self._s[2153]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2154]! } + public var Login_TermsOfServiceLabel: String { return self._s[2156]! } + public var Passport_Language_it: String { return self._s[2157]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2158]! } + public var Passport_Identity_SelfieHelp: String { return self._s[2159]! } + public var Conversation_ClearAll: String { return self._s[2161]! } + public var Wallet_Send_UninitializedText: String { return self._s[2163]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[2164]! } + public var TwoStepAuth_FloodError: String { return self._s[2165]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2165]!, self._r[2165]!, [_1]) + return formatWithArgumentRanges(self._s[2166]!, self._r[2166]!, [_1]) } - public var Paint_Delete: String { return self._s[2166]! } + public var Paint_Delete: String { return self._s[2167]! } public func Wallet_Sent_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2167]!, self._r[2167]!, [_0]) + return formatWithArgumentRanges(self._s[2168]!, self._r[2168]!, [_0]) } - public var Privacy_AddNewPeer: String { return self._s[2168]! } + public var Privacy_AddNewPeer: String { return self._s[2169]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2169]!, self._r[2169]!, [_1]) + return formatWithArgumentRanges(self._s[2170]!, self._r[2170]!, [_1]) } - public var LogoutOptions_SetPasscodeText: String { return self._s[2170]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[2171]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2171]!, self._r[2171]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2172]!, self._r[2172]!, [_1, _2]) } - public var Message_PinnedAudioMessage: String { return self._s[2172]! } + public var Message_PinnedAudioMessage: String { return self._s[2173]! } public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2173]!, self._r[2173]!, [_0]) + return formatWithArgumentRanges(self._s[2174]!, self._r[2174]!, [_0]) } - public var Notification_Mute1hMin: String { return self._s[2174]! } - public var Notifications_GroupNotificationsSound: String { return self._s[2175]! } - public var Wallet_Month_GenNovember: String { return self._s[2176]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[2177]! } - public var Conversation_MessageEditedLabel: String { return self._s[2178]! } + public var Notification_Mute1hMin: String { return self._s[2175]! } + public var Notifications_GroupNotificationsSound: String { return self._s[2176]! } + public var Wallet_Month_GenNovember: String { return self._s[2177]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[2178]! } + public var Conversation_MessageEditedLabel: String { return self._s[2179]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2179]!, self._r[2179]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2180]!, self._r[2180]!, [_0, _1]) } - public var Notification_Exceptions_AlwaysOff: String { return self._s[2180]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2181]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[2181]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2182]! } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2182]!, self._r[2182]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2183]!, self._r[2183]!, [_0, _1, _2]) } - public var NetworkUsageSettings_ResetStats: String { return self._s[2183]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[2184]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2184]!, self._r[2184]!, [_1]) + return formatWithArgumentRanges(self._s[2185]!, self._r[2185]!, [_1]) } - public var AccessDenied_LocationTracking: String { return self._s[2185]! } - public var Month_GenOctober: String { return self._s[2186]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2187]! } - public var EnterPasscode_EnterPasscode: String { return self._s[2188]! } - public var MediaPicker_TimerTooltip: String { return self._s[2190]! } - public var SharedMedia_TitleAll: String { return self._s[2191]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2194]! } - public var Conversation_RestrictedMedia: String { return self._s[2195]! } - public var AccessDenied_PhotosRestricted: String { return self._s[2196]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2198]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2199]! } + public var AccessDenied_LocationTracking: String { return self._s[2186]! } + public var Month_GenOctober: String { return self._s[2187]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2188]! } + public var EnterPasscode_EnterPasscode: String { return self._s[2189]! } + public var MediaPicker_TimerTooltip: String { return self._s[2191]! } + public var SharedMedia_TitleAll: String { return self._s[2192]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2195]! } + public var Conversation_RestrictedMedia: String { return self._s[2196]! } + public var AccessDenied_PhotosRestricted: String { return self._s[2197]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2199]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2200]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2200]!, self._r[2200]!, [_0]) + return formatWithArgumentRanges(self._s[2201]!, self._r[2201]!, [_0]) } - public var Conversation_SavedMessages: String { return self._s[2203]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[2205]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2206]! } + public var Conversation_SavedMessages: String { return self._s[2204]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[2206]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2207]! } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2208]!, self._r[2208]!, [_0]) + return formatWithArgumentRanges(self._s[2209]!, self._r[2209]!, [_0]) } - public var VoiceOver_Chat_YourMessage: String { return self._s[2209]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2210]! } public func VoiceOver_Chat_Title(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2210]!, self._r[2210]!, [_0]) + return formatWithArgumentRanges(self._s[2211]!, self._r[2211]!, [_0]) } - public var ReportPeer_AlertSuccess: String { return self._s[2211]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2212]! } + public var ReportPeer_AlertSuccess: String { return self._s[2212]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2213]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2213]!, self._r[2213]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2214]!, self._r[2214]!, [_1, _2]) } - public var Checkout_PasswordEntry_Title: String { return self._s[2214]! } - public var PhotoEditor_FadeTool: String { return self._s[2215]! } - public var Privacy_ContactsReset: String { return self._s[2216]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2215]! } + public var PhotoEditor_FadeTool: String { return self._s[2216]! } + public var Privacy_ContactsReset: String { return self._s[2217]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2218]!, self._r[2218]!, [_0]) + return formatWithArgumentRanges(self._s[2219]!, self._r[2219]!, [_0]) } - public var Message_PinnedVideoMessage: String { return self._s[2219]! } - public var ChatList_Mute: String { return self._s[2220]! } + public var Message_PinnedVideoMessage: String { return self._s[2220]! } + public var ChatList_Mute: String { return self._s[2221]! } public func Wallet_Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2221]!, self._r[2221]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2222]!, self._r[2222]!, [_1, _2, _3]) } - public var Permissions_CellularDataText_v0: String { return self._s[2222]! } - public var ShareMenu_SelectChats: String { return self._s[2225]! } - public var ChatList_Context_Unarchive: String { return self._s[2226]! } - public var MusicPlayer_VoiceNote: String { return self._s[2227]! } - public var Conversation_RestrictedText: String { return self._s[2228]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2229]! } - public var Wallet_Month_GenApril: String { return self._s[2230]! } - public var Wallet_Month_ShortMarch: String { return self._s[2231]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[2232]! } - public var Cache_Videos: String { return self._s[2233]! } - public var PrivacySettings_PhoneNumber: String { return self._s[2234]! } - public var Wallet_Month_GenFebruary: String { return self._s[2235]! } - public var FeatureDisabled_Oops: String { return self._s[2237]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[2238]! } + public var Permissions_CellularDataText_v0: String { return self._s[2223]! } + public var ShareMenu_SelectChats: String { return self._s[2226]! } + public var ChatList_Context_Unarchive: String { return self._s[2227]! } + public var MusicPlayer_VoiceNote: String { return self._s[2228]! } + public var Conversation_RestrictedText: String { return self._s[2229]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2230]! } + public var Wallet_Month_GenApril: String { return self._s[2231]! } + public var Wallet_Month_ShortMarch: String { return self._s[2232]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2233]! } + public var Cache_Videos: String { return self._s[2234]! } + public var PrivacySettings_PhoneNumber: String { return self._s[2235]! } + public var Wallet_Month_GenFebruary: String { return self._s[2236]! } + public var FeatureDisabled_Oops: String { return self._s[2238]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[2239]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2239]!, self._r[2239]!, [_0]) + return formatWithArgumentRanges(self._s[2240]!, self._r[2240]!, [_0]) } - public var Stickers_GroupStickersHelp: String { return self._s[2240]! } - public var GroupPermission_NoSendPolls: String { return self._s[2241]! } - public var Wallet_Qr_ScanCode: String { return self._s[2242]! } - public var Message_VideoExpired: String { return self._s[2244]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[2245]! } - public var Notifications_Badge: String { return self._s[2246]! } - public var Wallet_Receive_AddressCopied: String { return self._s[2247]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[2248]! } - public var Username_InvalidTooShort: String { return self._s[2249]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2250]! } - public var Channel_AdminLog_PinMessages: String { return self._s[2251]! } - public var ArchivedChats_IntroTitle3: String { return self._s[2252]! } + public var Stickers_GroupStickersHelp: String { return self._s[2241]! } + public var GroupPermission_NoSendPolls: String { return self._s[2242]! } + public var Wallet_Qr_ScanCode: String { return self._s[2243]! } + public var Message_VideoExpired: String { return self._s[2245]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[2246]! } + public var Notifications_Badge: String { return self._s[2247]! } + public var Wallet_Receive_AddressCopied: String { return self._s[2248]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[2249]! } + public var Username_InvalidTooShort: String { return self._s[2250]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2251]! } + public var Channel_AdminLog_PinMessages: String { return self._s[2252]! } + public var ArchivedChats_IntroTitle3: String { return self._s[2253]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2253]!, self._r[2253]!, [_1]) + return formatWithArgumentRanges(self._s[2254]!, self._r[2254]!, [_1]) } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[2254]! } - public var Conversation_DefaultRestrictedText: String { return self._s[2255]! } - public var SharedMedia_CategoryDocs: String { return self._s[2258]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[2255]! } + public var Conversation_DefaultRestrictedText: String { return self._s[2256]! } + public var SharedMedia_CategoryDocs: String { return self._s[2259]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2259]!, self._r[2259]!, [_1]) + return formatWithArgumentRanges(self._s[2260]!, self._r[2260]!, [_1]) } - public var Wallet_Send_UninitializedTitle: String { return self._s[2260]! } - public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2261]! } - public var Privacy_Forwards_NeverLink: String { return self._s[2263]! } + public var Wallet_Send_UninitializedTitle: String { return self._s[2261]! } + public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2262]! } + public var Privacy_Forwards_NeverLink: String { return self._s[2264]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2264]!, self._r[2264]!, [_1]) + return formatWithArgumentRanges(self._s[2265]!, self._r[2265]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2265]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2266]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2266]!, self._r[2266]!, [_0]) + return formatWithArgumentRanges(self._s[2267]!, self._r[2267]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[2267]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2268]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[2269]! } - public var Channel_UpdatePhotoItem: String { return self._s[2270]! } - public var GroupInfo_LeftStatus: String { return self._s[2271]! } - public var Watch_MessageView_Forward: String { return self._s[2273]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[2274]! } - public var Cache_ClearEmpty: String { return self._s[2276]! } - public var Localization_LanguageName: String { return self._s[2277]! } - public var Wallet_AccessDenied_Title: String { return self._s[2278]! } - public var WebSearch_GIFs: String { return self._s[2279]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2280]! } - public var Wallet_AccessDenied_Settings: String { return self._s[2281]! } - public var Username_InvalidStartsWithNumber: String { return self._s[2282]! } - public var Common_Back: String { return self._s[2283]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2284]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2285]! } - public var Wallet_Send_Send: String { return self._s[2286]! } + public var ChatSettings_PrivateChats: String { return self._s[2268]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2269]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[2270]! } + public var Channel_UpdatePhotoItem: String { return self._s[2271]! } + public var GroupInfo_LeftStatus: String { return self._s[2272]! } + public var Watch_MessageView_Forward: String { return self._s[2274]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[2275]! } + public var Cache_ClearEmpty: String { return self._s[2277]! } + public var Localization_LanguageName: String { return self._s[2278]! } + public var Wallet_AccessDenied_Title: String { return self._s[2279]! } + public var WebSearch_GIFs: String { return self._s[2280]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2281]! } + public var Wallet_AccessDenied_Settings: String { return self._s[2282]! } + public var Username_InvalidStartsWithNumber: String { return self._s[2283]! } + public var Common_Back: String { return self._s[2284]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2285]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2286]! } + public var Wallet_Send_Send: String { return self._s[2287]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2288]!, self._r[2288]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2289]!, self._r[2289]!, [_1, _2]) } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[2289]! } - public var Wallet_Month_GenJune: String { return self._s[2290]! } - public var Passport_Email_Help: String { return self._s[2291]! } - public var Watch_Conversation_Reply: String { return self._s[2293]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[2296]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2297]! } - public var Channel_BanUser_Unban: String { return self._s[2299]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2300]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2301]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2303]! } - public var Wallet_Send_AddressHeader: String { return self._s[2304]! } - public var Passport_Identity_Name: String { return self._s[2305]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[2290]! } + public var Wallet_Month_GenJune: String { return self._s[2291]! } + public var Passport_Email_Help: String { return self._s[2292]! } + public var Watch_Conversation_Reply: String { return self._s[2294]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[2297]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2298]! } + public var Channel_BanUser_Unban: String { return self._s[2300]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2301]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2302]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2304]! } + public var Wallet_Send_AddressHeader: String { return self._s[2305]! } + public var Passport_Identity_Name: String { return self._s[2306]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2306]!, self._r[2306]!, [_0]) + return formatWithArgumentRanges(self._s[2307]!, self._r[2307]!, [_0]) } - public var GroupRemoved_ViewUserInfo: String { return self._s[2307]! } - public var Conversation_BlockUser: String { return self._s[2308]! } - public var Month_GenJanuary: String { return self._s[2309]! } - public var ChatSettings_TextSize: String { return self._s[2310]! } - public var Notification_PassportValuePhone: String { return self._s[2311]! } - public var MediaPlayer_UnknownArtist: String { return self._s[2312]! } - public var Passport_Language_ne: String { return self._s[2313]! } - public var Notification_CallBack: String { return self._s[2314]! } - public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2315]! } - public var TwoStepAuth_EmailHelp: String { return self._s[2316]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[2308]! } + public var Conversation_BlockUser: String { return self._s[2309]! } + public var Month_GenJanuary: String { return self._s[2310]! } + public var ChatSettings_TextSize: String { return self._s[2311]! } + public var Notification_PassportValuePhone: String { return self._s[2312]! } + public var MediaPlayer_UnknownArtist: String { return self._s[2313]! } + public var Passport_Language_ne: String { return self._s[2314]! } + public var Notification_CallBack: String { return self._s[2315]! } + public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2316]! } + public var TwoStepAuth_EmailHelp: String { return self._s[2317]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2317]!, self._r[2317]!, [_0]) + return formatWithArgumentRanges(self._s[2318]!, self._r[2318]!, [_0]) } - public var Channel_Info_Management: String { return self._s[2318]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[2319]! } - public var Stickers_FrequentlyUsed: String { return self._s[2320]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2321]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2323]! } + public var Channel_Info_Management: String { return self._s[2319]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[2320]! } + public var Stickers_FrequentlyUsed: String { return self._s[2321]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2322]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2324]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2324]!, self._r[2324]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[2325]!, self._r[2325]!, [_1, "\(_2)"]) } - public var TwoFactorSetup_Password_Title: String { return self._s[2325]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[2326]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[2327]! } - public var CreatePoll_TextHeader: String { return self._s[2328]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2326]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[2327]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[2328]! } + public var CreatePoll_TextHeader: String { return self._s[2329]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2329]!, self._r[2329]!, [_0]) + return formatWithArgumentRanges(self._s[2330]!, self._r[2330]!, [_0]) } - public var PhotoEditor_QualityMedium: String { return self._s[2330]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2331]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[2333]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[2334]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[2335]! } + public var PhotoEditor_QualityMedium: String { return self._s[2331]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2332]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[2334]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[2335]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[2336]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2336]!, self._r[2336]!, [_0]) + return formatWithArgumentRanges(self._s[2337]!, self._r[2337]!, [_0]) } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2337]!, self._r[2337]!, [_1]) + return formatWithArgumentRanges(self._s[2338]!, self._r[2338]!, [_1]) } - public var LogoutOptions_LogOutWalletInfo: String { return self._s[2338]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2339]! } - public var Conversation_LinkDialogOpen: String { return self._s[2341]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2342]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[2343]! } - public var Settings_Username: String { return self._s[2345]! } - public var Conversation_Block: String { return self._s[2347]! } - public var Wallpaper_Wallpaper: String { return self._s[2348]! } - public var SocksProxySetup_UseProxy: String { return self._s[2350]! } - public var Wallet_Send_Confirmation: String { return self._s[2351]! } - public var EditTheme_UploadEditedTheme: String { return self._s[2352]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[2353]! } - public var MessageTimer_Forever: String { return self._s[2354]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[2355]! } - public var PhotoEditor_DiscardChanges: String { return self._s[2356]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2357]! } - public var Passport_Language_da: String { return self._s[2358]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[2359]! } + public var LogoutOptions_LogOutWalletInfo: String { return self._s[2339]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2340]! } + public var Conversation_LinkDialogOpen: String { return self._s[2342]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2343]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[2344]! } + public var Settings_Username: String { return self._s[2346]! } + public var Conversation_Block: String { return self._s[2348]! } + public var Wallpaper_Wallpaper: String { return self._s[2349]! } + public var SocksProxySetup_UseProxy: String { return self._s[2351]! } + public var Wallet_Send_Confirmation: String { return self._s[2352]! } + public var EditTheme_UploadEditedTheme: String { return self._s[2353]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[2354]! } + public var MessageTimer_Forever: String { return self._s[2355]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[2356]! } + public var PhotoEditor_DiscardChanges: String { return self._s[2357]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2358]! } + public var Passport_Language_da: String { return self._s[2359]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[2360]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2360]!, self._r[2360]!, [_0]) + return formatWithArgumentRanges(self._s[2361]!, self._r[2361]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[2361]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[2362]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2363]!, self._r[2363]!, [_0]) + return formatWithArgumentRanges(self._s[2364]!, self._r[2364]!, [_0]) } - public var Settings_AddDevice: String { return self._s[2364]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2366]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2367]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2368]! } - public var Conversation_PinnedPoll: String { return self._s[2369]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2370]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2371]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2372]! } + public var Settings_AddDevice: String { return self._s[2365]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2367]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2368]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2369]! } + public var Conversation_PinnedPoll: String { return self._s[2370]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2371]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2372]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2373]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2373]!, self._r[2373]!, [_1]) + return formatWithArgumentRanges(self._s[2374]!, self._r[2374]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[2374]! } - public var Cache_ByPeerHeader: String { return self._s[2375]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2375]! } + public var Cache_ByPeerHeader: String { return self._s[2376]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2376]!, self._r[2376]!, [_0]) + return formatWithArgumentRanges(self._s[2377]!, self._r[2377]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[2377]! } - public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2380]! } - public var Wallet_Completed_Title: String { return self._s[2381]! } - public var Notification_PinnedMessage: String { return self._s[2382]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2383]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2385]! } - public var Contacts_SortBy: String { return self._s[2386]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[2378]! } + public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2381]! } + public var Wallet_Completed_Title: String { return self._s[2382]! } + public var Notification_PinnedMessage: String { return self._s[2383]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2384]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2386]! } + public var Contacts_SortBy: String { return self._s[2387]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2387]!, self._r[2387]!, [_1]) + return formatWithArgumentRanges(self._s[2388]!, self._r[2388]!, [_1]) } - public var Appearance_ColorThemeNight: String { return self._s[2389]! } + public var Appearance_ColorThemeNight: String { return self._s[2390]! } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2390]!, self._r[2390]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2391]!, self._r[2391]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[2391]! } - public var Watch_UserInfo_Service: String { return self._s[2392]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2394]! } - public var Conversation_Unpin: String { return self._s[2396]! } - public var CancelResetAccount_Title: String { return self._s[2397]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[2398]! } + public var Call_EncryptionKey_Title: String { return self._s[2392]! } + public var Watch_UserInfo_Service: String { return self._s[2393]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2395]! } + public var Conversation_Unpin: String { return self._s[2397]! } + public var CancelResetAccount_Title: String { return self._s[2398]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[2399]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2400]!, self._r[2400]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2401]!, self._r[2401]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2401]! } - public var CallSettings_Title: String { return self._s[2402]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2403]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[2405]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2406]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2402]! } + public var CallSettings_Title: String { return self._s[2403]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2404]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[2406]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2407]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2407]!, self._r[2407]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2408]!, self._r[2408]!, [_1, _2]) } - public var Passport_Identity_DocumentDetails: String { return self._s[2408]! } - public var LoginPassword_PasswordHelp: String { return self._s[2409]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2410]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2411]! } - public var ChatContextMenu_TextSelectionTip: String { return self._s[2412]! } - public var Checkout_TotalPaidAmount: String { return self._s[2413]! } + public var Passport_Identity_DocumentDetails: String { return self._s[2409]! } + public var LoginPassword_PasswordHelp: String { return self._s[2410]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2411]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2412]! } + public var ChatContextMenu_TextSelectionTip: String { return self._s[2413]! } + public var Checkout_TotalPaidAmount: String { return self._s[2414]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2414]!, self._r[2414]!, [_0]) + return formatWithArgumentRanges(self._s[2415]!, self._r[2415]!, [_0]) } - public var PasscodeSettings_ChangePasscode: String { return self._s[2415]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[2417]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[2418]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[2416]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[2418]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[2419]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2419]!, self._r[2419]!, [_1]) + return formatWithArgumentRanges(self._s[2420]!, self._r[2420]!, [_1]) } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2420]! } - public var Contacts_InviteFriends: String { return self._s[2422]! } - public var Map_ChooseLocationTitle: String { return self._s[2423]! } - public var Conversation_StopPoll: String { return self._s[2425]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2421]! } + public var Contacts_InviteFriends: String { return self._s[2423]! } + public var Map_ChooseLocationTitle: String { return self._s[2424]! } + public var Conversation_StopPoll: String { return self._s[2426]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2426]!, self._r[2426]!, [_0]) + return formatWithArgumentRanges(self._s[2427]!, self._r[2427]!, [_0]) } - public var Call_Camera: String { return self._s[2427]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2428]! } - public var AppWallet_Intro_Text: String { return self._s[2429]! } - public var Calls_RatingFeedback: String { return self._s[2430]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2432]! } - public var Wallet_Alert_OK: String { return self._s[2433]! } - public var NotificationsSound_Pulse: String { return self._s[2434]! } - public var Watch_LastSeen_Lately: String { return self._s[2435]! } - public var ReportGroupLocation_Report: String { return self._s[2438]! } - public var Widget_NoUsers: String { return self._s[2439]! } - public var Conversation_UnvotePoll: String { return self._s[2440]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2442]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2443]! } - public var NotificationsSound_Circles: String { return self._s[2444]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2447]! } - public var Wallet_Settings_DeleteWallet: String { return self._s[2448]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2449]! } - public var Proxy_TooltipUnavailable: String { return self._s[2450]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2452]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2454]! } - public var Conversation_FileDropbox: String { return self._s[2455]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[2456]! } - public var Tour_Text3: String { return self._s[2458]! } - public var Login_ResetAccountProtected_Title: String { return self._s[2460]! } - public var GroupPermission_NoSendMessages: String { return self._s[2461]! } - public var WallpaperSearch_ColorTitle: String { return self._s[2462]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2463]! } + public var Call_Camera: String { return self._s[2428]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2429]! } + public var AppWallet_Intro_Text: String { return self._s[2430]! } + public var Calls_RatingFeedback: String { return self._s[2431]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2433]! } + public var Wallet_Alert_OK: String { return self._s[2434]! } + public var NotificationsSound_Pulse: String { return self._s[2435]! } + public var Watch_LastSeen_Lately: String { return self._s[2436]! } + public var ReportGroupLocation_Report: String { return self._s[2439]! } + public var Widget_NoUsers: String { return self._s[2440]! } + public var Conversation_UnvotePoll: String { return self._s[2441]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2443]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2444]! } + public var NotificationsSound_Circles: String { return self._s[2445]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2448]! } + public var Wallet_Settings_DeleteWallet: String { return self._s[2449]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2450]! } + public var Proxy_TooltipUnavailable: String { return self._s[2451]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2453]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2455]! } + public var Conversation_FileDropbox: String { return self._s[2456]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[2457]! } + public var Tour_Text3: String { return self._s[2459]! } + public var Login_ResetAccountProtected_Title: String { return self._s[2461]! } + public var GroupPermission_NoSendMessages: String { return self._s[2462]! } + public var WallpaperSearch_ColorTitle: String { return self._s[2463]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2464]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2465]!, self._r[2465]!, [_0]) + return formatWithArgumentRanges(self._s[2466]!, self._r[2466]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[2466]! } - public var Checkout_ShippingOption_Title: String { return self._s[2467]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2468]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[2467]! } + public var Checkout_ShippingOption_Title: String { return self._s[2468]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2469]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2469]!, self._r[2469]!, [_0]) - } - public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2470]!, self._r[2470]!, [_0]) } - public var Channel_Management_LabelAdministrator: String { return self._s[2471]! } - public var EditTheme_FileReadError: String { return self._s[2472]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[2473]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2474]! } - public var AutoDownloadSettings_Photos: String { return self._s[2476]! } - public var Appearance_PreviewIncomingText: String { return self._s[2477]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[2478]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[2479]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2480]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2481]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2482]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2483]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2484]! } - public var Notification_SecretChatScreenshot: String { return self._s[2485]! } - public var AccessDenied_Wallpapers: String { return self._s[2486]! } - public var ChatList_Context_Mute: String { return self._s[2488]! } - public var Passport_Address_City: String { return self._s[2489]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2490]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[2491]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2492]! } - public var AccessDenied_LocationDisabled: String { return self._s[2493]! } - public var Group_Location_Title: String { return self._s[2494]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2496]! } - public var GroupInfo_Sound: String { return self._s[2497]! } - public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2498]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[2499]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2500]! } - public var Contacts_Title: String { return self._s[2501]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[2502]! } - public var Passport_Language_fr: String { return self._s[2503]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2504]! } - public var Notifications_ResetAllNotifications: String { return self._s[2505]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2507]! } - public var PrivacySettings_SecurityTitle: String { return self._s[2509]! } - public var Checkout_NewCard_Title: String { return self._s[2510]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[2511]! } - public var Conversation_ForwardChats: String { return self._s[2512]! } - public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2514]! } - public var PasscodeSettings_4DigitCode: String { return self._s[2515]! } - public var Settings_FAQ: String { return self._s[2517]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2518]! } - public var Conversation_ContextMenuForward: String { return self._s[2519]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[2522]! } - public var PrivacyPolicy_Title: String { return self._s[2525]! } - public var Notifications_TextTone: String { return self._s[2526]! } - public var Profile_CreateNewContact: String { return self._s[2527]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2528]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2530]! } - public var Call_Speaker: String { return self._s[2531]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2532]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2534]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2535]! } + public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2471]!, self._r[2471]!, [_0]) + } + public var Channel_Management_LabelAdministrator: String { return self._s[2472]! } + public var EditTheme_FileReadError: String { return self._s[2473]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[2474]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2475]! } + public var AutoDownloadSettings_Photos: String { return self._s[2477]! } + public var Appearance_PreviewIncomingText: String { return self._s[2478]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[2479]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[2480]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2481]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2482]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2483]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2484]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2485]! } + public var Notification_SecretChatScreenshot: String { return self._s[2486]! } + public var AccessDenied_Wallpapers: String { return self._s[2487]! } + public var ChatList_Context_Mute: String { return self._s[2489]! } + public var Passport_Address_City: String { return self._s[2490]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2491]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[2492]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2493]! } + public var AccessDenied_LocationDisabled: String { return self._s[2494]! } + public var Group_Location_Title: String { return self._s[2495]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2497]! } + public var GroupInfo_Sound: String { return self._s[2498]! } + public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2499]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[2500]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2501]! } + public var Contacts_Title: String { return self._s[2502]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[2503]! } + public var Passport_Language_fr: String { return self._s[2504]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2505]! } + public var Notifications_ResetAllNotifications: String { return self._s[2506]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2508]! } + public var PrivacySettings_SecurityTitle: String { return self._s[2510]! } + public var Checkout_NewCard_Title: String { return self._s[2511]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[2512]! } + public var Conversation_ForwardChats: String { return self._s[2513]! } + public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2515]! } + public var PasscodeSettings_4DigitCode: String { return self._s[2516]! } + public var Settings_FAQ: String { return self._s[2518]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2519]! } + public var Conversation_ContextMenuForward: String { return self._s[2520]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[2523]! } + public var PrivacyPolicy_Title: String { return self._s[2526]! } + public var Notifications_TextTone: String { return self._s[2527]! } + public var Profile_CreateNewContact: String { return self._s[2528]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2529]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2531]! } + public var Call_Speaker: String { return self._s[2532]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2533]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2535]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2536]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2536]!, self._r[2536]!, [_0]) + return formatWithArgumentRanges(self._s[2537]!, self._r[2537]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2537]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2538]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2539]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2540]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[2541]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2542]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2543]! } - public var Bot_Unblock: String { return self._s[2544]! } - public var TextFormat_Italic: String { return self._s[2545]! } - public var WallpaperSearch_ColorPink: String { return self._s[2546]! } - public var Settings_About_Help: String { return self._s[2548]! } - public var SearchImages_Title: String { return self._s[2549]! } - public var Weekday_Wednesday: String { return self._s[2550]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2551]! } - public var ExplicitContent_AlertTitle: String { return self._s[2552]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2538]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2539]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2540]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2541]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[2542]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2543]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2544]! } + public var Bot_Unblock: String { return self._s[2545]! } + public var TextFormat_Italic: String { return self._s[2546]! } + public var WallpaperSearch_ColorPink: String { return self._s[2547]! } + public var Settings_About_Help: String { return self._s[2549]! } + public var SearchImages_Title: String { return self._s[2550]! } + public var Weekday_Wednesday: String { return self._s[2551]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2552]! } + public var ExplicitContent_AlertTitle: String { return self._s[2553]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2553]!, self._r[2553]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2554]!, self._r[2554]!, [_1, _2, _3]) } - public var Channel_DiscussionGroup_Create: String { return self._s[2554]! } - public var Weekday_Thursday: String { return self._s[2555]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2556]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2557]! } + public var Channel_DiscussionGroup_Create: String { return self._s[2555]! } + public var Weekday_Thursday: String { return self._s[2556]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2557]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2558]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2558]!, self._r[2558]!, [_0]) + return formatWithArgumentRanges(self._s[2559]!, self._r[2559]!, [_0]) } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2559]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2560]! } - public var Passport_RequestedInformation: String { return self._s[2561]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2562]! } - public var Conversation_EncryptionProcessing: String { return self._s[2564]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2565]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2567]! } - public var Channel_Setup_Title: String { return self._s[2568]! } - public var Conversation_SearchPlaceholder: String { return self._s[2569]! } - public var OldChannels_GroupEmptyFormat: String { return self._s[2570]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2571]! } - public var Checkout_ErrorGeneric: String { return self._s[2572]! } - public var Passport_Language_hu: String { return self._s[2573]! } - public var GroupPermission_EditingDisabled: String { return self._s[2574]! } - public var Wallet_Month_ShortSeptember: String { return self._s[2576]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2560]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2561]! } + public var Passport_RequestedInformation: String { return self._s[2562]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2563]! } + public var Conversation_EncryptionProcessing: String { return self._s[2565]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2566]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2568]! } + public var Channel_Setup_Title: String { return self._s[2569]! } + public var Conversation_SearchPlaceholder: String { return self._s[2570]! } + public var OldChannels_GroupEmptyFormat: String { return self._s[2571]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2572]! } + public var Checkout_ErrorGeneric: String { return self._s[2573]! } + public var Passport_Language_hu: String { return self._s[2574]! } + public var GroupPermission_EditingDisabled: String { return self._s[2575]! } + public var Wallet_Month_ShortSeptember: String { return self._s[2577]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2577]!, self._r[2577]!, [_0]) + return formatWithArgumentRanges(self._s[2578]!, self._r[2578]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2580]!, self._r[2580]!, [_1]) + return formatWithArgumentRanges(self._s[2581]!, self._r[2581]!, [_1]) } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2581]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2582]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2582]!, self._r[2582]!, [_0]) + return formatWithArgumentRanges(self._s[2583]!, self._r[2583]!, [_0]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2583]! } - public var Group_Location_Info: String { return self._s[2584]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2585]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2586]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2584]! } + public var Group_Location_Info: String { return self._s[2585]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2586]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2587]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2587]!, self._r[2587]!, [_0]) + return formatWithArgumentRanges(self._s[2588]!, self._r[2588]!, [_0]) } - public var Conversation_ClearPrivateHistory: String { return self._s[2588]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2589]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[2590]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2591]! } + public var Conversation_ClearPrivateHistory: String { return self._s[2589]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2590]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[2591]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2592]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2592]!, self._r[2592]!, [_0]) + return formatWithArgumentRanges(self._s[2593]!, self._r[2593]!, [_0]) } - public var Passport_Language_cs: String { return self._s[2593]! } - public var Message_PinnedAnimationMessage: String { return self._s[2595]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2597]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2598]! } - public var Wallet_Info_TransactionTo: String { return self._s[2600]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2601]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2602]! } - public var Embed_PlayingInPIP: String { return self._s[2603]! } - public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2604]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2605]! } + public var Passport_Language_cs: String { return self._s[2594]! } + public var Message_PinnedAnimationMessage: String { return self._s[2596]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2598]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2599]! } + public var Wallet_Info_TransactionTo: String { return self._s[2601]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2602]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2603]! } + public var Embed_PlayingInPIP: String { return self._s[2604]! } + public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2605]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2606]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2606]!, self._r[2606]!, [_0]) + return formatWithArgumentRanges(self._s[2607]!, self._r[2607]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2607]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[2608]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2608]!, self._r[2608]!, [_1]) + return formatWithArgumentRanges(self._s[2609]!, self._r[2609]!, [_1]) } - public var Notification_PaymentSent: String { return self._s[2609]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2610]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2611]! } - public var AutoNightTheme_System: String { return self._s[2612]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2613]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2614]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2615]! } + public var Notification_PaymentSent: String { return self._s[2610]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2611]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2612]! } + public var AutoNightTheme_System: String { return self._s[2613]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2614]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2615]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2616]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2618]!, self._r[2618]!, [_1]) - } - public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2619]!, self._r[2619]!, [_1]) } - public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { + public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2620]!, self._r[2620]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2622]! } - public var PasscodeSettings_HelpTop: String { return self._s[2623]! } - public var Conversation_WalletRequiredTitle: String { return self._s[2624]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2625]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2626]! } - public var EditTheme_ShortLink: String { return self._s[2627]! } - public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2628]! } - public var ProxyServer_VoiceOver_Active: String { return self._s[2629]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2630]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2631]! } - public var Call_Accept: String { return self._s[2633]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2634]! } - public var Month_GenMarch: String { return self._s[2636]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2637]! } - public var LoginPassword_Title: String { return self._s[2638]! } - public var Call_End: String { return self._s[2639]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2640]! } - public var VoiceOver_Chat_Contact: String { return self._s[2641]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2642]! } - public var CallSettings_Always: String { return self._s[2643]! } - public var CallFeedback_Success: String { return self._s[2644]! } - public var TwoStepAuth_SetupHint: String { return self._s[2645]! } + public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2621]!, self._r[2621]!, [_1]) + } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2623]! } + public var PasscodeSettings_HelpTop: String { return self._s[2624]! } + public var Conversation_WalletRequiredTitle: String { return self._s[2625]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2626]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2627]! } + public var EditTheme_ShortLink: String { return self._s[2628]! } + public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2629]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[2630]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2631]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2632]! } + public var Call_Accept: String { return self._s[2634]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2635]! } + public var Month_GenMarch: String { return self._s[2637]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2638]! } + public var LoginPassword_Title: String { return self._s[2639]! } + public var Call_End: String { return self._s[2640]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2641]! } + public var VoiceOver_Chat_Contact: String { return self._s[2642]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2643]! } + public var CallSettings_Always: String { return self._s[2644]! } + public var CallFeedback_Success: String { return self._s[2645]! } + public var TwoStepAuth_SetupHint: String { return self._s[2646]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2646]!, self._r[2646]!, [_1]) + return formatWithArgumentRanges(self._s[2647]!, self._r[2647]!, [_1]) } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2647]! } - public var Login_PhoneTitle: String { return self._s[2648]! } - public var Passport_FieldPhoneHelp: String { return self._s[2649]! } - public var Weekday_ShortSunday: String { return self._s[2650]! } - public var Passport_InfoFAQ_URL: String { return self._s[2651]! } - public var ContactInfo_Job: String { return self._s[2653]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2654]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[2655]! } - public var CreatePoll_QuizTip: String { return self._s[2656]! } - public var TwoFactorSetup_Email_Text: String { return self._s[2657]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2658]! } - public var Invite_ChannelsTooMuch: String { return self._s[2659]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[2660]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2661]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2662]! } - public var Wallet_Receive_AmountText: String { return self._s[2663]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2664]! } - public var CallFeedback_ReasonNoise: String { return self._s[2665]! } - public var Appearance_AppIconDefault: String { return self._s[2667]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2668]! } - public var MediaPicker_AddCaption: String { return self._s[2669]! } - public var CallSettings_TabIconDescription: String { return self._s[2670]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2648]! } + public var Login_PhoneTitle: String { return self._s[2649]! } + public var Passport_FieldPhoneHelp: String { return self._s[2650]! } + public var Weekday_ShortSunday: String { return self._s[2651]! } + public var Passport_InfoFAQ_URL: String { return self._s[2652]! } + public var ContactInfo_Job: String { return self._s[2654]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2655]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[2656]! } + public var CreatePoll_QuizTip: String { return self._s[2657]! } + public var TwoFactorSetup_Email_Text: String { return self._s[2658]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2659]! } + public var Invite_ChannelsTooMuch: String { return self._s[2660]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[2661]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2662]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2663]! } + public var Wallet_Receive_AmountText: String { return self._s[2664]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2665]! } + public var CallFeedback_ReasonNoise: String { return self._s[2666]! } + public var Appearance_AppIconDefault: String { return self._s[2668]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2669]! } + public var MediaPicker_AddCaption: String { return self._s[2670]! } + public var CallSettings_TabIconDescription: String { return self._s[2671]! } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2671]!, self._r[2671]!, [_0]) + return formatWithArgumentRanges(self._s[2672]!, self._r[2672]!, [_0]) } - public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2672]! } + public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2673]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2673]!, self._r[2673]!, [_0]) + return formatWithArgumentRanges(self._s[2674]!, self._r[2674]!, [_0]) } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2674]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2675]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2676]! } - public var DialogList_SearchSectionRecent: String { return self._s[2677]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2678]! } - public var CreatePoll_Anonymous: String { return self._s[2679]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2682]! } - public var LastSeen_WithinAWeek: String { return self._s[2683]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2684]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2686]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2687]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2675]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2676]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2677]! } + public var DialogList_SearchSectionRecent: String { return self._s[2678]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2679]! } + public var CreatePoll_Anonymous: String { return self._s[2680]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2683]! } + public var LastSeen_WithinAWeek: String { return self._s[2684]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2685]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2687]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2688]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2688]!, self._r[2688]!, [_0]) + return formatWithArgumentRanges(self._s[2689]!, self._r[2689]!, [_0]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2689]! } - public var Conversation_StatusLeftGroup: String { return self._s[2690]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2691]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2693]! } - public var GroupPermission_AddSuccess: String { return self._s[2694]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2696]! } - public var Conversation_ContextMenuCopy: String { return self._s[2697]! } - public var AccessDenied_CallMicrophone: String { return self._s[2698]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2690]! } + public var Conversation_StatusLeftGroup: String { return self._s[2691]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2692]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2694]! } + public var GroupPermission_AddSuccess: String { return self._s[2695]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2697]! } + public var Conversation_ContextMenuCopy: String { return self._s[2698]! } + public var AccessDenied_CallMicrophone: String { return self._s[2699]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2699]!, self._r[2699]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2700]!, self._r[2700]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2700]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2701]! } - public var Checkout_PaymentMethod_New: String { return self._s[2702]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2703]! } - public var PhotoEditor_QualityTool: String { return self._s[2704]! } - public var Login_SendCodeViaSms: String { return self._s[2705]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2706]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2707]! } - public var Wallet_Receive_CopyAddress: String { return self._s[2708]! } - public var Login_EmailNotConfiguredError: String { return self._s[2709]! } - public var SocksProxySetup_Status: String { return self._s[2710]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2711]! } - public var PrivacyPolicy_Accept: String { return self._s[2712]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2713]! } - public var Appearance_AppIconClassicX: String { return self._s[2714]! } + public var Login_InvalidFirstNameError: String { return self._s[2701]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2702]! } + public var Checkout_PaymentMethod_New: String { return self._s[2703]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2704]! } + public var PhotoEditor_QualityTool: String { return self._s[2705]! } + public var Login_SendCodeViaSms: String { return self._s[2706]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2707]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2708]! } + public var Wallet_Receive_CopyAddress: String { return self._s[2709]! } + public var Login_EmailNotConfiguredError: String { return self._s[2710]! } + public var SocksProxySetup_Status: String { return self._s[2711]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2712]! } + public var PrivacyPolicy_Accept: String { return self._s[2713]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2714]! } + public var Appearance_AppIconClassicX: String { return self._s[2715]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2715]!, self._r[2715]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2716]!, self._r[2716]!, [_1, _2, _3]) } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[2716]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2718]! } - public var AutoNightTheme_Automatic: String { return self._s[2719]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2720]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2721]! } - public var Cache_Help: String { return self._s[2722]! } - public var Group_ErrorAccessDenied: String { return self._s[2723]! } - public var Passport_Language_fa: String { return self._s[2724]! } - public var Wallet_Intro_Text: String { return self._s[2725]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2726]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2727]! } - public var PrivacySettings_LastSeen: String { return self._s[2728]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[2717]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2719]! } + public var AutoNightTheme_Automatic: String { return self._s[2720]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2721]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2722]! } + public var Cache_Help: String { return self._s[2723]! } + public var Group_ErrorAccessDenied: String { return self._s[2724]! } + public var Passport_Language_fa: String { return self._s[2725]! } + public var Wallet_Intro_Text: String { return self._s[2726]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2727]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2728]! } + public var PrivacySettings_LastSeen: String { return self._s[2729]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2729]!, self._r[2729]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2730]!, self._r[2730]!, [_0, _1]) } - public var Wallet_Configuration_Apply: String { return self._s[2733]! } - public var Preview_SaveGif: String { return self._s[2734]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2735]! } - public var Profile_About: String { return self._s[2736]! } - public var Channel_About_Placeholder: String { return self._s[2737]! } - public var Login_InfoTitle: String { return self._s[2738]! } + public var Wallet_Configuration_Apply: String { return self._s[2734]! } + public var Preview_SaveGif: String { return self._s[2735]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2736]! } + public var Profile_About: String { return self._s[2737]! } + public var Channel_About_Placeholder: String { return self._s[2738]! } + public var Login_InfoTitle: String { return self._s[2739]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2739]!, self._r[2739]!, [_0]) + return formatWithArgumentRanges(self._s[2740]!, self._r[2740]!, [_0]) } - public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2740]! } - public var Watch_Suggestion_CantTalk: String { return self._s[2742]! } - public var ContactInfo_Title: String { return self._s[2743]! } - public var Media_ShareThisVideo: String { return self._s[2744]! } - public var Weekday_ShortFriday: String { return self._s[2745]! } - public var AccessDenied_Contacts: String { return self._s[2747]! } - public var Notification_CallIncomingShort: String { return self._s[2748]! } - public var Group_Setup_TypePublic: String { return self._s[2749]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2750]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2751]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2754]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2755]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2756]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2757]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2758]! } + public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2741]! } + public var Watch_Suggestion_CantTalk: String { return self._s[2743]! } + public var ContactInfo_Title: String { return self._s[2744]! } + public var Media_ShareThisVideo: String { return self._s[2745]! } + public var Weekday_ShortFriday: String { return self._s[2746]! } + public var AccessDenied_Contacts: String { return self._s[2748]! } + public var Notification_CallIncomingShort: String { return self._s[2749]! } + public var Group_Setup_TypePublic: String { return self._s[2750]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2751]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[2752]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[2755]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2756]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2757]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2758]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2759]! } public func Wallet_SecureStorageChanged_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2759]!, self._r[2759]!, [_0]) + return formatWithArgumentRanges(self._s[2760]!, self._r[2760]!, [_0]) } - public var DialogList_Typing: String { return self._s[2760]! } - public var CallFeedback_IncludeLogs: String { return self._s[2762]! } - public var Checkout_Phone: String { return self._s[2764]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[2767]! } - public var Privacy_Calls_Integration: String { return self._s[2768]! } - public var Notifications_PermissionsAllow: String { return self._s[2769]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[2773]! } - public var Settings_ChatSettings: String { return self._s[2774]! } - public var Conversation_SendingOptionsTooltip: String { return self._s[2775]! } + public var DialogList_Typing: String { return self._s[2761]! } + public var CallFeedback_IncludeLogs: String { return self._s[2763]! } + public var Checkout_Phone: String { return self._s[2765]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[2768]! } + public var Privacy_Calls_Integration: String { return self._s[2769]! } + public var Notifications_PermissionsAllow: String { return self._s[2770]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[2774]! } + public var Settings_ChatSettings: String { return self._s[2775]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[2776]! } public func UserInfo_StartSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2777]!, self._r[2777]!, [_0]) + return formatWithArgumentRanges(self._s[2778]!, self._r[2778]!, [_0]) } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2778]!, self._r[2778]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2779]!, self._r[2779]!, [_1, _2]) } - public var GroupRemoved_DeleteUser: String { return self._s[2780]! } + public var GroupRemoved_DeleteUser: String { return self._s[2781]! } public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2781]!, self._r[2781]!, [_0]) + return formatWithArgumentRanges(self._s[2782]!, self._r[2782]!, [_0]) } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2782]!, self._r[2782]!, [_1]) + return formatWithArgumentRanges(self._s[2783]!, self._r[2783]!, [_1]) } - public var Login_ContinueWithLocalization: String { return self._s[2783]! } - public var Watch_Message_ForwardedFrom: String { return self._s[2784]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[2786]! } - public var Conversation_Unblock: String { return self._s[2787]! } - public var PrivacySettings_DataSettings: String { return self._s[2788]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[2789]! } - public var Group_PublicLink_Info: String { return self._s[2790]! } + public var Login_ContinueWithLocalization: String { return self._s[2784]! } + public var Watch_Message_ForwardedFrom: String { return self._s[2785]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[2787]! } + public var Conversation_Unblock: String { return self._s[2788]! } + public var PrivacySettings_DataSettings: String { return self._s[2789]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[2790]! } + public var Group_PublicLink_Info: String { return self._s[2791]! } public func Wallet_Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2791]!, self._r[2791]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2792]!, self._r[2792]!, [_1, _2, _3]) } - public var Notifications_InAppNotificationsVibrate: String { return self._s[2792]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[2793]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2793]!, self._r[2793]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2794]!, self._r[2794]!, [_0, _1]) } - public var OldChannels_ChannelsHeader: String { return self._s[2795]! } - public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2796]! } - public var PrivacySettings_Passcode: String { return self._s[2798]! } - public var Call_Mute: String { return self._s[2799]! } - public var Wallet_Weekday_Yesterday: String { return self._s[2800]! } - public var Passport_Language_dz: String { return self._s[2801]! } - public var Wallet_Receive_AmountHeader: String { return self._s[2802]! } - public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2803]! } - public var Passport_Language_tk: String { return self._s[2804]! } + public var OldChannels_ChannelsHeader: String { return self._s[2796]! } + public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2797]! } + public var PrivacySettings_Passcode: String { return self._s[2799]! } + public var Call_Mute: String { return self._s[2800]! } + public var Wallet_Weekday_Yesterday: String { return self._s[2801]! } + public var Passport_Language_dz: String { return self._s[2802]! } + public var Wallet_Receive_AmountHeader: String { return self._s[2803]! } + public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2804]! } + public var Passport_Language_tk: String { return self._s[2805]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2805]!, self._r[2805]!, [_0]) + return formatWithArgumentRanges(self._s[2806]!, self._r[2806]!, [_0]) } - public var Settings_Search: String { return self._s[2806]! } - public var Wallet_Month_ShortFebruary: String { return self._s[2807]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2808]! } - public var Wallet_Configuration_SourceJSON: String { return self._s[2809]! } - public var Conversation_ContextMenuReply: String { return self._s[2810]! } - public var WallpaperSearch_ColorBrown: String { return self._s[2811]! } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2812]! } - public var Tour_Title1: String { return self._s[2813]! } - public var Wallet_Alert_Cancel: String { return self._s[2814]! } - public var Conversation_ClearGroupHistory: String { return self._s[2816]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2817]! } - public var WallpaperPreview_Motion: String { return self._s[2818]! } + public var Settings_Search: String { return self._s[2807]! } + public var Wallet_Month_ShortFebruary: String { return self._s[2808]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2809]! } + public var Wallet_Configuration_SourceJSON: String { return self._s[2810]! } + public var Conversation_ContextMenuReply: String { return self._s[2811]! } + public var WallpaperSearch_ColorBrown: String { return self._s[2812]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2813]! } + public var Tour_Title1: String { return self._s[2814]! } + public var Wallet_Alert_Cancel: String { return self._s[2815]! } + public var Conversation_ClearGroupHistory: String { return self._s[2817]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2818]! } + public var WallpaperPreview_Motion: String { return self._s[2819]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2819]!, self._r[2819]!, [_0]) + return formatWithArgumentRanges(self._s[2820]!, self._r[2820]!, [_0]) } - public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2820]! } - public var Call_RateCall: String { return self._s[2821]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2822]! } - public var Passport_PasswordCompleteSetup: String { return self._s[2823]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2824]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[2826]! } + public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2821]! } + public var Call_RateCall: String { return self._s[2822]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2823]! } + public var Passport_PasswordCompleteSetup: String { return self._s[2824]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2825]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[2827]! } public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2828]!, self._r[2828]!, [_0]) + return formatWithArgumentRanges(self._s[2829]!, self._r[2829]!, [_0]) } - public var Compose_Create: String { return self._s[2829]! } - public var Contacts_InviteToTelegram: String { return self._s[2830]! } - public var GroupInfo_Notifications: String { return self._s[2831]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2833]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[2834]! } - public var Month_GenApril: String { return self._s[2835]! } - public var Appearance_AutoNightTheme: String { return self._s[2836]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[2838]! } - public var Login_CodeSentSms: String { return self._s[2840]! } + public var Compose_Create: String { return self._s[2830]! } + public var Contacts_InviteToTelegram: String { return self._s[2831]! } + public var GroupInfo_Notifications: String { return self._s[2832]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2834]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[2835]! } + public var Month_GenApril: String { return self._s[2836]! } + public var Appearance_AutoNightTheme: String { return self._s[2837]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[2839]! } + public var Login_CodeSentSms: String { return self._s[2841]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2841]!, self._r[2841]!, [_0]) + return formatWithArgumentRanges(self._s[2842]!, self._r[2842]!, [_0]) } - public var EmptyGroupInfo_Line3: String { return self._s[2842]! } - public var LogoutOptions_ContactSupportText: String { return self._s[2843]! } - public var Passport_Language_hr: String { return self._s[2844]! } - public var Common_ActionNotAllowedError: String { return self._s[2845]! } + public var EmptyGroupInfo_Line3: String { return self._s[2843]! } + public var LogoutOptions_ContactSupportText: String { return self._s[2844]! } + public var Passport_Language_hr: String { return self._s[2845]! } + public var Common_ActionNotAllowedError: String { return self._s[2846]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2846]!, self._r[2846]!, [_0]) + return formatWithArgumentRanges(self._s[2847]!, self._r[2847]!, [_0]) } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[2847]! } - public var Wallet_Info_TransactionFrom: String { return self._s[2848]! } - public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2849]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2850]! } - public var Privacy_SecretChatsTitle: String { return self._s[2851]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2853]! } - public var GroupInfo_AddUserLeftError: String { return self._s[2854]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2855]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[2856]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2857]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[2858]! } - public var Preview_DeleteGif: String { return self._s[2859]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2860]! } - public var Group_ErrorNotMutualContact: String { return self._s[2861]! } - public var Notification_MessageLifetime5s: String { return self._s[2862]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[2863]! } - public var OldChannels_ChannelFormat: String { return self._s[2864]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[2848]! } + public var Wallet_Info_TransactionFrom: String { return self._s[2849]! } + public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2850]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2851]! } + public var Privacy_SecretChatsTitle: String { return self._s[2852]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2854]! } + public var GroupInfo_AddUserLeftError: String { return self._s[2855]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2856]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[2857]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2858]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[2859]! } + public var Preview_DeleteGif: String { return self._s[2860]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2861]! } + public var Group_ErrorNotMutualContact: String { return self._s[2862]! } + public var Notification_MessageLifetime5s: String { return self._s[2863]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[2864]! } + public var OldChannels_ChannelFormat: String { return self._s[2865]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2865]!, self._r[2865]!, [_0]) + return formatWithArgumentRanges(self._s[2866]!, self._r[2866]!, [_0]) } - public var VoiceOver_Chat_Video: String { return self._s[2866]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2868]! } - public var ReportSpam_DeleteThisChat: String { return self._s[2869]! } - public var Passport_Address_AddBankStatement: String { return self._s[2870]! } - public var Notification_CallIncoming: String { return self._s[2871]! } - public var Wallet_Words_NotDoneTitle: String { return self._s[2872]! } - public var Compose_NewGroupTitle: String { return self._s[2873]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2875]! } - public var Passport_Address_Postcode: String { return self._s[2877]! } + public var VoiceOver_Chat_Video: String { return self._s[2867]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2869]! } + public var ReportSpam_DeleteThisChat: String { return self._s[2870]! } + public var Passport_Address_AddBankStatement: String { return self._s[2871]! } + public var Notification_CallIncoming: String { return self._s[2872]! } + public var Wallet_Words_NotDoneTitle: String { return self._s[2873]! } + public var Compose_NewGroupTitle: String { return self._s[2874]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2876]! } + public var Passport_Address_Postcode: String { return self._s[2878]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2878]!, self._r[2878]!, [_0]) + return formatWithArgumentRanges(self._s[2879]!, self._r[2879]!, [_0]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2879]! } - public var Wallet_Month_ShortOctober: String { return self._s[2880]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2881]! } - public var WallpaperColors_Title: String { return self._s[2882]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2883]! } - public var VoiceOver_MessageContextForward: String { return self._s[2884]! } - public var GroupPermission_Duration: String { return self._s[2885]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2880]! } + public var Wallet_Month_ShortOctober: String { return self._s[2881]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2882]! } + public var WallpaperColors_Title: String { return self._s[2883]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2884]! } + public var VoiceOver_MessageContextForward: String { return self._s[2885]! } + public var GroupPermission_Duration: String { return self._s[2886]! } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2886]!, self._r[2886]!, [_0]) + return formatWithArgumentRanges(self._s[2887]!, self._r[2887]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2887]! } - public var Username_Placeholder: String { return self._s[2888]! } - public var CallFeedback_WhatWentWrong: String { return self._s[2889]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2890]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2891]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2888]! } + public var Username_Placeholder: String { return self._s[2889]! } + public var CallFeedback_WhatWentWrong: String { return self._s[2890]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2891]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2892]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2893]!, self._r[2893]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2894]!, self._r[2894]!, [_1, _2]) } - public var Passport_PasswordDescription: String { return self._s[2894]! } - public var Channel_MessagePhotoUpdated: String { return self._s[2895]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[2896]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2897]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[2898]! } - public var Conversation_ContextMenuMore: String { return self._s[2899]! } - public var Privacy_PaymentsClearInfo: String { return self._s[2900]! } - public var CallSettings_TabIcon: String { return self._s[2901]! } - public var KeyCommand_Find: String { return self._s[2902]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2903]! } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2904]! } - public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2905]! } - public var Message_PinnedGame: String { return self._s[2906]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2907]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2909]! } - public var Login_CallRequestState2: String { return self._s[2911]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2913]! } + public var Passport_PasswordDescription: String { return self._s[2895]! } + public var Channel_MessagePhotoUpdated: String { return self._s[2896]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[2897]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2898]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[2899]! } + public var Conversation_ContextMenuMore: String { return self._s[2900]! } + public var Privacy_PaymentsClearInfo: String { return self._s[2901]! } + public var CallSettings_TabIcon: String { return self._s[2902]! } + public var KeyCommand_Find: String { return self._s[2903]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2904]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2905]! } + public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2906]! } + public var Message_PinnedGame: String { return self._s[2907]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2908]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2910]! } + public var Login_CallRequestState2: String { return self._s[2912]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2914]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2914]!, self._r[2914]!, [_0]) + return formatWithArgumentRanges(self._s[2915]!, self._r[2915]!, [_0]) } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2916]!, self._r[2916]!, [_0]) + return formatWithArgumentRanges(self._s[2917]!, self._r[2917]!, [_0]) } - public var AuthSessions_AddDevice: String { return self._s[2917]! } - public var WallpaperPreview_Blurred: String { return self._s[2918]! } - public var Conversation_InstantPagePreview: String { return self._s[2919]! } + public var AuthSessions_AddDevice: String { return self._s[2918]! } + public var WallpaperPreview_Blurred: String { return self._s[2919]! } + public var Conversation_InstantPagePreview: String { return self._s[2920]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2920]!, self._r[2920]!, [_0]) + return formatWithArgumentRanges(self._s[2921]!, self._r[2921]!, [_0]) } - public var SecretTimer_VideoDescription: String { return self._s[2923]! } - public var WallpaperSearch_ColorRed: String { return self._s[2924]! } - public var GroupPermission_NoPinMessages: String { return self._s[2925]! } - public var Passport_Language_es: String { return self._s[2926]! } - public var Permissions_ContactsAllow_v0: String { return self._s[2928]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2929]! } + public var SecretTimer_VideoDescription: String { return self._s[2924]! } + public var WallpaperSearch_ColorRed: String { return self._s[2925]! } + public var GroupPermission_NoPinMessages: String { return self._s[2926]! } + public var Passport_Language_es: String { return self._s[2927]! } + public var Permissions_ContactsAllow_v0: String { return self._s[2929]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2930]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2930]!, self._r[2930]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2931]!, self._r[2931]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[2931]! } - public var WebPreview_GettingLinkInfo: String { return self._s[2932]! } - public var Watch_UserInfo_Unmute: String { return self._s[2933]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2934]! } - public var AccessDenied_CameraRestricted: String { return self._s[2936]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[2932]! } + public var WebPreview_GettingLinkInfo: String { return self._s[2933]! } + public var Watch_UserInfo_Unmute: String { return self._s[2934]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2935]! } + public var AccessDenied_CameraRestricted: String { return self._s[2937]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2937]!, self._r[2937]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2938]!, self._r[2938]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[2939]! } - public var Settings_CopyUsername: String { return self._s[2940]! } - public var Contacts_SearchLabel: String { return self._s[2941]! } - public var Map_OpenInYandexNavigator: String { return self._s[2943]! } - public var PasscodeSettings_EncryptData: String { return self._s[2944]! } - public var Settings_Wallet: String { return self._s[2945]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2946]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[2947]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[2948]! } - public var DialogList_AdNoticeAlert: String { return self._s[2949]! } - public var Wallet_Month_GenMay: String { return self._s[2951]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2952]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2953]! } - public var Localization_LanguageCustom: String { return self._s[2954]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2955]! } - public var CallFeedback_Title: String { return self._s[2956]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2959]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2960]! } - public var Wallet_Intro_CreateErrorTitle: String { return self._s[2961]! } - public var Conversation_InfoGroup: String { return self._s[2962]! } - public var Compose_NewMessage: String { return self._s[2963]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2964]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2965]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2966]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2967]! } + public var ChatList_ReadAll: String { return self._s[2940]! } + public var Settings_CopyUsername: String { return self._s[2941]! } + public var Contacts_SearchLabel: String { return self._s[2942]! } + public var Map_OpenInYandexNavigator: String { return self._s[2944]! } + public var PasscodeSettings_EncryptData: String { return self._s[2945]! } + public var Settings_Wallet: String { return self._s[2946]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2947]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2948]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[2949]! } + public var DialogList_AdNoticeAlert: String { return self._s[2950]! } + public var Wallet_Month_GenMay: String { return self._s[2952]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2953]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2954]! } + public var Localization_LanguageCustom: String { return self._s[2955]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2956]! } + public var CallFeedback_Title: String { return self._s[2957]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2960]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2961]! } + public var Wallet_Intro_CreateErrorTitle: String { return self._s[2962]! } + public var Conversation_InfoGroup: String { return self._s[2963]! } + public var Compose_NewMessage: String { return self._s[2964]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2965]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2966]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2967]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2968]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2968]!, self._r[2968]!, [_0]) + return formatWithArgumentRanges(self._s[2969]!, self._r[2969]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2969]! } - public var Login_CancelSignUpConfirmation: String { return self._s[2970]! } - public var ChangePhoneNumberCode_Help: String { return self._s[2971]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[2972]! } - public var Channel_BlackList_Title: String { return self._s[2973]! } - public var UserInfo_PhoneCall: String { return self._s[2974]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2976]! } - public var Wallet_Month_ShortJanuary: String { return self._s[2977]! } - public var State_connecting: String { return self._s[2978]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2979]! } - public var Wallet_Month_GenMarch: String { return self._s[2980]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2981]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[2982]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2970]! } + public var Login_CancelSignUpConfirmation: String { return self._s[2971]! } + public var ChangePhoneNumberCode_Help: String { return self._s[2972]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[2973]! } + public var Channel_BlackList_Title: String { return self._s[2974]! } + public var UserInfo_PhoneCall: String { return self._s[2975]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2977]! } + public var Wallet_Month_ShortJanuary: String { return self._s[2978]! } + public var State_connecting: String { return self._s[2979]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2980]! } + public var Wallet_Month_GenMarch: String { return self._s[2981]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2982]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[2983]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2983]!, self._r[2983]!, [_0]) - } - public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2984]!, self._r[2984]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[2985]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2986]! } - public var Passport_Identity_EditPassport: String { return self._s[2987]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2989]! } - public var Localization_EnglishLanguageName: String { return self._s[2990]! } - public var Share_AuthDescription: String { return self._s[2991]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2992]! } - public var Passport_Identity_Surname: String { return self._s[2993]! } - public var Compose_TokenListPlaceholder: String { return self._s[2994]! } - public var Wallet_AccessDenied_Camera: String { return self._s[2995]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[2996]! } - public var Settings_AboutEmpty: String { return self._s[2997]! } - public var Conversation_Unmute: String { return self._s[2998]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[3000]! } - public var Wallet_Sending_Text: String { return self._s[3001]! } - public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3002]!, self._r[3002]!, [_1]) + public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2985]!, self._r[2985]!, [_0]) } - public var Login_CodeSentCall: String { return self._s[3003]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3005]! } - public var ChatSettings_Appearance: String { return self._s[3006]! } - public var ClearCache_StorageUsage: String { return self._s[3007]! } - public var Appearance_PickAccentColor: String { return self._s[3008]! } + public var Notifications_GroupNotifications: String { return self._s[2986]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2987]! } + public var Passport_Identity_EditPassport: String { return self._s[2988]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2990]! } + public var Localization_EnglishLanguageName: String { return self._s[2991]! } + public var Share_AuthDescription: String { return self._s[2992]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2993]! } + public var Passport_Identity_Surname: String { return self._s[2994]! } + public var Compose_TokenListPlaceholder: String { return self._s[2995]! } + public var Wallet_AccessDenied_Camera: String { return self._s[2996]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[2997]! } + public var Settings_AboutEmpty: String { return self._s[2998]! } + public var Conversation_Unmute: String { return self._s[2999]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[3001]! } + public var Wallet_Sending_Text: String { return self._s[3002]! } + public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3003]!, self._r[3003]!, [_1]) + } + public var Login_CodeSentCall: String { return self._s[3004]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3006]! } + public var ChatSettings_Appearance: String { return self._s[3007]! } + public var ClearCache_StorageUsage: String { return self._s[3008]! } + public var Appearance_PickAccentColor: String { return self._s[3009]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3009]!, self._r[3009]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3010]!, self._r[3010]!, [_1, _2]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3010]!, self._r[3010]!, [_1]) + return formatWithArgumentRanges(self._s[3011]!, self._r[3011]!, [_1]) } - public var Notification_CallMissed: String { return self._s[3011]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3012]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3013]! } - public var Wallet_Month_GenOctober: String { return self._s[3015]! } - public var ChatAdmins_AdminLabel: String { return self._s[3016]! } - public var KeyCommand_JumpToNextChat: String { return self._s[3017]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[3019]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3020]! } - public var Month_GenJune: String { return self._s[3021]! } - public var IntentsSettings_MainAccountInfo: String { return self._s[3022]! } - public var Watch_Location_Current: String { return self._s[3023]! } - public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3024]! } - public var Conversation_TitleMute: String { return self._s[3025]! } + public var Notification_CallMissed: String { return self._s[3012]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3013]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3014]! } + public var Wallet_Month_GenOctober: String { return self._s[3016]! } + public var ChatAdmins_AdminLabel: String { return self._s[3017]! } + public var KeyCommand_JumpToNextChat: String { return self._s[3018]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[3020]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3021]! } + public var Month_GenJune: String { return self._s[3022]! } + public var IntentsSettings_MainAccountInfo: String { return self._s[3023]! } + public var Watch_Location_Current: String { return self._s[3024]! } + public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3025]! } + public var Conversation_TitleMute: String { return self._s[3026]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3026]!, self._r[3026]!, [_1]) + return formatWithArgumentRanges(self._s[3027]!, self._r[3027]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[3027]! } + public var GroupInfo_DeleteAndExit: String { return self._s[3028]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3028]!, self._r[3028]!, [_0]) + return formatWithArgumentRanges(self._s[3029]!, self._r[3029]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[3029]! } - public var Chat_SlowmodeSendError: String { return self._s[3030]! } - public var MaskStickerSettings_Info: String { return self._s[3031]! } - public var EditTheme_Expand_TopInfo: String { return self._s[3032]! } + public var Call_ReportPlaceholder: String { return self._s[3030]! } + public var Chat_SlowmodeSendError: String { return self._s[3031]! } + public var MaskStickerSettings_Info: String { return self._s[3032]! } + public var EditTheme_Expand_TopInfo: String { return self._s[3033]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3033]!, self._r[3033]!, [_0]) + return formatWithArgumentRanges(self._s[3034]!, self._r[3034]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[3034]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3036]! } - public var Contacts_ShareTelegram: String { return self._s[3037]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3038]! } - public var Map_AddressOnMap: String { return self._s[3039]! } - public var Channel_ErrorAccessDenied: String { return self._s[3040]! } - public var UserInfo_ScamBotWarning: String { return self._s[3042]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[3043]! } - public var Call_ConnectionErrorTitle: String { return self._s[3044]! } - public var UserInfo_NotificationsEnable: String { return self._s[3045]! } - public var ArchivedChats_IntroText1: String { return self._s[3046]! } - public var Tour_Text4: String { return self._s[3049]! } - public var WallpaperSearch_Recent: String { return self._s[3050]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[3051]! } - public var Profile_MessageLifetime2s: String { return self._s[3053]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3054]! } - public var Notification_MessageLifetime2s: String { return self._s[3055]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[3035]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3037]! } + public var Contacts_ShareTelegram: String { return self._s[3038]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3039]! } + public var Map_AddressOnMap: String { return self._s[3040]! } + public var Channel_ErrorAccessDenied: String { return self._s[3041]! } + public var UserInfo_ScamBotWarning: String { return self._s[3043]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[3044]! } + public var Call_ConnectionErrorTitle: String { return self._s[3045]! } + public var UserInfo_NotificationsEnable: String { return self._s[3046]! } + public var ArchivedChats_IntroText1: String { return self._s[3047]! } + public var Tour_Text4: String { return self._s[3050]! } + public var WallpaperSearch_Recent: String { return self._s[3051]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[3052]! } + public var Profile_MessageLifetime2s: String { return self._s[3054]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3055]! } + public var Notification_MessageLifetime2s: String { return self._s[3056]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3056]!, self._r[3056]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3057]!, self._r[3057]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[3057]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3058]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3059]! } + public var Cache_ClearCache: String { return self._s[3058]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3059]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3060]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3063]!, self._r[3063]!, [_0]) + return formatWithArgumentRanges(self._s[3064]!, self._r[3064]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3065]!, self._r[3065]!, [_0]) + return formatWithArgumentRanges(self._s[3066]!, self._r[3066]!, [_0]) } - public var LocalGroup_Text: String { return self._s[3066]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3067]! } - public var SocksProxySetup_TypeSocks: String { return self._s[3068]! } - public var ChatList_UnarchiveAction: String { return self._s[3069]! } - public var AutoNightTheme_Title: String { return self._s[3070]! } - public var InstantPage_FeedbackButton: String { return self._s[3071]! } - public var Passport_FieldAddress: String { return self._s[3072]! } + public var LocalGroup_Text: String { return self._s[3067]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3068]! } + public var SocksProxySetup_TypeSocks: String { return self._s[3069]! } + public var ChatList_UnarchiveAction: String { return self._s[3070]! } + public var AutoNightTheme_Title: String { return self._s[3071]! } + public var InstantPage_FeedbackButton: String { return self._s[3072]! } + public var Passport_FieldAddress: String { return self._s[3073]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3073]!, self._r[3073]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3074]!, self._r[3074]!, [_1, _2]) } - public var Month_ShortMarch: String { return self._s[3074]! } + public var Month_ShortMarch: String { return self._s[3075]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3075]!, self._r[3075]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3076]!, self._r[3076]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3076]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3077]! } - public var Passport_FloodError: String { return self._s[3078]! } - public var SecretGif_Title: String { return self._s[3079]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3080]! } - public var ChatList_Context_UnhideArchive: String { return self._s[3081]! } - public var Passport_Language_th: String { return self._s[3083]! } - public var Passport_Address_Address: String { return self._s[3084]! } - public var Login_InvalidLastNameError: String { return self._s[3085]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3086]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[3087]! } - public var ChatList_Context_Archive: String { return self._s[3088]! } - public var SettingsSearch_FAQ: String { return self._s[3089]! } - public var ShareMenu_Send: String { return self._s[3090]! } - public var WallpaperSearch_ColorYellow: String { return self._s[3092]! } - public var Month_GenNovember: String { return self._s[3094]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3096]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3077]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3078]! } + public var Passport_FloodError: String { return self._s[3079]! } + public var SecretGif_Title: String { return self._s[3080]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3081]! } + public var ChatList_Context_UnhideArchive: String { return self._s[3082]! } + public var Passport_Language_th: String { return self._s[3084]! } + public var Passport_Address_Address: String { return self._s[3085]! } + public var Login_InvalidLastNameError: String { return self._s[3086]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3087]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[3088]! } + public var ChatList_Context_Archive: String { return self._s[3089]! } + public var SettingsSearch_FAQ: String { return self._s[3090]! } + public var ShareMenu_Send: String { return self._s[3091]! } + public var WallpaperSearch_ColorYellow: String { return self._s[3093]! } + public var Month_GenNovember: String { return self._s[3095]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3097]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3097]!, self._r[3097]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3098]!, self._r[3098]!, [_1, _2]) } - public var Conversation_SwipeToReplyHintText: String { return self._s[3098]! } - public var Checkout_Email: String { return self._s[3099]! } - public var NotificationsSound_Tritone: String { return self._s[3100]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[3102]! } - public var Wallet_ContextMenuCopy: String { return self._s[3104]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3099]! } + public var Checkout_Email: String { return self._s[3100]! } + public var NotificationsSound_Tritone: String { return self._s[3101]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[3103]! } + public var Wallet_ContextMenuCopy: String { return self._s[3105]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3106]!, self._r[3106]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3107]!, self._r[3107]!, [_1, _2, _3]) } - public var Appearance_TextSize_Automatic: String { return self._s[3107]! } + public var Appearance_TextSize_Automatic: String { return self._s[3108]! } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3108]!, self._r[3108]!, [_1]) + return formatWithArgumentRanges(self._s[3109]!, self._r[3109]!, [_1]) } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3109]!, self._r[3109]!, [_0]) + return formatWithArgumentRanges(self._s[3110]!, self._r[3110]!, [_0]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[3110]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[3111]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3111]!, self._r[3111]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3112]!, self._r[3112]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[3112]! } - public var Notification_Exceptions_Add: String { return self._s[3113]! } - public var DialogList_You: String { return self._s[3114]! } - public var MediaPicker_Send: String { return self._s[3117]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3118]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3119]! } - public var Call_AudioRouteSpeaker: String { return self._s[3120]! } - public var Watch_UserInfo_Title: String { return self._s[3121]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[3122]! } - public var Appearance_AccentColor: String { return self._s[3124]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3113]! } + public var Notification_Exceptions_Add: String { return self._s[3114]! } + public var DialogList_You: String { return self._s[3115]! } + public var MediaPicker_Send: String { return self._s[3118]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3119]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3120]! } + public var Call_AudioRouteSpeaker: String { return self._s[3121]! } + public var Watch_UserInfo_Title: String { return self._s[3122]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[3123]! } + public var Appearance_AccentColor: String { return self._s[3125]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3125]!, self._r[3125]!, [_0]) + return formatWithArgumentRanges(self._s[3126]!, self._r[3126]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3126]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3127]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3127]!, self._r[3127]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3128]!, self._r[3128]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[3128]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3129]! } - public var Notification_CallOutgoing: String { return self._s[3130]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3131]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3132]! } - public var Call_RecordingDisabledMessage: String { return self._s[3133]! } - public var Message_Game: String { return self._s[3134]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[3135]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3136]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3137]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3138]! } - public var Date_DialogDateFormat: String { return self._s[3140]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3141]! } - public var Notifications_InAppNotifications: String { return self._s[3142]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[3129]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3130]! } + public var Notification_CallOutgoing: String { return self._s[3131]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3132]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3133]! } + public var Call_RecordingDisabledMessage: String { return self._s[3134]! } + public var Message_Game: String { return self._s[3135]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[3136]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3137]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3138]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3139]! } + public var Date_DialogDateFormat: String { return self._s[3141]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3142]! } + public var Notifications_InAppNotifications: String { return self._s[3143]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3143]!, self._r[3143]!, [_0]) + return formatWithArgumentRanges(self._s[3144]!, self._r[3144]!, [_0]) } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3144]!, self._r[3144]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3145]!, self._r[3145]!, [_1, _2]) } - public var NewContact_Title: String { return self._s[3145]! } + public var NewContact_Title: String { return self._s[3146]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3146]!, self._r[3146]!, [_0]) + return formatWithArgumentRanges(self._s[3147]!, self._r[3147]!, [_0]) } - public var Conversation_ViewContactDetails: String { return self._s[3147]! } + public var Conversation_ViewContactDetails: String { return self._s[3148]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3149]!, self._r[3149]!, [_1]) + return formatWithArgumentRanges(self._s[3150]!, self._r[3150]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3150]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3151]! } - public var PrivacySettings_Title: String { return self._s[3152]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3155]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[3156]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[3157]! } - public var Contacts_PhoneNumber: String { return self._s[3158]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3160]! } - public var Map_ShowPlaces: String { return self._s[3161]! } - public var ChatAdmins_Title: String { return self._s[3162]! } - public var InstantPage_Reference: String { return self._s[3164]! } - public var Wallet_Info_Updating: String { return self._s[3165]! } - public var ReportGroupLocation_Text: String { return self._s[3166]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3151]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3152]! } + public var PrivacySettings_Title: String { return self._s[3153]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3156]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[3157]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[3158]! } + public var Contacts_PhoneNumber: String { return self._s[3159]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3161]! } + public var Map_ShowPlaces: String { return self._s[3162]! } + public var ChatAdmins_Title: String { return self._s[3163]! } + public var InstantPage_Reference: String { return self._s[3165]! } + public var Wallet_Info_Updating: String { return self._s[3166]! } + public var ReportGroupLocation_Text: String { return self._s[3167]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3167]!, self._r[3167]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3168]!, self._r[3168]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[3168]! } - public var Watch_UserInfo_Block: String { return self._s[3169]! } - public var ChatSettings_Stickers: String { return self._s[3170]! } - public var ChatSettings_DownloadInBackground: String { return self._s[3171]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3172]! } + public var Camera_FlashOff: String { return self._s[3169]! } + public var Watch_UserInfo_Block: String { return self._s[3170]! } + public var ChatSettings_Stickers: String { return self._s[3171]! } + public var ChatSettings_DownloadInBackground: String { return self._s[3172]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3173]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3173]!, self._r[3173]!, [_0]) + return formatWithArgumentRanges(self._s[3174]!, self._r[3174]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[3174]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3175]! } - public var AutoDownloadSettings_Cellular: String { return self._s[3176]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[3177]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3178]! } - public var VoiceOver_MessageContextShare: String { return self._s[3179]! } + public var Settings_ViewPhoto: String { return self._s[3175]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3176]! } + public var AutoDownloadSettings_Cellular: String { return self._s[3177]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[3178]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3179]! } + public var VoiceOver_MessageContextShare: String { return self._s[3180]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3181]!, self._r[3181]!, [_0]) + return formatWithArgumentRanges(self._s[3182]!, self._r[3182]!, [_0]) } - public var Privacy_DeleteDrafts: String { return self._s[3182]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3183]! } + public var Privacy_DeleteDrafts: String { return self._s[3183]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3184]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3184]!, self._r[3184]!, [_0]) + return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_0]) } - public var DialogList_SavedMessagesHelp: String { return self._s[3185]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3186]! } - public var DialogList_SavedMessages: String { return self._s[3187]! } - public var GroupInfo_UpgradeButton: String { return self._s[3188]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3190]! } - public var DialogList_Pin: String { return self._s[3191]! } + public var DialogList_SavedMessagesHelp: String { return self._s[3186]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3187]! } + public var DialogList_SavedMessages: String { return self._s[3188]! } + public var GroupInfo_UpgradeButton: String { return self._s[3189]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3191]! } + public var DialogList_Pin: String { return self._s[3192]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3192]!, self._r[3192]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3193]!, self._r[3193]!, [_0, _1]) } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3193]!, self._r[3193]!, [_0]) + return formatWithArgumentRanges(self._s[3194]!, self._r[3194]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3194]! } - public var UserInfo_NotificationsDisable: String { return self._s[3195]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[3196]! } - public var Paint_Outlined: String { return self._s[3197]! } - public var Activity_PlayingGame: String { return self._s[3198]! } - public var SearchImages_NoImagesFound: String { return self._s[3199]! } - public var SocksProxySetup_ProxyType: String { return self._s[3200]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3202]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3203]! } - public var Settings_AppLanguage: String { return self._s[3204]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3205]! } - public var Common_ChoosePhoto: String { return self._s[3206]! } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3207]! } - public var CallFeedback_ReasonEcho: String { return self._s[3208]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3195]! } + public var UserInfo_NotificationsDisable: String { return self._s[3196]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[3197]! } + public var Paint_Outlined: String { return self._s[3198]! } + public var Activity_PlayingGame: String { return self._s[3199]! } + public var SearchImages_NoImagesFound: String { return self._s[3200]! } + public var SocksProxySetup_ProxyType: String { return self._s[3201]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3203]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3204]! } + public var Settings_AppLanguage: String { return self._s[3205]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3206]! } + public var Common_ChoosePhoto: String { return self._s[3207]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3208]! } + public var CallFeedback_ReasonEcho: String { return self._s[3209]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3209]!, self._r[3209]!, [_1]) + return formatWithArgumentRanges(self._s[3210]!, self._r[3210]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3210]! } - public var PollResults_Collapse: String { return self._s[3211]! } - public var Activity_UploadingVideo: String { return self._s[3212]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3213]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3214]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3215]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3216]! } - public var PUSH_SENDER_YOU: String { return self._s[3217]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3218]! } - public var Checkout_PayWithTouchId: String { return self._s[3219]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3220]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3211]! } + public var PollResults_Collapse: String { return self._s[3212]! } + public var Activity_UploadingVideo: String { return self._s[3213]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3214]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3215]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3216]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3217]! } + public var PUSH_SENDER_YOU: String { return self._s[3218]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3219]! } + public var Checkout_PayWithTouchId: String { return self._s[3220]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3221]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3222]!, self._r[3222]!, [_1]) + return formatWithArgumentRanges(self._s[3223]!, self._r[3223]!, [_1]) } - public var Notifications_ExceptionsNone: String { return self._s[3223]! } + public var Notifications_ExceptionsNone: String { return self._s[3224]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3224]!, self._r[3224]!, [_0]) + return formatWithArgumentRanges(self._s[3225]!, self._r[3225]!, [_0]) } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3225]!, self._r[3225]!, [_1]) + return formatWithArgumentRanges(self._s[3226]!, self._r[3226]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3227]! } - public var Passport_Address_Region: String { return self._s[3230]! } - public var ChatList_DeleteChat: String { return self._s[3231]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3232]! } - public var PhotoEditor_TiltShift: String { return self._s[3233]! } - public var Settings_FAQ_URL: String { return self._s[3234]! } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3235]! } - public var Passport_Language_sl: String { return self._s[3236]! } - public var Settings_PrivacySettings: String { return self._s[3238]! } - public var SharedMedia_TitleLink: String { return self._s[3239]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3240]! } - public var Settings_SetProfilePhoto: String { return self._s[3241]! } - public var Channel_About_Help: String { return self._s[3242]! } - public var Contacts_PermissionsEnable: String { return self._s[3243]! } - public var Wallet_Sending_Title: String { return self._s[3244]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3245]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3246]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3248]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3249]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3250]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3251]! } - public var OldChannels_Title: String { return self._s[3252]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3253]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3255]! } - public var Map_OpenInYandexMaps: String { return self._s[3257]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3258]! } - public var VoiceOver_MessageContextReply: String { return self._s[3259]! } - public var PhotoEditor_SaturationTool: String { return self._s[3261]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3228]! } + public var Passport_Address_Region: String { return self._s[3231]! } + public var ChatList_DeleteChat: String { return self._s[3232]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3233]! } + public var PhotoEditor_TiltShift: String { return self._s[3234]! } + public var Settings_FAQ_URL: String { return self._s[3235]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3236]! } + public var Passport_Language_sl: String { return self._s[3237]! } + public var Settings_PrivacySettings: String { return self._s[3239]! } + public var SharedMedia_TitleLink: String { return self._s[3240]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3241]! } + public var Settings_SetProfilePhoto: String { return self._s[3242]! } + public var Channel_About_Help: String { return self._s[3243]! } + public var Contacts_PermissionsEnable: String { return self._s[3244]! } + public var Wallet_Sending_Title: String { return self._s[3245]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3246]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3247]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3249]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3250]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3251]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3252]! } + public var OldChannels_Title: String { return self._s[3253]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3254]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3256]! } + public var Map_OpenInYandexMaps: String { return self._s[3258]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3259]! } + public var VoiceOver_MessageContextReply: String { return self._s[3260]! } + public var PhotoEditor_SaturationTool: String { return self._s[3262]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3262]!, self._r[3262]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3263]!, self._r[3263]!, [_1, _2]) } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3263]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3264]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3265]! } + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3264]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3265]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3266]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3266]!, self._r[3266]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3267]!, self._r[3267]!, [_1, "\(_2)"]) } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3267]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3269]! } - public var SettingsSearch_Synonyms_Wallet: String { return self._s[3270]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3268]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3270]! } + public var SettingsSearch_Synonyms_Wallet: String { return self._s[3271]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3271]!, self._r[3271]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3272]!, self._r[3272]!, [_1, _2]) } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3273]! } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3272]!, self._r[3272]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_1, _2, _3]) } - public var WallpaperPreview_PatternTitle: String { return self._s[3273]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[3274]! } - public var Passport_PassportInformation: String { return self._s[3277]! } - public var Theme_Unsupported: String { return self._s[3278]! } - public var WatchRemote_AlertTitle: String { return self._s[3279]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3280]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3282]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3275]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3276]! } + public var Passport_PassportInformation: String { return self._s[3279]! } + public var Theme_Unsupported: String { return self._s[3280]! } + public var WatchRemote_AlertTitle: String { return self._s[3281]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3282]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3284]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3283]!, self._r[3283]!, [_0]) + return formatWithArgumentRanges(self._s[3285]!, self._r[3285]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3284]!, self._r[3284]!, [_1]) + return formatWithArgumentRanges(self._s[3286]!, self._r[3286]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3285]! } - public var Wallet_Navigation_Done: String { return self._s[3287]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3288]! } - public var AccessDenied_CameraDisabled: String { return self._s[3289]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3287]! } + public var Wallet_Navigation_Done: String { return self._s[3289]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3290]! } + public var AccessDenied_CameraDisabled: String { return self._s[3291]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3290]!, self._r[3290]!, [_0]) + return formatWithArgumentRanges(self._s[3292]!, self._r[3292]!, [_0]) } - public var ClearCache_Forever: String { return self._s[3291]! } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3292]! } - public var CreatePoll_Quiz: String { return self._s[3293]! } - public var PhotoEditor_ContrastTool: String { return self._s[3296]! } + public var ClearCache_Forever: String { return self._s[3293]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3294]! } + public var CreatePoll_Quiz: String { return self._s[3295]! } + public var PhotoEditor_ContrastTool: String { return self._s[3298]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3297]!, self._r[3297]!, [_1]) + return formatWithArgumentRanges(self._s[3299]!, self._r[3299]!, [_1]) } - public var DialogList_Draft: String { return self._s[3298]! } - public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3299]! } - public var Privacy_TopPeersDelete: String { return self._s[3301]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3302]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3303]! } - public var WebSearch_RecentSectionClear: String { return self._s[3304]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3305]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3307]! } - public var Common_Done: String { return self._s[3309]! } - public var Shortcut_SwitchAccount: String { return self._s[3310]! } - public var AuthSessions_EmptyText: String { return self._s[3311]! } - public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3312]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3313]! } - public var Tour_Title5: String { return self._s[3314]! } - public var Wallet_Settings_Title: String { return self._s[3315]! } + public var DialogList_Draft: String { return self._s[3300]! } + public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3301]! } + public var Privacy_TopPeersDelete: String { return self._s[3303]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3304]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3305]! } + public var WebSearch_RecentSectionClear: String { return self._s[3306]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3307]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3309]! } + public var Common_Done: String { return self._s[3311]! } + public var Shortcut_SwitchAccount: String { return self._s[3312]! } + public var AuthSessions_EmptyText: String { return self._s[3313]! } + public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3314]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3315]! } + public var Tour_Title5: String { return self._s[3316]! } + public var Wallet_Settings_Title: String { return self._s[3317]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3316]!, self._r[3316]!, [_0]) + return formatWithArgumentRanges(self._s[3318]!, self._r[3318]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3317]! } - public var Conversation_LinkDialogSave: String { return self._s[3318]! } - public var GroupInfo_ActionRestrict: String { return self._s[3319]! } - public var Checkout_Title: String { return self._s[3320]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3322]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3324]! } - public var Notification_RenamedGroup: String { return self._s[3325]! } - public var PeopleNearby_Groups: String { return self._s[3326]! } - public var Checkout_PayWithFaceId: String { return self._s[3327]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3328]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3330]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3331]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3332]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3319]! } + public var Conversation_LinkDialogSave: String { return self._s[3320]! } + public var GroupInfo_ActionRestrict: String { return self._s[3321]! } + public var Checkout_Title: String { return self._s[3322]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3324]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3326]! } + public var Notification_RenamedGroup: String { return self._s[3327]! } + public var PeopleNearby_Groups: String { return self._s[3328]! } + public var Checkout_PayWithFaceId: String { return self._s[3329]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3330]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3332]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3333]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3334]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3333]!, self._r[3333]!, [_0]) + return formatWithArgumentRanges(self._s[3335]!, self._r[3335]!, [_0]) } - public var Profile_AddToExisting: String { return self._s[3335]! } + public var Profile_AddToExisting: String { return self._s[3337]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3336]!, self._r[3336]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3338]!, self._r[3338]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3338]! } - public var Permissions_PrivacyPolicy: String { return self._s[3339]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3340]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3341]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3343]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3345]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3346]! } + public var Cache_Files: String { return self._s[3340]! } + public var Permissions_PrivacyPolicy: String { return self._s[3341]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3342]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3343]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3345]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3347]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3348]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3347]!, self._r[3347]!, [_0]) + return formatWithArgumentRanges(self._s[3349]!, self._r[3349]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3348]! } - public var VoiceOver_AttachMedia: String { return self._s[3351]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3352]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3350]! } + public var VoiceOver_AttachMedia: String { return self._s[3353]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3354]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3353]!, self._r[3353]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3355]!, self._r[3355]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3354]! } - public var Conversation_SetReminder_Title: String { return self._s[3355]! } - public var Passport_FieldAddressHelp: String { return self._s[3356]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3357]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3358]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3356]! } + public var Conversation_SetReminder_Title: String { return self._s[3357]! } + public var Passport_FieldAddressHelp: String { return self._s[3358]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3359]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3360]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3359]!, self._r[3359]!, [_0]) + return formatWithArgumentRanges(self._s[3361]!, self._r[3361]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3360]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3361]! } - public var Login_UnknownError: String { return self._s[3362]! } - public var Group_UpgradeNoticeText2: String { return self._s[3365]! } - public var Watch_Compose_AddContact: String { return self._s[3366]! } - public var ClearCache_StorageServiceFiles: String { return self._s[3367]! } - public var Web_Error: String { return self._s[3368]! } - public var Gif_Search: String { return self._s[3369]! } - public var Profile_MessageLifetime1h: String { return self._s[3370]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3371]! } - public var Channel_Username_CheckingUsername: String { return self._s[3372]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3373]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3374]! } - public var Channel_AboutItem: String { return self._s[3375]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3377]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3378]! } - public var GroupInfo_SharedMedia: String { return self._s[3379]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3362]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3363]! } + public var Login_UnknownError: String { return self._s[3364]! } + public var Group_UpgradeNoticeText2: String { return self._s[3367]! } + public var Watch_Compose_AddContact: String { return self._s[3368]! } + public var ClearCache_StorageServiceFiles: String { return self._s[3369]! } + public var Web_Error: String { return self._s[3370]! } + public var Gif_Search: String { return self._s[3371]! } + public var Profile_MessageLifetime1h: String { return self._s[3372]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3373]! } + public var Channel_Username_CheckingUsername: String { return self._s[3374]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3375]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3376]! } + public var Channel_AboutItem: String { return self._s[3377]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3379]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3380]! } + public var GroupInfo_SharedMedia: String { return self._s[3381]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3380]!, self._r[3380]!, [_1]) - } - public var Call_PhoneCallInProgressMessage: String { return self._s[3381]! } - public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3382]!, self._r[3382]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3383]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3384]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3385]! } - public var CreatePoll_AddOption: String { return self._s[3386]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3387]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3388]! } - public var Channel_Management_AddModerator: String { return self._s[3389]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3390]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3391]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3392]! } - public var Theme_Colors_Background: String { return self._s[3393]! } - public var NotificationsSound_Hello: String { return self._s[3395]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3396]! } - public var Channel_Stickers_Placeholder: String { return self._s[3398]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3383]! } + public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3384]!, self._r[3384]!, [_1]) + } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3385]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3386]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3387]! } + public var CreatePoll_AddOption: String { return self._s[3388]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3389]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3390]! } + public var Channel_Management_AddModerator: String { return self._s[3391]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3392]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3393]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3394]! } + public var Theme_Colors_Background: String { return self._s[3395]! } + public var NotificationsSound_Hello: String { return self._s[3397]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3398]! } + public var Channel_Stickers_Placeholder: String { return self._s[3400]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3399]!, self._r[3399]!, [_0]) + return formatWithArgumentRanges(self._s[3401]!, self._r[3401]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3400]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3401]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3402]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3403]! } - public var AutoDownloadSettings_Channels: String { return self._s[3404]! } - public var Passport_Language_mn: String { return self._s[3405]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3408]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3409]! } - public var Passport_Language_ja: String { return self._s[3411]! } - public var Settings_About_Title: String { return self._s[3412]! } - public var Settings_NotificationsAndSounds: String { return self._s[3413]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3414]! } - public var Settings_BlockedUsers: String { return self._s[3415]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3402]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3403]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3404]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3405]! } + public var AutoDownloadSettings_Channels: String { return self._s[3406]! } + public var Passport_Language_mn: String { return self._s[3407]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3410]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3411]! } + public var Passport_Language_ja: String { return self._s[3413]! } + public var Settings_About_Title: String { return self._s[3414]! } + public var Settings_NotificationsAndSounds: String { return self._s[3415]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3416]! } + public var Settings_BlockedUsers: String { return self._s[3417]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3416]!, self._r[3416]!, [_0]) + return formatWithArgumentRanges(self._s[3418]!, self._r[3418]!, [_0]) } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3417]! } - public var Wallet_Weekday_Today: String { return self._s[3418]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3419]! } - public var Widget_ApplicationLocked: String { return self._s[3420]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3421]! } - public var Channel_Username_Title: String { return self._s[3422]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3419]! } + public var Wallet_Weekday_Today: String { return self._s[3420]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3421]! } + public var Widget_ApplicationLocked: String { return self._s[3422]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3423]! } + public var Channel_Username_Title: String { return self._s[3424]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3423]!, self._r[3423]!, [_0]) + return formatWithArgumentRanges(self._s[3425]!, self._r[3425]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3425]! } - public var AppleWatch_Title: String { return self._s[3426]! } - public var Activity_RecordingVideoMessage: String { return self._s[3427]! } + public var AttachmentMenu_File: String { return self._s[3427]! } + public var AppleWatch_Title: String { return self._s[3428]! } + public var Activity_RecordingVideoMessage: String { return self._s[3429]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3428]!, self._r[3428]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3430]!, self._r[3430]!, [_1, _2]) } - public var Theme_Colors_Messages: String { return self._s[3429]! } - public var Weekday_Saturday: String { return self._s[3430]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3431]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3432]! } - public var Common_Next: String { return self._s[3434]! } - public var Channel_Stickers_YourStickers: String { return self._s[3436]! } - public var Message_Theme: String { return self._s[3437]! } - public var Call_AudioRouteHeadphones: String { return self._s[3438]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3440]! } - public var Watch_Contacts_NoResults: String { return self._s[3442]! } - public var PhotoEditor_TintTool: String { return self._s[3445]! } - public var LoginPassword_ResetAccount: String { return self._s[3447]! } - public var Settings_SavedMessages: String { return self._s[3448]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3449]! } - public var Bot_GenericSupportStatus: String { return self._s[3450]! } - public var StickerPack_Add: String { return self._s[3451]! } - public var Checkout_TotalAmount: String { return self._s[3452]! } - public var Your_cards_number_is_invalid: String { return self._s[3453]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3454]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3455]! } + public var Theme_Colors_Messages: String { return self._s[3431]! } + public var Weekday_Saturday: String { return self._s[3432]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3433]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3434]! } + public var Common_Next: String { return self._s[3436]! } + public var Channel_Stickers_YourStickers: String { return self._s[3438]! } + public var Message_Theme: String { return self._s[3439]! } + public var Call_AudioRouteHeadphones: String { return self._s[3440]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3442]! } + public var Watch_Contacts_NoResults: String { return self._s[3444]! } + public var PhotoEditor_TintTool: String { return self._s[3447]! } + public var LoginPassword_ResetAccount: String { return self._s[3449]! } + public var Settings_SavedMessages: String { return self._s[3450]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3451]! } + public var Bot_GenericSupportStatus: String { return self._s[3452]! } + public var StickerPack_Add: String { return self._s[3453]! } + public var Checkout_TotalAmount: String { return self._s[3454]! } + public var Your_cards_number_is_invalid: String { return self._s[3455]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3456]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3457]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3456]!, self._r[3456]!, [_0]) + return formatWithArgumentRanges(self._s[3458]!, self._r[3458]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3457]!, self._r[3457]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3459]!, self._r[3459]!, [_1, _2]) } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3458]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3460]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3460]!, self._r[3460]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3462]!, self._r[3462]!, [_1, _2]) } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3461]!, self._r[3461]!, [_0]) + return formatWithArgumentRanges(self._s[3463]!, self._r[3463]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3462]! } - public var StickerPack_Share: String { return self._s[3463]! } - public var Passport_DeleteAddress: String { return self._s[3464]! } - public var Settings_Passport: String { return self._s[3465]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3466]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3467]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3468]! } - public var Contacts_PermissionsText: String { return self._s[3469]! } - public var Group_Setup_HistoryVisible: String { return self._s[3470]! } - public var Wallet_Month_ShortDecember: String { return self._s[3472]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3473]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3474]! } - public var SocksProxySetup_Title: String { return self._s[3475]! } - public var Notification_Mute1h: String { return self._s[3476]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3464]! } + public var StickerPack_Share: String { return self._s[3465]! } + public var Passport_DeleteAddress: String { return self._s[3466]! } + public var Settings_Passport: String { return self._s[3467]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3468]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3469]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3470]! } + public var Contacts_PermissionsText: String { return self._s[3471]! } + public var Group_Setup_HistoryVisible: String { return self._s[3472]! } + public var Wallet_Month_ShortDecember: String { return self._s[3474]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3475]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3476]! } + public var SocksProxySetup_Title: String { return self._s[3477]! } + public var Notification_Mute1h: String { return self._s[3478]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3477]!, self._r[3477]!, [_0]) + return formatWithArgumentRanges(self._s[3479]!, self._r[3479]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3478]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3480]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3479]!, self._r[3479]!, [_1]) + return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3480]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3483]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3485]! } - public var DialogList_NoMessagesText: String { return self._s[3486]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3487]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3488]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3490]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3491]! } - public var Common_TakePhotoOrVideo: String { return self._s[3492]! } - public var Wallet_Words_Text: String { return self._s[3493]! } - public var Call_StatusBusy: String { return self._s[3494]! } - public var Conversation_PinnedMessage: String { return self._s[3495]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3496]! } - public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3497]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3498]! } - public var Undo_ChatCleared: String { return self._s[3499]! } - public var AppleWatch_ReplyPresets: String { return self._s[3500]! } - public var Passport_DiscardMessageDescription: String { return self._s[3502]! } - public var Login_NetworkError: String { return self._s[3503]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3482]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3485]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3487]! } + public var DialogList_NoMessagesText: String { return self._s[3488]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3489]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3490]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3492]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3493]! } + public var Common_TakePhotoOrVideo: String { return self._s[3494]! } + public var Wallet_Words_Text: String { return self._s[3495]! } + public var Call_StatusBusy: String { return self._s[3496]! } + public var Conversation_PinnedMessage: String { return self._s[3497]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3498]! } + public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3499]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3500]! } + public var Undo_ChatCleared: String { return self._s[3501]! } + public var AppleWatch_ReplyPresets: String { return self._s[3502]! } + public var Passport_DiscardMessageDescription: String { return self._s[3504]! } + public var Login_NetworkError: String { return self._s[3505]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3504]!, self._r[3504]!, [_0]) + return formatWithArgumentRanges(self._s[3506]!, self._r[3506]!, [_0]) } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3505]!, self._r[3505]!, [_0]) + return formatWithArgumentRanges(self._s[3507]!, self._r[3507]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3506]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3508]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3509]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3508]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3510]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3511]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3511]!, self._r[3511]!, [_0]) + return formatWithArgumentRanges(self._s[3513]!, self._r[3513]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3512]! } - public var VoiceOver_Chat_Music: String { return self._s[3513]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3514]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3516]! } - public var ConversationMedia_Title: String { return self._s[3517]! } - public var EncryptionKey_Title: String { return self._s[3519]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3520]! } - public var Notification_Exceptions_AddException: String { return self._s[3521]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3522]! } - public var Profile_MessageLifetime1m: String { return self._s[3523]! } + public var Call_ConnectionErrorMessage: String { return self._s[3514]! } + public var VoiceOver_Chat_Music: String { return self._s[3515]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3516]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3518]! } + public var ConversationMedia_Title: String { return self._s[3519]! } + public var EncryptionKey_Title: String { return self._s[3521]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3522]! } + public var Notification_Exceptions_AddException: String { return self._s[3523]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3524]! } + public var Profile_MessageLifetime1m: String { return self._s[3525]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3524]!, self._r[3524]!, [_1]) + return formatWithArgumentRanges(self._s[3526]!, self._r[3526]!, [_1]) } - public var Month_GenMay: String { return self._s[3525]! } + public var Month_GenMay: String { return self._s[3527]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3526]!, self._r[3526]!, [_0]) + return formatWithArgumentRanges(self._s[3528]!, self._r[3528]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3527]! } - public var Wallet_Send_AddressInfo: String { return self._s[3528]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3529]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3530]! } + public var PeopleNearby_Users: String { return self._s[3529]! } + public var Wallet_Send_AddressInfo: String { return self._s[3530]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3531]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3532]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3532]!, self._r[3532]!, [_0]) + return formatWithArgumentRanges(self._s[3534]!, self._r[3534]!, [_0]) } - public var Conversation_EmptyPlaceholder: String { return self._s[3533]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3534]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3535]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3536]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3537]! } - public var Channel_JoinChannel: String { return self._s[3539]! } - public var Appearance_Animations: String { return self._s[3542]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3535]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3536]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3537]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3538]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3539]! } + public var Channel_JoinChannel: String { return self._s[3541]! } + public var Appearance_Animations: String { return self._s[3544]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3543]!, self._r[3543]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3545]!, self._r[3545]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3545]! } - public var Appearance_ShareTheme: String { return self._s[3546]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3547]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3549]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3550]! } - public var Passport_Address_Street: String { return self._s[3551]! } - public var Conversation_AddContact: String { return self._s[3552]! } - public var Login_PhonePlaceholder: String { return self._s[3553]! } - public var Channel_Members_InviteLink: String { return self._s[3555]! } - public var Bot_Stop: String { return self._s[3556]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3558]! } - public var Notification_PassportValueAddress: String { return self._s[3559]! } - public var Month_ShortJuly: String { return self._s[3560]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3561]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3562]! } - public var Passport_Identity_ReverseSide: String { return self._s[3563]! } - public var Watch_Stickers_Recents: String { return self._s[3566]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3568]! } - public var Map_SendThisLocation: String { return self._s[3569]! } + public var Stickers_GroupStickers: String { return self._s[3547]! } + public var Appearance_ShareTheme: String { return self._s[3548]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3549]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3551]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3552]! } + public var Passport_Address_Street: String { return self._s[3553]! } + public var Conversation_AddContact: String { return self._s[3554]! } + public var Login_PhonePlaceholder: String { return self._s[3555]! } + public var Channel_Members_InviteLink: String { return self._s[3557]! } + public var Bot_Stop: String { return self._s[3558]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3560]! } + public var Notification_PassportValueAddress: String { return self._s[3561]! } + public var Month_ShortJuly: String { return self._s[3562]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3563]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3564]! } + public var Passport_Identity_ReverseSide: String { return self._s[3565]! } + public var Watch_Stickers_Recents: String { return self._s[3568]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3570]! } + public var Map_SendThisLocation: String { return self._s[3571]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3570]!, self._r[3570]!, [_0]) + return formatWithArgumentRanges(self._s[3572]!, self._r[3572]!, [_0]) } public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3571]!, self._r[3571]!, [_0]) + return formatWithArgumentRanges(self._s[3573]!, self._r[3573]!, [_0]) } - public var ConvertToSupergroup_Note: String { return self._s[3572]! } - public var Wallet_Intro_NotNow: String { return self._s[3573]! } + public var ConvertToSupergroup_Note: String { return self._s[3574]! } + public var Wallet_Intro_NotNow: String { return self._s[3575]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3574]!, self._r[3574]!, [_0]) + return formatWithArgumentRanges(self._s[3576]!, self._r[3576]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3575]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3577]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3576]!, self._r[3576]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3578]!, self._r[3578]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3578]! } - public var Wallpaper_SearchShort: String { return self._s[3579]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3581]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3582]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3583]! } + public var Login_CallRequestState3: String { return self._s[3580]! } + public var Wallpaper_SearchShort: String { return self._s[3581]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3583]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3584]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3585]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3584]!, self._r[3584]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3586]!, self._r[3586]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3585]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3587]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3590]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3587]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3589]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3592]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3591]!, self._r[3591]!, [_0]) + return formatWithArgumentRanges(self._s[3593]!, self._r[3593]!, [_0]) } - public var Passport_CorrectErrors: String { return self._s[3592]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3593]! } + public var Passport_CorrectErrors: String { return self._s[3594]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3595]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3594]!, self._r[3594]!, [_0]) + return formatWithArgumentRanges(self._s[3596]!, self._r[3596]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3595]! } - public var Channel_DiscussionGroup: String { return self._s[3596]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3597]! } + public var Map_SendMyCurrentLocation: String { return self._s[3597]! } + public var Channel_DiscussionGroup: String { return self._s[3598]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3599]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3598]!, self._r[3598]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3599]! } - public var Permissions_NotificationsText_v0: String { return self._s[3600]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3601]! } - public var Appearance_AppIcon: String { return self._s[3602]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3603]! } - public var LoginPassword_FloodError: String { return self._s[3604]! } - public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3606]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3607]! } + public var SharedMedia_SearchNoResults: String { return self._s[3601]! } + public var Permissions_NotificationsText_v0: String { return self._s[3602]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3603]! } + public var Appearance_AppIcon: String { return self._s[3604]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3605]! } + public var LoginPassword_FloodError: String { return self._s[3606]! } + public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3608]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3609]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3608]!, self._r[3608]!, [_0]) - } - public var Passport_Language_bn: String { return self._s[3609]! } - public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3610]!, self._r[3610]!, [_0]) } - public var ChatList_Context_Pin: String { return self._s[3611]! } - public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + public var Passport_Language_bn: String { return self._s[3611]! } + public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3612]!, self._r[3612]!, [_0]) } + public var ChatList_Context_Pin: String { return self._s[3613]! } + public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3614]!, self._r[3614]!, [_0]) + } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3613]!, self._r[3613]!, [_0]) + return formatWithArgumentRanges(self._s[3615]!, self._r[3615]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3614]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3618]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3620]! } - public var Wallet_Month_GenDecember: String { return self._s[3621]! } - public var Contacts_PermissionsAllow: String { return self._s[3622]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3623]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3624]! } - public var WallpaperPreview_Pattern: String { return self._s[3625]! } - public var Paint_Duplicate: String { return self._s[3626]! } - public var Passport_Address_Country: String { return self._s[3627]! } - public var Notification_RenamedChannel: String { return self._s[3629]! } - public var ChatList_Context_Unmute: String { return self._s[3630]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3631]! } - public var Group_MessagePhotoUpdated: String { return self._s[3632]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3633]! } - public var Conversation_ContextMenuBan: String { return self._s[3634]! } - public var TwoStepAuth_EmailSent: String { return self._s[3635]! } - public var MessagePoll_NoVotes: String { return self._s[3636]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3637]! } - public var Passport_Language_is: String { return self._s[3639]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3641]! } - public var Tour_Text5: String { return self._s[3642]! } + public var Wallet_Navigation_Close: String { return self._s[3616]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3620]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3622]! } + public var Wallet_Month_GenDecember: String { return self._s[3623]! } + public var Contacts_PermissionsAllow: String { return self._s[3624]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3625]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3626]! } + public var WallpaperPreview_Pattern: String { return self._s[3627]! } + public var Paint_Duplicate: String { return self._s[3628]! } + public var Passport_Address_Country: String { return self._s[3629]! } + public var Notification_RenamedChannel: String { return self._s[3631]! } + public var ChatList_Context_Unmute: String { return self._s[3632]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3633]! } + public var Group_MessagePhotoUpdated: String { return self._s[3634]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3635]! } + public var Conversation_ContextMenuBan: String { return self._s[3636]! } + public var TwoStepAuth_EmailSent: String { return self._s[3637]! } + public var MessagePoll_NoVotes: String { return self._s[3638]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3639]! } + public var Passport_Language_is: String { return self._s[3641]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3643]! } + public var Tour_Text5: String { return self._s[3644]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3645]!, self._r[3645]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3647]!, self._r[3647]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3646]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3647]! } + public var Undo_SecretChatDeleted: String { return self._s[3648]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3649]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3648]!, self._r[3648]!, [_0]) + return formatWithArgumentRanges(self._s[3650]!, self._r[3650]!, [_0]) } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3649]! } - public var Paint_Edit: String { return self._s[3651]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3653]! } - public var Undo_DeletedGroup: String { return self._s[3655]! } - public var LoginPassword_ForgotPassword: String { return self._s[3656]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3657]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3658]! } + public var Forward_ErrorDisabledForChat: String { return self._s[3651]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3652]! } + public var Paint_Edit: String { return self._s[3654]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3656]! } + public var Undo_DeletedGroup: String { return self._s[3658]! } + public var LoginPassword_ForgotPassword: String { return self._s[3659]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3660]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3661]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3659]!, self._r[3659]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3662]!, self._r[3662]!, [_0, _1]) } - public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3660]! } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3661]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3662]! } - public var Passport_Language_uz: String { return self._s[3663]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3664]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3665]! } - public var Map_StopLiveLocation: String { return self._s[3667]! } - public var VoiceOver_MessageContextSend: String { return self._s[3669]! } - public var PasscodeSettings_Help: String { return self._s[3670]! } - public var NotificationsSound_Input: String { return self._s[3671]! } - public var Share_Title: String { return self._s[3674]! } - public var LogoutOptions_Title: String { return self._s[3675]! } - public var Wallet_Send_AddressText: String { return self._s[3676]! } - public var Login_TermsOfServiceAgree: String { return self._s[3677]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3678]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3679]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3680]! } - public var EnterPasscode_EnterTitle: String { return self._s[3681]! } + public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3663]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3664]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3665]! } + public var Passport_Language_uz: String { return self._s[3666]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3667]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3668]! } + public var Map_StopLiveLocation: String { return self._s[3670]! } + public var VoiceOver_MessageContextSend: String { return self._s[3672]! } + public var PasscodeSettings_Help: String { return self._s[3673]! } + public var NotificationsSound_Input: String { return self._s[3674]! } + public var Share_Title: String { return self._s[3677]! } + public var LogoutOptions_Title: String { return self._s[3678]! } + public var Wallet_Send_AddressText: String { return self._s[3679]! } + public var Login_TermsOfServiceAgree: String { return self._s[3680]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3681]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3682]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3683]! } + public var EnterPasscode_EnterTitle: String { return self._s[3684]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3682]!, self._r[3682]!, [_0]) - } - public var Settings_CopyPhoneNumber: String { return self._s[3683]! } - public var Conversation_AddToContacts: String { return self._s[3684]! } - public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3685]!, self._r[3685]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[3686]! } + public var Settings_CopyPhoneNumber: String { return self._s[3686]! } + public var Conversation_AddToContacts: String { return self._s[3687]! } + public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3688]!, self._r[3688]!, [_0]) + } + public var NotificationsSound_Keys: String { return self._s[3689]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3687]!, self._r[3687]!, [_0]) + return formatWithArgumentRanges(self._s[3690]!, self._r[3690]!, [_0]) } - public var Notification_MessageLifetime1w: String { return self._s[3688]! } - public var Message_Video: String { return self._s[3689]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3690]! } + public var Notification_MessageLifetime1w: String { return self._s[3691]! } + public var Message_Video: String { return self._s[3692]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3693]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3691]!, self._r[3691]!, [_1]) + return formatWithArgumentRanges(self._s[3694]!, self._r[3694]!, [_1]) } - public var Wallet_Receive_AmountInfo: String { return self._s[3694]! } + public var Wallet_Receive_AmountInfo: String { return self._s[3697]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3695]!, self._r[3695]!, [_0]) + return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_0]) } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3696]!, self._r[3696]!, [_0]) + return formatWithArgumentRanges(self._s[3699]!, self._r[3699]!, [_0]) } - public var Passport_Language_mk: String { return self._s[3697]! } + public var Passport_Language_mk: String { return self._s[3700]! } public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_1, _2, _3]) } - public var CreatePoll_CancelConfirmation: String { return self._s[3699]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3700]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3702]! } - public var PrivacyPolicy_Decline: String { return self._s[3703]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3704]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3705]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3706]! } - public var Permissions_SiriAllow_v0: String { return self._s[3708]! } - public var Wallet_Month_ShortAugust: String { return self._s[3709]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3710]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3702]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3703]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3705]! } + public var PrivacyPolicy_Decline: String { return self._s[3706]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3707]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3708]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3709]! } + public var Permissions_SiriAllow_v0: String { return self._s[3711]! } + public var Wallet_Month_ShortAugust: String { return self._s[3712]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3713]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3711]!, self._r[3711]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3714]!, self._r[3714]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3712]!, self._r[3712]!, [_0]) + return formatWithArgumentRanges(self._s[3715]!, self._r[3715]!, [_0]) } - public var Paint_Regular: String { return self._s[3713]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3714]! } - public var SocksProxySetup_ShareLink: String { return self._s[3715]! } - public var Wallet_Qr_Title: String { return self._s[3716]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3717]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3719]! } - public var Wallet_Settings_Configuration: String { return self._s[3720]! } - public var GroupInfo_InviteByLink: String { return self._s[3721]! } - public var MessageTimer_Custom: String { return self._s[3722]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3723]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3724]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3726]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[3727]! } - public var VoiceOver_Chat_Selected: String { return self._s[3728]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3729]! } - public var Channel_Username_InvalidTaken: String { return self._s[3730]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3731]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3732]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[3733]! } - public var Settings_ChatBackground: String { return self._s[3734]! } - public var Channel_Subscribers_Title: String { return self._s[3735]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3736]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3737]! } - public var Watch_ConnectionDescription: String { return self._s[3738]! } - public var OldChannels_NoticeText: String { return self._s[3741]! } - public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3742]! } - public var IntentsSettings_SuggestBy: String { return self._s[3744]! } - public var Theme_ThemeChangedText: String { return self._s[3745]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[3746]! } - public var Wallpaper_ResetWallpapers: String { return self._s[3747]! } - public var Wallet_Send_TransactionInProgress: String { return self._s[3748]! } - public var EditProfile_Title: String { return self._s[3749]! } - public var NotificationsSound_Bamboo: String { return self._s[3751]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3753]! } - public var Login_SmsRequestState2: String { return self._s[3754]! } - public var Passport_Language_ar: String { return self._s[3755]! } + public var Paint_Regular: String { return self._s[3716]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3717]! } + public var SocksProxySetup_ShareLink: String { return self._s[3718]! } + public var Wallet_Qr_Title: String { return self._s[3719]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3720]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3722]! } + public var Wallet_Settings_Configuration: String { return self._s[3723]! } + public var GroupInfo_InviteByLink: String { return self._s[3724]! } + public var MessageTimer_Custom: String { return self._s[3725]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3726]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3727]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3729]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[3730]! } + public var VoiceOver_Chat_Selected: String { return self._s[3731]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3732]! } + public var Channel_Username_InvalidTaken: String { return self._s[3733]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3734]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3735]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[3736]! } + public var Settings_ChatBackground: String { return self._s[3737]! } + public var Channel_Subscribers_Title: String { return self._s[3738]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3739]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3740]! } + public var Watch_ConnectionDescription: String { return self._s[3741]! } + public var OldChannels_NoticeText: String { return self._s[3744]! } + public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3745]! } + public var IntentsSettings_SuggestBy: String { return self._s[3747]! } + public var Theme_ThemeChangedText: String { return self._s[3748]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[3749]! } + public var Wallpaper_ResetWallpapers: String { return self._s[3750]! } + public var Wallet_Send_TransactionInProgress: String { return self._s[3751]! } + public var EditProfile_Title: String { return self._s[3752]! } + public var NotificationsSound_Bamboo: String { return self._s[3754]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3756]! } + public var Login_SmsRequestState2: String { return self._s[3757]! } + public var Passport_Language_ar: String { return self._s[3758]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3756]!, self._r[3756]!, [_0]) + return formatWithArgumentRanges(self._s[3759]!, self._r[3759]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3757]! } - public var Wallet_Created_Text: String { return self._s[3758]! } - public var Conversation_MessageDialogEdit: String { return self._s[3760]! } - public var Wallet_Created_Proceed: String { return self._s[3761]! } - public var Wallet_Words_Done: String { return self._s[3762]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3763]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3760]! } + public var Wallet_Created_Text: String { return self._s[3761]! } + public var Conversation_MessageDialogEdit: String { return self._s[3763]! } + public var Wallet_Created_Proceed: String { return self._s[3764]! } + public var Wallet_Words_Done: String { return self._s[3765]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3766]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3764]!, self._r[3764]!, [_1]) + return formatWithArgumentRanges(self._s[3767]!, self._r[3767]!, [_1]) } - public var Common_Close: String { return self._s[3765]! } - public var GroupInfo_PublicLink: String { return self._s[3766]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3767]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3768]! } + public var Common_Close: String { return self._s[3768]! } + public var GroupInfo_PublicLink: String { return self._s[3769]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3770]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3771]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3772]!, self._r[3772]!, [_0]) + return formatWithArgumentRanges(self._s[3775]!, self._r[3775]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3773]! } + public var UserInfo_About_Placeholder: String { return self._s[3776]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3774]!, self._r[3774]!, [_0]) + return formatWithArgumentRanges(self._s[3777]!, self._r[3777]!, [_0]) } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[3775]! } - public var Channel_Info_Banned: String { return self._s[3777]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[3778]! } + public var Channel_Info_Banned: String { return self._s[3780]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3778]!, self._r[3778]!, [_0]) + return formatWithArgumentRanges(self._s[3781]!, self._r[3781]!, [_0]) } - public var Appearance_Other: String { return self._s[3779]! } - public var Passport_Language_my: String { return self._s[3780]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3781]! } + public var Appearance_Other: String { return self._s[3782]! } + public var Passport_Language_my: String { return self._s[3783]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3784]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3782]!, self._r[3782]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3785]!, self._r[3785]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3783]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3784]! } - public var Preview_CopyAddress: String { return self._s[3785]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3786]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3787]! } + public var Preview_CopyAddress: String { return self._s[3788]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3786]!, self._r[3786]!, [_0]) + return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3787]! } - public var UserInfo_BotSettings: String { return self._s[3788]! } - public var LiveLocation_MenuStopAll: String { return self._s[3790]! } - public var Passport_PasswordCreate: String { return self._s[3791]! } - public var StickerSettings_MaskContextInfo: String { return self._s[3792]! } - public var Message_PinnedLocationMessage: String { return self._s[3793]! } - public var Map_Satellite: String { return self._s[3794]! } - public var Watch_Message_Unsupported: String { return self._s[3795]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[3796]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3797]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3790]! } + public var UserInfo_BotSettings: String { return self._s[3791]! } + public var LiveLocation_MenuStopAll: String { return self._s[3793]! } + public var Passport_PasswordCreate: String { return self._s[3794]! } + public var StickerSettings_MaskContextInfo: String { return self._s[3795]! } + public var Message_PinnedLocationMessage: String { return self._s[3796]! } + public var Map_Satellite: String { return self._s[3797]! } + public var Watch_Message_Unsupported: String { return self._s[3798]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[3799]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3800]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3798]!, self._r[3798]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3801]!, self._r[3801]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3799]!, self._r[3799]!, [_0]) + return formatWithArgumentRanges(self._s[3802]!, self._r[3802]!, [_0]) } - public var Wallet_WordImport_Continue: String { return self._s[3800]! } + public var Wallet_WordImport_Continue: String { return self._s[3803]! } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3801]!, self._r[3801]!, [_0]) + return formatWithArgumentRanges(self._s[3804]!, self._r[3804]!, [_0]) } - public var Notifications_ChannelNotificationsHelp: String { return self._s[3802]! } - public var Privacy_Calls_P2PContacts: String { return self._s[3803]! } - public var NotificationsSound_None: String { return self._s[3804]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3805]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3807]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[3808]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[3805]! } + public var Privacy_Calls_P2PContacts: String { return self._s[3806]! } + public var NotificationsSound_None: String { return self._s[3807]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3808]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3810]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[3811]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3809]!, self._r[3809]!, [_1]) + return formatWithArgumentRanges(self._s[3812]!, self._r[3812]!, [_1]) } - public var Cache_Indexing: String { return self._s[3810]! } - public var DialogList_RecentTitlePeople: String { return self._s[3812]! } - public var DialogList_EncryptionRejected: String { return self._s[3813]! } - public var GroupInfo_Administrators: String { return self._s[3814]! } - public var Passport_ScanPassportHelp: String { return self._s[3815]! } - public var Application_Name: String { return self._s[3816]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3817]! } - public var Appearance_ThemeCarouselDay: String { return self._s[3819]! } - public var Passport_Identity_TranslationHelp: String { return self._s[3820]! } + public var Cache_Indexing: String { return self._s[3813]! } + public var DialogList_RecentTitlePeople: String { return self._s[3815]! } + public var DialogList_EncryptionRejected: String { return self._s[3816]! } + public var GroupInfo_Administrators: String { return self._s[3817]! } + public var Passport_ScanPassportHelp: String { return self._s[3818]! } + public var Application_Name: String { return self._s[3819]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3820]! } + public var Appearance_ThemeCarouselDay: String { return self._s[3822]! } + public var Passport_Identity_TranslationHelp: String { return self._s[3823]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3821]!, self._r[3821]!, [_0]) + return formatWithArgumentRanges(self._s[3824]!, self._r[3824]!, [_0]) } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3822]!, self._r[3822]!, [_0]) + return formatWithArgumentRanges(self._s[3825]!, self._r[3825]!, [_0]) } public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3823]!, self._r[3823]!, [_0]) + return formatWithArgumentRanges(self._s[3826]!, self._r[3826]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3824]! } - public var Privacy_ChatsTitle: String { return self._s[3825]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[3826]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3827]! } - public var Watch_Suggestion_HoldOn: String { return self._s[3828]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3829]! } - public var WebBrowser_Title: String { return self._s[3830]! } - public var Group_LinkedChannel: String { return self._s[3831]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3832]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[3833]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3834]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3835]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[3836]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[3838]! } - public var Channel_Setup_TypePublic: String { return self._s[3840]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3827]! } + public var Privacy_ChatsTitle: String { return self._s[3828]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[3829]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3830]! } + public var Watch_Suggestion_HoldOn: String { return self._s[3831]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3832]! } + public var WebBrowser_Title: String { return self._s[3833]! } + public var Group_LinkedChannel: String { return self._s[3834]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3835]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[3836]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3837]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3838]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[3839]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[3841]! } + public var Channel_Setup_TypePublic: String { return self._s[3843]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3841]!, self._r[3841]!, [_0]) + return formatWithArgumentRanges(self._s[3844]!, self._r[3844]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[3843]! } - public var MessagePoll_ViewResults: String { return self._s[3844]! } - public var Map_OpenInMaps: String { return self._s[3846]! } + public var Channel_TypeSetup_Title: String { return self._s[3846]! } + public var MessagePoll_ViewResults: String { return self._s[3847]! } + public var Map_OpenInMaps: String { return self._s[3849]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3847]!, self._r[3847]!, [_1]) + return formatWithArgumentRanges(self._s[3850]!, self._r[3850]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[3849]! } + public var NotificationsSound_Tremolo: String { return self._s[3852]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3850]!, self._r[3850]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3853]!, self._r[3853]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3851]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3852]! } - public var Passport_PasswordHelp: String { return self._s[3853]! } - public var Login_CodeExpiredError: String { return self._s[3854]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3855]! } - public var Conversation_TitleUnmute: String { return self._s[3856]! } - public var Passport_Identity_ScansHelp: String { return self._s[3857]! } - public var Passport_Language_lo: String { return self._s[3858]! } - public var Camera_FlashAuto: String { return self._s[3859]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3860]! } - public var Common_Cancel: String { return self._s[3861]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[3862]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3863]! } - public var Appearance_TintAllColors: String { return self._s[3864]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3854]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3855]! } + public var Passport_PasswordHelp: String { return self._s[3856]! } + public var Login_CodeExpiredError: String { return self._s[3857]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3858]! } + public var Conversation_TitleUnmute: String { return self._s[3859]! } + public var Passport_Identity_ScansHelp: String { return self._s[3860]! } + public var Passport_Language_lo: String { return self._s[3861]! } + public var Camera_FlashAuto: String { return self._s[3862]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3863]! } + public var Common_Cancel: String { return self._s[3864]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[3865]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3866]! } + public var Appearance_TintAllColors: String { return self._s[3867]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3865]!, self._r[3865]!, [_1]) + return formatWithArgumentRanges(self._s[3868]!, self._r[3868]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[3866]! } - public var ChatSettings_Title: String { return self._s[3868]! } - public var Passport_PasswordReset: String { return self._s[3869]! } - public var SocksProxySetup_TypeNone: String { return self._s[3870]! } - public var EditTheme_Title: String { return self._s[3873]! } - public var PhoneNumberHelp_Help: String { return self._s[3874]! } - public var Checkout_EnterPassword: String { return self._s[3875]! } - public var Share_AuthTitle: String { return self._s[3877]! } - public var Activity_UploadingDocument: String { return self._s[3878]! } - public var State_Connecting: String { return self._s[3879]! } - public var Profile_MessageLifetime1w: String { return self._s[3880]! } - public var Conversation_ContextMenuReport: String { return self._s[3881]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3882]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3883]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[3869]! } + public var ChatSettings_Title: String { return self._s[3871]! } + public var Passport_PasswordReset: String { return self._s[3872]! } + public var SocksProxySetup_TypeNone: String { return self._s[3873]! } + public var EditTheme_Title: String { return self._s[3876]! } + public var PhoneNumberHelp_Help: String { return self._s[3877]! } + public var Checkout_EnterPassword: String { return self._s[3878]! } + public var Share_AuthTitle: String { return self._s[3880]! } + public var Activity_UploadingDocument: String { return self._s[3881]! } + public var State_Connecting: String { return self._s[3882]! } + public var Profile_MessageLifetime1w: String { return self._s[3883]! } + public var Conversation_ContextMenuReport: String { return self._s[3884]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3885]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3886]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3884]!, self._r[3884]!, [_0]) + return formatWithArgumentRanges(self._s[3887]!, self._r[3887]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[3885]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[3886]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3888]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3889]! } - public var PhotoEditor_Set: String { return self._s[3890]! } - public var EmptyGroupInfo_Title: String { return self._s[3891]! } - public var Login_PadPhoneHelp: String { return self._s[3892]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3894]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3896]! } - public var NotificationsSound_Complete: String { return self._s[3897]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3898]! } - public var Group_Info_AdminLog: String { return self._s[3899]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3900]! } + public var AuthSessions_Terminate: String { return self._s[3888]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[3889]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3891]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3892]! } + public var PhotoEditor_Set: String { return self._s[3893]! } + public var EmptyGroupInfo_Title: String { return self._s[3894]! } + public var Login_PadPhoneHelp: String { return self._s[3895]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3897]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3899]! } + public var NotificationsSound_Complete: String { return self._s[3900]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3901]! } + public var Group_Info_AdminLog: String { return self._s[3902]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3903]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3901]!, self._r[3901]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3904]!, self._r[3904]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3902]! } - public var Group_Location_CreateInThisPlace: String { return self._s[3904]! } - public var Conversation_Admin: String { return self._s[3905]! } - public var Conversation_GifTooltip: String { return self._s[3906]! } - public var Passport_NotLoggedInMessage: String { return self._s[3907]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3905]! } + public var Group_Location_CreateInThisPlace: String { return self._s[3907]! } + public var Conversation_Admin: String { return self._s[3908]! } + public var Conversation_GifTooltip: String { return self._s[3909]! } + public var Passport_NotLoggedInMessage: String { return self._s[3910]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3909]!, self._r[3909]!, [_0]) + return formatWithArgumentRanges(self._s[3912]!, self._r[3912]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[3910]! } - public var SharedMedia_EmptyTitle: String { return self._s[3912]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3914]! } - public var Username_Help: String { return self._s[3915]! } - public var DialogList_LanguageTooltip: String { return self._s[3917]! } - public var Map_LoadError: String { return self._s[3918]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3919]! } - public var Channel_AdminLog_AddMembers: String { return self._s[3920]! } - public var ArchivedChats_IntroTitle2: String { return self._s[3921]! } - public var Notification_Exceptions_NewException: String { return self._s[3922]! } - public var TwoStepAuth_EmailTitle: String { return self._s[3923]! } - public var WatchRemote_AlertText: String { return self._s[3924]! } + public var Profile_MessageLifetimeForever: String { return self._s[3913]! } + public var SharedMedia_EmptyTitle: String { return self._s[3915]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3917]! } + public var Username_Help: String { return self._s[3918]! } + public var DialogList_LanguageTooltip: String { return self._s[3920]! } + public var Map_LoadError: String { return self._s[3921]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3922]! } + public var Channel_AdminLog_AddMembers: String { return self._s[3923]! } + public var ArchivedChats_IntroTitle2: String { return self._s[3924]! } + public var Notification_Exceptions_NewException: String { return self._s[3925]! } + public var TwoStepAuth_EmailTitle: String { return self._s[3926]! } + public var WatchRemote_AlertText: String { return self._s[3927]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3925]!, self._r[3925]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3928]!, self._r[3928]!, [_1, _2, _3]) } - public var ChatSettings_ConnectionType_Title: String { return self._s[3929]! } - public var WebBrowser_DefaultBrowser: String { return self._s[3930]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[3932]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3933]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3931]!, self._r[3931]!, [_0]) - } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3932]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[3933]! } - public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3934]!, self._r[3934]!, [_0]) } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3935]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[3936]! } + public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3937]!, self._r[3937]!, [_0]) + } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3935]!, self._r[3935]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[3936]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3937]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[3939]! } - public var Wallet_Created_ExportErrorText: String { return self._s[3940]! } - public var ChatList_UndoArchiveText1: String { return self._s[3941]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3942]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3943]! } - public var Cache_ClearNone: String { return self._s[3944]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3945]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3946]! } + public var Group_AdminLog_EmptyText: String { return self._s[3939]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3940]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3942]! } + public var Wallet_Created_ExportErrorText: String { return self._s[3943]! } + public var ChatList_UndoArchiveText1: String { return self._s[3944]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3945]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3946]! } + public var Cache_ClearNone: String { return self._s[3947]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3948]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3949]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3947]!, self._r[3947]!, [_0]) - } - public var Passport_Identity_Country: String { return self._s[3948]! } - public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3949]!, self._r[3949]!, [_0]) - } - public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3950]!, self._r[3950]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[3951]! } - public var AccessDenied_Settings: String { return self._s[3952]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3953]! } - public var Month_ShortMay: String { return self._s[3954]! } - public var Compose_NewGroup: String { return self._s[3956]! } - public var Group_Setup_TypePrivate: String { return self._s[3958]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3960]! } - public var Appearance_ThemeDayClassic: String { return self._s[3961]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3962]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3963]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3964]! } - public var Conversation_typing: String { return self._s[3966]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[3967]! } - public var Paint_Masks: String { return self._s[3968]! } - public var Contacts_DeselectAll: String { return self._s[3969]! } - public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3970]!, self._r[3970]!, [_0]) + public var Passport_Identity_Country: String { return self._s[3951]! } + public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3952]!, self._r[3952]!, [_0]) } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3971]! } - public var Username_InvalidTaken: String { return self._s[3972]! } - public var Call_StatusNoAnswer: String { return self._s[3973]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3974]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3975]! } - public var Passport_Identity_Selfie: String { return self._s[3976]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3977]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3978]! } - public var Conversation_ClearSecretHistory: String { return self._s[3979]! } - public var PeopleNearby_Description: String { return self._s[3981]! } - public var NetworkUsageSettings_Title: String { return self._s[3982]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3984]! } + public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3953]!, self._r[3953]!, [_0]) + } + public var Exceptions_AddToExceptions: String { return self._s[3954]! } + public var AccessDenied_Settings: String { return self._s[3955]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3956]! } + public var Month_ShortMay: String { return self._s[3957]! } + public var Compose_NewGroup: String { return self._s[3959]! } + public var Group_Setup_TypePrivate: String { return self._s[3961]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3963]! } + public var Appearance_ThemeDayClassic: String { return self._s[3964]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3965]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3966]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3967]! } + public var Conversation_typing: String { return self._s[3969]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[3970]! } + public var Paint_Masks: String { return self._s[3971]! } + public var Contacts_DeselectAll: String { return self._s[3972]! } + public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3973]!, self._r[3973]!, [_0]) + } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3974]! } + public var Username_InvalidTaken: String { return self._s[3975]! } + public var Call_StatusNoAnswer: String { return self._s[3976]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3977]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3978]! } + public var Passport_Identity_Selfie: String { return self._s[3979]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3980]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3981]! } + public var Conversation_ClearSecretHistory: String { return self._s[3982]! } + public var PeopleNearby_Description: String { return self._s[3984]! } + public var NetworkUsageSettings_Title: String { return self._s[3985]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3987]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3986]!, self._r[3986]!, [_0]) + return formatWithArgumentRanges(self._s[3989]!, self._r[3989]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3987]!, self._r[3987]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3990]!, self._r[3990]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[3989]! } - public var VoiceOver_Navigation_Search: String { return self._s[3990]! } - public var Map_LiveLocationTitle: String { return self._s[3991]! } - public var Login_InfoAvatarAdd: String { return self._s[3992]! } - public var Passport_Identity_FilesView: String { return self._s[3993]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3994]! } - public var Privacy_Calls_NeverAllow: String { return self._s[3995]! } - public var VoiceOver_Chat_File: String { return self._s[3996]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[3997]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[3992]! } + public var VoiceOver_Navigation_Search: String { return self._s[3993]! } + public var Map_LiveLocationTitle: String { return self._s[3994]! } + public var Login_InfoAvatarAdd: String { return self._s[3995]! } + public var Passport_Identity_FilesView: String { return self._s[3996]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3997]! } + public var Privacy_Calls_NeverAllow: String { return self._s[3998]! } + public var VoiceOver_Chat_File: String { return self._s[3999]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4000]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3998]!, self._r[3998]!, [_0]) + return formatWithArgumentRanges(self._s[4001]!, self._r[4001]!, [_0]) } - public var ContactInfo_PhoneNumberHidden: String { return self._s[3999]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[4000]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4001]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[4002]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[4003]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4004]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4002]!, self._r[4002]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4005]!, self._r[4005]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4003]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[4004]! } - public var Tour_Title2: String { return self._s[4005]! } - public var Wallet_Sent_ViewWallet: String { return self._s[4006]! } - public var Conversation_FileOpenIn: String { return self._s[4007]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4008]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4009]! } - public var Wallpaper_Set: String { return self._s[4010]! } - public var Passport_Identity_Translations: String { return self._s[4012]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4006]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[4007]! } + public var Tour_Title2: String { return self._s[4008]! } + public var Wallet_Sent_ViewWallet: String { return self._s[4009]! } + public var Conversation_FileOpenIn: String { return self._s[4010]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4011]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4012]! } + public var Wallpaper_Set: String { return self._s[4013]! } + public var Passport_Identity_Translations: String { return self._s[4015]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4013]!, self._r[4013]!, [_0]) + return formatWithArgumentRanges(self._s[4016]!, self._r[4016]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[4014]! } + public var Channel_LeaveChannel: String { return self._s[4017]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4015]!, self._r[4015]!, [_1]) + return formatWithArgumentRanges(self._s[4018]!, self._r[4018]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4017]! } - public var PhotoEditor_HighlightsTint: String { return self._s[4018]! } - public var MessagePoll_LabelPoll: String { return self._s[4019]! } - public var Passport_Email_Delete: String { return self._s[4020]! } - public var Conversation_Mute: String { return self._s[4022]! } - public var Channel_AddBotAsAdmin: String { return self._s[4023]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[4025]! } - public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4026]! } - public var ChatSettings_IntentsSettings: String { return self._s[4028]! } - public var Channel_Management_LabelOwner: String { return self._s[4029]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4020]! } + public var PhotoEditor_HighlightsTint: String { return self._s[4021]! } + public var MessagePoll_LabelPoll: String { return self._s[4022]! } + public var Passport_Email_Delete: String { return self._s[4023]! } + public var Conversation_Mute: String { return self._s[4025]! } + public var Channel_AddBotAsAdmin: String { return self._s[4026]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[4028]! } + public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4029]! } + public var ChatSettings_IntentsSettings: String { return self._s[4031]! } + public var Channel_Management_LabelOwner: String { return self._s[4032]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4030]!, self._r[4030]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4033]!, self._r[4033]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[4031]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[4032]! } - public var Common_No: String { return self._s[4033]! } - public var Weekday_Sunday: String { return self._s[4034]! } - public var Notification_Reply: String { return self._s[4035]! } - public var Conversation_ViewMessage: String { return self._s[4036]! } + public var Calls_CallTabDescription: String { return self._s[4034]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[4035]! } + public var Common_No: String { return self._s[4036]! } + public var Weekday_Sunday: String { return self._s[4037]! } + public var Notification_Reply: String { return self._s[4038]! } + public var Conversation_ViewMessage: String { return self._s[4039]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4037]!, self._r[4037]!, [_0]) + return formatWithArgumentRanges(self._s[4040]!, self._r[4040]!, [_0]) } public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4038]!, self._r[4038]!, [_0]) + return formatWithArgumentRanges(self._s[4041]!, self._r[4041]!, [_0]) } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4039]!, self._r[4039]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4040]! } - public var Wallet_Send_Title: String { return self._s[4041]! } - public var Message_PinnedDocumentMessage: String { return self._s[4042]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[4043]! } - public var DialogList_TabTitle: String { return self._s[4045]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4046]! } - public var Passport_FieldEmail: String { return self._s[4047]! } - public var Conversation_UnpinMessageAlert: String { return self._s[4048]! } - public var Passport_Address_TypeBankStatement: String { return self._s[4049]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[4050]! } - public var Passport_Identity_ExpiryDate: String { return self._s[4051]! } - public var Privacy_Calls_P2P: String { return self._s[4052]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4043]! } + public var Wallet_Send_Title: String { return self._s[4044]! } + public var Message_PinnedDocumentMessage: String { return self._s[4045]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[4046]! } + public var DialogList_TabTitle: String { return self._s[4048]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4049]! } + public var Passport_FieldEmail: String { return self._s[4050]! } + public var Conversation_UnpinMessageAlert: String { return self._s[4051]! } + public var Passport_Address_TypeBankStatement: String { return self._s[4052]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[4053]! } + public var Passport_Identity_ExpiryDate: String { return self._s[4054]! } + public var Privacy_Calls_P2P: String { return self._s[4055]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4054]!, self._r[4054]!, [_0]) + return formatWithArgumentRanges(self._s[4057]!, self._r[4057]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[4055]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[4058]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4056]!, self._r[4056]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4059]!, self._r[4059]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[4057]! } - public var EnterPasscode_ChangeTitle: String { return self._s[4058]! } - public var TwoFactorSetup_Email_Title: String { return self._s[4059]! } - public var Passport_InfoText: String { return self._s[4060]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4061]! } + public var Stickers_ClearRecent: String { return self._s[4060]! } + public var EnterPasscode_ChangeTitle: String { return self._s[4061]! } + public var TwoFactorSetup_Email_Title: String { return self._s[4062]! } + public var Passport_InfoText: String { return self._s[4063]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4064]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4062]!, self._r[4062]!, [_0]) + return formatWithArgumentRanges(self._s[4065]!, self._r[4065]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4063]!, self._r[4063]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4066]!, self._r[4066]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4064]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[4065]! } - public var VoiceOver_Navigation_Compose: String { return self._s[4066]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[4067]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[4069]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4070]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4067]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[4068]! } + public var VoiceOver_Navigation_Compose: String { return self._s[4069]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[4070]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[4072]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4073]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4071]!, self._r[4071]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4074]!, self._r[4074]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4073]! } - public var ChatSettings_OpenLinksIn: String { return self._s[4074]! } - public var Map_HomeAndWorkTitle: String { return self._s[4075]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4076]! } + public var ChatSettings_OpenLinksIn: String { return self._s[4077]! } + public var Map_HomeAndWorkTitle: String { return self._s[4078]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4077]!, self._r[4077]!, [_0]) + return formatWithArgumentRanges(self._s[4080]!, self._r[4080]!, [_0]) } - public var DialogList_Unread: String { return self._s[4078]! } + public var DialogList_Unread: String { return self._s[4081]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4079]!, self._r[4079]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[4080]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4081]! } + public var User_DeletedAccount: String { return self._s[4083]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4084]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_0]) + return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[4083]! } - public var SharedMedia_CategoryMedia: String { return self._s[4084]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4085]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4086]! } - public var Watch_ChatList_Compose: String { return self._s[4087]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4088]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[4089]! } - public var Watch_Microphone_Access: String { return self._s[4090]! } - public var Group_Setup_HistoryHeader: String { return self._s[4091]! } - public var Map_SetThisLocation: String { return self._s[4092]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4093]! } - public var Activity_UploadingPhoto: String { return self._s[4094]! } - public var Conversation_Edit: String { return self._s[4096]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[4097]! } - public var Login_TermsOfServiceDecline: String { return self._s[4098]! } - public var Message_PinnedContactMessage: String { return self._s[4099]! } + public var UserInfo_NotificationsDefault: String { return self._s[4086]! } + public var SharedMedia_CategoryMedia: String { return self._s[4087]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4088]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4089]! } + public var Watch_ChatList_Compose: String { return self._s[4090]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4091]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[4092]! } + public var Watch_Microphone_Access: String { return self._s[4093]! } + public var Group_Setup_HistoryHeader: String { return self._s[4094]! } + public var Map_SetThisLocation: String { return self._s[4095]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4096]! } + public var Activity_UploadingPhoto: String { return self._s[4097]! } + public var Conversation_Edit: String { return self._s[4099]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[4100]! } + public var Login_TermsOfServiceDecline: String { return self._s[4101]! } + public var Message_PinnedContactMessage: String { return self._s[4102]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4100]!, self._r[4100]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4103]!, self._r[4103]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4101]!, self._r[4101]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[4104]!, self._r[4104]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[4102]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4104]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4105]! } + public var Appearance_LargeEmoji: String { return self._s[4105]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4107]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4108]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4106]!, self._r[4106]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4109]!, self._r[4109]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[4107]! } - public var Message_PinnedPhotoMessage: String { return self._s[4108]! } - public var Passport_FieldPhone: String { return self._s[4109]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4110]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[4111]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[4113]! } - public var Conversation_Call: String { return self._s[4114]! } - public var Common_TakePhoto: String { return self._s[4116]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4117]! } - public var Wallet_Receive_CommentHeader: String { return self._s[4118]! } - public var Channel_NotificationLoading: String { return self._s[4119]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[4110]! } + public var Message_PinnedPhotoMessage: String { return self._s[4111]! } + public var Passport_FieldPhone: String { return self._s[4112]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4113]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[4114]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[4116]! } + public var Conversation_Call: String { return self._s[4117]! } + public var Common_TakePhoto: String { return self._s[4119]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4120]! } + public var Wallet_Receive_CommentHeader: String { return self._s[4121]! } + public var Channel_NotificationLoading: String { return self._s[4122]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4120]!, self._r[4120]!, [_0]) + return formatWithArgumentRanges(self._s[4123]!, self._r[4123]!, [_0]) } public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4121]!, self._r[4121]!, [_0]) - } - public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4122]!, self._r[4122]!, [_1]) - } - public var Permissions_SiriTitle_v0: String { return self._s[4123]! } - public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4124]!, self._r[4124]!, [_0]) } + public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4125]!, self._r[4125]!, [_1]) + } + public var Permissions_SiriTitle_v0: String { return self._s[4126]! } + public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4127]!, self._r[4127]!, [_0]) + } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4125]!, self._r[4125]!, [_0]) + return formatWithArgumentRanges(self._s[4128]!, self._r[4128]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[4126]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[4127]! } - public var ClearCache_FreeSpace: String { return self._s[4128]! } - public var Common_edit: String { return self._s[4129]! } - public var PrivacySettings_AuthSessions: String { return self._s[4130]! } - public var Month_ShortJune: String { return self._s[4131]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4132]! } - public var Call_ReportSend: String { return self._s[4133]! } - public var Watch_LastSeen_JustNow: String { return self._s[4134]! } - public var Notifications_MessageNotifications: String { return self._s[4135]! } - public var WallpaperSearch_ColorGreen: String { return self._s[4136]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4138]! } - public var Group_Status: String { return self._s[4139]! } + public var Channel_MessagePhotoRemoved: String { return self._s[4129]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[4130]! } + public var ClearCache_FreeSpace: String { return self._s[4131]! } + public var Common_edit: String { return self._s[4132]! } + public var PrivacySettings_AuthSessions: String { return self._s[4133]! } + public var Month_ShortJune: String { return self._s[4134]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4135]! } + public var Call_ReportSend: String { return self._s[4136]! } + public var Watch_LastSeen_JustNow: String { return self._s[4137]! } + public var Notifications_MessageNotifications: String { return self._s[4138]! } + public var WallpaperSearch_ColorGreen: String { return self._s[4139]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4141]! } + public var Group_Status: String { return self._s[4142]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4140]!, self._r[4140]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4143]!, self._r[4143]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[4141]! } - public var ShareMenu_ShareTo: String { return self._s[4142]! } - public var Conversation_Moderate_Ban: String { return self._s[4143]! } + public var TextFormat_AddLinkTitle: String { return self._s[4144]! } + public var ShareMenu_ShareTo: String { return self._s[4145]! } + public var Conversation_Moderate_Ban: String { return self._s[4146]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4144]!, self._r[4144]!, [_0]) + return formatWithArgumentRanges(self._s[4147]!, self._r[4147]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[4145]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4146]! } + public var SharedMedia_ViewInChat: String { return self._s[4148]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4149]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4147]!, self._r[4147]!, [_1]) + return formatWithArgumentRanges(self._s[4150]!, self._r[4150]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4148]!, self._r[4148]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4151]!, self._r[4151]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4150]!, self._r[4150]!, [_0]) + return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[4151]! } - public var Appearance_ReduceMotion: String { return self._s[4152]! } + public var Map_OpenInHereMaps: String { return self._s[4154]! } + public var Appearance_ReduceMotion: String { return self._s[4155]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4156]!, self._r[4156]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[4154]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[4155]! } - public var PhotoEditor_Skip: String { return self._s[4156]! } - public func Conversation_StatusMembers(_ value: Int32) -> String { + public var Channel_Setup_TypePublicHelp: String { return self._s[4157]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[4158]! } + public var PhotoEditor_Skip: String { return self._s[4159]! } + 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[0 * 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[1 * 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[1 * 6 + Int(form.rawValue)]!, _1, _2) } public func Conversation_StatusOnline(_ 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 Wallpaper_DeleteConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortHours(_ 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 CreatePoll_AddMoreOptions(_ 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 MessagePoll_VotedCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_MESSAGE_ROUNDS(_ 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 ForwardedGifs(_ 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 InviteText_ContactsCountText(_ 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 Passport_Scans(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedLocations(_ value: Int32) -> String { - 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 QuickSend_Photos(_ 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 ForwardedAudios(_ 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) + return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, _1, _2) } public func OldChannels_InactiveMonth(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[14 * 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[15 * 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[16 * 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[17 * 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[18 * 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[19 * 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[20 * 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[21 * 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[22 * 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[23 * 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[24 * 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[25 * 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[26 * 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[27 * 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[28 * 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[29 * 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[30 * 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[31 * 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[32 * 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[33 * 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[34 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[4 * 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[35 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[5 * 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[36 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { + public func ForwardedLocations(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[37 * 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[38 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - 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[39 * 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[40 * 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[41 * 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[42 * 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[43 * 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[44 * 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[45 * 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[46 * 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[47 * 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[48 * 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[49 * 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[50 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[6 * 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[51 * 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[52 * 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[53 * 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[54 * 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[55 * 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[56 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Contacts_ImportersCount(_ 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 Chat_DeleteMessagesConfirmation(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func StickerPack_AddMaskCount(_ 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 MessageTimer_Hours(_ 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 VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Months(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func MessageTimer_Weeks(_ 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 SharedMedia_Photo(_ 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 PollResults_ShowMore(_ 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 Media_SharePhoto(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func StickerPack_StickerCount(_ 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 SharedMedia_DeleteItemsConfirmation(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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 Watch_LastSeen_HoursAgo(_ 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 SharedMedia_Video(_ 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 MessageTimer_ShortMinutes(_ 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 Call_ShortSeconds(_ 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 Notifications_Exceptions(_ 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 MessageTimer_Days(_ 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 Map_ETAMinutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddStickerCount(_ 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 MessageTimer_Minutes(_ 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 Media_ShareItem(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedContacts(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 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[89 * 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[90 * 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[91 * 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[92 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_MinutesAgo(_ 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 OldChannels_Leave(_ 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 LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreExtended(_ 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 MessageTimer_ShortDays(_ 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 Notification_GameScoreSelfExtended(_ 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 LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, _1, _2) - } - 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[102 * 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[103 * 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[104 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ChatList_DeletedChats(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[7 * 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[107 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[8 * 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[108 * 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[109 * 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[110 * 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[111 * 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[112 * 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[113 * 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[114 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func SharedMedia_Link(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[9 * 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[116 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedVideos(_ value: Int32) -> String { + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + public func Media_ShareItem(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[13 * 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[120 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + public func Conversation_LiveLocationMembersCount(_ 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) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_ShortMinutes(_ value: Int32) -> String { + public func Map_ETAMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + public func PollResults_ShowMore(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedVideoMessages(_ value: Int32) -> String { + public func ChatList_SelectedChats(_ 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) + return String(format: self._ps[17 * 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[18 * 6 + Int(form.rawValue)]!, stringValue) } public func MessageTimer_Seconds(_ 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) + return String(format: self._ps[19 * 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[20 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[21 * 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[22 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Wallpaper_DeleteConfirmation(_ 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 GroupInfo_ShowMoreMembers(_ 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 Forward_ConfirmMultipleFiles(_ 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 ForwardedPhotos(_ 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 Watch_UserInfo_Mute(_ 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 UserCount(_ 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 StickerPack_StickerCount(_ 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 CreatePoll_AddMoreOptions(_ 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 ForwardedPolls(_ 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 Wallet_Updated_MinutesAgo(_ 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 Media_SharePhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusSubscribers(_ 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 DialogList_LiveLocationChatsCount(_ 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 StickerPack_AddStickerCount(_ 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 ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func SharedMedia_Video(_ 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 Conversation_StatusMembers(_ 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 MuteExpires_Minutes(_ 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 Map_ETAHours(_ 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 ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Notification_GameScoreSelfExtended(_ 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 Notification_GameScoreSelfSimple(_ 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 OldChannels_Leave(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func GroupInfo_ParticipantCount(_ 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 Wallet_Updated_HoursAgo(_ 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 VoiceOver_Chat_PollOptionCount(_ 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 StickerPack_AddMaskCount(_ 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 Media_ShareVideo(_ 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 Theme_UsersCount(_ 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 Notifications_Exceptions(_ 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 Passport_Scans(_ 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 MuteFor_Days(_ 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 AttachmentMenu_SendItem(_ 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 MessageTimer_Days(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Months(_ 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 ChatList_DeletedChats(_ 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 QuickSend_Photos(_ 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 MuteExpires_Days(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 MuteFor_Hours(_ 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 ForwardedAudios(_ 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 InviteText_ContactsCountText(_ 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 StickerPack_RemoveStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Photo(_ 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 AttachmentMenu_SendVideo(_ 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 Contacts_ImportersCount(_ 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 Watch_LastSeen_HoursAgo(_ 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 SharedMedia_Generic(_ 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 ForwardedGifs(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func StickerPack_RemoveMaskCount(_ 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 ForwardedVideoMessages(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 Conversation_SelectedMessages(_ 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 MuteExpires_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_QuizCount(_ 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 ForwardedMessages(_ 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 MessageTimer_ShortDays(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Days(_ 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 Call_ShortSeconds(_ 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 PasscodeSettings_FailedAttempts(_ 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_ShortWeeks(_ 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 ForwardedStickers(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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_MESSAGES(_ 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 Call_Minutes(_ 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 AttachmentMenu_SendGif(_ 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 MessageTimer_ShortMinutes(_ 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 Notification_GameScoreSimple(_ 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 Contacts_InviteContacts(_ 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 MessageTimer_ShortSeconds(_ 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 ForwardedFiles(_ 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 Chat_DeleteMessagesConfirmation(_ 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 LastSeen_MinutesAgo(_ 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 ForwardedContacts(_ 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 Watch_LastSeen_MinutesAgo(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Invitation_Members(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[104 * 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[105 * 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[106 * 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[107 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func OldChannels_GroupFormat(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ChatList_DeleteConfirmation(_ 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 ServiceMessage_GameScoreSimple(_ 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 PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_DeleteItemsConfirmation(_ 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 Call_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Call_ShortMinutes(_ 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 OldChannels_InactiveYear(_ 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 ServiceMessage_GameScoreExtended(_ 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 ForwardedVideos(_ 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 SharedMedia_Link(_ 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_Weeks(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[123 * 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[124 * 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[125 * 6 + Int(form.rawValue)]!, _1, _2) } public init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?, groupingSeparator: String) { diff --git a/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift b/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift index d470ce403f..565dd51a28 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift @@ -1065,7 +1065,7 @@ extension PresentationThemeChatBubblePolls: Codable { highlight: try decodeColor(values, .highlight), separator: try decodeColor(values, .separator), bar: bar, - barIconForeground: (try? decodeColor(values, .barIconForeground)) ?? .white, + barIconForeground: (try? decodeColor(values, .barIconForeground)) ?? .clear, barPositive: (try? decodeColor(values, .barPositive)) ?? bar, barNegative: (try? decodeColor(values, .barNegative)) ?? bar ) diff --git a/submodules/TelegramUI/TelegramUI/ChatBotInfoItem.swift b/submodules/TelegramUI/TelegramUI/ChatBotInfoItem.swift index 36e83fd4a7..be5f243176 100644 --- a/submodules/TelegramUI/TelegramUI/ChatBotInfoItem.swift +++ b/submodules/TelegramUI/TelegramUI/ChatBotInfoItem.swift @@ -111,7 +111,7 @@ final class ChatBotInfoItemNode: ListViewItemNode { let recognizer = TapLongTapOrDoubleTapGestureRecognizer(target: self, action: #selector(self.tapLongTapOrDoubleTapGesture(_:))) recognizer.tapActionAtPoint = { [weak self] point in if let strongSelf = self { - let tapAction = strongSelf.tapActionAtPoint(point, gesture: .tap) + let tapAction = strongSelf.tapActionAtPoint(point, gesture: .tap, isEstimating: true) switch tapAction { case .none: break @@ -264,7 +264,7 @@ final class ChatBotInfoItemNode: ListViewItemNode { } } - func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { let textNodeFrame = self.textNode.frame if let (index, attributes) = self.textNode.attributesAtPoint(CGPoint(x: point.x - self.offsetContainer.frame.minX - textNodeFrame.minX, y: point.y - self.offsetContainer.frame.minY - textNodeFrame.minY)) { if let url = attributes[NSAttributedString.Key(rawValue: TelegramTextAttributes.URL)] as? String { @@ -295,7 +295,7 @@ final class ChatBotInfoItemNode: ListViewItemNode { if let (gesture, location) = recognizer.lastRecognizedGestureAndLocation { switch gesture { case .tap: - let tapAction = self.tapActionAtPoint(location, gesture: gesture) + let tapAction = self.tapActionAtPoint(location, gesture: gesture, isEstimating: false) switch tapAction { case .none, .ignore: break @@ -314,7 +314,7 @@ final class ChatBotInfoItemNode: ListViewItemNode { } case .longTap, .doubleTap: if let item = self.item, self.backgroundNode.frame.contains(location) { - let tapAction = self.tapActionAtPoint(location, gesture: gesture) + let tapAction = self.tapActionAtPoint(location, gesture: gesture, isEstimating: false) switch tapAction { case .none, .ignore: break diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 79967a4123..a3e2fb0e5f 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -1834,6 +1834,24 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G }) }) }) + }, openMessagePollResults: { [weak self] messageId, optionOpaqueIdentifier in + guard let strongSelf = self else { + return + } + let _ = (strongSelf.context.account.postbox.transaction { transaction -> Message? in + return transaction.getMessage(messageId) + } + |> deliverOnMainQueue).start(next: { message in + guard let message = message else { + return + } + for media in message.media { + if let poll = media as? TelegramMediaPoll, poll.pollId.namespace == Namespaces.Media.CloudPoll { + strongSelf.push(pollResultsController(context: strongSelf.context, messageId: messageId, poll: poll, focusOnOptionWithOpaqueIdentifier: optionOpaqueIdentifier)) + break + } + } + }) }, requestMessageUpdate: { [weak self] id in if let strongSelf = self { strongSelf.chatDisplayNode.historyNode.requestMessageUpdate(id) @@ -6868,7 +6886,48 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } private func forwardMessages(messageIds: [MessageId], resetCurrent: Bool = false) { - let controller = self.context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: self.context, filter: [.onlyWriteable, .excludeDisabled, .includeSavedMessages])) + let _ = (self.context.account.postbox.transaction { transaction -> [Message] in + return messageIds.compactMap(transaction.getMessage) + } + |> deliverOnMainQueue).start(next: { [weak self] messages in + self?.forwardMessages(messages: messages, resetCurrent: resetCurrent) + }) + } + + private func forwardMessages(messages: [Message], resetCurrent: Bool) { + var filter: ChatListNodePeersFilter = [.onlyWriteable, .includeSavedMessages, .excludeDisabled] + var hasPublicPolls = false + var hasPublicQuiz = false + for message in messages { + for media in message.media { + if let poll = media as? TelegramMediaPoll, case .public = poll.publicity { + hasPublicPolls = true + if case .quiz = poll.kind { + hasPublicQuiz = true + } + filter.insert(.excludeChannels) + break + } + } + } + var attemptSelectionImpl: ((Peer) -> Void)? + let controller = self.context.sharedContext.makePeerSelectionController(PeerSelectionControllerParams(context: self.context, filter: filter, attemptSelection: { peer in + attemptSelectionImpl?(peer) + })) + let context = self.context + attemptSelectionImpl = { [weak controller] peer in + guard let controller = controller else { + return + } + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + if hasPublicPolls { + if let channel = peer as? TelegramChannel, case .broadcast = channel.info { + controller.present(textAlertController(context: context, title: nil, text: hasPublicQuiz ? presentationData.strings.Forward_ErrorPublicQuizDisabledInChannels : presentationData.strings.Forward_ErrorPublicPollDisabledInChannels, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), in: .window(.root)) + return + } + } + 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.peerSelected = { [weak self, weak controller] peerId in guard let strongSelf = self, let strongController = controller else { return @@ -6879,11 +6938,11 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } if case .peer(peerId) = strongSelf.chatLocation, strongSelf.parentController == nil { - strongSelf.updateChatPresentationInterfaceState(animated: false, interactive: true, { $0.updatedInterfaceState({ $0.withUpdatedForwardMessageIds(messageIds).withoutSelectionState() }) }) + strongSelf.updateChatPresentationInterfaceState(animated: false, interactive: true, { $0.updatedInterfaceState({ $0.withUpdatedForwardMessageIds(messages.map { $0.id }).withoutSelectionState() }) }) strongController.dismiss() } else if peerId == strongSelf.context.account.peerId { - let _ = (enqueueMessages(account: strongSelf.context.account, peerId: peerId, messages: messageIds.map { id -> EnqueueMessage in - return .forward(source: id, grouping: .auto, attributes: []) + let _ = (enqueueMessages(account: strongSelf.context.account, peerId: peerId, messages: messages.map { message -> EnqueueMessage in + return .forward(source: message.id, grouping: .auto, attributes: []) }) |> deliverOnMainQueue).start(next: { messageIds in if let strongSelf = self { @@ -6919,9 +6978,9 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G let _ = (strongSelf.context.account.postbox.transaction({ transaction -> Void in transaction.updatePeerChatInterfaceState(peerId, update: { currentState in if let currentState = currentState as? ChatInterfaceState { - return currentState.withUpdatedForwardMessageIds(messageIds) + return currentState.withUpdatedForwardMessageIds(messages.map { $0.id }) } else { - return ChatInterfaceState().withUpdatedForwardMessageIds(messageIds) + return ChatInterfaceState().withUpdatedForwardMessageIds(messages.map { $0.id }) } }) }) |> deliverOnMainQueue).start(completed: { diff --git a/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift b/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift index 21ee8f3dbd..4200538cf5 100644 --- a/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift +++ b/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift @@ -104,6 +104,7 @@ public final class ChatControllerInteraction { let openMessageReactions: (MessageId) -> Void let displaySwipeToReplyHint: () -> Void let dismissReplyMarkupMessage: (Message) -> Void + let openMessagePollResults: (MessageId, Data) -> Void let requestMessageUpdate: (MessageId) -> Void let cancelInteractiveKeyboardGestures: () -> Void @@ -118,7 +119,7 @@ public final class ChatControllerInteraction { var searchTextHighightState: (String, [MessageIndex])? var seenOneTimeAnimatedMedia = Set() - init(openMessage: @escaping (Message, ChatControllerInteractionOpenMessageMode) -> Bool, openPeer: @escaping (PeerId?, ChatControllerInteractionNavigateToPeer, Message?) -> Void, openPeerMention: @escaping (String) -> Void, openMessageContextMenu: @escaping (Message, Bool, ASDisplayNode, CGRect, TapLongTapOrDoubleTapGestureRecognizer?) -> Void, openMessageContextActions: @escaping (Message, ASDisplayNode, CGRect, ContextGesture?) -> Void, navigateToMessage: @escaping (MessageId, MessageId) -> Void, tapMessage: ((Message) -> Void)?, clickThroughMessage: @escaping () -> Void, toggleMessagesSelection: @escaping ([MessageId], Bool) -> Void, sendCurrentMessage: @escaping (Bool) -> Void, sendMessage: @escaping (String) -> Void, sendSticker: @escaping (FileMediaReference, Bool, ASDisplayNode, CGRect) -> Bool, sendGif: @escaping (FileMediaReference, ASDisplayNode, CGRect) -> Bool, requestMessageActionCallback: @escaping (MessageId, MemoryBuffer?, Bool) -> Void, requestMessageActionUrlAuth: @escaping (String, MessageId, Int32) -> Void, activateSwitchInline: @escaping (PeerId?, String) -> Void, openUrl: @escaping (String, Bool, Bool?, Message?) -> Void, shareCurrentLocation: @escaping () -> Void, shareAccountContact: @escaping () -> Void, sendBotCommand: @escaping (MessageId?, String) -> Void, openInstantPage: @escaping (Message, ChatMessageItemAssociatedData?) -> Void, openWallpaper: @escaping (Message) -> Void, openTheme: @escaping (Message) -> Void, openHashtag: @escaping (String?, String) -> Void, updateInputState: @escaping ((ChatTextInputState) -> ChatTextInputState) -> Void, updateInputMode: @escaping ((ChatInputMode) -> ChatInputMode) -> Void, openMessageShareMenu: @escaping (MessageId) -> Void, presentController: @escaping (ViewController, Any?) -> Void, navigationController: @escaping () -> NavigationController?, chatControllerNode: @escaping () -> ASDisplayNode?, reactionContainerNode: @escaping () -> ReactionSelectionParentNode?, presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void, callPeer: @escaping (PeerId) -> Void, longTap: @escaping (ChatControllerInteractionLongTapAction, Message?) -> Void, openCheckoutOrReceipt: @escaping (MessageId) -> Void, openSearch: @escaping () -> Void, setupReply: @escaping (MessageId) -> Void, canSetupReply: @escaping (Message) -> Bool, navigateToFirstDateMessage: @escaping(Int32) ->Void, requestRedeliveryOfFailedMessages: @escaping (MessageId) -> Void, addContact: @escaping (String) -> Void, rateCall: @escaping (Message, CallId) -> Void, requestSelectMessagePollOptions: @escaping (MessageId, [Data]) -> Void, requestOpenMessagePollResults: @escaping (MessageId, MediaId) -> Void, openAppStorePage: @escaping () -> Void, displayMessageTooltip: @escaping (MessageId, String, ASDisplayNode?, CGRect?) -> Void, seekToTimecode: @escaping (Message, Double, Bool) -> Void, scheduleCurrentMessage: @escaping () -> Void, sendScheduledMessagesNow: @escaping ([MessageId]) -> Void, editScheduledMessagesTime: @escaping ([MessageId]) -> Void, performTextSelectionAction: @escaping (UInt32, String, TextSelectionAction) -> Void, updateMessageReaction: @escaping (MessageId, String?) -> Void, openMessageReactions: @escaping (MessageId) -> Void, displaySwipeToReplyHint: @escaping () -> Void, dismissReplyMarkupMessage: @escaping (Message) -> Void, requestMessageUpdate: @escaping (MessageId) -> Void, cancelInteractiveKeyboardGestures: @escaping () -> Void, automaticMediaDownloadSettings: MediaAutoDownloadSettings, pollActionState: ChatInterfacePollActionState, stickerSettings: ChatInterfaceStickerSettings) { + init(openMessage: @escaping (Message, ChatControllerInteractionOpenMessageMode) -> Bool, openPeer: @escaping (PeerId?, ChatControllerInteractionNavigateToPeer, Message?) -> Void, openPeerMention: @escaping (String) -> Void, openMessageContextMenu: @escaping (Message, Bool, ASDisplayNode, CGRect, TapLongTapOrDoubleTapGestureRecognizer?) -> Void, openMessageContextActions: @escaping (Message, ASDisplayNode, CGRect, ContextGesture?) -> Void, navigateToMessage: @escaping (MessageId, MessageId) -> Void, tapMessage: ((Message) -> Void)?, clickThroughMessage: @escaping () -> Void, toggleMessagesSelection: @escaping ([MessageId], Bool) -> Void, sendCurrentMessage: @escaping (Bool) -> Void, sendMessage: @escaping (String) -> Void, sendSticker: @escaping (FileMediaReference, Bool, ASDisplayNode, CGRect) -> Bool, sendGif: @escaping (FileMediaReference, ASDisplayNode, CGRect) -> Bool, requestMessageActionCallback: @escaping (MessageId, MemoryBuffer?, Bool) -> Void, requestMessageActionUrlAuth: @escaping (String, MessageId, Int32) -> Void, activateSwitchInline: @escaping (PeerId?, String) -> Void, openUrl: @escaping (String, Bool, Bool?, Message?) -> Void, shareCurrentLocation: @escaping () -> Void, shareAccountContact: @escaping () -> Void, sendBotCommand: @escaping (MessageId?, String) -> Void, openInstantPage: @escaping (Message, ChatMessageItemAssociatedData?) -> Void, openWallpaper: @escaping (Message) -> Void, openTheme: @escaping (Message) -> Void, openHashtag: @escaping (String?, String) -> Void, updateInputState: @escaping ((ChatTextInputState) -> ChatTextInputState) -> Void, updateInputMode: @escaping ((ChatInputMode) -> ChatInputMode) -> Void, openMessageShareMenu: @escaping (MessageId) -> Void, presentController: @escaping (ViewController, Any?) -> Void, navigationController: @escaping () -> NavigationController?, chatControllerNode: @escaping () -> ASDisplayNode?, reactionContainerNode: @escaping () -> ReactionSelectionParentNode?, presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void, callPeer: @escaping (PeerId) -> Void, longTap: @escaping (ChatControllerInteractionLongTapAction, Message?) -> Void, openCheckoutOrReceipt: @escaping (MessageId) -> Void, openSearch: @escaping () -> Void, setupReply: @escaping (MessageId) -> Void, canSetupReply: @escaping (Message) -> Bool, navigateToFirstDateMessage: @escaping(Int32) ->Void, requestRedeliveryOfFailedMessages: @escaping (MessageId) -> Void, addContact: @escaping (String) -> Void, rateCall: @escaping (Message, CallId) -> Void, requestSelectMessagePollOptions: @escaping (MessageId, [Data]) -> Void, requestOpenMessagePollResults: @escaping (MessageId, MediaId) -> Void, openAppStorePage: @escaping () -> Void, displayMessageTooltip: @escaping (MessageId, String, ASDisplayNode?, CGRect?) -> Void, seekToTimecode: @escaping (Message, Double, Bool) -> Void, scheduleCurrentMessage: @escaping () -> Void, sendScheduledMessagesNow: @escaping ([MessageId]) -> Void, editScheduledMessagesTime: @escaping ([MessageId]) -> Void, performTextSelectionAction: @escaping (UInt32, String, TextSelectionAction) -> Void, updateMessageReaction: @escaping (MessageId, String?) -> Void, openMessageReactions: @escaping (MessageId) -> Void, displaySwipeToReplyHint: @escaping () -> Void, dismissReplyMarkupMessage: @escaping (Message) -> Void, openMessagePollResults: @escaping (MessageId, Data) -> Void, requestMessageUpdate: @escaping (MessageId) -> Void, cancelInteractiveKeyboardGestures: @escaping () -> Void, automaticMediaDownloadSettings: MediaAutoDownloadSettings, pollActionState: ChatInterfacePollActionState, stickerSettings: ChatInterfaceStickerSettings) { self.openMessage = openMessage self.openPeer = openPeer self.openPeerMention = openPeerMention @@ -174,6 +175,7 @@ public final class ChatControllerInteraction { self.openMessageReactions = openMessageReactions self.displaySwipeToReplyHint = displaySwipeToReplyHint self.dismissReplyMarkupMessage = dismissReplyMarkupMessage + self.openMessagePollResults = openMessagePollResults self.requestMessageUpdate = requestMessageUpdate self.cancelInteractiveKeyboardGestures = cancelInteractiveKeyboardGestures @@ -213,6 +215,7 @@ public final class ChatControllerInteraction { }, openMessageReactions: { _ in }, displaySwipeToReplyHint: { }, dismissReplyMarkupMessage: { _ in + }, openMessagePollResults: { _, _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, diff --git a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift index 645c01b06d..a145f181ca 100644 --- a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift @@ -2326,7 +2326,9 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { } func animateQuizCorrectOptionSelected() { - class ConfettiView: UIView { + self.view.insertSubview(ConfettiView(frame: self.view.bounds), aboveSubview: self.historyNode.view) + + /*class ConfettiView: UIView { private let direction: Bool private let confettiViewEmitterLayer = CAEmitterLayer() private let confettiViewEmitterCell = CAEmitterCell() @@ -2442,6 +2444,6 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { } self.view.insertSubview(ConfettiView(frame: self.view.bounds, direction: true), aboveSubview: self.historyNode.view) - self.view.insertSubview(ConfettiView(frame: self.view.bounds, direction: false), aboveSubview: self.historyNode.view) + self.view.insertSubview(ConfettiView(frame: self.view.bounds, direction: false), aboveSubview: self.historyNode.view)*/ } } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageActionItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageActionItemNode.swift index b09a154646..71a6d84dbb 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageActionItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageActionItemNode.swift @@ -244,7 +244,7 @@ class ChatMessageActionBubbleContentNode: ChatMessageBubbleContentNode { } } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { let textNodeFrame = self.labelNode.frame if let (index, attributes) = self.labelNode.attributesAtPoint(CGPoint(x: point.x - textNodeFrame.minX, y: point.y - textNodeFrame.minY - 10.0)), gesture == .tap { if let url = attributes[NSAttributedString.Key(rawValue: TelegramTextAttributes.URL)] as? String { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageAttachedContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageAttachedContentNode.swift index 1cb26d13db..0e565d40fb 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageAttachedContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageAttachedContentNode.swift @@ -983,7 +983,7 @@ final class ChatMessageAttachedContentNode: ASDisplayNode { return false } - func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { let textNodeFrame = self.textNode.frame if let (index, attributes) = self.textNode.attributesAtPoint(CGPoint(x: point.x - textNodeFrame.minX, y: point.y - textNodeFrame.minY)) { if let url = attributes[NSAttributedString.Key(rawValue: TelegramTextAttributes.URL)] as? String { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBackground.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBackground.swift index 6af804330b..a24df24f77 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBackground.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBackground.swift @@ -66,6 +66,10 @@ class ChatMessageBackground: ASDisplayNode { private let imageNode: ASImageNode private let outlineImageNode: ASImageNode + var hasImage: Bool { + self.imageNode.image != nil + } + override init() { self.imageNode = ASImageNode() self.imageNode.displaysAsynchronously = false diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleBackdrop.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleBackdrop.swift index aebaf0c11f..7da5d38987 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleBackdrop.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleBackdrop.swift @@ -16,6 +16,10 @@ final class ChatMessageBubbleBackdrop: ASDisplayNode { private var maskView: UIImageView? + var hasImage: Bool { + return self.backgroundContent.contents != nil + } + override var frame: CGRect { didSet { if let maskView = self.maskView { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentNode.swift index 8a7925daf6..4c10c8609a 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentNode.swift @@ -162,7 +162,7 @@ class ChatMessageBubbleContentNode: ASDisplayNode { return nil } - func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { return .none } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift index 5bf541b341..05621ba520 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift @@ -271,14 +271,26 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode for node in subnodes { if let contextNode = node as? ContextExtractedContentContainingNode { if let contextSubnodes = contextNode.contentNode.subnodes { - for contextSubnode in contextSubnodes { + inner: for contextSubnode in contextSubnodes { if contextSubnode !== self.accessoryItemNode { - contextSubnode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) + if contextSubnode == self.backgroundNode { + if self.backgroundNode.hasImage && self.backgroundWallpaperNode.hasImage { + continue inner + } + } + contextSubnode.layer.allowsGroupOpacity = true + contextSubnode.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2, completion: { [weak contextSubnode] _ in + contextSubnode?.layer.allowsGroupOpacity = false + }) } } } } else if node !== self.accessoryItemNode { + node.layer.allowsGroupOpacity = true node.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2) + node.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.2, completion: { [weak node] _ in + node?.layer.allowsGroupOpacity = false + }) } } } @@ -334,7 +346,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode return .waitForSingleTap } for contentNode in strongSelf.contentNodes { - let tapAction = contentNode.tapActionAtPoint(CGPoint(x: point.x - contentNode.frame.minX, y: point.y - contentNode.frame.minY), gesture: .tap) + let tapAction = contentNode.tapActionAtPoint(CGPoint(x: point.x - contentNode.frame.minX, y: point.y - contentNode.frame.minY), gesture: .tap, isEstimating: true) switch tapAction { case .none: if let _ = strongSelf.item?.controllerInteraction.tapMessage { @@ -2305,7 +2317,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode } var foundTapAction = false loop: for contentNode in self.contentNodes { - let tapAction = contentNode.tapActionAtPoint(CGPoint(x: location.x - contentNode.frame.minX, y: location.y - contentNode.frame.minY), gesture: gesture) + let tapAction = contentNode.tapActionAtPoint(CGPoint(x: location.x - contentNode.frame.minX, y: location.y - contentNode.frame.minY), gesture: gesture, isEstimating: false) switch tapAction { case .none, .ignore: if let item = self.item, self.backgroundNode.frame.contains(CGPoint(x: self.frame.width - location.x, y: location.y)), let tapMessage = self.item?.controllerInteraction.tapMessage { @@ -2394,7 +2406,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode selectAll = false } tapMessage = contentNode.item?.message - let tapAction = contentNode.tapActionAtPoint(CGPoint(x: location.x - contentNode.frame.minX, y: location.y - contentNode.frame.minY), gesture: gesture) + let tapAction = contentNode.tapActionAtPoint(CGPoint(x: location.x - contentNode.frame.minX, y: location.y - contentNode.frame.minY), gesture: gesture, isEstimating: false) switch tapAction { case .none, .ignore: break diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageCallBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageCallBubbleContentNode.swift index 1a667442e5..b2c5038812 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageCallBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageCallBubbleContentNode.swift @@ -207,7 +207,7 @@ class ChatMessageCallBubbleContentNode: ChatMessageBubbleContentNode { } } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { if self.buttonNode.frame.contains(point) { return .ignore } else if self.bounds.contains(point), let item = self.item { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageContactBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageContactBubbleContentNode.swift index 4d5cbe76e5..c351ad160c 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageContactBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageContactBubbleContentNode.swift @@ -328,7 +328,7 @@ class ChatMessageContactBubbleContentNode: ChatMessageBubbleContentNode { self.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false) } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { if self.buttonNode.frame.contains(point) { return .openMessage } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageEventLogPreviousDescriptionContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageEventLogPreviousDescriptionContentNode.swift index f540c74239..9512d2b705 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageEventLogPreviousDescriptionContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageEventLogPreviousDescriptionContentNode.swift @@ -84,7 +84,7 @@ final class ChatMessageEventLogPreviousDescriptionContentNode: ChatMessageBubble self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25) } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { if self.bounds.contains(point) { /*if let webPage = self.webPage, case let .Loaded(content) = webPage.content { if content.instantPage != nil { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageEventLogPreviousLinkContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageEventLogPreviousLinkContentNode.swift index 9c76292417..cdefb5f241 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageEventLogPreviousLinkContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageEventLogPreviousLinkContentNode.swift @@ -79,7 +79,7 @@ final class ChatMessageEventLogPreviousLinkContentNode: ChatMessageBubbleContent self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25) } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { if self.bounds.contains(point) { /*if let webPage = self.webPage, case let .Loaded(content) = webPage.content { if content.instantPage != nil { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageEventLogPreviousMessageContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageEventLogPreviousMessageContentNode.swift index 9d05694c53..406fb699b0 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageEventLogPreviousMessageContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageEventLogPreviousMessageContentNode.swift @@ -84,10 +84,10 @@ final class ChatMessageEventLogPreviousMessageContentNode: ChatMessageBubbleCont self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25) } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { if self.bounds.contains(point) { let contentNodeFrame = self.contentNode.frame - return self.contentNode.tapActionAtPoint(point.offsetBy(dx: -contentNodeFrame.minX, dy: -contentNodeFrame.minY), gesture: gesture) + return self.contentNode.tapActionAtPoint(point.offsetBy(dx: -contentNodeFrame.minX, dy: -contentNodeFrame.minY), gesture: gesture, isEstimating: isEstimating) } return .none } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageGameBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageGameBubbleContentNode.swift index 04be9ee3d9..75fa0bed5c 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageGameBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageGameBubbleContentNode.swift @@ -112,7 +112,7 @@ final class ChatMessageGameBubbleContentNode: ChatMessageBubbleContentNode { self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25) } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { if self.bounds.contains(point) { /*if let webPage = self.webPage, case let .Loaded(content) = webPage.content { if content.instantPage != nil { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInvoiceBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInvoiceBubbleContentNode.swift index 92d81ffb0c..1b7f36074c 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageInvoiceBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageInvoiceBubbleContentNode.swift @@ -115,7 +115,7 @@ final class ChatMessageInvoiceBubbleContentNode: ChatMessageBubbleContentNode { self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25) } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { if self.bounds.contains(point) { /*if let webPage = self.webPage, case let .Loaded(content) = webPage.content { if content.instantPage != nil { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageMapBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageMapBubbleContentNode.swift index 08fea390f8..f0602bea07 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageMapBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageMapBubbleContentNode.swift @@ -460,7 +460,7 @@ class ChatMessageMapBubbleContentNode: ChatMessageBubbleContentNode { return mediaHidden } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { return .none } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageMediaBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageMediaBubbleContentNode.swift index 05bc4f997e..c1f5213022 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageMediaBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageMediaBubbleContentNode.swift @@ -355,7 +355,7 @@ class ChatMessageMediaBubbleContentNode: ChatMessageBubbleContentNode { return self.interactiveImageNode.playMediaWithSound() } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { return .none } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index 908242499f..f6ede984b1 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -318,13 +318,20 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { } private let percentageFont = Font.bold(14.5) +private let percentageSmallFont = Font.bold(12.5) -private func generatePercentageImage(presentationData: ChatPresentationData, incoming: Bool, value: Int) -> UIImage { +private func generatePercentageImage(presentationData: ChatPresentationData, incoming: Bool, value: Int, targetValue: Int) -> UIImage { return generateImage(CGSize(width: 42.0, height: 20.0), rotatedContext: { size, context in UIGraphicsPushContext(context) context.clear(CGRect(origin: CGPoint(), size: size)) - let string = NSAttributedString(string: "\(value)%", font: percentageFont, textColor: incoming ? presentationData.theme.theme.chat.message.incoming.primaryTextColor : presentationData.theme.theme.chat.message.outgoing.primaryTextColor, paragraphAlignment: .right) - string.draw(in: CGRect(origin: CGPoint(x: 0.0, y: 2.0), size: size)) + let font: UIFont + if targetValue == 100 { + font = percentageSmallFont + } else { + font = percentageFont + } + let string = NSAttributedString(string: "\(value)%", font: font, textColor: incoming ? presentationData.theme.theme.chat.message.incoming.primaryTextColor : presentationData.theme.theme.chat.message.outgoing.primaryTextColor, paragraphAlignment: .right) + string.draw(in: CGRect(origin: CGPoint(x: 0.0, y: targetValue == 100 ? 3.0 : 2.0), size: size)) UIGraphicsPopContext() })! } @@ -335,7 +342,7 @@ private func generatePercentageAnimationImages(presentationData: ChatPresentatio var images: [UIImage] = [] for i in 0 ..< numberOfFrames { let t = CGFloat(i) / CGFloat(numberOfFrames) - images.append(generatePercentageImage(presentationData: presentationData, incoming: incoming, value: Int((1.0 - t) * CGFloat(fromValue) + t * CGFloat(toValue)))) + images.append(generatePercentageImage(presentationData: presentationData, incoming: incoming, value: Int((1.0 - t) * CGFloat(fromValue) + t * CGFloat(toValue)), targetValue: toValue)) } return images } @@ -444,7 +451,8 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { var updatedPercentageImage: UIImage? if currentResult != optionResult { - updatedPercentageImage = generatePercentageImage(presentationData: presentationData, incoming: incoming, value: optionResult?.percent ?? 0) + let value = optionResult?.percent ?? 0 + updatedPercentageImage = generatePercentageImage(presentationData: presentationData, incoming: incoming, value: value, targetValue: value) } var resultIcon: UIImage? @@ -1238,10 +1246,15 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } private func updateSelection() { - guard let poll = self.poll else { + guard let item = self.item, let poll = self.poll else { return } + var disableAllActions = false + if Namespaces.Message.allScheduled.contains(item.message.id.namespace) { + disableAllActions = true + } + var hasSelection = false switch poll.kind { case .poll(true): @@ -1275,14 +1288,14 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } } - if hasSelection && !hasResults && poll.pollId.namespace == Namespaces.Media.CloudPoll { + if !disableAllActions && hasSelection && !hasResults && poll.pollId.namespace == Namespaces.Media.CloudPoll { self.votersNode.isHidden = true self.buttonViewResultsTextNode.isHidden = true self.buttonSubmitInactiveTextNode.isHidden = hasSelectedOptions self.buttonSubmitActiveTextNode.isHidden = !hasSelectedOptions self.buttonNode.isHidden = !hasSelectedOptions } else { - if case .public = poll.publicity, hasResults { + if case .public = poll.publicity, hasResults, !disableAllActions { self.votersNode.isHidden = true self.buttonViewResultsTextNode.isHidden = false self.buttonNode.isHidden = false @@ -1313,7 +1326,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { self.statusNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false) } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { let textNodeFrame = self.textNode.frame if let (index, attributes) = self.textNode.attributesAtPoint(CGPoint(x: point.x - textNodeFrame.minX, y: point.y - textNodeFrame.minY)) { if let url = attributes[NSAttributedString.Key(rawValue: TelegramTextAttributes.URL)] as? String { @@ -1335,26 +1348,15 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } } else { for optionNode in self.optionNodes { - if optionNode.frame.contains(point) { + if optionNode.frame.contains(point), case .tap = gesture { if optionNode.isUserInteractionEnabled { return .ignore - } else if let result = optionNode.currentResult, let item = self.item, let poll = self.poll { - let string: String - switch poll.kind { - case .poll: - if result.count == 0 { - string = item.presentationData.strings.MessagePoll_NoVotes - } else { - string = item.presentationData.strings.MessagePoll_VotedCount(result.count) - } - case .quiz: - if result.count == 0 { - string = item.presentationData.strings.MessagePoll_QuizNoUsers - } else { - string = item.presentationData.strings.MessagePoll_QuizCount(result.count) - } + } else if let result = optionNode.currentResult, let item = self.item, let option = optionNode.option { + if !isEstimating { + item.controllerInteraction.openMessagePollResults(item.message.id, option.opaqueIdentifier) + return .ignore } - return .tooltip(string, optionNode, optionNode.bounds.offsetBy(dx: 0.0, dy: 10.0)) + return .openMessage } } } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageTextBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageTextBubbleContentNode.swift index ef1007c97c..31b1d33df8 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageTextBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageTextBubbleContentNode.swift @@ -409,7 +409,7 @@ class ChatMessageTextBubbleContentNode: ChatMessageBubbleContentNode { self.statusNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.2, removeOnCompletion: false) } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { let textNodeFrame = self.textNode.frame if let (index, attributes) = self.textNode.attributesAtPoint(CGPoint(x: point.x - textNodeFrame.minX, y: point.y - textNodeFrame.minY)) { if let url = attributes[NSAttributedString.Key(rawValue: TelegramTextAttributes.URL)] as? String { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageUnsupportedBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageUnsupportedBubbleContentNode.swift index d5f3b64ed0..81c3423d01 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageUnsupportedBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageUnsupportedBubbleContentNode.swift @@ -100,7 +100,7 @@ final class ChatMessageUnsupportedBubbleContentNode: ChatMessageBubbleContentNod self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.25) } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { if self.bounds.contains(point) { if self.buttonNode.frame.contains(point) { return .ignore diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageWebpageBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageWebpageBubbleContentNode.swift index 9ab5159442..981c37021d 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageWebpageBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageWebpageBubbleContentNode.swift @@ -415,10 +415,10 @@ final class ChatMessageWebpageBubbleContentNode: ChatMessageBubbleContentNode { return self.contentNode.playMediaWithSound() } - override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture) -> ChatMessageBubbleContentTapAction { + override func tapActionAtPoint(_ point: CGPoint, gesture: TapLongTapOrDoubleTapGesture, isEstimating: Bool) -> ChatMessageBubbleContentTapAction { if self.bounds.contains(point) { let contentNodeFrame = self.contentNode.frame - let result = self.contentNode.tapActionAtPoint(point.offsetBy(dx: -contentNodeFrame.minX, dy: -contentNodeFrame.minY), gesture: gesture) + let result = self.contentNode.tapActionAtPoint(point.offsetBy(dx: -contentNodeFrame.minX, dy: -contentNodeFrame.minY), gesture: gesture, isEstimating: isEstimating) switch result { case .none: break diff --git a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift index 754752aaf1..3e319b622d 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift @@ -419,6 +419,7 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode { }, openMessageReactions: { _ in }, displaySwipeToReplyHint: { }, dismissReplyMarkupMessage: { _ in + }, openMessagePollResults: { _, _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: self.automaticMediaDownloadSettings, diff --git a/submodules/TelegramUI/TelegramUI/ChatSearchResultsContollerNode.swift b/submodules/TelegramUI/TelegramUI/ChatSearchResultsContollerNode.swift index 8bb2cf5207..eaf72dfcfe 100644 --- a/submodules/TelegramUI/TelegramUI/ChatSearchResultsContollerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatSearchResultsContollerNode.swift @@ -168,6 +168,7 @@ class ChatSearchResultsControllerNode: ViewControllerTracingNode, UIScrollViewDe let interaction = ChatListNodeInteraction(activateSearch: { }, peerSelected: { _ in + }, disabledPeerSelected: { _ in }, togglePeerSelected: { _ in }, messageSelected: { [weak self] peer, message, _ in if let strongSelf = self { diff --git a/submodules/TelegramUI/TelegramUI/ComposeController.swift b/submodules/TelegramUI/TelegramUI/ComposeController.swift index 3b90b76cc6..bf8741570a 100644 --- a/submodules/TelegramUI/TelegramUI/ComposeController.swift +++ b/submodules/TelegramUI/TelegramUI/ComposeController.swift @@ -241,9 +241,6 @@ public class ComposeController: ViewController { private func activateSearch() { if self.displayNavigationBar { - if let scrollToTop = self.scrollToTop { - scrollToTop() - } if let searchContentNode = self.searchContentNode { self.contactsNode.activateSearch(placeholderNode: searchContentNode.placeholderNode) } diff --git a/submodules/TelegramUI/TelegramUI/ConfettiView.swift b/submodules/TelegramUI/TelegramUI/ConfettiView.swift new file mode 100644 index 0000000000..ed26b4d618 --- /dev/null +++ b/submodules/TelegramUI/TelegramUI/ConfettiView.swift @@ -0,0 +1,218 @@ +import Foundation +import UIKit +import Display + +private struct Vector2 { + var x: Float + var y: Float +} + +private final class NullActionClass: NSObject, CAAction { + @objc func run(forKey event: String, object anObject: Any, arguments dict: [AnyHashable : Any]?) { + } +} + +private let nullAction = NullActionClass() + +private final class ParticleLayer: CALayer { + let mass: Float + var velocity: Vector2 + var angularVelocity: Float + var rotationAngle: Float = 0.0 + + init(image: CGImage, size: CGSize, position: CGPoint, mass: Float, velocity: Vector2, angularVelocity: Float) { + self.mass = mass + self.velocity = velocity + self.angularVelocity = angularVelocity + + super.init() + + self.contents = image + self.bounds = CGRect(origin: CGPoint(), size: size) + self.position = position + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + override func action(forKey event: String) -> CAAction? { + return nullAction + } +} + +final class ConfettiView: UIView { + private var particles: [ParticleLayer] = [] + private var displayLink: ConstantDisplayLinkAnimator? + + private var localTime: Float = 0.0 + + override init(frame: CGRect) { + super.init(frame: frame) + + self.isUserInteractionEnabled = false + + let colors: [UIColor] = ([ + 0x56CE6B, + 0xCD89D0, + 0x1E9AFF, + 0xFF8724 + ] as [UInt32]).map(UIColor.init(rgb:)) + let imageSize = CGSize(width: 8.0, height: 8.0) + var images: [(CGImage, CGSize)] = [] + for imageType in 0 ..< 2 { + for color in colors { + if imageType == 0 { + images.append((generateFilledCircleImage(diameter: imageSize.width, color: color)!.cgImage!, imageSize)) + } else { + let spriteSize = CGSize(width: 2.0, height: 6.0) + images.append((generateImage(spriteSize, opaque: false, rotatedContext: { size, context in + context.clear(CGRect(origin: CGPoint(), size: size)) + context.setFillColor(color.cgColor) + context.fillEllipse(in: CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: size.width, height: size.width))) + context.fillEllipse(in: CGRect(origin: CGPoint(x: 0.0, y: size.height - size.width), size: CGSize(width: size.width, height: size.width))) + context.fill(CGRect(origin: CGPoint(x: 0.0, y: size.width / 2.0), size: CGSize(width: size.width, height: size.height - size.width))) + })!.cgImage!, spriteSize)) + } + } + } + let imageCount = images.count + + let originXRange = 0 ..< Int(frame.width) + let originYRange = Int(-frame.height) ..< Int(0) + let topMassRange: Range = 20.0 ..< 30.0 + let velocityYRange = Float(3.0) ..< Float(5.0) + let angularVelocityRange = Float(1.0) ..< Float(6.0) + let sizeVariation = Float(0.8) ..< Float(1.6) + + for i in 0 ..< 70 { + let (image, size) = images[i % imageCount] + let sizeScale = CGFloat(Float.random(in: sizeVariation)) + let particle = ParticleLayer(image: image, size: CGSize(width: size.width * sizeScale, height: size.height * sizeScale), position: CGPoint(x: CGFloat(Int.random(in: originXRange)), y: CGFloat(Int.random(in: originYRange))), mass: Float.random(in: topMassRange), velocity: Vector2(x: 0.0, y: Float.random(in: velocityYRange)), angularVelocity: Float.random(in: angularVelocityRange)) + self.particles.append(particle) + self.layer.addSublayer(particle) + } + + let sideMassRange: Range = 80.0 ..< 90.0 + let sideOriginYBase: Float = Float(frame.size.height * 8.5 / 10.0) + let sideOriginYVariation: Float = Float(frame.size.height / 12.0) + let sideOriginYRange = Float(sideOriginYBase - sideOriginYVariation) ..< Float(sideOriginYBase + sideOriginYVariation) + let sideOriginXRange = Float(0.0) ..< Float(100.0) + let sideOriginVelocityValueRange = Float(1.1) ..< Float(1.6) + let sideOriginVelocityValueScaling: Float = 900.0 + let sideOriginVelocityBase: Float = Float.pi / 2.0 + atanf(Float(CGFloat(sideOriginYBase) / (frame.size.width * 0.5))) + let sideOriginVelocityVariation: Float = 0.25 + let sideOriginVelocityAngleRange = Float(sideOriginVelocityBase - sideOriginVelocityVariation) ..< Float(sideOriginVelocityBase + sideOriginVelocityVariation) + + for sideIndex in 0 ..< 2 { + let sideSign: Float = sideIndex == 0 ? 1.0 : -1.0 + let originX: CGFloat = sideIndex == 0 ? -5.0 : (frame.width + 5.0) + for i in 0 ..< 40 { + let offsetX = CGFloat(Float.random(in: sideOriginXRange) * (-sideSign)) + let velocityValue = Float.random(in: sideOriginVelocityValueRange) * sideOriginVelocityValueScaling + let velocityAngle = Float.random(in: sideOriginVelocityAngleRange) + let velocityX = sideSign * velocityValue * sinf(velocityAngle) + let velocityY = velocityValue * cosf(velocityAngle) + let (image, size) = images[i % imageCount] + let sizeScale = CGFloat(Float.random(in: sizeVariation)) + let particle = ParticleLayer(image: image, size: CGSize(width: size.width * sizeScale, height: size.height * sizeScale), position: CGPoint(x: originX + offsetX, y: CGFloat(Float.random(in: sideOriginYRange))), mass: Float.random(in: sideMassRange), velocity: Vector2(x: velocityX, y: velocityY), angularVelocity: Float.random(in: angularVelocityRange)) + self.particles.append(particle) + self.layer.addSublayer(particle) + } + } + + self.displayLink = ConstantDisplayLinkAnimator(update: { [weak self] in + self?.step() + }) + + self.displayLink?.isPaused = false + } + + required init?(coder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func step() { + var haveParticlesAboveGround = false + let minPositionY: CGFloat = 0.0 + let maxPositionY = self.bounds.height + 30.0 + let minDampingX: CGFloat = 40.0 + let maxDampingX: CGFloat = self.bounds.width - 40.0 + let centerX: CGFloat = self.bounds.width / 2.0 + let currentTime = self.localTime + let dt: Float = 1.0 / 60.0 + let slowdownDt: Float + let slowdownStart: Float = 0.2 + let slowdownDuration: Float = 1.0 + let damping: Float + if currentTime >= slowdownStart && currentTime <= slowdownStart + slowdownDuration { + let slowdownTimestamp: Float = currentTime - slowdownStart + + let slowdownRampInDuration: Float = 0.15 + let slowdownRampOutDuration: Float = 0.6 + let slowdownTransition: Float + if slowdownTimestamp < slowdownRampInDuration { + slowdownTransition = slowdownTimestamp / slowdownRampInDuration + } else if slowdownTimestamp >= slowdownDuration - slowdownRampOutDuration { + let reverseTransition = (slowdownTimestamp - (slowdownDuration - slowdownRampOutDuration)) / slowdownRampOutDuration + slowdownTransition = 1.0 - reverseTransition + } else { + slowdownTransition = 1.0 + } + + let slowdownFactor: Float = 0.3 * slowdownTransition + 1.0 * (1.0 - slowdownTransition) + slowdownDt = dt * slowdownFactor + let dampingFactor: Float = 0.97 * slowdownTransition + 1.0 * (1.0 - slowdownTransition) + damping = dampingFactor + } else { + slowdownDt = dt + damping = 1.0 + } + self.localTime += 1.0 / 60.0 + + let g: Vector2 = Vector2(x: 0.0, y: 9.8) + CATransaction.begin() + CATransaction.setDisableActions(true) + var turbulenceVariation: [Float] = [] + for _ in 0 ..< 20 { + turbulenceVariation.append(Float.random(in: -9.0 ..< 9.0)) + } + let turbulenceVariationCount = turbulenceVariation.count + var index = 0 + for particle in self.particles { + var position = particle.position + + let localDt: Float = slowdownDt + + position.x += CGFloat(particle.velocity.x * localDt) + position.y += CGFloat(particle.velocity.y * localDt) + particle.position = position + + particle.rotationAngle += particle.angularVelocity * localDt + particle.transform = CATransform3DMakeRotation(CGFloat(particle.rotationAngle), 0.0, 0.0, 1.0) + + let acceleration = g + + var velocity = particle.velocity + velocity.x += acceleration.x * particle.mass * localDt + velocity.y += acceleration.y * particle.mass * localDt + velocity.x += turbulenceVariation[index % turbulenceVariationCount] + if position.y > minPositionY { + velocity.x *= damping + velocity.y *= damping + } + particle.velocity = velocity + + index += 1 + + if position.y < maxPositionY { + haveParticlesAboveGround = true + } + } + CATransaction.commit() + if !haveParticlesAboveGround { + self.displayLink?.isPaused = true + self.removeFromSuperview() + } + } +} diff --git a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift index cd0a53e09f..a7f3fba779 100644 --- a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift +++ b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift @@ -334,6 +334,7 @@ func openChatMessageImpl(_ params: OpenChatMessageParams) -> Bool { params.present(controller, nil) return true case let .document(file, immediateShare): + params.dismissInput() let presentationData = params.context.sharedContext.currentPresentationData.with { $0 } if immediateShare { let controller = ShareController(context: params.context, subject: .media(.standalone(media: file)), immediateExternalShare: true) diff --git a/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift b/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift index 5bcac43c65..fb21839166 100644 --- a/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift @@ -120,6 +120,7 @@ final class OverlayAudioPlayerControllerNode: ViewControllerTracingNode, UIGestu }, openMessageReactions: { _ in }, displaySwipeToReplyHint: { }, dismissReplyMarkupMessage: { _ in + }, openMessagePollResults: { _, _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, pollActionState: ChatInterfacePollActionState(), stickerSettings: ChatInterfaceStickerSettings(loopAnimatedStickers: false)) diff --git a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift index 062c136117..a693f9cdc5 100644 --- a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift +++ b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift @@ -425,6 +425,7 @@ public class PeerMediaCollectionController: TelegramBaseController { }, openMessageReactions: { _ in }, displaySwipeToReplyHint: { }, dismissReplyMarkupMessage: { _ in + }, openMessagePollResults: { _, _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, diff --git a/submodules/TelegramUI/TelegramUI/PeerSelectionController.swift b/submodules/TelegramUI/TelegramUI/PeerSelectionController.swift index feb988676a..994cab2b6b 100644 --- a/submodules/TelegramUI/TelegramUI/PeerSelectionController.swift +++ b/submodules/TelegramUI/TelegramUI/PeerSelectionController.swift @@ -22,6 +22,8 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon public var peerSelected: ((PeerId) -> Void)? private let filter: ChatListNodePeersFilter + private let attemptSelection: ((Peer) -> Void)? + public var inProgress: Bool = false { didSet { if self.inProgress != oldValue { @@ -58,6 +60,7 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon self.filter = params.filter self.hasContactSelector = params.hasContactSelector self.presentationData = self.context.sharedContext.currentPresentationData.with { $0 } + self.attemptSelection = params.attemptSelection super.init(navigationBarPresentationData: NavigationBarPresentationData(presentationData: self.presentationData)) @@ -139,6 +142,12 @@ public final class PeerSelectionControllerImpl: ViewController, PeerSelectionCon } } + self.peerSelectionNode.requestOpenDisabledPeer = { [weak self] peer in + if let strongSelf = self { + strongSelf.attemptSelection?(peer) + } + } + self.peerSelectionNode.requestOpenPeerFromSearch = { [weak self] peer in if let strongSelf = self { let storedPeer = strongSelf.context.account.postbox.transaction { transaction -> Void in diff --git a/submodules/TelegramUI/TelegramUI/PeerSelectionControllerNode.swift b/submodules/TelegramUI/TelegramUI/PeerSelectionControllerNode.swift index 2803639ab2..b41cc27c8e 100644 --- a/submodules/TelegramUI/TelegramUI/PeerSelectionControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/PeerSelectionControllerNode.swift @@ -47,6 +47,7 @@ final class PeerSelectionControllerNode: ASDisplayNode { var requestActivateSearch: (() -> Void)? var requestDeactivateSearch: (() -> Void)? var requestOpenPeer: ((PeerId) -> Void)? + var requestOpenDisabledPeer: ((Peer) -> Void)? var requestOpenPeerFromSearch: ((Peer) -> Void)? var requestOpenMessageFromSearch: ((Peer, MessageId) -> Void)? @@ -102,6 +103,10 @@ final class PeerSelectionControllerNode: ASDisplayNode { self?.requestOpenPeer?(peerId) } + self.chatListNode.disabledPeerSelected = { [weak self] peer in + self?.requestOpenDisabledPeer?(peer) + } + self.chatListNode.contentOffsetChanged = { [weak self] offset in self?.contentOffsetChanged?(offset) } diff --git a/submodules/TelegramUI/TelegramUI/PollResultsController.swift b/submodules/TelegramUI/TelegramUI/PollResultsController.swift index f497ed39f6..3036a9833d 100644 --- a/submodules/TelegramUI/TelegramUI/PollResultsController.swift +++ b/submodules/TelegramUI/TelegramUI/PollResultsController.swift @@ -11,6 +11,7 @@ import ItemListPeerItem import ItemListPeerActionItem private let collapsedResultCount: Int = 10 +private let collapsedInitialLimit: Int = 14 private final class PollResultsControllerArguments { let context: AccountContext @@ -46,9 +47,21 @@ private enum PollResultsEntryId: Hashable { case optionExpand(Int) } +private enum PollResultsItemTag: ItemListItemTag, Equatable { + case firstOptionPeer(opaqueIdentifier: Data) + + func isEqual(to other: ItemListItemTag) -> Bool { + if let other = other as? PollResultsItemTag, self == other { + return true + } else { + return false + } + } +} + private enum PollResultsEntry: ItemListNodeEntry { case text(String) - case optionPeer(optionId: Int, index: Int, peer: RenderedPeer, optionText: String, optionPercentage: Int, optionExpanded: Bool, opaqueIdentifier: Data, shimmeringAlternation: Int?) + case optionPeer(optionId: Int, index: Int, peer: RenderedPeer, optionText: String, optionCount: Int32, optionExpanded: Bool, opaqueIdentifier: Data, shimmeringAlternation: Int?, isFirstInOption: Bool) case optionExpand(optionId: Int, opaqueIdentifier: Data, text: String, enabled: Bool) var section: ItemListSectionId { @@ -124,15 +137,15 @@ private enum PollResultsEntry: ItemListNodeEntry { switch self { case let .text(text): return ItemListTextItem(presentationData: presentationData, text: .large(text), sectionId: self.section) - case let .optionPeer(optionId, _, peer, optionText, optionPercentage, optionExpanded, opaqueIdentifier, shimmeringAlternation): - let header = ItemListPeerItemHeader(theme: presentationData.theme, strings: presentationData.strings, text: optionText, actionTitle: optionExpanded ? presentationData.strings.PollResults_Collapse : "\(optionPercentage)%", id: Int64(optionId), action: optionExpanded ? { + case let .optionPeer(optionId, _, peer, optionText, optionCount, optionExpanded, opaqueIdentifier, shimmeringAlternation, isFirstInOption): + let header = ItemListPeerItemHeader(theme: presentationData.theme, strings: presentationData.strings, text: optionText, actionTitle: optionExpanded ? presentationData.strings.PollResults_Collapse : presentationData.strings.MessagePoll_VotedCount(optionCount), id: Int64(optionId), action: optionExpanded ? { arguments.collapseOption(opaqueIdentifier) } : nil) return ItemListPeerItem(presentationData: presentationData, dateTimeFormat: PresentationDateTimeFormat(timeFormat: .regular, dateFormat: .dayFirst, dateSeparator: ".", decimalSeparator: ".", groupingSeparator: ""), nameDisplayOrder: .firstLast, context: arguments.context, peer: peer.peers[peer.peerId]!, presence: nil, text: .none, label: .none, editing: ItemListPeerItemEditing(editable: false, editing: false, revealed: false), switchValue: nil, enabled: true, selectable: shimmeringAlternation == nil, sectionId: self.section, action: { arguments.openPeer(peer) }, setPeerIdWithRevealedOptions: { _, _ in }, removePeer: { _ in - }, noInsets: true, header: header, shimmering: shimmeringAlternation.flatMap { ItemListPeerItemShimmering(alternationIndex: $0) }) + }, noInsets: true, tag: isFirstInOption ? PollResultsItemTag.firstOptionPeer(opaqueIdentifier: opaqueIdentifier) : nil, header: header, shimmering: shimmeringAlternation.flatMap { ItemListPeerItemShimmering(alternationIndex: $0) }) case let .optionExpand(_, opaqueIdentifier, text, enabled): return ItemListPeerActionItem(presentationData: presentationData, icon: PresentationResourcesItemList.downArrowImage(presentationData.theme), title: text, sectionId: self.section, editing: false, action: enabled ? { arguments.expandOption(opaqueIdentifier) @@ -180,13 +193,19 @@ private func pollResultsControllerEntries(presentationData: PresentationData, po for i in 0 ..< poll.options.count { let percentage = optionPercentage.count > i ? optionPercentage[i] : 0 let option = poll.options[i] + let optionTextHeader = option.text.uppercased() + " — \(percentage)%" if isEmpty { if let voterCount = optionVoterCount[i], voterCount != 0 { - let displayCount = min(collapsedResultCount, Int(voterCount)) + let displayCount: Int + if Int(voterCount) > collapsedInitialLimit { + displayCount = collapsedResultCount + } else { + displayCount = Int(voterCount) + } for peerIndex in 0 ..< displayCount { let fakeUser = TelegramUser(id: PeerId(namespace: -1, id: 0), accessHash: nil, firstName: "", lastName: "", username: nil, phone: nil, photo: [], botInfo: nil, restrictionInfo: nil, flags: []) let peer = RenderedPeer(peer: fakeUser) - entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: option.text, optionPercentage: percentage, optionExpanded: false, opaqueIdentifier: option.opaqueIdentifier, shimmeringAlternation: peerIndex % 2)) + entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: optionTextHeader, optionCount: voterCount, optionExpanded: false, opaqueIdentifier: option.opaqueIdentifier, shimmeringAlternation: peerIndex % 2, isFirstInOption: peerIndex == 0)) } if displayCount < Int(voterCount) { let remainingCount = Int(voterCount) - displayCount @@ -195,24 +214,25 @@ private func pollResultsControllerEntries(presentationData: PresentationData, po } } else { if let optionState = resultsState.options[option.opaqueIdentifier], !optionState.peers.isEmpty { - var peerIndex = 0 var hasMore = false let optionExpanded = state.expandedOptions.contains(option.opaqueIdentifier) - var peers = optionState.peers - var count = optionState.count - /*#if DEBUG - for _ in 0 ..< 10 { - peers += peers - } - count = max(count, peers.count) - #endif*/ + let peers = optionState.peers + let count = optionState.count + let displayCount: Int + if peers.count > collapsedInitialLimit { + displayCount = collapsedResultCount + } else { + displayCount = peers.count + } + + var peerIndex = 0 inner: for peer in peers { - if !optionExpanded && peerIndex >= collapsedResultCount { + if !optionExpanded && peerIndex >= displayCount { break inner } - entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: option.text, optionPercentage: percentage, optionExpanded: optionExpanded, opaqueIdentifier: option.opaqueIdentifier, shimmeringAlternation: nil)) + entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: optionTextHeader, optionCount: Int32(count), optionExpanded: optionExpanded, opaqueIdentifier: option.opaqueIdentifier, shimmeringAlternation: nil, isFirstInOption: peerIndex == 0)) peerIndex += 1 } @@ -227,7 +247,7 @@ private func pollResultsControllerEntries(presentationData: PresentationData, po return entries } -public func pollResultsController(context: AccountContext, messageId: MessageId, poll: TelegramMediaPoll) -> ViewController { +public func pollResultsController(context: AccountContext, messageId: MessageId, poll: TelegramMediaPoll, focusOnOptionWithOpaqueIdentifier: Data? = nil) -> ViewController { let statePromise = ValuePromise(PollResultsControllerState(), ignoreRepeated: true) let stateValue = Atomic(value: PollResultsControllerState()) let updateState: ((PollResultsControllerState) -> PollResultsControllerState) -> Void = { f in @@ -293,8 +313,30 @@ public func pollResultsController(context: AccountContext, messageId: MessageId, let previousWasEmptyValue = previousWasEmpty.swap(isEmpty) - let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(presentationData.strings.PollResults_Title), leftNavigationButton: leftNavigationButton, rightNavigationButton: nil, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) - let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: pollResultsControllerEntries(presentationData: presentationData, poll: poll, state: state, resultsState: resultsState), style: .blocks, focusItemTag: nil, ensureVisibleItemTag: nil, emptyStateItem: nil, crossfadeState: previousWasEmptyValue != nil && previousWasEmptyValue == true && isEmpty == false, animateChanges: false) + var totalVoters: Int32 = 0 + if let totalVotersValue = poll.results.totalVoters { + totalVoters = totalVotersValue + } + + let entries = pollResultsControllerEntries(presentationData: presentationData, poll: poll, state: state, resultsState: resultsState) + + var initialScrollToItem: ListViewScrollToItem? + if let focusOnOptionWithOpaqueIdentifier = focusOnOptionWithOpaqueIdentifier, previousWasEmptyValue == nil { + loop: for i in 0 ..< entries.count { + switch entries[i] { + case let .optionPeer(optionPeer): + if optionPeer.opaqueIdentifier == focusOnOptionWithOpaqueIdentifier { + initialScrollToItem = ListViewScrollToItem(index: i, position: .top(0.0), animated: false, curve: .Default(duration: nil), directionHint: .Down) + break loop + } + default: + break + } + } + } + + let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .textWithSubtitle(presentationData.strings.PollResults_Title, presentationData.strings.MessagePoll_VotedCount(totalVoters)), leftNavigationButton: leftNavigationButton, rightNavigationButton: nil, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) + let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: entries, style: .blocks, focusItemTag: nil, emptyStateItem: nil, initialScrollToItem: initialScrollToItem, crossfadeState: previousWasEmptyValue != nil && previousWasEmptyValue == true && isEmpty == false, animateChanges: false) return (controllerState, (listState, arguments)) } diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping index 803d6efeb45323a5fbc46f5dc182aa377d35cb95..12bd4f1e86d456673378b46a18828fac22567097 100644 GIT binary patch delta 41519 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

|3huqozz>oz!cj(ZdzGkA<|24e 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�}1G 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]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

jonCd1z2L1Cc#qc}zy)QVj z)}MHbpo~2&M&b?M_I2;Q;oon6SY@c8+5YS*S7Io0Yep3D)=1mtTqx;sYQ`_TA)kOj zTo(T9bqwV|Ap-N0`NY6G2o?gBnR|V#re0h7T(pjJrh}L_J%D7l{Y&rubCr0?z5kSX zZF5%d%HxW4$oS4dl}#WbyFM?99D0#gC@18`tKC2{2ITHsVB8u+T~k;FDuX-J>qUZS z9JK?<6a?Dm8WAbvy@_Y<2Hq%RxHWMGq~iTLon&0I+S1vtCQin$m8<^@F{G?&hVpSS zsQo)G=C}758SQ>-3~n=hB`7Aw!uhJiZD>kk$Z=De`)kmx`0+xNS8gizTOAUL zn3-N?{`7C8ir;Yvm=pX$)+I)R7oEO`$|Z-}&PJ)vnWYhLS5u4C*mLOX3FhO2^7=ga z$*5j{FLd@_bsIr?2cOr@NXWOc&e~iONo`psJ!EGG+v0ZOI)!ctT~R`l zuFB!#3wU1`hPx`PGeu=VvWNZH@v%SlTSdR1MFkGTqnk;$NMtoGvL~(kH@=mV#*#+Xke~g6mV#@& zZ*-ZmTLj-RlrEuYFWW{yWHyBJotLV$`^xxRSU@fguZUW2&aScUA=v?#Xk3}@Ka&=G zjd1r4RGy{=+s4Xjeb#Fd{?LYG#(xNy)}8EA#-eVT7DN+=_lRj#IWBPry{0-I^Oy|{y#2EQBzPoB-C4$Ab z1bX%HT1~C@IU{pr73djGgJ?qlLnw1d_er#p@^iMZXChdPLp66{2fY2RymKKIU?Te$ z{hop-l&kF)d|JZ@O>HuKeMyYzNicI&8-)WYl4qzUJi_fc*d#Qnuxd9dMfM*CzFd6= z_P|MsR^(YyMuevuX4oj;Gqaw$Q;m)zwMbZ8c<5Bcn@?BFrw2{cvp)lo$%Ag~=*9sa z)}jd6nJiT*UPBEkzxUYlov-p6D9xB&&tV>r0+2-!l*Ren;UUd8ud})NXAiJZOf%o0 zju2kVK&>+@rViM*W*U#jwPjS^7%PgfO%V74YJ5}lj1qpdaP*h*=J7Lq6x9kAL&@XL z`o7?zJu(81VoN?e?4fvYpvtW#nke3SScPDW();s-B?1|;E~3fCZ7*NDAeMCR{h^bM zXPo(rFSA{_pC>q@{gwr&!p(9aK%L^gL%es^u$-m2p$?ttQzxVGLw;C5P5k4T2=*MtBV_ zjwqrN)ahGlpF~8GzF`n}Nu6oU_bPc|jK&1%(`8<0kx5BR5Mpz#dEP}rf^6B=&0@J| zHn1@pi)Sjx$S91+n~%xlL@Yk^740cEk?u3Bw}G|vjg0I^oiSIaXOcyiCzVU1-f3aM zwM4%(azA%hKR;?-Z(||ngk-Y_N9F%i9Fs`9#>R-*CT^^qq+qm!J6PN{dFW2%EF&u^_^ zdg~SX!GSiPdW-7L3)C2OvlA<`t>k_8D4Eyaz({TU%trqvr z-s!cmN0#yeP{7iMhyy~b(wzG70nScI*tC<~GJ+-1K%zg8(x=+XcqStN>=lVw#@WKo0118dIFD%cdVVY$8jj3X22}|{9$zn`LA7HH@ zC3+=bFN&IMjov8b#&7PiHxC53d|URc0l6y}8gE}*gA2g} z5oy^Wy5@dERE2Kh90F-juPaJco>TWds&rA}culAkRMz~3EaAsn(&E@a=9O7{7@C3o z(To9m+6rVS0=~NaVI5VN_TsK9DBm9ZzAn^p>w2B%deRKHJPhWFa*c28)ztfpXUXm3 z94A_qhX8&SGY-3|tOWW8pJeLswnQ(T$Q~85;v4G}Sl&W6u-4ej<-2_*1&e**x78x? zLZ+Lh70~cVzHHL#Sy=5!U-_;-GF-nGm>mAA$04CGbt=qc0h*`BOfdojSXe(7JcOu* zv|ZV%D${MuBc^({d-3_|eEL~77(<I~8kx-O3L2guwyu zh~tJ1_3AW%I9-!vfFa7`@BkFbQ!?c<9k6p^MH zRX3W9L`3wO(Z7#9RQ4a}BIZq|i|3At3C$F_h35A1lh-t%*=Gphi+I%HH&))-Cen~9 zZM4k$>gKHZ8#m{l54M@OOB|&{vFR&0IAR}hPabqxnv(;k5=d&Zwbx6p!(qQn{_Zeh z;|_~a9S~E?D|S(x;{xZaOIq0#BlOoEh&6RQi&n8|j3Ta{o>@=E zTv`}Yvsv*)F2i*m!?MeKo-Xp#ez-kK!qgG7Z+F#82TmH<)U>3X$zeA9%!l%k!aFHQc1wkT`jUCpZZQJ?9IX^>saH3gZQ4G?ZnSs}%1S zDdX8TcVAm&^=9wV%<(@Jqlg>Ruo$vzd!B}9>BwCK^nJ-qxNVOx{EbwN5F8;Zudv^H zyg=GE5s}VX#LY7jvxs*Ylwgjdje6Kk=%=mDXJyt>f^6~|(FB9OdIyqy$jxrnUbEID z>cS(cYk4>>zAJL2*FHn2onjL!d3Z6X0HZkx8+H~ zX{qDT_0HTXpnglaqA`cvFcMs1{d~;VY}H$iW~+tAN-txXS(x78v*4Z2M2buIOqi@g-yHu ze5%zvm*Qv7EQF;FNHz;W>#dO+lO?_KaBKhJw%wDJ;-^5b&H063{>+56#i;B)bEx*# zZPA7u5S)~+O=0u5BsYI4UHU$E>Q88>8{Z%J4ABE7nDf3W7CdRcgNd&XFSSx~Tyx)k z>~>GT{Sd$|n(fwUVXxDJ#6~qF_km-*E-BOZedTk{=t0B@v>(9ZFCF6};6)f!Uh5@% za^J;+TF;2N)C*M59~H~}Pg}JI2V@?~y7!EIa6~&wDt$r@=?w>Xg*xA8<&@kRI!p~4r)HdJTb*r409H73&rEV@3%u@nesl>t?dFg2 zU*Z29uJJV>PfbV4W=!HLby@fM;x*&7BNwwaK3uaEo^13%h&BPg(h$dA5OKd>{2#s_ zXt}_1D#g(|k1f|R)OQKY!2#b3n*T^k3qMwm@qNWhPgjZM4vF*d2&MLD$%jEs_!_$B z?pckC`uDh-0I3JbHaJQ8q`u0aM8_${E(S;Zhz&!eA2D+h?(Q_>+?B%j%lqZ~PEObs z`~mOOb8HqBl%qu_Bbx<^fDS>%oF!4U7ixULYaJDZ`je02&u{j6Y$CmeKMj9}mcOLi zApZ`K*TP~mKfsro3il|?hCMB{Lua=87G__L6tHB^;HH`1RisL%4JM^sB#4_B?NTDm zCMI31PS8IUZZddt(Oz@Z0rCL*<6J#fnSv4^J^HyeWj$k?wl~a(!guv}0i3I|Zhf_E z{pDNy`F(*${ZaW|EX9Q}&F5;Ks~AIuiDx{*-1Q8&GG9f8i1khNlceLMYS1@7N~-zP z{$`*aJqyh+>t7=5ZyQRUWya&=^~yuAlQC^{pvi8{%gXW7$kX(+k%IJ=&NH3FSDEf& z(&X7xzZ_AX+^i)D@fkGf$h*B`09_*FuxZW4Gem_pD%=wnjg6Ljmq{ire>^b-sQx=~ zFi?c7X)g~i;?N$s0szLzG{DbM#yDKxXv=riP_cDWcW51s@6+A;RVd}Kf& zRjFbD|CjU#9-}R+lB73}6pVzULU$>ST~P!_vuft4mXCaII5UUz4XKX9Oy&c805gy$ zkGue9FoT9$`Mv`(?BjmfY!S~Gks9%3Rkyf@j$K8MHb>z5xlG%Ur;d7uc20;40!+Q> zVJU37bdcq8>mr1W{XY8<<$ArQ-#gTy@dxaH@n!41q20724}VTnBx6m6PVx}_Yx47l zmD?PW#pQ(tuACsdCr{w2Vn0jo*jU8L{^gfX_Nz*D&NKJ@tNy`+swor)&{HsIFowfY z$KIO+X8NTxTTk>F_MS7Qh#eanopkz|OGF)no2PwEi=jknDnJFW2^^4{F02wzLBoM^ ztOre>K114DImjIhm-n621O^%=P3OPY;3J;qfjj?MwL%m17F)AW^dD>I~l%e2RJ9-NKY&oY073%*p&F!wk( z{KCNox?H`sdmk`jss1C-@>_%YBN_JFQ>b5zNihGc1 zifo_0mnaB+{vvg8`ibwa{UJi&$(zT%syPh91i*kF5jPTi_v%%@1+sgO$41-lCi6b&{#v^c+8PHBP|1Rz1TVcqIt2s}Q`$B;#uxc!`O`pba zzm4rAsoDu%;CtCp)a60&Wy^i+L;NA<0d#NLOo7r=24LpR@p{i7U`vVX zkceGmTr=g_FF&fWfsL5O+|%DWVSG@6E||WYk4Ty{T1!iul{{!;)&iD$sCS$b0auJu z%q(c~1S%ejljU7yG*&=1O&?I8VjOi};X{|>?d5xC4-agmwKAXa$d?uZS)EaKXMKOqBnVLK zqWU$i>0U2Cb}$>66R9c zPGNPW&CL0bG_lr-rCFBAesj&T?jD{;xk>hNfW0EehB+AMrN@;Z{voGAyp|PMeY-q! zITW0}TZ8#WUbt!7IjvJqY@SbL^<`86MF^tP7wcFT$MS#-Y1(D;SL)O6we5#N{J(oL zvMh1M0HF`hIi{>t`+ar2JU?g4Quq+Zee)>m2`UB`oMV2Zy#7oD{^ReG^aQ4u#FwHI z4g#y@P@aw_8FYa;`pZ%+^2l2=n{^!Uz^vmhAvFDoZJAD(j<;zn?{ls}j_V$L4YKb) zogt!tY1Ez!oCczuyZ${}=#M}8eO>(aGsovzR|{>|EUXf|;i3NozU3k#gmj<&Yhybh zwd)s^Pq^>w=m7_txt+n}pw+!ZZlWX6bK)f8J?>U0H=NbI0moJ8&yb`oTh*ak06B@L zXoX)eU7*DcI>~00RZ;6z(bFM;c+HFd(dN3;GqVqmm4pKt=w_O=wK3La)A3kUfCp`( z*+&FD$=apBz8Z&O>WM7mdMaJQY12=@@D;RGE{XqK!LH^(0R~AV8E0dN@5=>HtuBKA z0 zp$76LUNHt_WT%E_5O6g5`Ec^v3ycs}Z|uugC9}uG*xIGsc1{Q9?%hAH&Y!`EUmqE? zSTE>E2CBG}W~O@t5Mr!XOmtw>58zC*Xr2#j3TQh%M<%O|LZoe*Wz5h0w&CsX3NR!Y zn8?t-ubOR`Qr9+m2-sdAhE<47F*73BaQJ1g-3<}KQvK20O`9*8sH{E1AjdaXF5RI6 zLb8PP!Tn%#i{NX$f<^1B9)v^4jRVuViuS12bg#VSU$K}=QU!=uCS;S>s-!o4a2XCS zb9265uK?!U#gkF_*ZfksiVd`nm{bo0r*98>dZ}Ew>XFPsuuMzS76UbfCHpGY2e|lR ztWa8hNe}<_4a;PwW#-+CzC`IF-|vQ9#}CF8;-b8_a56JPZ+83SSskM7Yyf_LKn6Zr zYvwbi5iM)1ar)>iG*lS!&)-ZA|5KHGHVxKsChXPYo{k_3SaL{nc;2II1DySqJ;nQ| zY|6>k=fhmlMPuqv(cGQymJ?m)>D2X3@z!=7t{|?$e^pm@f1V;c z{KlE;LgHts$zqC^$nL7!dO(Cx0aVYTqu1I4hTf1yV4?3aDHl$4LM??BEzfCOyhG7> z39Ufp@FY;CVRV8pif|AOp!01NMmY92Pd}C>c~wlv9p(7x00Ib+CV)Q$RX?G3%N&pV zi&qBrA0N->a`M=q3NOPBxTV6&?K#7=F5>eZM)4a@T8texv`GY+JdhHKC>2I-*!vi!1M_*XbsEU`2Rn@Cs zHSYy#N3-v>r|wts@wW>RSvK)8cB^RTMikfn3ouKYfss?Ff>80vH;9bb(QA=lhZKJ3 zbMqz#$ISbe{dGkT#0%S=2pGc1XMRY#|G9(sUml%09sfEt#_&BXd}|b>K0U{MvV=EyEl$Uzm=DqI6!EQ7t^@ye8R7f?9Ra7{;?*2YGECrwy$K@g4a`m92(ITs z^p^U`$7xRlz;!dcsT!8pb`c?zhXFs}96la5nYuLswAcebFOT0AuK)4L9Dkz5XS1Y8 zr;YiW@)TG|n!rO~Wk!)gDRZ~U29{4P4KP!?+siHw=s`k|L8r*?E9UHhuW?<)yieVGyTFyrEdSf{35HB4idGLwQmD%v*oW)QEfQy4lK>>4BTZN1hD|I&E0&nLT>Jjf{4m1H}<|v^wk{Vx?e_TSO%ep+Lzz}>lhjoZ2YDNAJOv)+eo(VmQQ?RZ9pFTL!<4v;ot+ceZ;3D4CLm0 zFcYQ*j>!sFp^{{g=)({ASCq>V)e260%WnK%7TwpgVSj>6#g&xL5E8lV!zxQsC4ei! zw|_o1QXur{;uJnZ8q<&UwjHOSf|m5u6b$rQMr|{b;{K>ih#w?TsLSW^E4TNLx-;C( zrK}u)b`15jN&oW(*>zVer$Ho%$F-uX$aly1V zQS23DUpa8Ui&rxT1igIw&;Id`r@6WJoW1^3H zE~M*TE;>6#*aX}`1cto+g;ad+hSd4Q?Hlh_1YoSv1Ije)9W+3*Uy_QNm}-Z`&w&EN zLhjS9?QOe3uY?ow$GRbCbGUUb?<~Z^`far}C%5{AD9)|h6B}K5B5j0cpj+{L>>YOr z0&_V7j%Y;$8bFFLiYP6g6}bNEO!bdHV1#2{Qb(~}0aY9y_O#5B*a67@fIcf#I_HjY zminScIWwDbXtf8v)3i-4gCQ!=`5*s<|K=BRlFl@yCihbOC zn$(Y0L*XpD`)7#C>|1nT;BQ7Or{NV7bNXT?zYwg3=d}iTsYGm->wYU~LY{XRktKo+B``(Ka7jUuCBMm?U!1ekOOtUJh zVaSH!98L*{?fMM4Dd-qdHuknXQs!Zc(ge3!t7&LPysjH$2XG08iIhctB4hXnC9^d{ zgd>w_^uY|5yMrXR`YeHHDj*ANI|F~2#TheiLSt}6_&tf0MWGlp8&=k0WW|8OFUm9G z%)F5grxxdk^))ir9TowzDzySQ^?A0&8`*QV7Xlt}uSk+XM&EVDb$`sVgrms%1A((a zmql7nxew9muY!kfCm)3X(rW?uV`)w3Qu+oE!7+)Q(ZqaM=$DX{{%2`@Gzj%$Qt_sk zOl0rhixvILZ7x~U$c{%M@Ix^*Ro9qc5o4J==>XP6<$yHuGS)F7<28|O$8%W(|2pY@ zt9Avx`x`j6wQaV()Mph9d0mldbZLKb~y?%7%77q7#%VVeeIUN9Ln> z4b{Gu=s()7Un!{H?(!5Pp2mV8d3F~ct8}=yn59wq8P>C;>YL=Qmh&onN$Dm|CA5QH z;VPFT3!BrM^n!PEHTS#W zak+T!yq~mNJ<)nlQH}ff)}7HR>?z#TgZpE^kypVQZ;;G zo%WH~M^~~2xk{X)t&Ne)*(cn(kEDuLptoQ)iV^I-b_z><^roPqt;OBBFR~UWG9jOU zhUd{3GsdUBm>C^m);yMrj|hFqt|5~09z}Lim8ba1wwcZXwNTDoSnS@qgx`JfEuiC|Y(<+g>{hZ>|JruVLsn$Dm}g`{26#uv6hIF~-gp?&0&0tCQn z9L8E+8rSeI$Ar4X)>lCi2a#c2N`lYh-YMeI`Ft>ixZSp`3TsBX=>d0Obms2IXm@GR z#u7F2uiI-cu>eR^BGZY$lhbf3@fM5kO;TSjMD-4_(Z(6!fc{~^%!$G_U|6OTII6rZ zL&6;}r4m$|#|8j(R1Nz1#)i%@N4^SuV*R4}z2u5mSk@Etc-6cJgI;y{+l>qxffPAa z*wdVDa=cfbR}ht?2sW?nBk7%e_~S-$D9~Ka2-cS8-Hoov5LECv4ty$CVt3G)e<;UU zrtX5z433Slv+0FdxeVtVI{Dbs9o{RODz}Am05pNI@fc z)X~S-i3)2%YdQY;TU4-J1uar@I>)ejpE2D^Fv2~T6V)FCAD=x{(M z<8Ko*en4s(c--yS3Ez$3)Rjz+0TySG;7p(rnb5ct@Wj8;p~f!=Np^Dw|xrdJ3BRnSfelAF(>sQXyz*w zxOmf5Vh2RphtfSK#86Ji|4oBLQq0g3n}HVX8z2e0v7__CCtd z#Uh@%af;$~e5PnN?j9bbWn8n*`7{0_Z;J>Z*7fYSQn}ZUr>Bu8jg*Gc>r$(RG19Y6(V*_*zsj~ z?Dt29m6-z|o1ohfpztV7B}s|Q8K=l172YaZ55Vs%iOqaN^kPrI?(TyfPl@Bm{ZAcU zeb8t-O>W<5fk48bb`A0A^5tzLc&!}n81eHYW|M^+;yXf^)C>>A6;_;divHSon1SU2 zqN(_t&AAK2DOLDxFgNUSe-3UU=xNC~wX0erQMuY}@Y56@c4(+InMVv;GDC3#Y;^8v z8Ay@Vt`L^K>j1o!M4l}CWF+tvjC5SvfakEZt<=8UAl%w$jMpSmwA4)aW9lWiuxJ8@ zTHsnKh_}lMM;>2TpM5@n6D(u=gfu6~97ZG%F|(ZSNzKncH_bPc=>W?U!i}AayU{O8 z=}kh#Ib)R-$6Kt5h?=t3e{%t|`NK(x9V8b`+ZU3jv9iem9b0%2iwr7u2)_O1vZ!FtBt{+q_FxEm~R|Aa%{HuK1 ziiOWn>aNgCbk@(@ig3_$b|pCBAyyS4?XO$h?S`@Mlv9Y-rz`XcVhT~{XI5#$N2Y&=U@k_K&~fQvHXPxnV!|mVxy{m zlRTL2h6L@Sq*al3w0JDZXKtfHKv_Xe`~H4%fAH`8;n|;G^Ity72|JgZm6$M4%>DXw zrQrlrLR{ZcPXi||-tQV)KM_>$Mafu_Wi`!rZ6wwe>$~9<>Iw|JW&_pi74nSZ#!3*Uf3kn`+WLs>ie)k!6~nNVqX^e z^D3N;6Hm^6WoVBJNe%Qoq2)M;aKV>z*H%}YQiF3J@)6o=zZ!2L10&CRVl5U@;`#Ns z)m?9*GfCs_J4pQuS4389hg|JkJro7^c@OT<(n>K4VzA8>2sXG5%tss z&W1t%X+(y%&bH2@<^WQOLFpIhwcs*W@K))%1c&kWRbi+QQuZ@f3NycDBgFSJ6tVf_ z;;BGO!7O|${!NGT36Hf(V7!j<6cTS8ol#Dv=>RtM;!nfod@o@>f8REI z;?QYvTLBzrzXMr%=dOC^p#7bC!>uZ>=m}{(+#o>xj~P+TxM#}V5@GX$#feJ0mQ5ci^9Jh|vXUVX zG&4s6%|bnJ!23tF_}4n^@mqr6?>B#v2pO6^*;8AO#X(zC0KdxK?Jb%-0j>tepOM+W z0xf}YKnAlPiT=bL{kNYXrKr7q9UUiGn&O0t*p#JO0aqrxra=KJ5Qr8rVNz(g<)X}i z*>^`(*}8*rovr(^hHnGl=Rf6|V+|gpU2;e&d@==_Q6%^`GU5NQw6n`$MVb-@33^~G zWP(HyG-9ns0*l(~W_dFg?L)$hM6f>%FLZWTT-rdg}7fRh7 z_i^~$T1>6Fgdw$sK=sq&t<_;45BDmcMOV>V2&)>annJFZHDMe>4D33LT_DHcW=Yjh z2@1qqf7K&jZK(?veMo%>Xl{8l?ZI(_$_$>4ZsEHGmhj>}l{G{Luf?_NoeX>oXR#I~ zmu<&r2+V`lc+!8z!BydwuUQf^IaDmBkspdVZze~ix+aKMsV9v*<<=bPxSWrwV?R`; zAC`l+Pyl0H)Z&K+5T8TP$pQ<%A6}<0(t2zh)F#C%@3y-`JW0sL1#J0)TJ%Y@6WOUK zvgt0=j*N^pD9p8@mr2KFT!KIl5CAA=2>u_`fp2BR;|C|lUoP?wRUxhzK6CXto=(Sw zktF?)my|^y4wCsLUM*e_L-W)0=oj(v=&sm3on108rpy=SCl~> zbQmgYZQn2&==bkvp|ucqI?-^Hu!T`l!C;YB*Of-s-N5R0vQx%P!(}gqnX#xR-sPs} z+@$6_qKab7#(qzOesX_Pg>|55Z?U<-2Im&>vQStJDgaBFt6x&hTb@!tjDF`pP&=py z087745^_pOQsDbn(BpZVn8kXQztEtdoRXnhX!y5tDIA1dk}}7}yfm7Zvz%R7{1T&c zG-QVkq<6&?<}&lnoVYAQP4D@tgW}vmY&_Z+P1-i)b6kW`T#}EZ%I&1nIcg!?XVu5h zmS+{FG%tWq9>YS2m)P}H__ccM!MLfVwYd-F>VkOq)X+`#LD;YN$UZx&>RT6rO z-a_-<9Y@315bgH?{iN8t#@%k1UqzJ9i!>%HUG3Crg~sI@XvZRL3VXT~3MH}@nXhk! zL&r)U9q|oC^Gvp;qYBepZhy}WFI8B@)6?AY!k0}8o9|DyXrg7KzaVNn-_ab^LAu01 z)z)`Z=fUsw4i>@J8-yFcl1ePm5QPkzbOX9Kw7CCIPS81mVaKt3Jt5a#ourZTm;v0< z;tc#e2$esp77DEg>oKRqmD>BkWfGS6uhk?EtDHdelmR&#hBBXi+8dGnq158^ZE~15 z#ULjJjlb-39DzmUZyEDg*@+G9w3(X8nFNRlr9&ybgg-0Lib6&J@2 zpvSNF_lyIBlIx+04a|u`#u{QJN)OJs`4=74^yGUf|DT#8{+_4yeZ_n$t&!W;=4ZO; z9i-W57yUnLuw9! z!%l>JY=2ON80Q^&7S@t0L+RPtdu|OLI{(d1b&74NpY&C4F@MHcX+2Le`2eJPvz}MR{#@ zE;qB-3E4_@ymcu%>`);MZGC4`n_??m-Kb@4&v>(@JNW^gxz&=G2+D!-5u;&~O0+EJ zX9$s+M;L!*IilD@8z>?oGox!0S9wYEVFUPjbzEjcr7J|FY1~z5mXUaQU|O|>u?WJI@=5JrL3-3eex%yLbzJlHG@v1~ z*i>h%J4yJ5jsX`(h&bdcT?1{f%$#@4rNqC6_sS=JMM~LbPdjuP?5YO{sC!MbiT; z8WLr2SL})y6i?|X%2ZG7mSRvf`~y5t{{00^Dq<^ZxwcU0Agj}+8;AlSZFj?!kzus_ z*Gt&UT8u25n=$~WxfVD@jaN^!9X^@}Y)Mi}O8lkBsU)eY5Vh7Zmu7>%=Es71!$d&@p5q9)c+GgRuDY->I7n9us$oWp=YNHh~(MnuHptIU`Y zP=7;P7edduOaPDw0KXI8fLF9BG3t|9n-m~k)tdA?W^jw2G+_YKD#Pa8GG=hz{Pj!* zdNFk@jMb|=KE=_m_BlJ^zSA$H6a7N76s9!+tTN6!*AUbL=@rX8ne~K(-0dU_WNdC1 zEK{KPbaZ#k*`j5e-HmWz z=GO~Z+4q7Ro4bqbMe~8{CI6r0I6p7!Z;$dU=wvfKT#)FGFvkXksUc+Q&dxclh383b zz$fiS7SHYQt0|cLM)++Y20h^?-0OQG{A>Q&w-Wh{93adK)nrvMS=(Vgb6&)!Z4!*z z%N3qQw_hhsrb{D;j=A$P&+_~TVaegv)?g~1rZXN4CU440)}CMj+YvwQG!0O5QQ!pl z?`m6!`n40c@1E=D5_d%UOrd1th6-5?7f)-P*~)Vp6zx7BYyviA?-Vr*B<|1+R??&3 zq$i?(B8dO?LjAiZ3n+BvCBUv|;Qc%_V@Hy%lwe0_vxhWU@((e{*K3u-8;j35 zeQo59eM?(|v`88CCOw?0UCw2=(+Tut5BYn+C@1dnOGN`?oBz|;VY=rJjqD>4V9zs37tvoPLO?=MSMR(t6rpgK6Gc>qrks2i|_b884qy1nMXk<1xTT z^T5*5OqH~MyQsH4TuE`Y`@E^gokK!V;#)jJ%Ew8;3W5X7M*};0yW(x}0vfVBt2$Gc zW{r;lgDv06_u^U&hw~!IUJh94blsu5dGndM1g+crzMu(WF;9H;xK!EUsq)}Nh5ie` zEqk8cXAo5^{!H-7>+vN^&MgmR9$?lI?Qm(!mhB|beF^?0u}23^ldQK}ZfAfPsE5R9 zG8f3uYTUhnL#LKkPHzLrN8@K#b5;my`diHVc#wE_zO>;p>hG=W5BE$FQT==JsZFo5 zYZ`frcaresL|ZG0VCE!Y5j|dG&AwO%l1pL*j)RdXs!Ix`Vt}yRT+W@BPj((qcc2p9 zQhTSp@5wyHGlHr_TDz02iG#!SR$tv$`wOL+g5H3l;gIpWWYqP99(7Nsct(mFlZ=C< z9#I^H8;GS?swL#r{HB8B61ut8*U+P zv{#>y#6X|fMaePcrh4~rlOfL;JsalRc?pI*ZJK1^b&W5((l?v%%-SfKrxS5RA4*IOfPb2i6U4{r2cF#9mK**wGuj$Kzpo(HLsR`y+yijuQbbM&^{TbVq4zZn6C5)j zC#IbcMMT;;3yXAladKv@vxA}+C z{*L;SBiFuLU7@>nC>??jLp{BT)}!QY*5n5dYE3g6Rb3neMUxiY;YsX$!73DbwP)_m zPM@tHhR5dNbu2PYs!dnDH+G+9qrdT*W6BURX{u9#w~DTc!!S$zd4V9E7{6{7p%NIgNLzVcx*SNeMEc`oB$4JIYME?Tci3Y|Ezd$I{^%sX_IaO&-j>34bTCBgKMH`=fVtA3+(tRz|7tM8k_BZ zAEYp=&P?^LZ<8LR+ycjLoo~0o&p#s7XjrdY5IRX;v~PbL`iEGbX{~(kx?-kJ$$9y- zNte;p!z$wd1RkE64+tRw@9Fz4^FxCpmy_v-AjWK5^xzCYhMH6K5Gx$AAfd)n_B1R0 zb{5NP2Ya@mypmp7l=qcc@t%gQLh76F!Uy@Wl2Wr0(LTS!;O$u?Y*fXmFvc&}B@be_Mdhb{<>`q)}(tMSLI z{NHs1fA8Nioofg}i{F%zu`iD)_hTg!fV80~AC*=NQL!iuC7)q?;GejFXg23vMfUWX zt-vnr*QM=jI#P_&Rb`5W7lpng^E{Ae0O6BVq{}yXR`H?iIxAiSZS_98p=xw_s5^oE zx@s-2PwQ07K0a{%(~k!Rp8XU-OSdInZwwl-orBhkjhX>lN`}6hVssLtqSwO}g#*tn zD!+HJwb8(e60oFYebBta7E`6Z5)QH#??03gz#F=6uthL#l-V~83kNeE-jAdc8`<8+ zehNf21T!9$3n-f}A;W&}1a%(6D8kbm%7IKHV7_XoYGcCgSLAC|YN~>5ru+Yx`|fzE z+yDP#MG6TKqL7^^GduIh$)3rK?5)Tqd(U*pb`HlDp{zJ4k{uy4Gn;JsU8nlocingQ z`2N1%@8kFTtH=8|oYVV#U9amkoM`XP&oWv3%>kdBE=XDseQc) z?2Xm%PCsMQIe4oq4Rs()qqid6JJPFeBDAxBtALUJ_hrV+gYBTGAaaRhZfZN5abjX` zAF$&ro`!^eA`^eZLtr0V9>Ljj3&3yp>!U=t$!-Z7$E!Yni37D_XXB@90L+00mJJyU zNdq^4JPi8aa{8W-iMkR@^e2QLBHZAVwb-KvCtl53MnydvBL-qtWaJ;9zJvk0;W}_A zP2)$b)!x=bW`0e-yEb>@xYUa4C6-R?oPtvB>;U)4-fq3sMcH(9?@Q={i`WaJC&iJe zjDT&~(7Vm{qip(Jv^h%gQ?T-_4oPF=QZUNprib>w55V+KJ>TTXz6_7w1Qr?$$k`FCoe@MI|^)d^xR zZ2FpPM_Ql8==${)^Hb__FZk)QiN7vgCfNauT)}=>D%G$*&FX)zS$+WUnoUMv!LrQ<*D4 z!HKud*@|$wk0nDw^UjCfZ$cy@0@-rTm?1bsanEN>F2u*=!-wMW`F*6Ne(j=z^7p|4+!1CP{0xS*Pb+SRNHgx^H#0Pd?7nz z-Vk@D2@6ox$G6!PRort>3}@? zdmCYxU@hfa)i}D?R^Vi@x%$=gR=O7t=FmKqld1Hq!wtV|h(5o1+9x!ll~Bir9FJOC z+u`}W>fiBA-{W#KuSzGG6zlVf<~j^i(h5Ieb?-g5TSxP@tWxmGZq(ZY`>6>2C#C;U zZusSi^xt?-YbkZQ!9X);Z#*%5vgRGHl53u@OKJYog^%ddbZ$vn^*s>mzLz;PGNniJ{bD`SRFW)?T$<=$(1 zw9m;o=DPBE!--E%w#@|zcXNi5o!yDCYlj2ercMIOJ(sfG1dLi)WqkW38GW=4yv zDr+KDfF3v%AkM&K&KM5KH-xNW*f=brUrS%#;CF?1jBkfxw!8p~ZUknYgs2hY379Aj z*6@yxK4WKF8#KGS-bzLx=>vc5(<>N~KMOohg;)%*Cbl%4=)A4WKN0+AF7&xK4WCHD3&=TtkuQpvM$NgV)4e+*#E z-icuMb+@Hi%R?&54y%n|907k;3jcXS{Q2r{fsb+A@{Enyl%>XyodqtjWgvX7X|Zsm zM7W#VV3V6jN9`k&&h+lJui8X(JGQ)gnLiS3kdUu={1Yw(k3^fdqC9@Xsmr??4!ZC- z<}VP=qzXf#x@3!85TPQ1+Ep%|Zr6Ts=llq%EqcdQ4--U9luOiRm^N6q^|d(Gs83+} zMZc8fwLgDK!{_`q#xO{IP*liUEINs4E3ZUce$mYW)okkbU@%Ea_l55gLj*uPL~7Qs zLx2YO$gtJiP$N?nDKLV$?kShM)q4fv76ANz zn>^=NL)zb4A$@6Yj`gjk?d*Enaj}QyfM(z?J2HqG{kWOcc?RkdnxG!OgI3Oy)On}b zgf<+FH#Y~3$()Xq_p#@9Bivl4U~eXFuujQGOZ&AwE7`&VjzK?zZ2!Ehz|D;9+gwwg zp;YB$R#o3W-sihbC-f{Cn~2@@gV66^^*`l5NQ9sT%{ZB@AyQe5O$NT#3_cx+RLvp! z1bYuf+C`4@dM4?4n#3cI@g=AJ1sVlgZiuoCSGa`W$ztb$h1qi=6#K{liA z=2}`ab5Fw_cN%*7Cq}|Eu9lVZbA%{II|$0Q50+WtfBNiXPu$iQ^DO?95|R3Kb1H7p z;3ImRHfarv@t4cLZ`@-)CCVzKN8U(VyC?37=~|M(GNaBkea?(m^xtM$u`?7I@z?Ng zd@2_qjchNL1t#F{aQ!z)J7pd`uz1PA`VlKugYoDhX#42b^v8$fxB1UAVoc;ElIfZ* zP>XFWDl5$nKkC(B$IeKRqC|_1h>@L68}pvT-`?oLvs5CCf%?hNrt#>uWa?u;H284% z>N(!Szo2h|@o<6Vwd=17qD&>%#Kg5Yar>d6(~?j+dU=XhAGV$pkEDJ~3j!@H!uSO8 zWzW~7Q7?-RNI;A8;M;`ma?#aLcZ>O`zFVIU>QW61f#T2#ISX(YX*3a=e9}X@y1HL~ zweuwIK;&Q!tA@rZX z!R{Pi?e(f|)&7BZ;Yy^peZ602tnS2gk~L`hqySTezsLrDxtK98{v~>`L`lTCo41#S zJuGe?AAn5XA(F;(JoG9|T`y3PQtx9OPOXX5w6x`tg%t4erM16qbl`?i5}?iHd_>-p z1sCE_QLA0hR5m#u=6bKPal|&Im_p6C;k2;DFj%{1FGgOx%!r4B9^L|tMI{Zb_E4ep z#%1-x>PzW#=Yi4akoDsRwIx0g=Mqj*5*NIn)*+?dHd@PZ82}dh%O$G^3(Ot_35H!7 zc{*}i_eN!@i@5#FBubvVlb_{waOXPJgCyVnCxPki601id<+4NBaXv^7;SERA{3@ znZOv`>ygJVK&cHRT*paa6fjm+2Lg`%n*4k=3hp1x)zKTYXs|Da1}T%e%Z5@ zDSW7|3O!CalI?k~cVjkR1t#QZ!c4_zH)33`<#6EUqM-)hV856y;+!gqB0*ezmOYn+ z{^mFTc(QR}jc0?ZJRGY}7STWw)w(f_%*?}GDkw7@G89mGA#;9FlF49d3izQb$;csF zIO3`CgI}v>M{ePgoOZ*oM};~11)niOY2<>X%C9^r2;5?_@H!a5DXW3fShQn5lnQK7 zw>(-C>+!7DV!ziPi2dZTMqieX;P7&+KXB!KE*ilVH|fUUxEiVlNZyP`*}d3u9L7_NN^l7!c~b0u z^04DhG|mWd!%>~c;CwNyqIzIM34;EkgjkpSVND;fGjBTZd%}lI)b4!QQ9WO1QFJ-L z_|{p50uy`5lj(EbVh?2Olx`a$Gh0e_L_*cbz^qQPdaa({@SP7sRu_UTQ26ylo`h@x zvy+$Y3~AqocE#K@c-ttjCnJ()J8RQA-PWvc(ZiNeh}GaN*D{63$0OnKjwcAIhZ(Pn21VE(Z8>bGbAyaX(gL{i`qAGNPg7m2$k$P zdsCM~t^2lZ3(7@9!9}dM>hMGLBAz?h?eGg`0)>xf#M%cvn^NJM&V7UPY^=S`DyYHJ zu!<63mVvOc#}gROK%Abua{qBe@pzVGM`~zpE49ZTbG{#Po1bII_lFU2AyPQ0i*2n0 z*wNnyPo(A-)yWU2BM>dEWMn_%H%Hb1X<*b7#qI5-AwL6KjwsVKQ6%!!hZ%*zy=1?`!ztd(*$ol>^}5IlMGC>`%=L% z2UPPpT6JXthI%JQ_mORu1m>b&8(sYQmcd+`h1Dn4Tl{9FjFyfalyC#dgMv*89`zok z7{2BL&vaiChp#M}zZ53BF`c%4HHv7@a|GyUS*QS|?mzW8vp>6TtUcFe>Q_Hg>C5m1 z(gk9(AmF=xMYH8HM4YJ^AQE6z74y%SnW>=axC^I3hQAa%88JflphkLtH8Yax9cy#E zHXsVX3*YHKsFh!+M&+*scnC=yR8_q0nc1$M@;Bq{Mo-*SHm*3;7pka(Ydyf;u#fn# zzh2s{d5nMH@~2~zGmE1(?)oib-U5hPRBA%PfXAIvGB1yfN2(U~#RhVPgV*5|0>anHb5|E6TwhtU>*Wb9c zGTosf%rVGfnXpR6SDmF#zW*1g<`0Ychv)&~%HLi6LSC@yDlT4<52TuRqmc&;9f|S1vc4Qs2Ce8)qBxFVyh&_LMgz|-9 znzOeCebPEBFHyiW8r~VZ(68``HF(?+FR|*B*2;#jrWdCje#&DUDh(s4`P3;-QN{dJ z%70?*+`d3%MUi)uDBm3U$6Rt9Yy6TEK%r!Eoyo*GaE!+H+XsYCl+w6mBoC&??K*aA z#J~h2FJFWSArK+0@aus_R%2B-tv7WU@~;A+h{ROf0GVe#ygS4g_hA5@{X<5FLz>6y zJbFKJ`rvK-BcLe4?)|Tj3_l#Ezwd?Y3LU{Z)_Ar8?k8{Mj6Ktyu1xu3VFYkR3n0{3 zVB7p|W%Kic%*!W36H#;8M{FoqhwUphI2i(I)&lY>PKkq-^B%jA+0W8FAUjTXHZ^_b zkuDLW*6CP_U7!OUrV*t4j_Z9EZfeUr#yLhnnvup)jE1WCXZ^RY2 z&WT}tJ|!)W-&RE3+vA!TPOaK^NUhd~taJmM zAH#)a{k>9_;F(x*S5hA=L?_$t^Ai8;NGhFk*U0hc`0&&So zF5Ld(p?21toDVN?9{act6}P7yg%_bTrQfV^yvjKa8Qh`2OM|rV%ehIaSJCYq6CV&G zXO)U}oT9cfNC7BWrmbzXXP{S7Eq1Ao9ZqyYJxp(!6QrG471|aC`s^)1bdl65M z!etF_y(5e(-G78`YX)tPij{0hWc|dBFJ&)LN_T$k`2&p7l}TYi0lawEmhO59l>0d$)Cc=O0*l^uU+l2ahWlc@or>>#5Gl7vtYzgH7)MUtpf{|vD}DrwXh2^c zk5TQQG~%A_yUJOw?P;^h03IV7E}9U2QnpJp*xh4IEo1j*gq(umxvNPzN;H3Doc%*^ z`8n{Ex~;j@!45y!Rz?Al=wHpM!OBx3CfXBPn2&OaPs@$K-1)4C2mT{1`KPvR!o|Yq zTo(%+{#rvLNI6?X{UYf+4&9Q=M7U3@bsn|#oyZS$*D zdSU}pfo(U{P}VFz9&!ox+!9O=R6z6(@SlRy>MtQRMY&?k;6@uKkDblDWGA?;$`vuZk6e%Qy?CRGSuP@WHsc%!l!e@-Whve=;&~V z2{p^zxCsg5yX6k4A8XUdLl|4G4W?7)TuT&(F6|51Qm6q~?=SlLeMud}UaEp}E2ZN0 zEL&?p+yOwaJ%$8xYPZ?rHkarteW`trbX|p&RgjZ%?szH& z%I&jLm9h*;UsPS5`8B3e} zOK1K*&x6ko%rF-0FyrOVpO5?Zrfyjftl|vs?F%^s^1g2+RLK2lX0uOD8W5U-&-5k&qhPhY+z9L(9|#2Bhqh4vxeJs$+lK<^BBC+(g49GJ zBpthf1n92jWl93tsB#g?Ne{*5ydHMQqPClA{V&N+ifh zZqSPZ#%y_4miR@*6VAPhAnC1!`vabUh|)qthet#PamLSlI42;9Kun7Er`SbtjL2yFOd z1L}0mVKR^vhk5C;!}HG;ehs>L&v2$L9QvmQ7eo10V$chGd3l2*4pfyhF0%*_bXivw zMQ`p(Ce#)|XJ#r9DLt%{X9BL1`1u|PDU{26cTL8u33PONX;0%Ui0^a+fd;~)wj0%z z2hude+M62quwRmjvfr`R^My$&xZ60&m2KlZnt-Li40&kTX6^6-`_W>_6Mnq8&7Pxh=S{%f{v)Y zrl#S_$4P<2)1L1yIf~&w3V9EEO=HD7xasH>M5M+Wk>2Ga#(c2pJWz47&6k2ViRsgA zzzGM6!v(wyp#>`gPFA*r(H zfLUI%c*`4k@%Sl1(ZrG&)aG#TBy$qs1BW^{UJW|RHSw>yG{)5v@z|l4dd{ua70p&- zPF3`PPpH!$IgEV?`MU*{xxGC;AvY)2>Gp$wC5W0Fwd!M&VBDC-xHZtXQJH2NdPTr6 z1(uZus6_`yC`j9h*%V)di<^_2@^EwLhQ+iz7m6d{UWT0_lPHe#1)&K{zD>E1v;wE|2j>faLAq4%+()=E)kkgQ-LA z!gP8`NK(dimBAw-LX_as9r}Fi{OV|8z!Xj~jNHVc%gB#y8a$mi7*dt%COSjnCR% zS~HXR`I)sFNsC#V&M2R)5pUDo=bsS!FoF!?k1kW_6v)0HOH)uVPT#U1s=rXohg}f@(snlS{a%$4dV+ziCvNi; zbIjGPpg0&^FtxKv{sOrxz*mK23ShB^#zje=*^{j9MvIr9b%^fWtV11P3dWN*1KsezT~CwtYFYV-qcV&`FEQ)J*E!hh5yJVvInR7z1v+3&8%}=TD@9jNMw+ zDO|nith61~`BzOPkS+YyJupOz;8h%FQ_PJ4!UmUo=o)x|aKN8iZqZ$mC#yrvE&Bv7 z7LZgntxq9Md5`h#G8?4dtGSgWzQ9A@+XlNOU*P>3H3iHDw5JA%vvxLmb$cFIjWI@D z9?aLIr=aidn7Gx7sC{~c%wftqibbn*r)%4!^!0mgH5{%3?i<{Puc8JHYk-ZV z6+$S+mxxyO@a4eP#-Qd}fl6}{BYkEhIsSX3K!7`So5`CDM&LcSyiYg{YHp^&R~t^l*zYE^mQ(~S%_1rh zPi1_J9KJxR6Td)0PJ0JbFKI0CP7_hk(tpgUV5Kx!iZqhP#WB?^9LfODnr4I>~4_x&;T4G)#9@9tJAh6_yumK1}V*PaW3Zx6lKJ z8vtGdxKROiY6^6QpiiKj^@zV7Tx+P4SG3_N9IK47^2D{m5QqZK-~}|kJSarp`{1;D z4-Dh7)k+|&z>}&0EcxH%iSi;N6ElNIh{9>NAs>-MCYs8Oz~WDg><|Ot zcs;=c@r^tl%Bs*|9IT9MmP-AtCIkq{77Me;*z>VhtL3Xot3)hQ|GdmHv@|afarD)_ zurXRk*965d^E0tBi>Z4iw5JI7$oi41uz^t~4X`1pv zQ=eaEPd7l5ZuxHcclhfvz|n)L6wB&3Y6Oc-OIT}k;zc#16pAu86lz#bD<7BL;f6%z z9=(0QPegW{Y_i|kTGpsERldAU z{Gj%{`Z2*kZhjw&`A$c#UJ}z9tl1LOq{T7;10q-oLWts}FF$ZYRTUikO-BQFqZxJ< zevdG#TD-vnNYe2DVP$c$7ASe8AMtS15aYxis7JB$n0f=4k4xS#8?LRTo0sc6!%>P06-XT_}PpzS-G*|hP6wpr86`66fYmqXK%;!WXRde zMD^P~s3=1y8{5D8aH&jvU;aaD_Y%-i2i7>h8$@AB1MeST!|+n}vnT~6#R=1gvDsS! ztKv$WL_n(OeW|s6EJHte)`#VZ@-2hboeg^;P5GkhLFDL$2lIZi62gpY_(R_H@Mw;~ zC*>>9pzf~1ye<+8(as(vUPa&l_9FRImOu0kVnw0f##Em*dFsV$dPG+@_-h3&*8wg5&K*jhp$KwPsHqfs~VTLT{Cjd@5ibYhH1 zlIQN2v}9iOn%K*)3Tb5%D%4%VI|Xv)RAlaQ>Y8K0i;2(JoHZqh&&P@T=jRlV8q0 zkh>(xCqGxnbXos?qms z2PX39AMrb&e6f>Csgu^=!6kcFtB#E<4MKQ(4tMQ&r__PdRsrjo9e|lm<|x&*JhqDD$Vq&qB!L{92+2bIb`lsrDt* zNjAl=$9wsc{DNFGi#5M5MS`;%l^)I_4*2W1Ca^d`!i2!_ZljLcJ7!iipG*e^@j(Fd z2?dsDKis!9-_~&p z=4!fd+IoeN#K?ON1L){mu;%iMsgyc}>$)xORy_>`DtJKm^ZC!~^XIEcc}T2{4ItZO zzu`%_SJ2n#ofsS)Hr|R(3!;4wTjE7PSP3&5%pqWI=LkYnb6BquQ&&Ga)jT*>ZP*(q zGZJPLGYi}dvQc-GS~Klkq21J+NnUfyJ!evwZh!aWrAk#VTw)zjm+P|K3fY{>l+<(b zTlAzY^Fu$RGI5j{cU25-WUpB{Oyb*n)|8-PT5`H3Pib8*iZDBzu1ntub5a5RU@1bV zitnkL_s^JX6x{`qG&#=O?QHb7i^RpOHG^XmtE{V@XyBSXjv*(?31*r{+K!a^So+E5 zeF`|sR|tnHmF>$-AByz#X908*^v1F1maNHR_1<2ZW`#h#^S3iVE*3$6H{&89nhj2R z9$0adGKY=7Gjb56G~+xynTM+Kn7OQyBPtk9f0nr3zLJkrKh~)b2sv%eI>RaLb^3F-zA;&pg3y7Q-F0syOVH| zewtau?!?GpQ)1z1JPE-i;r;T`*O$xMB=$Q6C~j-4z+3Kqfn2;<>OZ;Uv`uUY0sTXG z97!&Px48bq$Ki4tYOJZv4e56clNMt?xi?+upBnUJq-v*h$RNC2TsG6R0UV7{>UdJS zZw$!j=U6XDA-1j!PaOIu`|$TW2(vYjG^S@Tt18A;-WNUM-vYxEZ32uum!3Q>fL3$? zl1v_-7^#*V59;NZ&1cq|L34F!S|e`ucWwBktqZ!Q)-p~_%6EyQY3PSLAoeHnhgeUkWb$eBAwST%qvH&PnNAx`ypRVhpS!!#Oa?4-0Ab0CAqMoT;bW z68)n~=a*0~X*eErO!bXT=e;u&QU0_IoPCKcnQNJ}Zaik|8bYx#iV0BCKizS1(Ct^9 zY_-pGSD>87--@&(veQshR0vgidWC+6>p^9Jna+IYU4vYpx%7Ir`RL+)D^SB@Hh-~# z^9ke@rJ@=PC(1)US7Pv~kvnxXRKf_U&%lW75`_*0p<-(w5hLdp2n4w=RLfVW5w_cJ zBOC7=K6a)TNU}X(s9;*87)wa91df{W(ct_dMy}Vd&6EH@MVX9`s_ll=Ii&5;294*~ za7Tv~OjPcqa(W~M0lp8!G5({>UwHxcJ$ZA2p%u^APnzra9`C^VbO3)5+#!fOJ@qo5 zsWPPRG#0(Q$QGXkMS#PbOWErO-ChF%^kpNP)SJC=F9^a~1n9F~apkfUGBgdPpFu0~?hE@fpG#L7PO|F zI#hl^HZqda!=<`%x|IxuDtl(!GzpQvy)p4IZk#BNM_ig$(AEG7+~XV&?Gt%2O(86H;$&HgX0muElwZ6={d? zDccuO#2P1s(=%RVe#dlfpzGFc(KK(7^O~iCGVB+mXywCg)gemdzE*3`?_uU@KS%E< zHKlXvL`tkx_Htbw1bZYHqb?re3!-8qoR^$9FHQST0ZNBvO$`+B(pPEFl)9@sTXVY* zparHdO&Eq0K*js3ZoaA-Aww}uUcoZu2fDXgM>vlJ39W758tcE&C;#dfzt09#olY0R zQBDt)Ewy!JS5+p(4YD3#^YFgE>Vtf4eme1q#nfUV<<@~$on{fPmRTmQ@Yz0kBYyGw ze76e5$5g&0yj557-4SSa0!*b0h24y(<5l*;Xh-EU)ZAIp#Ghk00Ol9pZc2e2gLJBO zHhToD15;{t9vU`QE{?hn?ZfK!9ru7&!jqd6Qo&d%q=T)>^EpS%Lv-fU?;(8`i;5cW zoH9;5kbZB9qq2Eax#tG-3~wh}$VQg2I-mFBB3P9BW>{_T2k3eTU@d~(sx-ZBvKuPf z+a5i?dML+fQI0XcVCSt+@3Ojz@-*3T>Yoqw8SG%&w&jM!x+-7IiDZ%& zUq7sv@m$(Lb{>Hk0hiZCr;&b0u{UER%!)bIWb%YI2C}&YPbQ`a>K$%>Xfb7#)|uK; z0Lgo)ArlXTIvgvW{}RNM-ZxRscYkB**b#r}eoM_Dk1n^x<5kNc<|`9dPvI{Mn5^Pg zj%}~^3R_0Is*i}Dp}69aqnm`(UvQ^!7ti{tQ7($Xd4YVy`dBumPd4vBT_dXodpK-4 z*OS^bH$BPU&wNi)dzIQzO6%&)!)5gF@(iLD@gzM5iNG_AP^Q~DbFixeFUh0*`~&^# zf8*@~o9ILdjGJWoEaVfRWG54xn$m?4H2AikeOFUhzC=7qXe$JJwLDXEg=4b09jf$~J+@#(j2uvTrIa-VO531L58O}Pn=j8`3iR!lKB zjH!5DTAB`qr;GBn6WGDg3p`X<+S-ugXR3P*+Baq+UloQs`biuh@t?#D~+Hm_*3q#ErWuc zv><>B1FRZQ%z zEkg52iv?Xv%{+z2kPXVkRP=$ENI`Fm9%{i$HRbK8*H-3Px4rL*>cbV>5_AG{jP9&w z1p75S@v3V%I#)iurRMFzaWNZ_dp%B;igXh1C~GX@jap#R>dYe&^w@E;OJ`|fXO)GA zA5HM7_=c+fME?Fh#LT@Eq#`nzjjl5ksIBpQw&Z1NSp}p;zWVI^UOW9z0ED9uCP}#B zFF2SUdP2rFXq{=Y5;$_+6_ z_&z&3Y+*9a3tUYz^!Z*o&YUX=xi3tbe@39b@;zql7aNiAQji&`l{!#_#*MZ%!3C%E zss1AjaS^UiW1BI7G$9f(Lq~pG-)F0>cwF}3)Q!fs#p46-KwG&JW(PBC%x70DGwN^M zEVc4pBeCO^qh1vu5(5zA8z%b^uxov%*+OVuY}ZHB(N{hq@5x)BDw!W&pU{4P$qGVH z+25hDib&y+Im5wEbC#LI4)V#^207c2BHb^0j7^f0N9nAeAr*H;6x&Vd9(NK8?zWAG zZP1A2Zu<9oN27X^%*lhs@gq4x27eYuj#cEi&}teQoof*v1}K`@qpS-a%kTGy)aFh{G_~GMF((ES{RAD zO?#!zd%GyFa8ZJCW2NI&q4ZjjgQ2VQU8mwC?{`e8mR1ie-U=EA$t$1Vfrw+eH=ytH z^F#l;tE5sCBNIbi8Z>>|ckR5TT>n@i#dX2n2qM*YsyPZ?t4oWFO)D4xBg}PLI=plu zes(i1nci<_y$OLT3ca6$2#tMWF?ohiY-3Uhy^birgZ@wJBmHW#{jvoAUwJVSdWQ8) zta-kZw@)8P9OR>B1e;YS$$gEqUlX=g)6<(zRh?u@xyf4?)-fnDZ2RnmyTJt5ip_i% zIk&FL7TeJfKPZ=ecSl|3I918H0#5usp@k2i_5IadR^t}Zb>%!I?rA=p8^iS&AGKqd z(};&g`{WT5Ax4uVfvN3ImczO?+uZUa&stkXy*X5KZL^`*i(AR?J`+CSzd;}YIEm)^t&(Z|Doep`Mc)l_GPe z(TvQf>lJcaLR`LUqoszYpd#L0>$*{r-ukx#mT!eB&d2C4ZJ(3X;(=U+9 zWYkNFM<)X-^34hh!)3MEeFzw*Y}}^GYMAfzen%`Tb^5i%@!h0k3mIIff39>{l<)dA z4yydtaT-&kj?HAD)sgqpRLn?R>dXa|&@T|~{Gc|C>xuPVu8W~vv1ai#IYQcZLWQEU z+pCrAWk7X`a4S1J!N2F(RapT&!hZxuz!M|`rGl27jh7GKN4(zo2BN$P>bn{bHyhZs zx%Tsr17hTk<7Bc1n~;LzFE|HruFdmS^A7YM@U7?##l~_|^^6&kHQ(n@EDGq6fVirD zwp39p<^4470a534yNNCn;md!$x^+`SC)KEumul?&$J0yq-==(a zr(QHV&Q;+gQjh(P{t+Mz;HOZw+!HZ zRVz<^Sq#0c5|G-kY>>V$w$`5F0Q8HrO4c^2-h6IVp{%M`GTHY!avkSr!hlQIKmWgt zIsen2uKa1-ZO$}MY%!Yz@u9BnYoBe9nMJy&HOu`<2Uc*R-rXA$#LoHNKPMd{4b15ruGZ(xQ48UM@+wQhG_ukc(xeVfBHqs9MQ&XS{Nj_vzCg`w6h) z9WIHAK%^=dsr?ABM~5-?I&8ceZV_e~{TlKyK_(;KG!7kp@FDx0`~OPl;Gb%QzdK6* z#m}m)1m5DVI*;kTi3gBL>Tpq9D5*9-I=@Yiv1G;=5G#oN27c4SBC>zR55y5_|A_>} zyw=&P(cN?Tp68fyB`4f^HHU@crq&-o?;tJ6>g#RRI-&N4E8Ej#P!8<`ToB-7mwRZA zk3uiyghc~y({-RRd^3KNTs;ej^&i+^gcViIiXarf>yP{$i16S4O!WqJ^u$hz%cuQU z;|H*apcx^DU_|75q{uOxV^rZ@y&ocuMC-X+AM-hfvwe#HwQ}me|Fr)P->F6{6x0io zyC|0^(oA_0FEZ%Xa9v6j>RduAaU*w&-?f}52UC1i`RbLin+M&@HIQ6&7y4HVA2agn z<3E=1l~ZmVjosyRK!tN7+15s`QPkMX@GR!%vCOYd8}_&PAlf`+%R(#PHv4MN-pYN~ zUgS4QeShZFlLQIFDK&Z?m4h~!b8qgvPw|7)TREv{_A4#SwVfq6zjb~Du#>FNJfW7j zRbnPP=U3L4KU8Cs7S-Dn204sQOS~+?YyOOnChY(=+*Z7?a)gu#&wNK`n&5>!h9>KU zx86uv-dH+`AAD|Q%1fWER=@3$Rur00F3?xFx*B_rWPTQ?BLhn=vZN^)W^*Q0;kirO z$xhw6{d$_I`LvJCilW+)5(;_OV&%NtP2I_!rN8#;MX;U2PnzLZMeFJ5ZqaqNC#Epx zQ8jZ|n9t{Ct>;Cvu5G1-uz(me&hUTbL-%uQ?tkVA)?X6E({M{d#b?h2X9MHYH-v#c z`5W9mhfC+=*D?+fj&%pV7>a6&^>2A#B~beI7TDl&HRJnsYm`lqqak^BMr@*7NS_}6 zrwGv+%#bLB`nkfwb<<}bFG5%O7u_;3GtSoEs12BW>YLwauH5Mi9gnOlflDKf{d(-S z58Wj}YZZW45JZ7`FP}>}kQ)}a%%G1vDzqX%hGzK#B>P{)um9#-;&k9C9Z(w9YGTOV z=8=d4pUm+bT%KTK?bi3okiAQ`0$Tq>1^#b-f&WLpUZQj=5kL57J!U%$JSfZdp0nKj zQlnSeyt2H9+fljjgfQvYiS5NeIs%RoF@Qy>N=bC$XXsNsaU=B30>8tJ`z!CkcVzbi4sg9LqOKM-MNY z`{-=&_MilXO6{|e5QBi_Zv1e!I#hF+F`T4e7^n_Y{fAckm&yPC%;x)de+6;!UZ_qt z2V2m*p|H=nSGAi!^;d%;LQvWGlvX2C@P31Pn+FNn2`K&+^gBntldzZt8Z0BEgHZrv z$zYM9I_2zd%G=JqgHP?d`2}Jpa8<*PgSM|~$uWtYPH;-xyl`3WX)*@6BBrJ$1w9o= zYACi31Y_4L3>nI9@H)@kN$|^EhL+6aJCV2Th7oD92c(X&BgURS0?&_wNqdX(Djt_| z+8VaF*vJ-q3w2*hPI*pJ4fJ{1H0DLaA1`oRXwo>S`iNT!bZp0f!5};X-K;3cMM1$M z8;)h8{lqI7qeH0exEU*o2mi=%DtpIwI9bC&7)+Yt^Lsp#QeIJbFbu3PIgYT`0GICm z{2vgr|NFb7^ai!U3q5lJ#`$AYK-}X$T1EdbocO0>{OZ7@H`iohg2(%@vdE@Mx334+ z)qu&OIwwtv=miP7l`g)e&rUA6qI?W~bp`4v;-?`{t9;@PJD|>n)_gf`v5}CkZi&ie z10yIZV5&>Dh=T@JQ5Mlte02tI2_4y*eVO*(iJf;BszSXUR=|y63WuJpG9(bk0laS( z(XSN2@i(W=7(=kXDMH+Q9R=lWImvaI*Wb8R@^I|5+~sq;qeY>Uci+sfBt;)!(f5Kz ze%wteTV|_s<8b~^b?gNXxk`O=&~V{h0Z--cdO747aDH`u&P(1#j8dOLT#=vnEcl7B zT#=cl6cF@1>UNx)sg=#d{j4lqg_wHzDs-f}F}?C(_~Z6|M|V}0BMqd))6Hj zz+nM$xdAYyXIYIqO4b#hdf5)Q5dq8ZE7ucx(3*4l@-u1LDinKKLrEo@RuMpTu{gxd zXmwr3F>vPt^K?S-WK&=ta`&JyR?O#%UA z`OwEIVnkt=+iQGE1n7XIE4Et(!!vn4|Gj$hL>bfW zffYk>TaR4%@$5C?rk0}yfHbX9R5K&O?SV3LsB-q2XANdm@+%SM(pv0;r}6`;@P9wB z{KF@pi1aVW$sBD8s*NAZJ{lR+kZJO8yxl^>dF1Mpbm) ze2P>;0LC0D`lx3%8KdufKX9U5>TIIPbFKc7!!7(lp)#um8HqHq{NnhY@u_DKY#{PD z&{$@_ZF?g1ut|Q@qrfzN`<_7Mv!*5h2W^lM2FV!Aqla==beUD2H8xAnaXDWL~9vHJ>u5W&WH`Pf5c%qPRZ^r+BEhH6`g~dW|Tdwj{<6&!;JCJac z?xkOc@14Fym^571+UF^^Uu}VJ1GIKw6`vE9S3M4eG(!A&l;!yk>czCN)S1?h=r@A5 zEcNoXD8z@`nhi9Z9S*K;Q&n%V$9fAp4OtBZ7%R5Q8r)e}a~B|)8%Pb^LOBJIrl)D= zsCl38@tQK}Fww-NepD^LZDR*aoBFO5T=UD3Pvxs#tB4vEDzO3z82Or2eAk5Bprr)a>-$HAm7fJV*C(&pl{dj6}* z|J5Im$p3I+sGpQAQSPplq|WV~yy>4DQb>lK%w2PlknljlEe^WkKIB7UWIHe&f&z@o z2s26<9ny#{92+WantfX#W#a+MU0%X*#v8>q>s@yGY3#Tb0mmGC=3;9aGq|4R5 zTA~NI37pPLcAdj*F%*V(ag>0p;-3Q~c~3SeZ%;BiwjE#tO$D&5y6TtRZDE%!w12dU zb0cb^J%t<5kYZJ%>6VWQB$2i8UJn<+e+o2a#~G>D04}6W*WBX5DGAQ36&7@wg-D@( z_BZfi5uVB;6C#51{*xpCr#N%w77041F=;<=`O*H;wl}f%BHTuhs$fv)SlLrMyQ_O{ zQ@50;F}7GO=!e2Gua1pj(2Ym8)Opu$wrmJL*t%8ep~-%UhR_`kkDSy|$(1m?{R5#<~I9N`|X zJ(tqBJ}frkwVp;3`33R_3}$XJWKUH1Jqr|C$?G~~l=>>WR63xkBq7~Fx8q!`|7kOd zw8NKg(l}f7oth@sp4mwex!^rHFUy*feGh7w{mN#vTc-BgGxl4(i<5DImrt+V`hl*$ z-ZeWO{AKY~{Qc@`d>c!G_d1NNXhjC}r1`C3W649Wx(C-dhMrq2pUrq8GDyoUc77~A z|IItwUlHDZ)idscH`hysssbWlf%@T{TRZDhru_B{n4tmm4bF!|6#Z(O(%9ihDIyN2 zvlj}3DBG9P*imZP<&7q}+?e|W!}Y@~m^|U|{r-4)kvsJ>LPoHB^BhXhUBqN@Y?ru< za=rFXu^t3%u5XU^syV!_Dc~}hY`8pX(?L{W;#075N0wHM>fpMcSL#7G`dte)5@_K5 z`$Th%A2W3G6=MnN^-f5T{6EZncRbbY|NoJ)_eyri&L~I7NM+_Y)-SfWcaGzn_jSEr*K0h-mZ@ot zt4B&NhmNfk$zA!ma#fL@XDpQnsJ`jj)!P@s9|6iEv>_KvObRyi8Slk*6E;Hm8hA`d4ZAW?}FZdYJ0{lv-n6y<=tf&FgW$Ut5?uUi;SH1jUfcE zK#O)w2dRb4f0|aX&d(2j=vDm&2_4^w1fAU&M#}*zk)E?Si_kl(ZC`N3eQ>L<_vXE< zYxgH(#wstFwi^4918ulQDAmlE3^HhF&T$claiMBhYL(j7WFE<#1(uqiLsa7=bMBbL ztC}c=+Jne6EU;L1L+CP7K?u!GgnR(oK2!ET5+;8FMg17z0?df?${Ngl;JskwAJV-N zDBE(s$$Z^UX~H8C=v1a;i(MBT*{fGl;L|MQE3X+y85teM`y3j+!rfo&+RjyP?O^%r zYXIjK;6Y}BC=B+=-^M}Z!h-Mwd@Zqxg4!bpB^uJna}MQgV9^!1$vlr z&WnR_8u&e=1b%CvA0UGoVebjtVgqW-N3gdpenCM|J(NJQqvSR84NWVI(ZFWtZ3c|q z&t}K95$2IpAT|Nh_FmMx!gY5<9DhQ-Vr*;!VQ~kmZc2t~F{8(Fx6L&VatHdMQweOZ zDsjeB)yABOZtys!TrqV3czi$JmY-e4*2b&0476q6aNIyjIqM?iF2CXC=R^WEhGAuX zecYSm=20o1j;A7!eGQ@Az(J%u^NU+nRm=I!&Yr3mV{1|HdouR2m#(+5OTa8eI*Gv} zV&GN#27Bm?P2(@3_CG!@8dj%R2Zf}$ikAtoM2BdcgH9d)$nA#|S?93@f)yGKMFfWOf-}y zCNd*jgeT4Z_{UG=@uFO-mv?3t@FFMDB&&^At|wCg!O zrwcC-HePu86_68qO@?h?o&E8D7nc4y&HGgr5S!A{FzzcT%rtHR_mQ{WZwL`~riDEs z(|+vVSVS6_O$ev}r@|&_dQ{hkoloP{lGy1_$<{la8dZ;G3{O;!ROh78Elp*&xg_Ve;0z65m%voy9%vh|KRKvHwKHv5 zTC7}AyV$|&=-N4AXv#=~7i|GI`xuOH{4i~-t#gd_8M^6#dF2*ARYO%!_vbDe zm>q<_=@Jtk#2W}QeE-`9pKiXlxisQ6W^B6z-aNIW@l!B7t(n;}a)BabbL-Ab(>&_+ zBSnoC=UYVt8F_ZeZUSz5uf9P-#Bu&x_kKdaz_Y^6%#SRMfCp%V({C>M$5ayXKVKuM?4`aU2dDV>ibg1*qC0 zfz?wZv7{HZ;0+?}!wqbPT=u#h@2}H}^o+XA@i3llpd0h{s8O!Fq z$5q35MW)PZhzCL{VyXM+8m>_XX#% zejQB+#n6g>306kXGb!p3%rI=t$v#_UDJ+VJn*^2Vvj%chD;KBYQ;N4212@(!NeXEV z%JzuOqA`L*o+>1iWq6MDJL@-rcm-gtVpCtuIScF}EQdL-IFWD4vl(APz2>PscxUE+ zBTJQV57oW{SfT*_ubO18xAtYq!)UtTFk}tn0Y#{ctU`1lY-5?xn{t(908r{!{yU|v zOjm(bogB`4`#AgjUM&!DRUJE5RW`3d8=C$cJ~!SNIBGh%?ea;3vp}@5e}7QBZ6S&? z*fOi8R>mO>IQ`wrL3F9o2?-1fP$?YWp`N&yVW$^yZYJ0<)@|qw<#Oy4rSA>I)xN}t zKgCXL3TAtqo8&`0F}nsjk(vMLvkEKTvoLyr?UYM$*@w?Q2YKoqgqO8(F`cM->3v7&h~jGHr-HY*-f30za#1Wcv5}8f?E;YG?;ERXFCMGl=uD259@)t zJ!nE|s>e3RQ!g+clY6OMdOh?wun(+L*PqnsQ*$O0{NS*daol6rBP!%WJ6?)iXsaHH z*tO8uv!qOh(M5cVK6M_E9+QTQi)ilF*?eaPfmD&KXm_0r;02x@Zxd0u@uULsT7gij zqzPmp-9TLjVM4B;=iU6A{oq=5!-`Cq7=nW-V8+tp?k)qpRuq0N-irKq*MzM>cswjp zTm7T%P_V`;W20r++PPAE@f9M@iH}EIphfVrTM0|5H}Pc_zf()1vR5^OK~tMFpILVr zHb!3d_brjXEpulm=tAFqa|6Q{ntjQ=%Lt1_YV8}H!G-}6s=!z`r0l< z<8R%*9MSRatQ`o1*z@hGy|9RW;QW*w&#wlMIdvF}OgHdPA8uP75VBlEhP^iy^y?Gb z^APb9VvyHBZ&B!)n@FZ;|2zCu;Po5iOb(W{9oxFpg#c&qN<#V4PGI;Wtrm~axc%Ju zYS%aFc9_;B^uX1KV;m&7Y!ak3X@ABT)<}owDJ?1xW|ZnO5x*appOMdduq01C;alF7 zQUGmkAPuf3ko#1$Wqg;g`KY%mkba6MTg$?=|DEWfzUoE69nqDcQJ{397x0Lj544T{ zk}~QV)*czAsO~RmEBD(=O-3MXav>-HhLe2oapNhCs_c>vWY5zDSvdb23Jzw0MNrii zw>U7tT`m!N&3kz%S0@spQaQ!wHWjb2(x2056~}J~le@6zX;?%3TY_^hkHq^9A$%Kg z%P}ITT}TX*20o5q)n7i&Pt)4JeWl;GzR~@d6L?=hsQxkBm)CKJS~@#5-j@S+PLJds zleGJLG9+OSvAn9x`}2kn5><;ZRaSW7gJs&(uS7nhMn*d>(@#=m5hn@mNuIK5rLK}t zlFq7jcC_DpieR+QuZ+iPQTDyfqIUjDuFM>MNAY&J3hI$6F&Vm?V0vv9^M^@`&JB~Z zib@}i$^jvbWWl%LSAC!yGLs7U8l8i}lB?tUu2;5zi9m1ggyW?#b?AxL!fji7gkiH; zBpb2Xr0otq@(NIXm1(N@yPdxT6Iu@%pE z7w?eYM$w2w_LqKw1A7W>#cR23a|`3078bG327AUQyx73d;~2RNU=x7AQLNoTN1e=L zhJi}Yfyzi!;;gB0n+%(XoApg|^G*E2hF=CLzzFL61529yzCo%Fi+KI(Kwhu8iV#&U zGmzv;B=^0&<*lRe(*o)qG!C@ZgoaexAkVrCYtBc0V}^;`7w;ma~jYAniz5%_+^;`{qY#vA%oIwLAEd~T-$PBL5ondon>IDZLw z1@3OT1LeE!e2kQAtv-aQCDh{Yc9Ef1ubxP_cAxDqbjRimOdsYkxwDZmJ@DQq3rtP$ z4m=kH4K{`(&nI3570+@0I5vsUe!;5K=slPyZ;q2R57bZAP9% zn*3JzJNpLv@|tjAF=|+m-Jr3L+7)uMlT@#XtII}BKn|!io4C8A*024Ph-+ZX*f^un z)l0CQ_PU0t%8R{Ic@YQ17f$X(B5gM{j}STNA?)o?wfbnO2=8v|}*xY5n` z4Q^q>6{T+`2jts|!n$ZQe3I3tb;Hu(GqMom^M zOf>Db*!44#+(5X>p!HjA(%|FNE7D+Y2A^;dr-22j`OJk0`cc6bd|w&^H!0C(T%!b+ zjc2y5m`WYF`0u(tsk5fsU^7HM(BQ0VSye1~LBO4D#YEMjv=cliQ;joMt1B3AEV# zc3}Q(dppvK`pGGTBXlX-j|H_zgvPXtSA%FvWwrgqy#Z0%(e+%td;DT@NA+p;o9hO z!Z}b~0zVQR4e=SL+Gjff+sycH$g6a&JCzj$H_|=>EwSKEXHal_FbeL|=f6Jmam75F z-BbcV_fwGfQAI?_)~m-%7<#$4yzpjn?jRJn>?OM+CLfC_Kc=}DRC~~tRzOhAp=0N) z8U!DroA?*C!r!)j0xl!oSKN2;6mm_FE?F)mYNU4gNKIq18eX z1N7RWs5>oLx3NnmAoY=LE0)mh;HEx(=Xk(oW(}bDIYN_eIEkus4)xoT`xcF^&EyDF zkV}{^I2~MH8SW61{;COE>Pn9_1m3~&Ke5L8alHSxR|SkgOhZ~#7p?7`d>-79`CuJZ zAc?T(R=2h-J`?rfmMxOdveZY)LLirgTp3gJfp@K*1@hs294X)G(sVao>tNV~fC;|N z84WhF)~AB>7nbb{8pgX>$gfL=M?B&SuZt{kJH3?|@eQKWMbbOMul%c|ep#1{+e+m+ z6(;A?x;sWAY}MF0R?XKWv&?erkp2Dk+AxWOYH>%x+{Jf>N~>q07C)m(P!-RNn@6{S z#oT?FEzDMm3n~|t6Lm`td zns|i8Bc(vavg$@_0E^F_LIelLy~DHWfe?l*`GrUv9}Eju)=@Uq5-UzgM?X%D7~$Kp znRa|0sly4AV?0lO>8Z+N%1y=BJHF`nMxDnnw{xpWAL~51x4xL~jsvDvFl>P3 ziY(AA{BE3vO1nl9{6g60J>h%vF?P}eDKiVqRjf3bhKCj79RZ2g;(D@49=3q}Hzn|t zk?BrRHmU^n^lWzk6O~WaTD%KSc6MpYyZ5D9RKJQYam~%HK#LWnUWw~u#qf~Hu~)zE z9Q@KPq($1+cXD#UsXNSY zN&+RDNndmH&Jd=X#}smCa`gf_!{G4#p06HIK0=lAoCs|?4<|`(cm%p(&AD#l70^Q zcmmN^J^zItC01i3$k)%~WMc$em0bQW8m7eHVm*-l=aBX>7>`lhg98HnG`gq7g6Wk{)2{dm$@ z#PEFv_rb}Vh;V0pU@pZn6%uCpuI1COeM=K$kSzTp3y)xy%NFI!8Xqlex1*LnXE~Ju zf1<4nOa?~m>_q~0N=h*2C;@X0(BepTJx*W@P4~s#6qPS+NhD;-d4NqS(%H2bs_o&h z+z8l*3o;JWz$}{?;L+F5>}%6}{<5?StO^B$rPSJ>t^6Aaq|8y&Q*x#Ap93Zhxgw-{ z2hQ9$r_1~GVf3OL*MbagoMQY#CnX0DC!ifm;`ew+^s!&Ah6CjeW!Zr|5F=Sa9rdf3 zb#|UoIbC)9j!eFk@$Y#i?r3-54Q&r;dcJhgCw`T8kMI|tww4FIvO+Lf)%vycxA2fM zALHND|Nebt1{@3|<2K33oMj%ekKS4oS(#}B!wv0kkTmm;+HY@ZGFlTK$;n`u#==v{ zR5v;EwiY+8gBPylg%Cy^b&hDo2~n{kP=ikjen-v|BgRAIAHRMHA+?t!e)v{EsdLlj| zsJm?JOUZ7o5$wX`e0WGIWtRKZh_2yFf~jH zIU93ja+cYr1pq>zi{8sI31ZWH@^=LU)h5;C^nM`)tLp`ZTNH)()hd3Kt%rkvN!gId zNDQ(uL7|;qS|%X@ENi^?yE6eOKqZ?)r6Sb4YE41w08|vS%2vW zd{3gDa33QnJI*!%2HNHYP3kU8#r*ZjN_mtOzQ;ZMD2&-svRUb49-jPgp<{}4M*X4} z^Au%!3Rg}&CB8P-591H<0M>0gL~mx7uMCUnq1jB*`yqtF+S8F1jj?*hyB*9 z``JDFG5;)xuX66~hpJas?09_VPneL>Uy~VFFHq1_ARQY8SuqUs!C0XJ>LTP(KG!bi z`K$IF25qp`E{u@`B}`W_zs1Wd71&$#c6&Bet-V|XY?}$3R8D`EWXYx5LLfp zH024t<|_qd;WN0eY3*qPH{BDq;=j+l+?JTgDg7McH;?}3If$GWqV4A*#t}R`p z>Xy-aoP(MAWM)_YJ8_jj*Zs!%%8@Ogx5_4Ik)l2*AW*k>4wd~m>Miz^kULwmEYRwB z!L5ynqRoDS-{I`Hl1}+ydeh~Bq9l>{bQhu!%{+SW#QtNKT>4pDy`$O2ndCr;|C;n7 zAIZypM|S_&DVUy_9=%kGCa-3g&*kWnmluvQyhuJm&y&B($g#X)m|?si;)uWDdR5Wx zRAYZHi2`{6FgW&#)GJZxG)!_DyLRimNrt6`4C1*#;7I%0p5!MLltSP&lMC>Fe_(%q zrJh6r)b>2-J~7LGbYu#uo|4>C<>49C&3rQA>pk37?}S=xAbv=yBs-R{-xcynstTbk zTCmwZD>mXmki%j84Z=PwH5p_*W%Iqhh#9`*nNsJzZ}&FqkfnAK_Qz$)UFz}?jFi+q^-FV7p?%N8W`3^6P2lSvs{*a3{=0MEr7oOgQK?`wRu8n27 zeFF3{%P_4W4}XE>04@6l)9u(PH}=OeV+ePR&ab=A1cKMK(qBqgz&|)R0KAIso{&jQ zRejbS$>k?PzNL=8$Rcg(iG}pBmU0NmoYdKMZKO5fCJ8#&O*OE|H(#o%ttmkk#(7lI zyX;ah@t@5pE3a<(#b(?p9jFfcm_Gh~rESr0xHVNig|9NZ4e-TF^6d*VZJhisf^Dw( zG0%7E#CRJM3#~_xqTX|hO<~-r%+ZSnwOLlruG*nTqyzNT;z{=> zn7t@N_jfOIrV*rwHEa~xth|z+VOrXtbQBV81Blm6h;VNf1P@HH!0_gO-XQMUxbOryGwdcQ?y3T z*mK1;9uRN+a#oU=*|M1iQ7^bLKX~A6zqltgZ32_hGpB=wc=5Ea-0B&hp76}FD83{< zX4SglxQ#yKO!M8@SCd*KN2(OW$CC}`(GQ#Jo#(&dWo%R0)}DY*hD6(iJK3x*Xw7yp zspaZaOa!dVSRnfprF!+7Oi!lbEoBon?h^r7Z0s_!`VW1fh~6_-=={$`TM+etvrWB2 z_4@tVf|lhK+B=UHfVTGfMVlI~TXI_Z{rbGg_{KY6#2z|>oETzSR3ei*yO!y37?1N5 zzbDxGN4Y9e47PER+2mqV zsYpG@y`_BOVW_wi!W6}pgM+Iw@1a@JNa6De3@k-qnv`dw{WoeBVR_P@E#x$tE*Fu21?h6050W+OkckY(U#3X`~{Nf{d7WB3a=1Qr*bLlJq zVOt@46z?9C(mtt}iVbAsh}W_m9W|4hXAvAx9W_8A*hQO;=k&JuXUT?@bFCk-YMTc#z-oK!%h1ps6&hRiu%T)5%YMW|V)QbXLW9=si&Tvze$rP!RS`(Dc4hO^ZIk%Z~1D$;@X#Bwm z@yA>@TVMOEJC}~s{*@~ZgNvTHs<>ak%)LLS-Beqx03W$k)~{_}I)Iyj1A>j39T#Qp zpkx!*t16(=W*viU#M8J0#GVbS&RIwbAws(ScXi0GkPG`t9Ldy(Avlp|c*JCdGPxc- z8C+x=p!J$hzLtly7xuF2@{jwmRyEZ#}XTU5XerP?s^D-@cpfy0-A?3;s>o+ty z$1=n>Vb@{0&*#TPw>)t8TwLGk_l8oAp0=V9-hK1z{ic;_T=AcX7p`_4$&Z%LBO~5< zXuw{YAUU8D1g!2~@F3qL;2$&1FqELJ)~7dx-`r0J8ZK? z4ZMNrMusoP5|2uilsZaSPALV>v49XQ2|#QAH%$>OWID(8FY)v_c%_lp)Nlc zofFl8HX{8}(jnL9xv=sZc;UC0^*`_)=qmE4D=SiQUJ6a%V3Hy`H{BPGDJnUa>3q?l zIt*vTRTmc?#uVBEfs`?nu{iu@C|mfPJ_or+fY$kHt$3JQwg=itn5*G7Iqj3dV%Nd~ z>7xCK%Q;4`%@@ejveI9AlJfAn?(TiJoE*YVZBi))Cf_ZvzrNq8{ZL19}L# zJ401TTj5BsQ<^CBAgG}i{b4jU77@Nsm%}0vH1p`hvv5GFoRgXWTr(1Tl}J|q*I#q% z5-g|h^o?uIJWCmDGIkm>BFk@?4px<@Af-}xv7brd5eUt?M9)rNVyqU>C9Z)WGTW*u z8K1UwHPZ`=*3fRPX`?_tKX;#UuhF+34J{jZ7CsZ8$5cnJzwgXi;=6Z;cL9fMZq*s$ z*GIioCJUt2te`1wxYh1_$dv#*TVYT??$#tvZ9TE5s$xgShJywbMJ|)_;TwOX zSNXDUhIZPq->hk`sVGrC+Ra+JpU1q9w*`iV?TI5G?~dz4JU(X-IT7gO2|D;7gZdZ6 za6qVD{t2#kBhfigHnJf&`&%~B%RQHo3(yot&#+~Y0`^Kk#uP$kDW2DPu8{mm|8VWn z9#PHgyUv2qYZ^em)sZe=?U=Kg#G0{B{)%G|&~zbiLcL=Q|NKC^OQ_`G&_kKP4}{zL zqowvzQy%)j?DVX=Zc^(sS=NO|R5zVRS{l7UmT}zDkjIH`Ne4kdu2gV;3r|bg#n0p* zi&mfK#QFN+Dtw+Z21CjcZme-^V=oCwP#0kWalw$nnyMz8VtFjWY0AyuQM`eh`JkqV zk7BzYwSy$bBb%ojlQ+aAk2r$`A|AJmu;OuhU;OrqN6CGgUZ+-c%gt4- zrgygj>fAtMxJ~=aW1TbHR$UkEjxy{JbRK$Y9YaLfD*Oq{b_KHNwu6a$Y5D1bk(l=uHowJCx@J`f0hXiP(B5QVvAg3Byx4 z!nMt?sFVQu4XfuDh7Qy0lA+H2Xp{f71^AaJ_=j5HFF#Y=tJixby{>qT=2;JUSowt^ znBuOJC`L8uNu=~js=kgYdylaEZ7BWH4X7}SBUzGx8r?o4^?}>xtieqkJy9+wbytYk zZrF=)r~5=zVG>)uFKTaY4p1UA?w}h*n;bo#Q`(BH%2U4YvWGTQ>Z(&R7L=w>6hcxN zj*}X;0UpIFwF$v5Qon2%Q_c+4hUUDeJaT{^^O#i7EKKL!ecUSh)$5Db>Q!w+I?<8t zj9j&hSHZbc;zu%O;o4;3370sEAPUQrP$QIK8b$hecaG)pKu!IsBQ7ABfQjzantmlH zx=l4r?9S7Sz_RB71ccdO2M4|(|JqD8YtZp zj)ym@Px5?}t@S=3!98dvLXCk&1WhprCqAWQwzb@JZFQ!fa1Q*9Ci&C2^#{61sxuOu zn{_WVB8lpvX)A>RF;v@3cR2H&VB}l8{a3q&RX+pmVAI>K>2?z^qMEPNmMpT=00hN! zkX(=o7s<R;F2uxLjIh zK=~%4WGKB){G7@q#PKh~U?J3Dk*9`Rf?E5kD12i=ij9!5V)zERtmb?)&nYr69#4Nurz{VB+L0+8GN2&sW1KH_olV@s zkZbt<*-4AD;4pqDe9=3#uX-ft_5L@=vx9O}KTN0p8ijOE|7(kLAL4dsKel?@cYG5V zq#G)}A2JmsgbJ?rbVY{*dMooON>bv(jZ6L%MRIj@`UlX_n%Qv+gi(Dmpl3;|n!A4L zo|D2k?b>oeZS>~;QHH7gg{@uf!c#Xdtv*&b*6I-mRQ~}K;h&PnnDuXv2D_U&+u^Bt zTeOS&8~Z!6opw_;TA(p}dHPYWMUg>zE*~-52bF`GmG|oDl~wxVL%!Ag|vaES<_H$j^S!bqX`rZ89*a?7LPdpQpK` zrk8vPja(YTvk5ZiauS$SvQzaCkV6ia;50^(=8mJJK#y3kjf71;j|C(=Mmvr@UcX>Kvh$=$oFO@ee?7(_Wvy zUT$oxpH(S(AEQ#$@iO--087=2omT@Ixj(kf|9`qdrNPP6KG7)MQA^28|Kr1YrRBdI2B$8$^&MGs6F%T@dPmhpIidMDg`pTBZ6$ zdij1FnDT=Dgkv7YSs7h@T6RYqlpKZc~MI&RTrLt zVoyr5sKDmS$e{_K%+@`JZ*ns~7IIu780#H1B2bk66(RiB_cVKz zoxzk;uI6^m(=5c4hB9=fT~Tu~LSl*$Gj&;-Nn2N~$#AM&r(kwUAnzSrQ845DlmRD1 z;2|CeQDCM&FQ4?71X^TTP0Oz{U5Eu*BM3PzhfD3PreDES4;KQN>vB%9_(OO;H{#CW z*R3@hv)5%uu1bqoeDc5$aJM2)nqWoil!iLT(U-6dMI1af|>8}`1-}5%P|LF!dL-iLx)UGJ0)NwFLQB-x> zg^dt!EpQ)wG}suR@zDOxLi<@FilN{#;4Ao;watFhOSK2oSEv)`XKI)vxnp2AhK)0} ztGZWbBD6ShQp>9I{EBXyl}lp}%D0$}*&7m*!W|@rWM1g@^&V8FsN#(%Y_d;>Kc%Gdl_`@Ec;HMot*lRPFO9wGwc`OM%e`HI9rhi4le8+N zb~R4ZeA@f#Hs4l;F$GVN%n6t5rb)D866R2-UAwD*5En3jdR3~v>9xzxF>FJNKoJB# zzK9m~@J9H+KDLagzwxyl94l3GtcZJ1=$Q!FTEmD9k-TODXuFp1)LOF7(_`aqKb4r0 z&GJR3&`*aQ10?F-K$Kc%vhz|vH%m}-mBV!3vlg&-&s@$T$%0%2-6BlYKe2@Wl1BeE zWBd0nA*3p%6OYnbWWXQM@CPjfn*jM@>PuA%Q<^Q#k0Kiv&Te{1)e9soq3h*o(5+l& z+3Q-C_?IbxM;y*@4&+7uqAdzuqRX^Ea&M=;w!NpNMjj4&GD%ZK#Z5Qqc0$)VUL+_K zvg7X^veavI=0!h?i&kY>4YM%obU)52`9bPB$jaQ!6rY3I7yh;=cxv?;6)7vcuF+cf zBD2e=qJ$F=)UfHCc4W2%4`HJ0e`w6EK=jUEF$yHCiya3EWeCN5nLOf?P4EDA3R8O> zbM#h>_!Ys&bjMWpN`VQb>H(4X8a%9KQ17&Fz#eF8&0%<1Y*haYs{N-#=Pyq{VJf>T z8~y3kZRL;3IEf=~BT-I0hi&P0bs8s8G|NlugL zyiq=wfx0Et0v7uG0nzja-L_uw%G~1MI%;vA?S1S%B@-wA1kx00l-I^9vM&941>;&H zNboqak&^VNZf%;(rs6h<_DCb%Fvz;WR>n3(oJ`Mdp&EYc(0-^@$Wk_sVX;|YjA0z) zdlheY_80sSZfz$7)LmKwf040_iu&=X>0gL6a+v6#dCevzczvwb!Q_?)8VtCn? z3zR?j%>iu|2|#C!=MJ)_T24{YW*Cy#%DgQjZL2nyPeP8N+sAdq;pW%YJYK-4_Icjr zPWpi^w`C}*jZr)C*WrFrxsaa9Ejl{TP)kDNP&s|niK1|U?fi!ak3R01Hg0q69FDEh zXE_%#UZK|sF4l?qtfsANnQcGrZ0*&{l3by_2Io&UBs1=04Pdy+TYB9A`39g zE=aLyn#ODp#PK&pojG7o!7rV&{e^ZKzOmqWa@Bd zcEpj|Bs_mr$b=*`$IYO{xU3B8s&(weIh((jxBWfZ=-&r9@JeF`5l7H?{t-O*+Y|Md zCE*eK(k&~&CjWtvMh-H%=V`91ugGt223eFcd?7YvU{ra(fnuBYhRP!IgfH*Yyr0*%_v;>X3p+`?tbN^f8__>8PSRZ{Ct8C#!y=Kw}olGiee+ zm6NsYVB=9@d-wum5!88cEP zxL1Vz-gs*AsNsDHop^@x*MRY1DP7>@5>&%6pa=>+N;iN9ElXa3tI{ldG~@8b`wEQS zCV^mDsWEVkT^a@NPeCnyABB2Q9&O?17V9Fc@nEg3fRY5KyRt3&TVO@i-xM@=B{+$v z%C55XhNLj>AiiR-S7%Z@#4Uz%_kjoAgrB1bb;N~pobhoz%GZwdx4(z5!z&NH9ny~p zDF16>=2PEE+s%X#^PPE&~7LBbHoe9^Ny=UQFF@LMzm_MkQy;* zc7vs>3t@GG5T?(TWtfz^&0AOppKaR6_eRKgHymb-&M8lmXG`;R9XO$rJp$!gV6O&d zr9H5VJ?7Y9H(z6pv29CWczat={}?~e+z0%va)9j# zBvLa9FYmCw=IY}4$)RTz{Ncf$bmk>F50PMac<3^h+?V$6k`1H^})R;pWF+F6jf zWc=H|@_Nlv7#B`kTbSNIEQ10z=Dp^IV)y3zb?uE&_8hOF}_qw4*Jp5>aJTDftqK^so?kj|iUc&Oib{X`V zlK)&;fff7NGxp;X_tUHJHNX5k-vP(hk@t$)@?8gT)Xbm0`1{Y)%huP=MILDz`^XpK z4)7G6UpE};-r^Y~+A!3(g`=k;LS<(GIuj6HNUNn}jB>5Zxy~(jK>~;0&qLt{0V%CB zetEI`o`ujCP*R3w(K+jzg+UV1NFr`q-@yh6;u0zd`jLbxPs>z-&K-fgOvm;wvo!;4 zo#}v>@UtQ}b=80gO_4y4jdtFM@H7v=M01v#Rb4}bC@E~mosd5!e$ZCGN@d&lx_C3m zozOHfBm#eaLa)$+q z1XqI|_jS*or&fQB{(j%_`3q2(5WO=aTC?$RdWtdtu-tVtPKjfy&OSguJ4xHxU-@L} ze;G}XoJKI38`zRgZH~X8iYC)LM?K|z;v2;DO~(5O>nV%OsbD^8i=fK|i@3D2>+gD^ zu^w@KLj#Z4;)d_Whxh}q3s?}zS8`2odU3(ymzxy*57AR#Bn^y1-G2yE*t9m-7rw`L zMf~2nG#A_n*ZQ5iAIQLZ4X!<)i5hgav|N1|*pixDLX!Sxl1X6^U5jNa=kfF>iF_?B z-O%>TnZ2Pmin{P;;^PyVEAu>;bHHDtfJMT{CW30zA~ahn{Awx zu4!LwuT?z4f7Cx92+rBRWLmhx7k3bq#~{%mq*snKgKa(dX4)7BC?s`SJ86>RPxxy? zcJR<($a(-7Cwchgh&KVK8lW@uO4S|IJr-{_tAy?~@g`uL(eLz1VIJ|c2+l6NQE{a? zKl2?N06!X(#QQh`CBmAomfiUDQ@qsbYeT9JI|x|M#W{V0 z1lU@GiQT`U~B`L4-RjM}F_$IAPK&m;OPsj;y~$BlvnMGK$8&TMrfc zHL^>4mW7AwG#HyQ;7>cwb0y-yTo(oOPK6*^bT>DbnN%T66yr}@QgDiiwD7b)gG*v+ zHkJ_L9*R=WrJfr#dYJC4HU*21JepK9$Ti3@cx=E|wg;(ZMhlAka2QyWH4Uy6 za<}fNkvJkuAPm4zDRGuv3sVl8>}z42PNv(>8y-XYMt8L`^`7G&r6|}udjl%*!TV z;k;z@uvcsU(P(DVNuA9dkYN?koRA0;dwcC5iLRWTb}RHqz9qF0;jE8PLp56G$lcsd zKDd^O8ztD9b7s&}({Vz8<`Yf}^IuGFY9xj7b(bW1{K;QR$ZXz=-V}$r#in$=+I>A_ z6r;e-`l2CpPjceCdOK}|Kp{F9bs{C>l}i8Q3Rh#Kb~=GA!)bk(vc|0fEUUyYjp_OU7KBrZ^d|#DoiXw2cKanT({=Gtj?D$JOpCH75+x!E)>9-oNbr=Z) zcAz*S?q8#c-yfj*u{Gm+;v2)E%Mq2Mt*rLDpqa=x2}=_z9wyVvLniF&oQEErEc+bc zDZUHp;~yd}?r#}jxYx`*?R_xtG2rUB#vMtU{wTc7*^?ssZo`m7b8zU2yLv zHtTrit$hmZ(m$9?gZ0znzolYnb8}y?WC<9V=AV;ZrQ|J5O?jN+O22V zN`YV?H4n0ri?+pYJCp7;K4Tt+5SE!%&vcVlRoS5z+{79Syf9I(@jydN{)Y$q_s{)= z+n-q4NC)H|@(&7⁣y!b6LYSC_cG-Cb6@Okn0p-_Eum|jpf(^Z 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∈}R00m{hy=bDh`XV;AbNK3_K?Osmzu&yNi;~C zoAZ0(XRUSK<+9W>KwK;d5F2Kk`w=0jf&5$;cAwenrGb@@^WVa3>*6Vl(+rFgz-OF@ z7?yJJ2$PYGsdmb=Iu7W>IS-R=4WS8BO4HgjHn?kEySOigC<+i-v9VCqRw1c-YR@}i zYzQh=Zm9K)n$FaP5WUtACFX8g-N+Ebq9lilFXUDbxKZn)sQ?}Wn+8=>{gEmhLEi0^|SYg$R(E-%>3fTok1yRYR zmV#{4adsp(gkjeB2ue!QK}D-VvwLF;<11j*5Wa5RNMT49o_JzR7zq7XCQ@0=G>ove zb`DEbkdUjHw_I86A%{*wO7oIqsB)6iAGJ;x&63n~qIy=!97@Y=lM$I(3zL_Nd|2Q! zXe{)#-wL;XUn#}sdnhHXuB329zfX4rnsj>hH%?L3FsIY5G==XRH=Q(?<}As#(d^Q$ z{t>oeBO&xB&r)^vhag*@WGv3NTSqu%w{dZvqjuxYaZ@3&VmK{5HMH5L&Rj@jW`{hq zWh1$CF-j5nPzuBpow*zyfM;RnqzGK&7HTajR)KtDlpkf;IKHNmewS z-Ko?{KVQ*eGSFZciTh-lDoU{4HjpWYe>H$=vYXInB2Pla_zqEEBHuZ6e+TnMhb-*R zwRE`7`C*YZm(^nN^^_?%%bJW!Bhsd>dsTqciw% zZWe*8c=-GjVZ*6_RRH?i)~nW*qPjpwNqLG#y+w~GlUT|3umYyT_3)VsO{oN@`KJCM zd}_Jw=wYsciAw2MD18Bg{cUEwkL9HqvQ0a{AdtCWrY?0DH(FtH4o2^1z3YNzr2m%L z_~V}cIb&*kSeDj{FpQxzI`Ro!=m{`n!@1bJOPM;G&hoSA+boy z)?<0YuqHd(l1_8+Bg)TgZkDt1T65_QoYY6&V+5h6h<#AbzIaOu`EGA#h4p0?*ymKh z(OUW4<8Cky9N%`|(lkn)u9H$w-nvN;x^=SVl9@Et;`}_fri5Lj%Nuh_8x_6dYv*ZM z(x(qjEY!TsN5gJzWm!;k>nog-uya=4B`ZAKE4PzZ2Kob+b<22JY)V94s139VpA{CcL^0LZFhK zl{nIKC!CbxqRu^Ahl#1ynNHa_wdJ78I2OxvgvMA-1yS0-qasoFjh5o}@>NI$R`U^~ z5?=zWkX(IN2pX%wqkH#beL35E5(r$#wiN?Cd`;Mk#0WtHS3i8(TtaeXu&{Pe?~WWB z=lvU%^^b({9q6|t5<|K*Ae;K)8n#hma9KBjjWMT6*Wgb(==;-D+v?nOkI*f>CsGH( z&sxT4H<5z2d4UD8yE=F%5Pz3JuS}(wIEq(o*C?a>GJhN6(5(eJ+aMxN_%|;6_ugo> z-q2wlYm#2Qrn9tE(^qAl2p%|jfexaLg_!U|y+on-vY0(ryy95z(Y2fjzGxP<@vy-WQT22MdsA(@Bmby702%!u-um{6uvP&dKqF)Z` zn&;;jF@}Dne9Q$8AFg043wMRQZX!c%e?8(tUlXY&+w?%Yl!vQzO>VLJfay zOCxy|&Ox<2ZsXIr8{0|;O`uJ)ANVB>Yj}<56gc_ueqz*|%Xb69sCvp3{p4YSqOXWo znU_5l7t3syim9;A&1m&?7|VJjU+EL#g!shfWULCyBRc1leE(D zvjGhi+$jtTv8>4^oAP18mWb8A0vt74^Z5>;^ww|V?v*dLZO*7r9ed3QjWR&G{ z2nu%}NGVf~>n}|t z9o2fr;4IIv`t(~b4pwD<>OFfr|w%j5%r-RgKf2*zad z@nCmAN1Eo0F-tqrdG{^BvK0mdD`2GiH2=(n&a5#nZ&#W7pw+70H51rMVPJ2f z!LS*qyuq&Rms2b0HtgT>2#~67La>}Aw%#mnozG6TgW$ZB#sUWc4nb9dkWmUGymF_h z-}kTvnkkoWn;bb$O%wa>1@mRQf{sbyqlZ%fnik9j62teH^~)dS;ktQ(C#Q{%@YFpU zf%p5TAJ0x3_nJkWjRw$B^Sv`SsG}>@A>2XXhS|CX@Dncsn1NcfmJ44jLKEw#I(C9# zf01OaJJkV9$2hx!Hz|Pa4R^$GETOk_nwLXQk6k1hiKx=>;*xeN`pDk?cA&UIxE9{T#l%iEi7tU*1cx zXZ7aV(uSzKNMx)!WH&~ag$*dnW-RBde=pPpwkKT1XgVI4yfr zigPz_qkSNf{_;4`+cU&~`4N!|({*WV(B+pO#7-d`d}S+uP*YPH6%Sf(dc4%cFC{by z*g(b>$nd-FRTADJg>{m^adx|7?6%EPQDH8{3LT}i_|DE9y3($y7lrVM=a=Nj{CpJ^ z#&YU~Yo0ytX#=7t#T0ed6Bdlz|Qk;_?h3a0NQ+l zVW~P4Lu0*c_Z;_^{1)fFcB;!8q@4GCN{XY37;Sb;N5rzN8nCqszRgG*M)_Mz}X8Ip$(nT1cb73Y^f8 zgK%SF14wzljAQ6G!!fGN z@V|;KIVh5Z4B2i3OTXzmHoOIH6J*FVu?@`kJ>%ihGV3y4-Xu~?Z!;qvDTFB)5cq2j zud-N!`6il2X1u&Xpi1T$O5lxm%Qvf6?;$?D6{1 z0FN)KE6xa;#;%ArN)L+7*4M$eB5734=(jo-La7~1*-Fsn3yw8hZ9W~52gP1w)BJ}d z!t%4+&FezBTg+~( z-piVC=aJGnT0Bk5dF9+p%J6XQ1F;ovy#9^(@R9)PR39cXOQ3`+l<4ZhIG|YUlc%)p z@@6r2hf_&~@+zyQBBF6knQ9OwBP~iStjL_?{Wlc&j*a5Dl=njdOfl9{dw|#Kyx`4O zUmo6r^7B0JE6rFIGuZu5e$b0ZEA3kqnzFG+&<7z7635!WeUBbDR%TglC$@+hGf~~v zl7);c*+tva3aY+y8JnA9u%Y9j)KHqGBT)ZT+P5?F zgjt$94>$F>f@{lYelIj|`R*&9-JXGCrURK6J|H4Ytp#|$T*RJwRU(;YtW?4*7o{>z z+UrHG=Q}NYBK3`a@*t_>zDeiD<8%#DR^d502PNzPV+ z*4*58+B)O&39Gb|ts^ABZQMWNjuk#3Jx;00I$eoj3MYT~EIXOgrsh@4rtl5P`caC> zL6B;HbLD@is){IjKlIHeKUk*rRuA3xum#q(;Dq(-kjfxfsjs`DKJ#hO10)mF_7{j? zNIjOp3ecb4yETo{)o96|dBX_3M1i{6#lIazve5OA+w29R;a@^;SwsC=dc@Uap|zH? z(t%I_E`zag3M#Z9^0HDGp$4l|!qS+Xqup(TW*wAl29GIWVtI*5m9l)Db@Z!Fq5VC2 z8$wxmp>sAl`M3uVMp(TeXlr`>22d!E%*ii_=_=Il3GF!ULyPOFd`#{Tu<+G5Y?GOm zYTk7}n!3Y(Ru`7WWqc+&IKc2xzrY$k`IlIJ@vgOr(EdgMkz7wEW2Wpd$_ouB`|^1eHs z>i2*D=wxPOoQOC=WF*SU-YdsCNF*E*GNU5d**OwQ_U0TTL`F(wlZL%AqwKv$-}_YW z%DeIYjPK*|`#pZYzj_=;&Uw9F_kBOdbv>^uz`s(-&JxY?NEC<{{vj=7;1Z2;AW0a+ znKP>u)8TVh#>&?cu3%bcD(A$DfR?kKniRf&(90I#*u&eyViYE{Ql3IU4n6q#KQn8! zxF&{^Gp+Aam?q70Jfq0OIlR60Z8gvzo6QJbY?UlUZU3QseqEMJLU7q=cRoKv z?_;=?q-w%^)Ugocd+-{sbQU>80K(+>(f|xnwoZ zN=8QQ>eojlEs8e{M9`D#@Q^3zq?(8s+wa97Y;{&CDfW9>63!k1y&;e?{PL!L{UIvV zwrg5rOF_zO6y0c-xNA@aOU{Z|bUq<1Ru~K9a@H5kNZ!)vsF7rjIlL#FR+7kjg zEF36F2(Ac>@zYR1hNy8DXqnH1yBLmaOfET9*EVKR2c=&EDTs6T1S zr>yFGDN0Dx^EBjW#I@Dt~-%qt+z-6XY1x%cmgAGJe}E z-|;@UfxtAyVqqdG+1`vd(Pam1$8CU_;WUeqtCoWf^LT>m)H}Zmi~P!GA3qu7nKI(s zZshB8bNeb7NvlR)gsR&8M*2IC?X33(*n*DEDwL^qFNvgNaI?G7Cnir+9V3k&zATx# zoqAWG=Q=P4_%T4~#~h9KE%Z@BNwc|whxoT|;&YAv*}_Us<^nCK3EIW(bGB$4(DaxG z-iAsNe`{suP$8eQ5<2U#7UYAO|5ukIJtoZR^Ao)h{jSpog)KYYu)F9D#C+T>z^ zn^s9uNci*)T;os|=Y!Ig%&Ct8P~f%qJC&K=GMdf8_l8Fgta@+ZW{vqS)S7A>V~97! zJ;ajHW+A{pj>IvLfBWD6^q$ag(K1X&1OIrBJ6Utl(~7PaSVfw*FptB2FA8*9&kH~Z z5Y9{-l~bdG^m(kdk}YSDXE^Sw4fd9bQZAvjL2mf!TO;QjNh)tG{b%tf+zlu`>tW#% z*`PZ1-UYMmkyk^~+6L@+0l`*uMOxwrmgXHS-CzTKC(6%() z&swulj#;Gh^|Ymj?TFU)YjDD>a*SU)46VcmZ0)1yZhoF?4V(S2c4o_P9sY4_u(KFx zg>CXYxoFV~YI^q0m7b1D34&}EFf6E_U-|B;)EvhO+6`f-nPVGmMZ8UOx$F}p@Ds#d z0+y@WR{HdCegh+CsC1bXnHO9!ZUr_j2qi;jAIv@{TiAb2sSl!0J#ZS#X1fgeS(*i< z167?)uvY%`}ec4+ofTRQVqifAap4Z7<^KjxhqMnOXYI=vuAJ-t()atlw#RKGv38 zXUsp+-2iiDlGi~?Gx!|j#h4ARp5M0rdwB2Xc^RvZdBnHQXjVqul9v`GrY-5Tm7E3U zFx`d`wUJs)H1k0yu_(Wq$AEo#*7eKv{Kdxi<(D?E+IqjK#b>%j!4s3>Pcx|`f=NeT z*j|Ra7jLa2{R{xa_ItZ(1Trk@rFLDHdh*kP?WBcG99<08n)_3f^bUH|Cu;EtqO*hQ z!_k_~<zT)M3`PVuK>${xkRr;m4vtoP9<+rCWGAic;oZzJ!B$jfj!B4-Ryu{p~v*3b2g{cG)T4xb!>%SG?ZiXsIy&KRkw?Vcz1o1Rv`2z<&R(6T z-;M^{N1|2C{KOmdxd2<|5TMt#pxR+GR{4G$&*~Mt)3KZ5Ho^JgIJ_J9 zI`|p|K4fldqAc-yyr{1?k14&%R-Bv~exuAx$XTlHT3Ij+a-&-V@lc#q=quB%U zqvR;kE^PzvR$T&`jDOD4|8yIT_7fF=A~vqtp)SL7%*CXeWujh;Z@zT}@UIDC1FMlw z$jq-SHEGA#y$K7PIRz*!$nUimA8MJZiN{5k^I>x~<=|5(PaZ=0WO2@pyXXY;VVI~F z51vrxIM9j#O)2i*SXOFZgs)nUv#m(Yv)-j?DbwYCEB_umzi{YxSsiHR|Gp@LOo`uz?t6J zgrryns<*d2fn>^=!=!SBVOiwYpJ;LySo27zKDM*RH`3@FJY|A2Y;9(gJRDYkB%6TV zF-xlt0Gq9=mj`T-FzpPH78*+VJ=hSdE^=Y@j@`M}PhlS+lE-X0LMbb(akwz7#{&&~ z6sTcMq*XOE@@4P1C#KvYrYiHDs+(0oFw6Ko}ax2F!67tkaY; zHn?svrIJyeE|AT=kMQ10rd~cdJvL8(C1NQZP5A_2AO6rpE=&EIe!)t?ZI1>RB#t6U zq)NhwnMP7iJqhb`Eo3PoZQJ>>!O-$5I(5vX3{Pt6fP$JhbKoWGEZ{iH!LTQFoF1*; zPC&pZ1AG9$0{Es>x_3Tk&@%R62s{TcTjpz{3*Wyye8(TbbfEa@-cJz3x>+kCGvx=L zm7f+n@IVQO2-a#R!#kp~;pWL??58;mEI)p2x%c&eX=@J|_gD99m#W4wNp*rLR)Zo>@dU_PR)E2ojo=ZTT~W0}o$StSJ#yzxvIlj<{DX^jK2hAX&3 zB4g?_$z5%340+GZ`8~b4n?O#O%n~i|4yn&C&eLRDOjCV|5$#_c7Qn+NsBNyDm!KiJ zH`-$k)Kzxzbif(o*UZ76ZrLx7*|zv{km8Wf_a81<+3Ejl6zY52MoM@b$3M8BdGLbh zUZX2(;Q&9w3B70W4@E_X1m7}x)j!Oi1lO4Kurs@$$6W4Wy{0q4zOtmOylbM*;e1YZN58b8+{etxy zdUx{2FKcdJ_k;q2MKE>^#wdR1-~H+F{pmgRA(e%-D5DdWUjEQ-5B*^--#u1qP5VXj zE8D@Myb8KrdT8l>XS){RMe5~ys^l(fcv1{CQHpeW-y-9D{v=SC5a2JnYXfI#mO7xRbmTl# zM!QxXN$qwkKS6AP1=W+iXHJyG?XwFT2WSy+I4Zrx zL5IoD$!2!(tDGtkX4W-H5R{C7CZ!!-aSffey|N+ZBp*|R_b>S4W#g;O13kBwHdtOy z6F4=F@P6Ti)hH&sAh=+*AqBdbJ!GG`JljM~rz;(2CD*7s9>P%F?<0s#s68{CK1Jwc zhdU=}CQtKWGF9qkv!q-)qeOHwZ~?(Ok)R4|zG!~y0Q*>V$TsukXW<6S$eWI7{DCQW zI{Wm=2!UN?1yE=W@z?qU5x7TzMZgDc`J#^JdT+ZqHoUOPqJ~MW>m5-(9?;fD-nbE# zvazTw(lHns)!-KwO){b0S3he^ic*S z*QWIBau}#i=sN`Oink&hiYd$COm!O+5*a1f`}3-e#9&@tqOsnN(MH2X-XJfN`h=uo9C#hFtkTpiHGZ^BaD@z#%l5nSE(XeZ;o=LqO6}rN-7l%qZ0&A#;^vK$A9+ZAP zSBEeYGZ4@C+F(oDK?Oc#97E5Sf7KPlUiZ-uVvF?H@Le|s%HwwbRkXl`5Vc|#9+=bp z`|soo9grr-XK!pwM?&zF?r^l@ zBjyy#3UisPweV(XoGyn_)2mQj{e~FGH=Sv0n`I23F9fcg7DR4n4*=vq2%V?v%OVNN1vi*`a^I0zX?-n9TCC9r~Pxc zvYw0+%}YX8+_y@*1^QcQ(jX9+g4Y2k2r7pjDv=@tG8#+Rwg>?$ZR{Wv<#ak&*YXgJ z^bJCk(q#V@&`z}>u1z0ZWr_coI4xb{kzyw$wy5|h#shF5pj0_DH1?YK^~F!wV##et z-tuvVHN9lPJAY(v_~WMh>HYykWo7IO47%q=RW@>exX2D(j!DjOZebW2$ z<*a9ApA$Y!*w|(*-KYc9Hgc9iQ&^&eY$5ek=p}d74L2}?u78kbys-n9P43>cNqQ)O zNFucvyg4n5)ES%;-(56G-1!1WuIGhEUw>>{+X7US52T!c&83>~cVmgaEi~;K_y(A;5D20B@qyegu&e#uFM969f@;7RC3`?tk`ELF0{>xhFb ziSwLfLR*mc>2qZj$l^g< z{gW`*5~Ac>d%?EsPmmyIDP!+Z?_hxBn?J`=%V$SY;Jrp%7o8N)KSp=^v{tzV6R(}* zOy5#RQENT~0!CEwfllpLx0T;+kQxE4*VJ-+`1<<3&7By21%YV6iwixeF2?#@E3|Vv ziD5jzIGBJh{o{l7ea37R`E!ei9=I^HwOC%nag7f6L5sT(!PO!m%>O-d{L$rmVtwD!1P$@9pat2p+T7?QE=CsfZPF5iH<;jX3|@u0`sd>Ml?zj&Y2qUC4noU`3Pxh;DK(@!gK84ot#JG+y7$SkVRs3S8ueRk^eJ zV+&XYH;LMCl-KA358!Bu@O8I*2Kjp}?;cETtXslV#5iY(lSJI28?H`hfvzeNEf6(!2Q$yzvZomK z`A(DK*T>it4P37<8_O-9@7NG?Y%c0x?$G$qm0>unHmwqon`@$OLCneDWNQr)yRrC9iSP4Zox z(71C9``}*8*GA{C4bd21;@UK+jGTO_p~{uZh1?F;t&Mo03Q*z;6%YES?2gYdKHXfb zZq{e#oPyv70QhPBH@#d3R~SwG3Iyu50&xOli{J_+7%+!>D@{xwD<~zs?U8Vvkls$E z`+OL$me2W%*H9|#D`oSdm(~}N=Ua_b?y>Y8Nx%QLQxAvi7gPLkt{iuO@Q zN0jqfLbIvLfXN3!@>36>boBob%3y-YL}L$RMjGi~np>g#Vw1_k{lrMmtVrI&AN1anA2!UEsym_-5Q$Kd#X zmdO9z7y4maC3U{3GFCT<#7W@8Epa@IlZs9ROex1gw7m=lC+#nK?}$HwsVO*#poKZg z$ksp|Fkq&(ZU8QUyD^}2{5L|sDD^pooS(PxN$G~+Bh!l`MzahP$ z0i3_6I<)0W?&=!j6k<)AE+}KTvFrEXOj|gSO7yP)PrI6A>szAw5oOxaYoUMxwnC4g z;;s-%wzgym*O=+rB09hd%tuY?Gs(Yoq*Zb>x5kbkq|2wodItqWx8)W`Yxl&8p@2Kg zznMvZlzjKY(&QICX(YS!(Z-;fx>wGDLKqCeD+pm9MV{LByK)bwt0M|c*`U4qBtSKB_TNKrfDig=IZiYg#K!0_p+0Gvp!L#2cT(B zJ4~@$H+NEt92zqy*GqukZELc6m;4Ih8@%d zstYQlr=jONOM+ORtYZW%Guh;W_Bv((w`oEzu;G5{+wD$}|JPqB_NqQSa9FM+EC?qe zALCdacgk#mYyauP;9Tlk5uQ2aK&Bis4=0GUT|E*F2;H_Qukp6K>Yo|7=iY<7-xT&sGn6 zU3qiA!I+kJejZHv(DGgwgFI`9YSmp^q+cfVJ~#;?VyA!cRH z*7p&Y0YGZQ_ukGAQmwlqYD8HSamv}w3OkA^TuUKgDBQyD0@C5RvXpWqLw1KO^cXtH zhoTb{QNs7GDOz*Nl-G{c&B7nzY-ct8tWDSUEGe$Ow}J&Iw6EL2&I6oiSEDCFgv?LD zAhVmwYN>DFu0V@R%Xg6Mhv>fh>;C*INOJ-RjO?YH6JNfb@)mg`UL=!XklNmhebDJj z(qH;1yC2g3@mFaxr)1k@ZUp+Cdh(vVS9)a=w2-poI}Vj75jMqqU`S*0sx!pPxHsJ# zVW2#6&ciz1iFee|jH$&wef!?@Yem?2?c>^y+6GzdkkGnI`*~#~f>tJ9L(j7$9!*W4 zd!#eXL*{M7D^ASRuhU-h59j^QiNfw!`X9aeQq8r!6(SCJxr4$et|YTA&|hw`zDW|c z|jRYD9FYE;+?+>5o9S_p->+Y(ZrTV;>mExdN^j*MGG*OsJj zQv^*Hb*S2lY>Qxv7ogg2`s7V@tj4=+Pdt{tja+j*@rH-h$dDIyO|{7)zztmG?(twrAXoC&n6L=AI#6|F0aa z|H(7|UtK^y{IOwaX5ZW;@QhO>4jogq93c=We$t8(EGt+80Wa7z@%S_AVdXn-{7l9+ z26{d1j|n0Kk~0J9y-j#t=No*etcnzAAKs0||M18EZ@SR`;=821qg=mnJ!OycZ34J@ zz)FJt2m-)trwlHaD*Nb|OT@}8hk)_|)s*Lf!1PwAH!9_y{{*Ss0Uj{59emL)!HXbLGgY<>5OP z5}|?cv*Jt69UoH4Gpe|(vG`Yc<@nk)uL3lAX%Ucb=K%Q@u)_b}TN?j=T~XRAb_HHR zgzjLcw#Q=t-QNPP-vSw5h;C``4zAl=PKo Date: Fri, 17 Jan 2020 13:09:41 +0300 Subject: [PATCH 30/63] Fix chat background loading --- .../TelegramUI/TelegramUI/ChatControllerNode.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift index a145f181ca..9ebd21cde6 100644 --- a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift @@ -77,6 +77,7 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { } let backgroundNode: WallpaperBackgroundNode + let backgroundDisposable = MetaDisposable() let historyNode: ChatHistoryListNode let reactionContainerNode: ReactionSelectionParentNode let historyNodeContainer: ASDisplayNode @@ -280,7 +281,11 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { } } - self.backgroundNode.image = chatControllerBackgroundImage(theme: chatPresentationInterfaceState.theme, wallpaper: chatPresentationInterfaceState.chatWallpaper, mediaBox: context.sharedContext.accountManager.mediaBox, knockoutMode: context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper) + self.backgroundDisposable.set(chatControllerBackgroundImageSignal(wallpaper: chatPresentationInterfaceState.chatWallpaper, mediaBox: context.sharedContext.accountManager.mediaBox, accountMediaBox: context.account.postbox.mediaBox).start(next: { [weak self] image in + if let strongSelf = self, let (image, final) = image { + strongSelf.backgroundNode.image = image + } + })) if case .gradient = chatPresentationInterfaceState.chatWallpaper { self.backgroundNode.imageContentMode = .scaleToFill } else { @@ -1443,6 +1448,11 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { let themeUpdated = self.chatPresentationInterfaceState.theme !== chatPresentationInterfaceState.theme if self.chatPresentationInterfaceState.chatWallpaper != chatPresentationInterfaceState.chatWallpaper { + self.backgroundDisposable.set(chatControllerBackgroundImageSignal(wallpaper: chatPresentationInterfaceState.chatWallpaper, mediaBox: self.context.sharedContext.accountManager.mediaBox, accountMediaBox: self.context.account.postbox.mediaBox).start(next: { [weak self] image in + if let strongSelf = self, let (image, final) = image { + strongSelf.backgroundNode.image = image + } + })) self.backgroundNode.image = chatControllerBackgroundImage(theme: chatPresentationInterfaceState.theme, wallpaper: chatPresentationInterfaceState.chatWallpaper, mediaBox: context.sharedContext.accountManager.mediaBox, knockoutMode: self.context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper) if case .gradient = chatPresentationInterfaceState.chatWallpaper { self.backgroundNode.imageContentMode = .scaleToFill From 3381933afdc321babedb202b2a58aa47f33386db Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 14:20:33 +0400 Subject: [PATCH 31/63] Disable polls in saved messages --- .../LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift index 536ad692a0..f55097b4a2 100644 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift @@ -301,8 +301,6 @@ public func legacyAttachmentMenu(context: AccountContext, peer: Peer, editMediaO peerSupportsPolls = true } else if let user = peer as? TelegramUser, let _ = user.botInfo { peerSupportsPolls = true - } else if peer.id == context.account.peerId { - peerSupportsPolls = true } if peerSupportsPolls && canSendMessagesToPeer(peer) && canSendPolls { let pollItem = TGMenuSheetButtonItemView(title: presentationData.strings.AttachmentMenu_Poll, type: TGMenuSheetButtonTypeDefault, fontSize: fontSize, action: { [weak controller] in From 9ac0e6a2bf416103ca08f34e89008635606f8b2f Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 16:12:33 +0400 Subject: [PATCH 32/63] Poll improvements --- .../Sources/CreatePollController.swift | 3 +- .../Sources/ItemListPeerItem.swift | 29 +++++-- .../SyncCore/Sources/TelegramMediaPoll.swift | 6 +- submodules/TelegramCore/Sources/Polls.swift | 76 +++++++++++-------- .../TelegramUI/ChatController.swift | 5 +- .../ChatMessageBubbleItemNode.swift | 8 ++ .../ChatMessagePollBubbleContentNode.swift | 2 +- .../ChatPinnedMessageTitlePanelNode.swift | 19 ++++- .../TelegramUI/PollResultsController.swift | 13 ++-- 9 files changed, 111 insertions(+), 50 deletions(-) diff --git a/submodules/ComposePollUI/Sources/CreatePollController.swift b/submodules/ComposePollUI/Sources/CreatePollController.swift index 2ddf3336ac..bb98183821 100644 --- a/submodules/ComposePollUI/Sources/CreatePollController.swift +++ b/submodules/ComposePollUI/Sources/CreatePollController.swift @@ -727,8 +727,8 @@ public func createPollController(context: AccountContext, peer: Peer, isQuiz: Bo } else { kind = .poll(multipleAnswers: state.isMultipleChoice) } - completion(.message(text: "", attributes: [], mediaReference: .standalone(media: TelegramMediaPoll(pollId: MediaId(namespace: Namespaces.Media.LocalPoll, id: arc4random64()), publicity: publicity, kind: kind, text: processPollText(state.text), options: options, correctAnswers: correctAnswers, results: TelegramMediaPollResults(voters: nil, totalVoters: nil, recentVoters: []), isClosed: false)), replyToMessageId: nil, localGroupingKey: nil)) dismissImpl?() + completion(.message(text: "", attributes: [], mediaReference: .standalone(media: TelegramMediaPoll(pollId: MediaId(namespace: Namespaces.Media.LocalPoll, id: arc4random64()), publicity: publicity, kind: kind, text: processPollText(state.text), options: options, correctAnswers: correctAnswers, results: TelegramMediaPollResults(voters: nil, totalVoters: nil, recentVoters: []), isClosed: false)), replyToMessageId: nil, localGroupingKey: nil)) }) let leftNavigationButton = ItemListNavigationButton(content: .text(presentationData.strings.Common_Cancel), style: .regular, enabled: true, action: { @@ -777,7 +777,6 @@ public func createPollController(context: AccountContext, peer: Peer, isQuiz: Bo controller?.present(c, in: .window(.root), with: a) } dismissImpl = { [weak controller] in - //controller?.view.endEditing(true) controller?.dismiss() } ensureTextVisibleImpl = { [weak controller] in diff --git a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift index 9a0a9238d2..333b3973bc 100644 --- a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift +++ b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift @@ -1247,6 +1247,7 @@ public class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNo public final class ItemListPeerItemHeader: ListViewItemHeader { public let id: Int64 public let text: String + public let additionalText: String public let stickDirection: ListViewItemHeaderStickDirection = .topEdge public let theme: PresentationTheme public let strings: PresentationStrings @@ -1255,8 +1256,9 @@ public final class ItemListPeerItemHeader: ListViewItemHeader { public let height: CGFloat = 28.0 - public init(theme: PresentationTheme, strings: PresentationStrings, text: String, actionTitle: String? = nil, id: Int64, action: (() -> Void)? = nil) { + public init(theme: PresentationTheme, strings: PresentationStrings, text: String, additionalText: String, actionTitle: String? = nil, id: Int64, action: (() -> Void)? = nil) { self.text = text + self.additionalText = additionalText self.id = id self.theme = theme self.strings = strings @@ -1265,11 +1267,11 @@ public final class ItemListPeerItemHeader: ListViewItemHeader { } public func node() -> ListViewItemHeaderNode { - return ItemListPeerItemHeaderNode(theme: self.theme, strings: self.strings, text: self.text, actionTitle: self.actionTitle, action: self.action) + return ItemListPeerItemHeaderNode(theme: self.theme, strings: self.strings, text: self.text, additionalText: self.additionalText, actionTitle: self.actionTitle, action: self.action) } public func updateNode(_ node: ListViewItemHeaderNode, previous: ListViewItemHeader?, next: ListViewItemHeader?) { - (node as? ItemListPeerItemHeaderNode)?.update(text: self.text, actionTitle: self.actionTitle, action: self.action) + (node as? ItemListPeerItemHeaderNode)?.update(text: self.text, additionalText: self.additionalText, actionTitle: self.actionTitle, action: self.action) } } @@ -1285,12 +1287,13 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { private let snappedBackgroundNode: ASDisplayNode private let separatorNode: ASDisplayNode private let textNode: ImmediateTextNode + private let additionalTextNode: ImmediateTextNode private let actionTextNode: ImmediateTextNode private let actionButton: HighlightableButtonNode private var stickDistanceFactor: CGFloat? - public init(theme: PresentationTheme, strings: PresentationStrings, text: String, actionTitle: String?, action: (() -> Void)?) { + public init(theme: PresentationTheme, strings: PresentationStrings, text: String, additionalText: String, actionTitle: String?, action: (() -> Void)?) { self.theme = theme self.strings = strings self.actionTitle = actionTitle @@ -1312,9 +1315,13 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { self.textNode = ImmediateTextNode() self.textNode.displaysAsynchronously = false self.textNode.maximumNumberOfLines = 1 - self.textNode.truncationType = .middle self.textNode.attributedText = NSAttributedString(string: text, font: titleFont, textColor: theme.list.sectionHeaderTextColor) + self.additionalTextNode = ImmediateTextNode() + self.additionalTextNode.displaysAsynchronously = false + self.additionalTextNode.maximumNumberOfLines = 1 + self.additionalTextNode.attributedText = NSAttributedString(string: additionalText, font: titleFont, textColor: theme.list.sectionHeaderTextColor) + self.actionTextNode = ImmediateTextNode() self.actionTextNode.displaysAsynchronously = false self.actionTextNode.maximumNumberOfLines = 1 @@ -1329,6 +1336,7 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { self.addSubnode(self.snappedBackgroundNode) self.addSubnode(self.separatorNode) self.addSubnode(self.textNode) + self.addSubnode(self.additionalTextNode) self.addSubnode(self.actionTextNode) self.addSubnode(self.actionButton) @@ -1356,14 +1364,16 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { let titleFont = Font.regular(13.0) self.textNode.attributedText = NSAttributedString(string: self.textNode.attributedText?.string ?? "", font: titleFont, textColor: theme.list.sectionHeaderTextColor) + self.additionalTextNode.attributedText = NSAttributedString(string: self.additionalTextNode.attributedText?.string ?? "", font: titleFont, textColor: theme.list.sectionHeaderTextColor) self.actionTextNode.attributedText = NSAttributedString(string: self.actionTextNode.attributedText?.string ?? "", font: titleFont, textColor: theme.list.sectionHeaderTextColor) } - public func update(text: String, actionTitle: String?, action: (() -> Void)?) { + public func update(text: String, additionalText: String, actionTitle: String?, action: (() -> Void)?) { self.actionTitle = actionTitle self.action = action let titleFont = Font.regular(13.0) self.textNode.attributedText = NSAttributedString(string: text, font: titleFont, textColor: theme.list.sectionHeaderTextColor) + self.additionalTextNode.attributedText = NSAttributedString(string: additionalText, font: titleFont, textColor: theme.list.sectionHeaderTextColor) self.actionTextNode.attributedText = NSAttributedString(string: actionTitle ?? "", font: titleFont, textColor: action == nil ? theme.list.sectionHeaderTextColor : theme.list.itemAccentColor) self.actionButton.isUserInteractionEnabled = self.action != nil if let (size, leftInset, rightInset) = self.validLayout { @@ -1380,9 +1390,12 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { let sideInset: CGFloat = 15.0 + leftInset let actionTextSize = self.actionTextNode.updateLayout(CGSize(width: size.width - sideInset * 2.0, height: size.height)) - let textSize = self.textNode.updateLayout(CGSize(width: size.width - sideInset * 2.0 - actionTextSize.width - 8.0, height: size.height)) + let additionalTextSize = self.additionalTextNode.updateLayout(CGSize(width: size.width - sideInset * 2.0 - actionTextSize.width - 8.0, height: size.height)) + let textSize = self.textNode.updateLayout(CGSize(width: max(1.0, size.width - sideInset * 2.0 - actionTextSize.width - 8.0 - additionalTextSize.width), height: size.height)) - self.textNode.frame = CGRect(origin: CGPoint(x: sideInset, y: 7.0), size: textSize) + let textFrame = CGRect(origin: CGPoint(x: sideInset, y: 7.0), size: textSize) + self.textNode.frame = textFrame + self.additionalTextNode.frame = CGRect(origin: CGPoint(x: textFrame.maxX, y: 7.0), size: additionalTextSize) self.actionTextNode.frame = CGRect(origin: CGPoint(x: size.width - sideInset - actionTextSize.width, y: 7.0), size: actionTextSize) self.actionButton.frame = CGRect(origin: CGPoint(x: size.width - sideInset - actionTextSize.width, y: 0.0), size: CGSize(width: actionTextSize.width, height: size.height)) } diff --git a/submodules/SyncCore/Sources/TelegramMediaPoll.swift b/submodules/SyncCore/Sources/TelegramMediaPoll.swift index 2e6398ac75..942f1ba8fd 100644 --- a/submodules/SyncCore/Sources/TelegramMediaPoll.swift +++ b/submodules/SyncCore/Sources/TelegramMediaPoll.swift @@ -217,13 +217,17 @@ public final class TelegramMediaPoll: Media, Equatable { if min { if let currentVoters = self.results.voters, let updatedVoters = results.voters { var selectedOpaqueIdentifiers = Set() + var correctOpaqueIdentifiers = Set() for voters in currentVoters { if voters.selected { selectedOpaqueIdentifiers.insert(voters.opaqueIdentifier) } + if voters.isCorrect { + correctOpaqueIdentifiers.insert(voters.opaqueIdentifier) + } } updatedResults = TelegramMediaPollResults(voters: updatedVoters.map({ voters in - return TelegramMediaPollOptionVoters(selected: selectedOpaqueIdentifiers.contains(voters.opaqueIdentifier), opaqueIdentifier: voters.opaqueIdentifier, count: voters.count, isCorrect: voters.isCorrect) + return TelegramMediaPollOptionVoters(selected: selectedOpaqueIdentifiers.contains(voters.opaqueIdentifier), opaqueIdentifier: voters.opaqueIdentifier, count: voters.count, isCorrect: correctOpaqueIdentifiers.contains(voters.opaqueIdentifier)) }), totalVoters: results.totalVoters, recentVoters: results.recentVoters) } else { updatedResults = TelegramMediaPollResults(voters: self.results.voters, totalVoters: results.totalVoters, recentVoters: results.recentVoters) diff --git a/submodules/TelegramCore/Sources/Polls.swift b/submodules/TelegramCore/Sources/Polls.swift index 57ec6751b9..19aeb100ec 100644 --- a/submodules/TelegramCore/Sources/Polls.swift +++ b/submodules/TelegramCore/Sources/Polls.swift @@ -21,42 +21,58 @@ public func requestMessageSelectPollOption(account: Account, messageId: MessageI return .generic } |> mapToSignal { result -> Signal in - var resultPoll: TelegramMediaPoll? - switch result { - case let .updates(updates, _, _, _, _): - for update in updates { - switch update { - case let .updateMessagePoll(_, pollId, poll, results): - if let poll = poll { - switch poll { - case let .poll(id, flags, question, answers): - let publicity: TelegramMediaPollPublicity - if (flags & (1 << 1)) != 0 { - publicity = .public - } else { - publicity = .anonymous + return account.postbox.transaction { transaction -> TelegramMediaPoll? in + var resultPoll: TelegramMediaPoll? + switch result { + case let .updates(updates, _, _, _, _): + for update in updates { + switch update { + case let .updateMessagePoll(_, id, poll, results): + let pollId = MediaId(namespace: Namespaces.Media.CloudPoll, id: id) + resultPoll = transaction.getMedia(pollId) as? TelegramMediaPoll + if let poll = poll { + switch poll { + case let .poll(id, flags, question, answers): + let publicity: TelegramMediaPollPublicity + if (flags & (1 << 1)) != 0 { + publicity = .public + } else { + publicity = .anonymous + } + let kind: TelegramMediaPollKind + if (flags & (1 << 3)) != 0 { + kind = .quiz + } else { + kind = .poll(multipleAnswers: (flags & (1 << 2)) != 0) + } + resultPoll = TelegramMediaPoll(pollId: pollId, publicity: publicity, kind: kind, text: question, options: answers.map(TelegramMediaPollOption.init(apiOption:)), correctAnswers: nil, results: TelegramMediaPollResults(apiResults: results), isClosed: (flags & (1 << 0)) != 0) + default: + break } - let kind: TelegramMediaPollKind - if (flags & (1 << 3)) != 0 { - kind = .quiz - } else { - kind = .poll(multipleAnswers: (flags & (1 << 2)) != 0) - } - resultPoll = TelegramMediaPoll(pollId: MediaId(namespace: Namespaces.Media.CloudPoll, id: id), publicity: publicity, kind: kind, text: question, options: answers.map(TelegramMediaPollOption.init(apiOption:)), correctAnswers: nil, results: TelegramMediaPollResults(apiResults: results), isClosed: (flags & (1 << 0)) != 0) - default: - break } + + let resultsMin: Bool + switch results { + case let .pollResults(pollResults): + resultsMin = (pollResults.flags & (1 << 0)) != 0 + } + resultPoll = resultPoll?.withUpdatedResults(TelegramMediaPollResults(apiResults: results), min: resultsMin) + + if let resultPoll = resultPoll { + updateMessageMedia(transaction: transaction, id: pollId, media: resultPoll) + } + default: + break } - default: - break } + break + default: + break } - break - default: - break + account.stateManager.addUpdates(result) + return resultPoll } - account.stateManager.addUpdates(result) - return .single(resultPoll) + |> castError(RequestMessageSelectPollOptionError.self) } } else { return .single(nil) diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index b7253dfc69..b07dae10d7 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -1636,7 +1636,10 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G return } if controllerInteraction.pollActionState.pollMessageIdsInProgress.removeValue(forKey: id) != nil { - strongSelf.chatDisplayNode.historyNode.requestMessageUpdate(id) + Queue.mainQueue().after(1.0, { + + strongSelf.chatDisplayNode.historyNode.requestMessageUpdate(id) + }) } }), forKey: id) } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift index 05621ba520..a507081fd5 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift @@ -2909,6 +2909,14 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode } func animateQuizInvalidOptionSelected() { + if let supernode = self.supernode, let subnodes = supernode.subnodes { + for i in 0 ..< subnodes.count { + if subnodes[i] === self { + break + } + } + } + let duration: Double = 0.5 let minScale: CGFloat = -0.03 let scaleAnimation0 = self.layer.makeAnimation(from: 0.0 as NSNumber, to: minScale as NSNumber, keyPath: "transform.scale", timingFunction: CAMediaTimingFunctionName.linear.rawValue, duration: duration / 2.0, removeOnCompletion: false, additive: true, completion: { [weak self] _ in diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index e2e39ecf99..6ffc55bb1b 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -1361,7 +1361,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { if optionNode.frame.contains(point), case .tap = gesture { if optionNode.isUserInteractionEnabled { return .ignore - } else if let result = optionNode.currentResult, let item = self.item, let poll = self.poll, let option = optionNode.option { + } else if let result = optionNode.currentResult, let item = self.item, !Namespaces.Message.allScheduled.contains(item.message.id.namespace), let poll = self.poll, let option = optionNode.option { switch poll.publicity { case .anonymous: let string: String diff --git a/submodules/TelegramUI/TelegramUI/ChatPinnedMessageTitlePanelNode.swift b/submodules/TelegramUI/TelegramUI/ChatPinnedMessageTitlePanelNode.swift index 1df5cce3f6..e89377d3c9 100644 --- a/submodules/TelegramUI/TelegramUI/ChatPinnedMessageTitlePanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatPinnedMessageTitlePanelNode.swift @@ -13,6 +13,23 @@ import StickerResources import PhotoResources import TelegramStringFormatting +private func foldLineBreaks(_ text: String) -> String { + var lines = text.split { $0.isNewline } + var startedBothLines = false + var result = "" + for line in lines { + if line.isEmpty { + continue + } + if result.isEmpty { + result += line + } else { + result += " " + line + } + } + return result +} + final class ChatPinnedMessageTitlePanelNode: ChatTitleAccessoryPanelNode { private let context: AccountContext private let tapButton: HighlightTrackingButtonNode @@ -238,7 +255,7 @@ final class ChatPinnedMessageTitlePanelNode: ChatTitleAccessoryPanelNode { let (titleLayout, titleApply) = makeTitleLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: titleString, font: Font.medium(15.0), textColor: theme.chat.inputPanel.panelControlAccentColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: width - textLineInset - contentLeftInset - rightInset - textRightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets(top: 2.0, left: 0.0, bottom: 2.0, right: 0.0))) - let (textLayout, textApply) = makeTextLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: descriptionStringForMessage(contentSettings: context.currentContentSettings.with { $0 }, message: message, strings: strings, nameDisplayOrder: nameDisplayOrder, accountPeerId: accountPeerId).0, font: Font.regular(15.0), textColor: message.media.isEmpty || message.media.first is TelegramMediaWebpage ? theme.chat.inputPanel.primaryTextColor : theme.chat.inputPanel.secondaryTextColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: width - textLineInset - contentLeftInset - rightInset - textRightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets(top: 2.0, left: 0.0, bottom: 2.0, right: 0.0))) + let (textLayout, textApply) = makeTextLayout(TextNodeLayoutArguments(attributedString: NSAttributedString(string: foldLineBreaks(descriptionStringForMessage(contentSettings: context.currentContentSettings.with { $0 }, message: message, strings: strings, nameDisplayOrder: nameDisplayOrder, accountPeerId: accountPeerId).0), font: Font.regular(15.0), textColor: message.media.isEmpty || message.media.first is TelegramMediaWebpage ? theme.chat.inputPanel.primaryTextColor : theme.chat.inputPanel.secondaryTextColor), backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: width - textLineInset - contentLeftInset - rightInset - textRightInset, height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets(top: 2.0, left: 0.0, bottom: 2.0, right: 0.0))) Queue.mainQueue().async { if let strongSelf = self { diff --git a/submodules/TelegramUI/TelegramUI/PollResultsController.swift b/submodules/TelegramUI/TelegramUI/PollResultsController.swift index ca3c1156d4..177ca29828 100644 --- a/submodules/TelegramUI/TelegramUI/PollResultsController.swift +++ b/submodules/TelegramUI/TelegramUI/PollResultsController.swift @@ -61,7 +61,7 @@ private enum PollResultsItemTag: ItemListItemTag, Equatable { private enum PollResultsEntry: ItemListNodeEntry { case text(String) - case optionPeer(optionId: Int, index: Int, peer: RenderedPeer, optionText: String, optionCount: Int32, optionExpanded: Bool, opaqueIdentifier: Data, shimmeringAlternation: Int?, isFirstInOption: Bool) + case optionPeer(optionId: Int, index: Int, peer: RenderedPeer, optionText: String, optionAdditionalText: String, optionCount: Int32, optionExpanded: Bool, opaqueIdentifier: Data, shimmeringAlternation: Int?, isFirstInOption: Bool) case optionExpand(optionId: Int, opaqueIdentifier: Data, text: String, enabled: Bool) var section: ItemListSectionId { @@ -137,8 +137,8 @@ private enum PollResultsEntry: ItemListNodeEntry { switch self { case let .text(text): return ItemListTextItem(presentationData: presentationData, text: .large(text), sectionId: self.section) - case let .optionPeer(optionId, _, peer, optionText, optionCount, optionExpanded, opaqueIdentifier, shimmeringAlternation, isFirstInOption): - let header = ItemListPeerItemHeader(theme: presentationData.theme, strings: presentationData.strings, text: optionText, actionTitle: optionExpanded ? presentationData.strings.PollResults_Collapse : presentationData.strings.MessagePoll_VotedCount(optionCount), id: Int64(optionId), action: optionExpanded ? { + case let .optionPeer(optionId, _, peer, optionText, optionAdditionalText, optionCount, optionExpanded, opaqueIdentifier, shimmeringAlternation, isFirstInOption): + let header = ItemListPeerItemHeader(theme: presentationData.theme, strings: presentationData.strings, text: optionText, additionalText: optionAdditionalText, actionTitle: optionExpanded ? presentationData.strings.PollResults_Collapse : presentationData.strings.MessagePoll_VotedCount(optionCount), id: Int64(optionId), action: optionExpanded ? { arguments.collapseOption(opaqueIdentifier) } : nil) return ItemListPeerItem(presentationData: presentationData, dateTimeFormat: PresentationDateTimeFormat(timeFormat: .regular, dateFormat: .dayFirst, dateSeparator: ".", decimalSeparator: ".", groupingSeparator: ""), nameDisplayOrder: .firstLast, context: arguments.context, peer: peer.peers[peer.peerId]!, presence: nil, text: .none, label: .none, editing: ItemListPeerItemEditing(editable: false, editing: false, revealed: false), switchValue: nil, enabled: true, selectable: shimmeringAlternation == nil, sectionId: self.section, action: { @@ -193,7 +193,8 @@ private func pollResultsControllerEntries(presentationData: PresentationData, po for i in 0 ..< poll.options.count { let percentage = optionPercentage.count > i ? optionPercentage[i] : 0 let option = poll.options[i] - let optionTextHeader = option.text.uppercased() + " — \(percentage)%" + let optionTextHeader = option.text.uppercased() + let optionAdditionalTextHeader = " — \(percentage)%" if isEmpty { if let voterCount = optionVoterCount[i], voterCount != 0 { let displayCount: Int @@ -205,7 +206,7 @@ private func pollResultsControllerEntries(presentationData: PresentationData, po for peerIndex in 0 ..< displayCount { let fakeUser = TelegramUser(id: PeerId(namespace: -1, id: 0), accessHash: nil, firstName: "", lastName: "", username: nil, phone: nil, photo: [], botInfo: nil, restrictionInfo: nil, flags: []) let peer = RenderedPeer(peer: fakeUser) - entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: optionTextHeader, optionCount: voterCount, optionExpanded: false, opaqueIdentifier: option.opaqueIdentifier, shimmeringAlternation: peerIndex % 2, isFirstInOption: peerIndex == 0)) + entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: optionTextHeader, optionAdditionalText: optionAdditionalTextHeader, optionCount: voterCount, optionExpanded: false, opaqueIdentifier: option.opaqueIdentifier, shimmeringAlternation: peerIndex % 2, isFirstInOption: peerIndex == 0)) } if displayCount < Int(voterCount) { let remainingCount = Int(voterCount) - displayCount @@ -248,7 +249,7 @@ private func pollResultsControllerEntries(presentationData: PresentationData, po if peerIndex >= displayCount { break inner } - entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: optionTextHeader, optionCount: Int32(count), optionExpanded: optionExpandedAtCount != nil, opaqueIdentifier: option.opaqueIdentifier, shimmeringAlternation: nil, isFirstInOption: peerIndex == 0)) + entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: optionTextHeader, optionAdditionalText: optionAdditionalTextHeader, optionCount: Int32(count), optionExpanded: optionExpandedAtCount != nil, opaqueIdentifier: option.opaqueIdentifier, shimmeringAlternation: nil, isFirstInOption: peerIndex == 0)) peerIndex += 1 } From c8fe73a6a2ac6e6b7364bdeb67563cce3f714203 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 17 Jan 2020 16:19:38 +0300 Subject: [PATCH 33/63] Fix default show calls tab switch value in Calls List --- submodules/CallListUI/Sources/CallListControllerNode.swift | 2 +- submodules/TelegramUI/TelegramUI/ApplicationContext.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/CallListUI/Sources/CallListControllerNode.swift b/submodules/CallListUI/Sources/CallListControllerNode.swift index bf90cd5308..96c2880606 100644 --- a/submodules/CallListUI/Sources/CallListControllerNode.swift +++ b/submodules/CallListUI/Sources/CallListControllerNode.swift @@ -288,7 +288,7 @@ final class CallListControllerNode: ASDisplayNode { let showCallsTab = context.sharedContext.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.callListSettings]) |> map { sharedData -> Bool in - var value = true + var value = CallListSettings.defaultSettings.showTab if let settings = sharedData.entries[ApplicationSpecificSharedDataKeys.callListSettings] as? CallListSettings { value = settings.showTab } diff --git a/submodules/TelegramUI/TelegramUI/ApplicationContext.swift b/submodules/TelegramUI/TelegramUI/ApplicationContext.swift index c28bc4b733..eeaa5b2e6d 100644 --- a/submodules/TelegramUI/TelegramUI/ApplicationContext.swift +++ b/submodules/TelegramUI/TelegramUI/ApplicationContext.swift @@ -659,7 +659,7 @@ final class AuthorizedApplicationContext { let showCallsTabSignal = context.sharedContext.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.callListSettings]) |> map { sharedData -> Bool in - var value = false + var value = CallListSettings.defaultSettings.showTab if let settings = sharedData.entries[ApplicationSpecificSharedDataKeys.callListSettings] as? CallListSettings { value = settings.showTab } From 552453db8a54ec3f11b96c9ad36a97e9d8d10710 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 17 Jan 2020 17:11:02 +0300 Subject: [PATCH 34/63] Localize "Places in this area" button --- Telegram-iOS/en.lproj/Localizable.strings | 2 + .../Sources/LocationMapHeaderNode.swift | 2 +- .../Sources/PresentationStrings.swift | 2653 +++++++++-------- .../Resources/PresentationStrings.mapping | Bin 144139 -> 144171 bytes 4 files changed, 1330 insertions(+), 1327 deletions(-) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index 1dac51b662..5b96d4431d 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -5280,3 +5280,5 @@ Any member of this group will be able to see messages in the channel."; "Forward.ErrorDisabledForChat" = "Sorry, you can't forward messages to this chat."; "Forward.ErrorPublicPollDisabledInChannels" = "Sorry, public polls can’t be forwarded to channels."; "Forward.ErrorPublicQuizDisabledInChannels" = "Sorry, public polls can’t be forwarded to channels."; + +"Map.PlacesInThisArea" = "Places In This Area"; diff --git a/submodules/LocationUI/Sources/LocationMapHeaderNode.swift b/submodules/LocationUI/Sources/LocationMapHeaderNode.swift index 30bf055109..817b6fa7a7 100644 --- a/submodules/LocationUI/Sources/LocationMapHeaderNode.swift +++ b/submodules/LocationUI/Sources/LocationMapHeaderNode.swift @@ -84,7 +84,7 @@ final class LocationMapHeaderNode: ASDisplayNode { self.placesBackgroundNode.isUserInteractionEnabled = true self.placesButtonNode = HighlightableButtonNode() - self.placesButtonNode.setTitle("Places In This Area", with: Font.regular(17.0), with: presentationData.theme.rootController.navigationBar.buttonColor, for: .normal) + self.placesButtonNode.setTitle(presentationData.strings.Map_PlacesInThisArea, with: Font.regular(17.0), with: presentationData.theme.rootController.navigationBar.buttonColor, for: .normal) self.shadowNode = ASImageNode() self.shadowNode.contentMode = .scaleToFill diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 14d6d0145a..08c5862b4c 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -3438,1404 +3438,1408 @@ public final class PresentationStrings: Equatable { public var Watch_Location_Current: String { return self._s[3026]! } public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3027]! } public var Conversation_TitleMute: String { return self._s[3028]! } + public var Map_PlacesInThisArea: String { return self._s[3029]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3029]!, self._r[3029]!, [_1]) + return formatWithArgumentRanges(self._s[3030]!, self._r[3030]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[3030]! } + public var GroupInfo_DeleteAndExit: String { return self._s[3031]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3031]!, self._r[3031]!, [_0]) + return formatWithArgumentRanges(self._s[3032]!, self._r[3032]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[3032]! } - public var Chat_SlowmodeSendError: String { return self._s[3033]! } - public var MaskStickerSettings_Info: String { return self._s[3034]! } - public var EditTheme_Expand_TopInfo: String { return self._s[3035]! } + public var Call_ReportPlaceholder: String { return self._s[3033]! } + public var Chat_SlowmodeSendError: String { return self._s[3034]! } + public var MaskStickerSettings_Info: String { return self._s[3035]! } + public var EditTheme_Expand_TopInfo: String { return self._s[3036]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3036]!, self._r[3036]!, [_0]) + return formatWithArgumentRanges(self._s[3037]!, self._r[3037]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[3037]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3039]! } - public var Contacts_ShareTelegram: String { return self._s[3040]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3041]! } - public var Map_AddressOnMap: String { return self._s[3042]! } - public var Channel_ErrorAccessDenied: String { return self._s[3043]! } - public var UserInfo_ScamBotWarning: String { return self._s[3045]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[3046]! } - public var Call_ConnectionErrorTitle: String { return self._s[3047]! } - public var UserInfo_NotificationsEnable: String { return self._s[3048]! } - public var ArchivedChats_IntroText1: String { return self._s[3049]! } - public var Tour_Text4: String { return self._s[3052]! } - public var WallpaperSearch_Recent: String { return self._s[3053]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[3054]! } - public var Profile_MessageLifetime2s: String { return self._s[3056]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3057]! } - public var Notification_MessageLifetime2s: String { return self._s[3058]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[3038]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3040]! } + public var Contacts_ShareTelegram: String { return self._s[3041]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3042]! } + public var Map_AddressOnMap: String { return self._s[3043]! } + public var Channel_ErrorAccessDenied: String { return self._s[3044]! } + public var UserInfo_ScamBotWarning: String { return self._s[3046]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[3047]! } + public var Call_ConnectionErrorTitle: String { return self._s[3048]! } + public var UserInfo_NotificationsEnable: String { return self._s[3049]! } + public var ArchivedChats_IntroText1: String { return self._s[3050]! } + public var Tour_Text4: String { return self._s[3053]! } + public var WallpaperSearch_Recent: String { return self._s[3054]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[3055]! } + public var Profile_MessageLifetime2s: String { return self._s[3057]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3058]! } + public var Notification_MessageLifetime2s: String { return self._s[3059]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3059]!, self._r[3059]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3060]!, self._r[3060]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[3060]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3061]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3062]! } + public var Cache_ClearCache: String { return self._s[3061]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3062]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3063]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3066]!, self._r[3066]!, [_0]) + return formatWithArgumentRanges(self._s[3067]!, self._r[3067]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3068]!, self._r[3068]!, [_0]) + return formatWithArgumentRanges(self._s[3069]!, self._r[3069]!, [_0]) } - public var LocalGroup_Text: String { return self._s[3069]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3070]! } - public var SocksProxySetup_TypeSocks: String { return self._s[3071]! } - public var ChatList_UnarchiveAction: String { return self._s[3072]! } - public var AutoNightTheme_Title: String { return self._s[3073]! } - public var InstantPage_FeedbackButton: String { return self._s[3074]! } - public var Passport_FieldAddress: String { return self._s[3075]! } + public var LocalGroup_Text: String { return self._s[3070]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3071]! } + public var SocksProxySetup_TypeSocks: String { return self._s[3072]! } + public var ChatList_UnarchiveAction: String { return self._s[3073]! } + public var AutoNightTheme_Title: String { return self._s[3074]! } + public var InstantPage_FeedbackButton: String { return self._s[3075]! } + public var Passport_FieldAddress: String { return self._s[3076]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3076]!, self._r[3076]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3077]!, self._r[3077]!, [_1, _2]) } - public var Month_ShortMarch: String { return self._s[3077]! } + public var Month_ShortMarch: String { return self._s[3078]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3078]!, self._r[3078]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3079]!, self._r[3079]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3079]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3080]! } - public var Passport_FloodError: String { return self._s[3081]! } - public var SecretGif_Title: String { return self._s[3082]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3083]! } - public var ChatList_Context_UnhideArchive: String { return self._s[3084]! } - public var Passport_Language_th: String { return self._s[3086]! } - public var Passport_Address_Address: String { return self._s[3087]! } - public var Login_InvalidLastNameError: String { return self._s[3088]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3089]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[3090]! } - public var ChatList_Context_Archive: String { return self._s[3091]! } - public var SettingsSearch_FAQ: String { return self._s[3092]! } - public var ShareMenu_Send: String { return self._s[3093]! } - public var WallpaperSearch_ColorYellow: String { return self._s[3095]! } - public var Month_GenNovember: String { return self._s[3097]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3099]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3080]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3081]! } + public var Passport_FloodError: String { return self._s[3082]! } + public var SecretGif_Title: String { return self._s[3083]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3084]! } + public var ChatList_Context_UnhideArchive: String { return self._s[3085]! } + public var Passport_Language_th: String { return self._s[3087]! } + public var Passport_Address_Address: String { return self._s[3088]! } + public var Login_InvalidLastNameError: String { return self._s[3089]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3090]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[3091]! } + public var ChatList_Context_Archive: String { return self._s[3092]! } + public var SettingsSearch_FAQ: String { return self._s[3093]! } + public var ShareMenu_Send: String { return self._s[3094]! } + public var WallpaperSearch_ColorYellow: String { return self._s[3096]! } + public var Month_GenNovember: String { return self._s[3098]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3100]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3100]!, self._r[3100]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3101]!, self._r[3101]!, [_1, _2]) } - public var Conversation_SwipeToReplyHintText: String { return self._s[3101]! } - public var Checkout_Email: String { return self._s[3102]! } - public var NotificationsSound_Tritone: String { return self._s[3103]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[3105]! } - public var Wallet_ContextMenuCopy: String { return self._s[3107]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3102]! } + public var Checkout_Email: String { return self._s[3103]! } + public var NotificationsSound_Tritone: String { return self._s[3104]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[3106]! } + public var Wallet_ContextMenuCopy: String { return self._s[3108]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3109]!, self._r[3109]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3110]!, self._r[3110]!, [_1, _2, _3]) } - public var Appearance_TextSize_Automatic: String { return self._s[3110]! } + public var Appearance_TextSize_Automatic: String { return self._s[3111]! } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3111]!, self._r[3111]!, [_1]) + return formatWithArgumentRanges(self._s[3112]!, self._r[3112]!, [_1]) } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3112]!, self._r[3112]!, [_0]) + return formatWithArgumentRanges(self._s[3113]!, self._r[3113]!, [_0]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[3113]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[3114]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3114]!, self._r[3114]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3115]!, self._r[3115]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[3115]! } - public var Notification_Exceptions_Add: String { return self._s[3116]! } - public var DialogList_You: String { return self._s[3117]! } - public var MediaPicker_Send: String { return self._s[3120]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3121]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3122]! } - public var Call_AudioRouteSpeaker: String { return self._s[3123]! } - public var Watch_UserInfo_Title: String { return self._s[3124]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[3125]! } - public var Appearance_AccentColor: String { return self._s[3127]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3116]! } + public var Notification_Exceptions_Add: String { return self._s[3117]! } + public var DialogList_You: String { return self._s[3118]! } + public var MediaPicker_Send: String { return self._s[3121]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3122]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3123]! } + public var Call_AudioRouteSpeaker: String { return self._s[3124]! } + public var Watch_UserInfo_Title: String { return self._s[3125]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[3126]! } + public var Appearance_AccentColor: String { return self._s[3128]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3128]!, self._r[3128]!, [_0]) + return formatWithArgumentRanges(self._s[3129]!, self._r[3129]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3129]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3130]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3130]!, self._r[3130]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3131]!, self._r[3131]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[3131]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3132]! } - public var Notification_CallOutgoing: String { return self._s[3133]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3134]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3135]! } - public var Call_RecordingDisabledMessage: String { return self._s[3136]! } - public var Message_Game: String { return self._s[3137]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[3138]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3139]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3140]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3141]! } - public var Date_DialogDateFormat: String { return self._s[3143]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3144]! } - public var Notifications_InAppNotifications: String { return self._s[3145]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[3132]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3133]! } + public var Notification_CallOutgoing: String { return self._s[3134]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3135]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3136]! } + public var Call_RecordingDisabledMessage: String { return self._s[3137]! } + public var Message_Game: String { return self._s[3138]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[3139]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3140]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3141]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3142]! } + public var Date_DialogDateFormat: String { return self._s[3144]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3145]! } + public var Notifications_InAppNotifications: String { return self._s[3146]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3146]!, self._r[3146]!, [_0]) + return formatWithArgumentRanges(self._s[3147]!, self._r[3147]!, [_0]) } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3147]!, self._r[3147]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3148]!, self._r[3148]!, [_1, _2]) } - public var NewContact_Title: String { return self._s[3148]! } + public var NewContact_Title: String { return self._s[3149]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3149]!, self._r[3149]!, [_0]) + return formatWithArgumentRanges(self._s[3150]!, self._r[3150]!, [_0]) } - public var Conversation_ViewContactDetails: String { return self._s[3150]! } + public var Conversation_ViewContactDetails: String { return self._s[3151]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3152]!, self._r[3152]!, [_1]) + return formatWithArgumentRanges(self._s[3153]!, self._r[3153]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3153]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3154]! } - public var PrivacySettings_Title: String { return self._s[3155]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3158]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[3159]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[3160]! } - public var Contacts_PhoneNumber: String { return self._s[3161]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3163]! } - public var Map_ShowPlaces: String { return self._s[3164]! } - public var ChatAdmins_Title: String { return self._s[3165]! } - public var InstantPage_Reference: String { return self._s[3167]! } - public var Wallet_Info_Updating: String { return self._s[3168]! } - public var ReportGroupLocation_Text: String { return self._s[3169]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3154]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3155]! } + public var PrivacySettings_Title: String { return self._s[3156]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3159]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[3160]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[3161]! } + public var Contacts_PhoneNumber: String { return self._s[3162]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3164]! } + public var Map_ShowPlaces: String { return self._s[3165]! } + public var ChatAdmins_Title: String { return self._s[3166]! } + public var InstantPage_Reference: String { return self._s[3168]! } + public var Wallet_Info_Updating: String { return self._s[3169]! } + public var ReportGroupLocation_Text: String { return self._s[3170]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3170]!, self._r[3170]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3171]!, self._r[3171]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[3171]! } - public var Watch_UserInfo_Block: String { return self._s[3172]! } - public var ChatSettings_Stickers: String { return self._s[3173]! } - public var ChatSettings_DownloadInBackground: String { return self._s[3174]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3175]! } + public var Camera_FlashOff: String { return self._s[3172]! } + public var Watch_UserInfo_Block: String { return self._s[3173]! } + public var ChatSettings_Stickers: String { return self._s[3174]! } + public var ChatSettings_DownloadInBackground: String { return self._s[3175]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3176]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3176]!, self._r[3176]!, [_0]) + return formatWithArgumentRanges(self._s[3177]!, self._r[3177]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[3177]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3178]! } - public var AutoDownloadSettings_Cellular: String { return self._s[3179]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[3180]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3181]! } - public var VoiceOver_MessageContextShare: String { return self._s[3182]! } + public var Settings_ViewPhoto: String { return self._s[3178]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3179]! } + public var AutoDownloadSettings_Cellular: String { return self._s[3180]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[3181]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3182]! } + public var VoiceOver_MessageContextShare: String { return self._s[3183]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3184]!, self._r[3184]!, [_0]) + return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_0]) } - public var Privacy_DeleteDrafts: String { return self._s[3185]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3186]! } + public var Privacy_DeleteDrafts: String { return self._s[3186]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3187]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3187]!, self._r[3187]!, [_0]) + return formatWithArgumentRanges(self._s[3188]!, self._r[3188]!, [_0]) } - public var DialogList_SavedMessagesHelp: String { return self._s[3188]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3189]! } - public var DialogList_SavedMessages: String { return self._s[3190]! } - public var GroupInfo_UpgradeButton: String { return self._s[3191]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3193]! } - public var DialogList_Pin: String { return self._s[3194]! } + public var DialogList_SavedMessagesHelp: String { return self._s[3189]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3190]! } + public var DialogList_SavedMessages: String { return self._s[3191]! } + public var GroupInfo_UpgradeButton: String { return self._s[3192]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3194]! } + public var DialogList_Pin: String { return self._s[3195]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3195]!, self._r[3195]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3196]!, self._r[3196]!, [_0, _1]) } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3196]!, self._r[3196]!, [_0]) + return formatWithArgumentRanges(self._s[3197]!, self._r[3197]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3197]! } - public var UserInfo_NotificationsDisable: String { return self._s[3198]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[3199]! } - public var Paint_Outlined: String { return self._s[3200]! } - public var Activity_PlayingGame: String { return self._s[3201]! } - public var SearchImages_NoImagesFound: String { return self._s[3202]! } - public var SocksProxySetup_ProxyType: String { return self._s[3203]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3205]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3206]! } - public var Settings_AppLanguage: String { return self._s[3207]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3208]! } - public var Common_ChoosePhoto: String { return self._s[3209]! } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3210]! } - public var CallFeedback_ReasonEcho: String { return self._s[3211]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3198]! } + public var UserInfo_NotificationsDisable: String { return self._s[3199]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[3200]! } + public var Paint_Outlined: String { return self._s[3201]! } + public var Activity_PlayingGame: String { return self._s[3202]! } + public var SearchImages_NoImagesFound: String { return self._s[3203]! } + public var SocksProxySetup_ProxyType: String { return self._s[3204]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3206]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3207]! } + public var Settings_AppLanguage: String { return self._s[3208]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3209]! } + public var Common_ChoosePhoto: String { return self._s[3210]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3211]! } + public var CallFeedback_ReasonEcho: String { return self._s[3212]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3212]!, self._r[3212]!, [_1]) + return formatWithArgumentRanges(self._s[3213]!, self._r[3213]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3213]! } - public var PollResults_Collapse: String { return self._s[3214]! } - public var Activity_UploadingVideo: String { return self._s[3215]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3216]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3217]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3218]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3219]! } - public var PUSH_SENDER_YOU: String { return self._s[3220]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3221]! } - public var Checkout_PayWithTouchId: String { return self._s[3222]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3223]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3214]! } + public var PollResults_Collapse: String { return self._s[3215]! } + public var Activity_UploadingVideo: String { return self._s[3216]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3217]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3218]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3219]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3220]! } + public var PUSH_SENDER_YOU: String { return self._s[3221]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3222]! } + public var Checkout_PayWithTouchId: String { return self._s[3223]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3224]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3225]!, self._r[3225]!, [_1]) + return formatWithArgumentRanges(self._s[3226]!, self._r[3226]!, [_1]) } - public var Notifications_ExceptionsNone: String { return self._s[3226]! } + public var Notifications_ExceptionsNone: String { return self._s[3227]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3227]!, self._r[3227]!, [_0]) + return formatWithArgumentRanges(self._s[3228]!, self._r[3228]!, [_0]) } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3228]!, self._r[3228]!, [_1]) + return formatWithArgumentRanges(self._s[3229]!, self._r[3229]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3230]! } - public var Passport_Address_Region: String { return self._s[3233]! } - public var ChatList_DeleteChat: String { return self._s[3234]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3235]! } - public var PhotoEditor_TiltShift: String { return self._s[3236]! } - public var Settings_FAQ_URL: String { return self._s[3237]! } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3238]! } - public var Passport_Language_sl: String { return self._s[3239]! } - public var Settings_PrivacySettings: String { return self._s[3241]! } - public var SharedMedia_TitleLink: String { return self._s[3242]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3243]! } - public var Settings_SetProfilePhoto: String { return self._s[3244]! } - public var Channel_About_Help: String { return self._s[3245]! } - public var Contacts_PermissionsEnable: String { return self._s[3246]! } - public var Wallet_Sending_Title: String { return self._s[3247]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3248]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3249]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3251]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3252]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3253]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3254]! } - public var OldChannels_Title: String { return self._s[3255]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3256]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3258]! } - public var Map_OpenInYandexMaps: String { return self._s[3260]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3261]! } - public var VoiceOver_MessageContextReply: String { return self._s[3262]! } - public var PhotoEditor_SaturationTool: String { return self._s[3264]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3231]! } + public var Passport_Address_Region: String { return self._s[3234]! } + public var ChatList_DeleteChat: String { return self._s[3235]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3236]! } + public var PhotoEditor_TiltShift: String { return self._s[3237]! } + public var Settings_FAQ_URL: String { return self._s[3238]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3239]! } + public var Passport_Language_sl: String { return self._s[3240]! } + public var Settings_PrivacySettings: String { return self._s[3242]! } + public var SharedMedia_TitleLink: String { return self._s[3243]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3244]! } + public var Settings_SetProfilePhoto: String { return self._s[3245]! } + public var Channel_About_Help: String { return self._s[3246]! } + public var Contacts_PermissionsEnable: String { return self._s[3247]! } + public var Wallet_Sending_Title: String { return self._s[3248]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3249]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3250]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3252]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3253]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3254]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3255]! } + public var OldChannels_Title: String { return self._s[3256]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3257]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3259]! } + public var Map_OpenInYandexMaps: String { return self._s[3261]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3262]! } + public var VoiceOver_MessageContextReply: String { return self._s[3263]! } + public var PhotoEditor_SaturationTool: String { return self._s[3265]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3265]!, self._r[3265]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3266]!, self._r[3266]!, [_1, _2]) } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3266]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3267]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3268]! } + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3267]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3268]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3269]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3270]!, self._r[3270]!, [_1, "\(_2)"]) } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3270]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3272]! } - public var SettingsSearch_Synonyms_Wallet: String { return self._s[3273]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3271]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3273]! } + public var SettingsSearch_Synonyms_Wallet: String { return self._s[3274]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3275]!, self._r[3275]!, [_1, _2]) } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3275]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3276]! } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3276]!, self._r[3276]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3277]!, self._r[3277]!, [_1, _2, _3]) } - public var WallpaperPreview_PatternTitle: String { return self._s[3277]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[3278]! } - public var Passport_PassportInformation: String { return self._s[3281]! } - public var Theme_Unsupported: String { return self._s[3282]! } - public var WatchRemote_AlertTitle: String { return self._s[3283]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3284]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3286]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3278]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3279]! } + public var Passport_PassportInformation: String { return self._s[3282]! } + public var Theme_Unsupported: String { return self._s[3283]! } + public var WatchRemote_AlertTitle: String { return self._s[3284]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3285]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3287]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3287]!, self._r[3287]!, [_0]) + return formatWithArgumentRanges(self._s[3288]!, self._r[3288]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3288]!, self._r[3288]!, [_1]) + return formatWithArgumentRanges(self._s[3289]!, self._r[3289]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3289]! } - public var Wallet_Navigation_Done: String { return self._s[3291]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3292]! } - public var AccessDenied_CameraDisabled: String { return self._s[3293]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3290]! } + public var Wallet_Navigation_Done: String { return self._s[3292]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3293]! } + public var AccessDenied_CameraDisabled: String { return self._s[3294]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3294]!, self._r[3294]!, [_0]) + return formatWithArgumentRanges(self._s[3295]!, self._r[3295]!, [_0]) } - public var ClearCache_Forever: String { return self._s[3295]! } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3296]! } - public var CreatePoll_Quiz: String { return self._s[3297]! } - public var PhotoEditor_ContrastTool: String { return self._s[3300]! } + public var ClearCache_Forever: String { return self._s[3296]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3297]! } + public var CreatePoll_Quiz: String { return self._s[3298]! } + public var PhotoEditor_ContrastTool: String { return self._s[3301]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3301]!, self._r[3301]!, [_1]) + return formatWithArgumentRanges(self._s[3302]!, self._r[3302]!, [_1]) } - public var DialogList_Draft: String { return self._s[3302]! } - public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3303]! } - public var Privacy_TopPeersDelete: String { return self._s[3305]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3306]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3307]! } - public var WebSearch_RecentSectionClear: String { return self._s[3308]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3309]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3311]! } - public var Common_Done: String { return self._s[3313]! } - public var Shortcut_SwitchAccount: String { return self._s[3314]! } - public var AuthSessions_EmptyText: String { return self._s[3315]! } - public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3316]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3317]! } - public var Tour_Title5: String { return self._s[3318]! } - public var Wallet_Settings_Title: String { return self._s[3319]! } + public var DialogList_Draft: String { return self._s[3303]! } + public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3304]! } + public var Privacy_TopPeersDelete: String { return self._s[3306]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3307]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3308]! } + public var WebSearch_RecentSectionClear: String { return self._s[3309]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3310]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3312]! } + public var Common_Done: String { return self._s[3314]! } + public var Shortcut_SwitchAccount: String { return self._s[3315]! } + public var AuthSessions_EmptyText: String { return self._s[3316]! } + public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3317]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3318]! } + public var Tour_Title5: String { return self._s[3319]! } + public var Wallet_Settings_Title: String { return self._s[3320]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3320]!, self._r[3320]!, [_0]) + return formatWithArgumentRanges(self._s[3321]!, self._r[3321]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3321]! } - public var Conversation_LinkDialogSave: String { return self._s[3322]! } - public var GroupInfo_ActionRestrict: String { return self._s[3323]! } - public var Checkout_Title: String { return self._s[3324]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3326]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3328]! } - public var Notification_RenamedGroup: String { return self._s[3329]! } - public var PeopleNearby_Groups: String { return self._s[3330]! } - public var Checkout_PayWithFaceId: String { return self._s[3331]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3332]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3334]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3335]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3336]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3322]! } + public var Conversation_LinkDialogSave: String { return self._s[3323]! } + public var GroupInfo_ActionRestrict: String { return self._s[3324]! } + public var Checkout_Title: String { return self._s[3325]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3327]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3329]! } + public var Notification_RenamedGroup: String { return self._s[3330]! } + public var PeopleNearby_Groups: String { return self._s[3331]! } + public var Checkout_PayWithFaceId: String { return self._s[3332]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3333]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3335]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3336]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3337]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3337]!, self._r[3337]!, [_0]) + return formatWithArgumentRanges(self._s[3338]!, self._r[3338]!, [_0]) } - public var Profile_AddToExisting: String { return self._s[3339]! } + public var Profile_AddToExisting: String { return self._s[3340]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3340]!, self._r[3340]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3341]!, self._r[3341]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3342]! } - public var Permissions_PrivacyPolicy: String { return self._s[3343]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3344]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3345]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3347]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3349]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3350]! } + public var Cache_Files: String { return self._s[3343]! } + public var Permissions_PrivacyPolicy: String { return self._s[3344]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3345]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3346]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3348]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3350]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3351]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3351]!, self._r[3351]!, [_0]) + return formatWithArgumentRanges(self._s[3352]!, self._r[3352]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3352]! } - public var VoiceOver_AttachMedia: String { return self._s[3355]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3356]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3353]! } + public var VoiceOver_AttachMedia: String { return self._s[3356]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3357]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3357]!, self._r[3357]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3358]!, self._r[3358]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3358]! } - public var Conversation_SetReminder_Title: String { return self._s[3359]! } - public var Passport_FieldAddressHelp: String { return self._s[3360]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3361]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3362]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3359]! } + public var Conversation_SetReminder_Title: String { return self._s[3360]! } + public var Passport_FieldAddressHelp: String { return self._s[3361]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3362]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3363]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3363]!, self._r[3363]!, [_0]) + return formatWithArgumentRanges(self._s[3364]!, self._r[3364]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3364]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3365]! } - public var Login_UnknownError: String { return self._s[3366]! } - public var Group_UpgradeNoticeText2: String { return self._s[3369]! } - public var Watch_Compose_AddContact: String { return self._s[3370]! } - public var ClearCache_StorageServiceFiles: String { return self._s[3371]! } - public var Web_Error: String { return self._s[3372]! } - public var Gif_Search: String { return self._s[3373]! } - public var Profile_MessageLifetime1h: String { return self._s[3374]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3375]! } - public var Channel_Username_CheckingUsername: String { return self._s[3376]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3377]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3378]! } - public var Channel_AboutItem: String { return self._s[3379]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3381]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3382]! } - public var GroupInfo_SharedMedia: String { return self._s[3383]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3365]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3366]! } + public var Login_UnknownError: String { return self._s[3367]! } + public var Group_UpgradeNoticeText2: String { return self._s[3370]! } + public var Watch_Compose_AddContact: String { return self._s[3371]! } + public var ClearCache_StorageServiceFiles: String { return self._s[3372]! } + public var Web_Error: String { return self._s[3373]! } + public var Gif_Search: String { return self._s[3374]! } + public var Profile_MessageLifetime1h: String { return self._s[3375]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3376]! } + public var Channel_Username_CheckingUsername: String { return self._s[3377]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3378]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3379]! } + public var Channel_AboutItem: String { return self._s[3380]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3382]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3383]! } + public var GroupInfo_SharedMedia: String { return self._s[3384]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3384]!, self._r[3384]!, [_1]) + return formatWithArgumentRanges(self._s[3385]!, self._r[3385]!, [_1]) } - public var Call_PhoneCallInProgressMessage: String { return self._s[3385]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3386]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3386]!, self._r[3386]!, [_1]) + return formatWithArgumentRanges(self._s[3387]!, self._r[3387]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3387]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3388]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3389]! } - public var CreatePoll_AddOption: String { return self._s[3390]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3391]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3392]! } - public var Channel_Management_AddModerator: String { return self._s[3393]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3394]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3395]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3396]! } - public var Theme_Colors_Background: String { return self._s[3397]! } - public var NotificationsSound_Hello: String { return self._s[3399]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3400]! } - public var Channel_Stickers_Placeholder: String { return self._s[3402]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3388]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3389]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3390]! } + public var CreatePoll_AddOption: String { return self._s[3391]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3392]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3393]! } + public var Channel_Management_AddModerator: String { return self._s[3394]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3395]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3396]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3397]! } + public var Theme_Colors_Background: String { return self._s[3398]! } + public var NotificationsSound_Hello: String { return self._s[3400]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3401]! } + public var Channel_Stickers_Placeholder: String { return self._s[3403]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3403]!, self._r[3403]!, [_0]) + return formatWithArgumentRanges(self._s[3404]!, self._r[3404]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3404]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3405]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3406]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3407]! } - public var AutoDownloadSettings_Channels: String { return self._s[3408]! } - public var Passport_Language_mn: String { return self._s[3409]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3412]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3413]! } - public var Passport_Language_ja: String { return self._s[3415]! } - public var Settings_About_Title: String { return self._s[3416]! } - public var Settings_NotificationsAndSounds: String { return self._s[3417]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3418]! } - public var Settings_BlockedUsers: String { return self._s[3419]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3405]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3406]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3407]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3408]! } + public var AutoDownloadSettings_Channels: String { return self._s[3409]! } + public var Passport_Language_mn: String { return self._s[3410]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3413]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3414]! } + public var Passport_Language_ja: String { return self._s[3416]! } + public var Settings_About_Title: String { return self._s[3417]! } + public var Settings_NotificationsAndSounds: String { return self._s[3418]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3419]! } + public var Settings_BlockedUsers: String { return self._s[3420]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3420]!, self._r[3420]!, [_0]) + return formatWithArgumentRanges(self._s[3421]!, self._r[3421]!, [_0]) } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3421]! } - public var Wallet_Weekday_Today: String { return self._s[3422]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3423]! } - public var Widget_ApplicationLocked: String { return self._s[3424]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3425]! } - public var Channel_Username_Title: String { return self._s[3426]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3422]! } + public var Wallet_Weekday_Today: String { return self._s[3423]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3424]! } + public var Widget_ApplicationLocked: String { return self._s[3425]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3426]! } + public var Channel_Username_Title: String { return self._s[3427]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3427]!, self._r[3427]!, [_0]) + return formatWithArgumentRanges(self._s[3428]!, self._r[3428]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3429]! } - public var AppleWatch_Title: String { return self._s[3430]! } - public var Activity_RecordingVideoMessage: String { return self._s[3431]! } + public var AttachmentMenu_File: String { return self._s[3430]! } + public var AppleWatch_Title: String { return self._s[3431]! } + public var Activity_RecordingVideoMessage: String { return self._s[3432]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3432]!, self._r[3432]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3433]!, self._r[3433]!, [_1, _2]) } - public var Theme_Colors_Messages: String { return self._s[3433]! } - public var Weekday_Saturday: String { return self._s[3434]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3435]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3436]! } - public var Common_Next: String { return self._s[3438]! } - public var Channel_Stickers_YourStickers: String { return self._s[3440]! } - public var Message_Theme: String { return self._s[3441]! } - public var Call_AudioRouteHeadphones: String { return self._s[3442]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3444]! } - public var Watch_Contacts_NoResults: String { return self._s[3446]! } - public var PhotoEditor_TintTool: String { return self._s[3449]! } - public var LoginPassword_ResetAccount: String { return self._s[3451]! } - public var Settings_SavedMessages: String { return self._s[3452]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3453]! } - public var Bot_GenericSupportStatus: String { return self._s[3454]! } - public var StickerPack_Add: String { return self._s[3455]! } - public var Checkout_TotalAmount: String { return self._s[3456]! } - public var Your_cards_number_is_invalid: String { return self._s[3457]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3458]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3459]! } + public var Theme_Colors_Messages: String { return self._s[3434]! } + public var Weekday_Saturday: String { return self._s[3435]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3436]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3437]! } + public var Common_Next: String { return self._s[3439]! } + public var Channel_Stickers_YourStickers: String { return self._s[3441]! } + public var Message_Theme: String { return self._s[3442]! } + public var Call_AudioRouteHeadphones: String { return self._s[3443]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3445]! } + public var Watch_Contacts_NoResults: String { return self._s[3447]! } + public var PhotoEditor_TintTool: String { return self._s[3450]! } + public var LoginPassword_ResetAccount: String { return self._s[3452]! } + public var Settings_SavedMessages: String { return self._s[3453]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3454]! } + public var Bot_GenericSupportStatus: String { return self._s[3455]! } + public var StickerPack_Add: String { return self._s[3456]! } + public var Checkout_TotalAmount: String { return self._s[3457]! } + public var Your_cards_number_is_invalid: String { return self._s[3458]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3459]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3460]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3460]!, self._r[3460]!, [_0]) + return formatWithArgumentRanges(self._s[3461]!, self._r[3461]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3461]!, self._r[3461]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3462]!, self._r[3462]!, [_1, _2]) } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3462]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3463]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3464]!, self._r[3464]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3465]!, self._r[3465]!, [_1, _2]) } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3465]!, self._r[3465]!, [_0]) + return formatWithArgumentRanges(self._s[3466]!, self._r[3466]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3466]! } - public var StickerPack_Share: String { return self._s[3467]! } - public var Passport_DeleteAddress: String { return self._s[3468]! } - public var Settings_Passport: String { return self._s[3469]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3470]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3471]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3472]! } - public var Contacts_PermissionsText: String { return self._s[3473]! } - public var Group_Setup_HistoryVisible: String { return self._s[3474]! } - public var Wallet_Month_ShortDecember: String { return self._s[3476]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3477]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3478]! } - public var SocksProxySetup_Title: String { return self._s[3479]! } - public var Notification_Mute1h: String { return self._s[3480]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3467]! } + public var StickerPack_Share: String { return self._s[3468]! } + public var Passport_DeleteAddress: String { return self._s[3469]! } + public var Settings_Passport: String { return self._s[3470]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3471]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3472]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3473]! } + public var Contacts_PermissionsText: String { return self._s[3474]! } + public var Group_Setup_HistoryVisible: String { return self._s[3475]! } + public var Wallet_Month_ShortDecember: String { return self._s[3477]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3478]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3479]! } + public var SocksProxySetup_Title: String { return self._s[3480]! } + public var Notification_Mute1h: String { return self._s[3481]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_0]) + return formatWithArgumentRanges(self._s[3482]!, self._r[3482]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3482]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3483]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3483]!, self._r[3483]!, [_1]) + return formatWithArgumentRanges(self._s[3484]!, self._r[3484]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3484]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3487]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3489]! } - public var DialogList_NoMessagesText: String { return self._s[3490]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3491]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3492]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3494]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3495]! } - public var Common_TakePhotoOrVideo: String { return self._s[3496]! } - public var Wallet_Words_Text: String { return self._s[3497]! } - public var Call_StatusBusy: String { return self._s[3498]! } - public var Conversation_PinnedMessage: String { return self._s[3499]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3500]! } - public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3501]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3502]! } - public var Undo_ChatCleared: String { return self._s[3503]! } - public var AppleWatch_ReplyPresets: String { return self._s[3504]! } - public var Passport_DiscardMessageDescription: String { return self._s[3506]! } - public var Login_NetworkError: String { return self._s[3507]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3485]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3488]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3490]! } + public var DialogList_NoMessagesText: String { return self._s[3491]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3492]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3493]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3495]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3496]! } + public var Common_TakePhotoOrVideo: String { return self._s[3497]! } + public var Wallet_Words_Text: String { return self._s[3498]! } + public var Call_StatusBusy: String { return self._s[3499]! } + public var Conversation_PinnedMessage: String { return self._s[3500]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3501]! } + public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3502]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3503]! } + public var Undo_ChatCleared: String { return self._s[3504]! } + public var AppleWatch_ReplyPresets: String { return self._s[3505]! } + public var Passport_DiscardMessageDescription: String { return self._s[3507]! } + public var Login_NetworkError: String { return self._s[3508]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3508]!, self._r[3508]!, [_0]) - } - public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3509]!, self._r[3509]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3510]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3512]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3513]! } + public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3510]!, self._r[3510]!, [_0]) + } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3511]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3513]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3514]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3515]!, self._r[3515]!, [_0]) + return formatWithArgumentRanges(self._s[3516]!, self._r[3516]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3516]! } - public var VoiceOver_Chat_Music: String { return self._s[3517]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3518]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3520]! } - public var ConversationMedia_Title: String { return self._s[3521]! } - public var EncryptionKey_Title: String { return self._s[3523]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3524]! } - public var Notification_Exceptions_AddException: String { return self._s[3525]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3526]! } - public var Profile_MessageLifetime1m: String { return self._s[3527]! } + public var Call_ConnectionErrorMessage: String { return self._s[3517]! } + public var VoiceOver_Chat_Music: String { return self._s[3518]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3519]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3521]! } + public var ConversationMedia_Title: String { return self._s[3522]! } + public var EncryptionKey_Title: String { return self._s[3524]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3525]! } + public var Notification_Exceptions_AddException: String { return self._s[3526]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3527]! } + public var Profile_MessageLifetime1m: String { return self._s[3528]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3528]!, self._r[3528]!, [_1]) + return formatWithArgumentRanges(self._s[3529]!, self._r[3529]!, [_1]) } - public var Month_GenMay: String { return self._s[3529]! } + public var Month_GenMay: String { return self._s[3530]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3530]!, self._r[3530]!, [_0]) + return formatWithArgumentRanges(self._s[3531]!, self._r[3531]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3531]! } - public var Wallet_Send_AddressInfo: String { return self._s[3532]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3533]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3534]! } + public var PeopleNearby_Users: String { return self._s[3532]! } + public var Wallet_Send_AddressInfo: String { return self._s[3533]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3534]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3535]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3536]!, self._r[3536]!, [_0]) + return formatWithArgumentRanges(self._s[3537]!, self._r[3537]!, [_0]) } - public var Conversation_EmptyPlaceholder: String { return self._s[3537]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3538]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3539]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3540]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3541]! } - public var Channel_JoinChannel: String { return self._s[3543]! } - public var Appearance_Animations: String { return self._s[3546]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3538]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3539]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3540]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3541]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3542]! } + public var Channel_JoinChannel: String { return self._s[3544]! } + public var Appearance_Animations: String { return self._s[3547]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3547]!, self._r[3547]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3548]!, self._r[3548]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3549]! } - public var Appearance_ShareTheme: String { return self._s[3550]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3551]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3553]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3554]! } - public var Passport_Address_Street: String { return self._s[3555]! } - public var Conversation_AddContact: String { return self._s[3556]! } - public var Login_PhonePlaceholder: String { return self._s[3557]! } - public var Channel_Members_InviteLink: String { return self._s[3559]! } - public var Bot_Stop: String { return self._s[3560]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3562]! } - public var Notification_PassportValueAddress: String { return self._s[3563]! } - public var Month_ShortJuly: String { return self._s[3564]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3565]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3566]! } - public var Passport_Identity_ReverseSide: String { return self._s[3567]! } - public var Watch_Stickers_Recents: String { return self._s[3570]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3572]! } - public var Map_SendThisLocation: String { return self._s[3573]! } + public var Stickers_GroupStickers: String { return self._s[3550]! } + public var Appearance_ShareTheme: String { return self._s[3551]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3552]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3554]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3555]! } + public var Passport_Address_Street: String { return self._s[3556]! } + public var Conversation_AddContact: String { return self._s[3557]! } + public var Login_PhonePlaceholder: String { return self._s[3558]! } + public var Channel_Members_InviteLink: String { return self._s[3560]! } + public var Bot_Stop: String { return self._s[3561]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3563]! } + public var Notification_PassportValueAddress: String { return self._s[3564]! } + public var Month_ShortJuly: String { return self._s[3565]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3566]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3567]! } + public var Passport_Identity_ReverseSide: String { return self._s[3568]! } + public var Watch_Stickers_Recents: String { return self._s[3571]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3573]! } + public var Map_SendThisLocation: String { return self._s[3574]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3574]!, self._r[3574]!, [_0]) - } - public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3575]!, self._r[3575]!, [_0]) } - public var ConvertToSupergroup_Note: String { return self._s[3576]! } - public var Wallet_Intro_NotNow: String { return self._s[3577]! } + public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3576]!, self._r[3576]!, [_0]) + } + public var ConvertToSupergroup_Note: String { return self._s[3577]! } + public var Wallet_Intro_NotNow: String { return self._s[3578]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3578]!, self._r[3578]!, [_0]) + return formatWithArgumentRanges(self._s[3579]!, self._r[3579]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3579]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3580]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3580]!, self._r[3580]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3581]!, self._r[3581]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3582]! } - public var Wallpaper_SearchShort: String { return self._s[3583]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3585]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3586]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3587]! } + public var Login_CallRequestState3: String { return self._s[3583]! } + public var Wallpaper_SearchShort: String { return self._s[3584]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3586]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3587]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3588]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3588]!, self._r[3588]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3589]!, self._r[3589]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3589]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3591]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3594]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3590]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3592]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3595]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3595]!, self._r[3595]!, [_0]) + return formatWithArgumentRanges(self._s[3596]!, self._r[3596]!, [_0]) } - public var Passport_CorrectErrors: String { return self._s[3596]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3597]! } + public var Passport_CorrectErrors: String { return self._s[3597]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3598]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3598]!, self._r[3598]!, [_0]) + return formatWithArgumentRanges(self._s[3599]!, self._r[3599]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3599]! } - public var Channel_DiscussionGroup: String { return self._s[3600]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3601]! } + public var Map_SendMyCurrentLocation: String { return self._s[3600]! } + public var Channel_DiscussionGroup: String { return self._s[3601]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3602]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3602]!, self._r[3602]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3603]!, self._r[3603]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3603]! } - public var Permissions_NotificationsText_v0: String { return self._s[3604]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3605]! } - public var Appearance_AppIcon: String { return self._s[3606]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3607]! } - public var LoginPassword_FloodError: String { return self._s[3608]! } - public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3610]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3611]! } + public var SharedMedia_SearchNoResults: String { return self._s[3604]! } + public var Permissions_NotificationsText_v0: String { return self._s[3605]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3606]! } + public var Appearance_AppIcon: String { return self._s[3607]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3608]! } + public var LoginPassword_FloodError: String { return self._s[3609]! } + public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3611]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3612]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3612]!, self._r[3612]!, [_0]) + return formatWithArgumentRanges(self._s[3613]!, self._r[3613]!, [_0]) } - public var Passport_Language_bn: String { return self._s[3613]! } + public var Passport_Language_bn: String { return self._s[3614]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3614]!, self._r[3614]!, [_0]) + return formatWithArgumentRanges(self._s[3615]!, self._r[3615]!, [_0]) } - public var ChatList_Context_Pin: String { return self._s[3615]! } + public var ChatList_Context_Pin: String { return self._s[3616]! } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3616]!, self._r[3616]!, [_0]) - } - public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3617]!, self._r[3617]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3618]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3622]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3624]! } - public var Wallet_Month_GenDecember: String { return self._s[3625]! } - public var Contacts_PermissionsAllow: String { return self._s[3626]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3627]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3628]! } - public var WallpaperPreview_Pattern: String { return self._s[3629]! } - public var Paint_Duplicate: String { return self._s[3630]! } - public var Passport_Address_Country: String { return self._s[3631]! } - public var Notification_RenamedChannel: String { return self._s[3633]! } - public var ChatList_Context_Unmute: String { return self._s[3634]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3635]! } - public var Group_MessagePhotoUpdated: String { return self._s[3636]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3637]! } - public var Conversation_ContextMenuBan: String { return self._s[3638]! } - public var TwoStepAuth_EmailSent: String { return self._s[3639]! } - public var MessagePoll_NoVotes: String { return self._s[3640]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3641]! } - public var Passport_Language_is: String { return self._s[3643]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3645]! } - public var Tour_Text5: String { return self._s[3646]! } + public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3618]!, self._r[3618]!, [_0]) + } + public var Wallet_Navigation_Close: String { return self._s[3619]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3623]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3625]! } + public var Wallet_Month_GenDecember: String { return self._s[3626]! } + public var Contacts_PermissionsAllow: String { return self._s[3627]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3628]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3629]! } + public var WallpaperPreview_Pattern: String { return self._s[3630]! } + public var Paint_Duplicate: String { return self._s[3631]! } + public var Passport_Address_Country: String { return self._s[3632]! } + public var Notification_RenamedChannel: String { return self._s[3634]! } + public var ChatList_Context_Unmute: String { return self._s[3635]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3636]! } + public var Group_MessagePhotoUpdated: String { return self._s[3637]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3638]! } + public var Conversation_ContextMenuBan: String { return self._s[3639]! } + public var TwoStepAuth_EmailSent: String { return self._s[3640]! } + public var MessagePoll_NoVotes: String { return self._s[3641]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3642]! } + public var Passport_Language_is: String { return self._s[3644]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3646]! } + public var Tour_Text5: String { return self._s[3647]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3649]!, self._r[3649]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3650]!, self._r[3650]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3650]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3651]! } + public var Undo_SecretChatDeleted: String { return self._s[3651]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3652]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3652]!, self._r[3652]!, [_0]) + return formatWithArgumentRanges(self._s[3653]!, self._r[3653]!, [_0]) } - public var Forward_ErrorDisabledForChat: String { return self._s[3653]! } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3654]! } - public var Paint_Edit: String { return self._s[3656]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3658]! } - public var Undo_DeletedGroup: String { return self._s[3660]! } - public var LoginPassword_ForgotPassword: String { return self._s[3661]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3662]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3663]! } + public var Forward_ErrorDisabledForChat: String { return self._s[3654]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3655]! } + public var Paint_Edit: String { return self._s[3657]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3659]! } + public var Undo_DeletedGroup: String { return self._s[3661]! } + public var LoginPassword_ForgotPassword: String { return self._s[3662]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3663]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3664]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3664]!, self._r[3664]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3665]!, self._r[3665]!, [_0, _1]) } - public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3665]! } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3666]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3667]! } - public var Passport_Language_uz: String { return self._s[3668]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3669]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3670]! } - public var Map_StopLiveLocation: String { return self._s[3672]! } - public var VoiceOver_MessageContextSend: String { return self._s[3674]! } - public var PasscodeSettings_Help: String { return self._s[3675]! } - public var NotificationsSound_Input: String { return self._s[3676]! } - public var Share_Title: String { return self._s[3679]! } - public var LogoutOptions_Title: String { return self._s[3680]! } - public var Wallet_Send_AddressText: String { return self._s[3681]! } - public var Login_TermsOfServiceAgree: String { return self._s[3682]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3683]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3684]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3685]! } - public var EnterPasscode_EnterTitle: String { return self._s[3686]! } + public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3666]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3667]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3668]! } + public var Passport_Language_uz: String { return self._s[3669]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3670]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3671]! } + public var Map_StopLiveLocation: String { return self._s[3673]! } + public var VoiceOver_MessageContextSend: String { return self._s[3675]! } + public var PasscodeSettings_Help: String { return self._s[3676]! } + public var NotificationsSound_Input: String { return self._s[3677]! } + public var Share_Title: String { return self._s[3680]! } + public var LogoutOptions_Title: String { return self._s[3681]! } + public var Wallet_Send_AddressText: String { return self._s[3682]! } + public var Login_TermsOfServiceAgree: String { return self._s[3683]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3684]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3685]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3686]! } + public var EnterPasscode_EnterTitle: String { return self._s[3687]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3687]!, self._r[3687]!, [_0]) + return formatWithArgumentRanges(self._s[3688]!, self._r[3688]!, [_0]) } - public var Settings_CopyPhoneNumber: String { return self._s[3688]! } - public var Conversation_AddToContacts: String { return self._s[3689]! } + public var Settings_CopyPhoneNumber: String { return self._s[3689]! } + public var Conversation_AddToContacts: String { return self._s[3690]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3690]!, self._r[3690]!, [_0]) + return formatWithArgumentRanges(self._s[3691]!, self._r[3691]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[3691]! } + public var NotificationsSound_Keys: String { return self._s[3692]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3692]!, self._r[3692]!, [_0]) + return formatWithArgumentRanges(self._s[3693]!, self._r[3693]!, [_0]) } - public var Notification_MessageLifetime1w: String { return self._s[3693]! } - public var Message_Video: String { return self._s[3694]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3695]! } + public var Notification_MessageLifetime1w: String { return self._s[3694]! } + public var Message_Video: String { return self._s[3695]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3696]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3696]!, self._r[3696]!, [_1]) + return formatWithArgumentRanges(self._s[3697]!, self._r[3697]!, [_1]) } - public var Wallet_Receive_AmountInfo: String { return self._s[3699]! } + public var Wallet_Receive_AmountInfo: String { return self._s[3700]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3700]!, self._r[3700]!, [_0]) - } - public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_0]) } - public var Passport_Language_mk: String { return self._s[3702]! } - public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3703]!, self._r[3703]!, [_1, _2, _3]) + public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3702]!, self._r[3702]!, [_0]) } - public var CreatePoll_CancelConfirmation: String { return self._s[3704]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3705]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3707]! } - public var PrivacyPolicy_Decline: String { return self._s[3708]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3709]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3710]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3711]! } - public var Permissions_SiriAllow_v0: String { return self._s[3713]! } - public var Wallet_Month_ShortAugust: String { return self._s[3714]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3715]! } + public var Passport_Language_mk: String { return self._s[3703]! } + public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3704]!, self._r[3704]!, [_1, _2, _3]) + } + public var CreatePoll_CancelConfirmation: String { return self._s[3705]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3706]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3708]! } + public var PrivacyPolicy_Decline: String { return self._s[3709]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3710]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3711]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3712]! } + public var Permissions_SiriAllow_v0: String { return self._s[3714]! } + public var Wallet_Month_ShortAugust: String { return self._s[3715]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3716]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3716]!, self._r[3716]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3717]!, self._r[3717]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3717]!, self._r[3717]!, [_0]) + return formatWithArgumentRanges(self._s[3718]!, self._r[3718]!, [_0]) } - public var Paint_Regular: String { return self._s[3718]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3719]! } - public var SocksProxySetup_ShareLink: String { return self._s[3720]! } - public var Wallet_Qr_Title: String { return self._s[3721]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3722]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3724]! } - public var Wallet_Settings_Configuration: String { return self._s[3725]! } - public var GroupInfo_InviteByLink: String { return self._s[3726]! } - public var MessageTimer_Custom: String { return self._s[3727]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3728]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3729]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3731]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[3732]! } - public var VoiceOver_Chat_Selected: String { return self._s[3733]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3734]! } - public var Channel_Username_InvalidTaken: String { return self._s[3735]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3736]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3737]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[3738]! } - public var Settings_ChatBackground: String { return self._s[3739]! } - public var Channel_Subscribers_Title: String { return self._s[3740]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3741]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3742]! } - public var Watch_ConnectionDescription: String { return self._s[3743]! } - public var OldChannels_NoticeText: String { return self._s[3746]! } - public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3747]! } - public var IntentsSettings_SuggestBy: String { return self._s[3749]! } - public var Theme_ThemeChangedText: String { return self._s[3750]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[3751]! } - public var Wallpaper_ResetWallpapers: String { return self._s[3752]! } - public var Wallet_Send_TransactionInProgress: String { return self._s[3753]! } - public var EditProfile_Title: String { return self._s[3754]! } - public var NotificationsSound_Bamboo: String { return self._s[3756]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3758]! } - public var Login_SmsRequestState2: String { return self._s[3759]! } - public var Passport_Language_ar: String { return self._s[3760]! } + public var Paint_Regular: String { return self._s[3719]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3720]! } + public var SocksProxySetup_ShareLink: String { return self._s[3721]! } + public var Wallet_Qr_Title: String { return self._s[3722]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3723]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3725]! } + public var Wallet_Settings_Configuration: String { return self._s[3726]! } + public var GroupInfo_InviteByLink: String { return self._s[3727]! } + public var MessageTimer_Custom: String { return self._s[3728]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3729]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3730]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3732]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[3733]! } + public var VoiceOver_Chat_Selected: String { return self._s[3734]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3735]! } + public var Channel_Username_InvalidTaken: String { return self._s[3736]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3737]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3738]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[3739]! } + public var Settings_ChatBackground: String { return self._s[3740]! } + public var Channel_Subscribers_Title: String { return self._s[3741]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3742]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3743]! } + public var Watch_ConnectionDescription: String { return self._s[3744]! } + public var OldChannels_NoticeText: String { return self._s[3747]! } + public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3748]! } + public var IntentsSettings_SuggestBy: String { return self._s[3750]! } + public var Theme_ThemeChangedText: String { return self._s[3751]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[3752]! } + public var Wallpaper_ResetWallpapers: String { return self._s[3753]! } + public var Wallet_Send_TransactionInProgress: String { return self._s[3754]! } + public var EditProfile_Title: String { return self._s[3755]! } + public var NotificationsSound_Bamboo: String { return self._s[3757]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3759]! } + public var Login_SmsRequestState2: String { return self._s[3760]! } + public var Passport_Language_ar: String { return self._s[3761]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3761]!, self._r[3761]!, [_0]) + return formatWithArgumentRanges(self._s[3762]!, self._r[3762]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3762]! } - public var Wallet_Created_Text: String { return self._s[3763]! } - public var Conversation_MessageDialogEdit: String { return self._s[3765]! } - public var Wallet_Created_Proceed: String { return self._s[3766]! } - public var Wallet_Words_Done: String { return self._s[3767]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3768]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3763]! } + public var Wallet_Created_Text: String { return self._s[3764]! } + public var Conversation_MessageDialogEdit: String { return self._s[3766]! } + public var Wallet_Created_Proceed: String { return self._s[3767]! } + public var Wallet_Words_Done: String { return self._s[3768]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3769]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3769]!, self._r[3769]!, [_1]) + return formatWithArgumentRanges(self._s[3770]!, self._r[3770]!, [_1]) } - public var Common_Close: String { return self._s[3770]! } - public var GroupInfo_PublicLink: String { return self._s[3771]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3772]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3773]! } + public var Common_Close: String { return self._s[3771]! } + public var GroupInfo_PublicLink: String { return self._s[3772]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3773]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3774]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3777]!, self._r[3777]!, [_0]) + return formatWithArgumentRanges(self._s[3778]!, self._r[3778]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3778]! } + public var UserInfo_About_Placeholder: String { return self._s[3779]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3779]!, self._r[3779]!, [_0]) + return formatWithArgumentRanges(self._s[3780]!, self._r[3780]!, [_0]) } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[3780]! } - public var Channel_Info_Banned: String { return self._s[3782]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[3781]! } + public var Channel_Info_Banned: String { return self._s[3783]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3783]!, self._r[3783]!, [_0]) + return formatWithArgumentRanges(self._s[3784]!, self._r[3784]!, [_0]) } - public var Appearance_Other: String { return self._s[3784]! } - public var Passport_Language_my: String { return self._s[3785]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3786]! } + public var Appearance_Other: String { return self._s[3785]! } + public var Passport_Language_my: String { return self._s[3786]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3787]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3787]!, self._r[3787]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3788]!, self._r[3788]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3788]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3789]! } - public var Preview_CopyAddress: String { return self._s[3790]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3789]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3790]! } + public var Preview_CopyAddress: String { return self._s[3791]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3791]!, self._r[3791]!, [_0]) + return formatWithArgumentRanges(self._s[3792]!, self._r[3792]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3792]! } - public var UserInfo_BotSettings: String { return self._s[3793]! } - public var LiveLocation_MenuStopAll: String { return self._s[3795]! } - public var Passport_PasswordCreate: String { return self._s[3796]! } - public var StickerSettings_MaskContextInfo: String { return self._s[3797]! } - public var Message_PinnedLocationMessage: String { return self._s[3798]! } - public var Map_Satellite: String { return self._s[3799]! } - public var Watch_Message_Unsupported: String { return self._s[3800]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[3801]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3802]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3793]! } + public var UserInfo_BotSettings: String { return self._s[3794]! } + public var LiveLocation_MenuStopAll: String { return self._s[3796]! } + public var Passport_PasswordCreate: String { return self._s[3797]! } + public var StickerSettings_MaskContextInfo: String { return self._s[3798]! } + public var Message_PinnedLocationMessage: String { return self._s[3799]! } + public var Map_Satellite: String { return self._s[3800]! } + public var Watch_Message_Unsupported: String { return self._s[3801]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[3802]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3803]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3803]!, self._r[3803]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3804]!, self._r[3804]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3804]!, self._r[3804]!, [_0]) + return formatWithArgumentRanges(self._s[3805]!, self._r[3805]!, [_0]) } - public var Wallet_WordImport_Continue: String { return self._s[3805]! } + public var Wallet_WordImport_Continue: String { return self._s[3806]! } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3806]!, self._r[3806]!, [_0]) + return formatWithArgumentRanges(self._s[3807]!, self._r[3807]!, [_0]) } - public var Notifications_ChannelNotificationsHelp: String { return self._s[3807]! } - public var Privacy_Calls_P2PContacts: String { return self._s[3808]! } - public var NotificationsSound_None: String { return self._s[3809]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3810]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3812]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[3813]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[3808]! } + public var Privacy_Calls_P2PContacts: String { return self._s[3809]! } + public var NotificationsSound_None: String { return self._s[3810]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3811]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3813]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[3814]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3814]!, self._r[3814]!, [_1]) + return formatWithArgumentRanges(self._s[3815]!, self._r[3815]!, [_1]) } - public var Cache_Indexing: String { return self._s[3815]! } - public var DialogList_RecentTitlePeople: String { return self._s[3817]! } - public var DialogList_EncryptionRejected: String { return self._s[3818]! } - public var GroupInfo_Administrators: String { return self._s[3819]! } - public var Passport_ScanPassportHelp: String { return self._s[3820]! } - public var Application_Name: String { return self._s[3821]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3822]! } - public var Appearance_ThemeCarouselDay: String { return self._s[3824]! } - public var Passport_Identity_TranslationHelp: String { return self._s[3825]! } + public var Cache_Indexing: String { return self._s[3816]! } + public var DialogList_RecentTitlePeople: String { return self._s[3818]! } + public var DialogList_EncryptionRejected: String { return self._s[3819]! } + public var GroupInfo_Administrators: String { return self._s[3820]! } + public var Passport_ScanPassportHelp: String { return self._s[3821]! } + public var Application_Name: String { return self._s[3822]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3823]! } + public var Appearance_ThemeCarouselDay: String { return self._s[3825]! } + public var Passport_Identity_TranslationHelp: String { return self._s[3826]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3826]!, self._r[3826]!, [_0]) - } - public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3827]!, self._r[3827]!, [_0]) } - public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { + public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3828]!, self._r[3828]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3829]! } - public var Privacy_ChatsTitle: String { return self._s[3830]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[3831]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3832]! } - public var Watch_Suggestion_HoldOn: String { return self._s[3833]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3834]! } - public var WebBrowser_Title: String { return self._s[3835]! } - public var Group_LinkedChannel: String { return self._s[3836]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3837]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[3838]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3839]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3840]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[3841]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[3843]! } - public var Channel_Setup_TypePublic: String { return self._s[3845]! } + public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3829]!, self._r[3829]!, [_0]) + } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3830]! } + public var Privacy_ChatsTitle: String { return self._s[3831]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[3832]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3833]! } + public var Watch_Suggestion_HoldOn: String { return self._s[3834]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3835]! } + public var WebBrowser_Title: String { return self._s[3836]! } + public var Group_LinkedChannel: String { return self._s[3837]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3838]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[3839]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3840]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3841]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[3842]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[3844]! } + public var Channel_Setup_TypePublic: String { return self._s[3846]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3846]!, self._r[3846]!, [_0]) + return formatWithArgumentRanges(self._s[3847]!, self._r[3847]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[3848]! } - public var MessagePoll_ViewResults: String { return self._s[3849]! } - public var Map_OpenInMaps: String { return self._s[3851]! } + public var Channel_TypeSetup_Title: String { return self._s[3849]! } + public var MessagePoll_ViewResults: String { return self._s[3850]! } + public var Map_OpenInMaps: String { return self._s[3852]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3852]!, self._r[3852]!, [_1]) + return formatWithArgumentRanges(self._s[3853]!, self._r[3853]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[3854]! } + public var NotificationsSound_Tremolo: String { return self._s[3855]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3855]!, self._r[3855]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3856]!, self._r[3856]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3856]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3857]! } - public var Passport_PasswordHelp: String { return self._s[3858]! } - public var Login_CodeExpiredError: String { return self._s[3859]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3860]! } - public var Conversation_TitleUnmute: String { return self._s[3861]! } - public var Passport_Identity_ScansHelp: String { return self._s[3862]! } - public var Passport_Language_lo: String { return self._s[3863]! } - public var Camera_FlashAuto: String { return self._s[3864]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3865]! } - public var Common_Cancel: String { return self._s[3866]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[3867]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3868]! } - public var Appearance_TintAllColors: String { return self._s[3869]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3857]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3858]! } + public var Passport_PasswordHelp: String { return self._s[3859]! } + public var Login_CodeExpiredError: String { return self._s[3860]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3861]! } + public var Conversation_TitleUnmute: String { return self._s[3862]! } + public var Passport_Identity_ScansHelp: String { return self._s[3863]! } + public var Passport_Language_lo: String { return self._s[3864]! } + public var Camera_FlashAuto: String { return self._s[3865]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3866]! } + public var Common_Cancel: String { return self._s[3867]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[3868]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3869]! } + public var Appearance_TintAllColors: String { return self._s[3870]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3870]!, self._r[3870]!, [_1]) + return formatWithArgumentRanges(self._s[3871]!, self._r[3871]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[3871]! } - public var ChatSettings_Title: String { return self._s[3873]! } - public var Passport_PasswordReset: String { return self._s[3874]! } - public var SocksProxySetup_TypeNone: String { return self._s[3875]! } - public var EditTheme_Title: String { return self._s[3878]! } - public var PhoneNumberHelp_Help: String { return self._s[3879]! } - public var Checkout_EnterPassword: String { return self._s[3880]! } - public var Share_AuthTitle: String { return self._s[3882]! } - public var Activity_UploadingDocument: String { return self._s[3883]! } - public var State_Connecting: String { return self._s[3884]! } - public var Profile_MessageLifetime1w: String { return self._s[3885]! } - public var Conversation_ContextMenuReport: String { return self._s[3886]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3887]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3888]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[3872]! } + public var ChatSettings_Title: String { return self._s[3874]! } + public var Passport_PasswordReset: String { return self._s[3875]! } + public var SocksProxySetup_TypeNone: String { return self._s[3876]! } + public var EditTheme_Title: String { return self._s[3879]! } + public var PhoneNumberHelp_Help: String { return self._s[3880]! } + public var Checkout_EnterPassword: String { return self._s[3881]! } + public var Share_AuthTitle: String { return self._s[3883]! } + public var Activity_UploadingDocument: String { return self._s[3884]! } + public var State_Connecting: String { return self._s[3885]! } + public var Profile_MessageLifetime1w: String { return self._s[3886]! } + public var Conversation_ContextMenuReport: String { return self._s[3887]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3888]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3889]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3889]!, self._r[3889]!, [_0]) + return formatWithArgumentRanges(self._s[3890]!, self._r[3890]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[3890]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[3891]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3893]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3894]! } - public var PhotoEditor_Set: String { return self._s[3895]! } - public var EmptyGroupInfo_Title: String { return self._s[3896]! } - public var Login_PadPhoneHelp: String { return self._s[3897]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3899]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3901]! } - public var NotificationsSound_Complete: String { return self._s[3902]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3903]! } - public var Group_Info_AdminLog: String { return self._s[3904]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3905]! } + public var AuthSessions_Terminate: String { return self._s[3891]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[3892]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3894]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3895]! } + public var PhotoEditor_Set: String { return self._s[3896]! } + public var EmptyGroupInfo_Title: String { return self._s[3897]! } + public var Login_PadPhoneHelp: String { return self._s[3898]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3900]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3902]! } + public var NotificationsSound_Complete: String { return self._s[3903]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3904]! } + public var Group_Info_AdminLog: String { return self._s[3905]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3906]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3906]!, self._r[3906]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3907]!, self._r[3907]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3907]! } - public var Group_Location_CreateInThisPlace: String { return self._s[3909]! } - public var Conversation_Admin: String { return self._s[3910]! } - public var Conversation_GifTooltip: String { return self._s[3911]! } - public var Passport_NotLoggedInMessage: String { return self._s[3912]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3908]! } + public var Group_Location_CreateInThisPlace: String { return self._s[3910]! } + public var Conversation_Admin: String { return self._s[3911]! } + public var Conversation_GifTooltip: String { return self._s[3912]! } + public var Passport_NotLoggedInMessage: String { return self._s[3913]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3914]!, self._r[3914]!, [_0]) + return formatWithArgumentRanges(self._s[3915]!, self._r[3915]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[3915]! } - public var SharedMedia_EmptyTitle: String { return self._s[3917]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3919]! } - public var Username_Help: String { return self._s[3920]! } - public var DialogList_LanguageTooltip: String { return self._s[3922]! } - public var Map_LoadError: String { return self._s[3923]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3924]! } - public var Channel_AdminLog_AddMembers: String { return self._s[3925]! } - public var ArchivedChats_IntroTitle2: String { return self._s[3926]! } - public var Notification_Exceptions_NewException: String { return self._s[3927]! } - public var TwoStepAuth_EmailTitle: String { return self._s[3928]! } - public var WatchRemote_AlertText: String { return self._s[3929]! } + public var Profile_MessageLifetimeForever: String { return self._s[3916]! } + public var SharedMedia_EmptyTitle: String { return self._s[3918]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3920]! } + public var Username_Help: String { return self._s[3921]! } + public var DialogList_LanguageTooltip: String { return self._s[3923]! } + public var Map_LoadError: String { return self._s[3924]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3925]! } + public var Channel_AdminLog_AddMembers: String { return self._s[3926]! } + public var ArchivedChats_IntroTitle2: String { return self._s[3927]! } + public var Notification_Exceptions_NewException: String { return self._s[3928]! } + public var TwoStepAuth_EmailTitle: String { return self._s[3929]! } + public var WatchRemote_AlertText: String { return self._s[3930]! } public func Wallet_Send_ConfirmationText(_ _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 ChatSettings_ConnectionType_Title: String { return self._s[3934]! } - public var WebBrowser_DefaultBrowser: String { return self._s[3935]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[3935]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3936]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3936]!, self._r[3936]!, [_0]) + return formatWithArgumentRanges(self._s[3937]!, self._r[3937]!, [_0]) } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3937]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[3938]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3938]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[3939]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3939]!, self._r[3939]!, [_0]) + return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_0]) } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3941]!, self._r[3941]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[3941]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3942]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[3944]! } - public var Wallet_Created_ExportErrorText: String { return self._s[3945]! } - public var ChatList_UndoArchiveText1: String { return self._s[3946]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3947]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3948]! } - public var Cache_ClearNone: String { return self._s[3949]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3950]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3951]! } + public var Group_AdminLog_EmptyText: String { return self._s[3942]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3943]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3945]! } + public var Wallet_Created_ExportErrorText: String { return self._s[3946]! } + public var ChatList_UndoArchiveText1: String { return self._s[3947]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3948]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3949]! } + public var Cache_ClearNone: String { return self._s[3950]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3951]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3952]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3952]!, self._r[3952]!, [_0]) + return formatWithArgumentRanges(self._s[3953]!, self._r[3953]!, [_0]) } - public var Passport_Identity_Country: String { return self._s[3953]! } + public var Passport_Identity_Country: String { return self._s[3954]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_0]) - } - public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3955]!, self._r[3955]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[3956]! } - public var AccessDenied_Settings: String { return self._s[3957]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3958]! } - public var Month_ShortMay: String { return self._s[3959]! } - public var Compose_NewGroup: String { return self._s[3961]! } - public var Group_Setup_TypePrivate: String { return self._s[3963]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3965]! } - public var Appearance_ThemeDayClassic: String { return self._s[3966]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3967]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3968]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3969]! } - public var Conversation_typing: String { return self._s[3971]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[3972]! } - public var Paint_Masks: String { return self._s[3973]! } - public var Contacts_DeselectAll: String { return self._s[3974]! } - public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3975]!, self._r[3975]!, [_0]) + public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3956]!, self._r[3956]!, [_0]) } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3976]! } - public var Username_InvalidTaken: String { return self._s[3977]! } - public var Call_StatusNoAnswer: String { return self._s[3978]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3979]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3980]! } - public var Passport_Identity_Selfie: String { return self._s[3981]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3982]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3983]! } - public var Conversation_ClearSecretHistory: String { return self._s[3984]! } - public var PeopleNearby_Description: String { return self._s[3986]! } - public var NetworkUsageSettings_Title: String { return self._s[3987]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3989]! } + public var Exceptions_AddToExceptions: String { return self._s[3957]! } + public var AccessDenied_Settings: String { return self._s[3958]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3959]! } + public var Month_ShortMay: String { return self._s[3960]! } + public var Compose_NewGroup: String { return self._s[3962]! } + public var Group_Setup_TypePrivate: String { return self._s[3964]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3966]! } + public var Appearance_ThemeDayClassic: String { return self._s[3967]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3968]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3969]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3970]! } + public var Conversation_typing: String { return self._s[3972]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[3973]! } + public var Paint_Masks: String { return self._s[3974]! } + public var Contacts_DeselectAll: String { return self._s[3975]! } + public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3976]!, self._r[3976]!, [_0]) + } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3977]! } + public var Username_InvalidTaken: String { return self._s[3978]! } + public var Call_StatusNoAnswer: String { return self._s[3979]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3980]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3981]! } + public var Passport_Identity_Selfie: String { return self._s[3982]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3983]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3984]! } + public var Conversation_ClearSecretHistory: String { return self._s[3985]! } + public var PeopleNearby_Description: String { return self._s[3987]! } + public var NetworkUsageSettings_Title: String { return self._s[3988]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3990]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3991]!, self._r[3991]!, [_0]) + return formatWithArgumentRanges(self._s[3992]!, self._r[3992]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3992]!, self._r[3992]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3993]!, self._r[3993]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[3994]! } - public var VoiceOver_Navigation_Search: String { return self._s[3995]! } - public var Map_LiveLocationTitle: String { return self._s[3996]! } - public var Login_InfoAvatarAdd: String { return self._s[3997]! } - public var Passport_Identity_FilesView: String { return self._s[3998]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3999]! } - public var Privacy_Calls_NeverAllow: String { return self._s[4000]! } - public var VoiceOver_Chat_File: String { return self._s[4001]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4002]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[3995]! } + public var VoiceOver_Navigation_Search: String { return self._s[3996]! } + public var Map_LiveLocationTitle: String { return self._s[3997]! } + public var Login_InfoAvatarAdd: String { return self._s[3998]! } + public var Passport_Identity_FilesView: String { return self._s[3999]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[4000]! } + public var Privacy_Calls_NeverAllow: String { return self._s[4001]! } + public var VoiceOver_Chat_File: String { return self._s[4002]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4003]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4003]!, self._r[4003]!, [_0]) + return formatWithArgumentRanges(self._s[4004]!, self._r[4004]!, [_0]) } - public var ContactInfo_PhoneNumberHidden: String { return self._s[4004]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[4005]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4006]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[4005]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[4006]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4007]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4007]!, self._r[4007]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4008]!, self._r[4008]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4008]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[4009]! } - public var Tour_Title2: String { return self._s[4010]! } - public var Wallet_Sent_ViewWallet: String { return self._s[4011]! } - public var Conversation_FileOpenIn: String { return self._s[4012]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4013]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4014]! } - public var Wallpaper_Set: String { return self._s[4015]! } - public var Passport_Identity_Translations: String { return self._s[4017]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4009]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[4010]! } + public var Tour_Title2: String { return self._s[4011]! } + public var Wallet_Sent_ViewWallet: String { return self._s[4012]! } + public var Conversation_FileOpenIn: String { return self._s[4013]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4014]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4015]! } + public var Wallpaper_Set: String { return self._s[4016]! } + public var Passport_Identity_Translations: String { return self._s[4018]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _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 Channel_LeaveChannel: String { return self._s[4019]! } + public var Channel_LeaveChannel: String { return self._s[4020]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4020]!, self._r[4020]!, [_1]) + return formatWithArgumentRanges(self._s[4021]!, self._r[4021]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4022]! } - public var PhotoEditor_HighlightsTint: String { return self._s[4023]! } - public var MessagePoll_LabelPoll: String { return self._s[4024]! } - public var Passport_Email_Delete: String { return self._s[4025]! } - public var Conversation_Mute: String { return self._s[4027]! } - public var Channel_AddBotAsAdmin: String { return self._s[4028]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[4030]! } - public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4031]! } - public var ChatSettings_IntentsSettings: String { return self._s[4033]! } - public var Channel_Management_LabelOwner: String { return self._s[4034]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4023]! } + public var PhotoEditor_HighlightsTint: String { return self._s[4024]! } + public var MessagePoll_LabelPoll: String { return self._s[4025]! } + public var Passport_Email_Delete: String { return self._s[4026]! } + public var Conversation_Mute: String { return self._s[4028]! } + public var Channel_AddBotAsAdmin: String { return self._s[4029]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[4031]! } + public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4032]! } + public var ChatSettings_IntentsSettings: String { return self._s[4034]! } + public var Channel_Management_LabelOwner: String { return self._s[4035]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4035]!, self._r[4035]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4036]!, self._r[4036]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[4036]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[4037]! } - public var Common_No: String { return self._s[4038]! } - public var Weekday_Sunday: String { return self._s[4039]! } - public var Notification_Reply: String { return self._s[4040]! } - public var Conversation_ViewMessage: String { return self._s[4041]! } + public var Calls_CallTabDescription: String { return self._s[4037]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[4038]! } + public var Common_No: String { return self._s[4039]! } + public var Weekday_Sunday: String { return self._s[4040]! } + public var Notification_Reply: String { return self._s[4041]! } + public var Conversation_ViewMessage: String { return self._s[4042]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_0]) - } - public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4043]!, self._r[4043]!, [_0]) } + public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_0]) + } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4045]!, self._r[4045]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4045]! } - public var Wallet_Send_Title: String { return self._s[4046]! } - public var Message_PinnedDocumentMessage: String { return self._s[4047]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[4048]! } - public var DialogList_TabTitle: String { return self._s[4050]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4051]! } - public var Passport_FieldEmail: String { return self._s[4052]! } - public var Conversation_UnpinMessageAlert: String { return self._s[4053]! } - public var Passport_Address_TypeBankStatement: String { return self._s[4054]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[4055]! } - public var Passport_Identity_ExpiryDate: String { return self._s[4056]! } - public var Privacy_Calls_P2P: String { return self._s[4057]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4046]! } + public var Wallet_Send_Title: String { return self._s[4047]! } + public var Message_PinnedDocumentMessage: String { return self._s[4048]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[4049]! } + public var DialogList_TabTitle: String { return self._s[4051]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4052]! } + public var Passport_FieldEmail: String { return self._s[4053]! } + public var Conversation_UnpinMessageAlert: String { return self._s[4054]! } + public var Passport_Address_TypeBankStatement: String { return self._s[4055]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[4056]! } + public var Passport_Identity_ExpiryDate: String { return self._s[4057]! } + public var Privacy_Calls_P2P: String { return self._s[4058]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4059]!, self._r[4059]!, [_0]) + return formatWithArgumentRanges(self._s[4060]!, self._r[4060]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[4060]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[4061]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4061]!, self._r[4061]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4062]!, self._r[4062]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[4062]! } - public var EnterPasscode_ChangeTitle: String { return self._s[4063]! } - public var TwoFactorSetup_Email_Title: String { return self._s[4064]! } - public var Passport_InfoText: String { return self._s[4065]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4066]! } + public var Stickers_ClearRecent: String { return self._s[4063]! } + public var EnterPasscode_ChangeTitle: String { return self._s[4064]! } + public var TwoFactorSetup_Email_Title: String { return self._s[4065]! } + public var Passport_InfoText: String { return self._s[4066]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4067]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4067]!, self._r[4067]!, [_0]) + return formatWithArgumentRanges(self._s[4068]!, self._r[4068]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4068]!, self._r[4068]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4069]!, self._r[4069]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4069]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[4070]! } - public var VoiceOver_Navigation_Compose: String { return self._s[4071]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[4072]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[4074]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4075]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4070]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[4071]! } + public var VoiceOver_Navigation_Compose: String { return self._s[4072]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[4073]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[4075]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4076]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4076]!, self._r[4076]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4077]!, self._r[4077]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4078]! } - public var ChatSettings_OpenLinksIn: String { return self._s[4079]! } - public var Map_HomeAndWorkTitle: String { return self._s[4080]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4079]! } + public var ChatSettings_OpenLinksIn: String { return self._s[4080]! } + public var Map_HomeAndWorkTitle: String { return self._s[4081]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_0]) + return formatWithArgumentRanges(self._s[4083]!, self._r[4083]!, [_0]) } - public var DialogList_Unread: String { return self._s[4083]! } + public var DialogList_Unread: String { return self._s[4084]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4084]!, self._r[4084]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[4085]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4086]! } + public var User_DeletedAccount: String { return self._s[4086]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4087]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4087]!, self._r[4087]!, [_0]) + return formatWithArgumentRanges(self._s[4088]!, self._r[4088]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[4088]! } - public var SharedMedia_CategoryMedia: String { return self._s[4089]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4090]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4091]! } - public var Watch_ChatList_Compose: String { return self._s[4092]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4093]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[4094]! } - public var Watch_Microphone_Access: String { return self._s[4095]! } - public var Group_Setup_HistoryHeader: String { return self._s[4096]! } - public var Map_SetThisLocation: String { return self._s[4097]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4098]! } - public var Activity_UploadingPhoto: String { return self._s[4099]! } - public var Conversation_Edit: String { return self._s[4101]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[4102]! } - public var Login_TermsOfServiceDecline: String { return self._s[4103]! } - public var Message_PinnedContactMessage: String { return self._s[4104]! } + public var UserInfo_NotificationsDefault: String { return self._s[4089]! } + public var SharedMedia_CategoryMedia: String { return self._s[4090]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4091]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4092]! } + public var Watch_ChatList_Compose: String { return self._s[4093]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4094]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[4095]! } + public var Watch_Microphone_Access: String { return self._s[4096]! } + public var Group_Setup_HistoryHeader: String { return self._s[4097]! } + public var Map_SetThisLocation: String { return self._s[4098]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4099]! } + public var Activity_UploadingPhoto: String { return self._s[4100]! } + public var Conversation_Edit: String { return self._s[4102]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[4103]! } + public var Login_TermsOfServiceDecline: String { return self._s[4104]! } + public var Message_PinnedContactMessage: String { return self._s[4105]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4105]!, self._r[4105]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4106]!, self._r[4106]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4106]!, self._r[4106]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[4107]!, self._r[4107]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[4107]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4109]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4110]! } + public var Appearance_LargeEmoji: String { return self._s[4108]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4110]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4111]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4111]!, self._r[4111]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[4112]! } - public var Message_PinnedPhotoMessage: String { return self._s[4113]! } - public var Passport_FieldPhone: String { return self._s[4114]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4115]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[4116]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[4118]! } - public var Conversation_Call: String { return self._s[4119]! } - public var Common_TakePhoto: String { return self._s[4121]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4122]! } - public var Wallet_Receive_CommentHeader: String { return self._s[4123]! } - public var Channel_NotificationLoading: String { return self._s[4124]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[4113]! } + public var Message_PinnedPhotoMessage: String { return self._s[4114]! } + public var Passport_FieldPhone: String { return self._s[4115]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4116]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[4117]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[4119]! } + public var Conversation_Call: String { return self._s[4120]! } + public var Common_TakePhoto: String { return self._s[4122]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4123]! } + public var Wallet_Receive_CommentHeader: String { return self._s[4124]! } + public var Channel_NotificationLoading: String { return self._s[4125]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4125]!, self._r[4125]!, [_0]) - } - public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4126]!, self._r[4126]!, [_0]) } + public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4127]!, self._r[4127]!, [_0]) + } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _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 Permissions_SiriTitle_v0: String { return self._s[4128]! } + public var Permissions_SiriTitle_v0: String { return self._s[4129]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4129]!, self._r[4129]!, [_0]) - } - public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4130]!, self._r[4130]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[4131]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[4132]! } - public var ClearCache_FreeSpace: String { return self._s[4133]! } - public var Common_edit: String { return self._s[4134]! } - public var PrivacySettings_AuthSessions: String { return self._s[4135]! } - public var Month_ShortJune: String { return self._s[4136]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4137]! } - public var Call_ReportSend: String { return self._s[4138]! } - public var Watch_LastSeen_JustNow: String { return self._s[4139]! } - public var Notifications_MessageNotifications: String { return self._s[4140]! } - public var WallpaperSearch_ColorGreen: String { return self._s[4141]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4143]! } - public var Group_Status: String { return self._s[4144]! } + public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4131]!, self._r[4131]!, [_0]) + } + public var Channel_MessagePhotoRemoved: String { return self._s[4132]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[4133]! } + public var ClearCache_FreeSpace: String { return self._s[4134]! } + public var Common_edit: String { return self._s[4135]! } + public var PrivacySettings_AuthSessions: String { return self._s[4136]! } + public var Month_ShortJune: String { return self._s[4137]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4138]! } + public var Call_ReportSend: String { return self._s[4139]! } + public var Watch_LastSeen_JustNow: String { return self._s[4140]! } + public var Notifications_MessageNotifications: String { return self._s[4141]! } + public var WallpaperSearch_ColorGreen: String { return self._s[4142]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4144]! } + public var Group_Status: String { return self._s[4145]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4145]!, self._r[4145]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4146]!, self._r[4146]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[4146]! } - public var ShareMenu_ShareTo: String { return self._s[4147]! } - public var Conversation_Moderate_Ban: String { return self._s[4148]! } + public var TextFormat_AddLinkTitle: String { return self._s[4147]! } + public var ShareMenu_ShareTo: String { return self._s[4148]! } + public var Conversation_Moderate_Ban: String { return self._s[4149]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4149]!, self._r[4149]!, [_0]) + return formatWithArgumentRanges(self._s[4150]!, self._r[4150]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[4150]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4151]! } + public var SharedMedia_ViewInChat: String { return self._s[4151]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4152]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4152]!, self._r[4152]!, [_1]) + return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4154]!, self._r[4154]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_0]) + return formatWithArgumentRanges(self._s[4156]!, self._r[4156]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[4156]! } - public var Appearance_ReduceMotion: String { return self._s[4157]! } + public var Map_OpenInHereMaps: String { return self._s[4157]! } + public var Appearance_ReduceMotion: String { return self._s[4158]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4158]!, self._r[4158]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4159]!, self._r[4159]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[4159]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[4160]! } - public var PhotoEditor_Skip: String { return self._s[4161]! } - public func OldChannels_InactiveWeek(_ value: Int32) -> String { + public var Channel_Setup_TypePublicHelp: String { return self._s[4160]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[4161]! } + public var PhotoEditor_Skip: String { return self._s[4162]! } + public func MuteExpires_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Hours(_ value: Int32) -> String { + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 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[2 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { + public func ChatList_SelectedChats(_ 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) + return String(format: self._ps[2 * 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[5 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Days(_ value: Int32) -> String { + public func MessageTimer_ShortDays(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[6 * 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[7 * 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[8 * 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[9 * 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[10 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[3 * 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[11 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedVideoMessages(_ value: Int32) -> String { + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[5 * 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[6 * 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[7 * 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[8 * 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[9 * 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[10 * 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[11 * 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[12 * 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[13 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Weeks(_ value: Int32) -> String { + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[14 * 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[15 * 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[15 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessagePoll_QuizCount(_ value: Int32) -> String { + public func Media_SharePhoto(_ 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 Passport_Scans(_ value: Int32) -> String { + public func PasscodeSettings_FailedAttempts(_ 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 Wallet_Updated_HoursAgo(_ value: Int32) -> String { + public func MuteExpires_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedStickers(_ value: Int32) -> String { + public func Wallet_Updated_MinutesAgo(_ 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 AttachmentMenu_SendPhoto(_ value: Int32) -> String { + public func MuteExpires_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { + public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[21 * 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[22 * 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[22 * 6 + Int(form.rawValue)]!, _1, _2) } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + public func MuteFor_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + public func ForwardedMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + public func ForwardedPhotos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_DeletedChats(_ value: Int32) -> String { + public func Call_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + public func Conversation_LiveLocationMembersCount(_ 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 Notification_GameScoreSelfExtended(_ value: Int32) -> String { + public func Contacts_ImportersCount(_ 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 OldChannels_Leave(_ value: Int32) -> String { + public func SharedMedia_DeleteItemsConfirmation(_ 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 Notification_GameScoreSimple(_ value: Int32) -> String { + public func ForwardedContacts(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_SharePhoto(_ value: Int32) -> String { + public func Wallet_Updated_HoursAgo(_ 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) @@ -4845,294 +4849,291 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[32 * 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[33 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusSubscribers(_ 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 MessageTimer_Years(_ 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 Call_ShortSeconds(_ 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 SharedMedia_Video(_ 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 OldChannels_InactiveYear(_ 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 Watch_LastSeen_HoursAgo(_ 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 ServiceMessage_GameScoreExtended(_ 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 LastSeen_HoursAgo(_ 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 ForwardedLocations(_ 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 Notification_GameScoreExtended(_ 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 Contacts_InviteContacts(_ 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 StickerPack_StickerCount(_ 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 MessageTimer_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) - } - public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessagePoll_VotedCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_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 ForwardedContacts(_ 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 AttachmentMenu_SendItem(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func OldChannels_InactiveMonth(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[55 * 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[56 * 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[57 * 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[58 * 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[59 * 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[60 * 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[61 * 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[62 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Theme_UsersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, _0, _1) - } - 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[65 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Media_ShareVideo(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[67 * 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[68 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Seconds(_ 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 GroupInfo_ParticipantCount(_ 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 ServiceMessage_GameScoreSelfExtended(_ 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_LastSeen_MinutesAgo(_ 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 Conversation_StatusOnline(_ 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 Contacts_ImportersCount(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 InviteText_ContactsCountText(_ 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 ForwardedFiles(_ 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 PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_ShortMinutes(_ 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_Exceptions(_ 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) + return String(format: self._ps[33 * 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[81 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusMembers(_ value: Int32) -> String { + public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[36 * 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[37 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Conversation_StatusOnline(_ 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 Watch_UserInfo_Mute(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func InviteText_ContactsCountText(_ 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 MessagePoll_QuizCount(_ 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 SharedMedia_Video(_ 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 AttachmentMenu_SendPhoto(_ 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 Passport_Scans(_ 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 MessageTimer_ShortWeeks(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_Exceptions(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_Weeks(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 MessageTimer_ShortMinutes(_ 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 DialogList_LiveLocationChatsCount(_ 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 OldChannels_InactiveWeek(_ 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 Conversation_StatusSubscribers(_ 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 Forward_ConfirmMultipleFiles(_ 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 AttachmentMenu_SendVideo(_ 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 Watch_LastSeen_HoursAgo(_ 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 Media_ShareVideo(_ 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 SharedMedia_File(_ 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 Watch_LastSeen_MinutesAgo(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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_Generic(_ 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 VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedStickers(_ 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 GroupInfo_ShowMoreMembers(_ 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 Conversation_SelectedMessages(_ 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 Notification_GameScoreSelfExtended(_ 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 PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[73 * 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[74 * 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[75 * 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[76 * 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[77 * 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[78 * 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[79 * 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[80 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 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[82 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[84 * 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[84 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[85 * 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[85 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MuteExpires_Minutes(_ value: Int32) -> String { + public func UserCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedPolls(_ value: Int32) -> String { + public func Map_ETAHours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { let form = getPluralizationForm(self.lc, selector) return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func OldChannels_GroupFormat(_ value: Int32) -> String { + public func MessageTimer_ShortHours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Days(_ value: Int32) -> String { + public func StickerPack_AddMaskCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteFor_Days(_ value: Int32) -> String { + public func Call_Seconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) @@ -5142,158 +5143,158 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedMessages(_ value: Int32) -> String { + public func Conversation_StatusMembers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Generic(_ value: Int32) -> String { + public func StickerPack_AddStickerCount(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, _1, _2) + public func OldChannels_InactiveYear(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, _1, _2) + public func ForwardedVideoMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { + public func AttachmentMenu_SendItem(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[98 * 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[99 * 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[99 * 6 + Int(form.rawValue)]!, _0, _1) } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + public func ForwardedFiles(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteFor_Hours(_ value: Int32) -> String { + public func Contacts_InviteContacts(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) } - public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + public func Invitation_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 DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + public func Theme_UsersCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[103 * 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[104 * 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[104 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func Map_ETAMinutes(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSimple(_ 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 SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + public func Call_ShortSeconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortHours(_ value: Int32) -> String { + public func MessageTimer_Months(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Map_ETAMinutes(_ 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) + return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func QuickSend_Photos(_ value: Int32) -> String { + public func MessageTimer_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 AttachmentMenu_SendVideo(_ value: Int32) -> String { + public func QuickSend_Photos(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[111 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_File(_ value: Int32) -> String { + public func LastSeen_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Photo(_ value: Int32) -> String { + public func ForwardedAudios(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { + public func MessageTimer_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) } - public func PollResults_ShowMore(_ value: Int32) -> String { + public func MuteFor_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[116 * 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[117 * 6 + Int(form.rawValue)]!, _1, _2) + public func LastSeen_HoursAgo(_ 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 Conversation_SelectedMessages(_ value: Int32) -> String { + public func AttachmentMenu_SendGif(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { + public func GroupInfo_ParticipantCount(_ 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 Media_ShareItem(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Map_ETAHours(_ value: Int32) -> String { + public func StickerPack_StickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[121 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Seconds(_ value: Int32) -> String { + public func OldChannels_GroupFormat(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { + public func Media_ShareItem(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Months(_ value: Int32) -> String { + public func SharedMedia_Photo(_ 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 PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + public func ForwardedLocations(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping index 4eb8d44bfdb9706e8e292817c708795ea3cf0534..7adbe8a6e4e7f15e6e162ac5d7527016541fb600 100644 GIT binary patch delta 13562 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 Date: Fri, 17 Jan 2020 18:32:44 +0400 Subject: [PATCH 35/63] - remove debug code [skip ci] --- submodules/TelegramCore/Sources/JoinLink.swift | 3 --- 1 file changed, 3 deletions(-) diff --git a/submodules/TelegramCore/Sources/JoinLink.swift b/submodules/TelegramCore/Sources/JoinLink.swift index 76711093d6..b037b017c5 100644 --- a/submodules/TelegramCore/Sources/JoinLink.swift +++ b/submodules/TelegramCore/Sources/JoinLink.swift @@ -28,9 +28,6 @@ public enum ExternalJoiningChatState { } public func joinChatInteractively(with hash: String, account: Account) -> Signal { - #if DEBUG - return .fail(.tooMuchJoined) - #endif return account.network.request(Api.functions.messages.importChatInvite(hash: hash)) |> mapError { error -> JoinLinkError in if error.errorDescription == "CHANNELS_TOO_MUCH" { From cae30133bc38ee90389704734e357baf98939002 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 19:33:47 +0400 Subject: [PATCH 36/63] Polls --- Telegram-iOS/en.lproj/Localizable.strings | 8 +- .../Sources/CreatePollController.swift | 12 +- submodules/Display/Display/ListView.swift | 3 +- .../Sources/ItemListPeerItem.swift | 2 +- .../Sources/ItemListControllerNode.swift | 10 + .../MergeLists/Sources/MergeLists.swift | 21 +- .../ArchivedStickerPacksController.swift | 2 +- .../FeaturedStickerPacksController.swift | 2 +- .../InstalledStickerPacksController.swift | 2 +- .../Sources/StickerPackScreen.swift | 4 +- .../ChatMessagePollBubbleContentNode.swift | 210 +++++++++++++----- .../TelegramUI/OpenChatMessage.swift | 2 +- 12 files changed, 200 insertions(+), 78 deletions(-) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index 1dac51b662..5e78910498 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -5247,7 +5247,7 @@ Any member of this group will be able to see messages in the channel."; "Map.NoPlacesNearby" = "There are no known places nearby.\nTry a different location."; "CreatePoll.QuizTitle" = "New Quiz"; -"CreatePoll.QuizOptionsHeader" = "QUIZ OPTIONS"; +"CreatePoll.QuizOptionsHeader" = "QUIZ ANSWERS"; "CreatePoll.Anonymous" = "Anonymous Voting"; "CreatePoll.MultipleChoice" = "Multiple Choice"; "CreatePoll.MultipleChoiceQuizAlert" = "A quiz has one correct answer."; @@ -5258,7 +5258,7 @@ Any member of this group will be able to see messages in the channel."; "MessagePoll.LabelPoll" = "Public Poll"; "MessagePoll.LabelAnonymousQuiz" = "Anonymous Quiz"; "MessagePoll.LabelQuiz" = "Quiz"; -"MessagePoll.SubmitVote" = "Submit Vote"; +"MessagePoll.SubmitVote" = "Vote"; "MessagePoll.ViewResults" = "View Results"; "MessagePoll.QuizNoUsers" = "Nobody answered yet"; "MessagePoll.QuizCount_0" = "%@ answered"; @@ -5270,8 +5270,8 @@ Any member of this group will be able to see messages in the channel."; "PollResults.Title" = "Poll Results"; "PollResults.Collapse" = "COLLAPSE"; -"PollResults.ShowMore_1" = "Show %@ More"; -"PollResults.ShowMore_any" = "Show %@ More"; +"PollResults.ShowMore_1" = "Show More (%@)"; +"PollResults.ShowMore_any" = "Show More (%@)"; "Conversation.StopQuiz" = "Stop Quiz"; "Conversation.StopQuizConfirmationTitle" = "If you stop this quiz now, nobody will be able to submit answers. This action cannot be undone."; diff --git a/submodules/ComposePollUI/Sources/CreatePollController.swift b/submodules/ComposePollUI/Sources/CreatePollController.swift index bb98183821..2659b26e3b 100644 --- a/submodules/ComposePollUI/Sources/CreatePollController.swift +++ b/submodules/ComposePollUI/Sources/CreatePollController.swift @@ -22,18 +22,18 @@ private struct OrderedLinkedListItemOrdering: Comparable { var higherItemIds: Set static func <(lhs: OrderedLinkedListItemOrdering, rhs: OrderedLinkedListItemOrdering) -> Bool { - if lhs.lowerItemIds.contains(rhs.id) { - return false - } if rhs.lowerItemIds.contains(lhs.id) { return true } - if lhs.higherItemIds.contains(rhs.id) { - return true - } if rhs.higherItemIds.contains(lhs.id) { return false } + if lhs.lowerItemIds.contains(rhs.id) { + return false + } + if lhs.higherItemIds.contains(rhs.id) { + return true + } assertionFailure() return false } diff --git a/submodules/Display/Display/ListView.swift b/submodules/Display/Display/ListView.swift index e75afca77e..964435ecb7 100644 --- a/submodules/Display/Display/ListView.swift +++ b/submodules/Display/Display/ListView.swift @@ -2064,8 +2064,9 @@ open class ListView: ASDisplayNode, UIScrollViewAccessibilityDelegate, UIGesture } } else { if !nodeFrame.size.height.isEqual(to: node.apparentHeight) { + let addAnimation = previousFrame?.height != nodeFrame.size.height node.addApparentHeightAnimation(nodeFrame.size.height, duration: insertionAnimationDuration * UIView.animationDurationFactor(), beginAt: timestamp, update: { [weak node] progress, currentValue in - if let node = node { + if let node = node, addAnimation { node.animateFrameTransition(progress, currentValue) } }) diff --git a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift index 333b3973bc..22666adab8 100644 --- a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift +++ b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift @@ -1275,7 +1275,7 @@ public final class ItemListPeerItemHeader: ListViewItemHeader { } } -public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode { +public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode, ItemListHeaderItemNode { private var theme: PresentationTheme private var strings: PresentationStrings private var actionTitle: String? diff --git a/submodules/ItemListUI/Sources/ItemListControllerNode.swift b/submodules/ItemListUI/Sources/ItemListControllerNode.swift index 7f99f946e5..253b2d14d2 100644 --- a/submodules/ItemListUI/Sources/ItemListControllerNode.swift +++ b/submodules/ItemListUI/Sources/ItemListControllerNode.swift @@ -8,6 +8,10 @@ import SyncCore import TelegramPresentationData import MergeLists +public protocol ItemListHeaderItemNode: class { + func updateTheme(theme: PresentationTheme) +} + public typealias ItemListSectionId = Int32 public protocol ItemListNodeAnyEntry { @@ -467,6 +471,12 @@ open class ItemListControllerNode: ASDisplayNode, UIScrollViewDelegate { self.rightOverlayNode.backgroundColor = transition.theme.list.blocksBackgroundColor } } + + self.listNode.forEachItemHeaderNode({ itemHeaderNode in + if let itemHeaderNode = itemHeaderNode as? ItemListHeaderItemNode { + itemHeaderNode.updateTheme(theme: transition.theme) + } + }) } if let updateStyle = transition.updateStyle { diff --git a/submodules/MergeLists/Sources/MergeLists.swift b/submodules/MergeLists/Sources/MergeLists.swift index 8b2780082e..5b366bba3a 100644 --- a/submodules/MergeLists/Sources/MergeLists.swift +++ b/submodules/MergeLists/Sources/MergeLists.swift @@ -181,7 +181,7 @@ public func mergeListsStableWithUpdates(leftList: [T], rightList: [T], allUpd return (removeIndices, insertItems, updatedIndices) } -@inlinable +//@inlinable public func mergeListsStableWithUpdates(leftList: [T], rightList: [T], isLess: (T, T) -> Bool, isEqual: (T, T) -> Bool, getId: (T) -> AnyHashable, allUpdated: Bool = false) -> ([Int], [(Int, T, Int?)], [(Int, T, Int)]) { var removeIndices: [Int] = [] var insertItems: [(Int, T, Int?)] = [] @@ -207,6 +207,25 @@ public func mergeListsStableWithUpdates(leftList: [T], rightList: [T], isLess } #endif + var leftStableIds: [AnyHashable] = [] + var rightStableIds: [AnyHashable] = [] + for item in leftList { + leftStableIds.append(getId(item)) + } + for item in rightList { + rightStableIds.append(getId(item)) + } + if Set(leftStableIds) == Set(rightStableIds) && leftStableIds != rightStableIds { + /*var i = 0 + var j = 0 + while true { + if getId(leftList[i]) != getId(rightList[i]) { + + } + }*/ + print("order changed") + } + var currentList = leftList var i = 0 diff --git a/submodules/SettingsUI/Sources/Stickers/ArchivedStickerPacksController.swift b/submodules/SettingsUI/Sources/Stickers/ArchivedStickerPacksController.swift index b262f583f3..e7d013025b 100644 --- a/submodules/SettingsUI/Sources/Stickers/ArchivedStickerPacksController.swift +++ b/submodules/SettingsUI/Sources/Stickers/ArchivedStickerPacksController.swift @@ -453,7 +453,7 @@ public func archivedStickerPacksController(context: AccountContext, mode: Archiv } presentStickerPackController = { [weak controller] info in let packReference: StickerPackReference = .id(id: info.id.id, accessHash: info.accessHash) - presentControllerImpl?(StickerPackScreen(context: context, mainStickerPack: packReference, stickerPacks: [packReference], parentNavigationController: controller?.navigationController as? NavigationController), nil) + presentControllerImpl?(StickerPackScreen(context: context, mode: .settings, mainStickerPack: packReference, stickerPacks: [packReference], parentNavigationController: controller?.navigationController as? NavigationController), nil) } return controller diff --git a/submodules/SettingsUI/Sources/Stickers/FeaturedStickerPacksController.swift b/submodules/SettingsUI/Sources/Stickers/FeaturedStickerPacksController.swift index 68743f7b34..febff7b0b1 100644 --- a/submodules/SettingsUI/Sources/Stickers/FeaturedStickerPacksController.swift +++ b/submodules/SettingsUI/Sources/Stickers/FeaturedStickerPacksController.swift @@ -265,7 +265,7 @@ public func featuredStickerPacksController(context: AccountContext) -> ViewContr presentStickerPackController = { [weak controller] info in let packReference: StickerPackReference = .id(id: info.id.id, accessHash: info.accessHash) - presentControllerImpl?(StickerPackScreen(context: context, mainStickerPack: packReference, stickerPacks: [packReference], parentNavigationController: controller?.navigationController as? NavigationController), nil) + presentControllerImpl?(StickerPackScreen(context: context, mode: .settings, mainStickerPack: packReference, stickerPacks: [packReference], parentNavigationController: controller?.navigationController as? NavigationController), nil) } return controller diff --git a/submodules/SettingsUI/Sources/Stickers/InstalledStickerPacksController.swift b/submodules/SettingsUI/Sources/Stickers/InstalledStickerPacksController.swift index 84a7c355c4..5675e00417 100644 --- a/submodules/SettingsUI/Sources/Stickers/InstalledStickerPacksController.swift +++ b/submodules/SettingsUI/Sources/Stickers/InstalledStickerPacksController.swift @@ -838,7 +838,7 @@ public func installedStickerPacksController(context: AccountContext, mode: Insta packs.insert(packReference, at: 0) } if let mainStickerPack = mainStickerPack { - presentControllerImpl?(StickerPackScreen(context: context, mainStickerPack: mainStickerPack, stickerPacks: packs, parentNavigationController: controller?.navigationController as? NavigationController, actionPerformed: { info, items, action in + presentControllerImpl?(StickerPackScreen(context: context, mode: .settings, mainStickerPack: mainStickerPack, stickerPacks: packs, parentNavigationController: controller?.navigationController as? NavigationController, actionPerformed: { info, items, action in let presentationData = context.sharedContext.currentPresentationData.with { $0 } var animateInAsReplacement = false if let navigationController = navigationControllerImpl?() { diff --git a/submodules/StickerPackPreviewUI/Sources/StickerPackScreen.swift b/submodules/StickerPackPreviewUI/Sources/StickerPackScreen.swift index a9db7dd57b..38e9a5ce70 100644 --- a/submodules/StickerPackPreviewUI/Sources/StickerPackScreen.swift +++ b/submodules/StickerPackPreviewUI/Sources/StickerPackScreen.swift @@ -847,8 +847,8 @@ public enum StickerPackScreenPerformedAction { case remove(positionInList: Int) } -public func StickerPackScreen(context: AccountContext, mainStickerPack: StickerPackReference, stickerPacks: [StickerPackReference], parentNavigationController: NavigationController? = nil, sendSticker: ((FileMediaReference, ASDisplayNode, CGRect) -> Bool)? = nil, actionPerformed: ((StickerPackCollectionInfo, [ItemCollectionItem], StickerPackScreenPerformedAction) -> Void)? = nil) -> ViewController { - let controller = StickerPackPreviewController(context: context, stickerPack: mainStickerPack, mode: .default, parentNavigationController: parentNavigationController, actionPerformed: actionPerformed) +public func StickerPackScreen(context: AccountContext, mode: StickerPackPreviewControllerMode = .default, mainStickerPack: StickerPackReference, stickerPacks: [StickerPackReference], parentNavigationController: NavigationController? = nil, sendSticker: ((FileMediaReference, ASDisplayNode, CGRect) -> Bool)? = nil, actionPerformed: ((StickerPackCollectionInfo, [ItemCollectionItem], StickerPackScreenPerformedAction) -> Void)? = nil) -> ViewController { + let controller = StickerPackPreviewController(context: context, stickerPack: mainStickerPack, mode: mode, parentNavigationController: parentNavigationController, actionPerformed: actionPerformed) controller.sendSticker = sendSticker return controller } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index 6ffc55bb1b..f5dcb2ab0c 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -7,7 +7,6 @@ import SyncCore import Postbox import TextFormat import UrlEscaping -import CheckNode import SwiftSignalKit import AccountContext import AvatarNode @@ -89,40 +88,67 @@ func countNicePercent(votes: [Int], total: Int) -> [Int] { } private final class ChatMessagePollOptionRadioNodeParameters: NSObject { + let timestamp: Double let staticColor: UIColor let animatedColor: UIColor + let fillColor: UIColor + let foregroundColor: UIColor let offset: Double? + let isChecked: Bool? + let checkTransition: ChatMessagePollOptionRadioNodeCheckTransition? - init(staticColor: UIColor, animatedColor: UIColor, offset: Double?) { + init(timestamp: Double, staticColor: UIColor, animatedColor: UIColor, fillColor: UIColor, foregroundColor: UIColor, offset: Double?, isChecked: Bool?, checkTransition: ChatMessagePollOptionRadioNodeCheckTransition?) { + self.timestamp = timestamp self.staticColor = staticColor self.animatedColor = animatedColor + self.fillColor = fillColor + self.foregroundColor = foregroundColor self.offset = offset + self.isChecked = isChecked + self.checkTransition = checkTransition super.init() } } +private final class ChatMessagePollOptionRadioNodeCheckTransition { + let startTime: Double + let duration: Double + let previousValue: Bool + let updatedValue: Bool + + init(startTime: Double, duration: Double, previousValue: Bool, updatedValue: Bool) { + self.startTime = startTime + self.duration = duration + self.previousValue = previousValue + self.updatedValue = updatedValue + } +} + private final class ChatMessagePollOptionRadioNode: ASDisplayNode { private(set) var staticColor: UIColor? private(set) var animatedColor: UIColor? + private(set) var fillColor: UIColor? + private(set) var foregroundColor: UIColor? private var isInHierarchyValue: Bool = false private(set) var isAnimating: Bool = false private var startTime: Double? + private var checkTransition: ChatMessagePollOptionRadioNodeCheckTransition? + private(set) var isChecked: Bool? - private var checkNode: CheckNode? - - private var displayLink: CADisplayLink? + private var displayLink: ConstantDisplayLinkAnimator? private var shouldBeAnimating: Bool { - return self.isInHierarchyValue && self.isAnimating - } - - var isChecked: Bool? { - return self.checkNode?.isChecked + return self.isInHierarchyValue && (self.isAnimating || self.checkTransition != nil) } func updateIsChecked(_ value: Bool, animated: Bool) { - self.checkNode?.setIsChecked(value, animated: animated) + if let previousValue = self.isChecked, previousValue != value { + self.checkTransition = ChatMessagePollOptionRadioNodeCheckTransition(startTime: CACurrentMediaTime(), duration: 0.15, previousValue: previousValue, updatedValue: value) + self.isChecked = value + self.updateAnimating() + self.setNeedsDisplay() + } } override init() { @@ -132,6 +158,10 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { self.isOpaque = false } + deinit { + self.displayLink?.isPaused = true + } + override func willEnterHierarchy() { super.willEnterHierarchy() @@ -154,8 +184,10 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { } } - func update(staticColor: UIColor, animatedColor: UIColor, foregroundColor: UIColor, isSelectable: Bool, isAnimating: Bool) { + func update(staticColor: UIColor, animatedColor: UIColor, fillColor: UIColor, foregroundColor: UIColor, isSelectable: Bool, isAnimating: Bool) { var updated = false + let shouldHaveBeenAnimating = self.shouldBeAnimating + let wasAnimating = self.isAnimating if !staticColor.isEqual(self.staticColor) { self.staticColor = staticColor updated = true @@ -164,61 +196,55 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { self.animatedColor = animatedColor updated = true } - let wasAnimating = self.isAnimating + if !fillColor.isEqual(self.fillColor) { + self.fillColor = fillColor + updated = true + } + if !foregroundColor.isEqual(self.foregroundColor) { + self.foregroundColor = foregroundColor + updated = true + } + if isSelectable != (self.isChecked != nil) { + if isSelectable { + self.isChecked = false + } else { + self.isChecked = nil + self.checkTransition = nil + } + updated = true + } if isAnimating != self.isAnimating { - let previous = self.shouldBeAnimating self.isAnimating = isAnimating let updated = self.shouldBeAnimating - if previous != updated { + if shouldHaveBeenAnimating != updated { self.updateAnimating() } } - if isSelectable && !isAnimating { - if self.checkNode == nil { - updated = true - let checkNode = CheckNode(strokeColor: staticColor, fillColor: animatedColor, foregroundColor: foregroundColor, style: .plain) - self.checkNode = checkNode - self.addSubnode(checkNode) - checkNode.isUserInteractionEnabled = false - checkNode.frame = CGRect(origin: CGPoint(x: -5.0, y: -5.0), size: CGSize(width: 32.0, height: 32.0)) - } - } else if let checkNode = self.checkNode { - updated = true - self.checkNode = nil - if wasAnimating != self.isAnimating { - checkNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.25, removeOnCompletion: false, completion: { [weak checkNode] _ in - checkNode?.removeFromSupernode() - }) - } else { - checkNode.removeFromSupernode() - } - } if updated { self.setNeedsDisplay() } } private func updateAnimating() { - if self.shouldBeAnimating { - self.startTime = CACurrentMediaTime() - if self.displayLink == nil { - class DisplayLinkProxy: NSObject { - var f: () -> Void - init(_ f: @escaping () -> Void) { - self.f = f - } - - @objc func displayLinkEvent() { - self.f() - } - } - let displayLink = CADisplayLink(target: DisplayLinkProxy({ [weak self] in - self?.setNeedsDisplay() - }), selector: #selector(DisplayLinkProxy.displayLinkEvent)) - displayLink.add(to: .main, forMode: .common) - self.displayLink = displayLink + let timestamp = CACurrentMediaTime() + if let checkTransition = self.checkTransition { + if checkTransition.startTime + checkTransition.duration <= timestamp { + self.checkTransition = nil + } + } + + if self.shouldBeAnimating { + if self.isAnimating && self.startTime == nil { + self.startTime = timestamp + } + if self.displayLink == nil { + self.displayLink = ConstantDisplayLinkAnimator(update: { [weak self] in + self?.updateAnimating() + self?.setNeedsDisplay() + }) + self.displayLink?.isPaused = false + self.setNeedsDisplay() } - self.setNeedsDisplay() } else if let displayLink = self.displayLink { self.startTime = nil displayLink.invalidate() @@ -228,12 +254,13 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { } override public func drawParameters(forAsyncLayer layer: _ASDisplayLayer) -> NSObjectProtocol? { - if let staticColor = self.staticColor, let animatedColor = self.animatedColor { + if let staticColor = self.staticColor, let animatedColor = self.animatedColor, let fillColor = self.fillColor, let foregroundColor = self.foregroundColor { + let timestamp = CACurrentMediaTime() var offset: Double? if let startTime = self.startTime { offset = CACurrentMediaTime() - startTime } - return ChatMessagePollOptionRadioNodeParameters(staticColor: self.checkNode == nil ? staticColor : .clear, animatedColor: animatedColor, offset: offset) + return ChatMessagePollOptionRadioNodeParameters(timestamp: timestamp, staticColor: staticColor, animatedColor: animatedColor, fillColor: fillColor, foregroundColor: foregroundColor, offset: offset, isChecked: self.isChecked, checkTransition: self.checkTransition) } else { return nil } @@ -312,8 +339,73 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { } } } else { - context.setStrokeColor(parameters.staticColor.cgColor) - context.strokeEllipse(in: CGRect(origin: CGPoint(x: 0.5, y: 0.5), size: CGSize(width: bounds.width - 1.0, height: bounds.height - 1.0))) + if let isChecked = parameters.isChecked { + let checkedT: CGFloat + let fromValue: CGFloat + let toValue: CGFloat + let fromAlpha: CGFloat + let toAlpha: CGFloat + if let checkTransition = parameters.checkTransition { + checkedT = CGFloat(max(0.0, min(1.0, (parameters.timestamp - checkTransition.startTime) / checkTransition.duration))) + fromValue = checkTransition.previousValue ? bounds.width : 0.0 + fromAlpha = checkTransition.previousValue ? 1.0 : 0.0 + toValue = checkTransition.updatedValue ? bounds.width : 0.0 + toAlpha = checkTransition.updatedValue ? 1.0 : 0.0 + } else { + checkedT = 1.0 + fromValue = isChecked ? bounds.width : 0.0 + fromAlpha = isChecked ? 1.0 : 0.0 + toValue = isChecked ? bounds.width : 0.0 + toAlpha = isChecked ? 1.0 : 0.0 + } + + let diameter = fromValue * (1.0 - checkedT) + toValue * checkedT + let alpha = fromAlpha * (1.0 - checkedT) + toAlpha * checkedT + + if abs(diameter - 1.0) > CGFloat.ulpOfOne { + context.setStrokeColor(parameters.staticColor.cgColor) + context.strokeEllipse(in: CGRect(origin: CGPoint(x: 0.5, y: 0.5), size: CGSize(width: bounds.width - 1.0, height: bounds.height - 1.0))) + } + + if !diameter.isZero { + context.setFillColor(parameters.fillColor.withAlphaComponent(alpha).cgColor) + context.fillEllipse(in: CGRect(origin: CGPoint(x: (bounds.width - diameter) / 2.0, y: (bounds.width - diameter) / 2.0), size: CGSize(width: diameter, height: diameter))) + + context.setLineWidth(1.5) + context.setLineJoin(.round) + context.setLineCap(.round) + + context.setStrokeColor(parameters.foregroundColor.withAlphaComponent(alpha).cgColor) + if parameters.foregroundColor.alpha.isZero { + context.setBlendMode(.clear) + } + let startPoint = CGPoint(x: 6.0, y: 12.13) + let centerPoint = CGPoint(x: 9.28, y: 15.37) + let endPoint = CGPoint(x: 16.0, y: 8.0) + + let pathT = alpha + let pathMiddleT: CGFloat = 0.4 + + context.move(to: startPoint) + if pathT >= pathMiddleT { + context.addLine(to: centerPoint) + + let pathEndT = (pathT - pathMiddleT) / (1.0 - pathMiddleT) + if pathEndT >= 1.0 { + context.addLine(to: endPoint) + } else { + context.addLine(to: CGPoint(x: (1.0 - pathEndT) * centerPoint.x + pathEndT * endPoint.x, y: (1.0 - pathEndT) * centerPoint.y + pathEndT * endPoint.y)) + } + } else { + context.addLine(to: CGPoint(x: (1.0 - pathT) * startPoint.x + pathT * centerPoint.x, y: (1.0 - pathT) * startPoint.y + pathT * centerPoint.y)) + } + context.strokePath() + context.setBlendMode(.normal) + } + } else { + context.setStrokeColor(parameters.staticColor.cgColor) + context.strokeEllipse(in: CGRect(origin: CGPoint(x: 0.5, y: 0.5), size: CGSize(width: bounds.width - 1.0, height: bounds.height - 1.0))) + } } } } @@ -574,7 +666,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { } let radioSize: CGFloat = 22.0 radioNode.frame = CGRect(origin: CGPoint(x: 12.0, y: 12.0), size: CGSize(width: radioSize, height: radioSize)) - radioNode.update(staticColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.radioButton : presentationData.theme.theme.chat.message.outgoing.polls.radioButton, animatedColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.radioProgress : presentationData.theme.theme.chat.message.outgoing.polls.radioProgress, foregroundColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.barIconForeground : presentationData.theme.theme.chat.message.outgoing.polls.barIconForeground, isSelectable: isSelectable, isAnimating: inProgress) + radioNode.update(staticColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.radioButton : presentationData.theme.theme.chat.message.outgoing.polls.radioButton, animatedColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.radioProgress : presentationData.theme.theme.chat.message.outgoing.polls.radioProgress, fillColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.bar : presentationData.theme.theme.chat.message.outgoing.polls.bar, foregroundColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.barIconForeground : presentationData.theme.theme.chat.message.outgoing.polls.barIconForeground, isSelectable: isSelectable, isAnimating: inProgress) } else if let radioNode = node.radioNode { node.radioNode = nil if animated { diff --git a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift index a7f3fba779..6ff8ed7f57 100644 --- a/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift +++ b/submodules/TelegramUI/TelegramUI/OpenChatMessage.swift @@ -305,7 +305,7 @@ func openChatMessageImpl(_ params: OpenChatMessageParams) -> Bool { params.navigationController?.pushViewController(controller) return true case let .stickerPack(reference): - let controller = StickerPackScreen(context: params.context, mainStickerPack: reference, stickerPacks: [reference], sendSticker: params.sendSticker, actionPerformed: { info, items, action in + let controller = StickerPackScreen(context: params.context, mainStickerPack: reference, stickerPacks: [reference], parentNavigationController: params.navigationController, sendSticker: params.sendSticker, actionPerformed: { info, items, action in let presentationData = params.context.sharedContext.currentPresentationData.with { $0 } var animateInAsReplacement = false if let navigationController = params.navigationController { From 7df2240cd758cd66d8de66a44663b807249f2753 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 19:58:11 +0400 Subject: [PATCH 37/63] Fix day theme --- Telegram-iOS/en.lproj/Localizable.strings | 2 +- .../Sources/DefaultDayPresentationTheme.swift | 2 +- .../TelegramUI/ChatMessagePollBubbleContentNode.swift | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index 806fb7d6ab..0fdd4b8f34 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -5252,7 +5252,7 @@ Any member of this group will be able to see messages in the channel."; "CreatePoll.MultipleChoice" = "Multiple Choice"; "CreatePoll.MultipleChoiceQuizAlert" = "A quiz has one correct answer."; "CreatePoll.Quiz" = "Quiz Mode"; -"CreatePoll.QuizInfo" = "A quiz has one correct answer. Users can't revoke their answers."; +"CreatePoll.QuizInfo" = "Polls in Quiz Mode have one correct answer. Users can't revoke their answers."; "CreatePoll.QuizTip" = "Tap to choose the correct answer"; "MessagePoll.LabelPoll" = "Public Poll"; diff --git a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift index b44e4626d5..ce28633511 100644 --- a/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/DefaultDayPresentationTheme.swift @@ -593,7 +593,7 @@ public func makeDefaultDayPresentationTheme(extendingThemeReference: Presentatio fileDescriptionColor: UIColor(rgb: 0xffffff, alpha: 0.65), fileDurationColor: UIColor(rgb: 0xffffff, alpha: 0.65), mediaPlaceholderColor: UIColor(rgb: 0x0077d9), - polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0xffffff, alpha: 0.65), radioProgress: UIColor(rgb: 0xffffff), highlight: UIColor(rgb: 0xffffff, alpha: 0.12), separator: UIColor(rgb: 0xffffff, alpha: 0.65), bar: UIColor(rgb: 0xffffff), barIconForeground: .white, barPositive: UIColor(rgb: 0xffffff), barNegative: UIColor(rgb: 0xffffff)), + polls: PresentationThemeChatBubblePolls(radioButton: UIColor(rgb: 0xffffff, alpha: 0.65), radioProgress: UIColor(rgb: 0xffffff), highlight: UIColor(rgb: 0xffffff, alpha: 0.12), separator: UIColor(rgb: 0xffffff, alpha: 0.65), bar: UIColor(rgb: 0xffffff), barIconForeground: .clear, barPositive: UIColor(rgb: 0xffffff), barNegative: UIColor(rgb: 0xffffff)), actionButtonsFillColor: PresentationThemeVariableColor(withWallpaper: serviceBackgroundColor, withoutWallpaper: UIColor(rgb: 0xffffff, alpha: 0.8)), actionButtonsStrokeColor: PresentationThemeVariableColor(withWallpaper: .clear, withoutWallpaper: UIColor(rgb: 0x007ee5)), actionButtonsTextColor: PresentationThemeVariableColor(withWallpaper: UIColor(rgb: 0xffffff), withoutWallpaper: UIColor(rgb: 0x007ee5)), diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index f5dcb2ab0c..174ca9909a 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -383,7 +383,8 @@ private final class ChatMessagePollOptionRadioNode: ASDisplayNode { let centerPoint = CGPoint(x: 9.28, y: 15.37) let endPoint = CGPoint(x: 16.0, y: 8.0) - let pathT = alpha + let pathStartT: CGFloat = 0.15 + let pathT = max(0.0, (alpha - pathStartT) / (1.0 - pathStartT)) let pathMiddleT: CGFloat = 0.4 context.move(to: startPoint) From 36edf0f4768ee4fab5d28526ce1a803d29901f85 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 20:43:32 +0400 Subject: [PATCH 38/63] Fix ThemeSettingsThemeItem transaction --- .../Sources/Themes/ThemeAutoNightSettingsController.swift | 1 + .../Sources/Themes/ThemeSettingsThemeItem.swift | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/submodules/SettingsUI/Sources/Themes/ThemeAutoNightSettingsController.swift b/submodules/SettingsUI/Sources/Themes/ThemeAutoNightSettingsController.swift index a95320fa48..13136e0a15 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeAutoNightSettingsController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeAutoNightSettingsController.swift @@ -587,6 +587,7 @@ public func themeAutoNightSettingsController(context: AccountContext) -> ViewCon } let controller = ItemListController(context: context, state: signal) + controller.alwaysSynchronous = true presentControllerImpl = { [weak controller] c in controller?.present(c, in: .window(.root)) } diff --git a/submodules/SettingsUI/Sources/Themes/ThemeSettingsThemeItem.swift b/submodules/SettingsUI/Sources/Themes/ThemeSettingsThemeItem.swift index cde23ef767..70366675ee 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeSettingsThemeItem.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeSettingsThemeItem.swift @@ -415,6 +415,7 @@ private struct ThemeSettingsThemeItemNodeTransition { let insertions: [ListViewInsertItem] let updates: [ListViewUpdateItem] let crossfade: Bool + let entries: [ThemeSettingsThemeEntry] } private func preparedTransition(context: AccountContext, action: @escaping (PresentationThemeReference) -> Void, contextAction: ((PresentationThemeReference, ASDisplayNode, ContextGesture?) -> Void)?, from fromEntries: [ThemeSettingsThemeEntry], to toEntries: [ThemeSettingsThemeEntry], crossfade: Bool) -> ThemeSettingsThemeItemNodeTransition { @@ -424,7 +425,7 @@ private func preparedTransition(context: AccountContext, action: @escaping (Pres let insertions = indicesAndItems.map { ListViewInsertItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, action: action, contextAction: contextAction), directionHint: .Down) } let updates = updateIndices.map { ListViewUpdateItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, action: action, contextAction: contextAction), directionHint: nil) } - return ThemeSettingsThemeItemNodeTransition(deletions: deletions, insertions: insertions, updates: updates, crossfade: crossfade) + return ThemeSettingsThemeItemNodeTransition(deletions: deletions, insertions: insertions, updates: updates, crossfade: crossfade, entries: toEntries) } private func ensureThemeVisible(listNode: ListView, themeReference: PresentationThemeReference, animated: Bool) -> Bool { @@ -512,10 +513,13 @@ class ThemeSettingsThemeItemNode: ListViewItemNode, ItemListItemNode { if self.initialized && transition.crossfade { options.insert(.AnimateCrossfade) } + options.insert(.Synchronous) var scrollToItem: ListViewScrollToItem? if !self.initialized { - if let index = item.themes.firstIndex(where: { $0.index == item.currentTheme.index }) { + if let index = transition.entries.firstIndex(where: { entry in + return entry.theme.index == item.currentTheme.index + }) { scrollToItem = ListViewScrollToItem(index: index, position: .bottom(-57.0), animated: false, curve: .Default(duration: 0.0), directionHint: .Down) self.initialized = true } From 30e4543b9c4e2d6512604193265a305c24c1c6d1 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 17 Jan 2020 20:05:21 +0300 Subject: [PATCH 39/63] Store current default show calls tab so the tab won't disappear for existing users after we change default value to off it the next version --- .../TelegramUI/TelegramUI/AppDelegate.swift | 2 + .../Sources/CallListSettings.swift | 64 +++++++++++++++++-- 2 files changed, 59 insertions(+), 7 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/AppDelegate.swift b/submodules/TelegramUI/TelegramUI/AppDelegate.swift index 57ed011275..5fd24a884e 100644 --- a/submodules/TelegramUI/TelegramUI/AppDelegate.swift +++ b/submodules/TelegramUI/TelegramUI/AppDelegate.swift @@ -1156,6 +1156,8 @@ final class SharedApplicationContext { self.registerForNotifications(context: context.context, authorize: authorizeNotifications) self.resetIntentsIfNeeded(context: context.context) + + let _ = storeCurrentCallListTabDefaultValue(accountManager: context.context.sharedContext.accountManager).start() })) } else { self.mainWindow.viewController = nil diff --git a/submodules/TelegramUIPreferences/Sources/CallListSettings.swift b/submodules/TelegramUIPreferences/Sources/CallListSettings.swift index ff81d69b1a..1a7640f660 100644 --- a/submodules/TelegramUIPreferences/Sources/CallListSettings.swift +++ b/submodules/TelegramUIPreferences/Sources/CallListSettings.swift @@ -3,22 +3,58 @@ import Postbox import SwiftSignalKit public struct CallListSettings: PreferencesEntry, Equatable { - public var showTab: Bool + public var _showTab: Bool? + public var defaultShowTab: Bool? public static var defaultSettings: CallListSettings { - return CallListSettings(showTab: false) + return CallListSettings(showTab: true) + } + + public var showTab: Bool { + get { + if let value = self._showTab { + return value + } else if let defaultValue = self.defaultShowTab { + return defaultValue + } else { + return CallListSettings.defaultSettings.showTab + } + } set { + self._showTab = newValue + } } public init(showTab: Bool) { - self.showTab = showTab + self._showTab = showTab + } + + public init(showTab: Bool?, defaultShowTab: Bool?) { + self._showTab = showTab + self.defaultShowTab = defaultShowTab } public init(decoder: PostboxDecoder) { - self.showTab = decoder.decodeInt32ForKey("showTab", orElse: 0) != 0 + var defaultValue = CallListSettings.defaultSettings.showTab + if let alternativeDefaultValue = decoder.decodeOptionalInt32ForKey("defaultShowTab") { + defaultValue = alternativeDefaultValue != 0 + self.defaultShowTab = alternativeDefaultValue != 0 + } + if let value = decoder.decodeOptionalInt32ForKey("showTab") { + self._showTab = value != 0 + } } public func encode(_ encoder: PostboxEncoder) { - encoder.encodeInt32(self.showTab ? 1 : 0, forKey: "showTab") + if let defaultShowTab = self.defaultShowTab { + encoder.encodeInt32(defaultShowTab ? 1 : 0, forKey: "defaultShowTab") + } else { + encoder.encodeNil(forKey: "defaultShowTab") + } + if let showTab = self._showTab { + encoder.encodeInt32(showTab ? 1 : 0, forKey: "showTab") + } else { + encoder.encodeNil(forKey: "showTab") + } } public func isEqual(to: PreferencesEntry) -> Bool { @@ -30,11 +66,11 @@ public struct CallListSettings: PreferencesEntry, Equatable { } public static func ==(lhs: CallListSettings, rhs: CallListSettings) -> Bool { - return lhs.showTab == rhs.showTab + return lhs._showTab == rhs._showTab && lhs.defaultShowTab == rhs.defaultShowTab } public func withUpdatedShowTab(_ showTab: Bool) -> CallListSettings { - return CallListSettings(showTab: showTab) + return CallListSettings(showTab: showTab, defaultShowTab: self.defaultShowTab) } } @@ -51,3 +87,17 @@ public func updateCallListSettingsInteractively(accountManager: AccountManager, }) } } + +public func storeCurrentCallListTabDefaultValue(accountManager: AccountManager) -> Signal { + return accountManager.transaction { transaction -> Void in + transaction.updateSharedData(ApplicationSpecificSharedDataKeys.callListSettings, { entry in + let currentSettings: CallListSettings + if let entry = entry as? CallListSettings { + currentSettings = entry + } else { + currentSettings = CallListSettings(showTab: nil, defaultShowTab: CallListSettings.defaultSettings.showTab) + } + return currentSettings + }) + } +} From 59f1e2a6d7aabd04902b8e118f2fc962c02ba2bc Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 17 Jan 2020 20:05:41 +0300 Subject: [PATCH 40/63] Revert round video context menu changes --- .../ChatMessageInstantVideoItemNode.swift | 164 ++++++++---------- 1 file changed, 75 insertions(+), 89 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift index 0555e93e28..77dbaa3cbe 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift @@ -81,14 +81,6 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { } return .waitForSingleTap } - recognizer.longTap = { [weak self] point, recognizer in - guard let strongSelf = self else { - return - } - if strongSelf.gestureRecognized(gesture: .longTap, location: point, recognizer: recognizer) { - recognizer.cancel() - } - } self.view.addGestureRecognizer(recognizer) let replyRecognizer = ChatSwipeToReplyRecognizer(target: self, action: #selector(self.swipeToReplyGesture(_:))) @@ -588,93 +580,87 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { switch recognizer.state { case .ended: if let (gesture, location) = recognizer.lastRecognizedGestureAndLocation { - let _ = self.gestureRecognized(gesture: gesture, location: location, recognizer: nil) + switch gesture { + case .tap: + if let avatarNode = self.accessoryItemNode as? ChatMessageAvatarAccessoryItemNode, avatarNode.frame.contains(location) { + if let item = self.item, let author = item.content.firstMessage.author { + var openPeerId = item.effectiveAuthorId ?? author.id + var navigate: ChatControllerInteractionNavigateToPeer + + if item.content.firstMessage.id.peerId == item.context.account.peerId { + navigate = .chat(textInputState: nil, subject: nil) + } else { + navigate = .info + } + + for attribute in item.content.firstMessage.attributes { + if let attribute = attribute as? SourceReferenceMessageAttribute { + openPeerId = attribute.messageId.peerId + navigate = .chat(textInputState: nil, subject: .message(attribute.messageId)) + } + } + + if item.effectiveAuthorId?.namespace == Namespaces.Peer.Empty { + item.controllerInteraction.displayMessageTooltip(item.content.firstMessage.id, item.presentationData.strings.Conversation_ForwardAuthorHiddenTooltip, self, avatarNode.frame) + } else { + if let channel = item.content.firstMessage.forwardInfo?.author as? TelegramChannel, channel.username == nil { + if case .member = channel.participationStatus { + } else { + item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, self, avatarNode.frame) + return + } + } + item.controllerInteraction.openPeer(openPeerId, navigate, item.message) + } + } + return + } + + if let replyInfoNode = self.replyInfoNode, replyInfoNode.frame.contains(location) { + if let item = self.item { + for attribute in item.message.attributes { + if let attribute = attribute as? ReplyMessageAttribute { + item.controllerInteraction.navigateToMessage(item.message.id, attribute.messageId) + return + } + } + } + } + + if let forwardInfoNode = self.forwardInfoNode, forwardInfoNode.frame.contains(location) { + if let item = self.item, let forwardInfo = item.message.forwardInfo { + if let sourceMessageId = forwardInfo.sourceMessageId { + if let channel = forwardInfo.author as? TelegramChannel, channel.username == nil { + if case .member = channel.participationStatus { + } else { + item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, forwardInfoNode, nil) + return + } + } + item.controllerInteraction.navigateToMessage(item.message.id, sourceMessageId) + } else if let id = forwardInfo.source?.id ?? forwardInfo.author?.id { + item.controllerInteraction.openPeer(id, .chat(textInputState: nil, subject: nil), nil) + } else if let _ = forwardInfo.authorSignature { + item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_ForwardAuthorHiddenTooltip, forwardInfoNode, nil) + } + return + } + } + + self.item?.controllerInteraction.clickThroughMessage() + case .longTap, .doubleTap: + if let item = self.item, let videoContentNode = self.interactiveVideoNode.videoContentNode(at: self.view.convert(location, to: self.interactiveVideoNode.view)) { + item.controllerInteraction.openMessageContextMenu(item.message, false, videoContentNode, videoContentNode.bounds, nil) + } + case .hold: + break + } } default: break } } - private func gestureRecognized(gesture: TapLongTapOrDoubleTapGesture, location: CGPoint, recognizer: TapLongTapOrDoubleTapGestureRecognizer?) -> Bool { - switch gesture { - case .tap: - if let avatarNode = self.accessoryItemNode as? ChatMessageAvatarAccessoryItemNode, avatarNode.frame.contains(location) { - if let item = self.item, let author = item.content.firstMessage.author { - var openPeerId = item.effectiveAuthorId ?? author.id - var navigate: ChatControllerInteractionNavigateToPeer - - if item.content.firstMessage.id.peerId == item.context.account.peerId { - navigate = .chat(textInputState: nil, subject: nil) - } else { - navigate = .info - } - - for attribute in item.content.firstMessage.attributes { - if let attribute = attribute as? SourceReferenceMessageAttribute { - openPeerId = attribute.messageId.peerId - navigate = .chat(textInputState: nil, subject: .message(attribute.messageId)) - } - } - - if item.effectiveAuthorId?.namespace == Namespaces.Peer.Empty { - item.controllerInteraction.displayMessageTooltip(item.content.firstMessage.id, item.presentationData.strings.Conversation_ForwardAuthorHiddenTooltip, self, avatarNode.frame) - } else { - if let channel = item.content.firstMessage.forwardInfo?.author as? TelegramChannel, channel.username == nil { - if case .member = channel.participationStatus { - } else { - item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, self, avatarNode.frame) - return true - } - } - item.controllerInteraction.openPeer(openPeerId, navigate, item.message) - } - } - return true - } - - if let replyInfoNode = self.replyInfoNode, replyInfoNode.frame.contains(location) { - if let item = self.item { - for attribute in item.message.attributes { - if let attribute = attribute as? ReplyMessageAttribute { - item.controllerInteraction.navigateToMessage(item.message.id, attribute.messageId) - return true - } - } - } - } - - if let forwardInfoNode = self.forwardInfoNode, forwardInfoNode.frame.contains(location) { - if let item = self.item, let forwardInfo = item.message.forwardInfo { - if let sourceMessageId = forwardInfo.sourceMessageId { - if let channel = forwardInfo.author as? TelegramChannel, channel.username == nil { - if case .member = channel.participationStatus { - } else { - item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_PrivateChannelTooltip, forwardInfoNode, nil) - return true - } - } - item.controllerInteraction.navigateToMessage(item.message.id, sourceMessageId) - } else if let id = forwardInfo.source?.id ?? forwardInfo.author?.id { - item.controllerInteraction.openPeer(id, .chat(textInputState: nil, subject: nil), nil) - } else if let _ = forwardInfo.authorSignature { - item.controllerInteraction.displayMessageTooltip(item.message.id, item.presentationData.strings.Conversation_ForwardAuthorHiddenTooltip, forwardInfoNode, nil) - } - return true - } - } - - self.item?.controllerInteraction.clickThroughMessage() - case .longTap, .doubleTap: - if let item = self.item, let videoContentNode = self.interactiveVideoNode.videoContentNode(at: self.view.convert(location, to: self.interactiveVideoNode.view)) { - item.controllerInteraction.openMessageContextMenu(item.message, false, videoContentNode, videoContentNode.bounds, recognizer) - return false - } - case .hold: - break - } - return true - } - @objc func shareButtonPressed() { if let item = self.item { if item.content.firstMessage.id.peerId == item.context.account.peerId { From 1c98c58138a51fa04c9906896041753eddac5e34 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 21:48:45 +0400 Subject: [PATCH 41/63] Ignore holes in gallery message lists --- .../GalleryUI/Sources/GalleryController.swift | 2 +- .../Postbox/Sources/MessageHistoryView.swift | 12 +++++++----- .../Sources/MessageHistoryViewState.swift | 14 +++++++------- .../Sources/MessageOfInterestHolesView.swift | 6 +++--- submodules/Postbox/Sources/Postbox.swift | 16 ++++++++-------- 5 files changed, 26 insertions(+), 24 deletions(-) diff --git a/submodules/GalleryUI/Sources/GalleryController.swift b/submodules/GalleryUI/Sources/GalleryController.swift index 53b10ecb22..bdc0a7b29c 100644 --- a/submodules/GalleryUI/Sources/GalleryController.swift +++ b/submodules/GalleryUI/Sources/GalleryController.swift @@ -396,7 +396,7 @@ public class GalleryController: ViewController, StandalonePresentableController } else { namespaces = .not(Namespaces.Message.allScheduled) } - return context.account.postbox.aroundMessageHistoryViewForLocation(.peer(message!.id.peerId), anchor: .index(message!.index), count: 50, fixedCombinedReadStates: nil, topTaggedMessageIdNamespaces: [], tagMask: tags, namespaces: namespaces, orderStatistics: [.combinedLocation]) + return context.account.postbox.aroundMessageHistoryViewForLocation(.peer(message!.id.peerId), anchor: .index(message!.index), count: 50, clipHoles: false, fixedCombinedReadStates: nil, topTaggedMessageIdNamespaces: [], tagMask: tags, namespaces: namespaces, orderStatistics: [.combinedLocation]) |> mapToSignal { (view, _, _) -> Signal in let mapped = GalleryMessageHistoryView.view(view) return .single(mapped) diff --git a/submodules/Postbox/Sources/MessageHistoryView.swift b/submodules/Postbox/Sources/MessageHistoryView.swift index bc62626fe2..615ef4082c 100644 --- a/submodules/Postbox/Sources/MessageHistoryView.swift +++ b/submodules/Postbox/Sources/MessageHistoryView.swift @@ -258,6 +258,7 @@ final class MutableMessageHistoryView { let tag: MessageTags? let namespaces: MessageIdNamespaces private let orderStatistics: MessageHistoryViewOrderStatistics + private let clipHoles: Bool private let anchor: HistoryViewInputAnchor fileprivate var combinedReadStates: MessageHistoryViewReadState? @@ -271,10 +272,11 @@ final class MutableMessageHistoryView { fileprivate(set) var sampledState: HistoryViewSample - init(postbox: Postbox, orderStatistics: MessageHistoryViewOrderStatistics, peerIds: MessageHistoryViewPeerIds, anchor inputAnchor: HistoryViewInputAnchor, combinedReadStates: MessageHistoryViewReadState?, transientReadStates: MessageHistoryViewReadState?, tag: MessageTags?, namespaces: MessageIdNamespaces, count: Int, topTaggedMessages: [MessageId.Namespace: MessageHistoryTopTaggedMessage?], additionalDatas: [AdditionalMessageHistoryViewDataEntry], getMessageCountInRange: (MessageIndex, MessageIndex) -> Int32) { + init(postbox: Postbox, orderStatistics: MessageHistoryViewOrderStatistics, clipHoles: Bool, peerIds: MessageHistoryViewPeerIds, anchor inputAnchor: HistoryViewInputAnchor, combinedReadStates: MessageHistoryViewReadState?, transientReadStates: MessageHistoryViewReadState?, tag: MessageTags?, namespaces: MessageIdNamespaces, count: Int, topTaggedMessages: [MessageId.Namespace: MessageHistoryTopTaggedMessage?], additionalDatas: [AdditionalMessageHistoryViewDataEntry], getMessageCountInRange: (MessageIndex, MessageIndex) -> Int32) { self.anchor = inputAnchor self.orderStatistics = orderStatistics + self.clipHoles = clipHoles self.peerIds = peerIds self.combinedReadStates = combinedReadStates self.transientReadStates = transientReadStates @@ -290,12 +292,12 @@ final class MutableMessageHistoryView { switch sampledState { case let .ready(anchor, holes): self.state = .loaded(HistoryViewLoadedState(anchor: anchor, tag: tag, namespaces: namespaces, statistics: self.orderStatistics, halfLimit: count + 1, locations: peerIds, postbox: postbox, holes: holes)) - self.sampledState = self.state.sample(postbox: postbox) + self.sampledState = self.state.sample(postbox: postbox, clipHoles: self.clipHoles) case .loadHole: break } } - self.sampledState = self.state.sample(postbox: postbox) + self.sampledState = self.state.sample(postbox: postbox, clipHoles: self.clipHoles) self.render(postbox: postbox) } @@ -320,7 +322,7 @@ final class MutableMessageHistoryView { break } } - self.sampledState = self.state.sample(postbox: postbox) + self.sampledState = self.state.sample(postbox: postbox, clipHoles: self.clipHoles) } func refreshDueToExternalTransaction(postbox: Postbox) -> Bool { @@ -509,7 +511,7 @@ final class MutableMessageHistoryView { break } } - self.sampledState = self.state.sample(postbox: postbox) + self.sampledState = self.state.sample(postbox: postbox, clipHoles: self.clipHoles) } for operationSet in operations { diff --git a/submodules/Postbox/Sources/MessageHistoryViewState.swift b/submodules/Postbox/Sources/MessageHistoryViewState.swift index 3ca9492b0c..10dd22b484 100644 --- a/submodules/Postbox/Sources/MessageHistoryViewState.swift +++ b/submodules/Postbox/Sources/MessageHistoryViewState.swift @@ -1134,7 +1134,7 @@ final class HistoryViewLoadedState { return updated } - func completeAndSample(postbox: Postbox) -> HistoryViewLoadedSample { + func completeAndSample(postbox: Postbox, clipHoles: Bool) -> HistoryViewLoadedSample { if !self.spacesWithRemovals.isEmpty { for space in self.spacesWithRemovals { self.fillSpace(space: space, postbox: postbox) @@ -1165,7 +1165,7 @@ final class HistoryViewLoadedState { entry = self.orderedEntriesBySpace[space]!.higherThanAnchor[index] } - if !clipRanges.isEmpty { + if clipHoles && !clipRanges.isEmpty { let entryIndex = entry.index for range in clipRanges { if range.contains(entryIndex) { @@ -1373,12 +1373,12 @@ enum HistoryViewState { } } - func sample(postbox: Postbox) -> HistoryViewSample { + func sample(postbox: Postbox, clipHoles: Bool) -> HistoryViewSample { switch self { - case let .loading(loadingState): - return .loading(loadingState.checkAndSample(postbox: postbox)) - case let .loaded(loadedState): - return .loaded(loadedState.completeAndSample(postbox: postbox)) + case let .loading(loadingState): + return .loading(loadingState.checkAndSample(postbox: postbox)) + case let .loaded(loadedState): + return .loaded(loadedState.completeAndSample(postbox: postbox, clipHoles: clipHoles)) } } } diff --git a/submodules/Postbox/Sources/MessageOfInterestHolesView.swift b/submodules/Postbox/Sources/MessageOfInterestHolesView.swift index efa86ca1ec..caa7f03362 100644 --- a/submodules/Postbox/Sources/MessageOfInterestHolesView.swift +++ b/submodules/Postbox/Sources/MessageOfInterestHolesView.swift @@ -60,7 +60,7 @@ final class MutableMessageOfInterestHolesView: MutablePostboxView { } } self.anchor = anchor - self.wrappedView = MutableMessageHistoryView(postbox: postbox, orderStatistics: [], peerIds: peerIds, anchor: self.anchor, combinedReadStates: nil, transientReadStates: nil, tag: nil, namespaces: .all, count: self.count, topTaggedMessages: [:], additionalDatas: [], getMessageCountInRange: { _, _ in return 0}) + self.wrappedView = MutableMessageHistoryView(postbox: postbox, orderStatistics: [], clipHoles: true, peerIds: peerIds, anchor: self.anchor, combinedReadStates: nil, transientReadStates: nil, tag: nil, namespaces: .all, count: self.count, topTaggedMessages: [:], additionalDatas: [], getMessageCountInRange: { _, _ in return 0}) let _ = self.updateFromView() } @@ -132,7 +132,7 @@ final class MutableMessageOfInterestHolesView: MutablePostboxView { case let .peer(id): peerIds = postbox.peerIdsForLocation(.peer(id), tagMask: nil) } - self.wrappedView = MutableMessageHistoryView(postbox: postbox, orderStatistics: [], peerIds: peerIds, anchor: self.anchor, combinedReadStates: nil, transientReadStates: nil, tag: nil, namespaces: .all, count: self.count, topTaggedMessages: [:], additionalDatas: [], getMessageCountInRange: { _, _ in return 0}) + self.wrappedView = MutableMessageHistoryView(postbox: postbox, orderStatistics: [], clipHoles: true, peerIds: peerIds, anchor: self.anchor, combinedReadStates: nil, transientReadStates: nil, tag: nil, namespaces: .all, count: self.count, topTaggedMessages: [:], additionalDatas: [], getMessageCountInRange: { _, _ in return 0}) return self.updateFromView() } else if self.wrappedView.replay(postbox: postbox, transaction: transaction) { var reloadView = false @@ -160,7 +160,7 @@ final class MutableMessageOfInterestHolesView: MutablePostboxView { case let .peer(id): peerIds = postbox.peerIdsForLocation(.peer(id), tagMask: nil) } - self.wrappedView = MutableMessageHistoryView(postbox: postbox, orderStatistics: [], peerIds: peerIds, anchor: self.anchor, combinedReadStates: nil, transientReadStates: nil, tag: nil, namespaces: .all, count: self.count, topTaggedMessages: [:], additionalDatas: [], getMessageCountInRange: { _, _ in return 0}) + self.wrappedView = MutableMessageHistoryView(postbox: postbox, orderStatistics: [], clipHoles: true, peerIds: peerIds, anchor: self.anchor, combinedReadStates: nil, transientReadStates: nil, tag: nil, namespaces: .all, count: self.count, topTaggedMessages: [:], additionalDatas: [], getMessageCountInRange: { _, _ in return 0}) } return self.updateFromView() diff --git a/submodules/Postbox/Sources/Postbox.swift b/submodules/Postbox/Sources/Postbox.swift index fc19228729..187939b9ab 100644 --- a/submodules/Postbox/Sources/Postbox.swift +++ b/submodules/Postbox/Sources/Postbox.swift @@ -2266,7 +2266,7 @@ public final class Postbox { return peerIds } - public func aroundMessageOfInterestHistoryViewForChatLocation(_ chatLocation: ChatLocation, count: Int, topTaggedMessageIdNamespaces: Set, tagMask: MessageTags?, namespaces: MessageIdNamespaces, orderStatistics: MessageHistoryViewOrderStatistics, additionalData: [AdditionalMessageHistoryViewData]) -> Signal<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError> { + public func aroundMessageOfInterestHistoryViewForChatLocation(_ chatLocation: ChatLocation, count: Int, clipHoles: Bool = true, topTaggedMessageIdNamespaces: Set, tagMask: MessageTags?, namespaces: MessageIdNamespaces, orderStatistics: MessageHistoryViewOrderStatistics, additionalData: [AdditionalMessageHistoryViewData]) -> Signal<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError> { return self.transactionSignal(userInteractive: true, { subscriber, transaction in let peerIds = self.peerIdsForLocation(chatLocation, tagMask: tagMask) @@ -2312,26 +2312,26 @@ public final class Postbox { } } } - return self.syncAroundMessageHistoryViewForPeerId(subscriber: subscriber, peerIds: peerIds, count: count, anchor: anchor, fixedCombinedReadStates: nil, topTaggedMessageIdNamespaces: topTaggedMessageIdNamespaces, tagMask: tagMask, namespaces: namespaces, orderStatistics: orderStatistics, additionalData: additionalData) + return self.syncAroundMessageHistoryViewForPeerId(subscriber: subscriber, peerIds: peerIds, count: count, clipHoles: clipHoles, anchor: anchor, fixedCombinedReadStates: nil, topTaggedMessageIdNamespaces: topTaggedMessageIdNamespaces, tagMask: tagMask, namespaces: namespaces, orderStatistics: orderStatistics, additionalData: additionalData) }) } - public func aroundIdMessageHistoryViewForLocation(_ chatLocation: ChatLocation, count: Int, messageId: MessageId, topTaggedMessageIdNamespaces: Set, tagMask: MessageTags?, namespaces: MessageIdNamespaces, orderStatistics: MessageHistoryViewOrderStatistics, additionalData: [AdditionalMessageHistoryViewData] = []) -> Signal<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError> { + public func aroundIdMessageHistoryViewForLocation(_ chatLocation: ChatLocation, count: Int, clipHoles: Bool = true, messageId: MessageId, topTaggedMessageIdNamespaces: Set, tagMask: MessageTags?, namespaces: MessageIdNamespaces, orderStatistics: MessageHistoryViewOrderStatistics, additionalData: [AdditionalMessageHistoryViewData] = []) -> Signal<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError> { return self.transactionSignal { subscriber, transaction in let peerIds = self.peerIdsForLocation(chatLocation, tagMask: tagMask) - return self.syncAroundMessageHistoryViewForPeerId(subscriber: subscriber, peerIds: peerIds, count: count, anchor: .message(messageId), fixedCombinedReadStates: nil, topTaggedMessageIdNamespaces: topTaggedMessageIdNamespaces, tagMask: tagMask, namespaces: namespaces, orderStatistics: orderStatistics, additionalData: additionalData) + return self.syncAroundMessageHistoryViewForPeerId(subscriber: subscriber, peerIds: peerIds, count: count, clipHoles: clipHoles, anchor: .message(messageId), fixedCombinedReadStates: nil, topTaggedMessageIdNamespaces: topTaggedMessageIdNamespaces, tagMask: tagMask, namespaces: namespaces, orderStatistics: orderStatistics, additionalData: additionalData) } } - public func aroundMessageHistoryViewForLocation(_ chatLocation: ChatLocation, anchor: HistoryViewInputAnchor, count: Int, fixedCombinedReadStates: MessageHistoryViewReadState?, topTaggedMessageIdNamespaces: Set, tagMask: MessageTags?, namespaces: MessageIdNamespaces, orderStatistics: MessageHistoryViewOrderStatistics, additionalData: [AdditionalMessageHistoryViewData] = []) -> Signal<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError> { + public func aroundMessageHistoryViewForLocation(_ chatLocation: ChatLocation, anchor: HistoryViewInputAnchor, count: Int, clipHoles: Bool = true, fixedCombinedReadStates: MessageHistoryViewReadState?, topTaggedMessageIdNamespaces: Set, tagMask: MessageTags?, namespaces: MessageIdNamespaces, orderStatistics: MessageHistoryViewOrderStatistics, additionalData: [AdditionalMessageHistoryViewData] = []) -> Signal<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError> { return self.transactionSignal { subscriber, transaction in let peerIds = self.peerIdsForLocation(chatLocation, tagMask: tagMask) - return self.syncAroundMessageHistoryViewForPeerId(subscriber: subscriber, peerIds: peerIds, count: count, anchor: anchor, fixedCombinedReadStates: fixedCombinedReadStates, topTaggedMessageIdNamespaces: topTaggedMessageIdNamespaces, tagMask: tagMask, namespaces: namespaces, orderStatistics: orderStatistics, additionalData: additionalData) + return self.syncAroundMessageHistoryViewForPeerId(subscriber: subscriber, peerIds: peerIds, count: count, clipHoles: clipHoles, anchor: anchor, fixedCombinedReadStates: fixedCombinedReadStates, topTaggedMessageIdNamespaces: topTaggedMessageIdNamespaces, tagMask: tagMask, namespaces: namespaces, orderStatistics: orderStatistics, additionalData: additionalData) } } - private func syncAroundMessageHistoryViewForPeerId(subscriber: Subscriber<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError>, peerIds: MessageHistoryViewPeerIds, count: Int, anchor: HistoryViewInputAnchor, fixedCombinedReadStates: MessageHistoryViewReadState?, topTaggedMessageIdNamespaces: Set, tagMask: MessageTags?, namespaces: MessageIdNamespaces, orderStatistics: MessageHistoryViewOrderStatistics, additionalData: [AdditionalMessageHistoryViewData]) -> Disposable { + private func syncAroundMessageHistoryViewForPeerId(subscriber: Subscriber<(MessageHistoryView, ViewUpdateType, InitialMessageHistoryData?), NoError>, peerIds: MessageHistoryViewPeerIds, count: Int, clipHoles: Bool, anchor: HistoryViewInputAnchor, fixedCombinedReadStates: MessageHistoryViewReadState?, topTaggedMessageIdNamespaces: Set, tagMask: MessageTags?, namespaces: MessageIdNamespaces, orderStatistics: MessageHistoryViewOrderStatistics, additionalData: [AdditionalMessageHistoryViewData]) -> Disposable { var topTaggedMessages: [MessageId.Namespace: MessageHistoryTopTaggedMessage?] = [:] var mainPeerId: PeerId? switch peerIds { @@ -2420,7 +2420,7 @@ public final class Postbox { readStates = transientReadStates } - let mutableView = MutableMessageHistoryView(postbox: self, orderStatistics: orderStatistics, peerIds: peerIds, anchor: anchor, combinedReadStates: readStates, transientReadStates: transientReadStates, tag: tagMask, namespaces: namespaces, count: count, topTaggedMessages: topTaggedMessages, additionalDatas: additionalDataEntries, getMessageCountInRange: { lowerBound, upperBound in + let mutableView = MutableMessageHistoryView(postbox: self, orderStatistics: orderStatistics, clipHoles: clipHoles, peerIds: peerIds, anchor: anchor, combinedReadStates: readStates, transientReadStates: transientReadStates, tag: tagMask, namespaces: namespaces, count: count, topTaggedMessages: topTaggedMessages, additionalDatas: additionalDataEntries, getMessageCountInRange: { lowerBound, upperBound in if let tagMask = tagMask { return Int32(self.messageHistoryTable.getMessageCountInRange(peerId: lowerBound.id.peerId, namespace: lowerBound.id.namespace, tag: tagMask, lowerBound: lowerBound, upperBound: upperBound)) } else { From bdf2133b645bc956d6b32e40f3fc355154dc323b Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 21:49:14 +0400 Subject: [PATCH 42/63] Don't display progress on message media if no media is being changed --- .../TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift index 90aaeaa6e8..42c76d580f 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveMediaNode.swift @@ -954,7 +954,7 @@ final class ChatMessageInteractiveMediaNode: ASDisplayNode, GalleryItemTransitio } var progressRequired = false - if attributes.updatingMedia != nil { + if let updatingMedia = attributes.updatingMedia, case .update = updatingMedia.media { progressRequired = true } else if secretBeginTimeAndTimeout?.0 != nil { progressRequired = true From 8d64864f5e82c35267627aa88ccf2d9f6ffcf5a7 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 21:49:50 +0400 Subject: [PATCH 43/63] Allow interaction with polls in scheduled messages --- .../ChatMessagePollBubbleContentNode.swift | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index 174ca9909a..fdd12e66a8 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -539,7 +539,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { let shouldHaveRadioNode = optionResult == nil let isSelectable: Bool - if shouldHaveRadioNode, case .poll(multipleAnswers: true) = poll.kind { + if shouldHaveRadioNode, case .poll(multipleAnswers: true) = poll.kind, !Namespaces.Message.allScheduled.contains(message.id.namespace) { isSelectable = true } else { isSelectable = false @@ -1155,7 +1155,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { boundingSize.width = max(boundingSize.width, min(270.0, constrainedSize.width)) var canVote = false - if item.message.id.namespace == Namespaces.Message.Cloud, let poll = poll, poll.pollId.namespace == Namespaces.Media.CloudPoll, !poll.isClosed { + if (item.message.id.namespace == Namespaces.Message.Cloud || Namespaces.Message.allScheduled.contains(item.message.id.namespace)), let poll = poll, poll.pollId.namespace == Namespaces.Media.CloudPoll, !poll.isClosed { var hasVoted = false if let voters = poll.results.voters { for voter in voters { @@ -1169,9 +1169,6 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { canVote = true } } - if Namespaces.Message.allScheduled.contains(item.message.id.namespace) { - canVote = false - } return (boundingSize.width, { boundingWidth in var resultSize = CGSize(width: max(boundingSize.width, boundingWidth), height: boundingSize.height) @@ -1349,10 +1346,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { return } - var disableAllActions = false - if Namespaces.Message.allScheduled.contains(item.message.id.namespace) { - disableAllActions = true - } + let disableAllActions = false var hasSelection = false switch poll.kind { From 8be897ea6c4d165ce6ff13bd6e4a07fe8e4bac8c Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 22:04:48 +0400 Subject: [PATCH 44/63] Don't focus on option text when losing focus --- .../Sources/CreatePollController.swift | 18 +++++++++++------- .../Sources/CreatePollOptionItem.swift | 14 +++++++++----- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/submodules/ComposePollUI/Sources/CreatePollController.swift b/submodules/ComposePollUI/Sources/CreatePollController.swift index 2659b26e3b..af294cccda 100644 --- a/submodules/ComposePollUI/Sources/CreatePollController.swift +++ b/submodules/ComposePollUI/Sources/CreatePollController.swift @@ -148,7 +148,7 @@ private func processPollText(_ text: String) -> String { private final class CreatePollControllerArguments { let updatePollText: (String) -> Void - let updateOptionText: (Int, String) -> Void + let updateOptionText: (Int, String, Bool) -> Void let moveToNextOption: (Int) -> Void let moveToPreviousOption: (Int) -> Void let removeOption: (Int, Bool) -> Void @@ -160,7 +160,7 @@ private final class CreatePollControllerArguments { let displayMultipleChoiceDisabled: () -> Void let updateQuiz: (Bool) -> Void - init(updatePollText: @escaping (String) -> Void, updateOptionText: @escaping (Int, String) -> Void, moveToNextOption: @escaping (Int) -> Void, moveToPreviousOption: @escaping (Int) -> Void, removeOption: @escaping (Int, Bool) -> Void, optionFocused: @escaping (Int, Bool) -> Void, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, toggleOptionSelected: @escaping (Int) -> Void, updateAnonymous: @escaping (Bool) -> Void, updateMultipleChoice: @escaping (Bool) -> Void, displayMultipleChoiceDisabled: @escaping () -> Void, updateQuiz: @escaping (Bool) -> Void) { + init(updatePollText: @escaping (String) -> Void, updateOptionText: @escaping (Int, String, Bool) -> Void, moveToNextOption: @escaping (Int) -> Void, moveToPreviousOption: @escaping (Int) -> Void, removeOption: @escaping (Int, Bool) -> Void, optionFocused: @escaping (Int, Bool) -> Void, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, toggleOptionSelected: @escaping (Int) -> Void, updateAnonymous: @escaping (Bool) -> Void, updateMultipleChoice: @escaping (Bool) -> Void, displayMultipleChoiceDisabled: @escaping () -> Void, updateQuiz: @escaping (Bool) -> Void) { self.updatePollText = updatePollText self.updateOptionText = updateOptionText self.moveToNextOption = moveToNextOption @@ -317,8 +317,8 @@ private enum CreatePollEntry: ItemListNodeEntry { case let .option(id, _, placeholder, text, revealed, hasNext, isLast, isSelected): return CreatePollOptionItem(presentationData: presentationData, id: id, placeholder: placeholder, value: text, isSelected: isSelected, maxLength: maxOptionLength, editing: CreatePollOptionItemEditing(editable: true, hasActiveRevealControls: revealed), sectionId: self.section, setItemIdWithRevealedOptions: { id, fromId in arguments.setItemIdWithRevealedOptions(id, fromId) - }, updated: { value in - arguments.updateOptionText(id, value) + }, updated: { value, isFocused in + arguments.updateOptionText(id, value, isFocused) }, next: hasNext ? { arguments.moveToNextOption(id) } : nil, delete: { focused in @@ -456,13 +456,15 @@ public func createPollController(context: AccountContext, peer: Peer, isQuiz: Bo return state } ensureTextVisibleImpl?() - }, updateOptionText: { id, value in + }, updateOptionText: { id, value, isFocused in var ensureVisibleId = id updateState { state in var state = state for i in 0 ..< state.options.count { if state.options[i].item.id == id { - state.focusOptionId = id + if isFocused { + state.focusOptionId = id + } state.options.update(at: i, { option in option.text = value }) @@ -478,7 +480,9 @@ public func createPollController(context: AccountContext, peer: Peer, isQuiz: Bo } return state } - ensureOptionVisibleImpl?(ensureVisibleId) + if isFocused { + ensureOptionVisibleImpl?(ensureVisibleId) + } }, moveToNextOption: { id in var resetFocusOptionId: Int? updateState { state in diff --git a/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift b/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift index ad5046f164..233208574a 100644 --- a/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift +++ b/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift @@ -23,7 +23,7 @@ class CreatePollOptionItem: ListViewItem, ItemListItem { let editing: CreatePollOptionItemEditing let sectionId: ItemListSectionId let setItemIdWithRevealedOptions: (Int?, Int?) -> Void - let updated: (String) -> Void + let updated: (String, Bool) -> Void let next: (() -> Void)? let delete: (Bool) -> Void let canDelete: Bool @@ -31,7 +31,7 @@ class CreatePollOptionItem: ListViewItem, ItemListItem { let toggleSelected: () -> Void let tag: ItemListItemTag? - init(presentationData: ItemListPresentationData, id: Int, placeholder: String, value: String, isSelected: Bool?, maxLength: Int, editing: CreatePollOptionItemEditing, sectionId: ItemListSectionId, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, updated: @escaping (String) -> Void, next: (() -> Void)?, delete: @escaping (Bool) -> Void, canDelete: Bool, focused: @escaping (Bool) -> Void, toggleSelected: @escaping () -> Void, tag: ItemListItemTag?) { + init(presentationData: ItemListPresentationData, id: Int, placeholder: String, value: String, isSelected: Bool?, maxLength: Int, editing: CreatePollOptionItemEditing, sectionId: ItemListSectionId, setItemIdWithRevealedOptions: @escaping (Int?, Int?) -> Void, updated: @escaping (String, Bool) -> Void, next: (() -> Void)?, delete: @escaping (Bool) -> Void, canDelete: Bool, focused: @escaping (Bool) -> Void, toggleSelected: @escaping () -> Void, tag: ItemListItemTag?) { self.presentationData = presentationData self.id = id self.placeholder = placeholder @@ -182,7 +182,7 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, } func editableTextNodeDidFinishEditing(_ editableTextNode: ASEditableTextNode) { - self.editableTextNodeDidUpdateText(editableTextNode) + self.internalEditableTextNodeDidUpdateText(editableTextNode, isLosingFocus: true) self.item?.focused(false) } @@ -213,6 +213,10 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, } func editableTextNodeDidUpdateText(_ editableTextNode: ASEditableTextNode) { + self.internalEditableTextNodeDidUpdateText(editableTextNode, isLosingFocus: false) + } + + private func internalEditableTextNodeDidUpdateText(_ editableTextNode: ASEditableTextNode, isLosingFocus: Bool) { if let item = self.item { let text = self.textNode.attributedText ?? NSAttributedString() @@ -226,11 +230,11 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, if text.string != updatedAttributedText.string { self.textNode.attributedText = updatedAttributedText } - item.updated(updatedText) + item.updated(updatedText, !isLosingFocus && editableTextNode.isFirstResponder()) if hadReturn { if let next = item.next { next() - } else { + } else if !isLosingFocus { editableTextNode.resignFirstResponder() } } From 23e59d4d76850e1a301bb921e35ee4f974944873 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 23:24:01 +0400 Subject: [PATCH 45/63] Fix poll-related theme changes --- submodules/ComposePollUI/Sources/CreatePollOptionItem.swift | 2 +- submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift b/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift index 233208574a..6a658bac2a 100644 --- a/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift +++ b/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift @@ -326,7 +326,7 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, let _ = textApply() if let currentText = strongSelf.textNode.attributedText { - if currentText.string != attributedText.string { + if currentText.string != attributedText.string || updatedTheme != nil { strongSelf.textNode.attributedText = attributedText } } else { diff --git a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift index 22666adab8..a40405c95f 100644 --- a/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift +++ b/submodules/ItemListPeerItem/Sources/ItemListPeerItem.swift @@ -1361,6 +1361,10 @@ public final class ItemListPeerItemHeaderNode: ListViewItemHeaderNode, ItemListH public func updateTheme(theme: PresentationTheme) { self.theme = theme + self.backgroundNode.backgroundColor = theme.list.blocksBackgroundColor + self.snappedBackgroundNode.backgroundColor = theme.rootController.navigationBar.backgroundColor + self.separatorNode.backgroundColor = theme.list.itemBlocksSeparatorColor + let titleFont = Font.regular(13.0) self.textNode.attributedText = NSAttributedString(string: self.textNode.attributedText?.string ?? "", font: titleFont, textColor: theme.list.sectionHeaderTextColor) From 8ed4efa9b36b1082eadee6235d050a037c32d92f Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 23:24:24 +0400 Subject: [PATCH 46/63] Add Pinned Quiz to the localization --- Telegram-iOS/en.lproj/Localizable.strings | 1 + .../Sources/PresentationStrings.swift | 4217 +++++++++-------- .../ChatPinnedMessageTitlePanelNode.swift | 9 +- .../Resources/PresentationStrings.mapping | Bin 144171 -> 144206 bytes .../WalletUI/Resources/WalletStrings.mapping | Bin 8384 -> 8384 bytes .../WalletUI/Sources/WalletStrings.swift | 4 +- 6 files changed, 2119 insertions(+), 2112 deletions(-) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index 0fdd4b8f34..acc869faab 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -3793,6 +3793,7 @@ Unused sets are archived when you add more."; "MessagePoll.VotedCount_any" = "%@ votes"; "AttachmentMenu.Poll" = "Poll"; "Conversation.PinnedPoll" = "Pinned Poll"; +"Conversation.PinnedQuiz" = "Pinned Quiz"; "CreatePoll.Title" = "New Poll"; "CreatePoll.Create" = "Send"; diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 08c5862b4c..dd3b469226 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -2615,2294 +2615,2290 @@ public final class PresentationStrings: Equatable { return formatWithArgumentRanges(self._s[2223]!, self._r[2223]!, [_1, _2, _3]) } public var Permissions_CellularDataText_v0: String { return self._s[2224]! } - public var ShareMenu_SelectChats: String { return self._s[2227]! } - public var ChatList_Context_Unarchive: String { return self._s[2228]! } - public var MusicPlayer_VoiceNote: String { return self._s[2229]! } - public var Conversation_RestrictedText: String { return self._s[2230]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2231]! } - public var Wallet_Month_GenApril: String { return self._s[2232]! } - public var Wallet_Month_ShortMarch: String { return self._s[2233]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[2234]! } - public var Cache_Videos: String { return self._s[2235]! } - public var PrivacySettings_PhoneNumber: String { return self._s[2236]! } - public var Wallet_Month_GenFebruary: String { return self._s[2237]! } - public var FeatureDisabled_Oops: String { return self._s[2239]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[2240]! } + public var Conversation_PinnedQuiz: String { return self._s[2226]! } + public var ShareMenu_SelectChats: String { return self._s[2228]! } + public var ChatList_Context_Unarchive: String { return self._s[2229]! } + public var MusicPlayer_VoiceNote: String { return self._s[2230]! } + public var Conversation_RestrictedText: String { return self._s[2231]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2232]! } + public var Wallet_Month_GenApril: String { return self._s[2233]! } + public var Wallet_Month_ShortMarch: String { return self._s[2234]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2235]! } + public var Cache_Videos: String { return self._s[2236]! } + public var PrivacySettings_PhoneNumber: String { return self._s[2237]! } + public var Wallet_Month_GenFebruary: String { return self._s[2238]! } + public var FeatureDisabled_Oops: String { return self._s[2240]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[2241]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2241]!, self._r[2241]!, [_0]) + return formatWithArgumentRanges(self._s[2242]!, self._r[2242]!, [_0]) } - public var Stickers_GroupStickersHelp: String { return self._s[2242]! } - public var GroupPermission_NoSendPolls: String { return self._s[2243]! } - public var Wallet_Qr_ScanCode: String { return self._s[2244]! } - public var Message_VideoExpired: String { return self._s[2246]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[2247]! } - public var Notifications_Badge: String { return self._s[2248]! } - public var Wallet_Receive_AddressCopied: String { return self._s[2249]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[2250]! } - public var Username_InvalidTooShort: String { return self._s[2251]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2252]! } - public var Channel_AdminLog_PinMessages: String { return self._s[2253]! } - public var ArchivedChats_IntroTitle3: String { return self._s[2254]! } + public var Stickers_GroupStickersHelp: String { return self._s[2243]! } + public var GroupPermission_NoSendPolls: String { return self._s[2244]! } + public var Wallet_Qr_ScanCode: String { return self._s[2245]! } + public var Message_VideoExpired: String { return self._s[2247]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[2248]! } + public var Notifications_Badge: String { return self._s[2249]! } + public var Wallet_Receive_AddressCopied: String { return self._s[2250]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[2251]! } + public var Username_InvalidTooShort: String { return self._s[2252]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2253]! } + public var Channel_AdminLog_PinMessages: String { return self._s[2254]! } + public var ArchivedChats_IntroTitle3: String { return self._s[2255]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2255]!, self._r[2255]!, [_1]) + return formatWithArgumentRanges(self._s[2256]!, self._r[2256]!, [_1]) } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[2256]! } - public var Conversation_DefaultRestrictedText: String { return self._s[2257]! } - public var SharedMedia_CategoryDocs: String { return self._s[2260]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[2257]! } + public var Conversation_DefaultRestrictedText: String { return self._s[2258]! } + public var SharedMedia_CategoryDocs: String { return self._s[2261]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2261]!, self._r[2261]!, [_1]) + return formatWithArgumentRanges(self._s[2262]!, self._r[2262]!, [_1]) } - public var Wallet_Send_UninitializedTitle: String { return self._s[2262]! } - public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2263]! } - public var Privacy_Forwards_NeverLink: String { return self._s[2265]! } + public var Wallet_Send_UninitializedTitle: String { return self._s[2263]! } + public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2264]! } + public var Privacy_Forwards_NeverLink: String { return self._s[2266]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2266]!, self._r[2266]!, [_1]) + return formatWithArgumentRanges(self._s[2267]!, self._r[2267]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2267]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2268]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2268]!, self._r[2268]!, [_0]) + return formatWithArgumentRanges(self._s[2269]!, self._r[2269]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[2269]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2270]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[2271]! } - public var Channel_UpdatePhotoItem: String { return self._s[2272]! } - public var GroupInfo_LeftStatus: String { return self._s[2273]! } - public var Watch_MessageView_Forward: String { return self._s[2275]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[2276]! } - public var Cache_ClearEmpty: String { return self._s[2278]! } - public var Localization_LanguageName: String { return self._s[2279]! } - public var Wallet_AccessDenied_Title: String { return self._s[2280]! } - public var WebSearch_GIFs: String { return self._s[2281]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2282]! } - public var Wallet_AccessDenied_Settings: String { return self._s[2283]! } - public var Username_InvalidStartsWithNumber: String { return self._s[2284]! } - public var Common_Back: String { return self._s[2285]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2286]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2287]! } - public var Wallet_Send_Send: String { return self._s[2288]! } + public var ChatSettings_PrivateChats: String { return self._s[2270]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2271]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[2272]! } + public var Channel_UpdatePhotoItem: String { return self._s[2273]! } + public var GroupInfo_LeftStatus: String { return self._s[2274]! } + public var Watch_MessageView_Forward: String { return self._s[2276]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[2277]! } + public var Cache_ClearEmpty: String { return self._s[2279]! } + public var Localization_LanguageName: String { return self._s[2280]! } + public var Wallet_AccessDenied_Title: String { return self._s[2281]! } + public var WebSearch_GIFs: String { return self._s[2282]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2283]! } + public var Wallet_AccessDenied_Settings: String { return self._s[2284]! } + public var Username_InvalidStartsWithNumber: String { return self._s[2285]! } + public var Common_Back: String { return self._s[2286]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2287]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2288]! } + public var Wallet_Send_Send: String { return self._s[2289]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2290]!, self._r[2290]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2291]!, self._r[2291]!, [_1, _2]) } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[2291]! } - public var Wallet_Month_GenJune: String { return self._s[2292]! } - public var Passport_Email_Help: String { return self._s[2293]! } - public var Watch_Conversation_Reply: String { return self._s[2295]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[2298]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2299]! } - public var Channel_BanUser_Unban: String { return self._s[2301]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2302]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2303]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2305]! } - public var Wallet_Send_AddressHeader: String { return self._s[2306]! } - public var Passport_Identity_Name: String { return self._s[2307]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[2292]! } + public var Wallet_Month_GenJune: String { return self._s[2293]! } + public var Passport_Email_Help: String { return self._s[2294]! } + public var Watch_Conversation_Reply: String { return self._s[2296]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[2299]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2300]! } + public var Channel_BanUser_Unban: String { return self._s[2302]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2303]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2304]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2306]! } + public var Wallet_Send_AddressHeader: String { return self._s[2307]! } + public var Passport_Identity_Name: String { return self._s[2308]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2308]!, self._r[2308]!, [_0]) + return formatWithArgumentRanges(self._s[2309]!, self._r[2309]!, [_0]) } - public var GroupRemoved_ViewUserInfo: String { return self._s[2309]! } - public var Conversation_BlockUser: String { return self._s[2310]! } - public var Month_GenJanuary: String { return self._s[2311]! } - public var ChatSettings_TextSize: String { return self._s[2312]! } - public var Notification_PassportValuePhone: String { return self._s[2313]! } - public var MediaPlayer_UnknownArtist: String { return self._s[2314]! } - public var Passport_Language_ne: String { return self._s[2315]! } - public var Notification_CallBack: String { return self._s[2316]! } - public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2317]! } - public var TwoStepAuth_EmailHelp: String { return self._s[2318]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[2310]! } + public var Conversation_BlockUser: String { return self._s[2311]! } + public var Month_GenJanuary: String { return self._s[2312]! } + public var ChatSettings_TextSize: String { return self._s[2313]! } + public var Notification_PassportValuePhone: String { return self._s[2314]! } + public var MediaPlayer_UnknownArtist: String { return self._s[2315]! } + public var Passport_Language_ne: String { return self._s[2316]! } + public var Notification_CallBack: String { return self._s[2317]! } + public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2318]! } + public var TwoStepAuth_EmailHelp: String { return self._s[2319]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2319]!, self._r[2319]!, [_0]) + return formatWithArgumentRanges(self._s[2320]!, self._r[2320]!, [_0]) } - public var Channel_Info_Management: String { return self._s[2320]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[2321]! } - public var Stickers_FrequentlyUsed: String { return self._s[2322]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2323]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2325]! } + public var Channel_Info_Management: String { return self._s[2321]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[2322]! } + public var Stickers_FrequentlyUsed: String { return self._s[2323]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2324]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2326]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2326]!, self._r[2326]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[2327]!, self._r[2327]!, [_1, "\(_2)"]) } - public var TwoFactorSetup_Password_Title: String { return self._s[2327]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[2328]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[2329]! } - public var CreatePoll_TextHeader: String { return self._s[2330]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2328]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[2329]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[2330]! } + public var CreatePoll_TextHeader: String { return self._s[2331]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2331]!, self._r[2331]!, [_0]) + return formatWithArgumentRanges(self._s[2332]!, self._r[2332]!, [_0]) } - public var PhotoEditor_QualityMedium: String { return self._s[2332]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2333]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[2335]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[2336]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[2337]! } + public var PhotoEditor_QualityMedium: String { return self._s[2333]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2334]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[2336]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[2337]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[2338]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2338]!, self._r[2338]!, [_0]) + return formatWithArgumentRanges(self._s[2339]!, self._r[2339]!, [_0]) } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2339]!, self._r[2339]!, [_1]) + return formatWithArgumentRanges(self._s[2340]!, self._r[2340]!, [_1]) } - public var LogoutOptions_LogOutWalletInfo: String { return self._s[2340]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2341]! } - public var Conversation_LinkDialogOpen: String { return self._s[2343]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2344]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[2345]! } - public var Settings_Username: String { return self._s[2347]! } - public var Conversation_Block: String { return self._s[2349]! } - public var Wallpaper_Wallpaper: String { return self._s[2350]! } - public var SocksProxySetup_UseProxy: String { return self._s[2352]! } - public var Wallet_Send_Confirmation: String { return self._s[2353]! } - public var EditTheme_UploadEditedTheme: String { return self._s[2354]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[2355]! } - public var MessageTimer_Forever: String { return self._s[2356]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[2357]! } - public var PhotoEditor_DiscardChanges: String { return self._s[2358]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2359]! } - public var Passport_Language_da: String { return self._s[2360]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[2361]! } + public var LogoutOptions_LogOutWalletInfo: String { return self._s[2341]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2342]! } + public var Conversation_LinkDialogOpen: String { return self._s[2344]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2345]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[2346]! } + public var Settings_Username: String { return self._s[2348]! } + public var Conversation_Block: String { return self._s[2350]! } + public var Wallpaper_Wallpaper: String { return self._s[2351]! } + public var SocksProxySetup_UseProxy: String { return self._s[2353]! } + public var Wallet_Send_Confirmation: String { return self._s[2354]! } + public var EditTheme_UploadEditedTheme: String { return self._s[2355]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[2356]! } + public var MessageTimer_Forever: String { return self._s[2357]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[2358]! } + public var PhotoEditor_DiscardChanges: String { return self._s[2359]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2360]! } + public var Passport_Language_da: String { return self._s[2361]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[2362]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2362]!, self._r[2362]!, [_0]) + return formatWithArgumentRanges(self._s[2363]!, self._r[2363]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[2363]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[2364]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2365]!, self._r[2365]!, [_0]) + return formatWithArgumentRanges(self._s[2366]!, self._r[2366]!, [_0]) } - public var Settings_AddDevice: String { return self._s[2366]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2368]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2369]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2370]! } - public var Conversation_PinnedPoll: String { return self._s[2371]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2372]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2373]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2374]! } + public var Settings_AddDevice: String { return self._s[2367]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2369]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2370]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2371]! } + public var Conversation_PinnedPoll: String { return self._s[2372]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2373]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2374]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2375]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2375]!, self._r[2375]!, [_1]) + return formatWithArgumentRanges(self._s[2376]!, self._r[2376]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[2376]! } - public var Cache_ByPeerHeader: String { return self._s[2377]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2377]! } + public var Cache_ByPeerHeader: String { return self._s[2378]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2378]!, self._r[2378]!, [_0]) + return formatWithArgumentRanges(self._s[2379]!, self._r[2379]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[2379]! } - public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2382]! } - public var Wallet_Completed_Title: String { return self._s[2383]! } - public var Notification_PinnedMessage: String { return self._s[2384]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2385]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2387]! } - public var Contacts_SortBy: String { return self._s[2388]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[2380]! } + public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2383]! } + public var Wallet_Completed_Title: String { return self._s[2384]! } + public var Notification_PinnedMessage: String { return self._s[2385]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2386]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2388]! } + public var Contacts_SortBy: String { return self._s[2389]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2389]!, self._r[2389]!, [_1]) + return formatWithArgumentRanges(self._s[2390]!, self._r[2390]!, [_1]) } - public var Appearance_ColorThemeNight: String { return self._s[2391]! } + public var Appearance_ColorThemeNight: String { return self._s[2392]! } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2392]!, self._r[2392]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2393]!, self._r[2393]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[2393]! } - public var Watch_UserInfo_Service: String { return self._s[2394]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2396]! } - public var Conversation_Unpin: String { return self._s[2398]! } - public var CancelResetAccount_Title: String { return self._s[2399]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[2400]! } + public var Call_EncryptionKey_Title: String { return self._s[2394]! } + public var Watch_UserInfo_Service: String { return self._s[2395]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2397]! } + public var Conversation_Unpin: String { return self._s[2399]! } + public var CancelResetAccount_Title: String { return self._s[2400]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[2401]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2402]!, self._r[2402]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2403]!, self._r[2403]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2403]! } - public var CallSettings_Title: String { return self._s[2404]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2405]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[2407]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2408]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2404]! } + public var CallSettings_Title: String { return self._s[2405]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2406]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[2408]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2409]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2409]!, self._r[2409]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2410]!, self._r[2410]!, [_1, _2]) } - public var Passport_Identity_DocumentDetails: String { return self._s[2410]! } - public var LoginPassword_PasswordHelp: String { return self._s[2411]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2412]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2413]! } - public var ChatContextMenu_TextSelectionTip: String { return self._s[2414]! } - public var Checkout_TotalPaidAmount: String { return self._s[2415]! } + public var Passport_Identity_DocumentDetails: String { return self._s[2411]! } + public var LoginPassword_PasswordHelp: String { return self._s[2412]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2413]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2414]! } + public var ChatContextMenu_TextSelectionTip: String { return self._s[2415]! } + public var Checkout_TotalPaidAmount: String { return self._s[2416]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2416]!, self._r[2416]!, [_0]) + return formatWithArgumentRanges(self._s[2417]!, self._r[2417]!, [_0]) } - public var PasscodeSettings_ChangePasscode: String { return self._s[2417]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[2419]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[2420]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[2418]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[2420]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[2421]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2421]!, self._r[2421]!, [_1]) + return formatWithArgumentRanges(self._s[2422]!, self._r[2422]!, [_1]) } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2422]! } - public var Contacts_InviteFriends: String { return self._s[2424]! } - public var Map_ChooseLocationTitle: String { return self._s[2425]! } - public var Conversation_StopPoll: String { return self._s[2427]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2423]! } + public var Contacts_InviteFriends: String { return self._s[2425]! } + public var Map_ChooseLocationTitle: String { return self._s[2426]! } + public var Conversation_StopPoll: String { return self._s[2428]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2428]!, self._r[2428]!, [_0]) + return formatWithArgumentRanges(self._s[2429]!, self._r[2429]!, [_0]) } - public var Call_Camera: String { return self._s[2429]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2430]! } - public var AppWallet_Intro_Text: String { return self._s[2431]! } - public var Calls_RatingFeedback: String { return self._s[2432]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2434]! } - public var Wallet_Alert_OK: String { return self._s[2435]! } - public var NotificationsSound_Pulse: String { return self._s[2436]! } - public var Watch_LastSeen_Lately: String { return self._s[2437]! } - public var ReportGroupLocation_Report: String { return self._s[2440]! } - public var Widget_NoUsers: String { return self._s[2441]! } - public var Conversation_UnvotePoll: String { return self._s[2442]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2444]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2445]! } - public var NotificationsSound_Circles: String { return self._s[2446]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2449]! } - public var Wallet_Settings_DeleteWallet: String { return self._s[2450]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2451]! } - public var Proxy_TooltipUnavailable: String { return self._s[2452]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2454]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2456]! } - public var Conversation_FileDropbox: String { return self._s[2457]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[2458]! } - public var Tour_Text3: String { return self._s[2460]! } - public var Login_ResetAccountProtected_Title: String { return self._s[2462]! } - public var GroupPermission_NoSendMessages: String { return self._s[2463]! } - public var WallpaperSearch_ColorTitle: String { return self._s[2464]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2465]! } + public var Call_Camera: String { return self._s[2430]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2431]! } + public var AppWallet_Intro_Text: String { return self._s[2432]! } + public var Calls_RatingFeedback: String { return self._s[2433]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2435]! } + public var Wallet_Alert_OK: String { return self._s[2436]! } + public var NotificationsSound_Pulse: String { return self._s[2437]! } + public var Watch_LastSeen_Lately: String { return self._s[2438]! } + public var ReportGroupLocation_Report: String { return self._s[2441]! } + public var Widget_NoUsers: String { return self._s[2442]! } + public var Conversation_UnvotePoll: String { return self._s[2443]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2445]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2446]! } + public var NotificationsSound_Circles: String { return self._s[2447]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2450]! } + public var Wallet_Settings_DeleteWallet: String { return self._s[2451]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2452]! } + public var Proxy_TooltipUnavailable: String { return self._s[2453]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2455]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2457]! } + public var Conversation_FileDropbox: String { return self._s[2458]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[2459]! } + public var Tour_Text3: String { return self._s[2461]! } + public var Login_ResetAccountProtected_Title: String { return self._s[2463]! } + public var GroupPermission_NoSendMessages: String { return self._s[2464]! } + public var WallpaperSearch_ColorTitle: String { return self._s[2465]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2466]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2467]!, self._r[2467]!, [_0]) + return formatWithArgumentRanges(self._s[2468]!, self._r[2468]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[2468]! } - public var Checkout_ShippingOption_Title: String { return self._s[2469]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2470]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[2469]! } + public var Checkout_ShippingOption_Title: String { return self._s[2470]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2471]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2471]!, self._r[2471]!, [_0]) - } - public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2472]!, self._r[2472]!, [_0]) } - public var Channel_Management_LabelAdministrator: String { return self._s[2473]! } - public var EditTheme_FileReadError: String { return self._s[2474]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[2475]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2476]! } - public var AutoDownloadSettings_Photos: String { return self._s[2478]! } - public var Appearance_PreviewIncomingText: String { return self._s[2479]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[2480]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[2481]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2482]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2483]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2484]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2485]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2486]! } - public var Notification_SecretChatScreenshot: String { return self._s[2487]! } - public var AccessDenied_Wallpapers: String { return self._s[2488]! } - public var ChatList_Context_Mute: String { return self._s[2490]! } - public var Passport_Address_City: String { return self._s[2491]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2492]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[2493]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2494]! } - public var AccessDenied_LocationDisabled: String { return self._s[2495]! } - public var Group_Location_Title: String { return self._s[2496]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2498]! } - public var GroupInfo_Sound: String { return self._s[2499]! } - public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2500]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[2501]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2502]! } - public var Contacts_Title: String { return self._s[2503]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[2504]! } - public var Passport_Language_fr: String { return self._s[2505]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2506]! } - public var Notifications_ResetAllNotifications: String { return self._s[2507]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2509]! } - public var PrivacySettings_SecurityTitle: String { return self._s[2511]! } - public var Checkout_NewCard_Title: String { return self._s[2512]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[2513]! } - public var Conversation_ForwardChats: String { return self._s[2514]! } - public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2516]! } - public var PasscodeSettings_4DigitCode: String { return self._s[2517]! } - public var Settings_FAQ: String { return self._s[2519]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2520]! } - public var Conversation_ContextMenuForward: String { return self._s[2521]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[2524]! } - public var PrivacyPolicy_Title: String { return self._s[2527]! } - public var Notifications_TextTone: String { return self._s[2528]! } - public var Profile_CreateNewContact: String { return self._s[2529]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2530]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2532]! } - public var Call_Speaker: String { return self._s[2533]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2534]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2536]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2537]! } + public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2473]!, self._r[2473]!, [_0]) + } + public var Channel_Management_LabelAdministrator: String { return self._s[2474]! } + public var EditTheme_FileReadError: String { return self._s[2475]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[2476]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2477]! } + public var AutoDownloadSettings_Photos: String { return self._s[2479]! } + public var Appearance_PreviewIncomingText: String { return self._s[2480]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[2481]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[2482]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2483]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2484]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2485]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2486]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2487]! } + public var Notification_SecretChatScreenshot: String { return self._s[2488]! } + public var AccessDenied_Wallpapers: String { return self._s[2489]! } + public var ChatList_Context_Mute: String { return self._s[2491]! } + public var Passport_Address_City: String { return self._s[2492]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2493]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[2494]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2495]! } + public var AccessDenied_LocationDisabled: String { return self._s[2496]! } + public var Group_Location_Title: String { return self._s[2497]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2499]! } + public var GroupInfo_Sound: String { return self._s[2500]! } + public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2501]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[2502]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2503]! } + public var Contacts_Title: String { return self._s[2504]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[2505]! } + public var Passport_Language_fr: String { return self._s[2506]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2507]! } + public var Notifications_ResetAllNotifications: String { return self._s[2508]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2510]! } + public var PrivacySettings_SecurityTitle: String { return self._s[2512]! } + public var Checkout_NewCard_Title: String { return self._s[2513]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[2514]! } + public var Conversation_ForwardChats: String { return self._s[2515]! } + public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2517]! } + public var PasscodeSettings_4DigitCode: String { return self._s[2518]! } + public var Settings_FAQ: String { return self._s[2520]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2521]! } + public var Conversation_ContextMenuForward: String { return self._s[2522]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[2525]! } + public var PrivacyPolicy_Title: String { return self._s[2528]! } + public var Notifications_TextTone: String { return self._s[2529]! } + public var Profile_CreateNewContact: String { return self._s[2530]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2531]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2533]! } + public var Call_Speaker: String { return self._s[2534]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2535]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2537]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2538]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2538]!, self._r[2538]!, [_0]) + return formatWithArgumentRanges(self._s[2539]!, self._r[2539]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2539]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2540]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2541]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2542]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[2543]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2544]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2545]! } - public var Bot_Unblock: String { return self._s[2546]! } - public var TextFormat_Italic: String { return self._s[2547]! } - public var WallpaperSearch_ColorPink: String { return self._s[2548]! } - public var Settings_About_Help: String { return self._s[2550]! } - public var SearchImages_Title: String { return self._s[2551]! } - public var Weekday_Wednesday: String { return self._s[2552]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2553]! } - public var ExplicitContent_AlertTitle: String { return self._s[2554]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2540]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2541]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2542]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2543]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[2544]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2545]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2546]! } + public var Bot_Unblock: String { return self._s[2547]! } + public var TextFormat_Italic: String { return self._s[2548]! } + public var WallpaperSearch_ColorPink: String { return self._s[2549]! } + public var Settings_About_Help: String { return self._s[2551]! } + public var SearchImages_Title: String { return self._s[2552]! } + public var Weekday_Wednesday: String { return self._s[2553]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2554]! } + public var ExplicitContent_AlertTitle: String { return self._s[2555]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2555]!, self._r[2555]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2556]!, self._r[2556]!, [_1, _2, _3]) } - public var Channel_DiscussionGroup_Create: String { return self._s[2556]! } - public var Weekday_Thursday: String { return self._s[2557]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2558]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2559]! } + public var Channel_DiscussionGroup_Create: String { return self._s[2557]! } + public var Weekday_Thursday: String { return self._s[2558]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2559]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2560]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2560]!, self._r[2560]!, [_0]) + return formatWithArgumentRanges(self._s[2561]!, self._r[2561]!, [_0]) } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2561]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2562]! } - public var Passport_RequestedInformation: String { return self._s[2563]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2564]! } - public var Conversation_EncryptionProcessing: String { return self._s[2566]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2567]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2569]! } - public var Channel_Setup_Title: String { return self._s[2570]! } - public var Conversation_SearchPlaceholder: String { return self._s[2571]! } - public var OldChannels_GroupEmptyFormat: String { return self._s[2572]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2573]! } - public var Checkout_ErrorGeneric: String { return self._s[2574]! } - public var Passport_Language_hu: String { return self._s[2575]! } - public var GroupPermission_EditingDisabled: String { return self._s[2576]! } - public var Wallet_Month_ShortSeptember: String { return self._s[2578]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2562]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2563]! } + public var Passport_RequestedInformation: String { return self._s[2564]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2565]! } + public var Conversation_EncryptionProcessing: String { return self._s[2567]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2568]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2570]! } + public var Channel_Setup_Title: String { return self._s[2571]! } + public var Conversation_SearchPlaceholder: String { return self._s[2572]! } + public var OldChannels_GroupEmptyFormat: String { return self._s[2573]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2574]! } + public var Checkout_ErrorGeneric: String { return self._s[2575]! } + public var Passport_Language_hu: String { return self._s[2576]! } + public var GroupPermission_EditingDisabled: String { return self._s[2577]! } + public var Wallet_Month_ShortSeptember: String { return self._s[2579]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2579]!, self._r[2579]!, [_0]) + return formatWithArgumentRanges(self._s[2580]!, self._r[2580]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2582]!, self._r[2582]!, [_1]) + return formatWithArgumentRanges(self._s[2583]!, self._r[2583]!, [_1]) } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2583]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2584]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2584]!, self._r[2584]!, [_0]) + return formatWithArgumentRanges(self._s[2585]!, self._r[2585]!, [_0]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2585]! } - public var Group_Location_Info: String { return self._s[2586]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2587]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2588]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2586]! } + public var Group_Location_Info: String { return self._s[2587]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2588]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2589]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2589]!, self._r[2589]!, [_0]) + return formatWithArgumentRanges(self._s[2590]!, self._r[2590]!, [_0]) } - public var Conversation_ClearPrivateHistory: String { return self._s[2590]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2591]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[2592]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2593]! } + public var Conversation_ClearPrivateHistory: String { return self._s[2591]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2592]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[2593]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2594]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2594]!, self._r[2594]!, [_0]) + return formatWithArgumentRanges(self._s[2595]!, self._r[2595]!, [_0]) } - public var Passport_Language_cs: String { return self._s[2595]! } - public var Message_PinnedAnimationMessage: String { return self._s[2597]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2599]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2600]! } - public var Wallet_Info_TransactionTo: String { return self._s[2602]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2603]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2604]! } - public var Embed_PlayingInPIP: String { return self._s[2605]! } - public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2606]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2607]! } + public var Passport_Language_cs: String { return self._s[2596]! } + public var Message_PinnedAnimationMessage: String { return self._s[2598]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2600]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2601]! } + public var Wallet_Info_TransactionTo: String { return self._s[2603]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2604]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2605]! } + public var Embed_PlayingInPIP: String { return self._s[2606]! } + public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2607]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2608]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2608]!, self._r[2608]!, [_0]) + return formatWithArgumentRanges(self._s[2609]!, self._r[2609]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2609]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[2610]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2610]!, self._r[2610]!, [_1]) + return formatWithArgumentRanges(self._s[2611]!, self._r[2611]!, [_1]) } - public var Notification_PaymentSent: String { return self._s[2611]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2612]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2613]! } - public var AutoNightTheme_System: String { return self._s[2614]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2615]! } - public var CreatePoll_QuizTitle: String { return self._s[2616]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2617]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2618]! } + public var Notification_PaymentSent: String { return self._s[2612]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2613]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2614]! } + public var AutoNightTheme_System: String { return self._s[2615]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2616]! } + public var CreatePoll_QuizTitle: String { return self._s[2617]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2618]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2619]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2621]!, self._r[2621]!, [_1]) - } - public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2622]!, self._r[2622]!, [_1]) } - public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { + public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2623]!, self._r[2623]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2625]! } - public var PasscodeSettings_HelpTop: String { return self._s[2626]! } - public var Conversation_WalletRequiredTitle: String { return self._s[2627]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2628]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2629]! } - public var EditTheme_ShortLink: String { return self._s[2630]! } - public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2631]! } - public var ProxyServer_VoiceOver_Active: String { return self._s[2632]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2633]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2634]! } - public var Call_Accept: String { return self._s[2636]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2637]! } - public var Month_GenMarch: String { return self._s[2639]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2640]! } - public var LoginPassword_Title: String { return self._s[2641]! } - public var Call_End: String { return self._s[2642]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2643]! } - public var VoiceOver_Chat_Contact: String { return self._s[2644]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2645]! } - public var CallSettings_Always: String { return self._s[2646]! } - public var CallFeedback_Success: String { return self._s[2647]! } - public var TwoStepAuth_SetupHint: String { return self._s[2648]! } + public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2624]!, self._r[2624]!, [_1]) + } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2626]! } + public var PasscodeSettings_HelpTop: String { return self._s[2627]! } + public var Conversation_WalletRequiredTitle: String { return self._s[2628]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2629]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2630]! } + public var EditTheme_ShortLink: String { return self._s[2631]! } + public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2632]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[2633]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2634]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2635]! } + public var Call_Accept: String { return self._s[2637]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2638]! } + public var Month_GenMarch: String { return self._s[2640]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2641]! } + public var LoginPassword_Title: String { return self._s[2642]! } + public var Call_End: String { return self._s[2643]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2644]! } + public var VoiceOver_Chat_Contact: String { return self._s[2645]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2646]! } + public var CallSettings_Always: String { return self._s[2647]! } + public var CallFeedback_Success: String { return self._s[2648]! } + public var TwoStepAuth_SetupHint: String { return self._s[2649]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2649]!, self._r[2649]!, [_1]) + return formatWithArgumentRanges(self._s[2650]!, self._r[2650]!, [_1]) } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2650]! } - public var Login_PhoneTitle: String { return self._s[2651]! } - public var Passport_FieldPhoneHelp: String { return self._s[2652]! } - public var Weekday_ShortSunday: String { return self._s[2653]! } - public var Passport_InfoFAQ_URL: String { return self._s[2654]! } - public var ContactInfo_Job: String { return self._s[2656]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2657]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[2658]! } - public var CreatePoll_QuizTip: String { return self._s[2659]! } - public var TwoFactorSetup_Email_Text: String { return self._s[2660]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2661]! } - public var Invite_ChannelsTooMuch: String { return self._s[2662]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[2663]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2664]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2665]! } - public var Wallet_Receive_AmountText: String { return self._s[2666]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2667]! } - public var CallFeedback_ReasonNoise: String { return self._s[2668]! } - public var Appearance_AppIconDefault: String { return self._s[2670]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2671]! } - public var MediaPicker_AddCaption: String { return self._s[2672]! } - public var CallSettings_TabIconDescription: String { return self._s[2673]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2651]! } + public var Login_PhoneTitle: String { return self._s[2652]! } + public var Passport_FieldPhoneHelp: String { return self._s[2653]! } + public var Weekday_ShortSunday: String { return self._s[2654]! } + public var Passport_InfoFAQ_URL: String { return self._s[2655]! } + public var ContactInfo_Job: String { return self._s[2657]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2658]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[2659]! } + public var CreatePoll_QuizTip: String { return self._s[2660]! } + public var TwoFactorSetup_Email_Text: String { return self._s[2661]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2662]! } + public var Invite_ChannelsTooMuch: String { return self._s[2663]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[2664]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2665]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2666]! } + public var Wallet_Receive_AmountText: String { return self._s[2667]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2668]! } + public var CallFeedback_ReasonNoise: String { return self._s[2669]! } + public var Appearance_AppIconDefault: String { return self._s[2671]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2672]! } + public var MediaPicker_AddCaption: String { return self._s[2673]! } + public var CallSettings_TabIconDescription: String { return self._s[2674]! } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2674]!, self._r[2674]!, [_0]) + return formatWithArgumentRanges(self._s[2675]!, self._r[2675]!, [_0]) } - public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2675]! } + public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2676]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2676]!, self._r[2676]!, [_0]) + return formatWithArgumentRanges(self._s[2677]!, self._r[2677]!, [_0]) } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2677]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2678]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2679]! } - public var DialogList_SearchSectionRecent: String { return self._s[2680]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2681]! } - public var CreatePoll_Anonymous: String { return self._s[2682]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2685]! } - public var LastSeen_WithinAWeek: String { return self._s[2686]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2687]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2689]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2690]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2678]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2679]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2680]! } + public var DialogList_SearchSectionRecent: String { return self._s[2681]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2682]! } + public var CreatePoll_Anonymous: String { return self._s[2683]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2686]! } + public var LastSeen_WithinAWeek: String { return self._s[2687]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2688]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2690]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2691]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2691]!, self._r[2691]!, [_0]) + return formatWithArgumentRanges(self._s[2692]!, self._r[2692]!, [_0]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2692]! } - public var Conversation_StatusLeftGroup: String { return self._s[2693]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2694]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2696]! } - public var GroupPermission_AddSuccess: String { return self._s[2697]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2699]! } - public var Conversation_ContextMenuCopy: String { return self._s[2700]! } - public var AccessDenied_CallMicrophone: String { return self._s[2701]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2693]! } + public var Conversation_StatusLeftGroup: String { return self._s[2694]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2695]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2697]! } + public var GroupPermission_AddSuccess: String { return self._s[2698]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2700]! } + public var Conversation_ContextMenuCopy: String { return self._s[2701]! } + public var AccessDenied_CallMicrophone: String { return self._s[2702]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2702]!, self._r[2702]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2703]!, self._r[2703]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2703]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2704]! } - public var Checkout_PaymentMethod_New: String { return self._s[2705]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2706]! } - public var PhotoEditor_QualityTool: String { return self._s[2707]! } - public var Login_SendCodeViaSms: String { return self._s[2708]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2709]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2710]! } - public var Wallet_Receive_CopyAddress: String { return self._s[2711]! } - public var Login_EmailNotConfiguredError: String { return self._s[2712]! } - public var SocksProxySetup_Status: String { return self._s[2713]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2714]! } - public var PrivacyPolicy_Accept: String { return self._s[2715]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2716]! } - public var Appearance_AppIconClassicX: String { return self._s[2717]! } + public var Login_InvalidFirstNameError: String { return self._s[2704]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2705]! } + public var Checkout_PaymentMethod_New: String { return self._s[2706]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2707]! } + public var PhotoEditor_QualityTool: String { return self._s[2708]! } + public var Login_SendCodeViaSms: String { return self._s[2709]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2710]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2711]! } + public var Wallet_Receive_CopyAddress: String { return self._s[2712]! } + public var Login_EmailNotConfiguredError: String { return self._s[2713]! } + public var SocksProxySetup_Status: String { return self._s[2714]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2715]! } + public var PrivacyPolicy_Accept: String { return self._s[2716]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2717]! } + public var Appearance_AppIconClassicX: String { return self._s[2718]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2718]!, self._r[2718]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2719]!, self._r[2719]!, [_1, _2, _3]) } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[2719]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2721]! } - public var AutoNightTheme_Automatic: String { return self._s[2722]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2723]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2724]! } - public var Cache_Help: String { return self._s[2725]! } - public var Group_ErrorAccessDenied: String { return self._s[2726]! } - public var Passport_Language_fa: String { return self._s[2727]! } - public var Wallet_Intro_Text: String { return self._s[2728]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2729]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2730]! } - public var PrivacySettings_LastSeen: String { return self._s[2731]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[2720]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2722]! } + public var AutoNightTheme_Automatic: String { return self._s[2723]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2724]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2725]! } + public var Cache_Help: String { return self._s[2726]! } + public var Group_ErrorAccessDenied: String { return self._s[2727]! } + public var Passport_Language_fa: String { return self._s[2728]! } + public var Wallet_Intro_Text: String { return self._s[2729]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2730]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2731]! } + public var PrivacySettings_LastSeen: String { return self._s[2732]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2732]!, self._r[2732]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2733]!, self._r[2733]!, [_0, _1]) } - public var Wallet_Configuration_Apply: String { return self._s[2736]! } - public var Preview_SaveGif: String { return self._s[2737]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2738]! } - public var Profile_About: String { return self._s[2739]! } - public var Channel_About_Placeholder: String { return self._s[2740]! } - public var Login_InfoTitle: String { return self._s[2741]! } + public var Wallet_Configuration_Apply: String { return self._s[2737]! } + public var Preview_SaveGif: String { return self._s[2738]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2739]! } + public var Profile_About: String { return self._s[2740]! } + public var Channel_About_Placeholder: String { return self._s[2741]! } + public var Login_InfoTitle: String { return self._s[2742]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2742]!, self._r[2742]!, [_0]) + return formatWithArgumentRanges(self._s[2743]!, self._r[2743]!, [_0]) } - public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2743]! } - public var Watch_Suggestion_CantTalk: String { return self._s[2745]! } - public var ContactInfo_Title: String { return self._s[2746]! } - public var Media_ShareThisVideo: String { return self._s[2747]! } - public var Weekday_ShortFriday: String { return self._s[2748]! } - public var AccessDenied_Contacts: String { return self._s[2750]! } - public var Notification_CallIncomingShort: String { return self._s[2751]! } - public var Group_Setup_TypePublic: String { return self._s[2752]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2753]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2754]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2757]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2758]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2759]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2760]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2761]! } + public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2744]! } + public var Watch_Suggestion_CantTalk: String { return self._s[2746]! } + public var ContactInfo_Title: String { return self._s[2747]! } + public var Media_ShareThisVideo: String { return self._s[2748]! } + public var Weekday_ShortFriday: String { return self._s[2749]! } + public var AccessDenied_Contacts: String { return self._s[2751]! } + public var Notification_CallIncomingShort: String { return self._s[2752]! } + public var Group_Setup_TypePublic: String { return self._s[2753]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2754]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[2755]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[2758]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2759]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2760]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2761]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2762]! } public func Wallet_SecureStorageChanged_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2762]!, self._r[2762]!, [_0]) + return formatWithArgumentRanges(self._s[2763]!, self._r[2763]!, [_0]) } - public var DialogList_Typing: String { return self._s[2763]! } - public var CallFeedback_IncludeLogs: String { return self._s[2765]! } - public var Checkout_Phone: String { return self._s[2767]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[2770]! } - public var Privacy_Calls_Integration: String { return self._s[2771]! } - public var Notifications_PermissionsAllow: String { return self._s[2772]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[2776]! } - public var Settings_ChatSettings: String { return self._s[2777]! } - public var Conversation_SendingOptionsTooltip: String { return self._s[2778]! } + public var DialogList_Typing: String { return self._s[2764]! } + public var CallFeedback_IncludeLogs: String { return self._s[2766]! } + public var Checkout_Phone: String { return self._s[2768]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[2771]! } + public var Privacy_Calls_Integration: String { return self._s[2772]! } + public var Notifications_PermissionsAllow: String { return self._s[2773]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[2777]! } + public var Settings_ChatSettings: String { return self._s[2778]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[2779]! } public func UserInfo_StartSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2780]!, self._r[2780]!, [_0]) + return formatWithArgumentRanges(self._s[2781]!, self._r[2781]!, [_0]) } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2781]!, self._r[2781]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2782]!, self._r[2782]!, [_1, _2]) } - public var GroupRemoved_DeleteUser: String { return self._s[2783]! } + public var GroupRemoved_DeleteUser: String { return self._s[2784]! } public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2784]!, self._r[2784]!, [_0]) + return formatWithArgumentRanges(self._s[2785]!, self._r[2785]!, [_0]) } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2785]!, self._r[2785]!, [_1]) + return formatWithArgumentRanges(self._s[2786]!, self._r[2786]!, [_1]) } - public var Login_ContinueWithLocalization: String { return self._s[2786]! } - public var Watch_Message_ForwardedFrom: String { return self._s[2787]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[2789]! } - public var Conversation_Unblock: String { return self._s[2790]! } - public var PrivacySettings_DataSettings: String { return self._s[2791]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[2792]! } - public var Group_PublicLink_Info: String { return self._s[2793]! } + public var Login_ContinueWithLocalization: String { return self._s[2787]! } + public var Watch_Message_ForwardedFrom: String { return self._s[2788]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[2790]! } + public var Conversation_Unblock: String { return self._s[2791]! } + public var PrivacySettings_DataSettings: String { return self._s[2792]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[2793]! } + public var Group_PublicLink_Info: String { return self._s[2794]! } public func Wallet_Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2794]!, self._r[2794]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2795]!, self._r[2795]!, [_1, _2, _3]) } - public var Notifications_InAppNotificationsVibrate: String { return self._s[2795]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[2796]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2796]!, self._r[2796]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2797]!, self._r[2797]!, [_0, _1]) } - public var OldChannels_ChannelsHeader: String { return self._s[2798]! } - public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2799]! } - public var PrivacySettings_Passcode: String { return self._s[2801]! } - public var Call_Mute: String { return self._s[2802]! } - public var Wallet_Weekday_Yesterday: String { return self._s[2803]! } - public var Passport_Language_dz: String { return self._s[2804]! } - public var Wallet_Receive_AmountHeader: String { return self._s[2805]! } - public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2806]! } - public var Passport_Language_tk: String { return self._s[2807]! } + public var OldChannels_ChannelsHeader: String { return self._s[2799]! } + public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2800]! } + public var PrivacySettings_Passcode: String { return self._s[2802]! } + public var Call_Mute: String { return self._s[2803]! } + public var Wallet_Weekday_Yesterday: String { return self._s[2804]! } + public var Passport_Language_dz: String { return self._s[2805]! } + public var Wallet_Receive_AmountHeader: String { return self._s[2806]! } + public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2807]! } + public var Passport_Language_tk: String { return self._s[2808]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2808]!, self._r[2808]!, [_0]) + return formatWithArgumentRanges(self._s[2809]!, self._r[2809]!, [_0]) } - public var Settings_Search: String { return self._s[2809]! } - public var Wallet_Month_ShortFebruary: String { return self._s[2810]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2811]! } - public var Wallet_Configuration_SourceJSON: String { return self._s[2812]! } - public var Conversation_ContextMenuReply: String { return self._s[2813]! } - public var WallpaperSearch_ColorBrown: String { return self._s[2814]! } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2815]! } - public var Tour_Title1: String { return self._s[2816]! } - public var Wallet_Alert_Cancel: String { return self._s[2817]! } - public var Conversation_ClearGroupHistory: String { return self._s[2819]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2820]! } - public var WallpaperPreview_Motion: String { return self._s[2821]! } + public var Settings_Search: String { return self._s[2810]! } + public var Wallet_Month_ShortFebruary: String { return self._s[2811]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2812]! } + public var Wallet_Configuration_SourceJSON: String { return self._s[2813]! } + public var Conversation_ContextMenuReply: String { return self._s[2814]! } + public var WallpaperSearch_ColorBrown: String { return self._s[2815]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2816]! } + public var Tour_Title1: String { return self._s[2817]! } + public var Wallet_Alert_Cancel: String { return self._s[2818]! } + public var Conversation_ClearGroupHistory: String { return self._s[2820]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2821]! } + public var WallpaperPreview_Motion: String { return self._s[2822]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2822]!, self._r[2822]!, [_0]) + return formatWithArgumentRanges(self._s[2823]!, self._r[2823]!, [_0]) } - public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2823]! } - public var Call_RateCall: String { return self._s[2824]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2825]! } - public var Passport_PasswordCompleteSetup: String { return self._s[2826]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2827]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[2829]! } + public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2824]! } + public var Call_RateCall: String { return self._s[2825]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2826]! } + public var Passport_PasswordCompleteSetup: String { return self._s[2827]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2828]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[2830]! } public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2831]!, self._r[2831]!, [_0]) + return formatWithArgumentRanges(self._s[2832]!, self._r[2832]!, [_0]) } - public var Compose_Create: String { return self._s[2832]! } - public var Contacts_InviteToTelegram: String { return self._s[2833]! } - public var GroupInfo_Notifications: String { return self._s[2834]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2836]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[2837]! } - public var Month_GenApril: String { return self._s[2838]! } - public var Appearance_AutoNightTheme: String { return self._s[2839]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[2841]! } - public var Login_CodeSentSms: String { return self._s[2843]! } + public var Compose_Create: String { return self._s[2833]! } + public var Contacts_InviteToTelegram: String { return self._s[2834]! } + public var GroupInfo_Notifications: String { return self._s[2835]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2837]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[2838]! } + public var Month_GenApril: String { return self._s[2839]! } + public var Appearance_AutoNightTheme: String { return self._s[2840]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[2842]! } + public var Login_CodeSentSms: String { return self._s[2844]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2844]!, self._r[2844]!, [_0]) + return formatWithArgumentRanges(self._s[2845]!, self._r[2845]!, [_0]) } - public var EmptyGroupInfo_Line3: String { return self._s[2845]! } - public var LogoutOptions_ContactSupportText: String { return self._s[2846]! } - public var Passport_Language_hr: String { return self._s[2847]! } - public var Common_ActionNotAllowedError: String { return self._s[2848]! } + public var EmptyGroupInfo_Line3: String { return self._s[2846]! } + public var LogoutOptions_ContactSupportText: String { return self._s[2847]! } + public var Passport_Language_hr: String { return self._s[2848]! } + public var Common_ActionNotAllowedError: String { return self._s[2849]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2849]!, self._r[2849]!, [_0]) + return formatWithArgumentRanges(self._s[2850]!, self._r[2850]!, [_0]) } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[2850]! } - public var Wallet_Info_TransactionFrom: String { return self._s[2851]! } - public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2852]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2853]! } - public var Privacy_SecretChatsTitle: String { return self._s[2854]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2856]! } - public var GroupInfo_AddUserLeftError: String { return self._s[2857]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2858]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[2859]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2860]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[2861]! } - public var Preview_DeleteGif: String { return self._s[2862]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2863]! } - public var Group_ErrorNotMutualContact: String { return self._s[2864]! } - public var Notification_MessageLifetime5s: String { return self._s[2865]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[2866]! } - public var OldChannels_ChannelFormat: String { return self._s[2867]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[2851]! } + public var Wallet_Info_TransactionFrom: String { return self._s[2852]! } + public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2853]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2854]! } + public var Privacy_SecretChatsTitle: String { return self._s[2855]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2857]! } + public var GroupInfo_AddUserLeftError: String { return self._s[2858]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2859]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[2860]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2861]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[2862]! } + public var Preview_DeleteGif: String { return self._s[2863]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2864]! } + public var Group_ErrorNotMutualContact: String { return self._s[2865]! } + public var Notification_MessageLifetime5s: String { return self._s[2866]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[2867]! } + public var OldChannels_ChannelFormat: String { return self._s[2868]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2868]!, self._r[2868]!, [_0]) + return formatWithArgumentRanges(self._s[2869]!, self._r[2869]!, [_0]) } - public var VoiceOver_Chat_Video: String { return self._s[2869]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2871]! } - public var ReportSpam_DeleteThisChat: String { return self._s[2872]! } - public var Passport_Address_AddBankStatement: String { return self._s[2873]! } - public var Notification_CallIncoming: String { return self._s[2874]! } - public var Wallet_Words_NotDoneTitle: String { return self._s[2875]! } - public var Compose_NewGroupTitle: String { return self._s[2876]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2878]! } - public var Passport_Address_Postcode: String { return self._s[2880]! } + public var VoiceOver_Chat_Video: String { return self._s[2870]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2872]! } + public var ReportSpam_DeleteThisChat: String { return self._s[2873]! } + public var Passport_Address_AddBankStatement: String { return self._s[2874]! } + public var Notification_CallIncoming: String { return self._s[2875]! } + public var Wallet_Words_NotDoneTitle: String { return self._s[2876]! } + public var Compose_NewGroupTitle: String { return self._s[2877]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2879]! } + public var Passport_Address_Postcode: String { return self._s[2881]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2881]!, self._r[2881]!, [_0]) + return formatWithArgumentRanges(self._s[2882]!, self._r[2882]!, [_0]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2882]! } - public var Wallet_Month_ShortOctober: String { return self._s[2883]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2884]! } - public var WallpaperColors_Title: String { return self._s[2885]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2886]! } - public var VoiceOver_MessageContextForward: String { return self._s[2887]! } - public var GroupPermission_Duration: String { return self._s[2888]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2883]! } + public var Wallet_Month_ShortOctober: String { return self._s[2884]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2885]! } + public var WallpaperColors_Title: String { return self._s[2886]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2887]! } + public var VoiceOver_MessageContextForward: String { return self._s[2888]! } + public var GroupPermission_Duration: String { return self._s[2889]! } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2889]!, self._r[2889]!, [_0]) + return formatWithArgumentRanges(self._s[2890]!, self._r[2890]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2890]! } - public var Username_Placeholder: String { return self._s[2891]! } - public var CallFeedback_WhatWentWrong: String { return self._s[2892]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2893]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2894]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2891]! } + public var Username_Placeholder: String { return self._s[2892]! } + public var CallFeedback_WhatWentWrong: String { return self._s[2893]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2894]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2895]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2896]!, self._r[2896]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2897]!, self._r[2897]!, [_1, _2]) } - public var Passport_PasswordDescription: String { return self._s[2897]! } - public var Channel_MessagePhotoUpdated: String { return self._s[2898]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[2899]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2900]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[2901]! } - public var Conversation_ContextMenuMore: String { return self._s[2902]! } - public var Privacy_PaymentsClearInfo: String { return self._s[2903]! } - public var CallSettings_TabIcon: String { return self._s[2904]! } - public var KeyCommand_Find: String { return self._s[2905]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2906]! } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2907]! } - public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2908]! } - public var Message_PinnedGame: String { return self._s[2909]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2910]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2912]! } - public var Login_CallRequestState2: String { return self._s[2914]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2916]! } + public var Passport_PasswordDescription: String { return self._s[2898]! } + public var Channel_MessagePhotoUpdated: String { return self._s[2899]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[2900]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2901]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[2902]! } + public var Conversation_ContextMenuMore: String { return self._s[2903]! } + public var Privacy_PaymentsClearInfo: String { return self._s[2904]! } + public var CallSettings_TabIcon: String { return self._s[2905]! } + public var KeyCommand_Find: String { return self._s[2906]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2907]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2908]! } + public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2909]! } + public var Message_PinnedGame: String { return self._s[2910]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2911]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2913]! } + public var Login_CallRequestState2: String { return self._s[2915]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2917]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2917]!, self._r[2917]!, [_0]) + return formatWithArgumentRanges(self._s[2918]!, self._r[2918]!, [_0]) } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2919]!, self._r[2919]!, [_0]) + return formatWithArgumentRanges(self._s[2920]!, self._r[2920]!, [_0]) } - public var AuthSessions_AddDevice: String { return self._s[2920]! } - public var WallpaperPreview_Blurred: String { return self._s[2921]! } - public var Conversation_InstantPagePreview: String { return self._s[2922]! } + public var AuthSessions_AddDevice: String { return self._s[2921]! } + public var WallpaperPreview_Blurred: String { return self._s[2922]! } + public var Conversation_InstantPagePreview: String { return self._s[2923]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_0]) + return formatWithArgumentRanges(self._s[2924]!, self._r[2924]!, [_0]) } - public var SecretTimer_VideoDescription: String { return self._s[2926]! } - public var WallpaperSearch_ColorRed: String { return self._s[2927]! } - public var GroupPermission_NoPinMessages: String { return self._s[2928]! } - public var Passport_Language_es: String { return self._s[2929]! } - public var Permissions_ContactsAllow_v0: String { return self._s[2931]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2932]! } + public var SecretTimer_VideoDescription: String { return self._s[2927]! } + public var WallpaperSearch_ColorRed: String { return self._s[2928]! } + public var GroupPermission_NoPinMessages: String { return self._s[2929]! } + public var Passport_Language_es: String { return self._s[2930]! } + public var Permissions_ContactsAllow_v0: String { return self._s[2932]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2933]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2933]!, self._r[2933]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2934]!, self._r[2934]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[2934]! } - public var WebPreview_GettingLinkInfo: String { return self._s[2935]! } - public var Watch_UserInfo_Unmute: String { return self._s[2936]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2937]! } - public var AccessDenied_CameraRestricted: String { return self._s[2939]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[2935]! } + public var WebPreview_GettingLinkInfo: String { return self._s[2936]! } + public var Watch_UserInfo_Unmute: String { return self._s[2937]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2938]! } + public var AccessDenied_CameraRestricted: String { return self._s[2940]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2940]!, self._r[2940]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2941]!, self._r[2941]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[2942]! } - public var Settings_CopyUsername: String { return self._s[2943]! } - public var Contacts_SearchLabel: String { return self._s[2944]! } - public var Map_OpenInYandexNavigator: String { return self._s[2946]! } - public var PasscodeSettings_EncryptData: String { return self._s[2947]! } - public var Settings_Wallet: String { return self._s[2948]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2949]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[2950]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[2951]! } - public var DialogList_AdNoticeAlert: String { return self._s[2952]! } - public var Wallet_Month_GenMay: String { return self._s[2954]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2955]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2956]! } - public var Localization_LanguageCustom: String { return self._s[2957]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2958]! } - public var CallFeedback_Title: String { return self._s[2959]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2962]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2963]! } - public var Wallet_Intro_CreateErrorTitle: String { return self._s[2964]! } - public var Conversation_InfoGroup: String { return self._s[2965]! } - public var Compose_NewMessage: String { return self._s[2966]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2967]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2968]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2969]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2970]! } + public var ChatList_ReadAll: String { return self._s[2943]! } + public var Settings_CopyUsername: String { return self._s[2944]! } + public var Contacts_SearchLabel: String { return self._s[2945]! } + public var Map_OpenInYandexNavigator: String { return self._s[2947]! } + public var PasscodeSettings_EncryptData: String { return self._s[2948]! } + public var Settings_Wallet: String { return self._s[2949]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2950]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2951]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[2952]! } + public var DialogList_AdNoticeAlert: String { return self._s[2953]! } + public var Wallet_Month_GenMay: String { return self._s[2955]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2956]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2957]! } + public var Localization_LanguageCustom: String { return self._s[2958]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2959]! } + public var CallFeedback_Title: String { return self._s[2960]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2963]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2964]! } + public var Wallet_Intro_CreateErrorTitle: String { return self._s[2965]! } + public var Conversation_InfoGroup: String { return self._s[2966]! } + public var Compose_NewMessage: String { return self._s[2967]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2968]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2969]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2970]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2971]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2971]!, self._r[2971]!, [_0]) + return formatWithArgumentRanges(self._s[2972]!, self._r[2972]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2972]! } - public var Login_CancelSignUpConfirmation: String { return self._s[2973]! } - public var ChangePhoneNumberCode_Help: String { return self._s[2974]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[2975]! } - public var Channel_BlackList_Title: String { return self._s[2976]! } - public var UserInfo_PhoneCall: String { return self._s[2977]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2979]! } - public var Wallet_Month_ShortJanuary: String { return self._s[2980]! } - public var State_connecting: String { return self._s[2981]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2982]! } - public var Wallet_Month_GenMarch: String { return self._s[2983]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2984]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[2985]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2973]! } + public var Login_CancelSignUpConfirmation: String { return self._s[2974]! } + public var ChangePhoneNumberCode_Help: String { return self._s[2975]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[2976]! } + public var Channel_BlackList_Title: String { return self._s[2977]! } + public var UserInfo_PhoneCall: String { return self._s[2978]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2980]! } + public var Wallet_Month_ShortJanuary: String { return self._s[2981]! } + public var State_connecting: String { return self._s[2982]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2983]! } + public var Wallet_Month_GenMarch: String { return self._s[2984]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2985]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[2986]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2986]!, self._r[2986]!, [_0]) - } - public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2987]!, self._r[2987]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[2988]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2989]! } - public var Passport_Identity_EditPassport: String { return self._s[2990]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2992]! } - public var Localization_EnglishLanguageName: String { return self._s[2993]! } - public var Share_AuthDescription: String { return self._s[2994]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2995]! } - public var Passport_Identity_Surname: String { return self._s[2996]! } - public var Compose_TokenListPlaceholder: String { return self._s[2997]! } - public var Wallet_AccessDenied_Camera: String { return self._s[2998]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[2999]! } - public var Settings_AboutEmpty: String { return self._s[3000]! } - public var Conversation_Unmute: String { return self._s[3001]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[3003]! } - public var Wallet_Sending_Text: String { return self._s[3004]! } - public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3005]!, self._r[3005]!, [_1]) + public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2988]!, self._r[2988]!, [_0]) } - public var Login_CodeSentCall: String { return self._s[3006]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3008]! } - public var ChatSettings_Appearance: String { return self._s[3009]! } - public var ClearCache_StorageUsage: String { return self._s[3010]! } - public var Appearance_PickAccentColor: String { return self._s[3011]! } + public var Notifications_GroupNotifications: String { return self._s[2989]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2990]! } + public var Passport_Identity_EditPassport: String { return self._s[2991]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2993]! } + public var Localization_EnglishLanguageName: String { return self._s[2994]! } + public var Share_AuthDescription: String { return self._s[2995]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2996]! } + public var Passport_Identity_Surname: String { return self._s[2997]! } + public var Compose_TokenListPlaceholder: String { return self._s[2998]! } + public var Wallet_AccessDenied_Camera: String { return self._s[2999]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[3000]! } + public var Settings_AboutEmpty: String { return self._s[3001]! } + public var Conversation_Unmute: String { return self._s[3002]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[3004]! } + public var Wallet_Sending_Text: String { return self._s[3005]! } + public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3006]!, self._r[3006]!, [_1]) + } + public var Login_CodeSentCall: String { return self._s[3007]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3009]! } + public var ChatSettings_Appearance: String { return self._s[3010]! } + public var ClearCache_StorageUsage: String { return self._s[3011]! } + public var Appearance_PickAccentColor: String { return self._s[3012]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3012]!, self._r[3012]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3013]!, self._r[3013]!, [_1, _2]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3013]!, self._r[3013]!, [_1]) + return formatWithArgumentRanges(self._s[3014]!, self._r[3014]!, [_1]) } - public var Notification_CallMissed: String { return self._s[3014]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3015]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3016]! } - public var Wallet_Month_GenOctober: String { return self._s[3018]! } - public var ChatAdmins_AdminLabel: String { return self._s[3019]! } - public var KeyCommand_JumpToNextChat: String { return self._s[3020]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[3022]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3023]! } - public var Month_GenJune: String { return self._s[3024]! } - public var IntentsSettings_MainAccountInfo: String { return self._s[3025]! } - public var Watch_Location_Current: String { return self._s[3026]! } - public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3027]! } - public var Conversation_TitleMute: String { return self._s[3028]! } - public var Map_PlacesInThisArea: String { return self._s[3029]! } + public var Notification_CallMissed: String { return self._s[3015]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3016]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3017]! } + public var Wallet_Month_GenOctober: String { return self._s[3019]! } + public var ChatAdmins_AdminLabel: String { return self._s[3020]! } + public var KeyCommand_JumpToNextChat: String { return self._s[3021]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[3023]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3024]! } + public var Month_GenJune: String { return self._s[3025]! } + public var IntentsSettings_MainAccountInfo: String { return self._s[3026]! } + public var Watch_Location_Current: String { return self._s[3027]! } + public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3028]! } + public var Conversation_TitleMute: String { return self._s[3029]! } + public var Map_PlacesInThisArea: String { return self._s[3030]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3030]!, self._r[3030]!, [_1]) + return formatWithArgumentRanges(self._s[3031]!, self._r[3031]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[3031]! } + public var GroupInfo_DeleteAndExit: String { return self._s[3032]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3032]!, self._r[3032]!, [_0]) + return formatWithArgumentRanges(self._s[3033]!, self._r[3033]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[3033]! } - public var Chat_SlowmodeSendError: String { return self._s[3034]! } - public var MaskStickerSettings_Info: String { return self._s[3035]! } - public var EditTheme_Expand_TopInfo: String { return self._s[3036]! } + public var Call_ReportPlaceholder: String { return self._s[3034]! } + public var Chat_SlowmodeSendError: String { return self._s[3035]! } + public var MaskStickerSettings_Info: String { return self._s[3036]! } + public var EditTheme_Expand_TopInfo: String { return self._s[3037]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3037]!, self._r[3037]!, [_0]) + return formatWithArgumentRanges(self._s[3038]!, self._r[3038]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[3038]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3040]! } - public var Contacts_ShareTelegram: String { return self._s[3041]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3042]! } - public var Map_AddressOnMap: String { return self._s[3043]! } - public var Channel_ErrorAccessDenied: String { return self._s[3044]! } - public var UserInfo_ScamBotWarning: String { return self._s[3046]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[3047]! } - public var Call_ConnectionErrorTitle: String { return self._s[3048]! } - public var UserInfo_NotificationsEnable: String { return self._s[3049]! } - public var ArchivedChats_IntroText1: String { return self._s[3050]! } - public var Tour_Text4: String { return self._s[3053]! } - public var WallpaperSearch_Recent: String { return self._s[3054]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[3055]! } - public var Profile_MessageLifetime2s: String { return self._s[3057]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3058]! } - public var Notification_MessageLifetime2s: String { return self._s[3059]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[3039]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3041]! } + public var Contacts_ShareTelegram: String { return self._s[3042]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3043]! } + public var Map_AddressOnMap: String { return self._s[3044]! } + public var Channel_ErrorAccessDenied: String { return self._s[3045]! } + public var UserInfo_ScamBotWarning: String { return self._s[3047]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[3048]! } + public var Call_ConnectionErrorTitle: String { return self._s[3049]! } + public var UserInfo_NotificationsEnable: String { return self._s[3050]! } + public var ArchivedChats_IntroText1: String { return self._s[3051]! } + public var Tour_Text4: String { return self._s[3054]! } + public var WallpaperSearch_Recent: String { return self._s[3055]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[3056]! } + public var Profile_MessageLifetime2s: String { return self._s[3058]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3059]! } + public var Notification_MessageLifetime2s: String { return self._s[3060]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3060]!, self._r[3060]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3061]!, self._r[3061]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[3061]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3062]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3063]! } + public var Cache_ClearCache: String { return self._s[3062]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3063]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3064]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3067]!, self._r[3067]!, [_0]) + return formatWithArgumentRanges(self._s[3068]!, self._r[3068]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3069]!, self._r[3069]!, [_0]) + return formatWithArgumentRanges(self._s[3070]!, self._r[3070]!, [_0]) } - public var LocalGroup_Text: String { return self._s[3070]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3071]! } - public var SocksProxySetup_TypeSocks: String { return self._s[3072]! } - public var ChatList_UnarchiveAction: String { return self._s[3073]! } - public var AutoNightTheme_Title: String { return self._s[3074]! } - public var InstantPage_FeedbackButton: String { return self._s[3075]! } - public var Passport_FieldAddress: String { return self._s[3076]! } + public var LocalGroup_Text: String { return self._s[3071]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3072]! } + public var SocksProxySetup_TypeSocks: String { return self._s[3073]! } + public var ChatList_UnarchiveAction: String { return self._s[3074]! } + public var AutoNightTheme_Title: String { return self._s[3075]! } + public var InstantPage_FeedbackButton: String { return self._s[3076]! } + public var Passport_FieldAddress: String { return self._s[3077]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3077]!, self._r[3077]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3078]!, self._r[3078]!, [_1, _2]) } - public var Month_ShortMarch: String { return self._s[3078]! } + public var Month_ShortMarch: String { return self._s[3079]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3079]!, self._r[3079]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3080]!, self._r[3080]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3080]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3081]! } - public var Passport_FloodError: String { return self._s[3082]! } - public var SecretGif_Title: String { return self._s[3083]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3084]! } - public var ChatList_Context_UnhideArchive: String { return self._s[3085]! } - public var Passport_Language_th: String { return self._s[3087]! } - public var Passport_Address_Address: String { return self._s[3088]! } - public var Login_InvalidLastNameError: String { return self._s[3089]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3090]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[3091]! } - public var ChatList_Context_Archive: String { return self._s[3092]! } - public var SettingsSearch_FAQ: String { return self._s[3093]! } - public var ShareMenu_Send: String { return self._s[3094]! } - public var WallpaperSearch_ColorYellow: String { return self._s[3096]! } - public var Month_GenNovember: String { return self._s[3098]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3100]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3081]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3082]! } + public var Passport_FloodError: String { return self._s[3083]! } + public var SecretGif_Title: String { return self._s[3084]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3085]! } + public var ChatList_Context_UnhideArchive: String { return self._s[3086]! } + public var Passport_Language_th: String { return self._s[3088]! } + public var Passport_Address_Address: String { return self._s[3089]! } + public var Login_InvalidLastNameError: String { return self._s[3090]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3091]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[3092]! } + public var ChatList_Context_Archive: String { return self._s[3093]! } + public var SettingsSearch_FAQ: String { return self._s[3094]! } + public var ShareMenu_Send: String { return self._s[3095]! } + public var WallpaperSearch_ColorYellow: String { return self._s[3097]! } + public var Month_GenNovember: String { return self._s[3099]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3101]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3101]!, self._r[3101]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3102]!, self._r[3102]!, [_1, _2]) } - public var Conversation_SwipeToReplyHintText: String { return self._s[3102]! } - public var Checkout_Email: String { return self._s[3103]! } - public var NotificationsSound_Tritone: String { return self._s[3104]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[3106]! } - public var Wallet_ContextMenuCopy: String { return self._s[3108]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3103]! } + public var Checkout_Email: String { return self._s[3104]! } + public var NotificationsSound_Tritone: String { return self._s[3105]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[3107]! } + public var Wallet_ContextMenuCopy: String { return self._s[3109]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3110]!, self._r[3110]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3111]!, self._r[3111]!, [_1, _2, _3]) } - public var Appearance_TextSize_Automatic: String { return self._s[3111]! } + public var Appearance_TextSize_Automatic: String { return self._s[3112]! } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3112]!, self._r[3112]!, [_1]) + return formatWithArgumentRanges(self._s[3113]!, self._r[3113]!, [_1]) } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3113]!, self._r[3113]!, [_0]) + return formatWithArgumentRanges(self._s[3114]!, self._r[3114]!, [_0]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[3114]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[3115]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3115]!, self._r[3115]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3116]!, self._r[3116]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[3116]! } - public var Notification_Exceptions_Add: String { return self._s[3117]! } - public var DialogList_You: String { return self._s[3118]! } - public var MediaPicker_Send: String { return self._s[3121]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3122]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3123]! } - public var Call_AudioRouteSpeaker: String { return self._s[3124]! } - public var Watch_UserInfo_Title: String { return self._s[3125]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[3126]! } - public var Appearance_AccentColor: String { return self._s[3128]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3117]! } + public var Notification_Exceptions_Add: String { return self._s[3118]! } + public var DialogList_You: String { return self._s[3119]! } + public var MediaPicker_Send: String { return self._s[3122]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3123]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3124]! } + public var Call_AudioRouteSpeaker: String { return self._s[3125]! } + public var Watch_UserInfo_Title: String { return self._s[3126]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[3127]! } + public var Appearance_AccentColor: String { return self._s[3129]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3129]!, self._r[3129]!, [_0]) + return formatWithArgumentRanges(self._s[3130]!, self._r[3130]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3130]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3131]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3131]!, self._r[3131]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3132]!, self._r[3132]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[3132]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3133]! } - public var Notification_CallOutgoing: String { return self._s[3134]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3135]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3136]! } - public var Call_RecordingDisabledMessage: String { return self._s[3137]! } - public var Message_Game: String { return self._s[3138]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[3139]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3140]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3141]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3142]! } - public var Date_DialogDateFormat: String { return self._s[3144]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3145]! } - public var Notifications_InAppNotifications: String { return self._s[3146]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[3133]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3134]! } + public var Notification_CallOutgoing: String { return self._s[3135]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3136]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3137]! } + public var Call_RecordingDisabledMessage: String { return self._s[3138]! } + public var Message_Game: String { return self._s[3139]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[3140]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3141]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3142]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3143]! } + public var Date_DialogDateFormat: String { return self._s[3145]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3146]! } + public var Notifications_InAppNotifications: String { return self._s[3147]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3147]!, self._r[3147]!, [_0]) + return formatWithArgumentRanges(self._s[3148]!, self._r[3148]!, [_0]) } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3148]!, self._r[3148]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3149]!, self._r[3149]!, [_1, _2]) } - public var NewContact_Title: String { return self._s[3149]! } + public var NewContact_Title: String { return self._s[3150]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3150]!, self._r[3150]!, [_0]) + return formatWithArgumentRanges(self._s[3151]!, self._r[3151]!, [_0]) } - public var Conversation_ViewContactDetails: String { return self._s[3151]! } + public var Conversation_ViewContactDetails: String { return self._s[3152]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3153]!, self._r[3153]!, [_1]) + return formatWithArgumentRanges(self._s[3154]!, self._r[3154]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3154]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3155]! } - public var PrivacySettings_Title: String { return self._s[3156]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3159]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[3160]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[3161]! } - public var Contacts_PhoneNumber: String { return self._s[3162]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3164]! } - public var Map_ShowPlaces: String { return self._s[3165]! } - public var ChatAdmins_Title: String { return self._s[3166]! } - public var InstantPage_Reference: String { return self._s[3168]! } - public var Wallet_Info_Updating: String { return self._s[3169]! } - public var ReportGroupLocation_Text: String { return self._s[3170]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3155]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3156]! } + public var PrivacySettings_Title: String { return self._s[3157]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3160]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[3161]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[3162]! } + public var Contacts_PhoneNumber: String { return self._s[3163]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3165]! } + public var Map_ShowPlaces: String { return self._s[3166]! } + public var ChatAdmins_Title: String { return self._s[3167]! } + public var InstantPage_Reference: String { return self._s[3169]! } + public var Wallet_Info_Updating: String { return self._s[3170]! } + public var ReportGroupLocation_Text: String { return self._s[3171]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3171]!, self._r[3171]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3172]!, self._r[3172]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[3172]! } - public var Watch_UserInfo_Block: String { return self._s[3173]! } - public var ChatSettings_Stickers: String { return self._s[3174]! } - public var ChatSettings_DownloadInBackground: String { return self._s[3175]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3176]! } + public var Camera_FlashOff: String { return self._s[3173]! } + public var Watch_UserInfo_Block: String { return self._s[3174]! } + public var ChatSettings_Stickers: String { return self._s[3175]! } + public var ChatSettings_DownloadInBackground: String { return self._s[3176]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3177]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3177]!, self._r[3177]!, [_0]) + return formatWithArgumentRanges(self._s[3178]!, self._r[3178]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[3178]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3179]! } - public var AutoDownloadSettings_Cellular: String { return self._s[3180]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[3181]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3182]! } - public var VoiceOver_MessageContextShare: String { return self._s[3183]! } + public var Settings_ViewPhoto: String { return self._s[3179]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3180]! } + public var AutoDownloadSettings_Cellular: String { return self._s[3181]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[3182]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3183]! } + public var VoiceOver_MessageContextShare: String { return self._s[3184]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_0]) + return formatWithArgumentRanges(self._s[3186]!, self._r[3186]!, [_0]) } - public var Privacy_DeleteDrafts: String { return self._s[3186]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3187]! } + public var Privacy_DeleteDrafts: String { return self._s[3187]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3188]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3188]!, self._r[3188]!, [_0]) + return formatWithArgumentRanges(self._s[3189]!, self._r[3189]!, [_0]) } - public var DialogList_SavedMessagesHelp: String { return self._s[3189]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3190]! } - public var DialogList_SavedMessages: String { return self._s[3191]! } - public var GroupInfo_UpgradeButton: String { return self._s[3192]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3194]! } - public var DialogList_Pin: String { return self._s[3195]! } + public var DialogList_SavedMessagesHelp: String { return self._s[3190]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3191]! } + public var DialogList_SavedMessages: String { return self._s[3192]! } + public var GroupInfo_UpgradeButton: String { return self._s[3193]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3195]! } + public var DialogList_Pin: String { return self._s[3196]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3196]!, self._r[3196]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3197]!, self._r[3197]!, [_0, _1]) } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3197]!, self._r[3197]!, [_0]) + return formatWithArgumentRanges(self._s[3198]!, self._r[3198]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3198]! } - public var UserInfo_NotificationsDisable: String { return self._s[3199]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[3200]! } - public var Paint_Outlined: String { return self._s[3201]! } - public var Activity_PlayingGame: String { return self._s[3202]! } - public var SearchImages_NoImagesFound: String { return self._s[3203]! } - public var SocksProxySetup_ProxyType: String { return self._s[3204]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3206]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3207]! } - public var Settings_AppLanguage: String { return self._s[3208]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3209]! } - public var Common_ChoosePhoto: String { return self._s[3210]! } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3211]! } - public var CallFeedback_ReasonEcho: String { return self._s[3212]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3199]! } + public var UserInfo_NotificationsDisable: String { return self._s[3200]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[3201]! } + public var Paint_Outlined: String { return self._s[3202]! } + public var Activity_PlayingGame: String { return self._s[3203]! } + public var SearchImages_NoImagesFound: String { return self._s[3204]! } + public var SocksProxySetup_ProxyType: String { return self._s[3205]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3207]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3208]! } + public var Settings_AppLanguage: String { return self._s[3209]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3210]! } + public var Common_ChoosePhoto: String { return self._s[3211]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3212]! } + public var CallFeedback_ReasonEcho: String { return self._s[3213]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3213]!, self._r[3213]!, [_1]) + return formatWithArgumentRanges(self._s[3214]!, self._r[3214]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3214]! } - public var PollResults_Collapse: String { return self._s[3215]! } - public var Activity_UploadingVideo: String { return self._s[3216]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3217]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3218]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3219]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3220]! } - public var PUSH_SENDER_YOU: String { return self._s[3221]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3222]! } - public var Checkout_PayWithTouchId: String { return self._s[3223]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3224]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3215]! } + public var PollResults_Collapse: String { return self._s[3216]! } + public var Activity_UploadingVideo: String { return self._s[3217]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3218]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3219]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3220]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3221]! } + public var PUSH_SENDER_YOU: String { return self._s[3222]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3223]! } + public var Checkout_PayWithTouchId: String { return self._s[3224]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3225]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3226]!, self._r[3226]!, [_1]) + return formatWithArgumentRanges(self._s[3227]!, self._r[3227]!, [_1]) } - public var Notifications_ExceptionsNone: String { return self._s[3227]! } + public var Notifications_ExceptionsNone: String { return self._s[3228]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3228]!, self._r[3228]!, [_0]) + return formatWithArgumentRanges(self._s[3229]!, self._r[3229]!, [_0]) } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3229]!, self._r[3229]!, [_1]) + return formatWithArgumentRanges(self._s[3230]!, self._r[3230]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3231]! } - public var Passport_Address_Region: String { return self._s[3234]! } - public var ChatList_DeleteChat: String { return self._s[3235]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3236]! } - public var PhotoEditor_TiltShift: String { return self._s[3237]! } - public var Settings_FAQ_URL: String { return self._s[3238]! } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3239]! } - public var Passport_Language_sl: String { return self._s[3240]! } - public var Settings_PrivacySettings: String { return self._s[3242]! } - public var SharedMedia_TitleLink: String { return self._s[3243]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3244]! } - public var Settings_SetProfilePhoto: String { return self._s[3245]! } - public var Channel_About_Help: String { return self._s[3246]! } - public var Contacts_PermissionsEnable: String { return self._s[3247]! } - public var Wallet_Sending_Title: String { return self._s[3248]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3249]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3250]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3252]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3253]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3254]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3255]! } - public var OldChannels_Title: String { return self._s[3256]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3257]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3259]! } - public var Map_OpenInYandexMaps: String { return self._s[3261]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3262]! } - public var VoiceOver_MessageContextReply: String { return self._s[3263]! } - public var PhotoEditor_SaturationTool: String { return self._s[3265]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3232]! } + public var Passport_Address_Region: String { return self._s[3235]! } + public var ChatList_DeleteChat: String { return self._s[3236]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3237]! } + public var PhotoEditor_TiltShift: String { return self._s[3238]! } + public var Settings_FAQ_URL: String { return self._s[3239]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3240]! } + public var Passport_Language_sl: String { return self._s[3241]! } + public var Settings_PrivacySettings: String { return self._s[3243]! } + public var SharedMedia_TitleLink: String { return self._s[3244]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3245]! } + public var Settings_SetProfilePhoto: String { return self._s[3246]! } + public var Channel_About_Help: String { return self._s[3247]! } + public var Contacts_PermissionsEnable: String { return self._s[3248]! } + public var Wallet_Sending_Title: String { return self._s[3249]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3250]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3251]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3253]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3254]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3255]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3256]! } + public var OldChannels_Title: String { return self._s[3257]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3258]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3260]! } + public var Map_OpenInYandexMaps: String { return self._s[3262]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3263]! } + public var VoiceOver_MessageContextReply: String { return self._s[3264]! } + public var PhotoEditor_SaturationTool: String { return self._s[3266]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3266]!, self._r[3266]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3267]!, self._r[3267]!, [_1, _2]) } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3267]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3268]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3269]! } + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3268]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3269]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3270]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3270]!, self._r[3270]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3271]!, self._r[3271]!, [_1, "\(_2)"]) } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3271]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3273]! } - public var SettingsSearch_Synonyms_Wallet: String { return self._s[3274]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3272]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3274]! } + public var SettingsSearch_Synonyms_Wallet: String { return self._s[3275]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3275]!, self._r[3275]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3276]!, self._r[3276]!, [_1, _2]) } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3276]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3277]! } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3277]!, self._r[3277]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3278]!, self._r[3278]!, [_1, _2, _3]) } - public var WallpaperPreview_PatternTitle: String { return self._s[3278]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[3279]! } - public var Passport_PassportInformation: String { return self._s[3282]! } - public var Theme_Unsupported: String { return self._s[3283]! } - public var WatchRemote_AlertTitle: String { return self._s[3284]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3285]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3287]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3279]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3280]! } + public var Passport_PassportInformation: String { return self._s[3283]! } + public var Theme_Unsupported: String { return self._s[3284]! } + public var WatchRemote_AlertTitle: String { return self._s[3285]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3286]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3288]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3288]!, self._r[3288]!, [_0]) + return formatWithArgumentRanges(self._s[3289]!, self._r[3289]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3289]!, self._r[3289]!, [_1]) + return formatWithArgumentRanges(self._s[3290]!, self._r[3290]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3290]! } - public var Wallet_Navigation_Done: String { return self._s[3292]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3293]! } - public var AccessDenied_CameraDisabled: String { return self._s[3294]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3291]! } + public var Wallet_Navigation_Done: String { return self._s[3293]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3294]! } + public var AccessDenied_CameraDisabled: String { return self._s[3295]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3295]!, self._r[3295]!, [_0]) + return formatWithArgumentRanges(self._s[3296]!, self._r[3296]!, [_0]) } - public var ClearCache_Forever: String { return self._s[3296]! } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3297]! } - public var CreatePoll_Quiz: String { return self._s[3298]! } - public var PhotoEditor_ContrastTool: String { return self._s[3301]! } + public var ClearCache_Forever: String { return self._s[3297]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3298]! } + public var CreatePoll_Quiz: String { return self._s[3299]! } + public var PhotoEditor_ContrastTool: String { return self._s[3302]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3302]!, self._r[3302]!, [_1]) + return formatWithArgumentRanges(self._s[3303]!, self._r[3303]!, [_1]) } - public var DialogList_Draft: String { return self._s[3303]! } - public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3304]! } - public var Privacy_TopPeersDelete: String { return self._s[3306]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3307]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3308]! } - public var WebSearch_RecentSectionClear: String { return self._s[3309]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3310]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3312]! } - public var Common_Done: String { return self._s[3314]! } - public var Shortcut_SwitchAccount: String { return self._s[3315]! } - public var AuthSessions_EmptyText: String { return self._s[3316]! } - public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3317]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3318]! } - public var Tour_Title5: String { return self._s[3319]! } - public var Wallet_Settings_Title: String { return self._s[3320]! } + public var DialogList_Draft: String { return self._s[3304]! } + public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3305]! } + public var Privacy_TopPeersDelete: String { return self._s[3307]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3308]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3309]! } + public var WebSearch_RecentSectionClear: String { return self._s[3310]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3311]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3313]! } + public var Common_Done: String { return self._s[3315]! } + public var Shortcut_SwitchAccount: String { return self._s[3316]! } + public var AuthSessions_EmptyText: String { return self._s[3317]! } + public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3318]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3319]! } + public var Tour_Title5: String { return self._s[3320]! } + public var Wallet_Settings_Title: String { return self._s[3321]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3321]!, self._r[3321]!, [_0]) + return formatWithArgumentRanges(self._s[3322]!, self._r[3322]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3322]! } - public var Conversation_LinkDialogSave: String { return self._s[3323]! } - public var GroupInfo_ActionRestrict: String { return self._s[3324]! } - public var Checkout_Title: String { return self._s[3325]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3327]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3329]! } - public var Notification_RenamedGroup: String { return self._s[3330]! } - public var PeopleNearby_Groups: String { return self._s[3331]! } - public var Checkout_PayWithFaceId: String { return self._s[3332]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3333]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3335]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3336]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3337]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3323]! } + public var Conversation_LinkDialogSave: String { return self._s[3324]! } + public var GroupInfo_ActionRestrict: String { return self._s[3325]! } + public var Checkout_Title: String { return self._s[3326]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3328]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3330]! } + public var Notification_RenamedGroup: String { return self._s[3331]! } + public var PeopleNearby_Groups: String { return self._s[3332]! } + public var Checkout_PayWithFaceId: String { return self._s[3333]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3334]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3336]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3337]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3338]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3338]!, self._r[3338]!, [_0]) + return formatWithArgumentRanges(self._s[3339]!, self._r[3339]!, [_0]) } - public var Profile_AddToExisting: String { return self._s[3340]! } + public var Profile_AddToExisting: String { return self._s[3341]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3341]!, self._r[3341]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3342]!, self._r[3342]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3343]! } - public var Permissions_PrivacyPolicy: String { return self._s[3344]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3345]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3346]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3348]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3350]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3351]! } + public var Cache_Files: String { return self._s[3344]! } + public var Permissions_PrivacyPolicy: String { return self._s[3345]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3346]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3347]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3349]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3351]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3352]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _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 Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3353]! } - public var VoiceOver_AttachMedia: String { return self._s[3356]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3357]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3354]! } + public var VoiceOver_AttachMedia: String { return self._s[3357]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3358]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3358]!, self._r[3358]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3359]!, self._r[3359]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3359]! } - public var Conversation_SetReminder_Title: String { return self._s[3360]! } - public var Passport_FieldAddressHelp: String { return self._s[3361]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3362]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3363]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3360]! } + public var Conversation_SetReminder_Title: String { return self._s[3361]! } + public var Passport_FieldAddressHelp: String { return self._s[3362]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3363]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3364]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3364]!, self._r[3364]!, [_0]) + return formatWithArgumentRanges(self._s[3365]!, self._r[3365]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3365]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3366]! } - public var Login_UnknownError: String { return self._s[3367]! } - public var Group_UpgradeNoticeText2: String { return self._s[3370]! } - public var Watch_Compose_AddContact: String { return self._s[3371]! } - public var ClearCache_StorageServiceFiles: String { return self._s[3372]! } - public var Web_Error: String { return self._s[3373]! } - public var Gif_Search: String { return self._s[3374]! } - public var Profile_MessageLifetime1h: String { return self._s[3375]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3376]! } - public var Channel_Username_CheckingUsername: String { return self._s[3377]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3378]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3379]! } - public var Channel_AboutItem: String { return self._s[3380]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3382]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3383]! } - public var GroupInfo_SharedMedia: String { return self._s[3384]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3366]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3367]! } + public var Login_UnknownError: String { return self._s[3368]! } + public var Group_UpgradeNoticeText2: String { return self._s[3371]! } + public var Watch_Compose_AddContact: String { return self._s[3372]! } + public var ClearCache_StorageServiceFiles: String { return self._s[3373]! } + public var Web_Error: String { return self._s[3374]! } + public var Gif_Search: String { return self._s[3375]! } + public var Profile_MessageLifetime1h: String { return self._s[3376]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3377]! } + public var Channel_Username_CheckingUsername: String { return self._s[3378]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3379]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3380]! } + public var Channel_AboutItem: String { return self._s[3381]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3383]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3384]! } + public var GroupInfo_SharedMedia: String { return self._s[3385]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3385]!, self._r[3385]!, [_1]) + return formatWithArgumentRanges(self._s[3386]!, self._r[3386]!, [_1]) } - public var Call_PhoneCallInProgressMessage: String { return self._s[3386]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3387]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3387]!, self._r[3387]!, [_1]) + return formatWithArgumentRanges(self._s[3388]!, self._r[3388]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3388]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3389]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3390]! } - public var CreatePoll_AddOption: String { return self._s[3391]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3392]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3393]! } - public var Channel_Management_AddModerator: String { return self._s[3394]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3395]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3396]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3397]! } - public var Theme_Colors_Background: String { return self._s[3398]! } - public var NotificationsSound_Hello: String { return self._s[3400]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3401]! } - public var Channel_Stickers_Placeholder: String { return self._s[3403]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3389]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3390]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3391]! } + public var CreatePoll_AddOption: String { return self._s[3392]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3393]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3394]! } + public var Channel_Management_AddModerator: String { return self._s[3395]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3396]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3397]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3398]! } + public var Theme_Colors_Background: String { return self._s[3399]! } + public var NotificationsSound_Hello: String { return self._s[3401]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3402]! } + public var Channel_Stickers_Placeholder: String { return self._s[3404]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3404]!, self._r[3404]!, [_0]) + return formatWithArgumentRanges(self._s[3405]!, self._r[3405]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3405]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3406]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3407]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3408]! } - public var AutoDownloadSettings_Channels: String { return self._s[3409]! } - public var Passport_Language_mn: String { return self._s[3410]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3413]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3414]! } - public var Passport_Language_ja: String { return self._s[3416]! } - public var Settings_About_Title: String { return self._s[3417]! } - public var Settings_NotificationsAndSounds: String { return self._s[3418]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3419]! } - public var Settings_BlockedUsers: String { return self._s[3420]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3406]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3407]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3408]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3409]! } + public var AutoDownloadSettings_Channels: String { return self._s[3410]! } + public var Passport_Language_mn: String { return self._s[3411]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3414]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3415]! } + public var Passport_Language_ja: String { return self._s[3417]! } + public var Settings_About_Title: String { return self._s[3418]! } + public var Settings_NotificationsAndSounds: String { return self._s[3419]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3420]! } + public var Settings_BlockedUsers: String { return self._s[3421]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3421]!, self._r[3421]!, [_0]) + return formatWithArgumentRanges(self._s[3422]!, self._r[3422]!, [_0]) } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3422]! } - public var Wallet_Weekday_Today: String { return self._s[3423]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3424]! } - public var Widget_ApplicationLocked: String { return self._s[3425]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3426]! } - public var Channel_Username_Title: String { return self._s[3427]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3423]! } + public var Wallet_Weekday_Today: String { return self._s[3424]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3425]! } + public var Widget_ApplicationLocked: String { return self._s[3426]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3427]! } + public var Channel_Username_Title: String { return self._s[3428]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3428]!, self._r[3428]!, [_0]) + return formatWithArgumentRanges(self._s[3429]!, self._r[3429]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3430]! } - public var AppleWatch_Title: String { return self._s[3431]! } - public var Activity_RecordingVideoMessage: String { return self._s[3432]! } + public var AttachmentMenu_File: String { return self._s[3431]! } + public var AppleWatch_Title: String { return self._s[3432]! } + public var Activity_RecordingVideoMessage: String { return self._s[3433]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3433]!, self._r[3433]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3434]!, self._r[3434]!, [_1, _2]) } - public var Theme_Colors_Messages: String { return self._s[3434]! } - public var Weekday_Saturday: String { return self._s[3435]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3436]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3437]! } - public var Common_Next: String { return self._s[3439]! } - public var Channel_Stickers_YourStickers: String { return self._s[3441]! } - public var Message_Theme: String { return self._s[3442]! } - public var Call_AudioRouteHeadphones: String { return self._s[3443]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3445]! } - public var Watch_Contacts_NoResults: String { return self._s[3447]! } - public var PhotoEditor_TintTool: String { return self._s[3450]! } - public var LoginPassword_ResetAccount: String { return self._s[3452]! } - public var Settings_SavedMessages: String { return self._s[3453]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3454]! } - public var Bot_GenericSupportStatus: String { return self._s[3455]! } - public var StickerPack_Add: String { return self._s[3456]! } - public var Checkout_TotalAmount: String { return self._s[3457]! } - public var Your_cards_number_is_invalid: String { return self._s[3458]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3459]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3460]! } + public var Theme_Colors_Messages: String { return self._s[3435]! } + public var Weekday_Saturday: String { return self._s[3436]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3437]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3438]! } + public var Common_Next: String { return self._s[3440]! } + public var Channel_Stickers_YourStickers: String { return self._s[3442]! } + public var Message_Theme: String { return self._s[3443]! } + public var Call_AudioRouteHeadphones: String { return self._s[3444]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3446]! } + public var Watch_Contacts_NoResults: String { return self._s[3448]! } + public var PhotoEditor_TintTool: String { return self._s[3451]! } + public var LoginPassword_ResetAccount: String { return self._s[3453]! } + public var Settings_SavedMessages: String { return self._s[3454]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3455]! } + public var Bot_GenericSupportStatus: String { return self._s[3456]! } + public var StickerPack_Add: String { return self._s[3457]! } + public var Checkout_TotalAmount: String { return self._s[3458]! } + public var Your_cards_number_is_invalid: String { return self._s[3459]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3460]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3461]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3461]!, self._r[3461]!, [_0]) + return formatWithArgumentRanges(self._s[3462]!, self._r[3462]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3462]!, self._r[3462]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3463]!, self._r[3463]!, [_1, _2]) } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3463]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3464]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3465]!, self._r[3465]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3466]!, self._r[3466]!, [_1, _2]) } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3466]!, self._r[3466]!, [_0]) + return formatWithArgumentRanges(self._s[3467]!, self._r[3467]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3467]! } - public var StickerPack_Share: String { return self._s[3468]! } - public var Passport_DeleteAddress: String { return self._s[3469]! } - public var Settings_Passport: String { return self._s[3470]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3471]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3472]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3473]! } - public var Contacts_PermissionsText: String { return self._s[3474]! } - public var Group_Setup_HistoryVisible: String { return self._s[3475]! } - public var Wallet_Month_ShortDecember: String { return self._s[3477]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3478]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3479]! } - public var SocksProxySetup_Title: String { return self._s[3480]! } - public var Notification_Mute1h: String { return self._s[3481]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3468]! } + public var StickerPack_Share: String { return self._s[3469]! } + public var Passport_DeleteAddress: String { return self._s[3470]! } + public var Settings_Passport: String { return self._s[3471]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3472]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3473]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3474]! } + public var Contacts_PermissionsText: String { return self._s[3475]! } + public var Group_Setup_HistoryVisible: String { return self._s[3476]! } + public var Wallet_Month_ShortDecember: String { return self._s[3478]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3479]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3480]! } + public var SocksProxySetup_Title: String { return self._s[3481]! } + public var Notification_Mute1h: String { return self._s[3482]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3482]!, self._r[3482]!, [_0]) + return formatWithArgumentRanges(self._s[3483]!, self._r[3483]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3483]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3484]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3484]!, self._r[3484]!, [_1]) + return formatWithArgumentRanges(self._s[3485]!, self._r[3485]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3485]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3488]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3490]! } - public var DialogList_NoMessagesText: String { return self._s[3491]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3492]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3493]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3495]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3496]! } - public var Common_TakePhotoOrVideo: String { return self._s[3497]! } - public var Wallet_Words_Text: String { return self._s[3498]! } - public var Call_StatusBusy: String { return self._s[3499]! } - public var Conversation_PinnedMessage: String { return self._s[3500]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3501]! } - public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3502]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3503]! } - public var Undo_ChatCleared: String { return self._s[3504]! } - public var AppleWatch_ReplyPresets: String { return self._s[3505]! } - public var Passport_DiscardMessageDescription: String { return self._s[3507]! } - public var Login_NetworkError: String { return self._s[3508]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3486]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3489]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3491]! } + public var DialogList_NoMessagesText: String { return self._s[3492]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3493]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3494]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3496]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3497]! } + public var Common_TakePhotoOrVideo: String { return self._s[3498]! } + public var Wallet_Words_Text: String { return self._s[3499]! } + public var Call_StatusBusy: String { return self._s[3500]! } + public var Conversation_PinnedMessage: String { return self._s[3501]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3502]! } + public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3503]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3504]! } + public var Undo_ChatCleared: String { return self._s[3505]! } + public var AppleWatch_ReplyPresets: String { return self._s[3506]! } + public var Passport_DiscardMessageDescription: String { return self._s[3508]! } + public var Login_NetworkError: String { return self._s[3509]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3509]!, self._r[3509]!, [_0]) - } - public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3510]!, self._r[3510]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3511]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3513]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3514]! } + public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3511]!, self._r[3511]!, [_0]) + } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3512]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3514]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3515]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3516]!, self._r[3516]!, [_0]) + return formatWithArgumentRanges(self._s[3517]!, self._r[3517]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3517]! } - public var VoiceOver_Chat_Music: String { return self._s[3518]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3519]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3521]! } - public var ConversationMedia_Title: String { return self._s[3522]! } - public var EncryptionKey_Title: String { return self._s[3524]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3525]! } - public var Notification_Exceptions_AddException: String { return self._s[3526]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3527]! } - public var Profile_MessageLifetime1m: String { return self._s[3528]! } + public var Call_ConnectionErrorMessage: String { return self._s[3518]! } + public var VoiceOver_Chat_Music: String { return self._s[3519]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3520]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3522]! } + public var ConversationMedia_Title: String { return self._s[3523]! } + public var EncryptionKey_Title: String { return self._s[3525]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3526]! } + public var Notification_Exceptions_AddException: String { return self._s[3527]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3528]! } + public var Profile_MessageLifetime1m: String { return self._s[3529]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3529]!, self._r[3529]!, [_1]) + return formatWithArgumentRanges(self._s[3530]!, self._r[3530]!, [_1]) } - public var Month_GenMay: String { return self._s[3530]! } + public var Month_GenMay: String { return self._s[3531]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3531]!, self._r[3531]!, [_0]) + return formatWithArgumentRanges(self._s[3532]!, self._r[3532]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3532]! } - public var Wallet_Send_AddressInfo: String { return self._s[3533]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3534]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3535]! } + public var PeopleNearby_Users: String { return self._s[3533]! } + public var Wallet_Send_AddressInfo: String { return self._s[3534]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3535]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3536]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3537]!, self._r[3537]!, [_0]) + return formatWithArgumentRanges(self._s[3538]!, self._r[3538]!, [_0]) } - public var Conversation_EmptyPlaceholder: String { return self._s[3538]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3539]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3540]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3541]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3542]! } - public var Channel_JoinChannel: String { return self._s[3544]! } - public var Appearance_Animations: String { return self._s[3547]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3539]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3540]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3541]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3542]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3543]! } + public var Channel_JoinChannel: String { return self._s[3545]! } + public var Appearance_Animations: String { return self._s[3548]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3548]!, self._r[3548]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3549]!, self._r[3549]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3550]! } - public var Appearance_ShareTheme: String { return self._s[3551]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3552]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3554]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3555]! } - public var Passport_Address_Street: String { return self._s[3556]! } - public var Conversation_AddContact: String { return self._s[3557]! } - public var Login_PhonePlaceholder: String { return self._s[3558]! } - public var Channel_Members_InviteLink: String { return self._s[3560]! } - public var Bot_Stop: String { return self._s[3561]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3563]! } - public var Notification_PassportValueAddress: String { return self._s[3564]! } - public var Month_ShortJuly: String { return self._s[3565]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3566]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3567]! } - public var Passport_Identity_ReverseSide: String { return self._s[3568]! } - public var Watch_Stickers_Recents: String { return self._s[3571]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3573]! } - public var Map_SendThisLocation: String { return self._s[3574]! } + public var Stickers_GroupStickers: String { return self._s[3551]! } + public var Appearance_ShareTheme: String { return self._s[3552]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3553]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3555]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3556]! } + public var Passport_Address_Street: String { return self._s[3557]! } + public var Conversation_AddContact: String { return self._s[3558]! } + public var Login_PhonePlaceholder: String { return self._s[3559]! } + public var Channel_Members_InviteLink: String { return self._s[3561]! } + public var Bot_Stop: String { return self._s[3562]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3564]! } + public var Notification_PassportValueAddress: String { return self._s[3565]! } + public var Month_ShortJuly: String { return self._s[3566]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3567]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3568]! } + public var Passport_Identity_ReverseSide: String { return self._s[3569]! } + public var Watch_Stickers_Recents: String { return self._s[3572]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3574]! } + public var Map_SendThisLocation: String { return self._s[3575]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3575]!, self._r[3575]!, [_0]) - } - public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3576]!, self._r[3576]!, [_0]) } - public var ConvertToSupergroup_Note: String { return self._s[3577]! } - public var Wallet_Intro_NotNow: String { return self._s[3578]! } + public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3577]!, self._r[3577]!, [_0]) + } + public var ConvertToSupergroup_Note: String { return self._s[3578]! } + public var Wallet_Intro_NotNow: String { return self._s[3579]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3579]!, self._r[3579]!, [_0]) + return formatWithArgumentRanges(self._s[3580]!, self._r[3580]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3580]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3581]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3581]!, self._r[3581]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3582]!, self._r[3582]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3583]! } - public var Wallpaper_SearchShort: String { return self._s[3584]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3586]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3587]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3588]! } + public var Login_CallRequestState3: String { return self._s[3584]! } + public var Wallpaper_SearchShort: String { return self._s[3585]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3587]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3588]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3589]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3589]!, self._r[3589]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3590]!, self._r[3590]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3590]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3592]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3595]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3591]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3593]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3596]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3596]!, self._r[3596]!, [_0]) + return formatWithArgumentRanges(self._s[3597]!, self._r[3597]!, [_0]) } - public var Passport_CorrectErrors: String { return self._s[3597]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3598]! } + public var Passport_CorrectErrors: String { return self._s[3598]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3599]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3599]!, self._r[3599]!, [_0]) + return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3600]! } - public var Channel_DiscussionGroup: String { return self._s[3601]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3602]! } + public var Map_SendMyCurrentLocation: String { return self._s[3601]! } + public var Channel_DiscussionGroup: String { return self._s[3602]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3603]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3603]!, self._r[3603]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3604]!, self._r[3604]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3604]! } - public var Permissions_NotificationsText_v0: String { return self._s[3605]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3606]! } - public var Appearance_AppIcon: String { return self._s[3607]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3608]! } - public var LoginPassword_FloodError: String { return self._s[3609]! } - public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3611]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3612]! } + public var SharedMedia_SearchNoResults: String { return self._s[3605]! } + public var Permissions_NotificationsText_v0: String { return self._s[3606]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3607]! } + public var Appearance_AppIcon: String { return self._s[3608]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3609]! } + public var LoginPassword_FloodError: String { return self._s[3610]! } + public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3612]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3613]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3613]!, self._r[3613]!, [_0]) + return formatWithArgumentRanges(self._s[3614]!, self._r[3614]!, [_0]) } - public var Passport_Language_bn: String { return self._s[3614]! } + public var Passport_Language_bn: String { return self._s[3615]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3615]!, self._r[3615]!, [_0]) + return formatWithArgumentRanges(self._s[3616]!, self._r[3616]!, [_0]) } - public var ChatList_Context_Pin: String { return self._s[3616]! } + public var ChatList_Context_Pin: String { return self._s[3617]! } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3617]!, self._r[3617]!, [_0]) - } - public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3618]!, self._r[3618]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3619]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3623]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3625]! } - public var Wallet_Month_GenDecember: String { return self._s[3626]! } - public var Contacts_PermissionsAllow: String { return self._s[3627]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3628]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3629]! } - public var WallpaperPreview_Pattern: String { return self._s[3630]! } - public var Paint_Duplicate: String { return self._s[3631]! } - public var Passport_Address_Country: String { return self._s[3632]! } - public var Notification_RenamedChannel: String { return self._s[3634]! } - public var ChatList_Context_Unmute: String { return self._s[3635]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3636]! } - public var Group_MessagePhotoUpdated: String { return self._s[3637]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3638]! } - public var Conversation_ContextMenuBan: String { return self._s[3639]! } - public var TwoStepAuth_EmailSent: String { return self._s[3640]! } - public var MessagePoll_NoVotes: String { return self._s[3641]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3642]! } - public var Passport_Language_is: String { return self._s[3644]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3646]! } - public var Tour_Text5: String { return self._s[3647]! } + public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3619]!, self._r[3619]!, [_0]) + } + public var Wallet_Navigation_Close: String { return self._s[3620]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3624]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3626]! } + public var Wallet_Month_GenDecember: String { return self._s[3627]! } + public var Contacts_PermissionsAllow: String { return self._s[3628]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3629]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3630]! } + public var WallpaperPreview_Pattern: String { return self._s[3631]! } + public var Paint_Duplicate: String { return self._s[3632]! } + public var Passport_Address_Country: String { return self._s[3633]! } + public var Notification_RenamedChannel: String { return self._s[3635]! } + public var ChatList_Context_Unmute: String { return self._s[3636]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3637]! } + public var Group_MessagePhotoUpdated: String { return self._s[3638]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3639]! } + public var Conversation_ContextMenuBan: String { return self._s[3640]! } + public var TwoStepAuth_EmailSent: String { return self._s[3641]! } + public var MessagePoll_NoVotes: String { return self._s[3642]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3643]! } + public var Passport_Language_is: String { return self._s[3645]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3647]! } + public var Tour_Text5: String { return self._s[3648]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3650]!, self._r[3650]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3651]!, self._r[3651]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3651]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3652]! } + public var Undo_SecretChatDeleted: String { return self._s[3652]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3653]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3653]!, self._r[3653]!, [_0]) + return formatWithArgumentRanges(self._s[3654]!, self._r[3654]!, [_0]) } - public var Forward_ErrorDisabledForChat: String { return self._s[3654]! } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3655]! } - public var Paint_Edit: String { return self._s[3657]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3659]! } - public var Undo_DeletedGroup: String { return self._s[3661]! } - public var LoginPassword_ForgotPassword: String { return self._s[3662]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3663]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3664]! } + public var Forward_ErrorDisabledForChat: String { return self._s[3655]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3656]! } + public var Paint_Edit: String { return self._s[3658]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3660]! } + public var Undo_DeletedGroup: String { return self._s[3662]! } + public var LoginPassword_ForgotPassword: String { return self._s[3663]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3664]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3665]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3665]!, self._r[3665]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3666]!, self._r[3666]!, [_0, _1]) } - public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3666]! } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3667]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3668]! } - public var Passport_Language_uz: String { return self._s[3669]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3670]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3671]! } - public var Map_StopLiveLocation: String { return self._s[3673]! } - public var VoiceOver_MessageContextSend: String { return self._s[3675]! } - public var PasscodeSettings_Help: String { return self._s[3676]! } - public var NotificationsSound_Input: String { return self._s[3677]! } - public var Share_Title: String { return self._s[3680]! } - public var LogoutOptions_Title: String { return self._s[3681]! } - public var Wallet_Send_AddressText: String { return self._s[3682]! } - public var Login_TermsOfServiceAgree: String { return self._s[3683]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3684]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3685]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3686]! } - public var EnterPasscode_EnterTitle: String { return self._s[3687]! } + public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3667]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3668]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3669]! } + public var Passport_Language_uz: String { return self._s[3670]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3671]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3672]! } + public var Map_StopLiveLocation: String { return self._s[3674]! } + public var VoiceOver_MessageContextSend: String { return self._s[3676]! } + public var PasscodeSettings_Help: String { return self._s[3677]! } + public var NotificationsSound_Input: String { return self._s[3678]! } + public var Share_Title: String { return self._s[3681]! } + public var LogoutOptions_Title: String { return self._s[3682]! } + public var Wallet_Send_AddressText: String { return self._s[3683]! } + public var Login_TermsOfServiceAgree: String { return self._s[3684]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3685]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3686]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3687]! } + public var EnterPasscode_EnterTitle: String { return self._s[3688]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3688]!, self._r[3688]!, [_0]) + return formatWithArgumentRanges(self._s[3689]!, self._r[3689]!, [_0]) } - public var Settings_CopyPhoneNumber: String { return self._s[3689]! } - public var Conversation_AddToContacts: String { return self._s[3690]! } + public var Settings_CopyPhoneNumber: String { return self._s[3690]! } + public var Conversation_AddToContacts: String { return self._s[3691]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3691]!, self._r[3691]!, [_0]) + return formatWithArgumentRanges(self._s[3692]!, self._r[3692]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[3692]! } + public var NotificationsSound_Keys: String { return self._s[3693]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3693]!, self._r[3693]!, [_0]) + return formatWithArgumentRanges(self._s[3694]!, self._r[3694]!, [_0]) } - public var Notification_MessageLifetime1w: String { return self._s[3694]! } - public var Message_Video: String { return self._s[3695]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3696]! } + public var Notification_MessageLifetime1w: String { return self._s[3695]! } + public var Message_Video: String { return self._s[3696]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3697]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3697]!, self._r[3697]!, [_1]) + return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_1]) } - public var Wallet_Receive_AmountInfo: String { return self._s[3700]! } + public var Wallet_Receive_AmountInfo: String { return self._s[3701]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_0]) - } - public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3702]!, self._r[3702]!, [_0]) } - public var Passport_Language_mk: String { return self._s[3703]! } - public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3704]!, self._r[3704]!, [_1, _2, _3]) + public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3703]!, self._r[3703]!, [_0]) } - public var CreatePoll_CancelConfirmation: String { return self._s[3705]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3706]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3708]! } - public var PrivacyPolicy_Decline: String { return self._s[3709]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3710]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3711]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3712]! } - public var Permissions_SiriAllow_v0: String { return self._s[3714]! } - public var Wallet_Month_ShortAugust: String { return self._s[3715]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3716]! } + public var Passport_Language_mk: String { return self._s[3704]! } + public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3705]!, self._r[3705]!, [_1, _2, _3]) + } + public var CreatePoll_CancelConfirmation: String { return self._s[3706]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3707]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3709]! } + public var PrivacyPolicy_Decline: String { return self._s[3710]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3711]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3712]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3713]! } + public var Permissions_SiriAllow_v0: String { return self._s[3715]! } + public var Wallet_Month_ShortAugust: String { return self._s[3716]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3717]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3717]!, self._r[3717]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3718]!, self._r[3718]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3718]!, self._r[3718]!, [_0]) + return formatWithArgumentRanges(self._s[3719]!, self._r[3719]!, [_0]) } - public var Paint_Regular: String { return self._s[3719]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3720]! } - public var SocksProxySetup_ShareLink: String { return self._s[3721]! } - public var Wallet_Qr_Title: String { return self._s[3722]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3723]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3725]! } - public var Wallet_Settings_Configuration: String { return self._s[3726]! } - public var GroupInfo_InviteByLink: String { return self._s[3727]! } - public var MessageTimer_Custom: String { return self._s[3728]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3729]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3730]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3732]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[3733]! } - public var VoiceOver_Chat_Selected: String { return self._s[3734]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3735]! } - public var Channel_Username_InvalidTaken: String { return self._s[3736]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3737]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3738]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[3739]! } - public var Settings_ChatBackground: String { return self._s[3740]! } - public var Channel_Subscribers_Title: String { return self._s[3741]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3742]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3743]! } - public var Watch_ConnectionDescription: String { return self._s[3744]! } - public var OldChannels_NoticeText: String { return self._s[3747]! } - public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3748]! } - public var IntentsSettings_SuggestBy: String { return self._s[3750]! } - public var Theme_ThemeChangedText: String { return self._s[3751]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[3752]! } - public var Wallpaper_ResetWallpapers: String { return self._s[3753]! } - public var Wallet_Send_TransactionInProgress: String { return self._s[3754]! } - public var EditProfile_Title: String { return self._s[3755]! } - public var NotificationsSound_Bamboo: String { return self._s[3757]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3759]! } - public var Login_SmsRequestState2: String { return self._s[3760]! } - public var Passport_Language_ar: String { return self._s[3761]! } + public var Paint_Regular: String { return self._s[3720]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3721]! } + public var SocksProxySetup_ShareLink: String { return self._s[3722]! } + public var Wallet_Qr_Title: String { return self._s[3723]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3724]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3726]! } + public var Wallet_Settings_Configuration: String { return self._s[3727]! } + public var GroupInfo_InviteByLink: String { return self._s[3728]! } + public var MessageTimer_Custom: String { return self._s[3729]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3730]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3731]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3733]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[3734]! } + public var VoiceOver_Chat_Selected: String { return self._s[3735]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3736]! } + public var Channel_Username_InvalidTaken: String { return self._s[3737]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3738]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3739]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[3740]! } + public var Settings_ChatBackground: String { return self._s[3741]! } + public var Channel_Subscribers_Title: String { return self._s[3742]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3743]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3744]! } + public var Watch_ConnectionDescription: String { return self._s[3745]! } + public var OldChannels_NoticeText: String { return self._s[3748]! } + public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3749]! } + public var IntentsSettings_SuggestBy: String { return self._s[3751]! } + public var Theme_ThemeChangedText: String { return self._s[3752]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[3753]! } + public var Wallpaper_ResetWallpapers: String { return self._s[3754]! } + public var Wallet_Send_TransactionInProgress: String { return self._s[3755]! } + public var EditProfile_Title: String { return self._s[3756]! } + public var NotificationsSound_Bamboo: String { return self._s[3758]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3760]! } + public var Login_SmsRequestState2: String { return self._s[3761]! } + public var Passport_Language_ar: String { return self._s[3762]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3762]!, self._r[3762]!, [_0]) + return formatWithArgumentRanges(self._s[3763]!, self._r[3763]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3763]! } - public var Wallet_Created_Text: String { return self._s[3764]! } - public var Conversation_MessageDialogEdit: String { return self._s[3766]! } - public var Wallet_Created_Proceed: String { return self._s[3767]! } - public var Wallet_Words_Done: String { return self._s[3768]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3769]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3764]! } + public var Wallet_Created_Text: String { return self._s[3765]! } + public var Conversation_MessageDialogEdit: String { return self._s[3767]! } + public var Wallet_Created_Proceed: String { return self._s[3768]! } + public var Wallet_Words_Done: String { return self._s[3769]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3770]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3770]!, self._r[3770]!, [_1]) + return formatWithArgumentRanges(self._s[3771]!, self._r[3771]!, [_1]) } - public var Common_Close: String { return self._s[3771]! } - public var GroupInfo_PublicLink: String { return self._s[3772]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3773]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3774]! } + public var Common_Close: String { return self._s[3772]! } + public var GroupInfo_PublicLink: String { return self._s[3773]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3774]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3775]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3778]!, self._r[3778]!, [_0]) + return formatWithArgumentRanges(self._s[3779]!, self._r[3779]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3779]! } + public var UserInfo_About_Placeholder: String { return self._s[3780]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3780]!, self._r[3780]!, [_0]) + return formatWithArgumentRanges(self._s[3781]!, self._r[3781]!, [_0]) } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[3781]! } - public var Channel_Info_Banned: String { return self._s[3783]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[3782]! } + public var Channel_Info_Banned: String { return self._s[3784]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3784]!, self._r[3784]!, [_0]) + return formatWithArgumentRanges(self._s[3785]!, self._r[3785]!, [_0]) } - public var Appearance_Other: String { return self._s[3785]! } - public var Passport_Language_my: String { return self._s[3786]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3787]! } + public var Appearance_Other: String { return self._s[3786]! } + public var Passport_Language_my: String { return self._s[3787]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3788]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3788]!, self._r[3788]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3789]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3790]! } - public var Preview_CopyAddress: String { return self._s[3791]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3790]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3791]! } + public var Preview_CopyAddress: String { return self._s[3792]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3792]!, self._r[3792]!, [_0]) + return formatWithArgumentRanges(self._s[3793]!, self._r[3793]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3793]! } - public var UserInfo_BotSettings: String { return self._s[3794]! } - public var LiveLocation_MenuStopAll: String { return self._s[3796]! } - public var Passport_PasswordCreate: String { return self._s[3797]! } - public var StickerSettings_MaskContextInfo: String { return self._s[3798]! } - public var Message_PinnedLocationMessage: String { return self._s[3799]! } - public var Map_Satellite: String { return self._s[3800]! } - public var Watch_Message_Unsupported: String { return self._s[3801]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[3802]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3803]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3794]! } + public var UserInfo_BotSettings: String { return self._s[3795]! } + public var LiveLocation_MenuStopAll: String { return self._s[3797]! } + public var Passport_PasswordCreate: String { return self._s[3798]! } + public var StickerSettings_MaskContextInfo: String { return self._s[3799]! } + public var Message_PinnedLocationMessage: String { return self._s[3800]! } + public var Map_Satellite: String { return self._s[3801]! } + public var Watch_Message_Unsupported: String { return self._s[3802]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[3803]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3804]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3804]!, self._r[3804]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3805]!, self._r[3805]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3805]!, self._r[3805]!, [_0]) + return formatWithArgumentRanges(self._s[3806]!, self._r[3806]!, [_0]) } - public var Wallet_WordImport_Continue: String { return self._s[3806]! } + public var Wallet_WordImport_Continue: String { return self._s[3807]! } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3807]!, self._r[3807]!, [_0]) + return formatWithArgumentRanges(self._s[3808]!, self._r[3808]!, [_0]) } - public var Notifications_ChannelNotificationsHelp: String { return self._s[3808]! } - public var Privacy_Calls_P2PContacts: String { return self._s[3809]! } - public var NotificationsSound_None: String { return self._s[3810]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3811]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3813]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[3814]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[3809]! } + public var Privacy_Calls_P2PContacts: String { return self._s[3810]! } + public var NotificationsSound_None: String { return self._s[3811]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3812]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3814]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[3815]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3815]!, self._r[3815]!, [_1]) + return formatWithArgumentRanges(self._s[3816]!, self._r[3816]!, [_1]) } - public var Cache_Indexing: String { return self._s[3816]! } - public var DialogList_RecentTitlePeople: String { return self._s[3818]! } - public var DialogList_EncryptionRejected: String { return self._s[3819]! } - public var GroupInfo_Administrators: String { return self._s[3820]! } - public var Passport_ScanPassportHelp: String { return self._s[3821]! } - public var Application_Name: String { return self._s[3822]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3823]! } - public var Appearance_ThemeCarouselDay: String { return self._s[3825]! } - public var Passport_Identity_TranslationHelp: String { return self._s[3826]! } + public var Cache_Indexing: String { return self._s[3817]! } + public var DialogList_RecentTitlePeople: String { return self._s[3819]! } + public var DialogList_EncryptionRejected: String { return self._s[3820]! } + public var GroupInfo_Administrators: String { return self._s[3821]! } + public var Passport_ScanPassportHelp: String { return self._s[3822]! } + public var Application_Name: String { return self._s[3823]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3824]! } + public var Appearance_ThemeCarouselDay: String { return self._s[3826]! } + public var Passport_Identity_TranslationHelp: String { return self._s[3827]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3827]!, self._r[3827]!, [_0]) - } - public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3828]!, self._r[3828]!, [_0]) } - public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { + public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3829]!, self._r[3829]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3830]! } - public var Privacy_ChatsTitle: String { return self._s[3831]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[3832]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3833]! } - public var Watch_Suggestion_HoldOn: String { return self._s[3834]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3835]! } - public var WebBrowser_Title: String { return self._s[3836]! } - public var Group_LinkedChannel: String { return self._s[3837]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3838]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[3839]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3840]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3841]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[3842]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[3844]! } - public var Channel_Setup_TypePublic: String { return self._s[3846]! } + public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3830]!, self._r[3830]!, [_0]) + } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3831]! } + public var Privacy_ChatsTitle: String { return self._s[3832]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[3833]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3834]! } + public var Watch_Suggestion_HoldOn: String { return self._s[3835]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3836]! } + public var WebBrowser_Title: String { return self._s[3837]! } + public var Group_LinkedChannel: String { return self._s[3838]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3839]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[3840]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3841]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3842]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[3843]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[3845]! } + public var Channel_Setup_TypePublic: String { return self._s[3847]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3847]!, self._r[3847]!, [_0]) + return formatWithArgumentRanges(self._s[3848]!, self._r[3848]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[3849]! } - public var MessagePoll_ViewResults: String { return self._s[3850]! } - public var Map_OpenInMaps: String { return self._s[3852]! } + public var Channel_TypeSetup_Title: String { return self._s[3850]! } + public var MessagePoll_ViewResults: String { return self._s[3851]! } + public var Map_OpenInMaps: String { return self._s[3853]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3853]!, self._r[3853]!, [_1]) + return formatWithArgumentRanges(self._s[3854]!, self._r[3854]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[3855]! } + public var NotificationsSound_Tremolo: String { return self._s[3856]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3856]!, self._r[3856]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3857]!, self._r[3857]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3857]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3858]! } - public var Passport_PasswordHelp: String { return self._s[3859]! } - public var Login_CodeExpiredError: String { return self._s[3860]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3861]! } - public var Conversation_TitleUnmute: String { return self._s[3862]! } - public var Passport_Identity_ScansHelp: String { return self._s[3863]! } - public var Passport_Language_lo: String { return self._s[3864]! } - public var Camera_FlashAuto: String { return self._s[3865]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3866]! } - public var Common_Cancel: String { return self._s[3867]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[3868]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3869]! } - public var Appearance_TintAllColors: String { return self._s[3870]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3858]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3859]! } + public var Passport_PasswordHelp: String { return self._s[3860]! } + public var Login_CodeExpiredError: String { return self._s[3861]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3862]! } + public var Conversation_TitleUnmute: String { return self._s[3863]! } + public var Passport_Identity_ScansHelp: String { return self._s[3864]! } + public var Passport_Language_lo: String { return self._s[3865]! } + public var Camera_FlashAuto: String { return self._s[3866]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3867]! } + public var Common_Cancel: String { return self._s[3868]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[3869]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3870]! } + public var Appearance_TintAllColors: String { return self._s[3871]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3871]!, self._r[3871]!, [_1]) + return formatWithArgumentRanges(self._s[3872]!, self._r[3872]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[3872]! } - public var ChatSettings_Title: String { return self._s[3874]! } - public var Passport_PasswordReset: String { return self._s[3875]! } - public var SocksProxySetup_TypeNone: String { return self._s[3876]! } - public var EditTheme_Title: String { return self._s[3879]! } - public var PhoneNumberHelp_Help: String { return self._s[3880]! } - public var Checkout_EnterPassword: String { return self._s[3881]! } - public var Share_AuthTitle: String { return self._s[3883]! } - public var Activity_UploadingDocument: String { return self._s[3884]! } - public var State_Connecting: String { return self._s[3885]! } - public var Profile_MessageLifetime1w: String { return self._s[3886]! } - public var Conversation_ContextMenuReport: String { return self._s[3887]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3888]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3889]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[3873]! } + public var ChatSettings_Title: String { return self._s[3875]! } + public var Passport_PasswordReset: String { return self._s[3876]! } + public var SocksProxySetup_TypeNone: String { return self._s[3877]! } + public var EditTheme_Title: String { return self._s[3880]! } + public var PhoneNumberHelp_Help: String { return self._s[3881]! } + public var Checkout_EnterPassword: String { return self._s[3882]! } + public var Share_AuthTitle: String { return self._s[3884]! } + public var Activity_UploadingDocument: String { return self._s[3885]! } + public var State_Connecting: String { return self._s[3886]! } + public var Profile_MessageLifetime1w: String { return self._s[3887]! } + public var Conversation_ContextMenuReport: String { return self._s[3888]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3889]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3890]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3890]!, self._r[3890]!, [_0]) + return formatWithArgumentRanges(self._s[3891]!, self._r[3891]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[3891]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[3892]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3894]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3895]! } - public var PhotoEditor_Set: String { return self._s[3896]! } - public var EmptyGroupInfo_Title: String { return self._s[3897]! } - public var Login_PadPhoneHelp: String { return self._s[3898]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3900]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3902]! } - public var NotificationsSound_Complete: String { return self._s[3903]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3904]! } - public var Group_Info_AdminLog: String { return self._s[3905]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3906]! } + public var AuthSessions_Terminate: String { return self._s[3892]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[3893]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3895]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3896]! } + public var PhotoEditor_Set: String { return self._s[3897]! } + public var EmptyGroupInfo_Title: String { return self._s[3898]! } + public var Login_PadPhoneHelp: String { return self._s[3899]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3901]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3903]! } + public var NotificationsSound_Complete: String { return self._s[3904]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3905]! } + public var Group_Info_AdminLog: String { return self._s[3906]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3907]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3907]!, self._r[3907]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3908]!, self._r[3908]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3908]! } - public var Group_Location_CreateInThisPlace: String { return self._s[3910]! } - public var Conversation_Admin: String { return self._s[3911]! } - public var Conversation_GifTooltip: String { return self._s[3912]! } - public var Passport_NotLoggedInMessage: String { return self._s[3913]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3909]! } + public var Group_Location_CreateInThisPlace: String { return self._s[3911]! } + public var Conversation_Admin: String { return self._s[3912]! } + public var Conversation_GifTooltip: String { return self._s[3913]! } + public var Passport_NotLoggedInMessage: String { return self._s[3914]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3915]!, self._r[3915]!, [_0]) + return formatWithArgumentRanges(self._s[3916]!, self._r[3916]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[3916]! } - public var SharedMedia_EmptyTitle: String { return self._s[3918]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3920]! } - public var Username_Help: String { return self._s[3921]! } - public var DialogList_LanguageTooltip: String { return self._s[3923]! } - public var Map_LoadError: String { return self._s[3924]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3925]! } - public var Channel_AdminLog_AddMembers: String { return self._s[3926]! } - public var ArchivedChats_IntroTitle2: String { return self._s[3927]! } - public var Notification_Exceptions_NewException: String { return self._s[3928]! } - public var TwoStepAuth_EmailTitle: String { return self._s[3929]! } - public var WatchRemote_AlertText: String { return self._s[3930]! } + public var Profile_MessageLifetimeForever: String { return self._s[3917]! } + public var SharedMedia_EmptyTitle: String { return self._s[3919]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3921]! } + public var Username_Help: String { return self._s[3922]! } + public var DialogList_LanguageTooltip: String { return self._s[3924]! } + public var Map_LoadError: String { return self._s[3925]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3926]! } + public var Channel_AdminLog_AddMembers: String { return self._s[3927]! } + public var ArchivedChats_IntroTitle2: String { return self._s[3928]! } + public var Notification_Exceptions_NewException: String { return self._s[3929]! } + public var TwoStepAuth_EmailTitle: String { return self._s[3930]! } + public var WatchRemote_AlertText: String { return self._s[3931]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3931]!, self._r[3931]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3932]!, self._r[3932]!, [_1, _2, _3]) } - public var ChatSettings_ConnectionType_Title: String { return self._s[3935]! } - public var WebBrowser_DefaultBrowser: String { return self._s[3936]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[3936]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3937]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3937]!, self._r[3937]!, [_0]) + return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_0]) } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3938]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[3939]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3939]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[3940]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_0]) + return formatWithArgumentRanges(self._s[3941]!, self._r[3941]!, [_0]) } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3941]!, self._r[3941]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3942]!, self._r[3942]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[3942]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3943]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[3945]! } - public var Wallet_Created_ExportErrorText: String { return self._s[3946]! } - public var ChatList_UndoArchiveText1: String { return self._s[3947]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3948]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3949]! } - public var Cache_ClearNone: String { return self._s[3950]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3951]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3952]! } + public var Group_AdminLog_EmptyText: String { return self._s[3943]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3944]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3946]! } + public var Wallet_Created_ExportErrorText: String { return self._s[3947]! } + public var ChatList_UndoArchiveText1: String { return self._s[3948]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3949]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3950]! } + public var Cache_ClearNone: String { return self._s[3951]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3952]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3953]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3953]!, self._r[3953]!, [_0]) + return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_0]) } - public var Passport_Identity_Country: String { return self._s[3954]! } + public var Passport_Identity_Country: String { return self._s[3955]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3955]!, self._r[3955]!, [_0]) - } - public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3956]!, self._r[3956]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[3957]! } - public var AccessDenied_Settings: String { return self._s[3958]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3959]! } - public var Month_ShortMay: String { return self._s[3960]! } - public var Compose_NewGroup: String { return self._s[3962]! } - public var Group_Setup_TypePrivate: String { return self._s[3964]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3966]! } - public var Appearance_ThemeDayClassic: String { return self._s[3967]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3968]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3969]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3970]! } - public var Conversation_typing: String { return self._s[3972]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[3973]! } - public var Paint_Masks: String { return self._s[3974]! } - public var Contacts_DeselectAll: String { return self._s[3975]! } - public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3976]!, self._r[3976]!, [_0]) + public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3957]!, self._r[3957]!, [_0]) } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3977]! } - public var Username_InvalidTaken: String { return self._s[3978]! } - public var Call_StatusNoAnswer: String { return self._s[3979]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3980]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3981]! } - public var Passport_Identity_Selfie: String { return self._s[3982]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3983]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3984]! } - public var Conversation_ClearSecretHistory: String { return self._s[3985]! } - public var PeopleNearby_Description: String { return self._s[3987]! } - public var NetworkUsageSettings_Title: String { return self._s[3988]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3990]! } + public var Exceptions_AddToExceptions: String { return self._s[3958]! } + public var AccessDenied_Settings: String { return self._s[3959]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3960]! } + public var Month_ShortMay: String { return self._s[3961]! } + public var Compose_NewGroup: String { return self._s[3963]! } + public var Group_Setup_TypePrivate: String { return self._s[3965]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3967]! } + public var Appearance_ThemeDayClassic: String { return self._s[3968]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3969]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3970]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3971]! } + public var Conversation_typing: String { return self._s[3973]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[3974]! } + public var Paint_Masks: String { return self._s[3975]! } + public var Contacts_DeselectAll: String { return self._s[3976]! } + public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3977]!, self._r[3977]!, [_0]) + } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3978]! } + public var Username_InvalidTaken: String { return self._s[3979]! } + public var Call_StatusNoAnswer: String { return self._s[3980]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3981]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3982]! } + public var Passport_Identity_Selfie: String { return self._s[3983]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3984]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3985]! } + public var Conversation_ClearSecretHistory: String { return self._s[3986]! } + public var PeopleNearby_Description: String { return self._s[3988]! } + public var NetworkUsageSettings_Title: String { return self._s[3989]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3991]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3992]!, self._r[3992]!, [_0]) + return formatWithArgumentRanges(self._s[3993]!, self._r[3993]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3993]!, self._r[3993]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3994]!, self._r[3994]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[3995]! } - public var VoiceOver_Navigation_Search: String { return self._s[3996]! } - public var Map_LiveLocationTitle: String { return self._s[3997]! } - public var Login_InfoAvatarAdd: String { return self._s[3998]! } - public var Passport_Identity_FilesView: String { return self._s[3999]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[4000]! } - public var Privacy_Calls_NeverAllow: String { return self._s[4001]! } - public var VoiceOver_Chat_File: String { return self._s[4002]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4003]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[3996]! } + public var VoiceOver_Navigation_Search: String { return self._s[3997]! } + public var Map_LiveLocationTitle: String { return self._s[3998]! } + public var Login_InfoAvatarAdd: String { return self._s[3999]! } + public var Passport_Identity_FilesView: String { return self._s[4000]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[4001]! } + public var Privacy_Calls_NeverAllow: String { return self._s[4002]! } + public var VoiceOver_Chat_File: String { return self._s[4003]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4004]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4004]!, self._r[4004]!, [_0]) + return formatWithArgumentRanges(self._s[4005]!, self._r[4005]!, [_0]) } - public var ContactInfo_PhoneNumberHidden: String { return self._s[4005]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[4006]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4007]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[4006]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[4007]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4008]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4008]!, self._r[4008]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4009]!, self._r[4009]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4009]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[4010]! } - public var Tour_Title2: String { return self._s[4011]! } - public var Wallet_Sent_ViewWallet: String { return self._s[4012]! } - public var Conversation_FileOpenIn: String { return self._s[4013]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4014]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4015]! } - public var Wallpaper_Set: String { return self._s[4016]! } - public var Passport_Identity_Translations: String { return self._s[4018]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4010]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[4011]! } + public var Tour_Title2: String { return self._s[4012]! } + public var Wallet_Sent_ViewWallet: String { return self._s[4013]! } + public var Conversation_FileOpenIn: String { return self._s[4014]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4015]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4016]! } + public var Wallpaper_Set: String { return self._s[4017]! } + public var Passport_Identity_Translations: String { return self._s[4019]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4019]!, self._r[4019]!, [_0]) + return formatWithArgumentRanges(self._s[4020]!, self._r[4020]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[4020]! } + public var Channel_LeaveChannel: String { return self._s[4021]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4021]!, self._r[4021]!, [_1]) + return formatWithArgumentRanges(self._s[4022]!, self._r[4022]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4023]! } - public var PhotoEditor_HighlightsTint: String { return self._s[4024]! } - public var MessagePoll_LabelPoll: String { return self._s[4025]! } - public var Passport_Email_Delete: String { return self._s[4026]! } - public var Conversation_Mute: String { return self._s[4028]! } - public var Channel_AddBotAsAdmin: String { return self._s[4029]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[4031]! } - public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4032]! } - public var ChatSettings_IntentsSettings: String { return self._s[4034]! } - public var Channel_Management_LabelOwner: String { return self._s[4035]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4024]! } + public var PhotoEditor_HighlightsTint: String { return self._s[4025]! } + public var MessagePoll_LabelPoll: String { return self._s[4026]! } + public var Passport_Email_Delete: String { return self._s[4027]! } + public var Conversation_Mute: String { return self._s[4029]! } + public var Channel_AddBotAsAdmin: String { return self._s[4030]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[4032]! } + public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4033]! } + public var ChatSettings_IntentsSettings: String { return self._s[4035]! } + public var Channel_Management_LabelOwner: String { return self._s[4036]! } public func Notification_PassportValuesSentMessage(_ _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 Calls_CallTabDescription: String { return self._s[4037]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[4038]! } - public var Common_No: String { return self._s[4039]! } - public var Weekday_Sunday: String { return self._s[4040]! } - public var Notification_Reply: String { return self._s[4041]! } - public var Conversation_ViewMessage: String { return self._s[4042]! } + public var Calls_CallTabDescription: String { return self._s[4038]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[4039]! } + public var Common_No: String { return self._s[4040]! } + public var Weekday_Sunday: String { return self._s[4041]! } + public var Notification_Reply: String { return self._s[4042]! } + public var Conversation_ViewMessage: String { return self._s[4043]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4043]!, self._r[4043]!, [_0]) - } - public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_0]) } + public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4045]!, self._r[4045]!, [_0]) + } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4045]!, self._r[4045]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4046]!, self._r[4046]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4046]! } - public var Wallet_Send_Title: String { return self._s[4047]! } - public var Message_PinnedDocumentMessage: String { return self._s[4048]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[4049]! } - public var DialogList_TabTitle: String { return self._s[4051]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4052]! } - public var Passport_FieldEmail: String { return self._s[4053]! } - public var Conversation_UnpinMessageAlert: String { return self._s[4054]! } - public var Passport_Address_TypeBankStatement: String { return self._s[4055]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[4056]! } - public var Passport_Identity_ExpiryDate: String { return self._s[4057]! } - public var Privacy_Calls_P2P: String { return self._s[4058]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4047]! } + public var Wallet_Send_Title: String { return self._s[4048]! } + public var Message_PinnedDocumentMessage: String { return self._s[4049]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[4050]! } + public var DialogList_TabTitle: String { return self._s[4052]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4053]! } + public var Passport_FieldEmail: String { return self._s[4054]! } + public var Conversation_UnpinMessageAlert: String { return self._s[4055]! } + public var Passport_Address_TypeBankStatement: String { return self._s[4056]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[4057]! } + public var Passport_Identity_ExpiryDate: String { return self._s[4058]! } + public var Privacy_Calls_P2P: String { return self._s[4059]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4060]!, self._r[4060]!, [_0]) + return formatWithArgumentRanges(self._s[4061]!, self._r[4061]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[4061]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[4062]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4062]!, self._r[4062]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4063]!, self._r[4063]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[4063]! } - public var EnterPasscode_ChangeTitle: String { return self._s[4064]! } - public var TwoFactorSetup_Email_Title: String { return self._s[4065]! } - public var Passport_InfoText: String { return self._s[4066]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4067]! } + public var Stickers_ClearRecent: String { return self._s[4064]! } + public var EnterPasscode_ChangeTitle: String { return self._s[4065]! } + public var TwoFactorSetup_Email_Title: String { return self._s[4066]! } + public var Passport_InfoText: String { return self._s[4067]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4068]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4068]!, self._r[4068]!, [_0]) + return formatWithArgumentRanges(self._s[4069]!, self._r[4069]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4069]!, self._r[4069]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4070]!, self._r[4070]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4070]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[4071]! } - public var VoiceOver_Navigation_Compose: String { return self._s[4072]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[4073]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[4075]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4076]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4071]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[4072]! } + public var VoiceOver_Navigation_Compose: String { return self._s[4073]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[4074]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[4076]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4077]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4077]!, self._r[4077]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4078]!, self._r[4078]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4079]! } - public var ChatSettings_OpenLinksIn: String { return self._s[4080]! } - public var Map_HomeAndWorkTitle: String { return self._s[4081]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4080]! } + public var ChatSettings_OpenLinksIn: String { return self._s[4081]! } + public var Map_HomeAndWorkTitle: String { return self._s[4082]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4083]!, self._r[4083]!, [_0]) + return formatWithArgumentRanges(self._s[4084]!, self._r[4084]!, [_0]) } - public var DialogList_Unread: String { return self._s[4084]! } + public var DialogList_Unread: String { return self._s[4085]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4086]!, self._r[4086]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[4086]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4087]! } + public var User_DeletedAccount: String { return self._s[4087]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4088]! } public func Watch_Time_ShortYesterdayAt(_ _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 UserInfo_NotificationsDefault: String { return self._s[4089]! } - public var SharedMedia_CategoryMedia: String { return self._s[4090]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4091]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4092]! } - public var Watch_ChatList_Compose: String { return self._s[4093]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4094]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[4095]! } - public var Watch_Microphone_Access: String { return self._s[4096]! } - public var Group_Setup_HistoryHeader: String { return self._s[4097]! } - public var Map_SetThisLocation: String { return self._s[4098]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4099]! } - public var Activity_UploadingPhoto: String { return self._s[4100]! } - public var Conversation_Edit: String { return self._s[4102]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[4103]! } - public var Login_TermsOfServiceDecline: String { return self._s[4104]! } - public var Message_PinnedContactMessage: String { return self._s[4105]! } + public var UserInfo_NotificationsDefault: String { return self._s[4090]! } + public var SharedMedia_CategoryMedia: String { return self._s[4091]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4092]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4093]! } + public var Watch_ChatList_Compose: String { return self._s[4094]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4095]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[4096]! } + public var Watch_Microphone_Access: String { return self._s[4097]! } + public var Group_Setup_HistoryHeader: String { return self._s[4098]! } + public var Map_SetThisLocation: String { return self._s[4099]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4100]! } + public var Activity_UploadingPhoto: String { return self._s[4101]! } + public var Conversation_Edit: String { return self._s[4103]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[4104]! } + public var Login_TermsOfServiceDecline: String { return self._s[4105]! } + public var Message_PinnedContactMessage: String { return self._s[4106]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4106]!, self._r[4106]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4107]!, self._r[4107]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4107]!, self._r[4107]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[4108]!, self._r[4108]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[4108]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4110]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4111]! } + public var Appearance_LargeEmoji: String { return self._s[4109]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4111]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4112]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4113]!, self._r[4113]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[4113]! } - public var Message_PinnedPhotoMessage: String { return self._s[4114]! } - public var Passport_FieldPhone: String { return self._s[4115]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4116]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[4117]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[4119]! } - public var Conversation_Call: String { return self._s[4120]! } - public var Common_TakePhoto: String { return self._s[4122]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4123]! } - public var Wallet_Receive_CommentHeader: String { return self._s[4124]! } - public var Channel_NotificationLoading: String { return self._s[4125]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[4114]! } + public var Message_PinnedPhotoMessage: String { return self._s[4115]! } + public var Passport_FieldPhone: String { return self._s[4116]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4117]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[4118]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[4120]! } + public var Conversation_Call: String { return self._s[4121]! } + public var Common_TakePhoto: String { return self._s[4123]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4124]! } + public var Wallet_Receive_CommentHeader: String { return self._s[4125]! } + public var Channel_NotificationLoading: String { return self._s[4126]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4126]!, self._r[4126]!, [_0]) - } - public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4127]!, self._r[4127]!, [_0]) } + public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4128]!, self._r[4128]!, [_0]) + } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4128]!, self._r[4128]!, [_1]) + return formatWithArgumentRanges(self._s[4129]!, self._r[4129]!, [_1]) } - public var Permissions_SiriTitle_v0: String { return self._s[4129]! } + public var Permissions_SiriTitle_v0: String { return self._s[4130]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4130]!, self._r[4130]!, [_0]) - } - public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4131]!, self._r[4131]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[4132]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[4133]! } - public var ClearCache_FreeSpace: String { return self._s[4134]! } - public var Common_edit: String { return self._s[4135]! } - public var PrivacySettings_AuthSessions: String { return self._s[4136]! } - public var Month_ShortJune: String { return self._s[4137]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4138]! } - public var Call_ReportSend: String { return self._s[4139]! } - public var Watch_LastSeen_JustNow: String { return self._s[4140]! } - public var Notifications_MessageNotifications: String { return self._s[4141]! } - public var WallpaperSearch_ColorGreen: String { return self._s[4142]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4144]! } - public var Group_Status: String { return self._s[4145]! } + public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4132]!, self._r[4132]!, [_0]) + } + public var Channel_MessagePhotoRemoved: String { return self._s[4133]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[4134]! } + public var ClearCache_FreeSpace: String { return self._s[4135]! } + public var Common_edit: String { return self._s[4136]! } + public var PrivacySettings_AuthSessions: String { return self._s[4137]! } + public var Month_ShortJune: String { return self._s[4138]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4139]! } + public var Call_ReportSend: String { return self._s[4140]! } + public var Watch_LastSeen_JustNow: String { return self._s[4141]! } + public var Notifications_MessageNotifications: String { return self._s[4142]! } + public var WallpaperSearch_ColorGreen: String { return self._s[4143]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4145]! } + public var Group_Status: String { return self._s[4146]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4146]!, self._r[4146]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4147]!, self._r[4147]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[4147]! } - public var ShareMenu_ShareTo: String { return self._s[4148]! } - public var Conversation_Moderate_Ban: String { return self._s[4149]! } + public var TextFormat_AddLinkTitle: String { return self._s[4148]! } + public var ShareMenu_ShareTo: String { return self._s[4149]! } + public var Conversation_Moderate_Ban: String { return self._s[4150]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4150]!, self._r[4150]!, [_0]) + return formatWithArgumentRanges(self._s[4151]!, self._r[4151]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[4151]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4152]! } + public var SharedMedia_ViewInChat: String { return self._s[4152]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4153]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_1]) + return formatWithArgumentRanges(self._s[4154]!, self._r[4154]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4154]!, self._r[4154]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4156]!, self._r[4156]!, [_0]) + return formatWithArgumentRanges(self._s[4157]!, self._r[4157]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[4157]! } - public var Appearance_ReduceMotion: String { return self._s[4158]! } + public var Map_OpenInHereMaps: String { return self._s[4158]! } + public var Appearance_ReduceMotion: String { return self._s[4159]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4159]!, self._r[4159]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4160]!, self._r[4160]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[4160]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[4161]! } - public var PhotoEditor_Skip: String { return self._s[4162]! } - public func MuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveStickerCount(_ 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 ChatList_SelectedChats(_ 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 MessageTimer_ShortDays(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeleteConfirmation(_ 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 MessageTimer_ShortSeconds(_ 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 VoiceOver_Chat_PollVotes(_ 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 Notification_GameScoreExtended(_ 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 CreatePoll_AddMoreOptions(_ 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 Notification_GameScoreSelfSimple(_ 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 Notifications_ExceptionMuteExpires_Days(_ 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 MessageTimer_Minutes(_ 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 ForwardedGifs(_ 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 var Channel_Setup_TypePublicHelp: String { return self._s[4161]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[4162]! } + public var PhotoEditor_Skip: String { return self._s[4163]! } + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, _1, _2) } public func ForwardedPolls(_ 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) + return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + public func Invitation_Members(_ 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) + return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessagePoll_VotedCount(_ value: Int32) -> String { + public func Call_ShortSeconds(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_SharePhoto(_ value: Int32) -> String { + public func MuteFor_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { + public func Notification_GameScoreSimple(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[5 * 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[6 * 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[18 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_MinutesAgo(_ 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 MuteExpires_Hours(_ 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 Chat_DeleteMessagesConfirmation(_ 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_VIDEOS(_ 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 MuteFor_Hours(_ 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 ForwardedMessages(_ 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 ForwardedPhotos(_ 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 Call_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_LiveLocationMembersCount(_ 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 Contacts_ImportersCount(_ 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 SharedMedia_DeleteItemsConfirmation(_ 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 ForwardedContacts(_ 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 Wallet_Updated_HoursAgo(_ 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 Wallpaper_DeleteConfirmation(_ 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 LiveLocationUpdated_MinutesAgo(_ 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 Call_ShortMinutes(_ 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 ServiceMessage_GameScoreSelfExtended(_ 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 VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Conversation_StatusOnline(_ 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 Watch_UserInfo_Mute(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func InviteText_ContactsCountText(_ 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) + return String(format: self._ps[7 * 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[8 * 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[9 * 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[10 * 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[11 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PrivacyLastSeenSettings_AddUsers(_ 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 ForwardedContacts(_ 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 PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func SharedMedia_Generic(_ 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 ForwardedPhotos(_ 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 ForwardedGifs(_ 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 AttachmentMenu_SendVideo(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[19 * 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[20 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[21 * 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[22 * 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[23 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Weeks(_ 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 SharedMedia_File(_ 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 ForwardedStickers(_ 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 PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Map_ETAHours(_ 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 OldChannels_InactiveMonth(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeletedChats(_ 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 MessageTimer_Years(_ 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 MuteFor_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortMinutes(_ 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_Photo(_ 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 Wallpaper_DeleteConfirmation(_ 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 Theme_UsersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[41 * 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[42 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Video(_ value: Int32) -> String { + public func Contacts_ImportersCount(_ 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 AttachmentMenu_SendPhoto(_ value: Int32) -> String { + public func InviteText_ContactsCountText(_ 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) @@ -4912,389 +4908,394 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_Exceptions(_ value: Int32) -> String { + public func Call_ShortMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, _1, _2) } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Weeks(_ value: Int32) -> String { + public func Watch_UserInfo_Mute(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 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[51 * 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[52 * 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[53 * 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[54 * 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[55 * 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[56 * 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[57 * 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[58 * 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[59 * 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[60 * 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[61 * 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[62 * 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[63 * 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[64 * 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[65 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedStickers(_ 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 GroupInfo_ShowMoreMembers(_ 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 Conversation_SelectedMessages(_ 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 Notification_GameScoreSelfExtended(_ 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 PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[73 * 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[74 * 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[75 * 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[76 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[49 * 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[77 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) } - public func PollResults_ShowMore(_ value: Int32) -> String { + public func Media_ShareVideo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) } - public func OldChannels_InactiveMonth(_ value: Int32) -> String { + public func MessageTimer_Minutes(_ 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) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: 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[80 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, _1, _2) } - public func SharedMedia_Link(_ value: Int32) -> String { + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[54 * 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[82 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + public func Call_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[55 * 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[84 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) } - public func UserCount(_ value: Int32) -> String { + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) } - public func Map_ETAHours(_ value: Int32) -> String { + public func ChatList_SelectedChats(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_ShortHours(_ 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 StickerPack_AddMaskCount(_ 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 Call_Seconds(_ 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 ForwardedVideos(_ 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 Conversation_StatusMembers(_ 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 StickerPack_AddStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[58 * 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[96 * 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[97 * 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[98 * 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[99 * 6 + Int(form.rawValue)]!, _0, _1) + return String(format: self._ps[59 * 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[100 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) } - public func Contacts_InviteContacts(_ value: Int32) -> String { + public func ForwardedVideoMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[61 * 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[102 * 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[103 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, _1, _2) } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_ShortSeconds(_ value: Int32) -> String { + public func AttachmentMenu_SendItem(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Months(_ 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[107 * 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[108 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Map_ETAMinutes(_ 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 MessageTimer_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 QuickSend_Photos(_ 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) + return String(format: self._ps[65 * 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[112 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { + public func PollResults_ShowMore(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedAudios(_ value: Int32) -> String { + public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[68 * 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[115 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteFor_Days(_ value: Int32) -> String { + public func Notifications_Exceptions(_ 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) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) } - public func LastSeen_HoursAgo(_ value: Int32) -> String { + public func SharedMedia_Video(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { + public func Notification_GameScoreExtended(_ 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) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ 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[120 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Conversation_SelectedMessages(_ 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 StickerPack_StickerCount(_ 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) + return String(format: self._ps[76 * 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[77 * 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[78 * 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[79 * 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[80 * 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[81 * 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[82 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 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[84 * 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[85 * 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[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollOptionCount(_ 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 Call_Seconds(_ 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_HoursAgo(_ 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 ForwardedVideos(_ 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 OldChannels_InactiveWeek(_ 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 Conversation_StatusOnline(_ 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 MessageTimer_Seconds(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 UserCount(_ 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 Conversation_LiveLocationMembersCount(_ 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 MessageTimer_ShortDays(_ 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 Conversation_StatusSubscribers(_ 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 MessageTimer_ShortHours(_ 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 StickerPack_RemoveStickerCount(_ 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 VoiceOver_Chat_PollVotes(_ 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 SharedMedia_DeleteItemsConfirmation(_ 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 StickerPack_AddMaskCount(_ 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 ServiceMessage_GameScoreSelfExtended(_ 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 Chat_DeleteMessagesConfirmation(_ 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 OldChannels_GroupFormat(_ 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) + return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) } - public func Media_ShareItem(_ value: Int32) -> String { + public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[108 * 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[109 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func AttachmentMenu_SendGif(_ 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 MessageTimer_ShortWeeks(_ 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 MessagePoll_VotedCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortSeconds(_ 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 AttachmentMenu_SendPhoto(_ 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 QuickSend_Photos(_ 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_Months(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func OldChannels_Leave(_ 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 Notification_GameScoreSelfExtended(_ 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 GroupInfo_ParticipantCount(_ 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 Contacts_InviteContacts(_ 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 PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ServiceMessage_GameScoreSimple(_ 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 SharedMedia_Photo(_ value: Int32) -> String { + public func MuteExpires_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[124 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedLocations(_ value: Int32) -> String { + public func Conversation_StatusMembers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/TelegramUI/ChatPinnedMessageTitlePanelNode.swift b/submodules/TelegramUI/TelegramUI/ChatPinnedMessageTitlePanelNode.swift index e89377d3c9..96052f5d0b 100644 --- a/submodules/TelegramUI/TelegramUI/ChatPinnedMessageTitlePanelNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatPinnedMessageTitlePanelNode.swift @@ -211,8 +211,13 @@ final class ChatPinnedMessageTitlePanelNode: ChatTitleAccessoryPanelNode { imageDimensions = representation.dimensions.cgSize } break - } else if let _ = media as? TelegramMediaPoll { - titleString = strings.Conversation_PinnedPoll + } else if let poll = media as? TelegramMediaPoll { + switch poll.kind { + case .poll: + titleString = strings.Conversation_PinnedPoll + case .quiz: + titleString = strings.Conversation_PinnedQuiz + } } } diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping index 7adbe8a6e4e7f15e6e162ac5d7527016541fb600..0aedd8b408bd15f8fcb7fbf646f700074a5647a2 100644 GIT binary patch delta 21907 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 G{Qn29;C%Z4 delta 21970 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 PSSi1y2_+lNrMmwIE9_EP diff --git a/submodules/WalletUI/Resources/WalletStrings.mapping b/submodules/WalletUI/Resources/WalletStrings.mapping index 589c6fe85e4fa03a50b6adefffe67915bd39bf1c..9f7c34892095545bdfb3f1e1871a24394137ff12 100644 GIT binary patch delta 17 YcmX@$c))Q(i^Al^3bKrhlN%M}070t;9smFU delta 40 vcmX@$c))Q(i-L?e0|P^NVopwKiC$ String { + public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = walletStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = walletStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) From ac30ca49cd9cfe1d084c822322b825670eea74e7 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Sat, 18 Jan 2020 00:16:43 +0400 Subject: [PATCH 47/63] Extend .excludeChannels to recent peers --- .../Sources/ChatListControllerNode.swift | 1 + .../Sources/ChatListSearchContainerNode.swift | 22 ++++++++++++++----- .../PeerSelectionControllerNode.swift | 2 ++ 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/submodules/ChatListUI/Sources/ChatListControllerNode.swift b/submodules/ChatListUI/Sources/ChatListControllerNode.swift index 6065cc3b7c..3dd78330a6 100644 --- a/submodules/ChatListUI/Sources/ChatListControllerNode.swift +++ b/submodules/ChatListUI/Sources/ChatListControllerNode.swift @@ -244,6 +244,7 @@ final class ChatListControllerNode: ASDisplayNode { self.searchDisplayController = SearchDisplayController(presentationData: self.presentationData, contentNode: ChatListSearchContainerNode(context: self.context, filter: [], groupId: self.groupId, openPeer: { [weak self] peer, dismissSearch in self?.requestOpenPeerFromSearch?(peer, dismissSearch) + }, openDisabledPeer: { _ in }, openRecentPeerOptions: { [weak self] peer in self?.requestOpenRecentPeerOptions?(peer) }, openMessage: { [weak self] peer, messageId in diff --git a/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift b/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift index 22e250ef4a..79fa26f3f7 100644 --- a/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift +++ b/submodules/ChatListUI/Sources/ChatListSearchContainerNode.swift @@ -81,7 +81,7 @@ private enum ChatListRecentEntry: Comparable, Identifiable { } } - func item(context: AccountContext, presentationData: ChatListPresentationData, filter: ChatListNodePeersFilter, peerSelected: @escaping (Peer) -> Void, peerContextAction: ((Peer, ChatListSearchContextActionSource, ASDisplayNode, ContextGesture?) -> Void)?, clearRecentlySearchedPeers: @escaping () -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, deletePeer: @escaping (PeerId) -> Void) -> ListViewItem { + func item(context: AccountContext, presentationData: ChatListPresentationData, filter: ChatListNodePeersFilter, peerSelected: @escaping (Peer) -> Void, disaledPeerSelected: @escaping (Peer) -> Void, peerContextAction: ((Peer, ChatListSearchContextActionSource, ASDisplayNode, ContextGesture?) -> Void)?, clearRecentlySearchedPeers: @escaping () -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, deletePeer: @escaping (PeerId) -> Void) -> ListViewItem { switch self { case let .topPeers(peers, theme, strings): return ChatListRecentPeersListItem(theme: theme, strings: strings, context: context, peers: peers, peerSelected: { peer in @@ -133,6 +133,12 @@ private enum ChatListRecentEntry: Comparable, Identifiable { } } + if filter.contains(.excludeChannels) { + if let channel = primaryPeer as? TelegramChannel, case .broadcast = channel.info { + enabled = false + } + } + let status: ContactsPeerItemStatus if let user = primaryPeer as? TelegramUser { let servicePeer = isServicePeer(primaryPeer) @@ -181,6 +187,10 @@ private enum ChatListRecentEntry: Comparable, Identifiable { if let chatPeer = peer.peer.peers[peer.peer.peerId] { peerSelected(chatPeer) } + }, disabledAction: { _ in + if let chatPeer = peer.peer.peers[peer.peer.peerId] { + disaledPeerSelected(chatPeer) + } }, setPeerIdWithRevealedOptions: setPeerIdWithRevealedOptions, deletePeer: deletePeer, contextAction: peerContextAction.flatMap { peerContextAction in return { node, gesture in if let chatPeer = peer.peer.peers[peer.peer.peerId] { @@ -501,12 +511,12 @@ public struct ChatListSearchContainerTransition { } } -private func chatListSearchContainerPreparedRecentTransition(from fromEntries: [ChatListRecentEntry], to toEntries: [ChatListRecentEntry], context: AccountContext, presentationData: ChatListPresentationData, filter: ChatListNodePeersFilter, peerSelected: @escaping (Peer) -> Void, peerContextAction: ((Peer, ChatListSearchContextActionSource, ASDisplayNode, ContextGesture?) -> Void)?, clearRecentlySearchedPeers: @escaping () -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, deletePeer: @escaping (PeerId) -> Void) -> ChatListSearchContainerRecentTransition { +private func chatListSearchContainerPreparedRecentTransition(from fromEntries: [ChatListRecentEntry], to toEntries: [ChatListRecentEntry], context: AccountContext, presentationData: ChatListPresentationData, filter: ChatListNodePeersFilter, peerSelected: @escaping (Peer) -> Void, disaledPeerSelected: @escaping (Peer) -> Void, peerContextAction: ((Peer, ChatListSearchContextActionSource, ASDisplayNode, ContextGesture?) -> Void)?, clearRecentlySearchedPeers: @escaping () -> Void, setPeerIdWithRevealedOptions: @escaping (PeerId?, PeerId?) -> Void, deletePeer: @escaping (PeerId) -> Void) -> ChatListSearchContainerRecentTransition { let (deleteIndices, indicesAndItems, updateIndices) = mergeListsStableWithUpdates(leftList: fromEntries, rightList: toEntries) let deletions = deleteIndices.map { ListViewDeleteItem(index: $0, directionHint: nil) } - let insertions = indicesAndItems.map { ListViewInsertItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, presentationData: presentationData, filter: filter, peerSelected: peerSelected, peerContextAction: peerContextAction, clearRecentlySearchedPeers: clearRecentlySearchedPeers, setPeerIdWithRevealedOptions: setPeerIdWithRevealedOptions, deletePeer: deletePeer), directionHint: nil) } - let updates = updateIndices.map { ListViewUpdateItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, presentationData: presentationData, filter: filter, peerSelected: peerSelected, peerContextAction: peerContextAction, clearRecentlySearchedPeers: clearRecentlySearchedPeers, setPeerIdWithRevealedOptions: setPeerIdWithRevealedOptions, deletePeer: deletePeer), directionHint: nil) } + let insertions = indicesAndItems.map { ListViewInsertItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, presentationData: presentationData, filter: filter, peerSelected: peerSelected, disaledPeerSelected: disaledPeerSelected, peerContextAction: peerContextAction, clearRecentlySearchedPeers: clearRecentlySearchedPeers, setPeerIdWithRevealedOptions: setPeerIdWithRevealedOptions, deletePeer: deletePeer), directionHint: nil) } + let updates = updateIndices.map { ListViewUpdateItem(index: $0.0, previousIndex: $0.2, item: $0.1.item(context: context, presentationData: presentationData, filter: filter, peerSelected: peerSelected, disaledPeerSelected: disaledPeerSelected, peerContextAction: peerContextAction, clearRecentlySearchedPeers: clearRecentlySearchedPeers, setPeerIdWithRevealedOptions: setPeerIdWithRevealedOptions, deletePeer: deletePeer), directionHint: nil) } return ChatListSearchContainerRecentTransition(deletions: deletions, insertions: insertions, updates: updates) } @@ -615,7 +625,7 @@ public final class ChatListSearchContainerNode: SearchDisplayControllerContentNo private let filter: ChatListNodePeersFilter - public init(context: AccountContext, filter: ChatListNodePeersFilter, groupId: PeerGroupId, openPeer originalOpenPeer: @escaping (Peer, Bool) -> Void, openRecentPeerOptions: @escaping (Peer) -> Void, openMessage originalOpenMessage: @escaping (Peer, MessageId) -> Void, addContact: ((String) -> Void)?, peerContextAction: ((Peer, ChatListSearchContextActionSource, ASDisplayNode, ContextGesture?) -> Void)?) { + public init(context: AccountContext, filter: ChatListNodePeersFilter, groupId: PeerGroupId, openPeer originalOpenPeer: @escaping (Peer, Bool) -> Void, openDisabledPeer: @escaping (Peer) -> Void, openRecentPeerOptions: @escaping (Peer) -> Void, openMessage originalOpenMessage: @escaping (Peer, MessageId) -> Void, addContact: ((String) -> Void)?, peerContextAction: ((Peer, ChatListSearchContextActionSource, ASDisplayNode, ContextGesture?) -> Void)?) { self.context = context self.filter = filter self.dimNode = ASDisplayNode() @@ -1098,6 +1108,8 @@ public final class ChatListSearchContainerNode: SearchDisplayControllerContentNo openPeer(peer, true) let _ = addRecentlySearchedPeer(postbox: context.account.postbox, peerId: peer.id).start() self?.recentListNode.clearHighlightAnimated(true) + }, disaledPeerSelected: { peer in + openDisabledPeer(peer) }, peerContextAction: peerContextAction, clearRecentlySearchedPeers: { self?.clearRecentSearch() diff --git a/submodules/TelegramUI/TelegramUI/PeerSelectionControllerNode.swift b/submodules/TelegramUI/TelegramUI/PeerSelectionControllerNode.swift index b41cc27c8e..45938193a8 100644 --- a/submodules/TelegramUI/TelegramUI/PeerSelectionControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/PeerSelectionControllerNode.swift @@ -216,6 +216,8 @@ final class PeerSelectionControllerNode: ASDisplayNode { if let requestOpenPeerFromSearch = self?.requestOpenPeerFromSearch { requestOpenPeerFromSearch(peer) } + }, openDisabledPeer: { [weak self] peer in + self?.requestOpenDisabledPeer?(peer) }, openRecentPeerOptions: { _ in }, openMessage: { [weak self] peer, messageId in if let requestOpenMessageFromSearch = self?.requestOpenMessageFromSearch { From 9235ff761653cfea1765fe3e3211b69d814c146c Mon Sep 17 00:00:00 2001 From: Ali <> Date: Sun, 19 Jan 2020 01:05:51 +0400 Subject: [PATCH 48/63] Update poll localizations --- Telegram-iOS/en.lproj/Localizable.strings | 10 +- .../Sources/PresentationStrings.swift | 7036 +++++++++-------- .../Sources/ServiceMessageStrings.swift | 15 +- .../ChatMessagePollBubbleContentNode.swift | 2 +- .../Resources/PresentationStrings.mapping | Bin 144206 -> 144339 bytes 5 files changed, 3545 insertions(+), 3518 deletions(-) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index acc869faab..4af86fec1d 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -22,6 +22,10 @@ "PUSH_CHANNEL_MESSAGE_POLL" = "%1$@|posted a poll %2$@"; "PUSH_PINNED_POLL" = "%1$@|pinned a poll"; +"PUSH_MESSAGE_QUIZ" = "%1$@|sent you a quiz %2$@"; +"PUSH_CHANNEL_MESSAGE_QUIZ" = "%1$@|posted a quiz %2$@"; +"PUSH_PINNED_QUIZ" = "%1$@|pinned a quiz"; + "PUSH_CHAT_MESSAGE_TEXT" = "%2$@|%1$@: %3$@"; "PUSH_CHAT_MESSAGE_NOTEXT" = "%2$@|%1$@ sent a message"; "PUSH_CHAT_MESSAGE_PHOTO" = "%2$@|%1$@ sent a photo"; @@ -93,6 +97,7 @@ "PUSH_MESSAGE_GEO" = "%1$@|sent you a map"; "PUSH_MESSAGE_GEOLIVE" = "%1$@|started sharing their live location"; "PUSH_MESSAGE_POLL" = "%1$@|sent you a poll"; +"PUSH_MESSAGE_QUIZ" = "%1$@|sent you a quiz"; "PUSH_MESSAGE_GIF" = "%1$@|sent you a GIF"; "PUSH_MESSAGE_GAME" = "%1$@|invited you to play %2$@"; "PUSH_MESSAGE_INVOICE" = "%1$@|sent you an invoice for %2$@"; @@ -125,6 +130,7 @@ "PUSH_CHANNEL_MESSAGE_GEO" = "%1$@|posted a map"; "PUSH_CHANNEL_MESSAGE_GEOLIVE" = "%1$@|posted a live location"; "PUSH_CHANNEL_MESSAGE_POLL" = "%1$@|posted a poll"; +"PUSH_CHANNEL_MESSAGE_QUIZ" = "%1$@|posted a quiz"; "PUSH_CHANNEL_MESSAGE_GIF" = "%1$@|posted a GIF"; "PUSH_CHANNEL_MESSAGE_GAME" = "%1$@|invited you to play %2$@"; "PUSH_CHANNEL_MESSAGE_FWD" = "%1$@|posted a forwarded message"; @@ -155,6 +161,7 @@ "PUSH_CHAT_MESSAGE_GEO" = "%2$@|%1$@ sent a map"; "PUSH_CHAT_MESSAGE_GEOLIVE" = "%2$@|%1$@ started sharing their live location"; "PUSH_CHAT_MESSAGE_POLL" = "%2$@|%1$@ sent a poll %3$@ to the group"; +"PUSH_CHAT_MESSAGE_QUIZ" = "%2$@|%1$@ sent a quiz %3$@ to the group"; "PUSH_CHAT_MESSAGE_GIF" = "%2$@|%1$@ sent a GIF"; "PUSH_CHAT_MESSAGE_GAME" = "%2$@|%1$@ invited the group to play %3$@"; "PUSH_CHAT_MESSAGE_INVOICE" = "%2$@|%1$@ sent an invoice for %3$@"; @@ -197,6 +204,7 @@ "PUSH_PINNED_GEO" = "%1$@|pinned a map"; "PUSH_PINNED_GEOLIVE" = "%1$@|pinned a live location"; "PUSH_PINNED_POLL" = "|%1$@|pinned a poll %2$@"; +"PUSH_PINNED_QUIZ" = "|%1$@|pinned a quiz %2$@"; "PUSH_PINNED_GAME" = "%1$@|pinned a game"; "PUSH_PINNED_INVOICE" = "%1$@|pinned an invoice"; "PUSH_PINNED_GIF" = "%1$@|pinned a GIF"; @@ -1927,6 +1935,7 @@ "Notification.PinnedContactMessage" = "%@ pinned a contact"; "Notification.PinnedDeletedMessage" = "%@ pinned deleted message"; "Notification.PinnedPollMessage" = "%@ pinned a poll"; +"Notification.PinnedQuizMessage" = "%@ pinned a quiz"; "Message.PinnedTextMessage" = "pinned \"%@\" "; "Message.PinnedPhotoMessage" = "pinned photo"; @@ -1937,7 +1946,6 @@ "Message.PinnedStickerMessage" = "pinned sticker"; "Message.PinnedLocationMessage" = "pinned location"; "Message.PinnedContactMessage" = "pinned contact"; -"Message.PinnedPollMessage" = "pinned poll"; "Notification.PinnedMessage" = "pinned message"; diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index dd3b469226..d4e4d3501b 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -865,4330 +865,4343 @@ public final class PresentationStrings: Equatable { public var VoiceOver_Chat_YourFile: String { return self._s[631]! } public var Map_Hybrid: String { return self._s[632]! } public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[634]! } - public var ChatSettings_AutoDownloadVideos: String { return self._s[636]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[637]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[638]! } - public var SocksProxySetup_ProxyTelegram: String { return self._s[641]! } + public func PUSH_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[635]!, self._r[635]!, [_1]) + } + public var ChatSettings_AutoDownloadVideos: String { return self._s[637]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[638]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[639]! } + public var SocksProxySetup_ProxyTelegram: String { return self._s[642]! } public func PUSH_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[642]!, self._r[642]!, [_1]) + return formatWithArgumentRanges(self._s[643]!, self._r[643]!, [_1]) } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[644]! } - public var ScheduledMessages_ScheduledToday: String { return self._s[645]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[645]! } + public var ScheduledMessages_ScheduledToday: String { return self._s[646]! } public func PUSH_CHAT_TITLE_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[646]!, self._r[646]!, [_1, _2]) + return formatWithArgumentRanges(self._s[647]!, self._r[647]!, [_1, _2]) } - public var Conversation_LiveLocationYou: String { return self._s[647]! } - public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[648]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[649]! } - public var UserInfo_ShareBot: String { return self._s[652]! } + public var Conversation_LiveLocationYou: String { return self._s[648]! } + public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[649]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[650]! } + public var UserInfo_ShareBot: String { return self._s[653]! } public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[653]!, self._r[653]!, [_1, _2]) + return formatWithArgumentRanges(self._s[654]!, self._r[654]!, [_1, _2]) } - public var Conversation_ClearCache: String { return self._s[654]! } - public var PhotoEditor_ShadowsTint: String { return self._s[655]! } - public var Message_Audio: String { return self._s[656]! } - public var Passport_Language_lt: String { return self._s[657]! } + public var Conversation_ClearCache: String { return self._s[655]! } + public var PhotoEditor_ShadowsTint: String { return self._s[656]! } + public var Message_Audio: String { return self._s[657]! } + public var Passport_Language_lt: String { return self._s[658]! } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[658]!, self._r[658]!, [_0]) + return formatWithArgumentRanges(self._s[659]!, self._r[659]!, [_0]) } - public var Permissions_SiriText_v0: String { return self._s[659]! } - public var Conversation_FileICloudDrive: String { return self._s[660]! } - public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[661]! } - public var Notifications_Badge_IncludeMutedChats: String { return self._s[662]! } + public var Permissions_SiriText_v0: String { return self._s[660]! } + public var Conversation_FileICloudDrive: String { return self._s[661]! } + public var ChatList_DeleteForEveryoneConfirmationTitle: String { return self._s[662]! } + public var Notifications_Badge_IncludeMutedChats: String { return self._s[663]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[663]!, self._r[663]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[664]!, self._r[664]!, [_1, _2, _3, _4, _5, _6]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[664]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[665]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[665]!, self._r[665]!, [_0]) + return formatWithArgumentRanges(self._s[666]!, self._r[666]!, [_0]) } - public var Channel_SignMessages: String { return self._s[666]! } + public var Channel_SignMessages: String { return self._s[667]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[667]!, self._r[667]!, [_1]) + return formatWithArgumentRanges(self._s[668]!, self._r[668]!, [_1]) } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[668]! } - public var Passport_ScanPassport: String { return self._s[669]! } - public var Watch_Suggestion_Thanks: String { return self._s[670]! } - public var BlockedUsers_AddNew: String { return self._s[671]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[669]! } + public var Passport_ScanPassport: String { return self._s[670]! } + public var Watch_Suggestion_Thanks: String { return self._s[671]! } + public var BlockedUsers_AddNew: String { return self._s[672]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[672]!, self._r[672]!, [_1, _2]) + return formatWithArgumentRanges(self._s[673]!, self._r[673]!, [_1, _2]) } - public var Watch_Message_Invoice: String { return self._s[673]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[674]! } - public var Month_GenJuly: String { return self._s[675]! } - public var CreatePoll_QuizInfo: String { return self._s[676]! } - public var UserInfo_StartSecretChatStart: String { return self._s[677]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[678]! } - public var IntentsSettings_SuggestByShare: String { return self._s[680]! } - public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[681]! } - public var Notification_ChannelInviterSelf: String { return self._s[682]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[683]! } + public var Watch_Message_Invoice: String { return self._s[674]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[675]! } + public var Month_GenJuly: String { return self._s[676]! } + public var CreatePoll_QuizInfo: String { return self._s[677]! } + public var UserInfo_StartSecretChatStart: String { return self._s[678]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[679]! } + public var IntentsSettings_SuggestByShare: String { return self._s[681]! } + public var Notification_Exceptions_DeleteAllConfirmation: String { return self._s[682]! } + public var Notification_ChannelInviterSelf: String { return self._s[683]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[684]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[684]!, self._r[684]!, [_1, _2]) + return formatWithArgumentRanges(self._s[685]!, self._r[685]!, [_1, _2]) } - public var CheckoutInfo_Title: String { return self._s[685]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[686]! } + public var CheckoutInfo_Title: String { return self._s[686]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[687]! } public func Map_DistanceAway(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[687]!, self._r[687]!, [_0]) + return formatWithArgumentRanges(self._s[688]!, self._r[688]!, [_0]) } - public var Passport_Identity_MainPage: String { return self._s[688]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[689]! } - public var Passport_Language_de: String { return self._s[690]! } - public var Update_Title: String { return self._s[691]! } - public var ContactInfo_PhoneLabelWorkFax: String { return self._s[692]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[693]! } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[694]! } - public var Notifications_ChannelNotificationsPreview: String { return self._s[695]! } - public var NotificationsSound_Telegraph: String { return self._s[696]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[697]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[698]! } + public var Passport_Identity_MainPage: String { return self._s[689]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[690]! } + public var Passport_Language_de: String { return self._s[691]! } + public var Update_Title: String { return self._s[692]! } + public var ContactInfo_PhoneLabelWorkFax: String { return self._s[693]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[694]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[695]! } + public var Notifications_ChannelNotificationsPreview: String { return self._s[696]! } + public var NotificationsSound_Telegraph: String { return self._s[697]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[698]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[699]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[699]!, self._r[699]!, [_0]) + return formatWithArgumentRanges(self._s[700]!, self._r[700]!, [_0]) } - public var ClearCache_Description: String { return self._s[700]! } - public var Stickers_SuggestAll: String { return self._s[701]! } - public var Conversation_ForwardTitle: String { return self._s[702]! } - public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[703]! } + public var ClearCache_Description: String { return self._s[701]! } + public var Stickers_SuggestAll: String { return self._s[702]! } + public var Conversation_ForwardTitle: String { return self._s[703]! } + public var Appearance_ThemePreview_ChatList_7_Name: String { return self._s[704]! } public func Notification_JoinedChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[704]!, self._r[704]!, [_0]) + return formatWithArgumentRanges(self._s[705]!, self._r[705]!, [_0]) } - public var Calls_NewCall: String { return self._s[705]! } - public var Call_StatusEnded: String { return self._s[706]! } - public var AutoDownloadSettings_DataUsageLow: String { return self._s[707]! } - public var Settings_ProxyConnected: String { return self._s[708]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[709]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[710]! } - public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[711]! } - public var Passport_PasswordPlaceholder: String { return self._s[712]! } - public var Message_PinnedInvoice: String { return self._s[713]! } - public var Passport_Identity_IssueDate: String { return self._s[714]! } - public var Passport_Language_pl: String { return self._s[715]! } + public var Calls_NewCall: String { return self._s[706]! } + public var Call_StatusEnded: String { return self._s[707]! } + public var AutoDownloadSettings_DataUsageLow: String { return self._s[708]! } + public var Settings_ProxyConnected: String { return self._s[709]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[710]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[711]! } + public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[712]! } + public var Passport_PasswordPlaceholder: String { return self._s[713]! } + public var Message_PinnedInvoice: String { return self._s[714]! } + public var Passport_Identity_IssueDate: String { return self._s[715]! } + public var Passport_Language_pl: String { return self._s[716]! } public func ChannelInfo_ChannelForbidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[716]!, self._r[716]!, [_0]) + return formatWithArgumentRanges(self._s[717]!, self._r[717]!, [_0]) } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[717]! } - public var Call_StatusConnecting: String { return self._s[718]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[718]! } + public var Call_StatusConnecting: String { return self._s[719]! } public func Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[719]!, self._r[719]!, [_0]) + return formatWithArgumentRanges(self._s[720]!, self._r[720]!, [_0]) } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[721]! } - public var Common_Edit: String { return self._s[722]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[723]! } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[722]! } + public var Common_Edit: String { return self._s[723]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[724]! } public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[724]!, self._r[724]!, [_0]) + return formatWithArgumentRanges(self._s[725]!, self._r[725]!, [_0]) } - public var GroupInfo_ChatAdmins: String { return self._s[725]! } - public var PrivateDataSettings_Title: String { return self._s[726]! } - public var Login_CancelPhoneVerificationStop: String { return self._s[727]! } - public var ChatList_Read: String { return self._s[728]! } - public var Wallet_WordImport_Text: String { return self._s[729]! } - public var Undo_ChatClearedForBothSides: String { return self._s[730]! } - public var GroupPermission_SectionTitle: String { return self._s[731]! } - public var TwoFactorSetup_Intro_Title: String { return self._s[733]! } + public var GroupInfo_ChatAdmins: String { return self._s[726]! } + public var PrivateDataSettings_Title: String { return self._s[727]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[728]! } + public var ChatList_Read: String { return self._s[729]! } + public var Wallet_WordImport_Text: String { return self._s[730]! } + public var Undo_ChatClearedForBothSides: String { return self._s[731]! } + public var GroupPermission_SectionTitle: String { return self._s[732]! } + public var TwoFactorSetup_Intro_Title: String { return self._s[734]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[734]!, self._r[734]!, [_1, _2]) + return formatWithArgumentRanges(self._s[735]!, self._r[735]!, [_1, _2]) } - public var Checkout_ErrorPaymentFailed: String { return self._s[735]! } - public var Update_UpdateApp: String { return self._s[736]! } - public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[737]! } - public var Settings_Appearance: String { return self._s[738]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[742]! } - public var Watch_Location_Access: String { return self._s[743]! } - public var ShareMenu_CopyShareLink: String { return self._s[745]! } - public var TwoStepAuth_SetupHintTitle: String { return self._s[746]! } - public var Conversation_Theme: String { return self._s[748]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[736]! } + public var Update_UpdateApp: String { return self._s[737]! } + public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[738]! } + public var Settings_Appearance: String { return self._s[739]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[743]! } + public var Watch_Location_Access: String { return self._s[744]! } + public var ShareMenu_CopyShareLink: String { return self._s[746]! } + public var TwoStepAuth_SetupHintTitle: String { return self._s[747]! } + public var Conversation_Theme: String { return self._s[749]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[749]!, self._r[749]!, [_0]) + return formatWithArgumentRanges(self._s[750]!, self._r[750]!, [_0]) } - public var Notifications_ClassicTones: String { return self._s[750]! } - public var Weekday_ShortWednesday: String { return self._s[751]! } - public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[752]! } - public var Undo_LeftGroup: String { return self._s[755]! } - public var Wallet_RestoreFailed_Text: String { return self._s[756]! } - public var Conversation_LinkDialogCopy: String { return self._s[757]! } - public var Wallet_TransactionInfo_NoAddress: String { return self._s[759]! } - public var Wallet_Navigation_Back: String { return self._s[760]! } - public var KeyCommand_FocusOnInputField: String { return self._s[761]! } - public var Contacts_SelectAll: String { return self._s[762]! } - public var Preview_SaveToCameraRoll: String { return self._s[763]! } - public var PrivacySettings_PasscodeOff: String { return self._s[764]! } - public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[765]! } - public var Wallpaper_Title: String { return self._s[766]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[767]! } - public var AccessDenied_Camera: String { return self._s[768]! } - public var Watch_Compose_CurrentLocation: String { return self._s[769]! } - public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[771]! } + public var Notifications_ClassicTones: String { return self._s[751]! } + public var Weekday_ShortWednesday: String { return self._s[752]! } + public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[753]! } + public var Undo_LeftGroup: String { return self._s[756]! } + public var Wallet_RestoreFailed_Text: String { return self._s[757]! } + public var Conversation_LinkDialogCopy: String { return self._s[758]! } + public var Wallet_TransactionInfo_NoAddress: String { return self._s[760]! } + public var Wallet_Navigation_Back: String { return self._s[761]! } + public var KeyCommand_FocusOnInputField: String { return self._s[762]! } + public var Contacts_SelectAll: String { return self._s[763]! } + public var Preview_SaveToCameraRoll: String { return self._s[764]! } + public var PrivacySettings_PasscodeOff: String { return self._s[765]! } + public var Appearance_ThemePreview_ChatList_6_Name: String { return self._s[766]! } + public func PUSH_CHANNEL_MESSAGE_QUIZ(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[767]!, self._r[767]!, [_1]) + } + public var Wallpaper_Title: String { return self._s[768]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[769]! } + public var AccessDenied_Camera: String { return self._s[770]! } + public var Watch_Compose_CurrentLocation: String { return self._s[771]! } + public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[773]! } public func SecretImage_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[772]!, self._r[772]!, [_0]) + return formatWithArgumentRanges(self._s[774]!, self._r[774]!, [_0]) } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[773]! } - public var Passport_Language_ro: String { return self._s[774]! } - public var EditTheme_UploadNewTheme: String { return self._s[775]! } - public var CheckoutInfo_SaveInfoHelp: String { return self._s[776]! } - public var Wallet_Intro_Terms: String { return self._s[777]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[775]! } + public var Passport_Language_ro: String { return self._s[776]! } + public var EditTheme_UploadNewTheme: String { return self._s[777]! } + public var CheckoutInfo_SaveInfoHelp: String { return self._s[778]! } + public var Wallet_Intro_Terms: String { return self._s[779]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[778]!, self._r[778]!, [_0]) + return formatWithArgumentRanges(self._s[780]!, self._r[780]!, [_0]) } - public var Login_CancelPhoneVerification: String { return self._s[779]! } - public var State_ConnectingToProxy: String { return self._s[780]! } - public var Calls_RatingTitle: String { return self._s[781]! } - public var Generic_ErrorMoreInfo: String { return self._s[782]! } - public var ChatList_Search_ShowMore: String { return self._s[783]! } - public var Appearance_PreviewReplyText: String { return self._s[784]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[785]! } + public var Login_CancelPhoneVerification: String { return self._s[781]! } + public var State_ConnectingToProxy: String { return self._s[782]! } + public var Calls_RatingTitle: String { return self._s[783]! } + public var Generic_ErrorMoreInfo: String { return self._s[784]! } + public var ChatList_Search_ShowMore: String { return self._s[785]! } + public var Appearance_PreviewReplyText: String { return self._s[786]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[787]! } public func Wallet_Send_Balance(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[786]!, self._r[786]!, [_0]) + return formatWithArgumentRanges(self._s[788]!, self._r[788]!, [_0]) } - public var IntentsSettings_SuggestedChatsContacts: String { return self._s[787]! } - public var SharedMedia_CategoryLinks: String { return self._s[788]! } - public var Calls_Missed: String { return self._s[789]! } - public var Cache_Photos: String { return self._s[793]! } - public var GroupPermission_NoAddMembers: String { return self._s[794]! } - public var ScheduledMessages_Title: String { return self._s[795]! } + public var IntentsSettings_SuggestedChatsContacts: String { return self._s[789]! } + public var SharedMedia_CategoryLinks: String { return self._s[790]! } + public var Calls_Missed: String { return self._s[791]! } + public var Cache_Photos: String { return self._s[795]! } + public var GroupPermission_NoAddMembers: String { return self._s[796]! } + public var ScheduledMessages_Title: String { return self._s[797]! } public func Channel_AdminLog_MessageUnpinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[796]!, self._r[796]!, [_0]) + return formatWithArgumentRanges(self._s[798]!, self._r[798]!, [_0]) } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[797]! } - public var Settings_ProxyDisabled: String { return self._s[798]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[799]! } + public var Settings_ProxyDisabled: String { return self._s[800]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[799]!, self._r[799]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[801]!, self._r[801]!, [_1, _2, _3, _4]) } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[800]!, self._r[800]!, [_0]) + return formatWithArgumentRanges(self._s[802]!, self._r[802]!, [_0]) } - public var ChatList_Context_RemoveFromRecents: String { return self._s[802]! } - public var Appearance_Title: String { return self._s[803]! } + public var ChatList_Context_RemoveFromRecents: String { return self._s[804]! } + public var Appearance_Title: String { return self._s[805]! } public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[805]!, self._r[805]!, [_0]) + return formatWithArgumentRanges(self._s[807]!, self._r[807]!, [_0]) } - public var Conversation_WalletRequiredText: String { return self._s[806]! } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[807]! } - public var OldChannels_NoticeCreateText: String { return self._s[808]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[809]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[810]! } - public var Preview_DeletePhoto: String { return self._s[811]! } - public var Appearance_AppIconFilledX: String { return self._s[812]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[813]! } + public var Conversation_WalletRequiredText: String { return self._s[808]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[809]! } + public var OldChannels_NoticeCreateText: String { return self._s[810]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[811]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[812]! } + public var Preview_DeletePhoto: String { return self._s[813]! } + public var Appearance_AppIconFilledX: String { return self._s[814]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[815]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[814]!, self._r[814]!, [_0]) + return formatWithArgumentRanges(self._s[816]!, self._r[816]!, [_0]) } - public var Coub_TapForSound: String { return self._s[817]! } - public var Map_LocatingError: String { return self._s[818]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[820]! } - public var Conversation_SendMessage_SendSilently: String { return self._s[821]! } - public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[822]! } + public var Coub_TapForSound: String { return self._s[819]! } + public var Map_LocatingError: String { return self._s[820]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[822]! } + public var Conversation_SendMessage_SendSilently: String { return self._s[823]! } + public var VoiceOver_MessageContextOpenMessageMenu: String { return self._s[824]! } public func Wallet_Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[823]!, self._r[823]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[825]!, self._r[825]!, [_1, _2, _3]) } - public var Passport_ForgottenPassword: String { return self._s[824]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[825]! } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[826]! } - public var Login_TermsOfServiceSignupDecline: String { return self._s[828]! } - public var Channel_Moderator_AccessLevelRevoke: String { return self._s[829]! } - public var Message_Location: String { return self._s[830]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[831]! } - public var Channel_Management_Title: String { return self._s[832]! } - public var DialogList_SearchSectionDialogs: String { return self._s[834]! } - public var Compose_NewChannel_Members: String { return self._s[835]! } + public var Passport_ForgottenPassword: String { return self._s[826]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[827]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[828]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[830]! } + public var Channel_Moderator_AccessLevelRevoke: String { return self._s[831]! } + public var Message_Location: String { return self._s[832]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[833]! } + public var Channel_Management_Title: String { return self._s[834]! } + public var DialogList_SearchSectionDialogs: String { return self._s[836]! } + public var Compose_NewChannel_Members: String { return self._s[837]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[836]!, self._r[836]!, [_0]) + return formatWithArgumentRanges(self._s[838]!, self._r[838]!, [_0]) } - public var GroupInfo_Location: String { return self._s[837]! } - public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[838]! } - public var ClearCache_Clear: String { return self._s[839]! } - public var AutoNightTheme_ScheduledFrom: String { return self._s[840]! } - public var PhotoEditor_WarmthTool: String { return self._s[841]! } - public var Passport_Language_tr: String { return self._s[842]! } + public var GroupInfo_Location: String { return self._s[839]! } + public var Appearance_ThemePreview_ChatList_5_Name: String { return self._s[840]! } + public var ClearCache_Clear: String { return self._s[841]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[842]! } + public var PhotoEditor_WarmthTool: String { return self._s[843]! } + public var Passport_Language_tr: String { return self._s[844]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[843]!, self._r[843]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[845]!, self._r[845]!, [_1, _2, _3]) } - public var OldChannels_NoticeUpgradeText: String { return self._s[844]! } - public var Login_ResetAccountProtected_Reset: String { return self._s[846]! } - public var Watch_PhotoView_Title: String { return self._s[847]! } - public var Passport_Phone_Delete: String { return self._s[848]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[849]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[850]! } - public var GroupInfo_Permissions: String { return self._s[851]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[852]! } - public var Profile_ShareContactButton: String { return self._s[853]! } - public var ChatSettings_Other: String { return self._s[854]! } - public var UserInfo_NotificationsDisabled: String { return self._s[855]! } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[856]! } - public var LastSeen_WithinAMonth: String { return self._s[857]! } - public var VoiceOver_Chat_PlayHint: String { return self._s[858]! } - public var Conversation_ReportGroupLocation: String { return self._s[859]! } - public var Conversation_EncryptionCanceled: String { return self._s[860]! } - public var MediaPicker_GroupDescription: String { return self._s[861]! } - public var WebSearch_Images: String { return self._s[862]! } + public var OldChannels_NoticeUpgradeText: String { return self._s[846]! } + public var Login_ResetAccountProtected_Reset: String { return self._s[848]! } + public var Watch_PhotoView_Title: String { return self._s[849]! } + public var Passport_Phone_Delete: String { return self._s[850]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[851]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[852]! } + public var GroupInfo_Permissions: String { return self._s[853]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[854]! } + public var Profile_ShareContactButton: String { return self._s[855]! } + public var ChatSettings_Other: String { return self._s[856]! } + public var UserInfo_NotificationsDisabled: String { return self._s[857]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[858]! } + public var LastSeen_WithinAMonth: String { return self._s[859]! } + public var VoiceOver_Chat_PlayHint: String { return self._s[860]! } + public var Conversation_ReportGroupLocation: String { return self._s[861]! } + public var Conversation_EncryptionCanceled: String { return self._s[862]! } + public var MediaPicker_GroupDescription: String { return self._s[863]! } + public var WebSearch_Images: String { return self._s[864]! } public func Channel_Management_PromotedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[863]!, self._r[863]!, [_0]) + return formatWithArgumentRanges(self._s[865]!, self._r[865]!, [_0]) } - public var Message_Photo: String { return self._s[864]! } - public var PasscodeSettings_HelpBottom: String { return self._s[865]! } - public var AutoDownloadSettings_VideosTitle: String { return self._s[866]! } - public var VoiceOver_Media_PlaybackRateChange: String { return self._s[867]! } - public var Passport_Identity_AddDriversLicense: String { return self._s[868]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[869]! } - public var NotificationsSound_Calypso: String { return self._s[870]! } - public var Map_Map: String { return self._s[871]! } - public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[873]! } - public var ChatSettings_TextSizeUnits: String { return self._s[874]! } + public var Message_Photo: String { return self._s[866]! } + public var PasscodeSettings_HelpBottom: String { return self._s[867]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[868]! } + public var VoiceOver_Media_PlaybackRateChange: String { return self._s[869]! } + public var Passport_Identity_AddDriversLicense: String { return self._s[870]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[871]! } + public var NotificationsSound_Calypso: String { return self._s[872]! } + public var Map_Map: String { return self._s[873]! } + public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[875]! } + public var ChatSettings_TextSizeUnits: String { return self._s[876]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[875]!, self._r[875]!, [_0]) + return formatWithArgumentRanges(self._s[877]!, self._r[877]!, [_0]) } - public var Common_of: String { return self._s[876]! } - public var Conversation_ForwardContacts: String { return self._s[879]! } - public var IntentsSettings_SuggestByAll: String { return self._s[881]! } + public var Common_of: String { return self._s[878]! } + public var Conversation_ForwardContacts: String { return self._s[881]! } + public var IntentsSettings_SuggestByAll: String { return self._s[883]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[882]!, self._r[882]!, [_0]) + return formatWithArgumentRanges(self._s[884]!, self._r[884]!, [_0]) } - public var Passport_Language_hy: String { return self._s[883]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[884]! } - public var AutoDownloadSettings_Reset: String { return self._s[885]! } - public var Wallet_TransactionInfo_AddressCopied: String { return self._s[886]! } - public var Paint_ClearConfirm: String { return self._s[887]! } - public var Camera_VideoMode: String { return self._s[888]! } + public var Passport_Language_hy: String { return self._s[885]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[886]! } + public var AutoDownloadSettings_Reset: String { return self._s[887]! } + public var Wallet_TransactionInfo_AddressCopied: String { return self._s[888]! } + public var Paint_ClearConfirm: String { return self._s[889]! } + public var Camera_VideoMode: String { return self._s[890]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[889]!, self._r[889]!, [_0]) + return formatWithArgumentRanges(self._s[891]!, self._r[891]!, [_0]) } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[890]! } - public var Conversation_ViewBackground: String { return self._s[891]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[892]! } + public var Conversation_ViewBackground: String { return self._s[893]! } public func Wallet_Info_TransactionDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[892]!, self._r[892]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[894]!, self._r[894]!, [_1, _2, _3]) } - public var Passport_Language_el: String { return self._s[893]! } - public var PhotoEditor_Original: String { return self._s[894]! } - public var Settings_FAQ_Button: String { return self._s[896]! } - public var Channel_Setup_PublicNoLink: String { return self._s[898]! } - public var Conversation_UnsupportedMedia: String { return self._s[899]! } - public var Conversation_SlideToCancel: String { return self._s[900]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[901]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[902]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[903]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[904]! } - public var AutoNightTheme_NotAvailable: String { return self._s[905]! } - public var Conversation_Owner: String { return self._s[906]! } - public var Common_Create: String { return self._s[907]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[908]! } - public var ContactList_Context_Call: String { return self._s[909]! } - public var Localization_ChooseLanguage: String { return self._s[911]! } - public var ChatList_Context_AddToContacts: String { return self._s[913]! } - public var OldChannels_NoticeTitle: String { return self._s[914]! } - public var Settings_Proxy: String { return self._s[916]! } - public var Privacy_TopPeersHelp: String { return self._s[917]! } - public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[918]! } - public var Chat_UnsendMyMessages: String { return self._s[919]! } + public var Passport_Language_el: String { return self._s[895]! } + public var PhotoEditor_Original: String { return self._s[896]! } + public var Settings_FAQ_Button: String { return self._s[898]! } + public var Channel_Setup_PublicNoLink: String { return self._s[900]! } + public var Conversation_UnsupportedMedia: String { return self._s[901]! } + public var Conversation_SlideToCancel: String { return self._s[902]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[903]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[904]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[905]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[906]! } + public var AutoNightTheme_NotAvailable: String { return self._s[907]! } + public var Conversation_Owner: String { return self._s[908]! } + public var Common_Create: String { return self._s[909]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[910]! } + public var ContactList_Context_Call: String { return self._s[911]! } + public var Localization_ChooseLanguage: String { return self._s[913]! } + public var ChatList_Context_AddToContacts: String { return self._s[915]! } + public var OldChannels_NoticeTitle: String { return self._s[916]! } + public var Settings_Proxy: String { return self._s[918]! } + public var Privacy_TopPeersHelp: String { return self._s[919]! } + public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[920]! } + public var Chat_UnsendMyMessages: String { return self._s[921]! } public func VoiceOver_Chat_Duration(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[920]!, self._r[920]!, [_0]) + return formatWithArgumentRanges(self._s[922]!, self._r[922]!, [_0]) } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[921]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[923]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[923]!, self._r[923]!, [_0]) + return formatWithArgumentRanges(self._s[925]!, self._r[925]!, [_0]) } - public var Contacts_SortedByPresence: String { return self._s[924]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[925]! } - public var Cache_Title: String { return self._s[926]! } + public var Contacts_SortedByPresence: String { return self._s[926]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[927]! } + public var Cache_Title: String { return self._s[928]! } public func Login_PhoneBannedEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[927]!, self._r[927]!, [_0]) + return formatWithArgumentRanges(self._s[929]!, self._r[929]!, [_0]) } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[928]! } - public var Channel_Moderator_Title: String { return self._s[929]! } - public var InstantPage_AutoNightTheme: String { return self._s[931]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[930]! } + public var Channel_Moderator_Title: String { return self._s[931]! } + public var InstantPage_AutoNightTheme: String { return self._s[933]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[934]!, self._r[934]!, [_1]) + return formatWithArgumentRanges(self._s[936]!, self._r[936]!, [_1]) } - public var Passport_Scans_Upload: String { return self._s[935]! } - public var Undo_Undo: String { return self._s[937]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[938]! } - public var TwoStepAuth_RemovePassword: String { return self._s[939]! } - public var Common_Delete: String { return self._s[940]! } - public var Contacts_AddPeopleNearby: String { return self._s[942]! } - public var Conversation_ContextMenuDelete: String { return self._s[943]! } - public var SocksProxySetup_Credentials: String { return self._s[944]! } - public var Appearance_EditTheme: String { return self._s[946]! } - public var ClearCache_StorageOtherApps: String { return self._s[947]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[948]! } - public var Wallet_Send_NetworkErrorText: String { return self._s[949]! } - public var AuthSessions_DevicesTitle: String { return self._s[951]! } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[953]! } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[954]! } - public var Passport_Language_id: String { return self._s[956]! } - public var WallpaperSearch_ColorTeal: String { return self._s[957]! } - public var ChannelIntro_Title: String { return self._s[958]! } + public var Passport_Scans_Upload: String { return self._s[937]! } + public var Undo_Undo: String { return self._s[939]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[940]! } + public var TwoStepAuth_RemovePassword: String { return self._s[941]! } + public var Common_Delete: String { return self._s[942]! } + public var Contacts_AddPeopleNearby: String { return self._s[944]! } + public var Conversation_ContextMenuDelete: String { return self._s[945]! } + public var SocksProxySetup_Credentials: String { return self._s[946]! } + public var Appearance_EditTheme: String { return self._s[948]! } + public var ClearCache_StorageOtherApps: String { return self._s[949]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[950]! } + public var Wallet_Send_NetworkErrorText: String { return self._s[951]! } + public var AuthSessions_DevicesTitle: String { return self._s[953]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[955]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[956]! } + public var Passport_Language_id: String { return self._s[958]! } + public var WallpaperSearch_ColorTeal: String { return self._s[959]! } + public var ChannelIntro_Title: String { return self._s[960]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[959]!, self._r[959]!, [_0]) + return formatWithArgumentRanges(self._s[961]!, self._r[961]!, [_0]) } - public var VoiceOver_Chat_OpenLinkHint: String { return self._s[961]! } - public var VoiceOver_Chat_Reply: String { return self._s[962]! } - public var ScheduledMessages_BotActionUnavailable: String { return self._s[963]! } - public var Channel_Info_Description: String { return self._s[964]! } - public var Stickers_FavoriteStickers: String { return self._s[965]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[966]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[967]! } - public var ChatSearch_ResultsTooltip: String { return self._s[968]! } - public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[969]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[970]! } - public var Group_PublicLink_Placeholder: String { return self._s[971]! } - public var Notifications_ExceptionsDefaultSound: String { return self._s[972]! } + public var VoiceOver_Chat_OpenLinkHint: String { return self._s[963]! } + public var VoiceOver_Chat_Reply: String { return self._s[964]! } + public var ScheduledMessages_BotActionUnavailable: String { return self._s[965]! } + public var Channel_Info_Description: String { return self._s[966]! } + public var Stickers_FavoriteStickers: String { return self._s[967]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[968]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[969]! } + public var ChatSearch_ResultsTooltip: String { return self._s[970]! } + public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[971]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[972]! } + public var Group_PublicLink_Placeholder: String { return self._s[973]! } + public var Notifications_ExceptionsDefaultSound: String { return self._s[974]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[973]!, self._r[973]!, [_1]) + return formatWithArgumentRanges(self._s[975]!, self._r[975]!, [_1]) } - public var TextFormat_Underline: String { return self._s[974]! } + public var TextFormat_Underline: String { return self._s[976]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[976]!, self._r[976]!, [_1, _2]) + return formatWithArgumentRanges(self._s[978]!, self._r[978]!, [_1, _2]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[977]!, self._r[977]!, [_0]) + return formatWithArgumentRanges(self._s[979]!, self._r[979]!, [_0]) } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[978]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[980]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[979]!, self._r[979]!, [_1, _2]) + return formatWithArgumentRanges(self._s[981]!, self._r[981]!, [_1, _2]) } - public var Wallet_Intro_ImportExisting: String { return self._s[980]! } - public var GroupPermission_Delete: String { return self._s[981]! } - public var Passport_Language_uk: String { return self._s[982]! } - public var StickerPack_HideStickers: String { return self._s[984]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[985]! } + public var Wallet_Intro_ImportExisting: String { return self._s[982]! } + public var GroupPermission_Delete: String { return self._s[983]! } + public var Passport_Language_uk: String { return self._s[984]! } + public var StickerPack_HideStickers: String { return self._s[986]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[987]! } public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[986]!, self._r[986]!, [_1, _2]) + return formatWithArgumentRanges(self._s[988]!, self._r[988]!, [_1, _2]) } - public var Activity_UploadingVideoMessage: String { return self._s[987]! } + public var Activity_UploadingVideoMessage: String { return self._s[989]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[988]!, self._r[988]!, [_0]) + return formatWithArgumentRanges(self._s[990]!, self._r[990]!, [_0]) } - public var Channel_TitleInfo: String { return self._s[989]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[990]! } - public var Settings_CallSettings: String { return self._s[991]! } - public var Camera_SquareMode: String { return self._s[992]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[993]! } - public var GroupInfo_SharedMediaNone: String { return self._s[994]! } + public var Channel_TitleInfo: String { return self._s[991]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[992]! } + public var Settings_CallSettings: String { return self._s[993]! } + public var Camera_SquareMode: String { return self._s[994]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[995]! } + public var GroupInfo_SharedMediaNone: String { return self._s[996]! } public func PUSH_MESSAGE_VIDEO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[995]!, self._r[995]!, [_1]) + return formatWithArgumentRanges(self._s[997]!, self._r[997]!, [_1]) } - public var Bot_GenericBotStatus: String { return self._s[996]! } - public var Application_Update: String { return self._s[998]! } - public var Month_ShortJanuary: String { return self._s[999]! } - public var Contacts_PermissionsKeepDisabled: String { return self._s[1000]! } - public var Channel_AdminLog_BanReadMessages: String { return self._s[1001]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[1002]! } - public var Passport_Address_Street2Placeholder: String { return self._s[1003]! } + public var Bot_GenericBotStatus: String { return self._s[998]! } + public var Application_Update: String { return self._s[1000]! } + public var Month_ShortJanuary: String { return self._s[1001]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[1002]! } + public var Channel_AdminLog_BanReadMessages: String { return self._s[1003]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[1004]! } + public var Passport_Address_Street2Placeholder: String { return self._s[1005]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1004]!, self._r[1004]!, [_0]) + return formatWithArgumentRanges(self._s[1006]!, self._r[1006]!, [_0]) } - public var NetworkUsageSettings_Cellular: String { return self._s[1005]! } - public var Appearance_PreviewOutgoingText: String { return self._s[1006]! } + public var NetworkUsageSettings_Cellular: String { return self._s[1007]! } + public var Appearance_PreviewOutgoingText: String { return self._s[1008]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1007]!, self._r[1007]!, [_0]) + return formatWithArgumentRanges(self._s[1009]!, self._r[1009]!, [_0]) } - public var Notifications_PermissionsAllowInSettings: String { return self._s[1008]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[1010]! } - public var Map_Directions: String { return self._s[1011]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[1013]! } - public var Appearance_ThemeDay: String { return self._s[1014]! } - public var LogoutOptions_LogOut: String { return self._s[1015]! } - public var Group_PublicLink_Title: String { return self._s[1017]! } - public var Channel_AddBotErrorNoRights: String { return self._s[1018]! } - public var ChatList_Search_ShowLess: String { return self._s[1019]! } - public var Passport_Identity_AddPassport: String { return self._s[1020]! } - public var LocalGroup_ButtonTitle: String { return self._s[1021]! } - public var Call_Message: String { return self._s[1022]! } - public var PhotoEditor_ExposureTool: String { return self._s[1023]! } - public var Wallet_Receive_CommentInfo: String { return self._s[1025]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[1026]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[1028]! } - public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[1029]! } - public var Appearance_Preview: String { return self._s[1030]! } - public var Compose_ChannelMembers: String { return self._s[1031]! } - public var Conversation_DeleteManyMessages: String { return self._s[1032]! } - public var ReportPeer_ReasonOther_Title: String { return self._s[1033]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1034]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1035]! } - public var Channel_Stickers_CreateYourOwn: String { return self._s[1038]! } - public var Conversation_UpdateTelegram: String { return self._s[1039]! } - public var EditTheme_Create_TopInfo: String { return self._s[1040]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[1010]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[1012]! } + public var Map_Directions: String { return self._s[1013]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[1015]! } + public var Appearance_ThemeDay: String { return self._s[1016]! } + public var LogoutOptions_LogOut: String { return self._s[1017]! } + public var Group_PublicLink_Title: String { return self._s[1019]! } + public var Channel_AddBotErrorNoRights: String { return self._s[1020]! } + public var ChatList_Search_ShowLess: String { return self._s[1021]! } + public var Passport_Identity_AddPassport: String { return self._s[1022]! } + public var LocalGroup_ButtonTitle: String { return self._s[1023]! } + public var Call_Message: String { return self._s[1024]! } + public var PhotoEditor_ExposureTool: String { return self._s[1025]! } + public var Wallet_Receive_CommentInfo: String { return self._s[1027]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[1028]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[1030]! } + public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[1031]! } + public var Appearance_Preview: String { return self._s[1032]! } + public var Compose_ChannelMembers: String { return self._s[1033]! } + public var Conversation_DeleteManyMessages: String { return self._s[1034]! } + public var ReportPeer_ReasonOther_Title: String { return self._s[1035]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1036]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1037]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[1040]! } + public var Conversation_UpdateTelegram: String { return self._s[1041]! } + public var EditTheme_Create_TopInfo: String { return self._s[1042]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1041]!, self._r[1041]!, [_0]) + return formatWithArgumentRanges(self._s[1043]!, self._r[1043]!, [_0]) } - public var Wallet_WordCheck_Continue: String { return self._s[1042]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[1043]! } - public var IntentsSettings_ResetAll: String { return self._s[1044]! } + public var Wallet_WordCheck_Continue: String { return self._s[1044]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[1045]! } + public var IntentsSettings_ResetAll: String { return self._s[1046]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1045]!, self._r[1045]!, [_1]) + return formatWithArgumentRanges(self._s[1047]!, self._r[1047]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[1046]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[1047]! } + public var GroupInfo_Administrators_Title: String { return self._s[1048]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[1049]! } public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1048]!, self._r[1048]!, [_0]) + return formatWithArgumentRanges(self._s[1050]!, self._r[1050]!, [_0]) } - public var Tour_Title3: String { return self._s[1049]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[1050]! } - public var Clipboard_SendPhoto: String { return self._s[1054]! } - public var MediaPicker_Videos: String { return self._s[1055]! } - public var Passport_Email_Title: String { return self._s[1056]! } + public var Tour_Title3: String { return self._s[1051]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[1052]! } + public var Clipboard_SendPhoto: String { return self._s[1056]! } + public var MediaPicker_Videos: String { return self._s[1057]! } + public var Passport_Email_Title: String { return self._s[1058]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1057]!, self._r[1057]!, [_0]) + return formatWithArgumentRanges(self._s[1059]!, self._r[1059]!, [_0]) } - public var StickerPacksSettings_Title: String { return self._s[1058]! } - public var Conversation_MessageDialogDelete: String { return self._s[1059]! } - public var Privacy_Calls_CustomHelp: String { return self._s[1061]! } - public var Message_Wallpaper: String { return self._s[1062]! } - public var MemberSearch_BotSection: String { return self._s[1063]! } - public var GroupInfo_SetSound: String { return self._s[1064]! } - public var Core_ServiceUserStatus: String { return self._s[1065]! } - public var LiveLocationUpdated_JustNow: String { return self._s[1066]! } - public var Call_StatusFailed: String { return self._s[1067]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[1068]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1069]! } - public var TwoStepAuth_SetPassword: String { return self._s[1070]! } - public var Permissions_PeopleNearbyText_v0: String { return self._s[1071]! } + public var StickerPacksSettings_Title: String { return self._s[1060]! } + public var Conversation_MessageDialogDelete: String { return self._s[1061]! } + public var Privacy_Calls_CustomHelp: String { return self._s[1063]! } + public var Message_Wallpaper: String { return self._s[1064]! } + public var MemberSearch_BotSection: String { return self._s[1065]! } + public var GroupInfo_SetSound: String { return self._s[1066]! } + public var Core_ServiceUserStatus: String { return self._s[1067]! } + public var LiveLocationUpdated_JustNow: String { return self._s[1068]! } + public var Call_StatusFailed: String { return self._s[1069]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[1070]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1071]! } + public var TwoStepAuth_SetPassword: String { return self._s[1072]! } + public var Permissions_PeopleNearbyText_v0: String { return self._s[1073]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1073]!, self._r[1073]!, [_0]) + return formatWithArgumentRanges(self._s[1075]!, self._r[1075]!, [_0]) } - public var Calls_SubmitRating: String { return self._s[1074]! } - public var Map_NoPlacesNearby: String { return self._s[1075]! } - public var Profile_Username: String { return self._s[1076]! } - public var Bot_DescriptionTitle: String { return self._s[1077]! } - public var MaskStickerSettings_Title: String { return self._s[1078]! } - public var SharedMedia_CategoryOther: String { return self._s[1079]! } - public var GroupInfo_SetGroupPhoto: String { return self._s[1080]! } - public var Common_NotNow: String { return self._s[1081]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[1082]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[1083]! } - public var Map_Location: String { return self._s[1084]! } - public var Invitation_JoinGroup: String { return self._s[1085]! } - public var AutoDownloadSettings_Title: String { return self._s[1087]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1088]! } - public var Channel_ErrorAddBlocked: String { return self._s[1089]! } - public var Conversation_UnblockUser: String { return self._s[1090]! } - public var EditTheme_Edit_TopInfo: String { return self._s[1091]! } - public var Watch_Bot_Restart: String { return self._s[1092]! } - public var TwoStepAuth_Title: String { return self._s[1093]! } - public var Channel_AdminLog_BanSendMessages: String { return self._s[1094]! } - public var Checkout_ShippingMethod: String { return self._s[1095]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1096]! } + public var Calls_SubmitRating: String { return self._s[1076]! } + public var Map_NoPlacesNearby: String { return self._s[1077]! } + public var Profile_Username: String { return self._s[1078]! } + public var Bot_DescriptionTitle: String { return self._s[1079]! } + public var MaskStickerSettings_Title: String { return self._s[1080]! } + public var SharedMedia_CategoryOther: String { return self._s[1081]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1082]! } + public var Common_NotNow: String { return self._s[1083]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[1084]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[1085]! } + public var Map_Location: String { return self._s[1086]! } + public var Invitation_JoinGroup: String { return self._s[1087]! } + public var AutoDownloadSettings_Title: String { return self._s[1089]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1090]! } + public var Channel_ErrorAddBlocked: String { return self._s[1091]! } + public var Conversation_UnblockUser: String { return self._s[1092]! } + public var EditTheme_Edit_TopInfo: String { return self._s[1093]! } + public var Watch_Bot_Restart: String { return self._s[1094]! } + public var TwoStepAuth_Title: String { return self._s[1095]! } + public var Channel_AdminLog_BanSendMessages: String { return self._s[1096]! } + public var Checkout_ShippingMethod: String { return self._s[1097]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1098]! } public func PUSH_CHAT_MESSAGE_STICKER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1097]!, self._r[1097]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1099]!, self._r[1099]!, [_1, _2, _3]) } - public var EditTheme_ChangeColors: String { return self._s[1099]! } + public var EditTheme_ChangeColors: String { return self._s[1101]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1100]!, self._r[1100]!, [_0]) + return formatWithArgumentRanges(self._s[1102]!, self._r[1102]!, [_0]) } public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1101]!, self._r[1101]!, [_0]) + return formatWithArgumentRanges(self._s[1103]!, self._r[1103]!, [_0]) } - public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1102]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1103]! } - public var AuthSessions_TerminateOtherSessions: String { return self._s[1104]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[1105]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[1106]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1107]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1108]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[1109]! } - public var Checkout_PaymentMethod_Title: String { return self._s[1110]! } - public var SocksProxySetup_Connection: String { return self._s[1111]! } - public var Group_MessagePhotoRemoved: String { return self._s[1112]! } - public var Channel_Stickers_NotFound: String { return self._s[1115]! } - public var Group_About_Help: String { return self._s[1116]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[1117]! } - public var PeopleNearby_Title: String { return self._s[1119]! } + public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1104]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1105]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[1106]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[1107]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[1108]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1109]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1110]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[1111]! } + public var Checkout_PaymentMethod_Title: String { return self._s[1112]! } + public var SocksProxySetup_Connection: String { return self._s[1113]! } + public var Group_MessagePhotoRemoved: String { return self._s[1114]! } + public var Channel_Stickers_NotFound: String { return self._s[1117]! } + public var Group_About_Help: String { return self._s[1118]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[1119]! } + public var PeopleNearby_Title: String { return self._s[1121]! } public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1120]!, self._r[1120]!, [_1]) + return formatWithArgumentRanges(self._s[1122]!, self._r[1122]!, [_1]) } - public var Map_Home: String { return self._s[1121]! } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1123]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1124]! } - public var SocksProxySetup_Password: String { return self._s[1125]! } - public var Notifications_PermissionsEnable: String { return self._s[1126]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[1128]! } + public var Map_Home: String { return self._s[1123]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1125]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1126]! } + public var SocksProxySetup_Password: String { return self._s[1127]! } + public var Notifications_PermissionsEnable: String { return self._s[1128]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[1130]! } public func Channel_AdminLog_MessageInvitedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1129]!, self._r[1129]!, [_1]) + return formatWithArgumentRanges(self._s[1131]!, self._r[1131]!, [_1]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1131]!, self._r[1131]!, [_0]) + return formatWithArgumentRanges(self._s[1133]!, self._r[1133]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[1132]! } - public var ArchivedPacksAlert_Title: String { return self._s[1133]! } - public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1134]! } - public var Map_PlacesNearby: String { return self._s[1135]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[1134]! } + public var ArchivedPacksAlert_Title: String { return self._s[1135]! } + public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1136]! } + public var Map_PlacesNearby: String { return self._s[1137]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1136]!, self._r[1136]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1138]!, self._r[1138]!, [_1, _2, _3]) } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1137]! } - public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1139]! } - public var Conversation_StatusTyping: String { return self._s[1140]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[1141]! } - public var Notification_PassportValueProofOfAddress: String { return self._s[1142]! } - public var UserInfo_CreateNewContact: String { return self._s[1143]! } - public var Passport_Identity_FrontSide: String { return self._s[1144]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1145]! } - public var Calls_CallTabTitle: String { return self._s[1146]! } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1147]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1139]! } + public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1141]! } + public var Conversation_StatusTyping: String { return self._s[1142]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[1143]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[1144]! } + public var UserInfo_CreateNewContact: String { return self._s[1145]! } + public var Passport_Identity_FrontSide: String { return self._s[1146]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1147]! } + public var Calls_CallTabTitle: String { return self._s[1148]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1149]! } public func Login_BannedPhoneBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1149]!, self._r[1149]!, [_0]) + return formatWithArgumentRanges(self._s[1151]!, self._r[1151]!, [_0]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[1150]! } - public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1151]! } - public var SharedMedia_EmptyMusicText: String { return self._s[1152]! } - public var Wallet_Completed_Text: String { return self._s[1153]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1154]! } - public var Paint_Stickers: String { return self._s[1155]! } - public var Privacy_GroupsAndChannels: String { return self._s[1156]! } - public var ChatList_Context_Delete: String { return self._s[1158]! } - public var UserInfo_AddContact: String { return self._s[1159]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[1152]! } + public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1153]! } + public var SharedMedia_EmptyMusicText: String { return self._s[1154]! } + public var Wallet_Completed_Text: String { return self._s[1155]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1156]! } + public var Paint_Stickers: String { return self._s[1157]! } + public var Privacy_GroupsAndChannels: String { return self._s[1158]! } + public var ChatList_Context_Delete: String { return self._s[1160]! } + public var UserInfo_AddContact: String { return self._s[1161]! } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1160]!, self._r[1160]!, [_0]) + return formatWithArgumentRanges(self._s[1162]!, self._r[1162]!, [_0]) } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[1162]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[1164]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1164]!, self._r[1164]!, [_0]) + return formatWithArgumentRanges(self._s[1166]!, self._r[1166]!, [_0]) } - public var DialogList_NoMessagesTitle: String { return self._s[1165]! } - public var EditProfile_NameAndPhotoHelp: String { return self._s[1166]! } - public var BlockedUsers_BlockUser: String { return self._s[1167]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[1168]! } - public var MediaPicker_UngroupDescription: String { return self._s[1170]! } - public var Watch_NoConnection: String { return self._s[1171]! } - public var Month_GenSeptember: String { return self._s[1172]! } - public var Conversation_ViewGroup: String { return self._s[1174]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1177]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[1178]! } - public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1179]! } - public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1180]! } - public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1181]! } - public var MediaPicker_CameraRoll: String { return self._s[1183]! } - public var Month_GenAugust: String { return self._s[1184]! } - public var Wallet_Configuration_SourceHeader: String { return self._s[1185]! } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[1186]! } - public var SharedMedia_EmptyText: String { return self._s[1187]! } - public var Map_ShareLiveLocation: String { return self._s[1188]! } - public var Calls_All: String { return self._s[1189]! } - public var Map_SendThisPlace: String { return self._s[1191]! } - public var Appearance_ThemeNight: String { return self._s[1193]! } - public var Conversation_HoldForAudio: String { return self._s[1194]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[1197]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[1198]! } - public var SocksProxySetup_Secret: String { return self._s[1199]! } + public var DialogList_NoMessagesTitle: String { return self._s[1167]! } + public var EditProfile_NameAndPhotoHelp: String { return self._s[1168]! } + public var BlockedUsers_BlockUser: String { return self._s[1169]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[1170]! } + public var MediaPicker_UngroupDescription: String { return self._s[1172]! } + public var Watch_NoConnection: String { return self._s[1173]! } + public var Month_GenSeptember: String { return self._s[1174]! } + public var Conversation_ViewGroup: String { return self._s[1176]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1179]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[1180]! } + public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1181]! } + public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1182]! } + public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1183]! } + public var MediaPicker_CameraRoll: String { return self._s[1185]! } + public var Month_GenAugust: String { return self._s[1186]! } + public var Wallet_Configuration_SourceHeader: String { return self._s[1187]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[1188]! } + public var SharedMedia_EmptyText: String { return self._s[1189]! } + public var Map_ShareLiveLocation: String { return self._s[1190]! } + public var Calls_All: String { return self._s[1191]! } + public var Map_SendThisPlace: String { return self._s[1193]! } + public var Appearance_ThemeNight: String { return self._s[1195]! } + public var Conversation_HoldForAudio: String { return self._s[1196]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[1199]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[1200]! } + public var SocksProxySetup_Secret: String { return self._s[1201]! } public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1200]!, self._r[1200]!, [_0]) + return formatWithArgumentRanges(self._s[1202]!, self._r[1202]!, [_0]) } - public var Channel_BanList_RestrictedTitle: String { return self._s[1202]! } - public var Conversation_Location: String { return self._s[1203]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[1204]! } + public var Conversation_Location: String { return self._s[1205]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1204]!, self._r[1204]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1206]!, self._r[1206]!, [_1, _2]) } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[1206]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1207]! } - public var Notifications_PermissionsText: String { return self._s[1208]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1209]! } - public var Call_Flip: String { return self._s[1210]! } - public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1212]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1213]! } - public var Wallet_TransactionInfo_StorageFeeInfoUrl: String { return self._s[1214]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1215]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1217]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1219]! } - public var Channel_TooMuchBots: String { return self._s[1221]! } - public var Passport_DeletePassportConfirmation: String { return self._s[1222]! } - public var Login_InvalidCodeError: String { return self._s[1223]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1224]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[1208]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1209]! } + public var Notifications_PermissionsText: String { return self._s[1210]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1211]! } + public var Call_Flip: String { return self._s[1212]! } + public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1214]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1215]! } + public var Wallet_TransactionInfo_StorageFeeInfoUrl: String { return self._s[1216]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1217]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1219]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1221]! } + public var Channel_TooMuchBots: String { return self._s[1223]! } + public var Passport_DeletePassportConfirmation: String { return self._s[1224]! } + public var Login_InvalidCodeError: String { return self._s[1225]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1226]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1225]!, self._r[1225]!, [_0]) + return formatWithArgumentRanges(self._s[1227]!, self._r[1227]!, [_0]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1226]!, self._r[1226]!, [_0]) + return formatWithArgumentRanges(self._s[1228]!, self._r[1228]!, [_0]) } - public var VoiceOver_Navigation_ProxySettings: String { return self._s[1227]! } - public var Call_CallInProgressTitle: String { return self._s[1228]! } - public var Month_ShortSeptember: String { return self._s[1229]! } - public var Watch_ChannelInfo_Title: String { return self._s[1230]! } - public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1233]! } - public var DialogList_PasscodeLockHelp: String { return self._s[1234]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[1235]! } - public var Wallet_Receive_Title: String { return self._s[1236]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[1237]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1238]! } - public var PhotoEditor_CropReset: String { return self._s[1239]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1241]! } - public var Channel_Management_LabelEditor: String { return self._s[1242]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1244]! } - public var PhotoEditor_HighlightsTool: String { return self._s[1245]! } - public var Wallet_Info_WalletCreated: String { return self._s[1246]! } - public var UserInfo_Title: String { return self._s[1247]! } - public var ChatList_HideAction: String { return self._s[1248]! } - public var AccessDenied_Title: String { return self._s[1249]! } - public var DialogList_SearchLabel: String { return self._s[1250]! } - public var Group_Setup_HistoryHidden: String { return self._s[1251]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1252]! } - public var State_Updating: String { return self._s[1254]! } - public var Contacts_TabTitle: String { return self._s[1255]! } - public var Notifications_Badge_CountUnreadMessages: String { return self._s[1257]! } - public var GroupInfo_GroupHistory: String { return self._s[1258]! } - public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1259]! } - public var Wallpaper_SetColor: String { return self._s[1260]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1261]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1262]! } - public var Chat_AttachmentLimitReached: String { return self._s[1263]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1264]! } - public var Contacts_NotRegisteredSection: String { return self._s[1265]! } + public var VoiceOver_Navigation_ProxySettings: String { return self._s[1229]! } + public var Call_CallInProgressTitle: String { return self._s[1230]! } + public var Month_ShortSeptember: String { return self._s[1231]! } + public var Watch_ChannelInfo_Title: String { return self._s[1232]! } + public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1235]! } + public var DialogList_PasscodeLockHelp: String { return self._s[1236]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[1237]! } + public var Wallet_Receive_Title: String { return self._s[1238]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[1239]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1240]! } + public var PhotoEditor_CropReset: String { return self._s[1241]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1243]! } + public var Channel_Management_LabelEditor: String { return self._s[1244]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1246]! } + public var PhotoEditor_HighlightsTool: String { return self._s[1247]! } + public var Wallet_Info_WalletCreated: String { return self._s[1248]! } + public var UserInfo_Title: String { return self._s[1249]! } + public var ChatList_HideAction: String { return self._s[1250]! } + public var AccessDenied_Title: String { return self._s[1251]! } + public var DialogList_SearchLabel: String { return self._s[1252]! } + public var Group_Setup_HistoryHidden: String { return self._s[1253]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1254]! } + public var State_Updating: String { return self._s[1256]! } + public var Contacts_TabTitle: String { return self._s[1257]! } + public var Notifications_Badge_CountUnreadMessages: String { return self._s[1259]! } + public var GroupInfo_GroupHistory: String { return self._s[1260]! } + public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1261]! } + public var Wallpaper_SetColor: String { return self._s[1262]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1263]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1264]! } + public var Chat_AttachmentLimitReached: String { return self._s[1265]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1266]! } + public var Contacts_NotRegisteredSection: String { return self._s[1267]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1266]!, self._r[1266]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1268]!, self._r[1268]!, [_1, _2, _3]) } - public var Paint_Clear: String { return self._s[1267]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[1268]! } - public var SocksProxySetup_Connecting: String { return self._s[1269]! } - public var ExplicitContent_AlertChannel: String { return self._s[1270]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[1271]! } - public var Conversation_Contact: String { return self._s[1272]! } - public var Login_CodeExpired: String { return self._s[1273]! } - public var Passport_DiscardMessageAction: String { return self._s[1274]! } - public var ChatList_Context_Unpin: String { return self._s[1275]! } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1276]! } + public var Paint_Clear: String { return self._s[1269]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[1270]! } + public var SocksProxySetup_Connecting: String { return self._s[1271]! } + public var ExplicitContent_AlertChannel: String { return self._s[1272]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[1273]! } + public var Conversation_Contact: String { return self._s[1274]! } + public var Login_CodeExpired: String { return self._s[1275]! } + public var Passport_DiscardMessageAction: String { return self._s[1276]! } + public var ChatList_Context_Unpin: String { return self._s[1277]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1278]! } public func VoiceOver_Chat_MusicFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1277]!, self._r[1277]!, [_0]) + return formatWithArgumentRanges(self._s[1279]!, self._r[1279]!, [_0]) } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[1278]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1279]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[1280]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1281]! } public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1280]!, self._r[1280]!, [_0]) + return formatWithArgumentRanges(self._s[1282]!, self._r[1282]!, [_0]) } - public var Month_ShortApril: String { return self._s[1281]! } - public var AuthSessions_CurrentSession: String { return self._s[1282]! } - public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1285]! } - public var Wallet_Navigation_Cancel: String { return self._s[1287]! } - public var WallpaperPreview_CropTopText: String { return self._s[1288]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1289]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1290]! } + public var Month_ShortApril: String { return self._s[1283]! } + public var AuthSessions_CurrentSession: String { return self._s[1284]! } + public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1287]! } + public var Wallet_Navigation_Cancel: String { return self._s[1289]! } + public var WallpaperPreview_CropTopText: String { return self._s[1290]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1291]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1292]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1291]!, self._r[1291]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1293]!, self._r[1293]!, [_0, _1]) } - public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1292]! } - public var Channel_Setup_TypePrivate: String { return self._s[1294]! } - public var Forward_ChannelReadOnly: String { return self._s[1297]! } - public var PhotoEditor_CurvesBlue: String { return self._s[1298]! } - public var AddContact_SharedContactException: String { return self._s[1299]! } - public var UserInfo_BotPrivacy: String { return self._s[1301]! } - public var Wallet_CreateInvoice_Title: String { return self._s[1302]! } - public var Notification_PassportValueEmail: String { return self._s[1303]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[1304]! } - public var GroupPermission_NewTitle: String { return self._s[1305]! } - public var CallFeedback_ReasonDropped: String { return self._s[1306]! } - public var GroupInfo_Permissions_AddException: String { return self._s[1307]! } - public var Channel_SignMessages_Help: String { return self._s[1309]! } - public var Undo_ChatDeleted: String { return self._s[1311]! } - public var Conversation_ChatBackground: String { return self._s[1312]! } + public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1294]! } + public var Channel_Setup_TypePrivate: String { return self._s[1296]! } + public var Forward_ChannelReadOnly: String { return self._s[1299]! } + public var PhotoEditor_CurvesBlue: String { return self._s[1300]! } + public var AddContact_SharedContactException: String { return self._s[1301]! } + public var UserInfo_BotPrivacy: String { return self._s[1303]! } + public var Wallet_CreateInvoice_Title: String { return self._s[1304]! } + public var Notification_PassportValueEmail: String { return self._s[1305]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[1306]! } + public var GroupPermission_NewTitle: String { return self._s[1307]! } + public var CallFeedback_ReasonDropped: String { return self._s[1308]! } + public var GroupInfo_Permissions_AddException: String { return self._s[1309]! } + public var Channel_SignMessages_Help: String { return self._s[1311]! } + public var Undo_ChatDeleted: String { return self._s[1313]! } + public var Conversation_ChatBackground: String { return self._s[1314]! } public func Wallet_WordCheck_Text(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1313]!, self._r[1313]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1315]!, self._r[1315]!, [_1, _2, _3]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1314]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1315]! } - public var Passport_Language_pt: String { return self._s[1316]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1317]! } - public var NotificationsSound_Popcorn: String { return self._s[1320]! } - public var AutoNightTheme_Disabled: String { return self._s[1321]! } - public var BlockedUsers_LeavePrefix: String { return self._s[1322]! } - public var WallpaperPreview_CustomColorTopText: String { return self._s[1323]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1324]! } - public var WallpaperSearch_ColorBlue: String { return self._s[1325]! } + public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1316]!, self._r[1316]!, [_1, _2, _3]) + } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1317]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1318]! } + public var Passport_Language_pt: String { return self._s[1319]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1320]! } + public var NotificationsSound_Popcorn: String { return self._s[1323]! } + public var AutoNightTheme_Disabled: String { return self._s[1324]! } + public var BlockedUsers_LeavePrefix: String { return self._s[1325]! } + public var WallpaperPreview_CustomColorTopText: String { return self._s[1326]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1327]! } + public var WallpaperSearch_ColorBlue: String { return self._s[1328]! } public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1326]!, self._r[1326]!, [_0]) + return formatWithArgumentRanges(self._s[1329]!, self._r[1329]!, [_0]) } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1327]! } - public var SocksProxySetup_UseForCalls: String { return self._s[1328]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[1330]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1330]! } + public var SocksProxySetup_UseForCalls: String { return self._s[1331]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[1333]! } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1331]!, self._r[1331]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1334]!, self._r[1334]!, ["\(_0)"]) } - public var SocksProxySetup_Hostname: String { return self._s[1334]! } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1335]! } - public var Compose_NewEncryptedChat: String { return self._s[1336]! } - public var Login_CodeFloodError: String { return self._s[1337]! } - public var Calls_TabTitle: String { return self._s[1338]! } - public var Privacy_ProfilePhoto: String { return self._s[1339]! } - public var Passport_Language_he: String { return self._s[1340]! } + public var SocksProxySetup_Hostname: String { return self._s[1337]! } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1338]! } + public var Compose_NewEncryptedChat: String { return self._s[1339]! } + public var Login_CodeFloodError: String { return self._s[1340]! } + public var Calls_TabTitle: String { return self._s[1341]! } + public var Privacy_ProfilePhoto: String { return self._s[1342]! } + public var Passport_Language_he: String { return self._s[1343]! } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1341]!, self._r[1341]!, [_0]) + return formatWithArgumentRanges(self._s[1344]!, self._r[1344]!, [_0]) } - public var GroupPermission_Title: String { return self._s[1342]! } + public var GroupPermission_Title: String { return self._s[1345]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1343]!, self._r[1343]!, [_0]) + return formatWithArgumentRanges(self._s[1346]!, self._r[1346]!, [_0]) } - public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1344]! } - public var GroupPermission_NoChangeInfo: String { return self._s[1345]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[1346]! } - public var Tour_Text1: String { return self._s[1347]! } - public var Channel_EditAdmin_TransferOwnership: String { return self._s[1348]! } - public var Month_ShortFebruary: String { return self._s[1349]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1350]! } + public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1347]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1348]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[1349]! } + public var Tour_Text1: String { return self._s[1350]! } + public var Channel_EditAdmin_TransferOwnership: String { return self._s[1351]! } + public var Month_ShortFebruary: String { return self._s[1352]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1353]! } public func Wallet_Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1351]!, self._r[1351]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1354]!, self._r[1354]!, [_1, _2, _3]) } - public var NotificationsSound_Glass: String { return self._s[1352]! } - public var Appearance_ThemeNightBlue: String { return self._s[1353]! } - public var CheckoutInfo_Pay: String { return self._s[1354]! } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1356]! } - public var Call_CallAgain: String { return self._s[1358]! } - public var AttachmentMenu_SendAsFile: String { return self._s[1359]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[1360]! } - public var Passport_InvalidPasswordError: String { return self._s[1361]! } - public var Watch_Message_Game: String { return self._s[1362]! } - public var Stickers_Install: String { return self._s[1363]! } - public var VoiceOver_Chat_Message: String { return self._s[1364]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1365]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[1367]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1368]! } - public var AuthSessions_OtherSessions: String { return self._s[1369]! } - public var Channel_Username_Help: String { return self._s[1370]! } - public var Camera_Title: String { return self._s[1371]! } - public var IntentsSettings_Title: String { return self._s[1372]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1374]! } - public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1375]! } - public var Channel_AdminLog_SendPolls: String { return self._s[1376]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1377]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1378]! } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1379]! } - public var ScheduledMessages_DeleteMany: String { return self._s[1380]! } - public var Conversation_RestrictedStickers: String { return self._s[1381]! } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[1383]! } - public var UserInfo_TelegramCall: String { return self._s[1385]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1386]! } - public var CreatePoll_OptionsHeader: String { return self._s[1387]! } - public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1388]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1389]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1390]! } - public var Theme_Colors_Proceed: String { return self._s[1391]! } - public var Passport_Identity_EditPersonalDetails: String { return self._s[1392]! } + public var NotificationsSound_Glass: String { return self._s[1355]! } + public var Appearance_ThemeNightBlue: String { return self._s[1356]! } + public var CheckoutInfo_Pay: String { return self._s[1357]! } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1359]! } + public var Call_CallAgain: String { return self._s[1361]! } + public var AttachmentMenu_SendAsFile: String { return self._s[1362]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[1363]! } + public var Passport_InvalidPasswordError: String { return self._s[1364]! } + public var Watch_Message_Game: String { return self._s[1365]! } + public var Stickers_Install: String { return self._s[1366]! } + public var VoiceOver_Chat_Message: String { return self._s[1367]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1368]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[1370]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1371]! } + public var AuthSessions_OtherSessions: String { return self._s[1372]! } + public var Channel_Username_Help: String { return self._s[1373]! } + public var Camera_Title: String { return self._s[1374]! } + public var IntentsSettings_Title: String { return self._s[1375]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1377]! } + public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1378]! } + public var Channel_AdminLog_SendPolls: String { return self._s[1379]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1380]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1381]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1382]! } + public var ScheduledMessages_DeleteMany: String { return self._s[1383]! } + public var Conversation_RestrictedStickers: String { return self._s[1384]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[1386]! } + public var UserInfo_TelegramCall: String { return self._s[1388]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1389]! } + public var CreatePoll_OptionsHeader: String { return self._s[1390]! } + public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1391]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1392]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1393]! } + public var Theme_Colors_Proceed: String { return self._s[1394]! } + public var Passport_Identity_EditPersonalDetails: String { return self._s[1395]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1393]!, self._r[1393]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1396]!, self._r[1396]!, [_1, _2, _3]) } - public var Wallet_Month_GenAugust: String { return self._s[1394]! } - public var Settings_SaveEditedPhotos: String { return self._s[1395]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[1396]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1397]! } - public var Conversation_MessageDialogRetry: String { return self._s[1398]! } - public var ChatList_Context_MarkAsUnread: String { return self._s[1399]! } - public var MessagePoll_SubmitVote: String { return self._s[1400]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[1401]! } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1402]! } - public var Group_Setup_TypeHeader: String { return self._s[1403]! } - public var Paint_RecentStickers: String { return self._s[1404]! } - public var PhotoEditor_GrainTool: String { return self._s[1405]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[1406]! } - public var EmptyGroupInfo_Line4: String { return self._s[1407]! } - public var Watch_AuthRequired: String { return self._s[1409]! } + public var Wallet_Month_GenAugust: String { return self._s[1397]! } + public var Settings_SaveEditedPhotos: String { return self._s[1398]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[1399]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1400]! } + public var Conversation_MessageDialogRetry: String { return self._s[1401]! } + public var ChatList_Context_MarkAsUnread: String { return self._s[1402]! } + public var MessagePoll_SubmitVote: String { return self._s[1403]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[1404]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1405]! } + public var Group_Setup_TypeHeader: String { return self._s[1406]! } + public var Paint_RecentStickers: String { return self._s[1407]! } + public var PhotoEditor_GrainTool: String { return self._s[1408]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[1409]! } + public var EmptyGroupInfo_Line4: String { return self._s[1410]! } + public var Watch_AuthRequired: String { return self._s[1412]! } public func Passport_Email_UseTelegramEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1410]!, self._r[1410]!, [_0]) + return formatWithArgumentRanges(self._s[1413]!, self._r[1413]!, [_0]) } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1411]! } - public var ChannelIntro_Text: String { return self._s[1412]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[1413]! } - public var GroupPermission_NoSendMedia: String { return self._s[1414]! } - public var Calls_AddTab: String { return self._s[1415]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[1416]! } - public var Channel_AdminLog_EmptyFilterText: String { return self._s[1417]! } - public var Conversation_WalletRequiredSetup: String { return self._s[1418]! } - public var Notification_MessageLifetime1d: String { return self._s[1419]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1420]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1421]! } - public var Passport_Identity_GenderFemale: String { return self._s[1422]! } - public var BlockedUsers_BlockTitle: String { return self._s[1423]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1414]! } + public var ChannelIntro_Text: String { return self._s[1415]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[1416]! } + public var GroupPermission_NoSendMedia: String { return self._s[1417]! } + public var Calls_AddTab: String { return self._s[1418]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[1419]! } + public var Channel_AdminLog_EmptyFilterText: String { return self._s[1420]! } + public var Conversation_WalletRequiredSetup: String { return self._s[1421]! } + public var Notification_MessageLifetime1d: String { return self._s[1422]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1423]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1424]! } + public var Passport_Identity_GenderFemale: String { return self._s[1425]! } + public var BlockedUsers_BlockTitle: String { return self._s[1426]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1424]!, self._r[1424]!, [_1]) + return formatWithArgumentRanges(self._s[1427]!, self._r[1427]!, [_1]) } - public var Weekday_Yesterday: String { return self._s[1425]! } - public var WallpaperSearch_ColorBlack: String { return self._s[1426]! } - public var Settings_Context_Logout: String { return self._s[1427]! } - public var Wallet_Info_UnknownTransaction: String { return self._s[1428]! } - public var ChatList_ArchiveAction: String { return self._s[1429]! } - public var AutoNightTheme_Scheduled: String { return self._s[1430]! } - public var TwoFactorSetup_Email_SkipAction: String { return self._s[1431]! } - public var Settings_Devices: String { return self._s[1432]! } - public var ContactInfo_Note: String { return self._s[1433]! } + public var Weekday_Yesterday: String { return self._s[1428]! } + public var WallpaperSearch_ColorBlack: String { return self._s[1429]! } + public var Settings_Context_Logout: String { return self._s[1430]! } + public var Wallet_Info_UnknownTransaction: String { return self._s[1431]! } + public var ChatList_ArchiveAction: String { return self._s[1432]! } + public var AutoNightTheme_Scheduled: String { return self._s[1433]! } + public var TwoFactorSetup_Email_SkipAction: String { return self._s[1434]! } + public var Settings_Devices: String { return self._s[1435]! } + public var ContactInfo_Note: String { return self._s[1436]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1434]!, self._r[1434]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[1437]!, self._r[1437]!, [_1, _2, _3, _4, _5, _6]) } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1435]! } - public var Wallet_Receive_CreateInvoice: String { return self._s[1436]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1437]! } - public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[1438]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1438]! } + public var Wallet_Receive_CreateInvoice: String { return self._s[1439]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1440]! } + public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[1441]! } public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1439]!, self._r[1439]!, [_1, _2]) - } - public var CreatePoll_Create: String { return self._s[1440]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1441]! } - public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1442]!, self._r[1442]!, [_1, _2]) } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1443]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1444]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[1446]! } - public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1447]!, self._r[1447]!, [_1]) + public var CreatePoll_Create: String { return self._s[1443]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1444]! } + public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1445]!, self._r[1445]!, [_1, _2]) } - public var Preview_OpenInInstagram: String { return self._s[1448]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1449]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1446]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1447]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[1449]! } + public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1450]!, self._r[1450]!, [_1]) + } + public var Preview_OpenInInstagram: String { return self._s[1451]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1452]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1450]!, self._r[1450]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1453]!, self._r[1453]!, [_1, _2, _3]) } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1451]!, self._r[1451]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1454]!, self._r[1454]!, [_1, _2]) } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1452]! } - public var ArchivedChats_IntroText3: String { return self._s[1453]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[1454]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1455]! } - public var Wallet_Month_GenSeptember: String { return self._s[1456]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1457]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1455]! } + public var ArchivedChats_IntroText3: String { return self._s[1456]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[1457]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1458]! } + public var Wallet_Month_GenSeptember: String { return self._s[1459]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1460]! } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1458]!, self._r[1458]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1461]!, self._r[1461]!, [_1, _2, _3]) } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1460]! } - public var FastTwoStepSetup_HintSection: String { return self._s[1461]! } - public var Wallpaper_PhotoLibrary: String { return self._s[1462]! } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1463]! } - public var Gif_NoGifsFound: String { return self._s[1464]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[1465]! } - public var VoiceOver_MessageContextDelete: String { return self._s[1466]! } - public var EditTheme_Preview: String { return self._s[1467]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1463]! } + public var FastTwoStepSetup_HintSection: String { return self._s[1464]! } + public var Wallpaper_PhotoLibrary: String { return self._s[1465]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1466]! } + public var Gif_NoGifsFound: String { return self._s[1467]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[1468]! } + public var VoiceOver_MessageContextDelete: String { return self._s[1469]! } + public var EditTheme_Preview: String { return self._s[1470]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1468]!, self._r[1468]!, [_0]) + return formatWithArgumentRanges(self._s[1471]!, self._r[1471]!, [_0]) } - public var GroupInfo_ActionPromote: String { return self._s[1469]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[1470]! } - public var GroupInfo_Permissions_Title: String { return self._s[1471]! } - public var Permissions_ContactsText_v0: String { return self._s[1472]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1473]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1474]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1477]! } - public var Passport_FieldEmailHelp: String { return self._s[1478]! } + public var GroupInfo_ActionPromote: String { return self._s[1472]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[1473]! } + public var GroupInfo_Permissions_Title: String { return self._s[1474]! } + public var Permissions_ContactsText_v0: String { return self._s[1475]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1476]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1477]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1480]! } + public var Passport_FieldEmailHelp: String { return self._s[1481]! } public func Activity_RemindAboutUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1479]!, self._r[1479]!, [_0]) + return formatWithArgumentRanges(self._s[1482]!, self._r[1482]!, [_0]) } - public var Passport_Identity_GenderPlaceholder: String { return self._s[1480]! } - public var Weekday_ShortSaturday: String { return self._s[1481]! } - public var ContactInfo_PhoneLabelMain: String { return self._s[1482]! } - public var Watch_Conversation_UserInfo: String { return self._s[1483]! } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1484]! } - public var GroupPermission_PermissionDisabledByDefault: String { return self._s[1485]! } - public var PrivacyLastSeenSettings_Title: String { return self._s[1486]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[1487]! } - public var PhotoEditor_VignetteTool: String { return self._s[1488]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1489]! } - public var Passport_Language_et: String { return self._s[1490]! } - public var AppUpgrade_Running: String { return self._s[1491]! } - public var Channel_DiscussionGroup_Info: String { return self._s[1493]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1494]! } - public var Passport_Language_bg: String { return self._s[1495]! } - public var Stickers_NoStickersFound: String { return self._s[1497]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1483]! } + public var Weekday_ShortSaturday: String { return self._s[1484]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[1485]! } + public var Watch_Conversation_UserInfo: String { return self._s[1486]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1487]! } + public var GroupPermission_PermissionDisabledByDefault: String { return self._s[1488]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[1489]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[1490]! } + public var PhotoEditor_VignetteTool: String { return self._s[1491]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1492]! } + public var Passport_Language_et: String { return self._s[1493]! } + public var AppUpgrade_Running: String { return self._s[1494]! } + public var Channel_DiscussionGroup_Info: String { return self._s[1496]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1497]! } + public var Passport_Language_bg: String { return self._s[1498]! } + public var Stickers_NoStickersFound: String { return self._s[1500]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1499]!, self._r[1499]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1502]!, self._r[1502]!, [_1, _2]) } public func VoiceOver_Chat_ContactFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1500]!, self._r[1500]!, [_0]) + return formatWithArgumentRanges(self._s[1503]!, self._r[1503]!, [_0]) } - public var Wallet_Month_GenJuly: String { return self._s[1501]! } - public var Wallet_Receive_AddressHeader: String { return self._s[1502]! } - public var Wallet_Send_AmountText: String { return self._s[1503]! } - public var Settings_About: String { return self._s[1504]! } + public var Wallet_Month_GenJuly: String { return self._s[1504]! } + public var Wallet_Receive_AddressHeader: String { return self._s[1505]! } + public var Wallet_Send_AmountText: String { return self._s[1506]! } + public var Settings_About: String { return self._s[1507]! } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1505]!, self._r[1505]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1508]!, self._r[1508]!, [_0, _1, _2]) } - public var ChatList_Context_MarkAsRead: String { return self._s[1507]! } - public var KeyCommand_NewMessage: String { return self._s[1508]! } - public var Group_ErrorAddBlocked: String { return self._s[1509]! } + public var ChatList_Context_MarkAsRead: String { return self._s[1510]! } + public var KeyCommand_NewMessage: String { return self._s[1511]! } + public var Group_ErrorAddBlocked: String { return self._s[1512]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1510]!, self._r[1510]!, [_0]) + return formatWithArgumentRanges(self._s[1513]!, self._r[1513]!, [_0]) } - public var Map_LocationTitle: String { return self._s[1511]! } - public var ReportGroupLocation_Title: String { return self._s[1512]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1513]! } - public var Cache_ClearProgress: String { return self._s[1514]! } + public var Map_LocationTitle: String { return self._s[1514]! } + public var ReportGroupLocation_Title: String { return self._s[1515]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1516]! } + public var Cache_ClearProgress: String { return self._s[1517]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1515]!, self._r[1515]!, [_0]) + return formatWithArgumentRanges(self._s[1518]!, self._r[1518]!, [_0]) } - public var GroupRemoved_AddToGroup: String { return self._s[1516]! } - public var Passport_UpdateRequiredError: String { return self._s[1517]! } - public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1518]! } + public var GroupRemoved_AddToGroup: String { return self._s[1519]! } + public var Passport_UpdateRequiredError: String { return self._s[1520]! } + public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1521]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1519]!, self._r[1519]!, [_1]) + return formatWithArgumentRanges(self._s[1522]!, self._r[1522]!, [_1]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[1521]! } - public var Passport_Identity_MainPageHelp: String { return self._s[1522]! } - public var Conversation_StatusKickedFromGroup: String { return self._s[1523]! } - public var Passport_Language_ka: String { return self._s[1524]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[1524]! } + public var Passport_Identity_MainPageHelp: String { return self._s[1525]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[1526]! } + public var Passport_Language_ka: String { return self._s[1527]! } public func Wallet_Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1525]!, self._r[1525]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1528]!, self._r[1528]!, [_1, _2, _3]) } - public var Call_Decline: String { return self._s[1526]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[1527]! } - public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1530]! } + public var Call_Decline: String { return self._s[1529]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[1530]! } + public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1533]! } public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1531]!, self._r[1531]!, [_0]) + return formatWithArgumentRanges(self._s[1534]!, self._r[1534]!, [_0]) } - public var CallFeedback_Send: String { return self._s[1532]! } - public var EditTheme_EditTitle: String { return self._s[1533]! } + public var CallFeedback_Send: String { return self._s[1535]! } + public var EditTheme_EditTitle: String { return self._s[1536]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1534]!, self._r[1534]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1537]!, self._r[1537]!, [_1, _2]) } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1535]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1538]! } public func Wallet_Updated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1537]!, self._r[1537]!, [_0]) + return formatWithArgumentRanges(self._s[1540]!, self._r[1540]!, [_0]) } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1538]! } - public var Passport_DeletePassport: String { return self._s[1539]! } - public var Appearance_AppIconFilled: String { return self._s[1540]! } - public var Privacy_Calls_P2PAlways: String { return self._s[1541]! } - public var Month_ShortDecember: String { return self._s[1542]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1544]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1541]! } + public var Passport_DeletePassport: String { return self._s[1542]! } + public var Appearance_AppIconFilled: String { return self._s[1543]! } + public var Privacy_Calls_P2PAlways: String { return self._s[1544]! } + public var Month_ShortDecember: String { return self._s[1545]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1547]! } public func Contacts_AccessDeniedHelpLandscape(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1545]!, self._r[1545]!, [_0]) + return formatWithArgumentRanges(self._s[1548]!, self._r[1548]!, [_0]) } - public var Channel_Stickers_Searching: String { return self._s[1546]! } - public var Conversation_EncryptedDescription1: String { return self._s[1547]! } - public var Conversation_EncryptedDescription2: String { return self._s[1548]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[1549]! } - public var Conversation_EncryptedDescription3: String { return self._s[1551]! } - public var PhotoEditor_SharpenTool: String { return self._s[1552]! } - public var Wallet_Configuration_Title: String { return self._s[1553]! } + public var Channel_Stickers_Searching: String { return self._s[1549]! } + public var Conversation_EncryptedDescription1: String { return self._s[1550]! } + public var Conversation_EncryptedDescription2: String { return self._s[1551]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[1552]! } + public var Conversation_EncryptedDescription3: String { return self._s[1554]! } + public var PhotoEditor_SharpenTool: String { return self._s[1555]! } + public var Wallet_Configuration_Title: String { return self._s[1556]! } public func Conversation_AddNameToContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1554]!, self._r[1554]!, [_0]) + return formatWithArgumentRanges(self._s[1557]!, self._r[1557]!, [_0]) } - public var Conversation_EncryptedDescription4: String { return self._s[1556]! } - public var Channel_Members_AddMembers: String { return self._s[1557]! } - public var Wallpaper_Search: String { return self._s[1558]! } - public var Weekday_Friday: String { return self._s[1560]! } - public var Privacy_ContactsSync: String { return self._s[1561]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1562]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1563]! } + public var Conversation_EncryptedDescription4: String { return self._s[1559]! } + public var Channel_Members_AddMembers: String { return self._s[1560]! } + public var Wallpaper_Search: String { return self._s[1561]! } + public var Weekday_Friday: String { return self._s[1563]! } + public var Privacy_ContactsSync: String { return self._s[1564]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1565]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1566]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1564]!, self._r[1564]!, [_0]) + return formatWithArgumentRanges(self._s[1567]!, self._r[1567]!, [_0]) } - public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[1565]! } - public var GroupInfo_Permissions_Removed: String { return self._s[1566]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[1567]! } - public var Passport_Identity_GenderMale: String { return self._s[1568]! } + public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[1568]! } + public var GroupInfo_Permissions_Removed: String { return self._s[1569]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[1570]! } + public var Passport_Identity_GenderMale: String { return self._s[1571]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1569]!, self._r[1569]!, [_0]) + return formatWithArgumentRanges(self._s[1572]!, self._r[1572]!, [_0]) } - public var Notifications_PermissionsKeepDisabled: String { return self._s[1570]! } - public var Conversation_JumpToDate: String { return self._s[1571]! } - public var Contacts_GlobalSearch: String { return self._s[1572]! } - public var AutoDownloadSettings_ResetHelp: String { return self._s[1573]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[1574]! } - public var Profile_MessageLifetime1d: String { return self._s[1575]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[1573]! } + public var Conversation_JumpToDate: String { return self._s[1574]! } + public var Contacts_GlobalSearch: String { return self._s[1575]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[1576]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[1577]! } + public var Profile_MessageLifetime1d: String { return self._s[1578]! } public func MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1576]!, self._r[1576]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1579]!, self._r[1579]!, [_1, _2]) } - public var StickerPack_BuiltinPackName: String { return self._s[1579]! } + public var StickerPack_BuiltinPackName: String { return self._s[1582]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1580]!, self._r[1580]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1583]!, self._r[1583]!, [_1, _2]) } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1581]! } - public var Passport_InfoTitle: String { return self._s[1583]! } - public var Notifications_PermissionsUnreachableText: String { return self._s[1584]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1584]! } + public var Passport_InfoTitle: String { return self._s[1586]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[1587]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1588]!, self._r[1588]!, [_0]) + return formatWithArgumentRanges(self._s[1591]!, self._r[1591]!, [_0]) } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1589]!, self._r[1589]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1592]!, self._r[1592]!, [_1, _2]) } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1590]! } - public var Profile_BotInfo: String { return self._s[1591]! } - public var Watch_Compose_CreateMessage: String { return self._s[1592]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1593]! } - public var Month_ShortNovember: String { return self._s[1594]! } - public var Conversation_ScamWarning: String { return self._s[1595]! } - public var Wallpaper_SetCustomBackground: String { return self._s[1596]! } - public var Appearance_TextSize_Title: String { return self._s[1597]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1598]! } - public var NotificationsSound_Chime: String { return self._s[1599]! } - public var Passport_Language_ko: String { return self._s[1601]! } - public var InviteText_URL: String { return self._s[1602]! } - public var TextFormat_Monospace: String { return self._s[1603]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1593]! } + public var Profile_BotInfo: String { return self._s[1594]! } + public var Watch_Compose_CreateMessage: String { return self._s[1595]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1596]! } + public var Month_ShortNovember: String { return self._s[1597]! } + public var Conversation_ScamWarning: String { return self._s[1598]! } + public var Wallpaper_SetCustomBackground: String { return self._s[1599]! } + public var Appearance_TextSize_Title: String { return self._s[1600]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1601]! } + public var NotificationsSound_Chime: String { return self._s[1602]! } + public var Passport_Language_ko: String { return self._s[1604]! } + public var InviteText_URL: String { return self._s[1605]! } + public var TextFormat_Monospace: String { return self._s[1606]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1604]!, self._r[1604]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1607]!, self._r[1607]!, [_1, _2, _3]) } - public var EditTheme_Edit_BottomInfo: String { return self._s[1605]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[1608]! } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1606]!, self._r[1606]!, [_0]) + return formatWithArgumentRanges(self._s[1609]!, self._r[1609]!, [_0]) } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1607]!, self._r[1607]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1610]!, self._r[1610]!, [_1, _2]) } - public var Wallet_Words_Title: String { return self._s[1608]! } - public var Wallet_Month_ShortMay: String { return self._s[1609]! } - public var EditTheme_CreateTitle: String { return self._s[1611]! } - public var Passport_InfoLearnMore: String { return self._s[1612]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[1613]! } - public var Passport_Identity_AddIdentityCard: String { return self._s[1614]! } - public var Your_card_has_expired: String { return self._s[1615]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[1616]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1617]! } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[1621]! } - public var Conversation_Report: String { return self._s[1623]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1624]! } - public var Notification_MessageLifetime1m: String { return self._s[1625]! } - public var Privacy_ContactsTitle: String { return self._s[1626]! } - public var Conversation_ShareMyContactInfo: String { return self._s[1627]! } - public var Wallet_WordCheck_Title: String { return self._s[1628]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1629]! } - public var Channel_Members_Title: String { return self._s[1630]! } - public var Map_OpenInWaze: String { return self._s[1631]! } - public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1632]! } - public var Login_PhoneBannedError: String { return self._s[1633]! } + public var Wallet_Words_Title: String { return self._s[1611]! } + public var Wallet_Month_ShortMay: String { return self._s[1612]! } + public var EditTheme_CreateTitle: String { return self._s[1614]! } + public var Passport_InfoLearnMore: String { return self._s[1615]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[1616]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[1617]! } + public var Your_card_has_expired: String { return self._s[1618]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[1619]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1620]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[1624]! } + public var Conversation_Report: String { return self._s[1626]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1627]! } + public var Notification_MessageLifetime1m: String { return self._s[1628]! } + public var Privacy_ContactsTitle: String { return self._s[1629]! } + public var Conversation_ShareMyContactInfo: String { return self._s[1630]! } + public var Wallet_WordCheck_Title: String { return self._s[1631]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1632]! } + public var Channel_Members_Title: String { return self._s[1633]! } + public var Map_OpenInWaze: String { return self._s[1634]! } + public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1635]! } + public var Login_PhoneBannedError: String { return self._s[1636]! } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1634]!, self._r[1634]!, [_0]) + return formatWithArgumentRanges(self._s[1637]!, self._r[1637]!, [_0]) } - public var IntentsSettings_MainAccount: String { return self._s[1635]! } - public var Group_Management_AddModeratorHelp: String { return self._s[1636]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[1637]! } - public var Common_OK: String { return self._s[1638]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1639]! } - public var Wallet_Words_NotDoneResponse: String { return self._s[1640]! } - public var Cache_Music: String { return self._s[1641]! } - public var Wallet_Configuration_SourceURL: String { return self._s[1642]! } - public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1643]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1645]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1646]! } + public var IntentsSettings_MainAccount: String { return self._s[1638]! } + public var Group_Management_AddModeratorHelp: String { return self._s[1639]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[1640]! } + public var Common_OK: String { return self._s[1641]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1642]! } + public var Wallet_Words_NotDoneResponse: String { return self._s[1643]! } + public var Cache_Music: String { return self._s[1644]! } + public var Wallet_Configuration_SourceURL: String { return self._s[1645]! } + public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1646]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1648]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1649]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1647]!, self._r[1647]!, [_1]) + return formatWithArgumentRanges(self._s[1650]!, self._r[1650]!, [_1]) } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1648]!, self._r[1648]!, [_0]) + return formatWithArgumentRanges(self._s[1651]!, self._r[1651]!, [_0]) } - public var TwoFactorSetup_Done_Action: String { return self._s[1649]! } + public var TwoFactorSetup_Done_Action: String { return self._s[1652]! } public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1650]!, self._r[1650]!, [_0]) + return formatWithArgumentRanges(self._s[1653]!, self._r[1653]!, [_0]) } - public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1651]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1653]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[1654]! } - public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1656]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1657]! } - public var State_ConnectingToProxyInfo: String { return self._s[1658]! } - public var Conversation_SwipeToReplyHintTitle: String { return self._s[1659]! } - public var Message_VideoMessage: String { return self._s[1661]! } - public var ChannelInfo_DeleteChannel: String { return self._s[1662]! } - public var ContactInfo_PhoneLabelOther: String { return self._s[1663]! } - public var Channel_EditAdmin_CannotEdit: String { return self._s[1664]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[1665]! } + public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1654]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1656]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[1657]! } + public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1659]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1660]! } + public var State_ConnectingToProxyInfo: String { return self._s[1661]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[1662]! } + public var Message_VideoMessage: String { return self._s[1664]! } + public var ChannelInfo_DeleteChannel: String { return self._s[1665]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[1666]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[1667]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[1668]! } public func Wallet_Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1666]!, self._r[1666]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1669]!, self._r[1669]!, [_1, _2, _3]) } - public var WallpaperPreview_SwipeBottomText: String { return self._s[1667]! } - public var Activity_RecordingAudio: String { return self._s[1668]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[1669]! } - public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1670]! } - public var Wallet_Info_Address: String { return self._s[1671]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[1670]! } + public var Activity_RecordingAudio: String { return self._s[1671]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[1672]! } + public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1673]! } + public var Wallet_Info_Address: String { return self._s[1674]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1673]!, self._r[1673]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1676]!, self._r[1676]!, [_0, _1]) } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1677]!, self._r[1677]!, [_0]) + return formatWithArgumentRanges(self._s[1680]!, self._r[1680]!, [_0]) } - public var Conversation_ApplyLocalization: String { return self._s[1678]! } - public var TwoFactorSetup_Intro_Action: String { return self._s[1679]! } - public var UserInfo_AddPhone: String { return self._s[1680]! } - public var Map_ShareLiveLocationHelp: String { return self._s[1681]! } + public var Conversation_ApplyLocalization: String { return self._s[1681]! } + public var TwoFactorSetup_Intro_Action: String { return self._s[1682]! } + public var UserInfo_AddPhone: String { return self._s[1683]! } + public var Map_ShareLiveLocationHelp: String { return self._s[1684]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1682]!, self._r[1682]!, [_0]) + return formatWithArgumentRanges(self._s[1685]!, self._r[1685]!, [_0]) } - public var Passport_Scans: String { return self._s[1684]! } - public var BlockedUsers_Unblock: String { return self._s[1685]! } + public var Passport_Scans: String { return self._s[1687]! } + public var BlockedUsers_Unblock: String { return self._s[1688]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1686]!, self._r[1686]!, [_1]) + return formatWithArgumentRanges(self._s[1689]!, self._r[1689]!, [_1]) } - public var Channel_Management_LabelCreator: String { return self._s[1687]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[1688]! } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1689]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1690]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1691]! } + public var Channel_Management_LabelCreator: String { return self._s[1690]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[1691]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1692]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1693]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1694]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1692]!, self._r[1692]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1695]!, self._r[1695]!, [_0, _1, _2]) } - public var Login_PhoneNumberHelp: String { return self._s[1693]! } - public var LastSeen_ALongTimeAgo: String { return self._s[1694]! } - public var Channel_AdminLog_CanPinMessages: String { return self._s[1695]! } - public var ChannelIntro_CreateChannel: String { return self._s[1696]! } - public var Conversation_UnreadMessages: String { return self._s[1697]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1698]! } - public var Channel_AdminLog_EmptyText: String { return self._s[1699]! } - public var Theme_Context_Apply: String { return self._s[1700]! } - public var Notification_GroupActivated: String { return self._s[1701]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[1702]! } - public var Wallet_Intro_CreateWallet: String { return self._s[1703]! } + public var Login_PhoneNumberHelp: String { return self._s[1696]! } + public var LastSeen_ALongTimeAgo: String { return self._s[1697]! } + public var Channel_AdminLog_CanPinMessages: String { return self._s[1698]! } + public var ChannelIntro_CreateChannel: String { return self._s[1699]! } + public var Conversation_UnreadMessages: String { return self._s[1700]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1701]! } + public var Channel_AdminLog_EmptyText: String { return self._s[1702]! } + public var Theme_Context_Apply: String { return self._s[1703]! } + public var Notification_GroupActivated: String { return self._s[1704]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[1705]! } + public var Wallet_Intro_CreateWallet: String { return self._s[1706]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1704]!, self._r[1704]!, [_0]) + return formatWithArgumentRanges(self._s[1707]!, self._r[1707]!, [_0]) } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1705]!, self._r[1705]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1708]!, self._r[1708]!, [_0, _1]) } - public var GroupInfo_ConvertToSupergroup: String { return self._s[1707]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[1710]! } public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1708]!, self._r[1708]!, [_0]) - } - public var Undo_DeletedChannel: String { return self._s[1709]! } - public var CallFeedback_AddComment: String { return self._s[1710]! } - public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1711]!, self._r[1711]!, [_0]) } - public var Document_TargetConfirmationFormat: String { return self._s[1712]! } + public var Undo_DeletedChannel: String { return self._s[1712]! } + public var CallFeedback_AddComment: String { return self._s[1713]! } + public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1714]!, self._r[1714]!, [_0]) + } + public var Document_TargetConfirmationFormat: String { return self._s[1715]! } public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1713]!, self._r[1713]!, [_0]) + return formatWithArgumentRanges(self._s[1716]!, self._r[1716]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[1714]! } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[1717]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1715]!, self._r[1715]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[1718]!, self._r[1718]!, [_1, _2, _3, _4]) } - public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1716]! } - public var Theme_ErrorNotFound: String { return self._s[1717]! } - public var Contacts_SortByName: String { return self._s[1718]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1719]! } + public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1719]! } + public var Theme_ErrorNotFound: String { return self._s[1720]! } + public var Contacts_SortByName: String { return self._s[1721]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1722]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1721]!, self._r[1721]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1724]!, self._r[1724]!, [_1, _2, _3]) } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1722]! } - public var ScheduledMessages_EditTime: String { return self._s[1723]! } - public var Conversation_ClearSelfHistory: String { return self._s[1724]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1725]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[1726]! } - public var Stickers_SuggestNone: String { return self._s[1727]! } - public var ChatSettings_Cache: String { return self._s[1728]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1729]! } - public var Media_ShareThisPhoto: String { return self._s[1730]! } - public var Chat_SlowmodeTooltipPending: String { return self._s[1731]! } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[1732]! } - public var Conversation_ContextMenuCopyLink: String { return self._s[1733]! } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1734]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1735]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1736]! } - public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[1737]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1725]! } + public var ScheduledMessages_EditTime: String { return self._s[1726]! } + public var Conversation_ClearSelfHistory: String { return self._s[1727]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1728]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[1729]! } + public var Stickers_SuggestNone: String { return self._s[1730]! } + public var ChatSettings_Cache: String { return self._s[1731]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1732]! } + public var Media_ShareThisPhoto: String { return self._s[1733]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[1734]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[1735]! } + public var Conversation_ContextMenuCopyLink: String { return self._s[1736]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1737]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1738]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1739]! } + public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[1740]! } public func Wallet_SecureStorageReset_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1738]!, self._r[1738]!, [_0]) + return formatWithArgumentRanges(self._s[1741]!, self._r[1741]!, [_0]) } - public var Permissions_CellularDataTitle_v0: String { return self._s[1739]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1741]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1742]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[1743]! } - public var Map_OpenIn: String { return self._s[1744]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[1742]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1744]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1745]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[1746]! } + public var Map_OpenIn: String { return self._s[1747]! } public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1747]!, self._r[1747]!, [_1]) + return formatWithArgumentRanges(self._s[1750]!, self._r[1750]!, [_1]) } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1748]!, self._r[1748]!, [_0]) + return formatWithArgumentRanges(self._s[1751]!, self._r[1751]!, [_0]) } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1749]! } - public var MessagePoll_LabelClosed: String { return self._s[1750]! } - public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1752]! } - public var Wallet_Send_SendAnyway: String { return self._s[1753]! } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1754]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[1755]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1756]! } - public var Map_SetThisPlace: String { return self._s[1757]! } - public var Login_SelectCountry_Title: String { return self._s[1758]! } - public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1759]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1752]! } + public var MessagePoll_LabelClosed: String { return self._s[1753]! } + public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1755]! } + public var Wallet_Send_SendAnyway: String { return self._s[1756]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1757]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[1758]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1759]! } + public var Map_SetThisPlace: String { return self._s[1760]! } + public var Login_SelectCountry_Title: String { return self._s[1761]! } + public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1762]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1760]!, self._r[1760]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1763]!, self._r[1763]!, [_1, _2]) } - public var Channel_AdminLog_ChangeInfo: String { return self._s[1761]! } - public var Watch_Suggestion_BRB: String { return self._s[1762]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[1763]! } - public var Contacts_PermissionsTitle: String { return self._s[1764]! } - public var Conversation_RestrictedInline: String { return self._s[1765]! } - public var Appearance_RemoveThemeColor: String { return self._s[1767]! } - public var StickerPack_ViewPack: String { return self._s[1768]! } - public var Wallet_UnknownError: String { return self._s[1769]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[1764]! } + public var Watch_Suggestion_BRB: String { return self._s[1765]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[1766]! } + public var Contacts_PermissionsTitle: String { return self._s[1767]! } + public var Conversation_RestrictedInline: String { return self._s[1768]! } + public var Appearance_RemoveThemeColor: String { return self._s[1770]! } + public var StickerPack_ViewPack: String { return self._s[1771]! } + public var Wallet_UnknownError: String { return self._s[1772]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1770]!, self._r[1770]!, [_0]) + return formatWithArgumentRanges(self._s[1773]!, self._r[1773]!, [_0]) } - public var Compose_NewChannel: String { return self._s[1772]! } - public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1775]! } - public var MessagePoll_LabelQuiz: String { return self._s[1777]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1778]! } - public var Channel_Info_Stickers: String { return self._s[1779]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[1780]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1781]! } - public var Passport_DeletePersonalDetails: String { return self._s[1782]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[1783]! } - public var Channel_DiscussionGroupInfo: String { return self._s[1784]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1785]! } - public var Conversation_SearchNoResults: String { return self._s[1788]! } - public var Wallet_Configuration_ApplyErrorTextURLInvalid: String { return self._s[1789]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1790]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1791]! } - public var Login_Code: String { return self._s[1792]! } - public var EditTheme_Create_BottomInfo: String { return self._s[1793]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[1794]! } - public var Weekday_ShortThursday: String { return self._s[1795]! } - public var Resolve_ErrorNotFound: String { return self._s[1797]! } - public var LastSeen_Offline: String { return self._s[1798]! } - public var PeopleNearby_NoMembers: String { return self._s[1799]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[1800]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1801]! } - public var GroupInfo_Title: String { return self._s[1803]! } - public var NotificationsSound_Note: String { return self._s[1804]! } - public var Conversation_EditingMessagePanelTitle: String { return self._s[1805]! } - public var Watch_Message_Poll: String { return self._s[1806]! } - public var Privacy_Calls: String { return self._s[1807]! } + public var Compose_NewChannel: String { return self._s[1775]! } + public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1778]! } + public var MessagePoll_LabelQuiz: String { return self._s[1780]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1781]! } + public var Channel_Info_Stickers: String { return self._s[1782]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[1783]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1784]! } + public var Passport_DeletePersonalDetails: String { return self._s[1785]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[1786]! } + public var Channel_DiscussionGroupInfo: String { return self._s[1787]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1788]! } + public var Conversation_SearchNoResults: String { return self._s[1791]! } + public var Wallet_Configuration_ApplyErrorTextURLInvalid: String { return self._s[1792]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1793]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1794]! } + public var Login_Code: String { return self._s[1795]! } + public var EditTheme_Create_BottomInfo: String { return self._s[1796]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[1797]! } + public var Weekday_ShortThursday: String { return self._s[1798]! } + public var Resolve_ErrorNotFound: String { return self._s[1800]! } + public var LastSeen_Offline: String { return self._s[1801]! } + public var PeopleNearby_NoMembers: String { return self._s[1802]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[1803]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1804]! } + public var GroupInfo_Title: String { return self._s[1806]! } + public var NotificationsSound_Note: String { return self._s[1807]! } + public var Conversation_EditingMessagePanelTitle: String { return self._s[1808]! } + public var Watch_Message_Poll: String { return self._s[1809]! } + public var Privacy_Calls: String { return self._s[1810]! } public func Channel_AdminLog_MessageRankUsername(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1808]!, self._r[1808]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1811]!, self._r[1811]!, [_1, _2, _3]) } - public var Month_ShortAugust: String { return self._s[1809]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[1810]! } - public var Notifications_Reset: String { return self._s[1811]! } - public var Conversation_Pin: String { return self._s[1812]! } - public var Passport_Language_lv: String { return self._s[1813]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1814]! } - public var BlockedUsers_Info: String { return self._s[1815]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1817]! } - public var Watch_Conversation_Unblock: String { return self._s[1819]! } + public var Month_ShortAugust: String { return self._s[1812]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[1813]! } + public var Notifications_Reset: String { return self._s[1814]! } + public var Conversation_Pin: String { return self._s[1815]! } + public var Passport_Language_lv: String { return self._s[1816]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1817]! } + public var BlockedUsers_Info: String { return self._s[1818]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1820]! } + public var Watch_Conversation_Unblock: String { return self._s[1822]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1820]!, self._r[1820]!, [_0]) - } - public var CloudStorage_Title: String { return self._s[1821]! } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1822]! } - public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1823]!, self._r[1823]!, [_0]) } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1824]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[1825]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1826]! } - public var Passport_Address_EditBankStatement: String { return self._s[1827]! } - public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1828]!, self._r[1828]!, [_1, _2]) + public var CloudStorage_Title: String { return self._s[1824]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1825]! } + public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1826]!, self._r[1826]!, [_0]) } - public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1829]! } - public var ShareMenu_Comment: String { return self._s[1830]! } - public var Permissions_ContactsTitle_v0: String { return self._s[1831]! } - public var Notifications_PermissionsTitle: String { return self._s[1832]! } - public var GroupPermission_NoSendLinks: String { return self._s[1833]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1834]! } - public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1835]! } - public var Settings_Support: String { return self._s[1836]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1837]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1838]! } - public var Privacy_Forwards_Preview: String { return self._s[1839]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[1840]! } - public var Watch_Stickers_StickerPacks: String { return self._s[1841]! } - public var Common_Select: String { return self._s[1843]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1844]! } - public var WallpaperSearch_ColorGray: String { return self._s[1847]! } - public var TwoFactorSetup_Password_PlaceholderPassword: String { return self._s[1848]! } - public var TwoFactorSetup_Hint_SkipAction: String { return self._s[1849]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1850]! } - public var PollResults_Title: String { return self._s[1851]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1852]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[1853]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1854]! } - public var Widget_AuthRequired: String { return self._s[1855]! } - public var Camera_FlashOn: String { return self._s[1856]! } - public var Conversation_ContextMenuLookUp: String { return self._s[1857]! } - public var Channel_Stickers_NotFoundHelp: String { return self._s[1858]! } - public var Watch_Suggestion_OK: String { return self._s[1859]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1827]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[1828]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1829]! } + public var Passport_Address_EditBankStatement: String { return self._s[1830]! } + public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1831]!, self._r[1831]!, [_1, _2]) + } + public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1832]! } + public var ShareMenu_Comment: String { return self._s[1833]! } + public var Permissions_ContactsTitle_v0: String { return self._s[1834]! } + public var Notifications_PermissionsTitle: String { return self._s[1835]! } + public var GroupPermission_NoSendLinks: String { return self._s[1836]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1837]! } + public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1838]! } + public var Settings_Support: String { return self._s[1839]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1840]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1841]! } + public var Privacy_Forwards_Preview: String { return self._s[1842]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[1843]! } + public var Watch_Stickers_StickerPacks: String { return self._s[1844]! } + public var Common_Select: String { return self._s[1846]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1847]! } + public var WallpaperSearch_ColorGray: String { return self._s[1850]! } + public var TwoFactorSetup_Password_PlaceholderPassword: String { return self._s[1851]! } + public var TwoFactorSetup_Hint_SkipAction: String { return self._s[1852]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1853]! } + public var PollResults_Title: String { return self._s[1854]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1855]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[1856]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1857]! } + public var Widget_AuthRequired: String { return self._s[1858]! } + public var Camera_FlashOn: String { return self._s[1859]! } + public var Conversation_ContextMenuLookUp: String { return self._s[1860]! } + public var Channel_Stickers_NotFoundHelp: String { return self._s[1861]! } + public var Watch_Suggestion_OK: String { return self._s[1862]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1861]!, self._r[1861]!, [_0]) + return formatWithArgumentRanges(self._s[1864]!, self._r[1864]!, [_0]) } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1863]!, self._r[1863]!, [_0]) + return formatWithArgumentRanges(self._s[1866]!, self._r[1866]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[1864]! } - public var DialogList_AdLabel: String { return self._s[1865]! } - public var WatchRemote_NotificationText: String { return self._s[1866]! } - public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1867]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1868]! } - public var Conversation_ReportSpam: String { return self._s[1869]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1870]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[1872]! } - public var PhoneLabel_Title: String { return self._s[1873]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[1874]! } - public var Settings_ChangePhoneNumber: String { return self._s[1875]! } - public var Notifications_ExceptionsTitle: String { return self._s[1876]! } - public var Notifications_AlertTones: String { return self._s[1877]! } - public var Call_ReportIncludeLogDescription: String { return self._s[1878]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1879]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1880]! } - public var VoiceOver_Chat_Photo: String { return self._s[1882]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[1883]! } - public var ReportPeer_ReasonOther: String { return self._s[1884]! } - public var ChatList_Context_JoinChannel: String { return self._s[1885]! } - public var KeyCommand_ScrollDown: String { return self._s[1887]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[1888]! } + public var TextFormat_Strikethrough: String { return self._s[1867]! } + public var DialogList_AdLabel: String { return self._s[1868]! } + public var WatchRemote_NotificationText: String { return self._s[1869]! } + public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1870]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1871]! } + public var Conversation_ReportSpam: String { return self._s[1872]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1873]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[1875]! } + public var PhoneLabel_Title: String { return self._s[1876]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[1877]! } + public var Settings_ChangePhoneNumber: String { return self._s[1878]! } + public var Notifications_ExceptionsTitle: String { return self._s[1879]! } + public var Notifications_AlertTones: String { return self._s[1880]! } + public var Call_ReportIncludeLogDescription: String { return self._s[1881]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1882]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1883]! } + public var VoiceOver_Chat_Photo: String { return self._s[1885]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[1886]! } + public var ReportPeer_ReasonOther: String { return self._s[1887]! } + public var ChatList_Context_JoinChannel: String { return self._s[1888]! } + public var KeyCommand_ScrollDown: String { return self._s[1890]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[1891]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1889]!, self._r[1889]!, [_0]) + return formatWithArgumentRanges(self._s[1892]!, self._r[1892]!, [_0]) } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1890]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1891]! } - public var AuthSessions_LogOut: String { return self._s[1892]! } - public var Passport_Identity_TypeInternalPassport: String { return self._s[1893]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1894]! } - public var Passport_Phone_Title: String { return self._s[1895]! } - public var ContactList_Context_StartSecretChat: String { return self._s[1896]! } - public var Settings_PhoneNumber: String { return self._s[1897]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1893]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1894]! } + public var AuthSessions_LogOut: String { return self._s[1895]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[1896]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1897]! } + public var Passport_Phone_Title: String { return self._s[1898]! } + public var ContactList_Context_StartSecretChat: String { return self._s[1899]! } + public var Settings_PhoneNumber: String { return self._s[1900]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1898]!, self._r[1898]!, [_0]) + return formatWithArgumentRanges(self._s[1901]!, self._r[1901]!, [_0]) } - public var NotificationsSound_Alert: String { return self._s[1900]! } - public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1901]! } - public var WebSearch_SearchNoResults: String { return self._s[1902]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1904]! } - public var Wallet_Configuration_SourceInfo: String { return self._s[1905]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1906]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[1907]! } - public var PhotoEditor_CurvesTool: String { return self._s[1908]! } - public var Checkout_PaymentMethod: String { return self._s[1910]! } + public var NotificationsSound_Alert: String { return self._s[1903]! } + public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1904]! } + public var WebSearch_SearchNoResults: String { return self._s[1905]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1907]! } + public var Wallet_Configuration_SourceInfo: String { return self._s[1908]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1909]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[1910]! } + public var PhotoEditor_CurvesTool: String { return self._s[1911]! } + public var Checkout_PaymentMethod: String { return self._s[1913]! } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1911]!, self._r[1911]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1914]!, self._r[1914]!, [_1, _2]) } - public var Contacts_AccessDeniedError: String { return self._s[1912]! } - public var Camera_PhotoMode: String { return self._s[1915]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1916]! } - public var Appearance_TextSize_Apply: String { return self._s[1917]! } - public var Passport_Address_AddUtilityBill: String { return self._s[1919]! } - public var CallSettings_OnMobile: String { return self._s[1920]! } - public var Tour_Text2: String { return self._s[1921]! } + public var Contacts_AccessDeniedError: String { return self._s[1915]! } + public var Camera_PhotoMode: String { return self._s[1918]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1919]! } + public var Appearance_TextSize_Apply: String { return self._s[1920]! } + public var Passport_Address_AddUtilityBill: String { return self._s[1922]! } + public var CallSettings_OnMobile: String { return self._s[1923]! } + public var Tour_Text2: String { return self._s[1924]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1922]!, self._r[1922]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1925]!, self._r[1925]!, [_1, _2]) } - public var DialogList_EncryptionProcessing: String { return self._s[1924]! } - public var Permissions_Skip: String { return self._s[1925]! } - public var Wallet_Words_NotDoneOk: String { return self._s[1926]! } - public var SecretImage_Title: String { return self._s[1927]! } - public var Watch_MessageView_Title: String { return self._s[1928]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1929]! } - public var AttachmentMenu_Poll: String { return self._s[1930]! } + public var DialogList_EncryptionProcessing: String { return self._s[1927]! } + public var Permissions_Skip: String { return self._s[1928]! } + public var Wallet_Words_NotDoneOk: String { return self._s[1929]! } + public var SecretImage_Title: String { return self._s[1930]! } + public var Watch_MessageView_Title: String { return self._s[1931]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1932]! } + public var AttachmentMenu_Poll: String { return self._s[1933]! } public func Notification_GroupInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1931]!, self._r[1931]!, [_0]) + return formatWithArgumentRanges(self._s[1934]!, self._r[1934]!, [_0]) } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1932]!, self._r[1932]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1935]!, self._r[1935]!, [_1, _2]) } - public var Notification_CallCanceled: String { return self._s[1933]! } - public var WallpaperPreview_Title: String { return self._s[1934]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1935]! } - public var Settings_ProxyConnecting: String { return self._s[1936]! } - public var Settings_CheckPhoneNumberText: String { return self._s[1938]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[1939]! } - public var Wallet_Intro_Title: String { return self._s[1940]! } - public var TwoFactorSetup_Password_Action: String { return self._s[1941]! } - public var Profile_MessageLifetime5s: String { return self._s[1942]! } - public var Username_InvalidCharacters: String { return self._s[1943]! } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1944]! } - public var ScheduledMessages_ClearAll: String { return self._s[1945]! } - public var WallpaperPreview_CropBottomText: String { return self._s[1946]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[1947]! } - public var Settings_AddAccount: String { return self._s[1948]! } - public var Notification_CreatedChannel: String { return self._s[1951]! } + public var Notification_CallCanceled: String { return self._s[1936]! } + public var WallpaperPreview_Title: String { return self._s[1937]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1938]! } + public var Settings_ProxyConnecting: String { return self._s[1939]! } + public var Settings_CheckPhoneNumberText: String { return self._s[1941]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[1942]! } + public var Wallet_Intro_Title: String { return self._s[1943]! } + public var TwoFactorSetup_Password_Action: String { return self._s[1944]! } + public var Profile_MessageLifetime5s: String { return self._s[1945]! } + public var Username_InvalidCharacters: String { return self._s[1946]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1947]! } + public var ScheduledMessages_ClearAll: String { return self._s[1948]! } + public var WallpaperPreview_CropBottomText: String { return self._s[1949]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[1950]! } + public var Settings_AddAccount: String { return self._s[1951]! } + public var Notification_CreatedChannel: String { return self._s[1954]! } public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1952]!, self._r[1952]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1955]!, self._r[1955]!, [_1, _2, _3]) } - public var Passcode_AppLockedAlert: String { return self._s[1954]! } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1955]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[1956]! } - public var Contacts_TopSection: String { return self._s[1957]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1958]! } + public var Passcode_AppLockedAlert: String { return self._s[1957]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1958]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[1959]! } + public var Contacts_TopSection: String { return self._s[1960]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1961]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1959]!, self._r[1959]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1962]!, self._r[1962]!, [_0, _1]) } - public var Wallet_Info_Receive: String { return self._s[1960]! } - public var Wallet_Completed_ViewWallet: String { return self._s[1961]! } + public var Wallet_Info_Receive: String { return self._s[1963]! } + public var Wallet_Completed_ViewWallet: String { return self._s[1964]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1962]!, self._r[1962]!, [_0]) + return formatWithArgumentRanges(self._s[1965]!, self._r[1965]!, [_0]) } - public var ReportPeer_ReasonSpam: String { return self._s[1963]! } - public var UserInfo_TapToCall: String { return self._s[1964]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1966]! } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1967]! } - public var Common_Search: String { return self._s[1968]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1969]! } + public var ReportPeer_ReasonSpam: String { return self._s[1966]! } + public var UserInfo_TapToCall: String { return self._s[1967]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1969]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1970]! } + public var Common_Search: String { return self._s[1971]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1972]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1970]!, self._r[1970]!, [_0]) + return formatWithArgumentRanges(self._s[1973]!, self._r[1973]!, [_0]) } - public var Wallet_Month_ShortJuly: String { return self._s[1971]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1973]! } - public var Message_InvoiceLabel: String { return self._s[1974]! } - public var Conversation_InputTextPlaceholder: String { return self._s[1975]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1976]! } + public var Wallet_Month_ShortJuly: String { return self._s[1974]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1976]! } + public var Message_InvoiceLabel: String { return self._s[1977]! } + public var Conversation_InputTextPlaceholder: String { return self._s[1978]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1979]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1977]!, self._r[1977]!, [_0]) + return formatWithArgumentRanges(self._s[1980]!, self._r[1980]!, [_0]) } - public var IntentsSettings_Reset: String { return self._s[1978]! } - public var Conversation_Info: String { return self._s[1979]! } - public var Login_InfoDeletePhoto: String { return self._s[1980]! } - public var Passport_Language_vi: String { return self._s[1982]! } - public var UserInfo_ScamUserWarning: String { return self._s[1983]! } - public var Conversation_Search: String { return self._s[1984]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1986]! } - public var ReportPeer_ReasonPornography: String { return self._s[1987]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1988]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1989]! } - public var Map_LiveLocationGroupDescription: String { return self._s[1990]! } - public var Channel_Setup_TypeHeader: String { return self._s[1991]! } - public var AuthSessions_LoggedIn: String { return self._s[1992]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1993]! } - public var Login_SmsRequestState3: String { return self._s[1994]! } - public var Passport_Address_EditUtilityBill: String { return self._s[1995]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1996]! } - public var Join_ChannelsTooMuch: String { return self._s[1997]! } - public var Channel_Edit_LinkItem: String { return self._s[1998]! } - public var Privacy_Calls_P2PNever: String { return self._s[1999]! } - public var Conversation_AddToReadingList: String { return self._s[2001]! } - public var Share_MultipleMessagesDisabled: String { return self._s[2002]! } - public var Message_Animation: String { return self._s[2003]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[2004]! } - public var Map_Unknown: String { return self._s[2005]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[2006]! } + public var IntentsSettings_Reset: String { return self._s[1981]! } + public var Conversation_Info: String { return self._s[1982]! } + public var Login_InfoDeletePhoto: String { return self._s[1983]! } + public var Passport_Language_vi: String { return self._s[1985]! } + public var UserInfo_ScamUserWarning: String { return self._s[1986]! } + public var Conversation_Search: String { return self._s[1987]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1989]! } + public var ReportPeer_ReasonPornography: String { return self._s[1990]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1991]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1992]! } + public var Map_LiveLocationGroupDescription: String { return self._s[1993]! } + public var Channel_Setup_TypeHeader: String { return self._s[1994]! } + public var AuthSessions_LoggedIn: String { return self._s[1995]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1996]! } + public var Login_SmsRequestState3: String { return self._s[1997]! } + public var Passport_Address_EditUtilityBill: String { return self._s[1998]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1999]! } + public var Join_ChannelsTooMuch: String { return self._s[2000]! } + public var Channel_Edit_LinkItem: String { return self._s[2001]! } + public var Privacy_Calls_P2PNever: String { return self._s[2002]! } + public var Conversation_AddToReadingList: String { return self._s[2004]! } + public var Share_MultipleMessagesDisabled: String { return self._s[2005]! } + public var Message_Animation: String { return self._s[2006]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[2007]! } + public var Map_Unknown: String { return self._s[2008]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[2009]! } public func PUSH_PINNED_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2007]!, self._r[2007]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2010]!, self._r[2010]!, [_1, _2]) } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2008]!, self._r[2008]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2011]!, self._r[2011]!, [_1, _2]) } - public var Call_StatusRequesting: String { return self._s[2009]! } - public var Conversation_SecretChatContextBotAlert: String { return self._s[2010]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[2011]! } + public var Call_StatusRequesting: String { return self._s[2012]! } + public var Conversation_SecretChatContextBotAlert: String { return self._s[2013]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[2014]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2012]!, self._r[2012]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2015]!, self._r[2015]!, [_1, _2]) } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2013]!, self._r[2013]!, [_0]) + return formatWithArgumentRanges(self._s[2016]!, self._r[2016]!, [_0]) } - public var Update_Skip: String { return self._s[2014]! } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2015]! } - public var Message_PinnedPollMessage: String { return self._s[2016]! } - public var BlockedUsers_Title: String { return self._s[2017]! } + public var Update_Skip: String { return self._s[2017]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2018]! } + public var BlockedUsers_Title: String { return self._s[2019]! } + public var Weekday_Monday: String { return self._s[2020]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2018]!, self._r[2018]!, [_1]) + return formatWithArgumentRanges(self._s[2021]!, self._r[2021]!, [_1]) } - public var Username_CheckingUsername: String { return self._s[2019]! } - public var NotificationsSound_Bell: String { return self._s[2020]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[2021]! } - public var Weekday_Monday: String { return self._s[2022]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[2023]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[2024]! } - public var ChatSettings_Groups: String { return self._s[2025]! } - public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2026]! } + public var Username_CheckingUsername: String { return self._s[2022]! } + public var NotificationsSound_Bell: String { return self._s[2023]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[2024]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[2025]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[2026]! } + public var ChatSettings_Groups: String { return self._s[2027]! } + public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2028]! } public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2027]!, self._r[2027]!, [_0]) + return formatWithArgumentRanges(self._s[2029]!, self._r[2029]!, [_0]) } - public var Your_card_was_declined: String { return self._s[2028]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2030]! } - public var Wallet_Month_ShortApril: String { return self._s[2031]! } - public var ChatList_Unmute: String { return self._s[2032]! } - public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2033]! } - public var PhotoEditor_CurvesAll: String { return self._s[2034]! } - public var Weekday_ShortTuesday: String { return self._s[2035]! } - public var DialogList_Read: String { return self._s[2036]! } - public var Appearance_AppIconClassic: String { return self._s[2037]! } - public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[2038]! } - public var Passport_Identity_Gender: String { return self._s[2039]! } + public var Your_card_was_declined: String { return self._s[2030]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2032]! } + public var Wallet_Month_ShortApril: String { return self._s[2033]! } + public var ChatList_Unmute: String { return self._s[2034]! } + public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2035]! } + public var PhotoEditor_CurvesAll: String { return self._s[2036]! } + public var Weekday_ShortTuesday: String { return self._s[2037]! } + public var DialogList_Read: String { return self._s[2038]! } + public var Appearance_AppIconClassic: String { return self._s[2039]! } + public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[2040]! } + public var Passport_Identity_Gender: String { return self._s[2041]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2040]!, self._r[2040]!, [_0]) + return formatWithArgumentRanges(self._s[2042]!, self._r[2042]!, [_0]) } - public var Target_SelectGroup: String { return self._s[2041]! } - public var Map_HomeAndWorkInfo: String { return self._s[2043]! } + public var Target_SelectGroup: String { return self._s[2043]! } + public var Map_HomeAndWorkInfo: String { return self._s[2045]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2044]!, self._r[2044]!, [_0]) + return formatWithArgumentRanges(self._s[2046]!, self._r[2046]!, [_0]) } - public var Passport_Language_en: String { return self._s[2045]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[2046]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2047]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[2048]! } - public var ScheduledMessages_SendNow: String { return self._s[2049]! } - public var Checkout_NewCard_PaymentCard: String { return self._s[2051]! } - public var Login_InfoHelp: String { return self._s[2052]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2053]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2054]! } + public var Passport_Language_en: String { return self._s[2047]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[2048]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2049]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[2050]! } + public var ScheduledMessages_SendNow: String { return self._s[2051]! } + public var Checkout_NewCard_PaymentCard: String { return self._s[2053]! } + public var Login_InfoHelp: String { return self._s[2054]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2055]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2056]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2055]!, self._r[2055]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2057]!, self._r[2057]!, [_1, _2]) } - public var SocksProxySetup_AddProxy: String { return self._s[2058]! } - public var CreatePoll_Title: String { return self._s[2059]! } - public var MessagePoll_QuizNoUsers: String { return self._s[2060]! } - public var Conversation_ViewTheme: String { return self._s[2061]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2062]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2063]! } - public var TwoFactorSetup_Intro_Text: String { return self._s[2064]! } - public var UserInfo_GroupsInCommon: String { return self._s[2065]! } - public var TelegramWallet_Intro_TermsUrl: String { return self._s[2066]! } - public var Call_AudioRouteHide: String { return self._s[2067]! } + public var SocksProxySetup_AddProxy: String { return self._s[2060]! } + public var CreatePoll_Title: String { return self._s[2061]! } + public var MessagePoll_QuizNoUsers: String { return self._s[2062]! } + public var Conversation_ViewTheme: String { return self._s[2063]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2064]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2065]! } + public var TwoFactorSetup_Intro_Text: String { return self._s[2066]! } + public var UserInfo_GroupsInCommon: String { return self._s[2067]! } + public var TelegramWallet_Intro_TermsUrl: String { return self._s[2068]! } + public var Call_AudioRouteHide: String { return self._s[2069]! } public func Wallet_Info_TransactionDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2069]!, self._r[2069]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2071]!, self._r[2071]!, [_1, _2]) } - public var ContactInfo_PhoneLabelMobile: String { return self._s[2070]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2071]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[2072]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[2072]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2073]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[2074]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2073]!, self._r[2073]!, [_0]) + return formatWithArgumentRanges(self._s[2075]!, self._r[2075]!, [_0]) } - public var TextFormat_Bold: String { return self._s[2074]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2075]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[2076]! } - public var Notifications_Title: String { return self._s[2077]! } - public var Group_Username_InvalidTooShort: String { return self._s[2078]! } - public var Channel_ErrorAddTooMuch: String { return self._s[2079]! } + public var TextFormat_Bold: String { return self._s[2076]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2077]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[2078]! } + public var Notifications_Title: String { return self._s[2079]! } + public var Group_Username_InvalidTooShort: String { return self._s[2080]! } + public var Channel_ErrorAddTooMuch: String { return self._s[2081]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2080]!, self._r[2080]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2082]!, self._r[2082]!, ["\(_0)"]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[2082]! } - public var Stickers_SuggestAdded: String { return self._s[2083]! } - public var Login_CountryCode: String { return self._s[2084]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[2085]! } - public var Map_GetDirections: String { return self._s[2086]! } - public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2087]! } - public var Login_PhoneFloodError: String { return self._s[2088]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[2084]! } + public var Stickers_SuggestAdded: String { return self._s[2085]! } + public var Login_CountryCode: String { return self._s[2086]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[2087]! } + public var Map_GetDirections: String { return self._s[2088]! } + public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2089]! } + public var Login_PhoneFloodError: String { return self._s[2090]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2089]!, self._r[2089]!, [_0]) + return formatWithArgumentRanges(self._s[2091]!, self._r[2091]!, [_0]) } public func Wallet_Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2090]!, self._r[2090]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2092]!, self._r[2092]!, [_1, _2, _3]) } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2091]! } - public var Settings_SetUsername: String { return self._s[2093]! } - public var Group_Location_ChangeLocation: String { return self._s[2094]! } - public var Notification_GroupInviterSelf: String { return self._s[2095]! } - public var InstantPage_TapToOpenLink: String { return self._s[2096]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2093]! } + public var Settings_SetUsername: String { return self._s[2095]! } + public var Group_Location_ChangeLocation: String { return self._s[2096]! } + public var Notification_GroupInviterSelf: String { return self._s[2097]! } + public var InstantPage_TapToOpenLink: String { return self._s[2098]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2097]!, self._r[2097]!, [_0]) + return formatWithArgumentRanges(self._s[2099]!, self._r[2099]!, [_0]) } - public var Watch_Suggestion_TalkLater: String { return self._s[2098]! } - public var SecretChat_Title: String { return self._s[2099]! } - public var Group_UpgradeNoticeText1: String { return self._s[2100]! } - public var AuthSessions_Title: String { return self._s[2101]! } + public var Watch_Suggestion_TalkLater: String { return self._s[2100]! } + public var SecretChat_Title: String { return self._s[2101]! } + public var Group_UpgradeNoticeText1: String { return self._s[2102]! } + public var AuthSessions_Title: String { return self._s[2103]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2102]!, self._r[2102]!, [_0]) + return formatWithArgumentRanges(self._s[2104]!, self._r[2104]!, [_0]) } - public var PhotoEditor_CropAuto: String { return self._s[2103]! } - public var Channel_About_Title: String { return self._s[2104]! } - public var Theme_ThemeChanged: String { return self._s[2105]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[2106]! } + public var PhotoEditor_CropAuto: String { return self._s[2105]! } + public var Channel_About_Title: String { return self._s[2106]! } + public var Theme_ThemeChanged: String { return self._s[2107]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[2108]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2108]!, self._r[2108]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2110]!, self._r[2110]!, ["\(_0)"]) } - public var VoiceOver_MessageContextReport: String { return self._s[2109]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2111]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[2112]! } + public var VoiceOver_MessageContextReport: String { return self._s[2111]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2113]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[2114]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2113]!, self._r[2113]!, [_1]) + return formatWithArgumentRanges(self._s[2115]!, self._r[2115]!, [_1]) } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2115]!, self._r[2115]!, [_0]) + return formatWithArgumentRanges(self._s[2117]!, self._r[2117]!, [_0]) } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2116]!, self._r[2116]!, [_0]) + return formatWithArgumentRanges(self._s[2118]!, self._r[2118]!, [_0]) } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2117]! } - public var Presence_online: String { return self._s[2120]! } - public var PasscodeSettings_Title: String { return self._s[2121]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2122]! } - public var Web_OpenExternal: String { return self._s[2123]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[2125]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2126]! } - public var LocalGroup_Title: String { return self._s[2127]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2119]! } + public var Presence_online: String { return self._s[2122]! } + public var PasscodeSettings_Title: String { return self._s[2123]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2124]! } + public var Web_OpenExternal: String { return self._s[2125]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[2127]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2128]! } + public var LocalGroup_Title: String { return self._s[2129]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2128]!, self._r[2128]!, [_0]) + return formatWithArgumentRanges(self._s[2130]!, self._r[2130]!, [_0]) } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2129]! } - public var Conversation_StopQuizConfirmation: String { return self._s[2130]! } - public var Map_YouAreHere: String { return self._s[2131]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2131]! } + public var Conversation_StopQuizConfirmation: String { return self._s[2132]! } + public var Map_YouAreHere: String { return self._s[2133]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2132]!, self._r[2132]!, [_0]) + return formatWithArgumentRanges(self._s[2134]!, self._r[2134]!, [_0]) } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2133]!, self._r[2133]!, [_0]) + return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[2134]! } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2135]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2136]! } + public var Theme_Context_ChangeColors: String { return self._s[2136]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2137]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2138]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2137]!, self._r[2137]!, [_0]) + return formatWithArgumentRanges(self._s[2139]!, self._r[2139]!, [_0]) } public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2138]!, self._r[2138]!, [_0]) + return formatWithArgumentRanges(self._s[2140]!, self._r[2140]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[2139]! } - public var Bot_Start: String { return self._s[2140]! } + public var SocksProxySetup_Username: String { return self._s[2141]! } + public var Bot_Start: String { return self._s[2142]! } public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2141]!, self._r[2141]!, [_0]) + return formatWithArgumentRanges(self._s[2143]!, self._r[2143]!, [_0]) } public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2142]!, self._r[2142]!, [_0]) + return formatWithArgumentRanges(self._s[2144]!, self._r[2144]!, [_0]) } - public var Contacts_SortByPresence: String { return self._s[2143]! } - public var AccentColor_Title: String { return self._s[2145]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2146]! } + public var Contacts_SortByPresence: String { return self._s[2145]! } + public var AccentColor_Title: String { return self._s[2147]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2148]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2147]!, self._r[2147]!, [_1, _2]) - } - public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2148]!, self._r[2148]!, [_0]) - } - public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2149]!, self._r[2149]!, [_1, _2]) } - public var Passport_Email_EnterOtherEmail: String { return self._s[2150]! } - public var Login_InfoAvatarPhoto: String { return self._s[2151]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2152]! } - public var Tour_Title4: String { return self._s[2153]! } - public var Passport_Identity_Translation: String { return self._s[2154]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2155]! } - public var Login_TermsOfServiceLabel: String { return self._s[2157]! } - public var Passport_Language_it: String { return self._s[2158]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2159]! } - public var Passport_Identity_SelfieHelp: String { return self._s[2160]! } - public var Conversation_ClearAll: String { return self._s[2162]! } - public var Wallet_Send_UninitializedText: String { return self._s[2164]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[2165]! } - public var TwoStepAuth_FloodError: String { return self._s[2166]! } + public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2150]!, self._r[2150]!, [_0]) + } + public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2151]!, self._r[2151]!, [_1, _2]) + } + public var Passport_Email_EnterOtherEmail: String { return self._s[2152]! } + public var Login_InfoAvatarPhoto: String { return self._s[2153]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2154]! } + public var Tour_Title4: String { return self._s[2155]! } + public var Passport_Identity_Translation: String { return self._s[2156]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2157]! } + public var Login_TermsOfServiceLabel: String { return self._s[2159]! } + public var Passport_Language_it: String { return self._s[2160]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2161]! } + public var Passport_Identity_SelfieHelp: String { return self._s[2162]! } + public var Conversation_ClearAll: String { return self._s[2164]! } + public var Wallet_Send_UninitializedText: String { return self._s[2166]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[2167]! } + public var TwoStepAuth_FloodError: String { return self._s[2168]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2167]!, self._r[2167]!, [_1]) + return formatWithArgumentRanges(self._s[2169]!, self._r[2169]!, [_1]) } - public var Paint_Delete: String { return self._s[2168]! } + public var Paint_Delete: String { return self._s[2170]! } public func Wallet_Sent_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2169]!, self._r[2169]!, [_0]) + return formatWithArgumentRanges(self._s[2171]!, self._r[2171]!, [_0]) } - public var Privacy_AddNewPeer: String { return self._s[2170]! } + public var Privacy_AddNewPeer: String { return self._s[2172]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2171]!, self._r[2171]!, [_1]) + return formatWithArgumentRanges(self._s[2173]!, self._r[2173]!, [_1]) } - public var LogoutOptions_SetPasscodeText: String { return self._s[2172]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[2174]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2173]!, self._r[2173]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2175]!, self._r[2175]!, [_1, _2]) } - public var Message_PinnedAudioMessage: String { return self._s[2174]! } + public var Message_PinnedAudioMessage: String { return self._s[2176]! } public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2175]!, self._r[2175]!, [_0]) + return formatWithArgumentRanges(self._s[2177]!, self._r[2177]!, [_0]) } - public var Notification_Mute1hMin: String { return self._s[2176]! } - public var Notifications_GroupNotificationsSound: String { return self._s[2177]! } - public var Wallet_Month_GenNovember: String { return self._s[2178]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[2179]! } - public var Conversation_MessageEditedLabel: String { return self._s[2180]! } + public var Notification_Mute1hMin: String { return self._s[2178]! } + public var Notifications_GroupNotificationsSound: String { return self._s[2179]! } + public var Wallet_Month_GenNovember: String { return self._s[2180]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[2181]! } + public var Conversation_MessageEditedLabel: String { return self._s[2182]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2181]!, self._r[2181]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2183]!, self._r[2183]!, [_0, _1]) } - public var Notification_Exceptions_AlwaysOff: String { return self._s[2182]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2183]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[2184]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2185]! } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2184]!, self._r[2184]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2186]!, self._r[2186]!, [_0, _1, _2]) } - public var NetworkUsageSettings_ResetStats: String { return self._s[2185]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[2187]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2186]!, self._r[2186]!, [_1]) + return formatWithArgumentRanges(self._s[2188]!, self._r[2188]!, [_1]) } - public var AccessDenied_LocationTracking: String { return self._s[2187]! } - public var Month_GenOctober: String { return self._s[2188]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2189]! } - public var EnterPasscode_EnterPasscode: String { return self._s[2190]! } - public var MediaPicker_TimerTooltip: String { return self._s[2192]! } - public var SharedMedia_TitleAll: String { return self._s[2193]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2196]! } - public var Conversation_RestrictedMedia: String { return self._s[2197]! } - public var AccessDenied_PhotosRestricted: String { return self._s[2198]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2200]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2201]! } + public var AccessDenied_LocationTracking: String { return self._s[2189]! } + public var Month_GenOctober: String { return self._s[2190]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2191]! } + public var EnterPasscode_EnterPasscode: String { return self._s[2192]! } + public var MediaPicker_TimerTooltip: String { return self._s[2194]! } + public var SharedMedia_TitleAll: String { return self._s[2195]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2198]! } + public var Conversation_RestrictedMedia: String { return self._s[2199]! } + public var AccessDenied_PhotosRestricted: String { return self._s[2200]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2202]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2203]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2202]!, self._r[2202]!, [_0]) + return formatWithArgumentRanges(self._s[2204]!, self._r[2204]!, [_0]) } - public var Conversation_SavedMessages: String { return self._s[2205]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[2207]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2208]! } + public var Conversation_SavedMessages: String { return self._s[2207]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[2209]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2210]! } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2210]!, self._r[2210]!, [_0]) - } - public var VoiceOver_Chat_YourMessage: String { return self._s[2211]! } - public func VoiceOver_Chat_Title(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2212]!, self._r[2212]!, [_0]) } - public var ReportPeer_AlertSuccess: String { return self._s[2213]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2214]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2213]! } + public func VoiceOver_Chat_Title(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2214]!, self._r[2214]!, [_0]) + } + public var ReportPeer_AlertSuccess: String { return self._s[2215]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2216]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2215]!, self._r[2215]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2217]!, self._r[2217]!, [_1, _2]) } - public var Checkout_PasswordEntry_Title: String { return self._s[2216]! } - public var PhotoEditor_FadeTool: String { return self._s[2217]! } - public var Privacy_ContactsReset: String { return self._s[2218]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2218]! } + public var PhotoEditor_FadeTool: String { return self._s[2219]! } + public var Privacy_ContactsReset: String { return self._s[2220]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2220]!, self._r[2220]!, [_0]) + return formatWithArgumentRanges(self._s[2222]!, self._r[2222]!, [_0]) } - public var Message_PinnedVideoMessage: String { return self._s[2221]! } - public var ChatList_Mute: String { return self._s[2222]! } + public var Message_PinnedVideoMessage: String { return self._s[2223]! } + public var ChatList_Mute: String { return self._s[2224]! } public func Wallet_Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2223]!, self._r[2223]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2225]!, self._r[2225]!, [_1, _2, _3]) } - public var Permissions_CellularDataText_v0: String { return self._s[2224]! } - public var Conversation_PinnedQuiz: String { return self._s[2226]! } - public var ShareMenu_SelectChats: String { return self._s[2228]! } - public var ChatList_Context_Unarchive: String { return self._s[2229]! } - public var MusicPlayer_VoiceNote: String { return self._s[2230]! } - public var Conversation_RestrictedText: String { return self._s[2231]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2232]! } - public var Wallet_Month_GenApril: String { return self._s[2233]! } - public var Wallet_Month_ShortMarch: String { return self._s[2234]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[2235]! } - public var Cache_Videos: String { return self._s[2236]! } - public var PrivacySettings_PhoneNumber: String { return self._s[2237]! } - public var Wallet_Month_GenFebruary: String { return self._s[2238]! } - public var FeatureDisabled_Oops: String { return self._s[2240]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[2241]! } + public var Permissions_CellularDataText_v0: String { return self._s[2226]! } + public var Conversation_PinnedQuiz: String { return self._s[2228]! } + public var ShareMenu_SelectChats: String { return self._s[2230]! } + public var ChatList_Context_Unarchive: String { return self._s[2231]! } + public var MusicPlayer_VoiceNote: String { return self._s[2232]! } + public var Conversation_RestrictedText: String { return self._s[2233]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2234]! } + public var Wallet_Month_GenApril: String { return self._s[2235]! } + public var Wallet_Month_ShortMarch: String { return self._s[2236]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2237]! } + public var Cache_Videos: String { return self._s[2238]! } + public var PrivacySettings_PhoneNumber: String { return self._s[2239]! } + public var Wallet_Month_GenFebruary: String { return self._s[2240]! } + public var FeatureDisabled_Oops: String { return self._s[2242]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[2243]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2242]!, self._r[2242]!, [_0]) + return formatWithArgumentRanges(self._s[2244]!, self._r[2244]!, [_0]) } - public var Stickers_GroupStickersHelp: String { return self._s[2243]! } - public var GroupPermission_NoSendPolls: String { return self._s[2244]! } - public var Wallet_Qr_ScanCode: String { return self._s[2245]! } - public var Message_VideoExpired: String { return self._s[2247]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[2248]! } - public var Notifications_Badge: String { return self._s[2249]! } - public var Wallet_Receive_AddressCopied: String { return self._s[2250]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[2251]! } - public var Username_InvalidTooShort: String { return self._s[2252]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2253]! } - public var Channel_AdminLog_PinMessages: String { return self._s[2254]! } - public var ArchivedChats_IntroTitle3: String { return self._s[2255]! } + public var Stickers_GroupStickersHelp: String { return self._s[2245]! } + public var GroupPermission_NoSendPolls: String { return self._s[2246]! } + public var Wallet_Qr_ScanCode: String { return self._s[2247]! } + public var Message_VideoExpired: String { return self._s[2249]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[2250]! } + public var Notifications_Badge: String { return self._s[2251]! } + public var Wallet_Receive_AddressCopied: String { return self._s[2252]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[2253]! } + public var Username_InvalidTooShort: String { return self._s[2254]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2255]! } + public var Channel_AdminLog_PinMessages: String { return self._s[2256]! } + public var ArchivedChats_IntroTitle3: String { return self._s[2257]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2256]!, self._r[2256]!, [_1]) + return formatWithArgumentRanges(self._s[2258]!, self._r[2258]!, [_1]) } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[2257]! } - public var Conversation_DefaultRestrictedText: String { return self._s[2258]! } - public var SharedMedia_CategoryDocs: String { return self._s[2261]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[2259]! } + public var Conversation_DefaultRestrictedText: String { return self._s[2260]! } + public var SharedMedia_CategoryDocs: String { return self._s[2263]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2262]!, self._r[2262]!, [_1]) + return formatWithArgumentRanges(self._s[2264]!, self._r[2264]!, [_1]) } - public var Wallet_Send_UninitializedTitle: String { return self._s[2263]! } - public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2264]! } - public var Privacy_Forwards_NeverLink: String { return self._s[2266]! } + public var Wallet_Send_UninitializedTitle: String { return self._s[2265]! } + public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2266]! } + public var Privacy_Forwards_NeverLink: String { return self._s[2268]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2267]!, self._r[2267]!, [_1]) + return formatWithArgumentRanges(self._s[2269]!, self._r[2269]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2268]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2270]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2269]!, self._r[2269]!, [_0]) + return formatWithArgumentRanges(self._s[2271]!, self._r[2271]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[2270]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2271]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[2272]! } - public var Channel_UpdatePhotoItem: String { return self._s[2273]! } - public var GroupInfo_LeftStatus: String { return self._s[2274]! } - public var Watch_MessageView_Forward: String { return self._s[2276]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[2277]! } - public var Cache_ClearEmpty: String { return self._s[2279]! } - public var Localization_LanguageName: String { return self._s[2280]! } - public var Wallet_AccessDenied_Title: String { return self._s[2281]! } - public var WebSearch_GIFs: String { return self._s[2282]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2283]! } - public var Wallet_AccessDenied_Settings: String { return self._s[2284]! } - public var Username_InvalidStartsWithNumber: String { return self._s[2285]! } - public var Common_Back: String { return self._s[2286]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2287]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2288]! } - public var Wallet_Send_Send: String { return self._s[2289]! } + public var ChatSettings_PrivateChats: String { return self._s[2272]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2273]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[2274]! } + public var Channel_UpdatePhotoItem: String { return self._s[2275]! } + public var GroupInfo_LeftStatus: String { return self._s[2276]! } + public var Watch_MessageView_Forward: String { return self._s[2278]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[2279]! } + public var Cache_ClearEmpty: String { return self._s[2281]! } + public var Localization_LanguageName: String { return self._s[2282]! } + public var Wallet_AccessDenied_Title: String { return self._s[2283]! } + public var WebSearch_GIFs: String { return self._s[2284]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2285]! } + public var Wallet_AccessDenied_Settings: String { return self._s[2286]! } + public var Username_InvalidStartsWithNumber: String { return self._s[2287]! } + public var Common_Back: String { return self._s[2288]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2289]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2290]! } + public var Wallet_Send_Send: String { return self._s[2291]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2291]!, self._r[2291]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2293]!, self._r[2293]!, [_1, _2]) } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[2292]! } - public var Wallet_Month_GenJune: String { return self._s[2293]! } - public var Passport_Email_Help: String { return self._s[2294]! } - public var Watch_Conversation_Reply: String { return self._s[2296]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[2299]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2300]! } - public var Channel_BanUser_Unban: String { return self._s[2302]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2303]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2304]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2306]! } - public var Wallet_Send_AddressHeader: String { return self._s[2307]! } - public var Passport_Identity_Name: String { return self._s[2308]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[2294]! } + public var Wallet_Month_GenJune: String { return self._s[2295]! } + public var Passport_Email_Help: String { return self._s[2296]! } + public var Watch_Conversation_Reply: String { return self._s[2298]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[2301]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2302]! } + public var Channel_BanUser_Unban: String { return self._s[2304]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2305]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2306]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2308]! } + public var Wallet_Send_AddressHeader: String { return self._s[2309]! } + public var Passport_Identity_Name: String { return self._s[2310]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2309]!, self._r[2309]!, [_0]) + return formatWithArgumentRanges(self._s[2311]!, self._r[2311]!, [_0]) } - public var GroupRemoved_ViewUserInfo: String { return self._s[2310]! } - public var Conversation_BlockUser: String { return self._s[2311]! } - public var Month_GenJanuary: String { return self._s[2312]! } - public var ChatSettings_TextSize: String { return self._s[2313]! } - public var Notification_PassportValuePhone: String { return self._s[2314]! } - public var MediaPlayer_UnknownArtist: String { return self._s[2315]! } - public var Passport_Language_ne: String { return self._s[2316]! } - public var Notification_CallBack: String { return self._s[2317]! } - public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2318]! } - public var TwoStepAuth_EmailHelp: String { return self._s[2319]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[2312]! } + public var Conversation_BlockUser: String { return self._s[2313]! } + public var Month_GenJanuary: String { return self._s[2314]! } + public var ChatSettings_TextSize: String { return self._s[2315]! } + public var Notification_PassportValuePhone: String { return self._s[2316]! } + public var MediaPlayer_UnknownArtist: String { return self._s[2317]! } + public var Passport_Language_ne: String { return self._s[2318]! } + public var Notification_CallBack: String { return self._s[2319]! } + public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2320]! } + public var TwoStepAuth_EmailHelp: String { return self._s[2321]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2320]!, self._r[2320]!, [_0]) + return formatWithArgumentRanges(self._s[2322]!, self._r[2322]!, [_0]) } - public var Channel_Info_Management: String { return self._s[2321]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[2322]! } - public var Stickers_FrequentlyUsed: String { return self._s[2323]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2324]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2326]! } + public var Channel_Info_Management: String { return self._s[2323]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[2324]! } + public var Stickers_FrequentlyUsed: String { return self._s[2325]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2326]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2328]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2327]!, self._r[2327]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[2329]!, self._r[2329]!, [_1, "\(_2)"]) } - public var TwoFactorSetup_Password_Title: String { return self._s[2328]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[2329]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[2330]! } - public var CreatePoll_TextHeader: String { return self._s[2331]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2330]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[2331]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[2332]! } + public var CreatePoll_TextHeader: String { return self._s[2333]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2332]!, self._r[2332]!, [_0]) + return formatWithArgumentRanges(self._s[2334]!, self._r[2334]!, [_0]) } - public var PhotoEditor_QualityMedium: String { return self._s[2333]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2334]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[2336]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[2337]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[2338]! } + public var PhotoEditor_QualityMedium: String { return self._s[2335]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2336]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[2338]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[2339]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[2340]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2339]!, self._r[2339]!, [_0]) + return formatWithArgumentRanges(self._s[2341]!, self._r[2341]!, [_0]) } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2340]!, self._r[2340]!, [_1]) + return formatWithArgumentRanges(self._s[2342]!, self._r[2342]!, [_1]) } - public var LogoutOptions_LogOutWalletInfo: String { return self._s[2341]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2342]! } - public var Conversation_LinkDialogOpen: String { return self._s[2344]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2345]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[2346]! } - public var Settings_Username: String { return self._s[2348]! } - public var Conversation_Block: String { return self._s[2350]! } - public var Wallpaper_Wallpaper: String { return self._s[2351]! } - public var SocksProxySetup_UseProxy: String { return self._s[2353]! } - public var Wallet_Send_Confirmation: String { return self._s[2354]! } - public var EditTheme_UploadEditedTheme: String { return self._s[2355]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[2356]! } - public var MessageTimer_Forever: String { return self._s[2357]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[2358]! } - public var PhotoEditor_DiscardChanges: String { return self._s[2359]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2360]! } - public var Passport_Language_da: String { return self._s[2361]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[2362]! } + public var LogoutOptions_LogOutWalletInfo: String { return self._s[2343]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2344]! } + public var Conversation_LinkDialogOpen: String { return self._s[2346]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2347]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[2348]! } + public var Settings_Username: String { return self._s[2350]! } + public var Conversation_Block: String { return self._s[2352]! } + public var Wallpaper_Wallpaper: String { return self._s[2353]! } + public var SocksProxySetup_UseProxy: String { return self._s[2355]! } + public var Wallet_Send_Confirmation: String { return self._s[2356]! } + public var EditTheme_UploadEditedTheme: String { return self._s[2357]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[2358]! } + public var MessageTimer_Forever: String { return self._s[2359]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[2360]! } + public var PhotoEditor_DiscardChanges: String { return self._s[2361]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2362]! } + public var Passport_Language_da: String { return self._s[2363]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[2364]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2363]!, self._r[2363]!, [_0]) + return formatWithArgumentRanges(self._s[2365]!, self._r[2365]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[2364]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[2366]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2366]!, self._r[2366]!, [_0]) + return formatWithArgumentRanges(self._s[2368]!, self._r[2368]!, [_0]) } - public var Settings_AddDevice: String { return self._s[2367]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2369]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2370]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2371]! } - public var Conversation_PinnedPoll: String { return self._s[2372]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2373]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2374]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2375]! } + public var Settings_AddDevice: String { return self._s[2369]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2371]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2372]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2373]! } + public var Conversation_PinnedPoll: String { return self._s[2374]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2375]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2376]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2377]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2376]!, self._r[2376]!, [_1]) + return formatWithArgumentRanges(self._s[2378]!, self._r[2378]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[2377]! } - public var Cache_ByPeerHeader: String { return self._s[2378]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2379]! } + public var Cache_ByPeerHeader: String { return self._s[2380]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2379]!, self._r[2379]!, [_0]) + return formatWithArgumentRanges(self._s[2381]!, self._r[2381]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[2380]! } - public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2383]! } - public var Wallet_Completed_Title: String { return self._s[2384]! } - public var Notification_PinnedMessage: String { return self._s[2385]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2386]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2388]! } - public var Contacts_SortBy: String { return self._s[2389]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[2382]! } + public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2385]! } + public var Wallet_Completed_Title: String { return self._s[2386]! } + public var Notification_PinnedMessage: String { return self._s[2387]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2388]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2390]! } + public var Contacts_SortBy: String { return self._s[2391]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2390]!, self._r[2390]!, [_1]) + return formatWithArgumentRanges(self._s[2392]!, self._r[2392]!, [_1]) } - public var Appearance_ColorThemeNight: String { return self._s[2392]! } + public var Appearance_ColorThemeNight: String { return self._s[2394]! } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2393]!, self._r[2393]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2395]!, self._r[2395]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[2394]! } - public var Watch_UserInfo_Service: String { return self._s[2395]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2397]! } - public var Conversation_Unpin: String { return self._s[2399]! } - public var CancelResetAccount_Title: String { return self._s[2400]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[2401]! } + public var Call_EncryptionKey_Title: String { return self._s[2396]! } + public var Watch_UserInfo_Service: String { return self._s[2397]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2399]! } + public var Conversation_Unpin: String { return self._s[2401]! } + public var CancelResetAccount_Title: String { return self._s[2402]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[2403]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2403]!, self._r[2403]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2405]!, self._r[2405]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2404]! } - public var CallSettings_Title: String { return self._s[2405]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2406]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[2408]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2409]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2406]! } + public var CallSettings_Title: String { return self._s[2407]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2408]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[2410]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2411]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2410]!, self._r[2410]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2412]!, self._r[2412]!, [_1, _2]) } - public var Passport_Identity_DocumentDetails: String { return self._s[2411]! } - public var LoginPassword_PasswordHelp: String { return self._s[2412]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2413]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2414]! } - public var ChatContextMenu_TextSelectionTip: String { return self._s[2415]! } - public var Checkout_TotalPaidAmount: String { return self._s[2416]! } + public var Passport_Identity_DocumentDetails: String { return self._s[2413]! } + public var LoginPassword_PasswordHelp: String { return self._s[2414]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2415]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2416]! } + public var ChatContextMenu_TextSelectionTip: String { return self._s[2417]! } + public var Checkout_TotalPaidAmount: String { return self._s[2418]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2417]!, self._r[2417]!, [_0]) + return formatWithArgumentRanges(self._s[2419]!, self._r[2419]!, [_0]) } - public var PasscodeSettings_ChangePasscode: String { return self._s[2418]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[2420]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[2421]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[2420]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[2422]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[2423]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2422]!, self._r[2422]!, [_1]) + return formatWithArgumentRanges(self._s[2424]!, self._r[2424]!, [_1]) } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2423]! } - public var Contacts_InviteFriends: String { return self._s[2425]! } - public var Map_ChooseLocationTitle: String { return self._s[2426]! } - public var Conversation_StopPoll: String { return self._s[2428]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2425]! } + public var Contacts_InviteFriends: String { return self._s[2427]! } + public var Map_ChooseLocationTitle: String { return self._s[2428]! } + public var Conversation_StopPoll: String { return self._s[2430]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2429]!, self._r[2429]!, [_0]) + return formatWithArgumentRanges(self._s[2431]!, self._r[2431]!, [_0]) } - public var Call_Camera: String { return self._s[2430]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2431]! } - public var AppWallet_Intro_Text: String { return self._s[2432]! } - public var Calls_RatingFeedback: String { return self._s[2433]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2435]! } - public var Wallet_Alert_OK: String { return self._s[2436]! } - public var NotificationsSound_Pulse: String { return self._s[2437]! } - public var Watch_LastSeen_Lately: String { return self._s[2438]! } - public var ReportGroupLocation_Report: String { return self._s[2441]! } - public var Widget_NoUsers: String { return self._s[2442]! } - public var Conversation_UnvotePoll: String { return self._s[2443]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2445]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2446]! } - public var NotificationsSound_Circles: String { return self._s[2447]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2450]! } - public var Wallet_Settings_DeleteWallet: String { return self._s[2451]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2452]! } - public var Proxy_TooltipUnavailable: String { return self._s[2453]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2455]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2457]! } - public var Conversation_FileDropbox: String { return self._s[2458]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[2459]! } - public var Tour_Text3: String { return self._s[2461]! } - public var Login_ResetAccountProtected_Title: String { return self._s[2463]! } - public var GroupPermission_NoSendMessages: String { return self._s[2464]! } - public var WallpaperSearch_ColorTitle: String { return self._s[2465]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2466]! } + public var Call_Camera: String { return self._s[2432]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2433]! } + public var AppWallet_Intro_Text: String { return self._s[2434]! } + public var Calls_RatingFeedback: String { return self._s[2435]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2437]! } + public var Wallet_Alert_OK: String { return self._s[2438]! } + public var NotificationsSound_Pulse: String { return self._s[2439]! } + public var Watch_LastSeen_Lately: String { return self._s[2440]! } + public var ReportGroupLocation_Report: String { return self._s[2443]! } + public var Widget_NoUsers: String { return self._s[2444]! } + public var Conversation_UnvotePoll: String { return self._s[2445]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2447]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2448]! } + public var NotificationsSound_Circles: String { return self._s[2449]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2452]! } + public var Wallet_Settings_DeleteWallet: String { return self._s[2453]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2454]! } + public var Proxy_TooltipUnavailable: String { return self._s[2455]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2457]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2459]! } + public var Conversation_FileDropbox: String { return self._s[2460]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[2461]! } + public var Tour_Text3: String { return self._s[2463]! } + public var Login_ResetAccountProtected_Title: String { return self._s[2465]! } + public var GroupPermission_NoSendMessages: String { return self._s[2466]! } + public var WallpaperSearch_ColorTitle: String { return self._s[2467]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2468]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2468]!, self._r[2468]!, [_0]) + return formatWithArgumentRanges(self._s[2470]!, self._r[2470]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[2469]! } - public var Checkout_ShippingOption_Title: String { return self._s[2470]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2471]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[2471]! } + public var Checkout_ShippingOption_Title: String { return self._s[2472]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2473]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2472]!, self._r[2472]!, [_0]) + return formatWithArgumentRanges(self._s[2474]!, self._r[2474]!, [_0]) } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2473]!, self._r[2473]!, [_0]) + return formatWithArgumentRanges(self._s[2475]!, self._r[2475]!, [_0]) } - public var Channel_Management_LabelAdministrator: String { return self._s[2474]! } - public var EditTheme_FileReadError: String { return self._s[2475]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[2476]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2477]! } - public var AutoDownloadSettings_Photos: String { return self._s[2479]! } - public var Appearance_PreviewIncomingText: String { return self._s[2480]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[2481]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[2482]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2483]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2484]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2485]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2486]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2487]! } - public var Notification_SecretChatScreenshot: String { return self._s[2488]! } - public var AccessDenied_Wallpapers: String { return self._s[2489]! } - public var ChatList_Context_Mute: String { return self._s[2491]! } - public var Passport_Address_City: String { return self._s[2492]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2493]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[2494]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2495]! } - public var AccessDenied_LocationDisabled: String { return self._s[2496]! } - public var Group_Location_Title: String { return self._s[2497]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2499]! } - public var GroupInfo_Sound: String { return self._s[2500]! } - public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2501]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[2502]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2503]! } - public var Contacts_Title: String { return self._s[2504]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[2505]! } - public var Passport_Language_fr: String { return self._s[2506]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2507]! } - public var Notifications_ResetAllNotifications: String { return self._s[2508]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2510]! } - public var PrivacySettings_SecurityTitle: String { return self._s[2512]! } - public var Checkout_NewCard_Title: String { return self._s[2513]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[2514]! } - public var Conversation_ForwardChats: String { return self._s[2515]! } - public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2517]! } - public var PasscodeSettings_4DigitCode: String { return self._s[2518]! } - public var Settings_FAQ: String { return self._s[2520]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2521]! } - public var Conversation_ContextMenuForward: String { return self._s[2522]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[2525]! } - public var PrivacyPolicy_Title: String { return self._s[2528]! } - public var Notifications_TextTone: String { return self._s[2529]! } - public var Profile_CreateNewContact: String { return self._s[2530]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2531]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2533]! } - public var Call_Speaker: String { return self._s[2534]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2535]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2537]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2538]! } + public var Channel_Management_LabelAdministrator: String { return self._s[2476]! } + public var EditTheme_FileReadError: String { return self._s[2477]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[2478]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2479]! } + public var AutoDownloadSettings_Photos: String { return self._s[2481]! } + public var Appearance_PreviewIncomingText: String { return self._s[2482]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[2483]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[2484]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2485]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2486]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2487]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2488]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2489]! } + public var Notification_SecretChatScreenshot: String { return self._s[2490]! } + public var AccessDenied_Wallpapers: String { return self._s[2491]! } + public var ChatList_Context_Mute: String { return self._s[2493]! } + public var Passport_Address_City: String { return self._s[2494]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2495]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[2496]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2497]! } + public var AccessDenied_LocationDisabled: String { return self._s[2498]! } + public var Group_Location_Title: String { return self._s[2499]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2501]! } + public var GroupInfo_Sound: String { return self._s[2502]! } + public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2503]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[2504]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2505]! } + public var Contacts_Title: String { return self._s[2506]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[2507]! } + public var Passport_Language_fr: String { return self._s[2508]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2509]! } + public var Notifications_ResetAllNotifications: String { return self._s[2510]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2512]! } + public var PrivacySettings_SecurityTitle: String { return self._s[2514]! } + public var Checkout_NewCard_Title: String { return self._s[2515]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[2516]! } + public var Conversation_ForwardChats: String { return self._s[2517]! } + public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2519]! } + public var PasscodeSettings_4DigitCode: String { return self._s[2520]! } + public var Settings_FAQ: String { return self._s[2522]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2523]! } + public var Conversation_ContextMenuForward: String { return self._s[2524]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[2527]! } + public var PrivacyPolicy_Title: String { return self._s[2530]! } + public var Notifications_TextTone: String { return self._s[2531]! } + public var Profile_CreateNewContact: String { return self._s[2532]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2533]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2535]! } + public var Call_Speaker: String { return self._s[2536]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2537]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2539]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2540]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2539]!, self._r[2539]!, [_0]) + return formatWithArgumentRanges(self._s[2541]!, self._r[2541]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2540]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2541]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2542]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2543]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[2544]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2545]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2546]! } - public var Bot_Unblock: String { return self._s[2547]! } - public var TextFormat_Italic: String { return self._s[2548]! } - public var WallpaperSearch_ColorPink: String { return self._s[2549]! } - public var Settings_About_Help: String { return self._s[2551]! } - public var SearchImages_Title: String { return self._s[2552]! } - public var Weekday_Wednesday: String { return self._s[2553]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2554]! } - public var ExplicitContent_AlertTitle: String { return self._s[2555]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2542]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2543]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2544]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2545]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[2546]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2547]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2548]! } + public var Bot_Unblock: String { return self._s[2549]! } + public var TextFormat_Italic: String { return self._s[2550]! } + public var WallpaperSearch_ColorPink: String { return self._s[2551]! } + public var Settings_About_Help: String { return self._s[2553]! } + public var SearchImages_Title: String { return self._s[2554]! } + public var Weekday_Wednesday: String { return self._s[2555]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2556]! } + public var ExplicitContent_AlertTitle: String { return self._s[2557]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2556]!, self._r[2556]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2558]!, self._r[2558]!, [_1, _2, _3]) } - public var Channel_DiscussionGroup_Create: String { return self._s[2557]! } - public var Weekday_Thursday: String { return self._s[2558]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2559]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2560]! } + public var Channel_DiscussionGroup_Create: String { return self._s[2559]! } + public var Weekday_Thursday: String { return self._s[2560]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2561]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2562]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2561]!, self._r[2561]!, [_0]) + return formatWithArgumentRanges(self._s[2563]!, self._r[2563]!, [_0]) } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2562]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2563]! } - public var Passport_RequestedInformation: String { return self._s[2564]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2565]! } - public var Conversation_EncryptionProcessing: String { return self._s[2567]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2568]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2570]! } - public var Channel_Setup_Title: String { return self._s[2571]! } - public var Conversation_SearchPlaceholder: String { return self._s[2572]! } - public var OldChannels_GroupEmptyFormat: String { return self._s[2573]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2574]! } - public var Checkout_ErrorGeneric: String { return self._s[2575]! } - public var Passport_Language_hu: String { return self._s[2576]! } - public var GroupPermission_EditingDisabled: String { return self._s[2577]! } - public var Wallet_Month_ShortSeptember: String { return self._s[2579]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2564]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2565]! } + public var Passport_RequestedInformation: String { return self._s[2566]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2567]! } + public var Conversation_EncryptionProcessing: String { return self._s[2569]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2570]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2572]! } + public var Channel_Setup_Title: String { return self._s[2573]! } + public var Conversation_SearchPlaceholder: String { return self._s[2574]! } + public var OldChannels_GroupEmptyFormat: String { return self._s[2575]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2576]! } + public var Checkout_ErrorGeneric: String { return self._s[2577]! } + public var Passport_Language_hu: String { return self._s[2578]! } + public var GroupPermission_EditingDisabled: String { return self._s[2579]! } + public var Wallet_Month_ShortSeptember: String { return self._s[2581]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2580]!, self._r[2580]!, [_0]) + return formatWithArgumentRanges(self._s[2582]!, self._r[2582]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2583]!, self._r[2583]!, [_1]) + return formatWithArgumentRanges(self._s[2585]!, self._r[2585]!, [_1]) } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2584]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2586]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2585]!, self._r[2585]!, [_0]) + return formatWithArgumentRanges(self._s[2587]!, self._r[2587]!, [_0]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2586]! } - public var Group_Location_Info: String { return self._s[2587]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2588]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2589]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2588]! } + public var Group_Location_Info: String { return self._s[2589]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2590]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2591]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2590]!, self._r[2590]!, [_0]) + return formatWithArgumentRanges(self._s[2592]!, self._r[2592]!, [_0]) } - public var Conversation_ClearPrivateHistory: String { return self._s[2591]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2592]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[2593]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2594]! } + public var Conversation_ClearPrivateHistory: String { return self._s[2593]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2594]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[2595]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2596]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2595]!, self._r[2595]!, [_0]) + return formatWithArgumentRanges(self._s[2597]!, self._r[2597]!, [_0]) } - public var Passport_Language_cs: String { return self._s[2596]! } - public var Message_PinnedAnimationMessage: String { return self._s[2598]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2600]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2601]! } - public var Wallet_Info_TransactionTo: String { return self._s[2603]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2604]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2605]! } - public var Embed_PlayingInPIP: String { return self._s[2606]! } - public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2607]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2608]! } + public func Notification_PinnedQuizMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2598]!, self._r[2598]!, [_0]) + } + public var Passport_Language_cs: String { return self._s[2599]! } + public var Message_PinnedAnimationMessage: String { return self._s[2601]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2603]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2604]! } + public var Wallet_Info_TransactionTo: String { return self._s[2606]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2607]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2608]! } + public var Embed_PlayingInPIP: String { return self._s[2609]! } + public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2610]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2611]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2609]!, self._r[2609]!, [_0]) + return formatWithArgumentRanges(self._s[2612]!, self._r[2612]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2610]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[2613]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2611]!, self._r[2611]!, [_1]) + return formatWithArgumentRanges(self._s[2614]!, self._r[2614]!, [_1]) } - public var Notification_PaymentSent: String { return self._s[2612]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2613]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2614]! } - public var AutoNightTheme_System: String { return self._s[2615]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2616]! } - public var CreatePoll_QuizTitle: String { return self._s[2617]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2618]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2619]! } + public var Notification_PaymentSent: String { return self._s[2615]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2616]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2617]! } + public var AutoNightTheme_System: String { return self._s[2618]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2619]! } + public var CreatePoll_QuizTitle: String { return self._s[2620]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2621]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2622]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2622]!, self._r[2622]!, [_1]) + return formatWithArgumentRanges(self._s[2625]!, self._r[2625]!, [_1]) } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2623]!, self._r[2623]!, [_1]) + return formatWithArgumentRanges(self._s[2626]!, self._r[2626]!, [_1]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2624]!, self._r[2624]!, [_1]) + return formatWithArgumentRanges(self._s[2627]!, self._r[2627]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2626]! } - public var PasscodeSettings_HelpTop: String { return self._s[2627]! } - public var Conversation_WalletRequiredTitle: String { return self._s[2628]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2629]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2630]! } - public var EditTheme_ShortLink: String { return self._s[2631]! } - public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2632]! } - public var ProxyServer_VoiceOver_Active: String { return self._s[2633]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2634]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2635]! } - public var Call_Accept: String { return self._s[2637]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2638]! } - public var Month_GenMarch: String { return self._s[2640]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2641]! } - public var LoginPassword_Title: String { return self._s[2642]! } - public var Call_End: String { return self._s[2643]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2644]! } - public var VoiceOver_Chat_Contact: String { return self._s[2645]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2646]! } - public var CallSettings_Always: String { return self._s[2647]! } - public var CallFeedback_Success: String { return self._s[2648]! } - public var TwoStepAuth_SetupHint: String { return self._s[2649]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2629]! } + public var PasscodeSettings_HelpTop: String { return self._s[2630]! } + public var Conversation_WalletRequiredTitle: String { return self._s[2631]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2632]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2633]! } + public var EditTheme_ShortLink: String { return self._s[2634]! } + public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2635]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[2636]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2637]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2638]! } + public var Call_Accept: String { return self._s[2640]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2641]! } + public var Month_GenMarch: String { return self._s[2643]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2644]! } + public var LoginPassword_Title: String { return self._s[2645]! } + public var Call_End: String { return self._s[2646]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2647]! } + public var VoiceOver_Chat_Contact: String { return self._s[2648]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2649]! } + public var CallSettings_Always: String { return self._s[2650]! } + public var CallFeedback_Success: String { return self._s[2651]! } + public var TwoStepAuth_SetupHint: String { return self._s[2652]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2650]!, self._r[2650]!, [_1]) + return formatWithArgumentRanges(self._s[2653]!, self._r[2653]!, [_1]) } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2651]! } - public var Login_PhoneTitle: String { return self._s[2652]! } - public var Passport_FieldPhoneHelp: String { return self._s[2653]! } - public var Weekday_ShortSunday: String { return self._s[2654]! } - public var Passport_InfoFAQ_URL: String { return self._s[2655]! } - public var ContactInfo_Job: String { return self._s[2657]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2658]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[2659]! } - public var CreatePoll_QuizTip: String { return self._s[2660]! } - public var TwoFactorSetup_Email_Text: String { return self._s[2661]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2662]! } - public var Invite_ChannelsTooMuch: String { return self._s[2663]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[2664]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2665]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2666]! } - public var Wallet_Receive_AmountText: String { return self._s[2667]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2668]! } - public var CallFeedback_ReasonNoise: String { return self._s[2669]! } - public var Appearance_AppIconDefault: String { return self._s[2671]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2672]! } - public var MediaPicker_AddCaption: String { return self._s[2673]! } - public var CallSettings_TabIconDescription: String { return self._s[2674]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2654]! } + public var Login_PhoneTitle: String { return self._s[2655]! } + public var Passport_FieldPhoneHelp: String { return self._s[2656]! } + public var Weekday_ShortSunday: String { return self._s[2657]! } + public var Passport_InfoFAQ_URL: String { return self._s[2658]! } + public var ContactInfo_Job: String { return self._s[2660]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2661]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[2662]! } + public var CreatePoll_QuizTip: String { return self._s[2663]! } + public var TwoFactorSetup_Email_Text: String { return self._s[2664]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2665]! } + public var Invite_ChannelsTooMuch: String { return self._s[2666]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[2667]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2668]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2669]! } + public var Wallet_Receive_AmountText: String { return self._s[2670]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2671]! } + public var CallFeedback_ReasonNoise: String { return self._s[2672]! } + public var Appearance_AppIconDefault: String { return self._s[2674]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2675]! } + public var MediaPicker_AddCaption: String { return self._s[2676]! } + public var CallSettings_TabIconDescription: String { return self._s[2677]! } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2675]!, self._r[2675]!, [_0]) + return formatWithArgumentRanges(self._s[2678]!, self._r[2678]!, [_0]) } - public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2676]! } + public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2679]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2677]!, self._r[2677]!, [_0]) + return formatWithArgumentRanges(self._s[2680]!, self._r[2680]!, [_0]) } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2678]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2679]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2680]! } - public var DialogList_SearchSectionRecent: String { return self._s[2681]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2682]! } - public var CreatePoll_Anonymous: String { return self._s[2683]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2686]! } - public var LastSeen_WithinAWeek: String { return self._s[2687]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2688]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2690]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2691]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2681]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2682]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2683]! } + public var DialogList_SearchSectionRecent: String { return self._s[2684]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2685]! } + public var CreatePoll_Anonymous: String { return self._s[2686]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2689]! } + public var LastSeen_WithinAWeek: String { return self._s[2690]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2691]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2693]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2694]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2692]!, self._r[2692]!, [_0]) + return formatWithArgumentRanges(self._s[2695]!, self._r[2695]!, [_0]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2693]! } - public var Conversation_StatusLeftGroup: String { return self._s[2694]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2695]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2697]! } - public var GroupPermission_AddSuccess: String { return self._s[2698]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2700]! } - public var Conversation_ContextMenuCopy: String { return self._s[2701]! } - public var AccessDenied_CallMicrophone: String { return self._s[2702]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2696]! } + public var Conversation_StatusLeftGroup: String { return self._s[2697]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2698]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2700]! } + public var GroupPermission_AddSuccess: String { return self._s[2701]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2703]! } + public var Conversation_ContextMenuCopy: String { return self._s[2704]! } + public var AccessDenied_CallMicrophone: String { return self._s[2705]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2703]!, self._r[2703]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2706]!, self._r[2706]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2704]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2705]! } - public var Checkout_PaymentMethod_New: String { return self._s[2706]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2707]! } - public var PhotoEditor_QualityTool: String { return self._s[2708]! } - public var Login_SendCodeViaSms: String { return self._s[2709]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2710]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2711]! } - public var Wallet_Receive_CopyAddress: String { return self._s[2712]! } - public var Login_EmailNotConfiguredError: String { return self._s[2713]! } - public var SocksProxySetup_Status: String { return self._s[2714]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2715]! } - public var PrivacyPolicy_Accept: String { return self._s[2716]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2717]! } - public var Appearance_AppIconClassicX: String { return self._s[2718]! } + public var Login_InvalidFirstNameError: String { return self._s[2707]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2708]! } + public var Checkout_PaymentMethod_New: String { return self._s[2709]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2710]! } + public var PhotoEditor_QualityTool: String { return self._s[2711]! } + public var Login_SendCodeViaSms: String { return self._s[2712]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2713]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2714]! } + public var Wallet_Receive_CopyAddress: String { return self._s[2715]! } + public var Login_EmailNotConfiguredError: String { return self._s[2716]! } + public var SocksProxySetup_Status: String { return self._s[2717]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2718]! } + public var PrivacyPolicy_Accept: String { return self._s[2719]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2720]! } + public var Appearance_AppIconClassicX: String { return self._s[2721]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2719]!, self._r[2719]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2722]!, self._r[2722]!, [_1, _2, _3]) } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[2720]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2722]! } - public var AutoNightTheme_Automatic: String { return self._s[2723]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2724]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2725]! } - public var Cache_Help: String { return self._s[2726]! } - public var Group_ErrorAccessDenied: String { return self._s[2727]! } - public var Passport_Language_fa: String { return self._s[2728]! } - public var Wallet_Intro_Text: String { return self._s[2729]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2730]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2731]! } - public var PrivacySettings_LastSeen: String { return self._s[2732]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[2723]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2725]! } + public var AutoNightTheme_Automatic: String { return self._s[2726]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2727]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2728]! } + public var Cache_Help: String { return self._s[2729]! } + public var Group_ErrorAccessDenied: String { return self._s[2730]! } + public var Passport_Language_fa: String { return self._s[2731]! } + public var Wallet_Intro_Text: String { return self._s[2732]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2733]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2734]! } + public var PrivacySettings_LastSeen: String { return self._s[2735]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2733]!, self._r[2733]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2736]!, self._r[2736]!, [_0, _1]) } - public var Wallet_Configuration_Apply: String { return self._s[2737]! } - public var Preview_SaveGif: String { return self._s[2738]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2739]! } - public var Profile_About: String { return self._s[2740]! } - public var Channel_About_Placeholder: String { return self._s[2741]! } - public var Login_InfoTitle: String { return self._s[2742]! } + public var Wallet_Configuration_Apply: String { return self._s[2740]! } + public var Preview_SaveGif: String { return self._s[2741]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2742]! } + public var Profile_About: String { return self._s[2743]! } + public var Channel_About_Placeholder: String { return self._s[2744]! } + public var Login_InfoTitle: String { return self._s[2745]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2743]!, self._r[2743]!, [_0]) + return formatWithArgumentRanges(self._s[2746]!, self._r[2746]!, [_0]) } - public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2744]! } - public var Watch_Suggestion_CantTalk: String { return self._s[2746]! } - public var ContactInfo_Title: String { return self._s[2747]! } - public var Media_ShareThisVideo: String { return self._s[2748]! } - public var Weekday_ShortFriday: String { return self._s[2749]! } - public var AccessDenied_Contacts: String { return self._s[2751]! } - public var Notification_CallIncomingShort: String { return self._s[2752]! } - public var Group_Setup_TypePublic: String { return self._s[2753]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2754]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2755]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2758]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2759]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2760]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2761]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2762]! } + public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2747]! } + public var Watch_Suggestion_CantTalk: String { return self._s[2749]! } + public var ContactInfo_Title: String { return self._s[2750]! } + public var Media_ShareThisVideo: String { return self._s[2751]! } + public var Weekday_ShortFriday: String { return self._s[2752]! } + public var AccessDenied_Contacts: String { return self._s[2754]! } + public var Notification_CallIncomingShort: String { return self._s[2755]! } + public var Group_Setup_TypePublic: String { return self._s[2756]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2757]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[2758]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[2761]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2762]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2763]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2764]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2765]! } public func Wallet_SecureStorageChanged_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2763]!, self._r[2763]!, [_0]) + return formatWithArgumentRanges(self._s[2766]!, self._r[2766]!, [_0]) } - public var DialogList_Typing: String { return self._s[2764]! } - public var CallFeedback_IncludeLogs: String { return self._s[2766]! } - public var Checkout_Phone: String { return self._s[2768]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[2771]! } - public var Privacy_Calls_Integration: String { return self._s[2772]! } - public var Notifications_PermissionsAllow: String { return self._s[2773]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[2777]! } - public var Settings_ChatSettings: String { return self._s[2778]! } - public var Conversation_SendingOptionsTooltip: String { return self._s[2779]! } + public var DialogList_Typing: String { return self._s[2767]! } + public var CallFeedback_IncludeLogs: String { return self._s[2769]! } + public var Checkout_Phone: String { return self._s[2771]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[2774]! } + public var Privacy_Calls_Integration: String { return self._s[2775]! } + public var Notifications_PermissionsAllow: String { return self._s[2776]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[2780]! } + public var Settings_ChatSettings: String { return self._s[2781]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[2782]! } public func UserInfo_StartSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2781]!, self._r[2781]!, [_0]) + return formatWithArgumentRanges(self._s[2784]!, self._r[2784]!, [_0]) } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2782]!, self._r[2782]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2785]!, self._r[2785]!, [_1, _2]) } - public var GroupRemoved_DeleteUser: String { return self._s[2784]! } + public var GroupRemoved_DeleteUser: String { return self._s[2787]! } public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2785]!, self._r[2785]!, [_0]) + return formatWithArgumentRanges(self._s[2788]!, self._r[2788]!, [_0]) } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2786]!, self._r[2786]!, [_1]) + return formatWithArgumentRanges(self._s[2789]!, self._r[2789]!, [_1]) } - public var Login_ContinueWithLocalization: String { return self._s[2787]! } - public var Watch_Message_ForwardedFrom: String { return self._s[2788]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[2790]! } - public var Conversation_Unblock: String { return self._s[2791]! } - public var PrivacySettings_DataSettings: String { return self._s[2792]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[2793]! } - public var Group_PublicLink_Info: String { return self._s[2794]! } + public var Login_ContinueWithLocalization: String { return self._s[2790]! } + public var Watch_Message_ForwardedFrom: String { return self._s[2791]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[2793]! } + public var Conversation_Unblock: String { return self._s[2794]! } + public var PrivacySettings_DataSettings: String { return self._s[2795]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[2796]! } + public var Group_PublicLink_Info: String { return self._s[2797]! } public func Wallet_Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2795]!, self._r[2795]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2798]!, self._r[2798]!, [_1, _2, _3]) } - public var Notifications_InAppNotificationsVibrate: String { return self._s[2796]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[2799]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2797]!, self._r[2797]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2800]!, self._r[2800]!, [_0, _1]) } - public var OldChannels_ChannelsHeader: String { return self._s[2799]! } - public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2800]! } - public var PrivacySettings_Passcode: String { return self._s[2802]! } - public var Call_Mute: String { return self._s[2803]! } - public var Wallet_Weekday_Yesterday: String { return self._s[2804]! } - public var Passport_Language_dz: String { return self._s[2805]! } - public var Wallet_Receive_AmountHeader: String { return self._s[2806]! } - public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2807]! } - public var Passport_Language_tk: String { return self._s[2808]! } + public var OldChannels_ChannelsHeader: String { return self._s[2802]! } + public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2803]! } + public var PrivacySettings_Passcode: String { return self._s[2805]! } + public var Call_Mute: String { return self._s[2806]! } + public var Wallet_Weekday_Yesterday: String { return self._s[2807]! } + public var Passport_Language_dz: String { return self._s[2808]! } + public var Wallet_Receive_AmountHeader: String { return self._s[2809]! } + public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2810]! } + public var Passport_Language_tk: String { return self._s[2811]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2809]!, self._r[2809]!, [_0]) + return formatWithArgumentRanges(self._s[2812]!, self._r[2812]!, [_0]) } - public var Settings_Search: String { return self._s[2810]! } - public var Wallet_Month_ShortFebruary: String { return self._s[2811]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2812]! } - public var Wallet_Configuration_SourceJSON: String { return self._s[2813]! } - public var Conversation_ContextMenuReply: String { return self._s[2814]! } - public var WallpaperSearch_ColorBrown: String { return self._s[2815]! } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2816]! } - public var Tour_Title1: String { return self._s[2817]! } - public var Wallet_Alert_Cancel: String { return self._s[2818]! } - public var Conversation_ClearGroupHistory: String { return self._s[2820]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2821]! } - public var WallpaperPreview_Motion: String { return self._s[2822]! } + public var Settings_Search: String { return self._s[2813]! } + public var Wallet_Month_ShortFebruary: String { return self._s[2814]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2815]! } + public var Wallet_Configuration_SourceJSON: String { return self._s[2816]! } + public var Conversation_ContextMenuReply: String { return self._s[2817]! } + public var WallpaperSearch_ColorBrown: String { return self._s[2818]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2819]! } + public var Tour_Title1: String { return self._s[2820]! } + public var Wallet_Alert_Cancel: String { return self._s[2821]! } + public var Conversation_ClearGroupHistory: String { return self._s[2823]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2824]! } + public var WallpaperPreview_Motion: String { return self._s[2825]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2823]!, self._r[2823]!, [_0]) + return formatWithArgumentRanges(self._s[2826]!, self._r[2826]!, [_0]) } - public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2824]! } - public var Call_RateCall: String { return self._s[2825]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2826]! } - public var Passport_PasswordCompleteSetup: String { return self._s[2827]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2828]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[2830]! } + public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2827]! } + public var Call_RateCall: String { return self._s[2828]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2829]! } + public var Passport_PasswordCompleteSetup: String { return self._s[2830]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2831]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[2833]! } public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2832]!, self._r[2832]!, [_0]) + return formatWithArgumentRanges(self._s[2835]!, self._r[2835]!, [_0]) } - public var Compose_Create: String { return self._s[2833]! } - public var Contacts_InviteToTelegram: String { return self._s[2834]! } - public var GroupInfo_Notifications: String { return self._s[2835]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2837]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[2838]! } - public var Month_GenApril: String { return self._s[2839]! } - public var Appearance_AutoNightTheme: String { return self._s[2840]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[2842]! } - public var Login_CodeSentSms: String { return self._s[2844]! } + public var Compose_Create: String { return self._s[2836]! } + public var Contacts_InviteToTelegram: String { return self._s[2837]! } + public var GroupInfo_Notifications: String { return self._s[2838]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2840]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[2841]! } + public var Month_GenApril: String { return self._s[2842]! } + public var Appearance_AutoNightTheme: String { return self._s[2843]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[2845]! } + public var Login_CodeSentSms: String { return self._s[2847]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2845]!, self._r[2845]!, [_0]) + return formatWithArgumentRanges(self._s[2848]!, self._r[2848]!, [_0]) } - public var EmptyGroupInfo_Line3: String { return self._s[2846]! } - public var LogoutOptions_ContactSupportText: String { return self._s[2847]! } - public var Passport_Language_hr: String { return self._s[2848]! } - public var Common_ActionNotAllowedError: String { return self._s[2849]! } + public var EmptyGroupInfo_Line3: String { return self._s[2849]! } + public var LogoutOptions_ContactSupportText: String { return self._s[2850]! } + public var Passport_Language_hr: String { return self._s[2851]! } + public var Common_ActionNotAllowedError: String { return self._s[2852]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2850]!, self._r[2850]!, [_0]) + return formatWithArgumentRanges(self._s[2853]!, self._r[2853]!, [_0]) } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[2851]! } - public var Wallet_Info_TransactionFrom: String { return self._s[2852]! } - public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2853]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2854]! } - public var Privacy_SecretChatsTitle: String { return self._s[2855]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2857]! } - public var GroupInfo_AddUserLeftError: String { return self._s[2858]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2859]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[2860]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2861]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[2862]! } - public var Preview_DeleteGif: String { return self._s[2863]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2864]! } - public var Group_ErrorNotMutualContact: String { return self._s[2865]! } - public var Notification_MessageLifetime5s: String { return self._s[2866]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[2867]! } - public var OldChannels_ChannelFormat: String { return self._s[2868]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[2854]! } + public var Wallet_Info_TransactionFrom: String { return self._s[2855]! } + public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2856]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2857]! } + public var Privacy_SecretChatsTitle: String { return self._s[2858]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2860]! } + public var GroupInfo_AddUserLeftError: String { return self._s[2861]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2862]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[2863]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2864]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[2865]! } + public var Preview_DeleteGif: String { return self._s[2866]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2867]! } + public var Group_ErrorNotMutualContact: String { return self._s[2868]! } + public var Notification_MessageLifetime5s: String { return self._s[2869]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[2870]! } + public var OldChannels_ChannelFormat: String { return self._s[2871]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2869]!, self._r[2869]!, [_0]) + return formatWithArgumentRanges(self._s[2872]!, self._r[2872]!, [_0]) } - public var VoiceOver_Chat_Video: String { return self._s[2870]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2872]! } - public var ReportSpam_DeleteThisChat: String { return self._s[2873]! } - public var Passport_Address_AddBankStatement: String { return self._s[2874]! } - public var Notification_CallIncoming: String { return self._s[2875]! } - public var Wallet_Words_NotDoneTitle: String { return self._s[2876]! } - public var Compose_NewGroupTitle: String { return self._s[2877]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2879]! } - public var Passport_Address_Postcode: String { return self._s[2881]! } + public var VoiceOver_Chat_Video: String { return self._s[2873]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2875]! } + public var ReportSpam_DeleteThisChat: String { return self._s[2876]! } + public var Passport_Address_AddBankStatement: String { return self._s[2877]! } + public var Notification_CallIncoming: String { return self._s[2878]! } + public var Wallet_Words_NotDoneTitle: String { return self._s[2879]! } + public var Compose_NewGroupTitle: String { return self._s[2880]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2882]! } + public var Passport_Address_Postcode: String { return self._s[2884]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2882]!, self._r[2882]!, [_0]) + return formatWithArgumentRanges(self._s[2885]!, self._r[2885]!, [_0]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2883]! } - public var Wallet_Month_ShortOctober: String { return self._s[2884]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2885]! } - public var WallpaperColors_Title: String { return self._s[2886]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2887]! } - public var VoiceOver_MessageContextForward: String { return self._s[2888]! } - public var GroupPermission_Duration: String { return self._s[2889]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2886]! } + public var Wallet_Month_ShortOctober: String { return self._s[2887]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2888]! } + public var WallpaperColors_Title: String { return self._s[2889]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2890]! } + public var VoiceOver_MessageContextForward: String { return self._s[2891]! } + public var GroupPermission_Duration: String { return self._s[2892]! } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2890]!, self._r[2890]!, [_0]) + return formatWithArgumentRanges(self._s[2893]!, self._r[2893]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2891]! } - public var Username_Placeholder: String { return self._s[2892]! } - public var CallFeedback_WhatWentWrong: String { return self._s[2893]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2894]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2895]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2894]! } + public var Username_Placeholder: String { return self._s[2895]! } + public var CallFeedback_WhatWentWrong: String { return self._s[2896]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2897]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2898]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2897]!, self._r[2897]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2900]!, self._r[2900]!, [_1, _2]) } - public var Passport_PasswordDescription: String { return self._s[2898]! } - public var Channel_MessagePhotoUpdated: String { return self._s[2899]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[2900]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2901]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[2902]! } - public var Conversation_ContextMenuMore: String { return self._s[2903]! } - public var Privacy_PaymentsClearInfo: String { return self._s[2904]! } - public var CallSettings_TabIcon: String { return self._s[2905]! } - public var KeyCommand_Find: String { return self._s[2906]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2907]! } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2908]! } - public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2909]! } - public var Message_PinnedGame: String { return self._s[2910]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2911]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2913]! } - public var Login_CallRequestState2: String { return self._s[2915]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2917]! } + public var Passport_PasswordDescription: String { return self._s[2901]! } + public var Channel_MessagePhotoUpdated: String { return self._s[2902]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[2903]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2904]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[2905]! } + public var Conversation_ContextMenuMore: String { return self._s[2906]! } + public var Privacy_PaymentsClearInfo: String { return self._s[2907]! } + public var CallSettings_TabIcon: String { return self._s[2908]! } + public var KeyCommand_Find: String { return self._s[2909]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2910]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2911]! } + public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2912]! } + public var Message_PinnedGame: String { return self._s[2913]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2914]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2916]! } + public var Login_CallRequestState2: String { return self._s[2918]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2920]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2918]!, self._r[2918]!, [_0]) + return formatWithArgumentRanges(self._s[2921]!, self._r[2921]!, [_0]) } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2920]!, self._r[2920]!, [_0]) + return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_0]) } - public var AuthSessions_AddDevice: String { return self._s[2921]! } - public var WallpaperPreview_Blurred: String { return self._s[2922]! } - public var Conversation_InstantPagePreview: String { return self._s[2923]! } + public var AuthSessions_AddDevice: String { return self._s[2924]! } + public var WallpaperPreview_Blurred: String { return self._s[2925]! } + public var Conversation_InstantPagePreview: String { return self._s[2926]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2924]!, self._r[2924]!, [_0]) + return formatWithArgumentRanges(self._s[2927]!, self._r[2927]!, [_0]) } - public var SecretTimer_VideoDescription: String { return self._s[2927]! } - public var WallpaperSearch_ColorRed: String { return self._s[2928]! } - public var GroupPermission_NoPinMessages: String { return self._s[2929]! } - public var Passport_Language_es: String { return self._s[2930]! } - public var Permissions_ContactsAllow_v0: String { return self._s[2932]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2933]! } + public var SecretTimer_VideoDescription: String { return self._s[2930]! } + public var WallpaperSearch_ColorRed: String { return self._s[2931]! } + public var GroupPermission_NoPinMessages: String { return self._s[2932]! } + public var Passport_Language_es: String { return self._s[2933]! } + public var Permissions_ContactsAllow_v0: String { return self._s[2935]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2936]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2934]!, self._r[2934]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2937]!, self._r[2937]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[2935]! } - public var WebPreview_GettingLinkInfo: String { return self._s[2936]! } - public var Watch_UserInfo_Unmute: String { return self._s[2937]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2938]! } - public var AccessDenied_CameraRestricted: String { return self._s[2940]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[2938]! } + public var WebPreview_GettingLinkInfo: String { return self._s[2939]! } + public var Watch_UserInfo_Unmute: String { return self._s[2940]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2941]! } + public var AccessDenied_CameraRestricted: String { return self._s[2943]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2941]!, self._r[2941]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2944]!, self._r[2944]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[2943]! } - public var Settings_CopyUsername: String { return self._s[2944]! } - public var Contacts_SearchLabel: String { return self._s[2945]! } - public var Map_OpenInYandexNavigator: String { return self._s[2947]! } - public var PasscodeSettings_EncryptData: String { return self._s[2948]! } - public var Settings_Wallet: String { return self._s[2949]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2950]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[2951]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[2952]! } - public var DialogList_AdNoticeAlert: String { return self._s[2953]! } - public var Wallet_Month_GenMay: String { return self._s[2955]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2956]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2957]! } - public var Localization_LanguageCustom: String { return self._s[2958]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2959]! } - public var CallFeedback_Title: String { return self._s[2960]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2963]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2964]! } - public var Wallet_Intro_CreateErrorTitle: String { return self._s[2965]! } - public var Conversation_InfoGroup: String { return self._s[2966]! } - public var Compose_NewMessage: String { return self._s[2967]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2968]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2969]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2970]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2971]! } + public var ChatList_ReadAll: String { return self._s[2946]! } + public var Settings_CopyUsername: String { return self._s[2947]! } + public var Contacts_SearchLabel: String { return self._s[2948]! } + public var Map_OpenInYandexNavigator: String { return self._s[2950]! } + public var PasscodeSettings_EncryptData: String { return self._s[2951]! } + public var Settings_Wallet: String { return self._s[2952]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2953]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2954]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[2955]! } + public var DialogList_AdNoticeAlert: String { return self._s[2956]! } + public var Wallet_Month_GenMay: String { return self._s[2958]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2959]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2960]! } + public var Localization_LanguageCustom: String { return self._s[2961]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2962]! } + public var CallFeedback_Title: String { return self._s[2963]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2966]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2967]! } + public var Wallet_Intro_CreateErrorTitle: String { return self._s[2968]! } + public var Conversation_InfoGroup: String { return self._s[2969]! } + public var Compose_NewMessage: String { return self._s[2970]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2971]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2972]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2973]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2974]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2972]!, self._r[2972]!, [_0]) + return formatWithArgumentRanges(self._s[2975]!, self._r[2975]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2973]! } - public var Login_CancelSignUpConfirmation: String { return self._s[2974]! } - public var ChangePhoneNumberCode_Help: String { return self._s[2975]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[2976]! } - public var Channel_BlackList_Title: String { return self._s[2977]! } - public var UserInfo_PhoneCall: String { return self._s[2978]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2980]! } - public var Wallet_Month_ShortJanuary: String { return self._s[2981]! } - public var State_connecting: String { return self._s[2982]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2983]! } - public var Wallet_Month_GenMarch: String { return self._s[2984]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2985]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[2986]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2976]! } + public var Login_CancelSignUpConfirmation: String { return self._s[2977]! } + public var ChangePhoneNumberCode_Help: String { return self._s[2978]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[2979]! } + public var Channel_BlackList_Title: String { return self._s[2980]! } + public var UserInfo_PhoneCall: String { return self._s[2981]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2983]! } + public var Wallet_Month_ShortJanuary: String { return self._s[2984]! } + public var State_connecting: String { return self._s[2985]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2986]! } + public var Wallet_Month_GenMarch: String { return self._s[2987]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2988]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[2989]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2987]!, self._r[2987]!, [_0]) + return formatWithArgumentRanges(self._s[2990]!, self._r[2990]!, [_0]) } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2988]!, self._r[2988]!, [_0]) + return formatWithArgumentRanges(self._s[2991]!, self._r[2991]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[2989]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2990]! } - public var Passport_Identity_EditPassport: String { return self._s[2991]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2993]! } - public var Localization_EnglishLanguageName: String { return self._s[2994]! } - public var Share_AuthDescription: String { return self._s[2995]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2996]! } - public var Passport_Identity_Surname: String { return self._s[2997]! } - public var Compose_TokenListPlaceholder: String { return self._s[2998]! } - public var Wallet_AccessDenied_Camera: String { return self._s[2999]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[3000]! } - public var Settings_AboutEmpty: String { return self._s[3001]! } - public var Conversation_Unmute: String { return self._s[3002]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[3004]! } - public var Wallet_Sending_Text: String { return self._s[3005]! } + public var Notifications_GroupNotifications: String { return self._s[2992]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2993]! } + public var Passport_Identity_EditPassport: String { return self._s[2994]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2996]! } + public var Localization_EnglishLanguageName: String { return self._s[2997]! } + public var Share_AuthDescription: String { return self._s[2998]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2999]! } + public var Passport_Identity_Surname: String { return self._s[3000]! } + public var Compose_TokenListPlaceholder: String { return self._s[3001]! } + public var Wallet_AccessDenied_Camera: String { return self._s[3002]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[3003]! } + public var Settings_AboutEmpty: String { return self._s[3004]! } + public var Conversation_Unmute: String { return self._s[3005]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[3007]! } + public var Wallet_Sending_Text: String { return self._s[3008]! } public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3006]!, self._r[3006]!, [_1]) + return formatWithArgumentRanges(self._s[3009]!, self._r[3009]!, [_1]) } - public var Login_CodeSentCall: String { return self._s[3007]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3009]! } - public var ChatSettings_Appearance: String { return self._s[3010]! } - public var ClearCache_StorageUsage: String { return self._s[3011]! } - public var Appearance_PickAccentColor: String { return self._s[3012]! } + public var Login_CodeSentCall: String { return self._s[3010]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3012]! } + public var ChatSettings_Appearance: String { return self._s[3013]! } + public var ClearCache_StorageUsage: String { return self._s[3014]! } + public var Appearance_PickAccentColor: String { return self._s[3015]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3013]!, self._r[3013]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3016]!, self._r[3016]!, [_1, _2]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3014]!, self._r[3014]!, [_1]) + return formatWithArgumentRanges(self._s[3017]!, self._r[3017]!, [_1]) } - public var Notification_CallMissed: String { return self._s[3015]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3016]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3017]! } - public var Wallet_Month_GenOctober: String { return self._s[3019]! } - public var ChatAdmins_AdminLabel: String { return self._s[3020]! } - public var KeyCommand_JumpToNextChat: String { return self._s[3021]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[3023]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3024]! } - public var Month_GenJune: String { return self._s[3025]! } - public var IntentsSettings_MainAccountInfo: String { return self._s[3026]! } - public var Watch_Location_Current: String { return self._s[3027]! } - public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3028]! } - public var Conversation_TitleMute: String { return self._s[3029]! } - public var Map_PlacesInThisArea: String { return self._s[3030]! } + public var Notification_CallMissed: String { return self._s[3018]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3019]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3020]! } + public var Wallet_Month_GenOctober: String { return self._s[3022]! } + public var ChatAdmins_AdminLabel: String { return self._s[3023]! } + public var KeyCommand_JumpToNextChat: String { return self._s[3024]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[3026]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3027]! } + public var Month_GenJune: String { return self._s[3028]! } + public var IntentsSettings_MainAccountInfo: String { return self._s[3029]! } + public var Watch_Location_Current: String { return self._s[3030]! } + public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3031]! } + public var Conversation_TitleMute: String { return self._s[3032]! } + public var Map_PlacesInThisArea: String { return self._s[3033]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3031]!, self._r[3031]!, [_1]) + return formatWithArgumentRanges(self._s[3034]!, self._r[3034]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[3032]! } + public var GroupInfo_DeleteAndExit: String { return self._s[3035]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3033]!, self._r[3033]!, [_0]) + return formatWithArgumentRanges(self._s[3036]!, self._r[3036]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[3034]! } - public var Chat_SlowmodeSendError: String { return self._s[3035]! } - public var MaskStickerSettings_Info: String { return self._s[3036]! } - public var EditTheme_Expand_TopInfo: String { return self._s[3037]! } + public var Call_ReportPlaceholder: String { return self._s[3037]! } + public var Chat_SlowmodeSendError: String { return self._s[3038]! } + public var MaskStickerSettings_Info: String { return self._s[3039]! } + public var EditTheme_Expand_TopInfo: String { return self._s[3040]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3038]!, self._r[3038]!, [_0]) + return formatWithArgumentRanges(self._s[3041]!, self._r[3041]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[3039]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3041]! } - public var Contacts_ShareTelegram: String { return self._s[3042]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3043]! } - public var Map_AddressOnMap: String { return self._s[3044]! } - public var Channel_ErrorAccessDenied: String { return self._s[3045]! } - public var UserInfo_ScamBotWarning: String { return self._s[3047]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[3048]! } - public var Call_ConnectionErrorTitle: String { return self._s[3049]! } - public var UserInfo_NotificationsEnable: String { return self._s[3050]! } - public var ArchivedChats_IntroText1: String { return self._s[3051]! } - public var Tour_Text4: String { return self._s[3054]! } - public var WallpaperSearch_Recent: String { return self._s[3055]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[3056]! } - public var Profile_MessageLifetime2s: String { return self._s[3058]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3059]! } - public var Notification_MessageLifetime2s: String { return self._s[3060]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[3042]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3044]! } + public var Contacts_ShareTelegram: String { return self._s[3045]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3046]! } + public var Map_AddressOnMap: String { return self._s[3047]! } + public var Channel_ErrorAccessDenied: String { return self._s[3048]! } + public var UserInfo_ScamBotWarning: String { return self._s[3050]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[3051]! } + public var Call_ConnectionErrorTitle: String { return self._s[3052]! } + public var UserInfo_NotificationsEnable: String { return self._s[3053]! } + public var ArchivedChats_IntroText1: String { return self._s[3054]! } + public var Tour_Text4: String { return self._s[3057]! } + public var WallpaperSearch_Recent: String { return self._s[3058]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[3059]! } + public var Profile_MessageLifetime2s: String { return self._s[3061]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3062]! } + public var Notification_MessageLifetime2s: String { return self._s[3063]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3061]!, self._r[3061]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3064]!, self._r[3064]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[3062]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3063]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3064]! } + public var Cache_ClearCache: String { return self._s[3065]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3066]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3067]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3068]!, self._r[3068]!, [_0]) + return formatWithArgumentRanges(self._s[3071]!, self._r[3071]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3070]!, self._r[3070]!, [_0]) + return formatWithArgumentRanges(self._s[3073]!, self._r[3073]!, [_0]) } - public var LocalGroup_Text: String { return self._s[3071]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3072]! } - public var SocksProxySetup_TypeSocks: String { return self._s[3073]! } - public var ChatList_UnarchiveAction: String { return self._s[3074]! } - public var AutoNightTheme_Title: String { return self._s[3075]! } - public var InstantPage_FeedbackButton: String { return self._s[3076]! } - public var Passport_FieldAddress: String { return self._s[3077]! } + public var LocalGroup_Text: String { return self._s[3074]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3075]! } + public var SocksProxySetup_TypeSocks: String { return self._s[3076]! } + public var ChatList_UnarchiveAction: String { return self._s[3077]! } + public var AutoNightTheme_Title: String { return self._s[3078]! } + public var InstantPage_FeedbackButton: String { return self._s[3079]! } + public var Passport_FieldAddress: String { return self._s[3080]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3078]!, self._r[3078]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3081]!, self._r[3081]!, [_1, _2]) } - public var Month_ShortMarch: String { return self._s[3079]! } + public var Month_ShortMarch: String { return self._s[3082]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3080]!, self._r[3080]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3083]!, self._r[3083]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3081]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3082]! } - public var Passport_FloodError: String { return self._s[3083]! } - public var SecretGif_Title: String { return self._s[3084]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3085]! } - public var ChatList_Context_UnhideArchive: String { return self._s[3086]! } - public var Passport_Language_th: String { return self._s[3088]! } - public var Passport_Address_Address: String { return self._s[3089]! } - public var Login_InvalidLastNameError: String { return self._s[3090]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3091]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[3092]! } - public var ChatList_Context_Archive: String { return self._s[3093]! } - public var SettingsSearch_FAQ: String { return self._s[3094]! } - public var ShareMenu_Send: String { return self._s[3095]! } - public var WallpaperSearch_ColorYellow: String { return self._s[3097]! } - public var Month_GenNovember: String { return self._s[3099]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3101]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3084]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3085]! } + public var Passport_FloodError: String { return self._s[3086]! } + public var SecretGif_Title: String { return self._s[3087]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3088]! } + public var ChatList_Context_UnhideArchive: String { return self._s[3089]! } + public var Passport_Language_th: String { return self._s[3091]! } + public var Passport_Address_Address: String { return self._s[3092]! } + public var Login_InvalidLastNameError: String { return self._s[3093]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3094]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[3095]! } + public var ChatList_Context_Archive: String { return self._s[3096]! } + public var SettingsSearch_FAQ: String { return self._s[3097]! } + public var ShareMenu_Send: String { return self._s[3098]! } + public var WallpaperSearch_ColorYellow: String { return self._s[3100]! } + public var Month_GenNovember: String { return self._s[3102]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3104]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3102]!, self._r[3102]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3105]!, self._r[3105]!, [_1, _2]) } - public var Conversation_SwipeToReplyHintText: String { return self._s[3103]! } - public var Checkout_Email: String { return self._s[3104]! } - public var NotificationsSound_Tritone: String { return self._s[3105]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[3107]! } - public var Wallet_ContextMenuCopy: String { return self._s[3109]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3106]! } + public var Checkout_Email: String { return self._s[3107]! } + public var NotificationsSound_Tritone: String { return self._s[3108]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[3110]! } + public var Wallet_ContextMenuCopy: String { return self._s[3112]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3111]!, self._r[3111]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3114]!, self._r[3114]!, [_1, _2, _3]) } - public var Appearance_TextSize_Automatic: String { return self._s[3112]! } + public var Appearance_TextSize_Automatic: String { return self._s[3115]! } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3113]!, self._r[3113]!, [_1]) + return formatWithArgumentRanges(self._s[3116]!, self._r[3116]!, [_1]) } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3114]!, self._r[3114]!, [_0]) + return formatWithArgumentRanges(self._s[3117]!, self._r[3117]!, [_0]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[3115]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[3118]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3116]!, self._r[3116]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3119]!, self._r[3119]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[3117]! } - public var Notification_Exceptions_Add: String { return self._s[3118]! } - public var DialogList_You: String { return self._s[3119]! } - public var MediaPicker_Send: String { return self._s[3122]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3123]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3124]! } - public var Call_AudioRouteSpeaker: String { return self._s[3125]! } - public var Watch_UserInfo_Title: String { return self._s[3126]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[3127]! } - public var Appearance_AccentColor: String { return self._s[3129]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3120]! } + public var Notification_Exceptions_Add: String { return self._s[3121]! } + public var DialogList_You: String { return self._s[3122]! } + public var MediaPicker_Send: String { return self._s[3125]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3126]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3127]! } + public var Call_AudioRouteSpeaker: String { return self._s[3128]! } + public var Watch_UserInfo_Title: String { return self._s[3129]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[3130]! } + public var Appearance_AccentColor: String { return self._s[3132]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3130]!, self._r[3130]!, [_0]) + return formatWithArgumentRanges(self._s[3133]!, self._r[3133]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3131]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3134]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3132]!, self._r[3132]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3135]!, self._r[3135]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[3133]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3134]! } - public var Notification_CallOutgoing: String { return self._s[3135]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3136]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3137]! } - public var Call_RecordingDisabledMessage: String { return self._s[3138]! } - public var Message_Game: String { return self._s[3139]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[3140]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3141]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3142]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3143]! } - public var Date_DialogDateFormat: String { return self._s[3145]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3146]! } - public var Notifications_InAppNotifications: String { return self._s[3147]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[3136]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3137]! } + public var Notification_CallOutgoing: String { return self._s[3138]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3139]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3140]! } + public var Call_RecordingDisabledMessage: String { return self._s[3141]! } + public var Message_Game: String { return self._s[3142]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[3143]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3144]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3145]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3146]! } + public var Date_DialogDateFormat: String { return self._s[3148]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3149]! } + public var Notifications_InAppNotifications: String { return self._s[3150]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3148]!, self._r[3148]!, [_0]) - } - public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3149]!, self._r[3149]!, [_1, _2]) - } - public var NewContact_Title: String { return self._s[3150]! } - public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3151]!, self._r[3151]!, [_0]) } - public var Conversation_ViewContactDetails: String { return self._s[3152]! } + public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3152]!, self._r[3152]!, [_1, _2]) + } + public var NewContact_Title: String { return self._s[3153]! } + public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3154]!, self._r[3154]!, [_0]) + } + public var Conversation_ViewContactDetails: String { return self._s[3155]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3154]!, self._r[3154]!, [_1]) + return formatWithArgumentRanges(self._s[3157]!, self._r[3157]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3155]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3156]! } - public var PrivacySettings_Title: String { return self._s[3157]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3160]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[3161]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[3162]! } - public var Contacts_PhoneNumber: String { return self._s[3163]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3165]! } - public var Map_ShowPlaces: String { return self._s[3166]! } - public var ChatAdmins_Title: String { return self._s[3167]! } - public var InstantPage_Reference: String { return self._s[3169]! } - public var Wallet_Info_Updating: String { return self._s[3170]! } - public var ReportGroupLocation_Text: String { return self._s[3171]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3158]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3159]! } + public var PrivacySettings_Title: String { return self._s[3160]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3163]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[3164]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[3165]! } + public var Contacts_PhoneNumber: String { return self._s[3166]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3168]! } + public var Map_ShowPlaces: String { return self._s[3169]! } + public var ChatAdmins_Title: String { return self._s[3170]! } + public var InstantPage_Reference: String { return self._s[3172]! } + public var Wallet_Info_Updating: String { return self._s[3173]! } + public var ReportGroupLocation_Text: String { return self._s[3174]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3172]!, self._r[3172]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3175]!, self._r[3175]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[3173]! } - public var Watch_UserInfo_Block: String { return self._s[3174]! } - public var ChatSettings_Stickers: String { return self._s[3175]! } - public var ChatSettings_DownloadInBackground: String { return self._s[3176]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3177]! } + public var Camera_FlashOff: String { return self._s[3176]! } + public var Watch_UserInfo_Block: String { return self._s[3177]! } + public var ChatSettings_Stickers: String { return self._s[3178]! } + public var ChatSettings_DownloadInBackground: String { return self._s[3179]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3180]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3178]!, self._r[3178]!, [_0]) + return formatWithArgumentRanges(self._s[3181]!, self._r[3181]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[3179]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3180]! } - public var AutoDownloadSettings_Cellular: String { return self._s[3181]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[3182]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3183]! } - public var VoiceOver_MessageContextShare: String { return self._s[3184]! } + public var Settings_ViewPhoto: String { return self._s[3182]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3183]! } + public var AutoDownloadSettings_Cellular: String { return self._s[3184]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[3185]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3186]! } + public var VoiceOver_MessageContextShare: String { return self._s[3187]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3186]!, self._r[3186]!, [_0]) - } - public var Privacy_DeleteDrafts: String { return self._s[3187]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3188]! } - public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3189]!, self._r[3189]!, [_0]) } - public var DialogList_SavedMessagesHelp: String { return self._s[3190]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3191]! } - public var DialogList_SavedMessages: String { return self._s[3192]! } - public var GroupInfo_UpgradeButton: String { return self._s[3193]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3195]! } - public var DialogList_Pin: String { return self._s[3196]! } + public var Privacy_DeleteDrafts: String { return self._s[3190]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3191]! } + public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3192]!, self._r[3192]!, [_0]) + } + public var DialogList_SavedMessagesHelp: String { return self._s[3193]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3194]! } + public var DialogList_SavedMessages: String { return self._s[3195]! } + public var GroupInfo_UpgradeButton: String { return self._s[3196]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3198]! } + public var DialogList_Pin: String { return self._s[3199]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3197]!, self._r[3197]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3200]!, self._r[3200]!, [_0, _1]) } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3198]!, self._r[3198]!, [_0]) + return formatWithArgumentRanges(self._s[3201]!, self._r[3201]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3199]! } - public var UserInfo_NotificationsDisable: String { return self._s[3200]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[3201]! } - public var Paint_Outlined: String { return self._s[3202]! } - public var Activity_PlayingGame: String { return self._s[3203]! } - public var SearchImages_NoImagesFound: String { return self._s[3204]! } - public var SocksProxySetup_ProxyType: String { return self._s[3205]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3207]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3208]! } - public var Settings_AppLanguage: String { return self._s[3209]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3210]! } - public var Common_ChoosePhoto: String { return self._s[3211]! } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3212]! } - public var CallFeedback_ReasonEcho: String { return self._s[3213]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3202]! } + public var UserInfo_NotificationsDisable: String { return self._s[3203]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[3204]! } + public var Paint_Outlined: String { return self._s[3205]! } + public var Activity_PlayingGame: String { return self._s[3206]! } + public var SearchImages_NoImagesFound: String { return self._s[3207]! } + public var SocksProxySetup_ProxyType: String { return self._s[3208]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3210]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3211]! } + public var Settings_AppLanguage: String { return self._s[3212]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3213]! } + public var Common_ChoosePhoto: String { return self._s[3214]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3215]! } + public var CallFeedback_ReasonEcho: String { return self._s[3216]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3214]!, self._r[3214]!, [_1]) + return formatWithArgumentRanges(self._s[3217]!, self._r[3217]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3215]! } - public var PollResults_Collapse: String { return self._s[3216]! } - public var Activity_UploadingVideo: String { return self._s[3217]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3218]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3219]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3220]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3221]! } - public var PUSH_SENDER_YOU: String { return self._s[3222]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3223]! } - public var Checkout_PayWithTouchId: String { return self._s[3224]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3225]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3218]! } + public var PollResults_Collapse: String { return self._s[3219]! } + public var Activity_UploadingVideo: String { return self._s[3220]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3221]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3222]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3223]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3224]! } + public var PUSH_SENDER_YOU: String { return self._s[3225]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3226]! } + public var Checkout_PayWithTouchId: String { return self._s[3227]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3228]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3227]!, self._r[3227]!, [_1]) - } - public var Notifications_ExceptionsNone: String { return self._s[3228]! } - public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3229]!, self._r[3229]!, [_0]) - } - public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3230]!, self._r[3230]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3232]! } - public var Passport_Address_Region: String { return self._s[3235]! } - public var ChatList_DeleteChat: String { return self._s[3236]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3237]! } - public var PhotoEditor_TiltShift: String { return self._s[3238]! } - public var Settings_FAQ_URL: String { return self._s[3239]! } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3240]! } - public var Passport_Language_sl: String { return self._s[3241]! } - public var Settings_PrivacySettings: String { return self._s[3243]! } - public var SharedMedia_TitleLink: String { return self._s[3244]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3245]! } - public var Settings_SetProfilePhoto: String { return self._s[3246]! } - public var Channel_About_Help: String { return self._s[3247]! } - public var Contacts_PermissionsEnable: String { return self._s[3248]! } - public var Wallet_Sending_Title: String { return self._s[3249]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3250]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3251]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3253]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3254]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3255]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3256]! } - public var OldChannels_Title: String { return self._s[3257]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3258]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3260]! } - public var Map_OpenInYandexMaps: String { return self._s[3262]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3263]! } - public var VoiceOver_MessageContextReply: String { return self._s[3264]! } - public var PhotoEditor_SaturationTool: String { return self._s[3266]! } + public var Notifications_ExceptionsNone: String { return self._s[3231]! } + public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3232]!, self._r[3232]!, [_0]) + } + public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3233]!, self._r[3233]!, [_1]) + } + public var AuthSessions_IncompleteAttempts: String { return self._s[3235]! } + public var Passport_Address_Region: String { return self._s[3238]! } + public var ChatList_DeleteChat: String { return self._s[3239]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3240]! } + public var PhotoEditor_TiltShift: String { return self._s[3241]! } + public var Settings_FAQ_URL: String { return self._s[3242]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3243]! } + public var Passport_Language_sl: String { return self._s[3244]! } + public var Settings_PrivacySettings: String { return self._s[3246]! } + public var SharedMedia_TitleLink: String { return self._s[3247]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3248]! } + public var Settings_SetProfilePhoto: String { return self._s[3249]! } + public var Channel_About_Help: String { return self._s[3250]! } + public var Contacts_PermissionsEnable: String { return self._s[3251]! } + public var Wallet_Sending_Title: String { return self._s[3252]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3253]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3254]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3256]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3257]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3258]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3259]! } + public var OldChannels_Title: String { return self._s[3260]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3261]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3263]! } + public var Map_OpenInYandexMaps: String { return self._s[3265]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3266]! } + public var VoiceOver_MessageContextReply: String { return self._s[3267]! } + public var PhotoEditor_SaturationTool: String { return self._s[3269]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3267]!, self._r[3267]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3270]!, self._r[3270]!, [_1, _2]) } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3268]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3269]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3270]! } + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3271]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3272]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3273]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3271]!, self._r[3271]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_1, "\(_2)"]) } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3272]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3274]! } - public var SettingsSearch_Synonyms_Wallet: String { return self._s[3275]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3275]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3277]! } + public var SettingsSearch_Synonyms_Wallet: String { return self._s[3278]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3276]!, self._r[3276]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3279]!, self._r[3279]!, [_1, _2]) } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3277]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3280]! } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3278]!, self._r[3278]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3281]!, self._r[3281]!, [_1, _2, _3]) } - public var WallpaperPreview_PatternTitle: String { return self._s[3279]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[3280]! } - public var Passport_PassportInformation: String { return self._s[3283]! } - public var Theme_Unsupported: String { return self._s[3284]! } - public var WatchRemote_AlertTitle: String { return self._s[3285]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3286]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3288]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3282]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3283]! } + public var Passport_PassportInformation: String { return self._s[3286]! } + public var Theme_Unsupported: String { return self._s[3287]! } + public var WatchRemote_AlertTitle: String { return self._s[3288]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3289]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3291]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3289]!, self._r[3289]!, [_0]) + return formatWithArgumentRanges(self._s[3292]!, self._r[3292]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3290]!, self._r[3290]!, [_1]) + return formatWithArgumentRanges(self._s[3293]!, self._r[3293]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3291]! } - public var Wallet_Navigation_Done: String { return self._s[3293]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3294]! } - public var AccessDenied_CameraDisabled: String { return self._s[3295]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3294]! } + public var Wallet_Navigation_Done: String { return self._s[3296]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3297]! } + public var AccessDenied_CameraDisabled: String { return self._s[3298]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3296]!, self._r[3296]!, [_0]) + return formatWithArgumentRanges(self._s[3299]!, self._r[3299]!, [_0]) } - public var ClearCache_Forever: String { return self._s[3297]! } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3298]! } - public var CreatePoll_Quiz: String { return self._s[3299]! } - public var PhotoEditor_ContrastTool: String { return self._s[3302]! } + public var ClearCache_Forever: String { return self._s[3300]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3301]! } + public var CreatePoll_Quiz: String { return self._s[3302]! } + public var PhotoEditor_ContrastTool: String { return self._s[3305]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3303]!, self._r[3303]!, [_1]) + return formatWithArgumentRanges(self._s[3306]!, self._r[3306]!, [_1]) } - public var DialogList_Draft: String { return self._s[3304]! } - public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3305]! } - public var Privacy_TopPeersDelete: String { return self._s[3307]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3308]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3309]! } - public var WebSearch_RecentSectionClear: String { return self._s[3310]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3311]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3313]! } - public var Common_Done: String { return self._s[3315]! } - public var Shortcut_SwitchAccount: String { return self._s[3316]! } - public var AuthSessions_EmptyText: String { return self._s[3317]! } - public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3318]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3319]! } - public var Tour_Title5: String { return self._s[3320]! } - public var Wallet_Settings_Title: String { return self._s[3321]! } + public var DialogList_Draft: String { return self._s[3307]! } + public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3308]! } + public var Privacy_TopPeersDelete: String { return self._s[3310]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3311]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3312]! } + public var WebSearch_RecentSectionClear: String { return self._s[3313]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3314]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3316]! } + public var Common_Done: String { return self._s[3318]! } + public var Shortcut_SwitchAccount: String { return self._s[3319]! } + public var AuthSessions_EmptyText: String { return self._s[3320]! } + public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3321]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3322]! } + public var Tour_Title5: String { return self._s[3323]! } + public var Wallet_Settings_Title: String { return self._s[3324]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3322]!, self._r[3322]!, [_0]) + return formatWithArgumentRanges(self._s[3325]!, self._r[3325]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3323]! } - public var Conversation_LinkDialogSave: String { return self._s[3324]! } - public var GroupInfo_ActionRestrict: String { return self._s[3325]! } - public var Checkout_Title: String { return self._s[3326]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3328]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3330]! } - public var Notification_RenamedGroup: String { return self._s[3331]! } - public var PeopleNearby_Groups: String { return self._s[3332]! } - public var Checkout_PayWithFaceId: String { return self._s[3333]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3334]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3336]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3337]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3338]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3326]! } + public var Conversation_LinkDialogSave: String { return self._s[3327]! } + public var GroupInfo_ActionRestrict: String { return self._s[3328]! } + public var Checkout_Title: String { return self._s[3329]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3331]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3333]! } + public var Notification_RenamedGroup: String { return self._s[3334]! } + public var PeopleNearby_Groups: String { return self._s[3335]! } + public var Checkout_PayWithFaceId: String { return self._s[3336]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3337]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3339]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3340]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3341]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3339]!, self._r[3339]!, [_0]) + return formatWithArgumentRanges(self._s[3342]!, self._r[3342]!, [_0]) } - public var Profile_AddToExisting: String { return self._s[3341]! } + public var Profile_AddToExisting: String { return self._s[3344]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3342]!, self._r[3342]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3345]!, self._r[3345]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3344]! } - public var Permissions_PrivacyPolicy: String { return self._s[3345]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3346]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3347]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3349]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3351]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3352]! } + public var Cache_Files: String { return self._s[3347]! } + public var Permissions_PrivacyPolicy: String { return self._s[3348]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3349]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3350]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3352]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3354]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3355]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3353]!, self._r[3353]!, [_0]) + return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3354]! } - public var VoiceOver_AttachMedia: String { return self._s[3357]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3358]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3357]! } + public var VoiceOver_AttachMedia: String { return self._s[3360]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3361]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3359]!, self._r[3359]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3362]!, self._r[3362]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3360]! } - public var Conversation_SetReminder_Title: String { return self._s[3361]! } - public var Passport_FieldAddressHelp: String { return self._s[3362]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3363]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3364]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3363]! } + public var Conversation_SetReminder_Title: String { return self._s[3364]! } + public var Passport_FieldAddressHelp: String { return self._s[3365]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3366]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3367]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3365]!, self._r[3365]!, [_0]) + return formatWithArgumentRanges(self._s[3368]!, self._r[3368]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3366]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3367]! } - public var Login_UnknownError: String { return self._s[3368]! } - public var Group_UpgradeNoticeText2: String { return self._s[3371]! } - public var Watch_Compose_AddContact: String { return self._s[3372]! } - public var ClearCache_StorageServiceFiles: String { return self._s[3373]! } - public var Web_Error: String { return self._s[3374]! } - public var Gif_Search: String { return self._s[3375]! } - public var Profile_MessageLifetime1h: String { return self._s[3376]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3377]! } - public var Channel_Username_CheckingUsername: String { return self._s[3378]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3379]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3380]! } - public var Channel_AboutItem: String { return self._s[3381]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3383]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3384]! } - public var GroupInfo_SharedMedia: String { return self._s[3385]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3369]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3370]! } + public var Login_UnknownError: String { return self._s[3371]! } + public var Group_UpgradeNoticeText2: String { return self._s[3374]! } + public var Watch_Compose_AddContact: String { return self._s[3375]! } + public var ClearCache_StorageServiceFiles: String { return self._s[3376]! } + public var Web_Error: String { return self._s[3377]! } + public var Gif_Search: String { return self._s[3378]! } + public var Profile_MessageLifetime1h: String { return self._s[3379]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3380]! } + public var Channel_Username_CheckingUsername: String { return self._s[3381]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3382]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3383]! } + public var Channel_AboutItem: String { return self._s[3384]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3386]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3387]! } + public var GroupInfo_SharedMedia: String { return self._s[3388]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3386]!, self._r[3386]!, [_1]) + return formatWithArgumentRanges(self._s[3389]!, self._r[3389]!, [_1]) } - public var Call_PhoneCallInProgressMessage: String { return self._s[3387]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3390]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3388]!, self._r[3388]!, [_1]) + return formatWithArgumentRanges(self._s[3391]!, self._r[3391]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3389]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3390]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3391]! } - public var CreatePoll_AddOption: String { return self._s[3392]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3393]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3394]! } - public var Channel_Management_AddModerator: String { return self._s[3395]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3396]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3397]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3398]! } - public var Theme_Colors_Background: String { return self._s[3399]! } - public var NotificationsSound_Hello: String { return self._s[3401]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3402]! } - public var Channel_Stickers_Placeholder: String { return self._s[3404]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3392]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3393]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3394]! } + public var CreatePoll_AddOption: String { return self._s[3395]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3396]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3397]! } + public var Channel_Management_AddModerator: String { return self._s[3398]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3399]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3400]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3401]! } + public var Theme_Colors_Background: String { return self._s[3402]! } + public var NotificationsSound_Hello: String { return self._s[3404]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3405]! } + public var Channel_Stickers_Placeholder: String { return self._s[3407]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3405]!, self._r[3405]!, [_0]) + return formatWithArgumentRanges(self._s[3408]!, self._r[3408]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3406]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3407]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3408]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3409]! } - public var AutoDownloadSettings_Channels: String { return self._s[3410]! } - public var Passport_Language_mn: String { return self._s[3411]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3414]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3415]! } - public var Passport_Language_ja: String { return self._s[3417]! } - public var Settings_About_Title: String { return self._s[3418]! } - public var Settings_NotificationsAndSounds: String { return self._s[3419]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3420]! } - public var Settings_BlockedUsers: String { return self._s[3421]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3409]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3410]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3411]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3412]! } + public var AutoDownloadSettings_Channels: String { return self._s[3413]! } + public var Passport_Language_mn: String { return self._s[3414]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3417]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3418]! } + public var Passport_Language_ja: String { return self._s[3420]! } + public var Settings_About_Title: String { return self._s[3421]! } + public var Settings_NotificationsAndSounds: String { return self._s[3422]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3423]! } + public var Settings_BlockedUsers: String { return self._s[3424]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3422]!, self._r[3422]!, [_0]) + return formatWithArgumentRanges(self._s[3425]!, self._r[3425]!, [_0]) } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3423]! } - public var Wallet_Weekday_Today: String { return self._s[3424]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3425]! } - public var Widget_ApplicationLocked: String { return self._s[3426]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3427]! } - public var Channel_Username_Title: String { return self._s[3428]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3426]! } + public var Wallet_Weekday_Today: String { return self._s[3427]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3428]! } + public var Widget_ApplicationLocked: String { return self._s[3429]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3430]! } + public var Channel_Username_Title: String { return self._s[3431]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3429]!, self._r[3429]!, [_0]) + return formatWithArgumentRanges(self._s[3432]!, self._r[3432]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3431]! } - public var AppleWatch_Title: String { return self._s[3432]! } - public var Activity_RecordingVideoMessage: String { return self._s[3433]! } + public var AttachmentMenu_File: String { return self._s[3434]! } + public var AppleWatch_Title: String { return self._s[3435]! } + public var Activity_RecordingVideoMessage: String { return self._s[3436]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3434]!, self._r[3434]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3437]!, self._r[3437]!, [_1, _2]) } - public var Theme_Colors_Messages: String { return self._s[3435]! } - public var Weekday_Saturday: String { return self._s[3436]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3437]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3438]! } - public var Common_Next: String { return self._s[3440]! } - public var Channel_Stickers_YourStickers: String { return self._s[3442]! } - public var Message_Theme: String { return self._s[3443]! } - public var Call_AudioRouteHeadphones: String { return self._s[3444]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3446]! } - public var Watch_Contacts_NoResults: String { return self._s[3448]! } - public var PhotoEditor_TintTool: String { return self._s[3451]! } - public var LoginPassword_ResetAccount: String { return self._s[3453]! } - public var Settings_SavedMessages: String { return self._s[3454]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3455]! } - public var Bot_GenericSupportStatus: String { return self._s[3456]! } - public var StickerPack_Add: String { return self._s[3457]! } - public var Checkout_TotalAmount: String { return self._s[3458]! } - public var Your_cards_number_is_invalid: String { return self._s[3459]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3460]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3461]! } + public var Theme_Colors_Messages: String { return self._s[3438]! } + public var Weekday_Saturday: String { return self._s[3439]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3440]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3441]! } + public var Common_Next: String { return self._s[3443]! } + public var Channel_Stickers_YourStickers: String { return self._s[3445]! } + public var Message_Theme: String { return self._s[3446]! } + public var Call_AudioRouteHeadphones: String { return self._s[3447]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3449]! } + public var Watch_Contacts_NoResults: String { return self._s[3451]! } + public var PhotoEditor_TintTool: String { return self._s[3454]! } + public var LoginPassword_ResetAccount: String { return self._s[3456]! } + public var Settings_SavedMessages: String { return self._s[3457]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3458]! } + public var Bot_GenericSupportStatus: String { return self._s[3459]! } + public var StickerPack_Add: String { return self._s[3460]! } + public var Checkout_TotalAmount: String { return self._s[3461]! } + public var Your_cards_number_is_invalid: String { return self._s[3462]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3463]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3464]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3462]!, self._r[3462]!, [_0]) + return formatWithArgumentRanges(self._s[3465]!, self._r[3465]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3463]!, self._r[3463]!, [_1, _2]) - } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3464]! } - public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3466]!, self._r[3466]!, [_1, _2]) } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3467]! } + public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3469]!, self._r[3469]!, [_1, _2]) + } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3467]!, self._r[3467]!, [_0]) + return formatWithArgumentRanges(self._s[3470]!, self._r[3470]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3468]! } - public var StickerPack_Share: String { return self._s[3469]! } - public var Passport_DeleteAddress: String { return self._s[3470]! } - public var Settings_Passport: String { return self._s[3471]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3472]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3473]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3474]! } - public var Contacts_PermissionsText: String { return self._s[3475]! } - public var Group_Setup_HistoryVisible: String { return self._s[3476]! } - public var Wallet_Month_ShortDecember: String { return self._s[3478]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3479]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3480]! } - public var SocksProxySetup_Title: String { return self._s[3481]! } - public var Notification_Mute1h: String { return self._s[3482]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3471]! } + public var StickerPack_Share: String { return self._s[3472]! } + public var Passport_DeleteAddress: String { return self._s[3473]! } + public var Settings_Passport: String { return self._s[3474]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3475]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3476]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3477]! } + public var Contacts_PermissionsText: String { return self._s[3478]! } + public var Group_Setup_HistoryVisible: String { return self._s[3479]! } + public var Wallet_Month_ShortDecember: String { return self._s[3481]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3482]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3483]! } + public var SocksProxySetup_Title: String { return self._s[3484]! } + public var Notification_Mute1h: String { return self._s[3485]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3483]!, self._r[3483]!, [_0]) + return formatWithArgumentRanges(self._s[3486]!, self._r[3486]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3484]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3487]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3485]!, self._r[3485]!, [_1]) + return formatWithArgumentRanges(self._s[3488]!, self._r[3488]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3486]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3489]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3491]! } - public var DialogList_NoMessagesText: String { return self._s[3492]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3493]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3494]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3496]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3497]! } - public var Common_TakePhotoOrVideo: String { return self._s[3498]! } - public var Wallet_Words_Text: String { return self._s[3499]! } - public var Call_StatusBusy: String { return self._s[3500]! } - public var Conversation_PinnedMessage: String { return self._s[3501]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3502]! } - public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3503]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3504]! } - public var Undo_ChatCleared: String { return self._s[3505]! } - public var AppleWatch_ReplyPresets: String { return self._s[3506]! } - public var Passport_DiscardMessageDescription: String { return self._s[3508]! } - public var Login_NetworkError: String { return self._s[3509]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3489]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3492]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3494]! } + public var DialogList_NoMessagesText: String { return self._s[3495]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3496]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3497]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3499]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3500]! } + public var Common_TakePhotoOrVideo: String { return self._s[3501]! } + public var Wallet_Words_Text: String { return self._s[3502]! } + public var Call_StatusBusy: String { return self._s[3503]! } + public var Conversation_PinnedMessage: String { return self._s[3504]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3505]! } + public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3506]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3507]! } + public var Undo_ChatCleared: String { return self._s[3508]! } + public var AppleWatch_ReplyPresets: String { return self._s[3509]! } + public var Passport_DiscardMessageDescription: String { return self._s[3511]! } + public var Login_NetworkError: String { return self._s[3512]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3510]!, self._r[3510]!, [_0]) + return formatWithArgumentRanges(self._s[3513]!, self._r[3513]!, [_0]) } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3511]!, self._r[3511]!, [_0]) + return formatWithArgumentRanges(self._s[3514]!, self._r[3514]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3512]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3514]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3515]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3515]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3517]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3518]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3517]!, self._r[3517]!, [_0]) + return formatWithArgumentRanges(self._s[3520]!, self._r[3520]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3518]! } - public var VoiceOver_Chat_Music: String { return self._s[3519]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3520]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3522]! } - public var ConversationMedia_Title: String { return self._s[3523]! } - public var EncryptionKey_Title: String { return self._s[3525]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3526]! } - public var Notification_Exceptions_AddException: String { return self._s[3527]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3528]! } - public var Profile_MessageLifetime1m: String { return self._s[3529]! } + public var Call_ConnectionErrorMessage: String { return self._s[3521]! } + public var VoiceOver_Chat_Music: String { return self._s[3522]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3523]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3525]! } + public var ConversationMedia_Title: String { return self._s[3526]! } + public var EncryptionKey_Title: String { return self._s[3528]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3529]! } + public var Notification_Exceptions_AddException: String { return self._s[3530]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3531]! } + public var Profile_MessageLifetime1m: String { return self._s[3532]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3530]!, self._r[3530]!, [_1]) + return formatWithArgumentRanges(self._s[3533]!, self._r[3533]!, [_1]) } - public var Month_GenMay: String { return self._s[3531]! } + public var Month_GenMay: String { return self._s[3534]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3532]!, self._r[3532]!, [_0]) + return formatWithArgumentRanges(self._s[3535]!, self._r[3535]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3533]! } - public var Wallet_Send_AddressInfo: String { return self._s[3534]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3535]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3536]! } + public var PeopleNearby_Users: String { return self._s[3536]! } + public var Wallet_Send_AddressInfo: String { return self._s[3537]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3538]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3539]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3538]!, self._r[3538]!, [_0]) + return formatWithArgumentRanges(self._s[3541]!, self._r[3541]!, [_0]) } - public var Conversation_EmptyPlaceholder: String { return self._s[3539]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3540]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3541]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3542]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3543]! } - public var Channel_JoinChannel: String { return self._s[3545]! } - public var Appearance_Animations: String { return self._s[3548]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3542]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3543]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3544]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3545]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3546]! } + public var Channel_JoinChannel: String { return self._s[3548]! } + public var Appearance_Animations: String { return self._s[3551]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3549]!, self._r[3549]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3552]!, self._r[3552]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3551]! } - public var Appearance_ShareTheme: String { return self._s[3552]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3553]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3555]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3556]! } - public var Passport_Address_Street: String { return self._s[3557]! } - public var Conversation_AddContact: String { return self._s[3558]! } - public var Login_PhonePlaceholder: String { return self._s[3559]! } - public var Channel_Members_InviteLink: String { return self._s[3561]! } - public var Bot_Stop: String { return self._s[3562]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3564]! } - public var Notification_PassportValueAddress: String { return self._s[3565]! } - public var Month_ShortJuly: String { return self._s[3566]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3567]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3568]! } - public var Passport_Identity_ReverseSide: String { return self._s[3569]! } - public var Watch_Stickers_Recents: String { return self._s[3572]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3574]! } - public var Map_SendThisLocation: String { return self._s[3575]! } + public var Stickers_GroupStickers: String { return self._s[3554]! } + public var Appearance_ShareTheme: String { return self._s[3555]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3556]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3558]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3559]! } + public var Passport_Address_Street: String { return self._s[3560]! } + public var Conversation_AddContact: String { return self._s[3561]! } + public var Login_PhonePlaceholder: String { return self._s[3562]! } + public var Channel_Members_InviteLink: String { return self._s[3564]! } + public var Bot_Stop: String { return self._s[3565]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3567]! } + public var Notification_PassportValueAddress: String { return self._s[3568]! } + public var Month_ShortJuly: String { return self._s[3569]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3570]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3571]! } + public var Passport_Identity_ReverseSide: String { return self._s[3572]! } + public var Watch_Stickers_Recents: String { return self._s[3575]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3577]! } + public var Map_SendThisLocation: String { return self._s[3578]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3576]!, self._r[3576]!, [_0]) + return formatWithArgumentRanges(self._s[3579]!, self._r[3579]!, [_0]) } public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3577]!, self._r[3577]!, [_0]) - } - public var ConvertToSupergroup_Note: String { return self._s[3578]! } - public var Wallet_Intro_NotNow: String { return self._s[3579]! } - public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3580]!, self._r[3580]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3581]! } + public var ConvertToSupergroup_Note: String { return self._s[3581]! } + public var Wallet_Intro_NotNow: String { return self._s[3582]! } + public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3583]!, self._r[3583]!, [_0]) + } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3584]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3582]!, self._r[3582]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3585]!, self._r[3585]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3584]! } - public var Wallpaper_SearchShort: String { return self._s[3585]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3587]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3588]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3589]! } + public var Login_CallRequestState3: String { return self._s[3587]! } + public var Wallpaper_SearchShort: String { return self._s[3588]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3590]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3591]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3592]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3590]!, self._r[3590]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3593]!, self._r[3593]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3591]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3593]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3596]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3594]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3596]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3599]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3597]!, self._r[3597]!, [_0]) - } - public var Passport_CorrectErrors: String { return self._s[3598]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3599]! } - public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3601]! } - public var Channel_DiscussionGroup: String { return self._s[3602]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3603]! } + public var Passport_CorrectErrors: String { return self._s[3601]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3602]! } + public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3603]!, self._r[3603]!, [_0]) + } + public var Map_SendMyCurrentLocation: String { return self._s[3604]! } + public var Channel_DiscussionGroup: String { return self._s[3605]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3606]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3604]!, self._r[3604]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3607]!, self._r[3607]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3605]! } - public var Permissions_NotificationsText_v0: String { return self._s[3606]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3607]! } - public var Appearance_AppIcon: String { return self._s[3608]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3609]! } - public var LoginPassword_FloodError: String { return self._s[3610]! } - public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3612]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3613]! } + public var SharedMedia_SearchNoResults: String { return self._s[3608]! } + public var Permissions_NotificationsText_v0: String { return self._s[3609]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3610]! } + public var Appearance_AppIcon: String { return self._s[3611]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3612]! } + public var LoginPassword_FloodError: String { return self._s[3613]! } + public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3615]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3616]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3614]!, self._r[3614]!, [_0]) + return formatWithArgumentRanges(self._s[3617]!, self._r[3617]!, [_0]) } - public var Passport_Language_bn: String { return self._s[3615]! } + public var Passport_Language_bn: String { return self._s[3618]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3616]!, self._r[3616]!, [_0]) - } - public var ChatList_Context_Pin: String { return self._s[3617]! } - public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3618]!, self._r[3618]!, [_0]) - } - public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3619]!, self._r[3619]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3620]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3624]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3626]! } - public var Wallet_Month_GenDecember: String { return self._s[3627]! } - public var Contacts_PermissionsAllow: String { return self._s[3628]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3629]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3630]! } - public var WallpaperPreview_Pattern: String { return self._s[3631]! } - public var Paint_Duplicate: String { return self._s[3632]! } - public var Passport_Address_Country: String { return self._s[3633]! } - public var Notification_RenamedChannel: String { return self._s[3635]! } - public var ChatList_Context_Unmute: String { return self._s[3636]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3637]! } - public var Group_MessagePhotoUpdated: String { return self._s[3638]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3639]! } - public var Conversation_ContextMenuBan: String { return self._s[3640]! } - public var TwoStepAuth_EmailSent: String { return self._s[3641]! } - public var MessagePoll_NoVotes: String { return self._s[3642]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3643]! } - public var Passport_Language_is: String { return self._s[3645]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3647]! } - public var Tour_Text5: String { return self._s[3648]! } + public var ChatList_Context_Pin: String { return self._s[3620]! } + public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3621]!, self._r[3621]!, [_0]) + } + public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3622]!, self._r[3622]!, [_0]) + } + public var Wallet_Navigation_Close: String { return self._s[3623]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3627]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3629]! } + public var Wallet_Month_GenDecember: String { return self._s[3630]! } + public var Contacts_PermissionsAllow: String { return self._s[3631]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3632]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3633]! } + public var WallpaperPreview_Pattern: String { return self._s[3634]! } + public var Paint_Duplicate: String { return self._s[3635]! } + public var Passport_Address_Country: String { return self._s[3636]! } + public var Notification_RenamedChannel: String { return self._s[3638]! } + public var ChatList_Context_Unmute: String { return self._s[3639]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3640]! } + public var Group_MessagePhotoUpdated: String { return self._s[3641]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3642]! } + public var Conversation_ContextMenuBan: String { return self._s[3643]! } + public var TwoStepAuth_EmailSent: String { return self._s[3644]! } + public var MessagePoll_NoVotes: String { return self._s[3645]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3646]! } + public var Passport_Language_is: String { return self._s[3648]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3650]! } + public var Tour_Text5: String { return self._s[3651]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3651]!, self._r[3651]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3654]!, self._r[3654]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3652]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3653]! } + public var Undo_SecretChatDeleted: String { return self._s[3655]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3656]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3654]!, self._r[3654]!, [_0]) + return formatWithArgumentRanges(self._s[3657]!, self._r[3657]!, [_0]) } - public var Forward_ErrorDisabledForChat: String { return self._s[3655]! } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3656]! } - public var Paint_Edit: String { return self._s[3658]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3660]! } - public var Undo_DeletedGroup: String { return self._s[3662]! } - public var LoginPassword_ForgotPassword: String { return self._s[3663]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3664]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3665]! } + public var Forward_ErrorDisabledForChat: String { return self._s[3658]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3659]! } + public var Paint_Edit: String { return self._s[3661]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3663]! } + public var Undo_DeletedGroup: String { return self._s[3665]! } + public var LoginPassword_ForgotPassword: String { return self._s[3666]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3667]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3668]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3666]!, self._r[3666]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3669]!, self._r[3669]!, [_0, _1]) } - public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3667]! } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3668]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3669]! } - public var Passport_Language_uz: String { return self._s[3670]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3671]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3672]! } - public var Map_StopLiveLocation: String { return self._s[3674]! } - public var VoiceOver_MessageContextSend: String { return self._s[3676]! } - public var PasscodeSettings_Help: String { return self._s[3677]! } - public var NotificationsSound_Input: String { return self._s[3678]! } - public var Share_Title: String { return self._s[3681]! } - public var LogoutOptions_Title: String { return self._s[3682]! } - public var Wallet_Send_AddressText: String { return self._s[3683]! } - public var Login_TermsOfServiceAgree: String { return self._s[3684]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3685]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3686]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3687]! } - public var EnterPasscode_EnterTitle: String { return self._s[3688]! } + public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3670]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3671]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3672]! } + public var Passport_Language_uz: String { return self._s[3673]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3674]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3675]! } + public var Map_StopLiveLocation: String { return self._s[3677]! } + public var VoiceOver_MessageContextSend: String { return self._s[3679]! } + public var PasscodeSettings_Help: String { return self._s[3680]! } + public var NotificationsSound_Input: String { return self._s[3681]! } + public var Share_Title: String { return self._s[3684]! } + public var LogoutOptions_Title: String { return self._s[3685]! } + public var Wallet_Send_AddressText: String { return self._s[3686]! } + public var Login_TermsOfServiceAgree: String { return self._s[3687]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3688]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3689]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3690]! } + public var EnterPasscode_EnterTitle: String { return self._s[3691]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3689]!, self._r[3689]!, [_0]) - } - public var Settings_CopyPhoneNumber: String { return self._s[3690]! } - public var Conversation_AddToContacts: String { return self._s[3691]! } - public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3692]!, self._r[3692]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[3693]! } + public var Settings_CopyPhoneNumber: String { return self._s[3693]! } + public var Conversation_AddToContacts: String { return self._s[3694]! } + public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3695]!, self._r[3695]!, [_0]) + } + public var NotificationsSound_Keys: String { return self._s[3696]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3694]!, self._r[3694]!, [_0]) + return formatWithArgumentRanges(self._s[3697]!, self._r[3697]!, [_0]) } - public var Notification_MessageLifetime1w: String { return self._s[3695]! } - public var Message_Video: String { return self._s[3696]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3697]! } + public var Notification_MessageLifetime1w: String { return self._s[3698]! } + public var Message_Video: String { return self._s[3699]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3700]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_1]) + return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_1]) } - public var Wallet_Receive_AmountInfo: String { return self._s[3701]! } + public var Wallet_Receive_AmountInfo: String { return self._s[3704]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3702]!, self._r[3702]!, [_0]) + return formatWithArgumentRanges(self._s[3705]!, self._r[3705]!, [_0]) } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3703]!, self._r[3703]!, [_0]) + return formatWithArgumentRanges(self._s[3706]!, self._r[3706]!, [_0]) } - public var Passport_Language_mk: String { return self._s[3704]! } + public var Passport_Language_mk: String { return self._s[3707]! } public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3705]!, self._r[3705]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3708]!, self._r[3708]!, [_1, _2, _3]) } - public var CreatePoll_CancelConfirmation: String { return self._s[3706]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3707]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3709]! } - public var PrivacyPolicy_Decline: String { return self._s[3710]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3711]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3712]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3713]! } - public var Permissions_SiriAllow_v0: String { return self._s[3715]! } - public var Wallet_Month_ShortAugust: String { return self._s[3716]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3717]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3709]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3710]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3712]! } + public var PrivacyPolicy_Decline: String { return self._s[3713]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3714]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3715]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3716]! } + public var Permissions_SiriAllow_v0: String { return self._s[3718]! } + public var Wallet_Month_ShortAugust: String { return self._s[3719]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3720]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3718]!, self._r[3718]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3721]!, self._r[3721]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3719]!, self._r[3719]!, [_0]) + return formatWithArgumentRanges(self._s[3722]!, self._r[3722]!, [_0]) } - public var Paint_Regular: String { return self._s[3720]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3721]! } - public var SocksProxySetup_ShareLink: String { return self._s[3722]! } - public var Wallet_Qr_Title: String { return self._s[3723]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3724]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3726]! } - public var Wallet_Settings_Configuration: String { return self._s[3727]! } - public var GroupInfo_InviteByLink: String { return self._s[3728]! } - public var MessageTimer_Custom: String { return self._s[3729]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3730]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3731]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3733]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[3734]! } - public var VoiceOver_Chat_Selected: String { return self._s[3735]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3736]! } - public var Channel_Username_InvalidTaken: String { return self._s[3737]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3738]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3739]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[3740]! } - public var Settings_ChatBackground: String { return self._s[3741]! } - public var Channel_Subscribers_Title: String { return self._s[3742]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3743]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3744]! } - public var Watch_ConnectionDescription: String { return self._s[3745]! } - public var OldChannels_NoticeText: String { return self._s[3748]! } - public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3749]! } - public var IntentsSettings_SuggestBy: String { return self._s[3751]! } - public var Theme_ThemeChangedText: String { return self._s[3752]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[3753]! } - public var Wallpaper_ResetWallpapers: String { return self._s[3754]! } - public var Wallet_Send_TransactionInProgress: String { return self._s[3755]! } - public var EditProfile_Title: String { return self._s[3756]! } - public var NotificationsSound_Bamboo: String { return self._s[3758]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3760]! } - public var Login_SmsRequestState2: String { return self._s[3761]! } - public var Passport_Language_ar: String { return self._s[3762]! } + public var Paint_Regular: String { return self._s[3723]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3724]! } + public var SocksProxySetup_ShareLink: String { return self._s[3725]! } + public var Wallet_Qr_Title: String { return self._s[3726]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3727]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3729]! } + public var Wallet_Settings_Configuration: String { return self._s[3730]! } + public var GroupInfo_InviteByLink: String { return self._s[3731]! } + public var MessageTimer_Custom: String { return self._s[3732]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3733]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3734]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3736]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[3737]! } + public var VoiceOver_Chat_Selected: String { return self._s[3738]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3739]! } + public var Channel_Username_InvalidTaken: String { return self._s[3740]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3741]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3742]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[3743]! } + public var Settings_ChatBackground: String { return self._s[3744]! } + public var Channel_Subscribers_Title: String { return self._s[3745]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3746]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3747]! } + public var Watch_ConnectionDescription: String { return self._s[3748]! } + public var OldChannels_NoticeText: String { return self._s[3751]! } + public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3752]! } + public var IntentsSettings_SuggestBy: String { return self._s[3754]! } + public var Theme_ThemeChangedText: String { return self._s[3755]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[3756]! } + public var Wallpaper_ResetWallpapers: String { return self._s[3757]! } + public var Wallet_Send_TransactionInProgress: String { return self._s[3758]! } + public var EditProfile_Title: String { return self._s[3759]! } + public var NotificationsSound_Bamboo: String { return self._s[3761]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3763]! } + public var Login_SmsRequestState2: String { return self._s[3764]! } + public var Passport_Language_ar: String { return self._s[3765]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3763]!, self._r[3763]!, [_0]) + return formatWithArgumentRanges(self._s[3766]!, self._r[3766]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3764]! } - public var Wallet_Created_Text: String { return self._s[3765]! } - public var Conversation_MessageDialogEdit: String { return self._s[3767]! } - public var Wallet_Created_Proceed: String { return self._s[3768]! } - public var Wallet_Words_Done: String { return self._s[3769]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3770]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3767]! } + public var Wallet_Created_Text: String { return self._s[3768]! } + public var Conversation_MessageDialogEdit: String { return self._s[3770]! } + public var Wallet_Created_Proceed: String { return self._s[3771]! } + public var Wallet_Words_Done: String { return self._s[3772]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3773]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3771]!, self._r[3771]!, [_1]) + return formatWithArgumentRanges(self._s[3774]!, self._r[3774]!, [_1]) } - public var Common_Close: String { return self._s[3772]! } - public var GroupInfo_PublicLink: String { return self._s[3773]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3774]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3775]! } + public var Common_Close: String { return self._s[3775]! } + public var GroupInfo_PublicLink: String { return self._s[3776]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3777]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3778]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3779]!, self._r[3779]!, [_0]) + return formatWithArgumentRanges(self._s[3782]!, self._r[3782]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3780]! } + public var UserInfo_About_Placeholder: String { return self._s[3783]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3781]!, self._r[3781]!, [_0]) + return formatWithArgumentRanges(self._s[3784]!, self._r[3784]!, [_0]) } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[3782]! } - public var Channel_Info_Banned: String { return self._s[3784]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[3785]! } + public var Channel_Info_Banned: String { return self._s[3787]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3785]!, self._r[3785]!, [_0]) + return formatWithArgumentRanges(self._s[3788]!, self._r[3788]!, [_0]) } - public var Appearance_Other: String { return self._s[3786]! } - public var Passport_Language_my: String { return self._s[3787]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3788]! } + public var Appearance_Other: String { return self._s[3789]! } + public var Passport_Language_my: String { return self._s[3790]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3791]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3792]!, self._r[3792]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3790]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3791]! } - public var Preview_CopyAddress: String { return self._s[3792]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3793]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3794]! } + public var Preview_CopyAddress: String { return self._s[3795]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3793]!, self._r[3793]!, [_0]) + return formatWithArgumentRanges(self._s[3796]!, self._r[3796]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3794]! } - public var UserInfo_BotSettings: String { return self._s[3795]! } - public var LiveLocation_MenuStopAll: String { return self._s[3797]! } - public var Passport_PasswordCreate: String { return self._s[3798]! } - public var StickerSettings_MaskContextInfo: String { return self._s[3799]! } - public var Message_PinnedLocationMessage: String { return self._s[3800]! } - public var Map_Satellite: String { return self._s[3801]! } - public var Watch_Message_Unsupported: String { return self._s[3802]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[3803]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3804]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3797]! } + public var UserInfo_BotSettings: String { return self._s[3798]! } + public var LiveLocation_MenuStopAll: String { return self._s[3800]! } + public var Passport_PasswordCreate: String { return self._s[3801]! } + public var StickerSettings_MaskContextInfo: String { return self._s[3802]! } + public var Message_PinnedLocationMessage: String { return self._s[3803]! } + public var Map_Satellite: String { return self._s[3804]! } + public var Watch_Message_Unsupported: String { return self._s[3805]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[3806]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3807]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3805]!, self._r[3805]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3808]!, self._r[3808]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3806]!, self._r[3806]!, [_0]) + return formatWithArgumentRanges(self._s[3809]!, self._r[3809]!, [_0]) } - public var Wallet_WordImport_Continue: String { return self._s[3807]! } + public var Wallet_WordImport_Continue: String { return self._s[3810]! } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3808]!, self._r[3808]!, [_0]) + return formatWithArgumentRanges(self._s[3811]!, self._r[3811]!, [_0]) } - public var Notifications_ChannelNotificationsHelp: String { return self._s[3809]! } - public var Privacy_Calls_P2PContacts: String { return self._s[3810]! } - public var NotificationsSound_None: String { return self._s[3811]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3812]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3814]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[3815]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[3812]! } + public var Privacy_Calls_P2PContacts: String { return self._s[3813]! } + public var NotificationsSound_None: String { return self._s[3814]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3815]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3817]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[3818]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3816]!, self._r[3816]!, [_1]) + return formatWithArgumentRanges(self._s[3819]!, self._r[3819]!, [_1]) } - public var Cache_Indexing: String { return self._s[3817]! } - public var DialogList_RecentTitlePeople: String { return self._s[3819]! } - public var DialogList_EncryptionRejected: String { return self._s[3820]! } - public var GroupInfo_Administrators: String { return self._s[3821]! } - public var Passport_ScanPassportHelp: String { return self._s[3822]! } - public var Application_Name: String { return self._s[3823]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3824]! } - public var Appearance_ThemeCarouselDay: String { return self._s[3826]! } - public var Passport_Identity_TranslationHelp: String { return self._s[3827]! } + public var Cache_Indexing: String { return self._s[3820]! } + public var DialogList_RecentTitlePeople: String { return self._s[3822]! } + public var DialogList_EncryptionRejected: String { return self._s[3823]! } + public var GroupInfo_Administrators: String { return self._s[3824]! } + public var Passport_ScanPassportHelp: String { return self._s[3825]! } + public var Application_Name: String { return self._s[3826]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3827]! } + public var Appearance_ThemeCarouselDay: String { return self._s[3829]! } + public var Passport_Identity_TranslationHelp: String { return self._s[3830]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3828]!, self._r[3828]!, [_0]) + return formatWithArgumentRanges(self._s[3831]!, self._r[3831]!, [_0]) } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3829]!, self._r[3829]!, [_0]) + return formatWithArgumentRanges(self._s[3832]!, self._r[3832]!, [_0]) } public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3830]!, self._r[3830]!, [_0]) + return formatWithArgumentRanges(self._s[3833]!, self._r[3833]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3831]! } - public var Privacy_ChatsTitle: String { return self._s[3832]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[3833]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3834]! } - public var Watch_Suggestion_HoldOn: String { return self._s[3835]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3836]! } - public var WebBrowser_Title: String { return self._s[3837]! } - public var Group_LinkedChannel: String { return self._s[3838]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3839]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[3840]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3841]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3842]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[3843]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[3845]! } - public var Channel_Setup_TypePublic: String { return self._s[3847]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3834]! } + public var Privacy_ChatsTitle: String { return self._s[3835]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[3836]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3837]! } + public var Watch_Suggestion_HoldOn: String { return self._s[3838]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3839]! } + public var WebBrowser_Title: String { return self._s[3840]! } + public var Group_LinkedChannel: String { return self._s[3841]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3842]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[3843]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3844]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3845]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[3846]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[3848]! } + public var Channel_Setup_TypePublic: String { return self._s[3850]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3848]!, self._r[3848]!, [_0]) + return formatWithArgumentRanges(self._s[3851]!, self._r[3851]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[3850]! } - public var MessagePoll_ViewResults: String { return self._s[3851]! } - public var Map_OpenInMaps: String { return self._s[3853]! } + public var Channel_TypeSetup_Title: String { return self._s[3853]! } + public var MessagePoll_ViewResults: String { return self._s[3854]! } + public var Map_OpenInMaps: String { return self._s[3856]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3854]!, self._r[3854]!, [_1]) + return formatWithArgumentRanges(self._s[3857]!, self._r[3857]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[3856]! } + public var NotificationsSound_Tremolo: String { return self._s[3859]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3857]!, self._r[3857]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3860]!, self._r[3860]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3858]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3859]! } - public var Passport_PasswordHelp: String { return self._s[3860]! } - public var Login_CodeExpiredError: String { return self._s[3861]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3862]! } - public var Conversation_TitleUnmute: String { return self._s[3863]! } - public var Passport_Identity_ScansHelp: String { return self._s[3864]! } - public var Passport_Language_lo: String { return self._s[3865]! } - public var Camera_FlashAuto: String { return self._s[3866]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3867]! } - public var Common_Cancel: String { return self._s[3868]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[3869]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3870]! } - public var Appearance_TintAllColors: String { return self._s[3871]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3861]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3862]! } + public var Passport_PasswordHelp: String { return self._s[3863]! } + public var Login_CodeExpiredError: String { return self._s[3864]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3865]! } + public var Conversation_TitleUnmute: String { return self._s[3866]! } + public var Passport_Identity_ScansHelp: String { return self._s[3867]! } + public var Passport_Language_lo: String { return self._s[3868]! } + public var Camera_FlashAuto: String { return self._s[3869]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3870]! } + public var Common_Cancel: String { return self._s[3871]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[3872]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3873]! } + public var Appearance_TintAllColors: String { return self._s[3874]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3872]!, self._r[3872]!, [_1]) + return formatWithArgumentRanges(self._s[3875]!, self._r[3875]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[3873]! } - public var ChatSettings_Title: String { return self._s[3875]! } - public var Passport_PasswordReset: String { return self._s[3876]! } - public var SocksProxySetup_TypeNone: String { return self._s[3877]! } - public var EditTheme_Title: String { return self._s[3880]! } - public var PhoneNumberHelp_Help: String { return self._s[3881]! } - public var Checkout_EnterPassword: String { return self._s[3882]! } - public var Share_AuthTitle: String { return self._s[3884]! } - public var Activity_UploadingDocument: String { return self._s[3885]! } - public var State_Connecting: String { return self._s[3886]! } - public var Profile_MessageLifetime1w: String { return self._s[3887]! } - public var Conversation_ContextMenuReport: String { return self._s[3888]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3889]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3890]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[3876]! } + public var ChatSettings_Title: String { return self._s[3878]! } + public var Passport_PasswordReset: String { return self._s[3879]! } + public var SocksProxySetup_TypeNone: String { return self._s[3880]! } + public var EditTheme_Title: String { return self._s[3883]! } + public var PhoneNumberHelp_Help: String { return self._s[3884]! } + public var Checkout_EnterPassword: String { return self._s[3885]! } + public var Activity_UploadingDocument: String { return self._s[3887]! } + public var Share_AuthTitle: String { return self._s[3888]! } + public var State_Connecting: String { return self._s[3889]! } + public var Profile_MessageLifetime1w: String { return self._s[3890]! } + public var Conversation_ContextMenuReport: String { return self._s[3891]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3892]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3893]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3891]!, self._r[3891]!, [_0]) + return formatWithArgumentRanges(self._s[3894]!, self._r[3894]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[3892]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[3893]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3895]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3896]! } - public var PhotoEditor_Set: String { return self._s[3897]! } - public var EmptyGroupInfo_Title: String { return self._s[3898]! } - public var Login_PadPhoneHelp: String { return self._s[3899]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3901]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3903]! } - public var NotificationsSound_Complete: String { return self._s[3904]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3905]! } - public var Group_Info_AdminLog: String { return self._s[3906]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3907]! } + public var AuthSessions_Terminate: String { return self._s[3895]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[3896]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3898]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3899]! } + public var PhotoEditor_Set: String { return self._s[3900]! } + public var EmptyGroupInfo_Title: String { return self._s[3901]! } + public var Login_PadPhoneHelp: String { return self._s[3902]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3904]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3906]! } + public var NotificationsSound_Complete: String { return self._s[3907]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3908]! } + public var Group_Info_AdminLog: String { return self._s[3909]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3910]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3908]!, self._r[3908]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3911]!, self._r[3911]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3909]! } - public var Group_Location_CreateInThisPlace: String { return self._s[3911]! } - public var Conversation_Admin: String { return self._s[3912]! } - public var Conversation_GifTooltip: String { return self._s[3913]! } - public var Passport_NotLoggedInMessage: String { return self._s[3914]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3912]! } + public var Group_Location_CreateInThisPlace: String { return self._s[3914]! } + public var Conversation_Admin: String { return self._s[3915]! } + public var Conversation_GifTooltip: String { return self._s[3916]! } + public var Passport_NotLoggedInMessage: String { return self._s[3917]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3916]!, self._r[3916]!, [_0]) + return formatWithArgumentRanges(self._s[3919]!, self._r[3919]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[3917]! } - public var SharedMedia_EmptyTitle: String { return self._s[3919]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3921]! } - public var Username_Help: String { return self._s[3922]! } - public var DialogList_LanguageTooltip: String { return self._s[3924]! } - public var Map_LoadError: String { return self._s[3925]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3926]! } - public var Channel_AdminLog_AddMembers: String { return self._s[3927]! } - public var ArchivedChats_IntroTitle2: String { return self._s[3928]! } - public var Notification_Exceptions_NewException: String { return self._s[3929]! } - public var TwoStepAuth_EmailTitle: String { return self._s[3930]! } - public var WatchRemote_AlertText: String { return self._s[3931]! } + public var Profile_MessageLifetimeForever: String { return self._s[3920]! } + public var SharedMedia_EmptyTitle: String { return self._s[3922]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3924]! } + public var Username_Help: String { return self._s[3925]! } + public var DialogList_LanguageTooltip: String { return self._s[3927]! } + public var Map_LoadError: String { return self._s[3928]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3929]! } + public var Channel_AdminLog_AddMembers: String { return self._s[3930]! } + public var ArchivedChats_IntroTitle2: String { return self._s[3931]! } + public var Notification_Exceptions_NewException: String { return self._s[3932]! } + public var TwoStepAuth_EmailTitle: String { return self._s[3933]! } + public var WatchRemote_AlertText: String { return self._s[3934]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3932]!, self._r[3932]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3935]!, self._r[3935]!, [_1, _2, _3]) + } + public var ChatSettings_ConnectionType_Title: String { return self._s[3939]! } + public func PUSH_PINNED_QUIZ(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_1, _2]) } - public var ChatSettings_ConnectionType_Title: String { return self._s[3936]! } - public var WebBrowser_DefaultBrowser: String { return self._s[3937]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_0]) - } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3939]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[3940]! } - public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3941]!, self._r[3941]!, [_0]) } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3942]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3943]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[3944]! } + public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3945]!, self._r[3945]!, [_0]) + } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3942]!, self._r[3942]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3946]!, self._r[3946]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[3943]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3944]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[3946]! } - public var Wallet_Created_ExportErrorText: String { return self._s[3947]! } - public var ChatList_UndoArchiveText1: String { return self._s[3948]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3949]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3950]! } - public var Cache_ClearNone: String { return self._s[3951]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3952]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3953]! } + public var Group_AdminLog_EmptyText: String { return self._s[3947]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3948]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3950]! } + public var Wallet_Created_ExportErrorText: String { return self._s[3951]! } + public var ChatList_UndoArchiveText1: String { return self._s[3952]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3953]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3954]! } + public var Cache_ClearNone: String { return self._s[3955]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3956]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3957]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_0]) + return formatWithArgumentRanges(self._s[3958]!, self._r[3958]!, [_0]) } - public var Passport_Identity_Country: String { return self._s[3955]! } + public var Passport_Identity_Country: String { return self._s[3959]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3956]!, self._r[3956]!, [_0]) + return formatWithArgumentRanges(self._s[3960]!, self._r[3960]!, [_0]) } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3957]!, self._r[3957]!, [_0]) + return formatWithArgumentRanges(self._s[3961]!, self._r[3961]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[3958]! } - public var AccessDenied_Settings: String { return self._s[3959]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3960]! } - public var Month_ShortMay: String { return self._s[3961]! } - public var Compose_NewGroup: String { return self._s[3963]! } - public var Group_Setup_TypePrivate: String { return self._s[3965]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3967]! } - public var Appearance_ThemeDayClassic: String { return self._s[3968]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3969]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3970]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3971]! } - public var Conversation_typing: String { return self._s[3973]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[3974]! } - public var Paint_Masks: String { return self._s[3975]! } - public var Contacts_DeselectAll: String { return self._s[3976]! } + public var Exceptions_AddToExceptions: String { return self._s[3962]! } + public var AccessDenied_Settings: String { return self._s[3963]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3964]! } + public var Month_ShortMay: String { return self._s[3965]! } + public var Compose_NewGroup: String { return self._s[3967]! } + public var Group_Setup_TypePrivate: String { return self._s[3969]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3971]! } + public var Appearance_ThemeDayClassic: String { return self._s[3972]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3973]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3974]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3975]! } + public var Conversation_typing: String { return self._s[3977]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[3978]! } + public var Paint_Masks: String { return self._s[3979]! } + public var Contacts_DeselectAll: String { return self._s[3980]! } public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3977]!, self._r[3977]!, [_0]) + return formatWithArgumentRanges(self._s[3981]!, self._r[3981]!, [_0]) } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3978]! } - public var Username_InvalidTaken: String { return self._s[3979]! } - public var Call_StatusNoAnswer: String { return self._s[3980]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3981]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3982]! } - public var Passport_Identity_Selfie: String { return self._s[3983]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3984]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3985]! } - public var Conversation_ClearSecretHistory: String { return self._s[3986]! } - public var PeopleNearby_Description: String { return self._s[3988]! } - public var NetworkUsageSettings_Title: String { return self._s[3989]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3991]! } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3982]! } + public var Username_InvalidTaken: String { return self._s[3983]! } + public var Call_StatusNoAnswer: String { return self._s[3984]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3985]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3986]! } + public var Passport_Identity_Selfie: String { return self._s[3987]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3988]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3989]! } + public var Conversation_ClearSecretHistory: String { return self._s[3990]! } + public var PeopleNearby_Description: String { return self._s[3992]! } + public var NetworkUsageSettings_Title: String { return self._s[3993]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3995]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3993]!, self._r[3993]!, [_0]) + return formatWithArgumentRanges(self._s[3997]!, self._r[3997]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3994]!, self._r[3994]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3998]!, self._r[3998]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[3996]! } - public var VoiceOver_Navigation_Search: String { return self._s[3997]! } - public var Map_LiveLocationTitle: String { return self._s[3998]! } - public var Login_InfoAvatarAdd: String { return self._s[3999]! } - public var Passport_Identity_FilesView: String { return self._s[4000]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[4001]! } - public var Privacy_Calls_NeverAllow: String { return self._s[4002]! } - public var VoiceOver_Chat_File: String { return self._s[4003]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4004]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[4000]! } + public var VoiceOver_Navigation_Search: String { return self._s[4001]! } + public var Map_LiveLocationTitle: String { return self._s[4002]! } + public var Login_InfoAvatarAdd: String { return self._s[4003]! } + public var Passport_Identity_FilesView: String { return self._s[4004]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[4005]! } + public var Privacy_Calls_NeverAllow: String { return self._s[4006]! } + public var VoiceOver_Chat_File: String { return self._s[4007]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4008]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4005]!, self._r[4005]!, [_0]) + return formatWithArgumentRanges(self._s[4009]!, self._r[4009]!, [_0]) } - public var ContactInfo_PhoneNumberHidden: String { return self._s[4006]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[4007]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4008]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[4010]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[4011]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4012]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4009]!, self._r[4009]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4013]!, self._r[4013]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4010]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[4011]! } - public var Tour_Title2: String { return self._s[4012]! } - public var Wallet_Sent_ViewWallet: String { return self._s[4013]! } - public var Conversation_FileOpenIn: String { return self._s[4014]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4015]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4016]! } - public var Wallpaper_Set: String { return self._s[4017]! } - public var Passport_Identity_Translations: String { return self._s[4019]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4014]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[4015]! } + public var Tour_Title2: String { return self._s[4016]! } + public var Wallet_Sent_ViewWallet: String { return self._s[4017]! } + public var Conversation_FileOpenIn: String { return self._s[4018]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4019]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4020]! } + public var Wallpaper_Set: String { return self._s[4021]! } + public var Passport_Identity_Translations: String { return self._s[4023]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4020]!, self._r[4020]!, [_0]) + return formatWithArgumentRanges(self._s[4024]!, self._r[4024]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[4021]! } + public var Channel_LeaveChannel: String { return self._s[4025]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4022]!, self._r[4022]!, [_1]) + return formatWithArgumentRanges(self._s[4026]!, self._r[4026]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4024]! } - public var PhotoEditor_HighlightsTint: String { return self._s[4025]! } - public var MessagePoll_LabelPoll: String { return self._s[4026]! } - public var Passport_Email_Delete: String { return self._s[4027]! } - public var Conversation_Mute: String { return self._s[4029]! } - public var Channel_AddBotAsAdmin: String { return self._s[4030]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[4032]! } - public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4033]! } - public var ChatSettings_IntentsSettings: String { return self._s[4035]! } - public var Channel_Management_LabelOwner: String { return self._s[4036]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4028]! } + public var PhotoEditor_HighlightsTint: String { return self._s[4029]! } + public var MessagePoll_LabelPoll: String { return self._s[4030]! } + public var Passport_Email_Delete: String { return self._s[4031]! } + public var Conversation_Mute: String { return self._s[4033]! } + public var Channel_AddBotAsAdmin: String { return self._s[4034]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[4036]! } + public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4037]! } + public var ChatSettings_IntentsSettings: String { return self._s[4039]! } + public var Channel_Management_LabelOwner: String { return self._s[4040]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4037]!, self._r[4037]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4041]!, self._r[4041]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[4038]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[4039]! } - public var Common_No: String { return self._s[4040]! } - public var Weekday_Sunday: String { return self._s[4041]! } - public var Notification_Reply: String { return self._s[4042]! } - public var Conversation_ViewMessage: String { return self._s[4043]! } + public var Calls_CallTabDescription: String { return self._s[4042]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[4043]! } + public var Common_No: String { return self._s[4044]! } + public var Weekday_Sunday: String { return self._s[4045]! } + public var Notification_Reply: String { return self._s[4046]! } + public var Conversation_ViewMessage: String { return self._s[4047]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_0]) + return formatWithArgumentRanges(self._s[4048]!, self._r[4048]!, [_0]) } public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4045]!, self._r[4045]!, [_0]) + return formatWithArgumentRanges(self._s[4049]!, self._r[4049]!, [_0]) } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4046]!, self._r[4046]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4050]!, self._r[4050]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4047]! } - public var Wallet_Send_Title: String { return self._s[4048]! } - public var Message_PinnedDocumentMessage: String { return self._s[4049]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[4050]! } - public var DialogList_TabTitle: String { return self._s[4052]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4053]! } - public var Passport_FieldEmail: String { return self._s[4054]! } - public var Conversation_UnpinMessageAlert: String { return self._s[4055]! } - public var Passport_Address_TypeBankStatement: String { return self._s[4056]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[4057]! } - public var Passport_Identity_ExpiryDate: String { return self._s[4058]! } - public var Privacy_Calls_P2P: String { return self._s[4059]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4051]! } + public var Wallet_Send_Title: String { return self._s[4052]! } + public var Message_PinnedDocumentMessage: String { return self._s[4053]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[4054]! } + public var DialogList_TabTitle: String { return self._s[4056]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4057]! } + public var Passport_FieldEmail: String { return self._s[4058]! } + public var Conversation_UnpinMessageAlert: String { return self._s[4059]! } + public var Passport_Address_TypeBankStatement: String { return self._s[4060]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[4061]! } + public var Passport_Identity_ExpiryDate: String { return self._s[4062]! } + public var Privacy_Calls_P2P: String { return self._s[4063]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4061]!, self._r[4061]!, [_0]) + return formatWithArgumentRanges(self._s[4065]!, self._r[4065]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[4062]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[4066]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4063]!, self._r[4063]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4067]!, self._r[4067]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[4064]! } - public var EnterPasscode_ChangeTitle: String { return self._s[4065]! } - public var TwoFactorSetup_Email_Title: String { return self._s[4066]! } - public var Passport_InfoText: String { return self._s[4067]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4068]! } + public var Stickers_ClearRecent: String { return self._s[4068]! } + public var EnterPasscode_ChangeTitle: String { return self._s[4069]! } + public var TwoFactorSetup_Email_Title: String { return self._s[4070]! } + public var Passport_InfoText: String { return self._s[4071]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4072]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4069]!, self._r[4069]!, [_0]) + return formatWithArgumentRanges(self._s[4073]!, self._r[4073]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4070]!, self._r[4070]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4074]!, self._r[4074]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4071]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[4072]! } - public var VoiceOver_Navigation_Compose: String { return self._s[4073]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[4074]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[4076]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4077]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4075]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[4076]! } + public var VoiceOver_Navigation_Compose: String { return self._s[4077]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[4078]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[4080]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4081]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4078]!, self._r[4078]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4080]! } - public var ChatSettings_OpenLinksIn: String { return self._s[4081]! } - public var Map_HomeAndWorkTitle: String { return self._s[4082]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4084]! } + public var ChatSettings_OpenLinksIn: String { return self._s[4085]! } + public var Map_HomeAndWorkTitle: String { return self._s[4086]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4084]!, self._r[4084]!, [_0]) + return formatWithArgumentRanges(self._s[4088]!, self._r[4088]!, [_0]) } - public var DialogList_Unread: String { return self._s[4085]! } + public var DialogList_Unread: String { return self._s[4089]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4086]!, self._r[4086]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4090]!, self._r[4090]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[4087]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4088]! } + public var User_DeletedAccount: String { return self._s[4091]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4092]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4089]!, self._r[4089]!, [_0]) + return formatWithArgumentRanges(self._s[4093]!, self._r[4093]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[4090]! } - public var SharedMedia_CategoryMedia: String { return self._s[4091]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4092]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4093]! } - public var Watch_ChatList_Compose: String { return self._s[4094]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4095]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[4096]! } - public var Watch_Microphone_Access: String { return self._s[4097]! } - public var Group_Setup_HistoryHeader: String { return self._s[4098]! } - public var Map_SetThisLocation: String { return self._s[4099]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4100]! } - public var Activity_UploadingPhoto: String { return self._s[4101]! } - public var Conversation_Edit: String { return self._s[4103]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[4104]! } - public var Login_TermsOfServiceDecline: String { return self._s[4105]! } - public var Message_PinnedContactMessage: String { return self._s[4106]! } + public var UserInfo_NotificationsDefault: String { return self._s[4094]! } + public var SharedMedia_CategoryMedia: String { return self._s[4095]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4096]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4097]! } + public var Watch_ChatList_Compose: String { return self._s[4098]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4099]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[4100]! } + public var Watch_Microphone_Access: String { return self._s[4101]! } + public var Group_Setup_HistoryHeader: String { return self._s[4102]! } + public var Map_SetThisLocation: String { return self._s[4103]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4104]! } + public var Activity_UploadingPhoto: String { return self._s[4105]! } + public var Conversation_Edit: String { return self._s[4107]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[4108]! } + public var Login_TermsOfServiceDecline: String { return self._s[4109]! } + public var Message_PinnedContactMessage: String { return self._s[4110]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4107]!, self._r[4107]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4111]!, self._r[4111]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4108]!, self._r[4108]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[4109]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4111]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4112]! } + public var Appearance_LargeEmoji: String { return self._s[4113]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4115]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4116]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4113]!, self._r[4113]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4117]!, self._r[4117]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[4114]! } - public var Message_PinnedPhotoMessage: String { return self._s[4115]! } - public var Passport_FieldPhone: String { return self._s[4116]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4117]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[4118]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[4120]! } - public var Conversation_Call: String { return self._s[4121]! } - public var Common_TakePhoto: String { return self._s[4123]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4124]! } - public var Wallet_Receive_CommentHeader: String { return self._s[4125]! } - public var Channel_NotificationLoading: String { return self._s[4126]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[4118]! } + public var Message_PinnedPhotoMessage: String { return self._s[4119]! } + public var Passport_FieldPhone: String { return self._s[4120]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4121]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[4122]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[4124]! } + public var Conversation_Call: String { return self._s[4125]! } + public var Common_TakePhoto: String { return self._s[4127]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4128]! } + public var Wallet_Receive_CommentHeader: String { return self._s[4129]! } + public var Channel_NotificationLoading: String { return self._s[4130]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4127]!, self._r[4127]!, [_0]) - } - public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4128]!, self._r[4128]!, [_0]) - } - public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4129]!, self._r[4129]!, [_1]) - } - public var Permissions_SiriTitle_v0: String { return self._s[4130]! } - public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4131]!, self._r[4131]!, [_0]) } - public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { + public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4132]!, self._r[4132]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[4133]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[4134]! } - public var ClearCache_FreeSpace: String { return self._s[4135]! } - public var Common_edit: String { return self._s[4136]! } - public var PrivacySettings_AuthSessions: String { return self._s[4137]! } - public var Month_ShortJune: String { return self._s[4138]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4139]! } - public var Call_ReportSend: String { return self._s[4140]! } - public var Watch_LastSeen_JustNow: String { return self._s[4141]! } - public var Notifications_MessageNotifications: String { return self._s[4142]! } - public var WallpaperSearch_ColorGreen: String { return self._s[4143]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4145]! } - public var Group_Status: String { return self._s[4146]! } + public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4133]!, self._r[4133]!, [_1]) + } + public var Permissions_SiriTitle_v0: String { return self._s[4134]! } + public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4135]!, self._r[4135]!, [_0]) + } + public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4136]!, self._r[4136]!, [_0]) + } + public var Channel_MessagePhotoRemoved: String { return self._s[4137]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[4138]! } + public var ClearCache_FreeSpace: String { return self._s[4139]! } + public var Common_edit: String { return self._s[4140]! } + public var PrivacySettings_AuthSessions: String { return self._s[4141]! } + public var Month_ShortJune: String { return self._s[4142]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4143]! } + public var Call_ReportSend: String { return self._s[4144]! } + public var Watch_LastSeen_JustNow: String { return self._s[4145]! } + public var Notifications_MessageNotifications: String { return self._s[4146]! } + public var WallpaperSearch_ColorGreen: String { return self._s[4147]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4149]! } + public var Group_Status: String { return self._s[4150]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4147]!, self._r[4147]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4151]!, self._r[4151]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[4148]! } - public var ShareMenu_ShareTo: String { return self._s[4149]! } - public var Conversation_Moderate_Ban: String { return self._s[4150]! } + public var TextFormat_AddLinkTitle: String { return self._s[4152]! } + public var ShareMenu_ShareTo: String { return self._s[4153]! } + public var Conversation_Moderate_Ban: String { return self._s[4154]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4151]!, self._r[4151]!, [_0]) + return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[4152]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4153]! } + public var SharedMedia_ViewInChat: String { return self._s[4156]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4157]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4154]!, self._r[4154]!, [_1]) + return formatWithArgumentRanges(self._s[4158]!, self._r[4158]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4159]!, self._r[4159]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4157]!, self._r[4157]!, [_0]) + return formatWithArgumentRanges(self._s[4161]!, self._r[4161]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[4158]! } - public var Appearance_ReduceMotion: String { return self._s[4159]! } + public var Map_OpenInHereMaps: String { return self._s[4162]! } + public var Appearance_ReduceMotion: String { return self._s[4163]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4160]!, self._r[4160]!, [_1, _2]) - } - public var Channel_Setup_TypePublicHelp: String { return self._s[4161]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[4162]! } - public var PhotoEditor_Skip: String { return self._s[4163]! } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedPolls(_ 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 Invitation_Members(_ 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 Call_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Days(_ 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 Notification_GameScoreSimple(_ 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 ForwardedLocations(_ 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 MuteExpires_Days(_ 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) + return formatWithArgumentRanges(self._s[4164]!, self._r[4164]!, [_1, _2]) } + public var Channel_Setup_TypePublicHelp: String { return self._s[4165]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[4166]! } + public var PhotoEditor_Skip: String { return self._s[4167]! } public func MessagePoll_QuizCount(_ 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 Map_ETAMinutes(_ 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 ForwardedAudios(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PrivacyLastSeenSettings_AddUsers(_ 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 ForwardedContacts(_ 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 PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func SharedMedia_Generic(_ 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 ForwardedPhotos(_ 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 ForwardedGifs(_ 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 AttachmentMenu_SendVideo(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[19 * 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[20 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[21 * 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[22 * 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[23 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Weeks(_ 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 SharedMedia_File(_ 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 ForwardedStickers(_ 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 PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Map_ETAHours(_ 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 OldChannels_InactiveMonth(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeletedChats(_ 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 MessageTimer_Years(_ 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 MuteFor_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortMinutes(_ 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func SharedMedia_Photo(_ 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 Wallpaper_DeleteConfirmation(_ 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 Theme_UsersCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MuteExpires_Minutes(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 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[42 * 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[43 * 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[44 * 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[45 * 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[46 * 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[47 * 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[48 * 6 + Int(form.rawValue)]!, _1, _2) - } - 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[49 * 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[50 * 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[51 * 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[52 * 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[53 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Minutes(_ 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 LiveLocationUpdated_MinutesAgo(_ 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 Forward_ConfirmMultipleFiles(_ 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 ChatList_SelectedChats(_ 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 OldChannels_InactiveYear(_ 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 ForwardedFiles(_ 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) + return String(format: self._ps[0 * 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[61 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[1 * 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[62 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { + public func ForwardedFiles(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { + public func Wallet_Updated_MinutesAgo(_ 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 Watch_LastSeen_HoursAgo(_ 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 LastSeen_MinutesAgo(_ 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 PollResults_ShowMore(_ 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 PasscodeSettings_FailedAttempts(_ 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 MessageTimer_Hours(_ 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 Notifications_Exceptions(_ 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 SharedMedia_Video(_ 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 Notification_GameScoreExtended(_ 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 ChatList_DeleteConfirmation(_ 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_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Conversation_SelectedMessages(_ 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 StickerPack_StickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ 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 StickerPack_RemoveMaskCount(_ 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 Watch_LastSeen_MinutesAgo(_ 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 CreatePoll_AddMoreOptions(_ 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 LiveLocation_MenuChatsCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func SharedMedia_Link(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 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[84 * 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[85 * 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[86 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollOptionCount(_ 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) + return String(format: self._ps[3 * 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[89 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func LastSeen_HoursAgo(_ value: Int32) -> String { + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedVideos(_ value: Int32) -> String { + public func ForwardedMessages(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 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[92 * 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[93 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } public func MessageTimer_Seconds(_ 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[8 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + public func MessageTimer_Months(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func UserCount(_ value: Int32) -> String { + public func ForwardedStickers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_LiveLocationMembersCount(_ 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[97 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortDays(_ value: Int32) -> String { + public func InviteText_ContactsCountText(_ 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) + return String(format: self._ps[12 * 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[13 * 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[14 * 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[15 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notification_GameScoreSelfSimple(_ 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 AttachmentMenu_SendItem(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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 DialogList_LiveLocationChatsCount(_ 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 AttachmentMenu_SendVideo(_ 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 VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_DeleteItemsConfirmation(_ 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 Media_SharePhoto(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) + } + public func OldChannels_InactiveYear(_ 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 ForwardedPhotos(_ 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 Theme_UsersCount(_ 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_CHANNEL_MESSAGE_VIDEOS(_ 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 LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) + } + public func QuickSend_Photos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) } public func Conversation_StatusSubscribers(_ 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) + return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_ShortHours(_ value: Int32) -> String { + public func OldChannels_GroupFormat(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[33 * 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[34 * 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[35 * 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[36 * 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[37 * 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[38 * 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[39 * 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[40 * 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[41 * 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[42 * 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[43 * 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[44 * 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[45 * 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[46 * 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[47 * 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[48 * 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[49 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func UserCount(_ 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 Contacts_ImportersCount(_ 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 ForwardedContacts(_ 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 ForwardedAudios(_ 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 StickerPack_StickerCount(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 MessageTimer_ShortWeeks(_ 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 Notifications_Exceptions(_ 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_DeletedChats(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notification_GameScoreSimple(_ 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 CreatePoll_AddMoreOptions(_ 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 MuteFor_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 Notification_GameScoreSelfExtended(_ 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 Media_ShareVideo(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_File(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_LiveLocationMembersCount(_ 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 MessageTimer_Minutes(_ 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 Conversation_StatusMembers(_ 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 StickerPack_AddStickerCount(_ 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 MessageTimer_Years(_ 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 Map_ETAMinutes(_ 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 ForwardedVideos(_ 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 SharedMedia_Link(_ 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 MessagePoll_VotedCount(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Contacts_InviteContacts(_ 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 MessageTimer_Days(_ 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 Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_Photo(_ 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 Wallet_Updated_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 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[86 * 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[87 * 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[88 * 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[89 * 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[90 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_MESSAGE_ROUNDS(_ 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 OldChannels_Leave(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, _1, _2) + } + 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[94 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func OldChannels_InactiveMonth(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[96 * 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[97 * 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[98 * 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[99 * 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[100 * 6 + Int(form.rawValue)]!, _0, _1) } public func StickerPack_RemoveStickerCount(_ 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 VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSimple(_ 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 SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + public func OldChannels_InactiveWeek(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) @@ -5198,104 +5211,105 @@ public final class PresentationStrings: Equatable { let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + public func ForwardedLocations(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[105 * 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[106 * 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[106 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func OldChannels_GroupFormat(_ value: Int32) -> String { + public func MessageTimer_ShortHours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { + public func MuteFor_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[109 * 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[109 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func AttachmentMenu_SendGif(_ 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 MessageTimer_ShortWeeks(_ 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 MessagePoll_VotedCount(_ 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) + return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, _2, _1, _3) } public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[111 * 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[112 * 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[113 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + public func ForwardedGifs(_ 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 QuickSend_Photos(_ value: Int32) -> String { + public func MuteExpires_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Months(_ value: Int32) -> String { + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[116 * 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[117 * 6 + Int(form.rawValue)]!, _0, _1) + public func LiveLocationUpdated_MinutesAgo(_ 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 OldChannels_Leave(_ value: Int32) -> String { + public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + public func ChatList_SelectedChats(_ 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 GroupInfo_ParticipantCount(_ 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[120 * 6 + Int(form.rawValue)]!, stringValue) } - public func Contacts_InviteContacts(_ value: Int32) -> String { + public func PollResults_ShowMore(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[121 * 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[122 * 6 + Int(form.rawValue)]!, _1, _2) + public func ForwardedPolls(_ 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 ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + public func SharedMedia_Video(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Hours(_ value: Int32) -> String { + public func Map_ETAHours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[124 * 6 + Int(form.rawValue)]!, stringValue) } - public func Conversation_StatusMembers(_ value: Int32) -> String { + public func Conversation_StatusOnline(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramStringFormatting/Sources/ServiceMessageStrings.swift b/submodules/TelegramStringFormatting/Sources/ServiceMessageStrings.swift index 4483315d8d..d634e990e1 100644 --- a/submodules/TelegramStringFormatting/Sources/ServiceMessageStrings.swift +++ b/submodules/TelegramStringFormatting/Sources/ServiceMessageStrings.swift @@ -132,7 +132,7 @@ public func universalServiceMessageString(presentationData: (PresentationTheme, case sticker case location case contact - case poll + case poll(TelegramMediaPollKind) case deleted } @@ -188,8 +188,8 @@ public func universalServiceMessageString(presentationData: (PresentationTheme, type = .location } else if let _ = media as? TelegramMediaContact { type = .contact - } else if let _ = media as? TelegramMediaPoll { - type = .poll + } else if let poll = media as? TelegramMediaPoll { + type = .poll(poll.kind) } } } else { @@ -229,8 +229,13 @@ public func universalServiceMessageString(presentationData: (PresentationTheme, attributedString = addAttributesToStringWithRanges(strings.Notification_PinnedLocationMessage(authorName), body: bodyAttributes, argumentAttributes: peerMentionsAttributes(primaryTextColor: primaryTextColor, peerIds: [(0, message.author?.id)])) case .contact: attributedString = addAttributesToStringWithRanges(strings.Notification_PinnedContactMessage(authorName), body: bodyAttributes, argumentAttributes: peerMentionsAttributes(primaryTextColor: primaryTextColor, peerIds: [(0, message.author?.id)])) - case .poll: - attributedString = addAttributesToStringWithRanges(strings.Notification_PinnedPollMessage(authorName), body: bodyAttributes, argumentAttributes: peerMentionsAttributes(primaryTextColor: primaryTextColor, peerIds: [(0, message.author?.id)])) + case let .poll(kind): + switch kind { + case .poll: + attributedString = addAttributesToStringWithRanges(strings.Notification_PinnedPollMessage(authorName), body: bodyAttributes, argumentAttributes: peerMentionsAttributes(primaryTextColor: primaryTextColor, peerIds: [(0, message.author?.id)])) + case .quiz: + attributedString = addAttributesToStringWithRanges(strings.Notification_PinnedQuizMessage(authorName), body: bodyAttributes, argumentAttributes: peerMentionsAttributes(primaryTextColor: primaryTextColor, peerIds: [(0, message.author?.id)])) + } case .deleted: attributedString = addAttributesToStringWithRanges(strings.PUSH_PINNED_NOTEXT(authorName), body: bodyAttributes, argumentAttributes: peerMentionsAttributes(primaryTextColor: primaryTextColor, peerIds: [(0, message.author?.id)])) } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index fdd12e66a8..bdca4308d6 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -1018,7 +1018,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } } - if let poll = poll, poll.isClosed, case .poll = poll.kind { + if let poll = poll, poll.isClosed { typeText = item.presentationData.strings.MessagePoll_LabelClosed } else if let poll = poll { switch poll.kind { diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping index 0aedd8b408bd15f8fcb7fbf646f700074a5647a2..aab4fb144de75691c1805eb292a35ee88189e6ef 100644 GIT binary patch delta 38162 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 @Kg%>4MHZ?*;1^s-$564#(hSi81f&eZtyk) z@fA<$)IU+xAc;eOq>ew83?y~+sYLZ3kRpYF5E%rkRkZ(?XFP2Iw(9$IO7b00r7o|Z zXJOq6Z7bbAg8MEwG?4$?(=p0Df4;J7ROrCk>at?UvdLnYeyWsMfzL#$4DwXdI9;C+ zp0h#ExU5Z3Cnc)%fESbkvE@`&l}S6opVvK;qy~Z`fx@eSc|Ln4Ox2-iqE&}jRH)`G z5YNz~(jxtZk=?7j*ol?(d&~fehJgBSk5h~)Z2AZ~xsVwf6?8CPwcX7^_zC<4X4{?s zjTNyYUX4W4XtECnKFiw?gulagWH@3_DVAQtq6F6V8J1!oCjRt}L?u=Q!i(gWc0>W@ z{En{7Xl3H3UI1d=X;3XF#ZmTN79G|Dqpj48d@E|>;a!R4^LB>8owRCag4KySF+0-! z6RTab;!4D$;`zCqNzBFn+UZadRLW0OOu_Z8%0#qF629<+kdnz|8jMatos%;i(EYAR zC0Uie$e>F3(Nk2qY*(V_QYlj-y+CaD!Q*ta^La`x>@u(n{^PEA;5Os4F8JEAo^`|5 zHs;ypY8Kd}8OZlN8^p5ti_a!1%~hV?-o*cSHdJY$itq%t?hXYE%iQf|t@+5^PGGLN zyIo3ql}_!2-|xNM!K?#6zuUz+@;kfjtP{8Hi4E$Eo+I(Xl%2y&N*8V5ymC)~(pA;G z8%y`VaR#m^X`UV5qf@(~lnGNN%>dC*;;9fTu{&pb-2h)%dy@gahVM-Q_*$?xO6jfg z+x<-Zz}_geza@X|-%_RLs`rhR*F~pY`!1MPdSOy-L(o#lt6@bo z#ijL@iMzKiATiX}Z@sRDceuI+>P4q&j82U65=;7O%iOgUE%npiQn z9ZXb9P-&MI;>d$dnTLB1wgmoq`e3#?0Tje$L5~2aw%Swy1oVJmj5Eo+VDOQ4vCAg(Pm42RLkG6%XRhnOf0dIINMyXNxnbjuhTFF$k7VV(alURfyr*=YZ zwOsR4`ESo9DAQDKn`RS1Ky^B}(&Qs~@$-@D3>58}dDJyR2pB)Vnf$5eQ`jv2{_{>{ zw#v8KA}KA7H8nJc2HNLg_DZ%;r=(gWKilK_t08{yl zmqX!rTl})wx)DrrTWO9}xvOA~c|?;<{M5@yz>GhWBeQa^n#*d~Potv8Ydj#iG0B!mp-T5qd7p1 z^8Ux;)MFr+`R2@6ezQV{km&N`srKWj6RS(a3$<;PU*(xv=8-YY6Dr>~z{IZ~*RhlQ z&*SmRDU~jzD>2kI6#BC334irf*(H=#BhGzIRt>so3T?E@Uq@XgW$#A}=;(zGrm)pMw{^4qJ;jY|JRe&SS1K-u3; zxzvwAuJ>m}E1&oj%-B~00Bk3`YE?f6-6G?9da?Y($2zZahc2VR@BM|=CUBgD<6rS6 zuesEVXr)CEgA02OFBBT+5~={iMzYx8dU$jhRgv+56xS5(@SjCkGt*YxoI9eK@( z2Zc(qv5!jw& zCS85({bzpT_2%q4cfMhR)2{0q83?^jej^@X*Hv#MtGCf0k;0#0i9tRSh{Z|eT;-lXTQvQJWekX#uv;cZq`le3#(>H>n{SyEC4gUk%MI6E=-W=nj_kKHK^*gTyc!6>0%u^UfM4(>@a=EM z!;SsU+cwnzii2Ni9vxjFR=yAJNNsKeDPDN`Lk1L8lvEeP`6UJ(%)7mlh*e+rZVF%Z zj*7@D{-tj&Iu4VaiAdO2??k}K2ST9S@(}?dFC{9ts?t+Y==DmK9m#XvO$3;n@NOzz zuI}AT=&KX&CR$_BiI8*m+YCij#WKOc%-MUfss$X8#7bF=^l(^FY!2(uOkHv@uG06y zR2!<|W$wnt_w;~}UB8TrLU5@DF5wzaNjK>vaDXS7pK52~H{Od@ohVra=rj)YO!iLI z)Mz|+zn`JF0=U;LgnU54z#=X7k^pXDk%=&|TXX1jE0QK}V!&#$^H<&vV@dq<`|)rl z-hSVqqy*4Conq$h4}#THv^9(2>U!l260?>TKy{p1YP0zD4_exrqnUtC`95ziz|nYb1D&%}xzAv7Zw$moh{zH5C8mZ0^Eal&RW!d@{!Dj z1dCxF&m;)O9O>@s&%2znvH^V5IS2fLbMZHiZ#m~g$oJH_WOWc)Ii=05d>8>h8vUU| zEkIq0h*HP$!Vja>LeVio*rtZ?`f$GL!?x-O)JKTu9e#l^1Ek4Mm6PDgp3`5aj0}+A zfexGl>>350D6wE8_{fiR@b``XD2suds#?~R#{3O9x$NM7N|trY<)!BQE(Z_bF}X`e>1DZJ~aNvw)b_*8fY z7k%nfYtS-|hiAsz2OMkp=}$A+RQ}(mZZ@5#f0hF0U?Kj_;&VPrS7)OIoGA0mjcRrd zst~y=iQ~6E3j*S-dpD8?e;%vM51^c6%y@^-4eA2$#L~|@kt87o^^j;ngO;<{ki42w zZJ-aM&LZ4JQGCzmA#f5N{XA1y7$7a4fOcZJE#jf)(~*P4p12HTD>BV2IuRijy{+PR&fDQNw0@Ba?AZGY5yY+d!UEX1 z^os=e4i9|M+)QXC)XsutyBSPEt%QR&}0Ka!IiXZ{cds(2ON%*zH+Ef zf^HY8fp7mR3~2GiuM(A~17r{*ado#Q-{0jzH6Am%@NQ zf4F1={tUcqQ;r14{KkQojffVHxNKKnK|AcPVP?MmvPnIT68s6mQhe{SQ9Xg86`7n- zVImK)54?F^%^`M@vn$Qu)Xct;#9rmYuh^-BNiU;mhqVq%eUk-P8TPFR z8z+71M3P;fZ?lnPH}l(O@P0n~ZM^a&gr)*m|LwOn_&}R{=VTYK>|=T7?_!Z@H~hO4 zctIC@*9KnDm%lS33jE1;3F_B)N`mIqwO%y>5T;#CQNKl{87no4mtPH5ze6cfCZOuN z4elns_En*KO#Hd4k${MAUrhi+ypCo+$!3}`Ri%Wy#yfp)hXZre_cma|+231$3fF&c zRer%27Jiw_-v`6ky5%G%wKbq8g=-)!; z+Mqb^$6&=Tkgxc$jmnUz6GxlBXI7B?{FFd`{l{#?Z|y%tss5lrEWR4a2mTbIswkP{ zoEV3}dsaQ9QZxwQ^M7)%AinJ{vQrVi(W3f@cA~AHDNsTQ zL-|xuiUnty2$VYbA3uk~9~pGrqF4g?ye69GrSJ8o@WG6{p2+NLZnIcT<~#Vd>sCaP zPh59ngWtek7q{NXR1?sdZ$9%X2F@6!*PEO%gMh21%jHyvs*{=r+(%-RPUBG^q zf3+gr@9wY3YA)#MA`9Hf`~McMnPFNMe z;q|#vf=~cf$Lef5KRq)Dp3AJ?&B~BK@{T}yP}k-xfKU8A9FgJKzb7iguunVK8bR>z zKyqX#NSOUSggwA-{+_OmKwlkr(Qm1={#6zwxAB8$)Y8o7{t>2(3Y2L=)O7(+qIFS(e`ya^&5nKOsD8+%o^yI5tVT~)OgqQ#6f^TxwpRM4VeDhDYIsp%h z;I|W_B?>A^k&LOcw-+zqiG?aYd2Jb&XfPd5fak82GiGM8WERf=0lA81lX{mGhg@4S-yg)uD z%g$r}4O8cXM>9V34JhLwp7(DW!oM^Bb;LXZx*k(m=&h}i>Q0)j3;Dr+3&!Q|1##3VmGyzr$_#8J1@9Bw zdpA+tfOc?zwlxP2Mp&;GB)=H$Mt%ykO`yT+D>BdT-EFFD4&=^C7_j$3ffPI6v%!Zr z>Ru91;Uo7%-rkOT@#=Q8NY&DNuii7U9sJ(CWVUlnGK{iaYkILZ?AbMQS%$hBY!OuC zP_$LJ2Sqc_SrZvL6wbCroVOQ3*v9rz7-J5$pRyUVvV)YZ$9VRR2&9RO#VCgYd1!J% zN_RN2wanM&(Aob;u6oD8^B}}atVQ247O5UaxfwY_SUlMklwUwOnirjmqJatvVlUB9 zg}K?wv`}Go^$3VgTJbeD%3((+JBl6Uq+dm|W1u*s!Q^PdB9vDG`PKu-s8|FaWfSJF z9tSy`9FMZdWHGTPP!u3xfOkS!g*4DLVA=rPPH74&aB7)gf0dqV!d&WWXcZwu}Omv55WpCv1A$T0>syFnoCceCM-vg8J?a@0;dpZ?ak_e(ewI$F z%+Aiy4He(&LkbOGPWCZn2e1_O35^I~skTqiO6qgXVsPhFlueepT0G%1+7^J>{+!MR zuxRCcAdS6>lLJixS-ABJv=gXAp0djCo15FS$C!F2;+K>i$egaPz#^enqc28i5m>^$ z2=xV@+*%ySEb2vYyBd-QVw6jP(hEX20$HGX8N_&@J}4}RMVPLjD6C%Jxt)SZS}MZV z)FFtqvVQ}r*mT{>amdJ1BG60qeZh6g*RfdjJ21t`(-U+yi0Rl>`XY!Wu#iX$AS zNycO>31ev%3mC*#6owhnYOrhIk1Lm}#7bww@Dv+C*QN*A!6=jv-_#_AIjBcCOJz=~ z2*+^ZsV?96&eB;T{Sc0Qnnb#$*bvERW+tfpNb1~_g|HMFh-#Kf6Pu!gG>Tyr>7!Vg4#l~ zsXu5J!dlYJ2$pDVg<7$>wfrKnOdI!4Ys!vfE>|0{h!rKUVF6@^NQG@=Y71&K&-ag_ zWs#8D?P!||Utnh>GbXeLNz6vQL6$QPk?6*j9Ynu$@H&fe@8 z3%z1Jj1pVM6*n4WF_$9y8Xj>i+%^W4h`@zJ(&|`dQpchw4mq0X-B_k)Mf6E5R%bE& z6^n&fB6+(mb5X}Qri=HWC^UwY{N4NH6praWxMxmb&mQ8L<0UTwWk}}@;+NY8%jCrg zK{7||@}59pZUxd2n5e9j-i^a&Dx=@xm_wb2hVl3grc8H1X;~%CY)z=wVv|4;(q6-b z0z9=u$*&yMR)LbEh3{G~m&;_-wUD6wfEhF6MKM+!VxkLXrc)||q}jRF!UEJOAld2e z3T6t^TxMdGi*BoeL{NeHTUdx%116k1NRO(Q!c%FMg{7#|L}QNR`$oJuoz7UGTxZa2 z3vthPCu4 z{cK}a^)XPL!ox+Wc4W^kMzNhN&e;!nT5QK6Sb{pMTm&2JOs6hI(Jq1#q0&4R!4!#5 zm(f`}mg;i4WyfGwP^<&HY$ceJ;fzlpoc`3St57tPBZWl=3m0kq!J5^y(!pGb9Mnj> zuUM@f_$rYTpa}qaufIQCOi0!uU>07)X_dN4512L%oWX)bPgruz`hOu)x{o}Nj-Vt9ex zPJp6#k$yxEz{H`6D7{Qsi7ZJu614Vh$U0#gM`;VMM^({y?b98_v!Y}umv$#&LmUgD z1A1nn(BvW^^sON`46#6lg?=jKrBYHap(E8&bX{a0fg*RlsekLBk-AiMrODeP&V6a$q zBU70{Jr9zN=2@6ExZaxk0#z=885lC%7r(G2R)ErQ=1=F`0O2b6H^U4EfEX>}DZ%xp z00U8zq@9DF*bK5Vh~|JXO(z&JCI92IlxBo5BE)0~H6xG_@7g62IbWBXVdEJI-zp7K zG$RXh9zuh%@U=o|N)|SL82D3t-uh5FmIc`ujw&s8k1l1gAZt@!mxYM4y8lm{FoOKE zA#ozX;^4O*iVYo7S?(<=soz;qQ~)yUby~0s$a3B#7C@V_@eC6hBueua$Kp&ZmdNBJPIE5{}&GI8X-=0VZTd+)k+)FL66_P2u zB}-LPz?)W|Owm-j@6u>WONg^{9p#4tukUM#^`1emv}B1kH@F1?sb9tJdIz=mLRo8D z!6A`NwpPrhw9tt&7r~%6oV9F8MXdn8TG7H*EQz(IJ@|39L61Ts`IeOU6jg43dJkOJ zqSLnYYb#7(JBn?MpZ3(HHC9&#@ug!8B}IaxBYLoF+ILrLZ1qm`N^9VO&UC3YYpHbA z(aJbQI-3K9UqhuXZ6I=UsBatS=I&^lNo**xE$-|Op;c|LvwG0hHh_mc>4P?~40_Su zZ6FDHi^}A{=Hh{Uba3iN(&)CB@xHQN^9uAsXVKjGWdt2>%k)Zr9fjd&y}q`pQnPCY z(5<$Zpn(+9jZ)F$%VA6ThZdlqULhN84KpY>&?}ite??w2dKW2iBGq;af&hMF&jPIGWx8^kUlB0p1mlPNYuC z^X%j4n+~icn?RUdX242|jnIXjQW zcVW#;^L-B&aUFMegm9|lVqHLcK?SC~&;_FEVY(xJ7Lv6qcH|<;>k9MdQMB}B5$D&I zS4)%lF?C&_XP=Zz0%Qw3cuxavn$54QpdZ5OC%CR?Q)KS!VT1p0k`Z7;m|VM^%5+5;Vq>4j&$h^EQ) zXPW3pFW56Lp(+D5t%Z;N#b`v@J)owX{FjOKhBQ1vDZL?dj?$3ckT$Q-^xn_|$I%FZ zz275s-OFm^Wv$74-^Og`DJ+AwCv;erHl?7FQqteV_()>JuRR2*sClF|G=SZ{FN6FIc4!f z{I$wd&+2~oCLf^~O;ds)hc@+t9Qv4c^kW&yC%XC@dIISt>ebJ{m*i9Q0TkCCDej-6 zO5OsI-m(YG1RSr?j?I06dSM(ks4ri-*_WtyiEmAd`U8^yKX%7c$L?T;V5p*LMOAVg zU()eQcVg*ce+=ep`k_B8#cwEZ0K~wzlsW*b;5!;PfOS;A7XuP1H6f{Crho7~S&D-K z+-`!Cbz%yBM7^D+z*zzJT|>I>HM%zd)Acim@zUu>{RXlqpvkcVSv&QH?7wa=4sZz3 zCYRAo)XBLM)<0bvh>GglD9%!7Sbxj9T&b z_0BcSLTzQ^_6X5a)=@~C(!oF|p)`9itf(+Kh=F}z2A&*@FBDGa2E(z~RIi2TOKZie zMu5pKj;>H@0h&fprvhm6Xwg*QYMLWzahE{>wr?EmDu5t2izZ}#idi)Wn$TVry}0d$ z4&(u#?;Qu!ommJ}XQhs?rD3x^Scsiv*K_A#TR2<+-f6yc76-aQ+;@ z%0+ih)H{TGhW;(YhKZ+;AyCsU$&KWZD98tK14%vI;XT701|1%5ZF~odhTu= z8!qlJ^PxcTh-7UV0*mGPPNk2AKn$hRogr`!B*;a} z%nm#U2D&+n1+q5u=P+#awqza-HQP=vPwZx`jLjH79z*tPk4{D01+H1IgjrgKSHTRV zAjC?dbYeI_KqtC1oOM(>>*;t)79EOfA?{1I&!KJ)KreJ7&jT=Y zy3>*eSf<(&oh1l25qKx0M%V~n6xBk=|g(*BW{x{-8dB)-}xx-}AbbTlQ7Vp-NP=t>9)E%pH& zUg2q&^08Dkip4)zp*9PZ84Y<@N@GTYvkaVWan6*sjK+&i zq~oKRlTD(_qk(tI$uI`-l*vLkb>Vv-Ft7?*I0mh}XodUuesI#6F%Te?6h0Ype12wt zA=g``A;&7cj8|F5!gi>pc}0*F-Nr&z)X<2rctS1B9t$KfRZcX$0xoqLI!%z_7rHSP zhURqodo1wP3{=~ZC~0eeYcnag2;X9s=rs#a_&^cZ=77y2tlA9UUKTSo7nNcr@4K-u zr@~t?W3pGfhGYT7kArvVA?i0yqT-3;Fs6li&9beRSuyG&bb~_jFiSwPf)?juQwm(xxBff$gx4#(UsuS+6H&E)4X29=MR6ptn8D zt!|KAEch&fLdHXKZzSt@m{OZitDQ)vQR87dZbmts&vzxzD#5jdwv0!ATlEAto0Tq% zhkJ3G?C5N16opJ+M&(JpJRPd5k03uqohHB*d4{|bSSxiqn32;3cmh2PH!O-N8X#Ga z0qb`s-I)M!xQm>nfG5vVn^H){-BNJJ1{8@FduV1U)csyGOp;)qj+SC$?}KFZohgk} z_lt+fTO@#8q_^<^naUvNo~KS_EYWfpbg|ET^3YvSG}Y6)ObXl=Xl@y69rq$QgeSK? zJ6|FX@%WeMG&-`p?CYU14%#3Jj!?)%Oyp5;r1AM#7AmzWQ2^kRC$a?FanuTThfe^> z9p2FL1nr-Q)q0Z7OvH|Tm2OOg40?@1Cqa+APVFW!r}_rkXYj15L<%wc;v{dP$_2No zE!>9`q z0aXmK2kzhTPLMI}!WkllBVPZU5C|^wN8pjD-FN!bEv2Dg_>}S{W4NEujLDeq&uKGC z%2!x^m;|~wnMJrRpsi484X6&ouBk7GE-vb&_qMX9Kc!b-6z#n`^54qoh(AHjxH1aPWQa{7B|RI2{?IEubo5aJP2z478(F9h@+!h zjw1a~<`{^v{6f!xS^X7sCwJzV==Vw(62GG;mZn+Wxb+80VjoBqSRX9-le$b{F6A#D zTq&6e2EV`Q;VF;^|LAFJH6E2Z23bx+s-&>`*T+~R5%hob-xP@9J7lYZ>3zs1y^JH`cs!`U>%i) zR>S8T2tJ!cYb&auCW2^-;L*{!YM8=$5Y05l1q%dVUrdDoHO+AfD2aO3un3zGMHwa$ zo(v&)#p{b_1%n_$E0Ns29GO($RYOo^qgB5Gryj4tqeAIS4eJ18Yp7+(wg^zgTGh7U zu(I-U(bWUqTJh9K%CCjEi=v6OSc=iKvKE6gp@p0F7O?dD5;AdWp_XOX<3Rf#$kA{& zfEkonKD)hkvcZayON-`LPG!+HJIalt5T+p#Cu$0`>ogto^i+7coCbLWw}p7kc=~xN zz@W>Z9l|MQq;|D=>B)2V4#xhWtzSAQ0{b~=LIsVJn$ zyeayn2G&Cw^`8z2nnB*_h+t*Xj_L4ny6J=I(5TJm?sUNNEQ9n7=FNaE&ZZGFSc|>BN_x#!Dye}=8jn4al)93GfbvD*qe^C|}ZW`~i)dvup!(66;py7YmvBkJ=PhO5F z)>_JX#X6{&0zXs4g^;rh0lfN9)i~LMqYWv)KIFP3#~qk zo|p@jJRG#n;-spZ{+$a*^#Dc8!}lH`nrH_M2Evbx$N4>os#uxoAW9=qilq5KVGdCo zg`!Yz{XH|py^%Oq=6977tsEkmHW+9#cL8*D zIas3UwjTN3VtA7cH1;BkF#@+%`Ld8J=->j(l$X9*fMr@m!4E+gRiha$>`OM`w4ijC z)Sv<`i5H^&Z$PkC+ety1=VF?H=iZE?lN*_8^jV$L(X!!=(O7i`irT$aWPcbib|$4i zjIS_@20x6?Hk+nD3}HWq)<298`nJ_wnA)vuZ+OrU=ZI$>*Ub_fip$>hTMcB~L zn5Vg#G8eIS0FDzDK~Jp(M+&^na0D*`Xd@Ke^-(1qeX$5TW*zDfFbY*H4TyZbd|}FZ z6kqcR>ij4=+5j$x%zdeO6q{uuiU=(sqnUO-ifpeaBomxrG2ZV07Se=&cA^`|@rr0}GHpX%0_zw;EGdJHf6G~IX%#_BT^ zz8D714r;a-A)B3IKgZIn#mr#ag$~6x5Qz;Qcd-{&9m4gcL6&E=wNCFX2Atgu#we;= z2pM&AF_IDYpp1mytVjx7g3$P018oz>Kkg*xsPht}r|qNuO8`svi-l#nw70Z)c-<%P_cOv<&z409x)A zKPTwjWmv@UyhZ_w1`z)o)(#6f%gkoub<-=bs70c+ki z(0*L&LjNvjdgnVBfSA$$K~lYYN*whrX!8C7YQF+=`W}jHrKvOeEdU9`YeHzw3T9B= zH{dd!Xxh4hMX9Gn8!cVo1JDrQKfeMy<1GEN0?PSAvabYy_=pCrWLa?^gIC~#2GhS^ zt#)kt6WXv6^ZF^hxe{3TGq54Y1qRH$mCzrbi>2yJJdawT1R5_*>swJ+T2`HdvvjET z`vP=dvZ!|zbikK1V-@D)D+6a8;m%rxNxML2&=Vs3x5dvTim1byy^MAyxl;1#VAEbf zF@bJ%M+V`{I^epmQML(f6Gcyp^0z3*)5&Mq|L6Vqj=rhG=&ypoDbi}32|f$%d(?<2 z7bEwbYQ(V@?RwxJD0emH=_jgQjg4@P)~?1p{7k1%sa{7r3*QrNm(ulyL0kgi$QJK< z8x#P*#w`4nqV^ZmMnkSf&=?K`@GDK^kb1w~%Q}wiuBg^V9G}BH7 zyRv0U;@_x{g0E2(O06iK@ek!bjs^FxP<;-f$B}Y;&(N3#D#NDdABVMwvrb!Pnkaug zV(!K@h@UA&a;(9IYGM>OInm%X5WD_saW5#%T>~Mc(y}!WggB441`;)p&aMH*4l;^e zJ?bdjzT)9Jqs+x>wieP=PhHj`tHEHTb3%%H*W%k5!7hUo(X?hQx(}vj*Ru8p;fg+NI15k`sYf@(^|U?PpQMQFSG&Z$Px zS;BschND;9V7B?Fl<{f|9*`>UJs5l1*dT#TG}w z*I~{q=y4%#@qEA|Jg(yDHoCHoSrms+oU%!!l=ZOToz!MM@JKvWtcPrM(T4R1RVJW+ zEs#fN)?<#6PhcJZn&(QTqlRDlZ^Y;ANMkpG)QKM2h+%X_ zmq~okP24iP5pJ9=VpKABJh*qxz@B2*T~T#^B%!$&Ne(sN1nArixy!RyOn6>xjXbU@ zNZrBjgh^+k<-cG*^`L{B;56(>S2tmDdQs?RAi3U@yct<*eZU$oqk>xk18DAMMC1FS zDnTAop&grnpZXc8*+uM`&ryIU^@q)nk^@P%1)i{6usZniqb}*v$fGe^pegcEX%e?q z%e2Emw0jG(hz6q)2)3mONhb25K;RMaY6bMm76^_ZWZjCUL*=7oJZ#ifob(uGq}xrQ z0FV^h6nU%LwnA$?i0vrOBc1=AMF(o|ZzTP;70Y~-k@Am2+_l_>`_)9Kx(F{T;x-P2gmGb#8Pth`y&XaY{x`A22q&+6q&dKSYWAOOq6N-J}|V5=Ij9Ta@w?mCA(JO zNkXXjZkO*~>h&VKrv3u{m7pdF*d7<%w_<8hd0EMz!S!*^RiMSlOXVnYCkwLGp)B6( z{v#v}muIY|f}I!?r|CQK?8j-{PVB=qXyK$VgbnDzPHdaC^utah6cDOoMF>JCu1*kd zyN){VVo8?uAV{B`_)h^9^vvzibMTl4@`ebGCusgIe2)!uXcs!(2*yPE=Q;rC@4K)x zH&ei~a9M0YHBfg4vo05od(mtw4SbfRShn5YvG4SY59mBab{v8wntLG}WL~ms9p0?41up zAN%PF`cMy`j}&=QknDTlYB@-)_h5M)q7i$rvY(^rd+>Rmr_FmXhllC-9@a;F0Zrog zg?*L)>GOMuGWTNjzYO6gZc(q?3(0@P*l^~xPtj!T96-$F`>+~c6Z=R&%x4o(9+xxQ! z-=fU@;Cq`!?}x5@hqmo!9g!M(aX;SfJ-K-d%^Od~Q?mmA*{AVXn}n7#4*+SNK`|Mz zCo|vCIzl;XHiNfv89IQsa^E3*i?1=R5@Bo{!b<#R?Q>xGma?9MiT#~Xm>RAIJ%5#EJqHo< zBZ0{Upmzi%>oq)BtgHJ3iOc{-l^+s9pJQ3B8((9_O<}lr)9?wID-J&Va z!y|N?c0CUn_6wbR9%Ak{y7N49oBlv2Ky&qipoedV{7Kyp<6ZtD4}R3Y!PLxmmyezt zrKe_+#hH+_@MCcEi9Bp{$tLKF}c2+|ZAM2H$C2@vq`lwvzQ7268$ zsVBneb5=x71*Auj8amRu6zQM{f)MWg=HK0fyXVRCZ2p;V=AVD&n{U4PYLh#~(|1HkLS=tz##K4 z$H%RH>2g3q-jX%s+^D>d>d9Mn<>+1&4^@tk-Yr(|-ZqISoXaCL$f{jIi~CiIr~B}L zELh<2T3hctISn>tqPflAPK{#pUf!KLG^{iG? z_N!yi(50Dool)~h+#)e`9=|RMbLSat6Jq!#J)fF24%k%0LVZVuJ&v`ebw6WO2S=3E z3>O82yd)lXeMcggK!8+i9A~&}K1G2ZpwntfZAt>$Bnbz<6JJh_ml+#2u8 zPciCQ7hl4rBJsYv@}Z&tYu#q*BFg#O;?0eQJ4kcQH=yGpGEwa?auHFtJ>Fl$*LGlA zb6W7rA|oR0Mm`Jm@{z70t)#i#rx?GPl_jQJUP3y0yVOO}%Cmein5)x4xs*T~agA6CEfJ=g7C8GZ^rxP{lN-QQEU zcE1T5{8)v+K7gm7H?+32Q5WdRcU47B1H_1?p`+-N*&vO z;5Q7zF}791tvaDu<}wylqWvUB=Vz5xlz0NF_7)z)f=nU z*Ka^=-z@CkNUOKxGY1ocg-0|C^g9ZBe>CzF>e#Ru-R$E#9mXPcxsl_1g0=kfTO!k{ zsL~9-^%o3V&SiR%mDIx|xWdT}K2ke|pe>%l*UPzECScogPVyvNT+UPf86>aZWIT(~ z71ZKAhjA+i@;v^zf(OP6n7e|If5WyF#EutnZ3U0jmjuxrIDL_}veN6{BJ@#)29U8$Md@lH z09Z-m^|W}5U(NgHJNi)+SG!h5Q1m!!HMJt|u`u04617HTk9?*Nj3i(vTtivT`{=NS zRB9Rqt>K3HfVDR=-cc?nyN~o;UZ!IaK`b*^r-hhaaUZ&}hHw0cMfuwJC8L4!`frpr z(3a(6R5x&@K4E354lagI8%V1@#gYb+`_Bc-Zm@j8+DxRRalf@$OO9?PdaNZ!@Fl9& z8ZOr?)(Yn;swsaQyRmgz&;J!>tR=TJo8nx>~~g4 z1p?c8a-#FCsOZgI&V)2h%K|p@S#2_gES~ zz=V0D6{Ux`G!Jazb$b&*b*$<%yt;`p%FQHC;t2oECW;V$!tzaA)vY+XiOl0RL~b_P zs_iCi^fKOyDYxCByP(877607KTj@@Gx|t{CZmio(Kn+o=pw79sR-*hX~~*)eSs9Q7(QAnLlx6kE7>LMyfh# z^)6ia72rfh54cFMMbF>^cdF$6oe^Clh2wpz~< zkCYvhXNK7*7>q~P9Xuc+aMunlkR6kD80{R9gcM0>U`%>QQE1q~kB_!ZF{lh{wUbC1 z1Lsce0{TJiBw2`KGl%z?D^5*i z=7C;}kiDcLB`Dg<#chKjdyRBgTSDqfy-qdPZLFCyO0&W@U>YGT?Fo^Dvbj9X_UxtJ zpaYKW zeiG>0@XmhXPEVUeqHnFmOHJaF+kI~zB+>87dDSc;4@;MB`jiN{y934n%IEGRR61st zQbybNfD!EI?R%f;i7b(1<;%)ZbAZy1yD=BZk1)0*f7hsnZ@v`uBCkWgyG^#YE<$;0ezG+alFTxT77BTe$-f|=7$K6ea; z93c-d7L$(yH zHZ41cHs>3UQAc^kOu)NGxi*uq>?rSj&#GKtqlgg8xD_=Zo?zWWgY|-K^8H(vBRDPW2uoo4_sTX^j#m)Ap>B-lm-=4zi3?}~cSj~Km zTG2e!Ch}?rjvuE|;~#{`)90y}ZF){nMe>eK+ki@LI}AQSM(ACecj%}%Ogh1n{5?!Q zK{M!o>fuOID^9Eyd=8*@MU9N~ed#gaWst0<5y$@KunrjgWZ5I6VFL02N>38Erla;G zF?t5xI!Vg(FU&p3+tP<@&Nz2(Gz&rZ5$vaUpnQz>r^s@DLI9%DP3f3;irmU)d`#2{ zwS!IHyU#I`V01-aFO6p6!YOwCC6Z3_(3^#xr^$%V)@}4Xa^h(U&A#Td>979jX_Crs zu;?^<_|~Lnrf_@?uAL^Wol8i~G)RnD^f^O>n1_4LkfWQ=8pel{Su6K&-*VqgJM6k5zYJ*+_Mai5FGlED!+l_Xl1E*mzo^0Mt#An_cxN65G*1l>kNq6=8~rZ^9akE8~Cm~BQZ_$F>49yyI_*Z(CLE9$M|B`t}|z>S~KqJ zVf&R9up4Y*pc||s*KTY^FrQ`oWXmRYRwRq(!n|LNM9*g5K>RjVV(i;YE4T&c*d=*T z_ivo9t?2n1CuBPw{f!iD2VVV+$g~r)ek1?53p)wo+|B+p*%B=a?H)#qAX6xxvt%u zBn2o~L^tzJaDk<%O|e9Cx5k{ufuhSFU zx{M)zF#Ob?gwz)cUouyrhD{N`uHfrGXti~fKsvFO_>P3Yc8PpwBa$z1!LFg}C7z`% z?5Md!DK)vxmoHKFtL*sn5_#>GB$B>+*Re~yceR3XnU1^`JMMbda7N3WJmBaNL|CUz z6N9HOGwMeOpFKKE6F$6557{t2>%e2CVRbkk&0WtO6GIiZ^-qq+hGPCCMY58E)|Lil z=xdr8=z}o|)qj!!jUj-~t#iO=hH4*COK58UXG*zzZjpLoI)O5haaU7_;OVfR{H zjzHA$1lGoTi$99RQ&%X=O5|gfjwp+-_Hcfjn0tj3CyB*68J%6iMg(%?y6jpwm2SQ^ znLvUGw^EqPjKe*c24a55Nmp9#GgeilWIMyxxFu!0SO1p!S@fX-y2qLB<=j$Nk) ze7Dhv@Z_@r|C*({2tXIGoWc30#^n3C_Cl73AU`1W?#?LAqy3I8tRPeFzGh^4ihaGB zoRlaK1HG28Dw1KkV>Gwc1{K%Hu(V~NFD-9Ve5D)k)ivIb+Of_lNl}6a)XFQ`zpe6( z4pRzLs&V6#J}TdGGXdznFFuph5!_?cJW(bZl1_GXBy0t)lJ@_ud5R4q-l}5*R`WER6K~h~9zsl*(6k+I5C!>{2R}O7z1@rBR6<(o$tn zjM}=T%Cz)lUn$-`jZU%g^oIuMhlwruQAs$iPtSES3PW(q;1%4QBmZSAG7d{kFu3cCIS_t;;A%G3{pAj zF}oZ~LE1>;aa07UbTz`xFxe^47Fx4{RH&-4iJp8vX@^ zAsp{GR^^%2g8OG0p^Ww13KK(Ah~-IEkVC!Z3^G}2d=a8Dvz}t9T>iy7ERb8zzx4!P zpO*dt9G*Q?C3YCkB2CBTVhQ=^eNaM|daIXFv=pD`mZ(>BaqNk6&$-jPnxQbL>J2r+J2~3nU;^8WN zs=tjh;VQ>6g=0w%#1x1?mk7?@R2I6mJ^s)LBF8^4Izpve-qBw{U3wGhy@!PnMD6!+ zf&dhh+N~VebhNXoJhG}ot=u60!i!dp??Ze-r$Wm|>_by%?6)c_O)yWhh5EPMyYZ!1 zZ%1#KM)Hpd6oXNdC><%csbI?|eD(w!|6?gFea@!R)Ms||nM~e%u}z6L{dybo!hJzd zjS#V*ExiS?c9o!J+O;KO_@LXnbuaHP=kb@g%TCHP3*+r7JK-xflDlM+hOvzx!)z?H zbNl`Wd+l7xuPOB9SABy5{y4v76FDK8i;?v8c`imqs$9!F*5{kCN|#1*c;8`TB$sYJ z&PA$3wb1T;{a_06qExh6WcLo4o*c?dxAM-#cJG;^j!=IT+9h~CN_k4_*_+l(H4m8W z_wV?gm4eiMhLk)Yy`anL$|QN7^tntv)`81WDwYCPd$hXASb^K4xgA$xR5a0R72b{J zu3U|VXs+TKoQ+ob@eS-&R>OA&_NkSw)-qn8N~CMgoiQqzMweAFY_I{7V^lFii7t*& zg=&*sUrWQZE_*XODH1}guK=B6N!zxdSFCc8FRh9t`fVkE3l)Wi%TIE*V}2|VWd|#q z+9|?DbDt)i;7(j)HF?&QI8O6!LP^+e`ohPlILjVBy8WK^O<1}YGvfHQ`>-mGZ$5w{ zairJ>1y+Rp@m|m8At;JhA)S6^8UF%0x&ciJxPr-DdffwMmi<3^NmyO`W%U zN6yZP7*ti^zfJ#+a|v9v3y4c3M*e|ziQJ`^a6j$+)MdMltQvCL?LB0h{E2rHxfWO0 zWtzC;JFq2DMO&`QD?l+z3>p(jtQui+@|d`0_vXLiv;{)332|g3B~hnHK5I;HD!Za) zo8fNSDiw)kPUW$*Bv7&611*{?Yibft4GZo};+_jaO_IvU2quiaxXaC?a*UYY_NpBg z@ZAn!bq=Yk2V0Xknot~(w&4h6d?CtZvs~=ZioPy>rVW2_scdDBG_@7lZ+exBjUutb zMbZ_8YqW0UfIZ1<6pK5ORa-Ks6OuVo47!rcX?9>$G9eRiCYg9h^+$?oL;kZYg{Pbg z52vWYlw=O*|F)~BYXni;n4O}MNaxqGg(a1slK3qKp>C3iG&tQHCYg9QH%A65-6l`| zoLfa%GWl%U8i#38CQFos1#YfpHukwWxEzEr@Fy)Z+k4ne9wY9tE+5Z$IQ|06VEkrF zp?;%iN!EM##v<(Z@F;H0(zbzkk|`9g-keHytONs7RjQ>8Yt!^1O;1&=ENx{RI{wLR zOoyOpOgpSeRk?}nStIvxeGdARQ}WRrU` zXR?krN9r&dVnQA2m%4Uj11e=-aM;a|#C2r0WD+{zhcpheGpiFZy(5?ETAB(Y8yS|a zTpdbT%)jecA%7;iGFJGnF60Wvj^@SJ43T*Y9!MvRyA@BR6PvnW8oQznenC2SU=Oy+ z(mQZ!28rrz4A-Z!%?JETKTM} zBoecpuq5vrtOGF$XEBhr*TQk#s%66LU@ur>wt3`Kx9id4AE&1bny`BuT4 zo}N?+*Lhk2!0{l`93H*9njGac2X5}Iyd{fyX792;Xnq_IFo+U!Hb{3D%3 za+CU>Nbw@8rrCA|?kONW$VAV4QjRPJOjOQx*#sBNmNVKEwAL{TJjas5LisM!+JHB5 zGdZ-t<-%S>UMdf#GL(axc1^L$iYp*&08@N(P>2NuBppSpibs73&pnDN>RL}NnW&irZpej!G%Hfn_qtz{2>AgGBFe-HK_IPF;KK zXABP2p@q-pClo1#48x?q>qbPCkQu!RlS+s=H^WUx+Q&@JR<72aeD5(8){-QdHt&M+ zomnAFRCAo{-vzU1KxCBSi9+Rx@9G1Q3F0`-Ni4&oZB%Zuq>1?-ywkpcx3b){!A|DQ zyMH$ym_|%rNKw(tb;pF(s(_b4?ylGn-`w7Y!nWl3dSYCbO6z$$oBkh84W=ls?he-Y z=|=YfWxm#Tvh=!%)8nb@h4qD8(%$%>gruMk5!_X(y@>mlvw>_M|I9PMyr^RRk9}FC z(Wv>Bm&Lvd135d+e!lwVpQd+Lf81Tfb>PjjfccyU63m0yxhkow`?xVg+sfgCSR~^Q zI45X<$=xiGeW}T}7HsxqP~fUzRU<2E7^8^kzVE>Y#XMjJV`wgE%e}aqt(>m=*hG-J z`8p0UaqoVVw^0es2Usf~avg*$&Vz!eZYIazoPZ8A7S(?!Mr3m*RbWwxO7ySGL)e?I zvXX|e4_OdBO_~9q;fDk1J^R_L!F(?kr_Up9VfYvuVb D3?zEm delta 37784 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 From 305f2802c83e8773876c592bab6bb3488700a6f1 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Mon, 20 Jan 2020 22:03:58 +0400 Subject: [PATCH 49/63] Fix poll update processing --- .../Sources/AccountStateManagementUtils.swift | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift b/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift index ad168e7d01..5cc2c88aa7 100644 --- a/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift +++ b/submodules/TelegramCore/Sources/AccountStateManagementUtils.swift @@ -2344,29 +2344,28 @@ func replayFinalState(accountManager: AccountManager, postbox: Postbox, accountP case let .UpdateMessagePoll(pollId, apiPoll, results): if let poll = transaction.getMedia(pollId) as? TelegramMediaPoll { var updatedPoll = poll - if let apiPoll = apiPoll { - switch apiPoll { - case let .poll(id, flags, question, answers): - let publicity: TelegramMediaPollPublicity - if (flags & (1 << 1)) != 0 { - publicity = .public - } else { - publicity = .anonymous - } - let kind: TelegramMediaPollKind - if (flags & (1 << 3)) != 0 { - kind = .quiz - } else { - kind = .poll(multipleAnswers: (flags & (1 << 2)) != 0) - } - updatedPoll = TelegramMediaPoll(pollId: MediaId(namespace: Namespaces.Media.CloudPoll, id: id), publicity: publicity, kind: kind, text: question, options: answers.map(TelegramMediaPollOption.init(apiOption:)), correctAnswers: nil, results: TelegramMediaPollResults(apiResults: results), isClosed: (flags & (1 << 0)) != 0) - } - } - let resultsMin: Bool switch results { - case let .pollResults(pollResults): - resultsMin = (pollResults.flags & (1 << 0)) != 0 + case let .pollResults(pollResults): + resultsMin = (pollResults.flags & (1 << 0)) != 0 + } + if let apiPoll = apiPoll { + switch apiPoll { + case let .poll(id, flags, question, answers): + let publicity: TelegramMediaPollPublicity + if (flags & (1 << 1)) != 0 { + publicity = .public + } else { + publicity = .anonymous + } + let kind: TelegramMediaPollKind + if (flags & (1 << 3)) != 0 { + kind = .quiz + } else { + kind = .poll(multipleAnswers: (flags & (1 << 2)) != 0) + } + updatedPoll = TelegramMediaPoll(pollId: MediaId(namespace: Namespaces.Media.CloudPoll, id: id), publicity: publicity, kind: kind, text: question, options: answers.map(TelegramMediaPollOption.init(apiOption:)), correctAnswers: nil, results: poll.results, isClosed: (flags & (1 << 0)) != 0) + } } updatedPoll = updatedPoll.withUpdatedResults(TelegramMediaPollResults(apiResults: results), min: resultsMin) updateMessageMedia(transaction: transaction, id: pollId, media: updatedPoll) From 53bf42bffc03cfc0e95c5bcc2c6808b17d9df7ad Mon Sep 17 00:00:00 2001 From: Ali <> Date: Mon, 20 Jan 2020 22:04:48 +0400 Subject: [PATCH 50/63] Fix poll results cache consistency --- submodules/TelegramCore/Sources/Polls.swift | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/submodules/TelegramCore/Sources/Polls.swift b/submodules/TelegramCore/Sources/Polls.swift index 19aeb100ec..803323a618 100644 --- a/submodules/TelegramCore/Sources/Polls.swift +++ b/submodules/TelegramCore/Sources/Polls.swift @@ -196,7 +196,7 @@ private final class PollResultsOptionContext { self.count = count self.isLoadingMore = true - self.disposable.set((account.postbox.transaction { transaction -> [RenderedPeer]? in + self.disposable.set((account.postbox.transaction { transaction -> (peers: [RenderedPeer], canLoadMore: Bool)? in let cachedResult = transaction.retrieveItemCacheEntry(id: ItemCacheEntryId(collectionId: Namespaces.CachedItemCollection.cachedPollResults, key: CachedPollOptionResult.key(pollId: pollId, optionOpaqueIdentifier: opaqueIdentifier))) as? CachedPollOptionResult if let cachedResult = cachedResult, Int(cachedResult.count) == count { var result: [RenderedPeer] = [] @@ -207,19 +207,20 @@ private final class PollResultsOptionContext { return nil } } - return result + return (result, Int(cachedResult.count) > result.count) } else { return nil } } - |> deliverOn(self.queue)).start(next: { [weak self] cachedPeers in + |> deliverOn(self.queue)).start(next: { [weak self] cachedPeersAndCanLoadMore in guard let strongSelf = self else { return } strongSelf.isLoadingMore = false - if let cachedPeers = cachedPeers { + if let (cachedPeers, canLoadMore) = cachedPeersAndCanLoadMore { strongSelf.results = cachedPeers strongSelf.hasLoadedOnce = true + strongSelf.canLoadMore = canLoadMore } strongSelf.loadMore() })) From 1db4fbd241051cbe24d8ae413189f131670e0a19 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 21 Jan 2020 19:36:59 +0400 Subject: [PATCH 51/63] Upgrade message bubble graphics and introduce the ability to adjust corner radius via UI --- Telegram-iOS/en.lproj/Localizable.strings | 5 + .../Sources/AccountContext.swift | 4 +- submodules/Display/Display/ImageCorners.swift | 114 +- submodules/Display/Display/ImageNode.swift | 21 +- .../BubbleSettingsController.swift | 578 ++ .../ForwardPrivacyChatPreviewItem.swift | 6 +- .../SelectivePrivacySettingsController.swift | 12 +- .../TextSizeSelectionController.swift | 10 +- .../Sources/Themes/EditThemeController.swift | 16 +- .../Themes/ThemeAccentColorController.swift | 4 +- .../ThemeAccentColorControllerNode.swift | 7 +- .../Themes/ThemePreviewControllerNode.swift | 4 +- .../Themes/ThemeSettingsChatPreviewItem.swift | 6 +- .../Themes/ThemeSettingsController.swift | 57 +- .../Themes/ThemeSettingsFontSizeItem.swift | 14 +- .../Sources/Themes/WallpaperGalleryItem.swift | 4 +- .../Sources/ChatMessageBubbleImages.swift | 346 +- .../Sources/PresentationData.swift | 38 +- .../Sources/PresentationStrings.swift | 4724 +++++++++-------- .../Sources/PresentationTheme.swift | 4 + .../PresentationThemeEssentialGraphics.swift | 139 +- .../Sources/PresentationsResourceCache.swift | 19 + .../Resources/PresentationResourceKey.swift | 7 +- .../Resources/PresentationResourcesChat.swift | 13 +- .../TelegramUI/ChatHistoryGridNode.swift | 2 +- .../TelegramUI/ChatHistoryListNode.swift | 4 +- .../ChatMessageAnimatedStickerItemNode.swift | 2 +- .../TelegramUI/ChatMessageBackground.swift | 2 +- .../ChatMessageBubbleBackdrop.swift | 2 +- ...eBubbleContentCalclulateImageCorners.swift | 56 +- .../ChatMessageBubbleItemNode.swift | 6 +- .../ChatMessageDateAndStatusNode.swift | 2 +- .../TelegramUI/ChatMessageDateHeader.swift | 4 +- .../ChatMessageInstantVideoItemNode.swift | 2 +- .../ChatMessageInteractiveFileNode.swift | 2 +- .../TelegramUI/ChatMessageItemView.swift | 92 +- .../ChatMessageMapBubbleContentNode.swift | 4 +- .../ChatMessageMediaBubbleContentNode.swift | 6 +- .../ChatMessageStickerItemNode.swift | 2 +- .../TelegramUI/ChatPresentationData.swift | 4 +- .../ChatRecentActionsControllerNode.swift | 4 +- ...SendMessageActionSheetControllerNode.swift | 9 +- .../Resources/PresentationStrings.mapping | Bin 144339 -> 144517 bytes .../TelegramUI/SharedAccountContext.swift | 8 +- .../TelegramUI/ThemeUpdateManager.swift | 2 +- .../TelegramUI/WallpaperUploadManager.swift | 2 +- .../Sources/PresentationThemeSettings.swift | 56 +- 47 files changed, 3657 insertions(+), 2768 deletions(-) create mode 100644 submodules/SettingsUI/Sources/BubbleSettings/BubbleSettingsController.swift diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index 4af86fec1d..d7d634db54 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -5291,3 +5291,8 @@ Any member of this group will be able to see messages in the channel."; "Forward.ErrorPublicQuizDisabledInChannels" = "Sorry, public polls can’t be forwarded to channels."; "Map.PlacesInThisArea" = "Places In This Area"; + +"Appearance.BubbleCornersSetting" = "Message Corners"; +"Appearance.BubbleCorners.Title" = "Message Corners"; +"Appearance.BubbleCorners.AdjustAdjacent" = "Adjust Adjacent Corners"; +"Appearance.BubbleCorners.Apply" = "Set"; diff --git a/submodules/AccountContext/Sources/AccountContext.swift b/submodules/AccountContext/Sources/AccountContext.swift index 063be71577..620bf03962 100644 --- a/submodules/AccountContext/Sources/AccountContext.swift +++ b/submodules/AccountContext/Sources/AccountContext.swift @@ -446,8 +446,8 @@ public protocol SharedAccountContext: class { func makeComposeController(context: AccountContext) -> ViewController func makeChatListController(context: AccountContext, groupId: PeerGroupId, controlsHistoryPreload: Bool, hideNetworkActivityStatus: Bool, previewing: Bool, enableDebugActions: Bool) -> ChatListController func makeChatController(context: AccountContext, chatLocation: ChatLocation, subject: ChatControllerSubject?, botStart: ChatControllerInitialBotStart?, mode: ChatControllerPresentationMode) -> ChatController - func makeChatMessagePreviewItem(context: AccountContext, message: Message, theme: PresentationTheme, strings: PresentationStrings, wallpaper: TelegramWallpaper, fontSize: PresentationFontSize, dateTimeFormat: PresentationDateTimeFormat, nameOrder: PresentationPersonNameOrder, forcedResourceStatus: FileMediaResourceStatus?, tapMessage: ((Message) -> Void)?, clickThroughMessage: (() -> Void)?) -> ListViewItem - func makeChatMessageDateHeaderItem(context: AccountContext, timestamp: Int32, theme: PresentationTheme, strings: PresentationStrings, wallpaper: TelegramWallpaper, fontSize: PresentationFontSize, dateTimeFormat: PresentationDateTimeFormat, nameOrder: PresentationPersonNameOrder) -> ListViewItemHeader + func makeChatMessagePreviewItem(context: AccountContext, message: Message, theme: PresentationTheme, strings: PresentationStrings, wallpaper: TelegramWallpaper, fontSize: PresentationFontSize, chatBubbleCorners: PresentationChatBubbleCorners, dateTimeFormat: PresentationDateTimeFormat, nameOrder: PresentationPersonNameOrder, forcedResourceStatus: FileMediaResourceStatus?, tapMessage: ((Message) -> Void)?, clickThroughMessage: (() -> Void)?) -> ListViewItem + func makeChatMessageDateHeaderItem(context: AccountContext, timestamp: Int32, theme: PresentationTheme, strings: PresentationStrings, wallpaper: TelegramWallpaper, fontSize: PresentationFontSize, chatBubbleCorners: PresentationChatBubbleCorners, dateTimeFormat: PresentationDateTimeFormat, nameOrder: PresentationPersonNameOrder) -> ListViewItemHeader func makePeerSharedMediaController(context: AccountContext, peerId: PeerId) -> ViewController? func makeContactSelectionController(_ params: ContactSelectionControllerParams) -> ContactSelectionController func makeContactMultiselectionController(_ params: ContactMultiselectionControllerParams) -> ContactMultiselectionController diff --git a/submodules/Display/Display/ImageCorners.swift b/submodules/Display/Display/ImageCorners.swift index ce45a9565a..6930a5bcf4 100644 --- a/submodules/Display/Display/ImageCorners.swift +++ b/submodules/Display/Display/ImageCorners.swift @@ -109,7 +109,6 @@ private func ==(lhs: Tail, rhs: Tail) -> Bool { } private var cachedCorners = Atomic<[Corner: DrawingContext]>(value: [:]) -private var cachedTails = Atomic<[Tail: DrawingContext]>(value: [:]) private func cornerContext(_ corner: Corner) -> DrawingContext { let cached: DrawingContext? = cachedCorners.with { @@ -148,62 +147,6 @@ private func cornerContext(_ corner: Corner) -> DrawingContext { } } -private func tailContext(_ tail: Tail) -> DrawingContext { - let cached: DrawingContext? = cachedTails.with { - return $0[tail] - } - - if let cached = cached { - return cached - } else { - let context = DrawingContext(size: CGSize(width: CGFloat(tail.radius) + 3.0, height: CGFloat(tail.radius)), clear: true) - - context.withContext { c in - c.setBlendMode(.copy) - c.setFillColor(UIColor.black.cgColor) - let rect: CGRect - switch tail { - case let .BottomLeft(radius): - rect = CGRect(origin: CGPoint(x: 3.0, y: -CGFloat(radius)), size: CGSize(width: CGFloat(radius << 1), height: CGFloat(radius << 1))) - - c.move(to: CGPoint(x: 3.0, y: 1.0)) - c.addLine(to: CGPoint(x: 3.0, y: 11.0)) - c.addLine(to: CGPoint(x: 2.3, y: 13.0)) - c.addLine(to: CGPoint(x: 0.0, y: 16.6)) - c.addLine(to: CGPoint(x: 4.5, y: 15.5)) - c.addLine(to: CGPoint(x: 6.5, y: 14.3)) - c.addLine(to: CGPoint(x: 9.0, y: 12.5)) - c.closePath() - c.fillPath() - case let .BottomRight(radius): - rect = CGRect(origin: CGPoint(x: 3.0, y: -CGFloat(radius)), size: CGSize(width: CGFloat(radius << 1), height: CGFloat(radius << 1))) - - c.translateBy(x: context.size.width / 2.0, y: context.size.height / 2.0) - c.scaleBy(x: -1.0, y: 1.0) - c.translateBy(x: -context.size.width / 2.0, y: -context.size.height / 2.0) - - c.move(to: CGPoint(x: 3.0, y: 1.0)) - c.addLine(to: CGPoint(x: 3.0, y: 11.0)) - c.addLine(to: CGPoint(x: 2.3, y: 13.0)) - c.addLine(to: CGPoint(x: 0.0, y: 16.6)) - c.addLine(to: CGPoint(x: 4.5, y: 15.5)) - c.addLine(to: CGPoint(x: 6.5, y: 14.3)) - c.addLine(to: CGPoint(x: 9.0, y: 12.5)) - c.closePath() - c.fillPath() - } - c.fillEllipse(in: rect) - } - - let _ = cachedTails.modify { current in - var current = current - current[tail] = context - return current - } - return context - } -} - public func addCorners(_ context: DrawingContext, arguments: TransformImageArguments) { let corners = arguments.corners let drawingRect = arguments.drawingRect @@ -223,23 +166,24 @@ public func addCorners(_ context: DrawingContext, arguments: TransformImageArgum let corner = cornerContext(.BottomLeft(Int(radius))) context.blt(corner, at: CGPoint(x: drawingRect.minX, y: drawingRect.maxY - radius)) } - case let .Tail(radius, enabled): + case let .Tail(radius, image): if radius > CGFloat.ulpOfOne { - if enabled { - let tail = tailContext(.BottomLeft(Int(radius))) - let color = context.colorAt(CGPoint(x: drawingRect.minX, y: drawingRect.maxY - 1.0)) - context.withContext { c in - c.clear(CGRect(x: drawingRect.minX - 3.0, y: 0.0, width: 3.0, height: drawingRect.maxY - 6.0)) - c.setFillColor(color.cgColor) - c.fill(CGRect(x: 0.0, y: drawingRect.maxY - 6.0, width: 3.0, height: 6.0)) - } - context.blt(tail, at: CGPoint(x: drawingRect.minX - 3.0, y: drawingRect.maxY - radius)) - } else { - let corner = cornerContext(.BottomLeft(Int(radius))) - context.blt(corner, at: CGPoint(x: drawingRect.minX, y: drawingRect.maxY - radius)) + let color = context.colorAt(CGPoint(x: drawingRect.minX, y: drawingRect.maxY - 1.0)) + context.withContext { c in + c.clear(CGRect(x: drawingRect.minX - 4.0, y: 0.0, width: 4.0, height: drawingRect.maxY - 6.0)) + c.setFillColor(color.cgColor) + c.fill(CGRect(x: 0.0, y: drawingRect.maxY - 6.0, width: 4.0, height: 6.0)) + c.setBlendMode(.destinationIn) + let cornerRect = CGRect(origin: CGPoint(x: drawingRect.minX - 6.0, y: drawingRect.maxY - image.size.height), size: image.size) + c.translateBy(x: cornerRect.midX, y: cornerRect.midY) + c.scaleBy(x: 1.0, y: -1.0) + c.translateBy(x: -cornerRect.midX, y: -cornerRect.midY) + c.draw(image.cgImage!, in: cornerRect) + c.translateBy(x: cornerRect.midX, y: cornerRect.midY) + c.scaleBy(x: 1.0, y: -1.0) + c.translateBy(x: -cornerRect.midX, y: -cornerRect.midY) } } - } switch corners.bottomRight { @@ -248,20 +192,22 @@ public func addCorners(_ context: DrawingContext, arguments: TransformImageArgum let corner = cornerContext(.BottomRight(Int(radius))) context.blt(corner, at: CGPoint(x: drawingRect.maxX - radius, y: drawingRect.maxY - radius)) } - case let .Tail(radius, enabled): + case let .Tail(radius, image): if radius > CGFloat.ulpOfOne { - if enabled { - let tail = tailContext(.BottomRight(Int(radius))) - let color = context.colorAt(CGPoint(x: drawingRect.maxX - 1.0, y: drawingRect.maxY - 1.0)) - context.withContext { c in - c.clear(CGRect(x: drawingRect.maxX, y: 0.0, width: 3.0, height: drawingRect.maxY - 6.0)) - c.setFillColor(color.cgColor) - c.fill(CGRect(x: drawingRect.maxX, y: drawingRect.maxY - 6.0, width: 3.0, height: 6.0)) - } - context.blt(tail, at: CGPoint(x: drawingRect.maxX - radius, y: drawingRect.maxY - radius)) - } else { - let corner = cornerContext(.BottomRight(Int(radius))) - context.blt(corner, at: CGPoint(x: drawingRect.maxX - radius, y: drawingRect.maxY - radius)) + let color = context.colorAt(CGPoint(x: drawingRect.maxX - 1.0, y: drawingRect.maxY - 1.0)) + context.withContext { c in + c.clear(CGRect(x: drawingRect.maxX, y: 0.0, width: 4.0, height: drawingRect.maxY - image.size.height)) + c.setFillColor(color.cgColor) + c.fill(CGRect(x: drawingRect.maxX, y: drawingRect.maxY - 6.0, width: 4.0, height: 6.0)) + c.setBlendMode(.destinationIn) + let cornerRect = CGRect(origin: CGPoint(x: drawingRect.maxX - image.size.width + 6.0, y: drawingRect.maxY - image.size.height), size: image.size) + c.translateBy(x: cornerRect.midX, y: cornerRect.midY) + c.scaleBy(x: 1.0, y: -1.0) + c.translateBy(x: -cornerRect.midX, y: -cornerRect.midY) + c.draw(image.cgImage!, in: cornerRect) + c.translateBy(x: cornerRect.midX, y: cornerRect.midY) + c.scaleBy(x: 1.0, y: -1.0) + c.translateBy(x: -cornerRect.midX, y: -cornerRect.midY) } } } diff --git a/submodules/Display/Display/ImageNode.swift b/submodules/Display/Display/ImageNode.swift index 99192e4895..87422abbc6 100644 --- a/submodules/Display/Display/ImageNode.swift +++ b/submodules/Display/Display/ImageNode.swift @@ -8,12 +8,12 @@ private let dispatcher = displayLinkDispatcher public enum ImageCorner: Equatable { case Corner(CGFloat) - case Tail(CGFloat, Bool) + case Tail(CGFloat, UIImage) public var extendedInsets: CGSize { switch self { case .Tail: - return CGSize(width: 3.0, height: 0.0) + return CGSize(width: 4.0, height: 0.0) default: return CGSize() } @@ -36,15 +36,6 @@ public enum ImageCorner: Equatable { return radius } } - - public func scaledBy(_ scale: CGFloat) -> ImageCorner { - switch self { - case let .Corner(radius): - return .Corner(radius * scale) - case let .Tail(radius, enabled): - return .Tail(radius * scale, enabled) - } - } } public func ==(lhs: ImageCorner, rhs: ImageCorner) -> Bool { @@ -56,8 +47,8 @@ public func ==(lhs: ImageCorner, rhs: ImageCorner) -> Bool { default: return false } - case let .Tail(lhsRadius, lhsEnabled): - if case let .Tail(rhsRadius, rhsEnabled) = rhs, lhsRadius.isEqual(to: rhsRadius), lhsEnabled == rhsEnabled { + case let .Tail(lhsRadius, lhsImage): + if case let .Tail(rhsRadius, rhsImage) = rhs, lhsRadius.isEqual(to: rhsRadius), lhsImage === rhsImage { return true } else { return false @@ -124,10 +115,6 @@ public struct ImageCorners: Equatable { public func withRemovedTails() -> ImageCorners { return ImageCorners(topLeft: self.topLeft.withoutTail, topRight: self.topRight.withoutTail, bottomLeft: self.bottomLeft.withoutTail, bottomRight: self.bottomRight.withoutTail) } - - public func scaledBy(_ scale: CGFloat) -> ImageCorners { - return ImageCorners(topLeft: self.topLeft.scaledBy(scale), topRight: self.topRight.scaledBy(scale), bottomLeft: self.bottomLeft.scaledBy(scale), bottomRight: self.bottomRight.scaledBy(scale)) - } } public func ==(lhs: ImageCorners, rhs: ImageCorners) -> Bool { diff --git a/submodules/SettingsUI/Sources/BubbleSettings/BubbleSettingsController.swift b/submodules/SettingsUI/Sources/BubbleSettings/BubbleSettingsController.swift new file mode 100644 index 0000000000..769aa9f3c5 --- /dev/null +++ b/submodules/SettingsUI/Sources/BubbleSettings/BubbleSettingsController.swift @@ -0,0 +1,578 @@ +import Foundation +import UIKit +import Display +import Postbox +import SwiftSignalKit +import AsyncDisplayKit +import TelegramCore +import SyncCore +import TelegramPresentationData +import TelegramUIPreferences +import AccountContext +import ChatListUI +import WallpaperResources +import LegacyComponents +import ItemListUI + +private func generateMaskImage(color: UIColor) -> UIImage? { + return generateImage(CGSize(width: 1.0, height: 80.0), opaque: false, rotatedContext: { size, context in + let bounds = CGRect(origin: CGPoint(), size: size) + context.clear(bounds) + + let gradientColors = [color.withAlphaComponent(0.0).cgColor, color.cgColor, color.cgColor] as CFArray + + var locations: [CGFloat] = [0.0, 0.75, 1.0] + let colorSpace = CGColorSpaceCreateDeviceRGB() + let gradient = CGGradient(colorsSpace: colorSpace, colors: gradientColors, locations: &locations)! + + context.drawLinearGradient(gradient, start: CGPoint(x: 0.0, y: 0.0), end: CGPoint(x: 0.0, y: 80.0), options: CGGradientDrawingOptions()) + }) +} + +private final class BubbleSettingsControllerNode: ASDisplayNode, UIScrollViewDelegate { + private let context: AccountContext + private var presentationThemeSettings: PresentationThemeSettings + private var presentationData: PresentationData + + private let referenceTimestamp: Int32 + + private let scrollNode: ASScrollNode + + private let maskNode: ASImageNode + private let chatBackgroundNode: WallpaperBackgroundNode + private let messagesContainerNode: ASDisplayNode + private var dateHeaderNode: ListViewItemHeaderNode? + private var messageNodes: [ListViewItemNode]? + private let toolbarNode: BubbleSettingsToolbarNode + + private var validLayout: (ContainerViewLayout, CGFloat)? + + init(context: AccountContext, presentationThemeSettings: PresentationThemeSettings, dismiss: @escaping () -> Void, apply: @escaping (PresentationChatBubbleSettings) -> Void) { + self.context = context + + self.presentationData = context.sharedContext.currentPresentationData.with { $0 } + self.presentationThemeSettings = presentationThemeSettings + + let calendar = Calendar(identifier: .gregorian) + var components = calendar.dateComponents(Set([.era, .year, .month, .day, .hour, .minute, .second]), from: Date()) + components.hour = 13 + components.minute = 0 + components.second = 0 + self.referenceTimestamp = Int32(calendar.date(from: components)?.timeIntervalSince1970 ?? 0.0) + + self.scrollNode = ASScrollNode() + + self.chatBackgroundNode = WallpaperBackgroundNode() + self.chatBackgroundNode.displaysAsynchronously = false + + self.messagesContainerNode = ASDisplayNode() + self.messagesContainerNode.clipsToBounds = true + self.messagesContainerNode.transform = CATransform3DMakeScale(1.0, -1.0, 1.0) + + self.chatBackgroundNode.image = chatControllerBackgroundImage(theme: self.presentationData.theme, wallpaper: self.presentationData.chatWallpaper, mediaBox: context.sharedContext.accountManager.mediaBox, knockoutMode: false) + self.chatBackgroundNode.motionEnabled = self.presentationData.chatWallpaper.settings?.motion ?? false + if case .gradient = self.presentationData.chatWallpaper { + self.chatBackgroundNode.imageContentMode = .scaleToFill + } + + self.toolbarNode = BubbleSettingsToolbarNode(presentationThemeSettings: self.presentationThemeSettings, presentationData: self.presentationData) + + self.maskNode = ASImageNode() + self.maskNode.displaysAsynchronously = false + self.maskNode.displayWithoutProcessing = true + self.maskNode.contentMode = .scaleToFill + + + super.init() + + self.setViewBlock({ + return UITracingLayerView() + }) + + self.backgroundColor = self.presentationData.theme.list.plainBackgroundColor + + self.maskNode.image = generateMaskImage(color: self.presentationData.theme.chatList.backgroundColor) + + self.addSubnode(self.scrollNode) + self.addSubnode(self.toolbarNode) + + self.scrollNode.addSubnode(self.chatBackgroundNode) + self.scrollNode.addSubnode(self.messagesContainerNode) + + self.toolbarNode.cancel = { + dismiss() + } + var dismissed = false + self.toolbarNode.done = { [weak self] in + guard let strongSelf = self else { + return + } + if !dismissed { + dismissed = true + apply(strongSelf.presentationThemeSettings.chatBubbleSettings) + } + } + self.toolbarNode.updateMergeBubbleCorners = { [weak self] value in + guard let strongSelf = self else { + return + } + strongSelf.presentationThemeSettings.chatBubbleSettings.mergeBubbleCorners = value + strongSelf.updatePresentationThemeSettings(strongSelf.presentationThemeSettings) + } + self.toolbarNode.updateCornerRadius = { [weak self] value in + guard let strongSelf = self else { + return + } + strongSelf.presentationThemeSettings.chatBubbleSettings.mainRadius = Int32(value) + strongSelf.presentationThemeSettings.chatBubbleSettings.auxiliaryRadius = Int32(value / 2) + strongSelf.updatePresentationThemeSettings(strongSelf.presentationThemeSettings) + } + } + + override func didLoad() { + super.didLoad() + + self.scrollNode.view.disablesInteractiveTransitionGestureRecognizer = true + self.scrollNode.view.showsHorizontalScrollIndicator = false + self.scrollNode.view.isPagingEnabled = true + self.scrollNode.view.delegate = self + self.scrollNode.view.alwaysBounceHorizontal = false + } + + func scrollViewDidScroll(_ scrollView: UIScrollView) { + } + + func animateIn(completion: (() -> Void)? = nil) { + if let (layout, _) = self.validLayout, case .compact = layout.metrics.widthClass { + self.layer.animatePosition(from: CGPoint(x: self.layer.position.x, y: self.layer.position.y + self.layer.bounds.size.height), to: self.layer.position, duration: 0.5, timingFunction: kCAMediaTimingFunctionSpring) + } + } + + func animateOut(completion: (() -> Void)? = nil) { + if let (layout, _) = self.validLayout, case .compact = layout.metrics.widthClass { + self.layer.animatePosition(from: self.layer.position, to: CGPoint(x: self.layer.position.x, y: self.layer.position.y + self.layer.bounds.size.height), duration: 0.2, timingFunction: CAMediaTimingFunctionName.easeInEaseOut.rawValue, removeOnCompletion: false, completion: { _ in + completion?() + }) + } else { + completion?() + } + } + + private func updateMessagesLayout(layout: ContainerViewLayout, bottomInset: CGFloat, transition: ContainedViewLayoutTransition) { + let headerItem = self.context.sharedContext.makeChatMessageDateHeaderItem(context: self.context, timestamp: self.referenceTimestamp, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder) + + var items: [ListViewItem] = [] + let peerId = PeerId(namespace: Namespaces.Peer.CloudUser, id: 1) + let otherPeerId = self.context.account.peerId + var peers = SimpleDictionary() + var messages = SimpleDictionary() + peers[peerId] = TelegramUser(id: peerId, accessHash: nil, firstName: self.presentationData.strings.Appearance_ThemePreview_Chat_2_ReplyName, lastName: "", username: nil, phone: nil, photo: [], botInfo: nil, restrictionInfo: nil, flags: []) + peers[otherPeerId] = TelegramUser(id: otherPeerId, accessHash: nil, firstName: self.presentationData.strings.Appearance_ThemePreview_Chat_2_ReplyName, lastName: "", username: nil, phone: nil, photo: [], botInfo: nil, restrictionInfo: nil, flags: []) + + let replyMessageId = MessageId(peerId: peerId, namespace: 0, id: 3) + messages[replyMessageId] = Message(stableId: 3, stableVersion: 0, id: replyMessageId, globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66000, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: peers[otherPeerId], text: self.presentationData.strings.Appearance_ThemePreview_Chat_1_Text, attributes: [], media: [], peers: peers, associatedMessages: SimpleDictionary(), associatedMessageIds: []) + + let message1 = Message(stableId: 4, stableVersion: 0, id: MessageId(peerId: otherPeerId, namespace: 0, id: 4), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66003, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: peers[otherPeerId], text: self.presentationData.strings.Appearance_ThemePreview_Chat_3_Text, attributes: [], media: [], peers: peers, associatedMessages: messages, associatedMessageIds: []) + items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message1, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) + + let message2 = Message(stableId: 3, stableVersion: 0, id: MessageId(peerId: peerId, namespace: 0, id: 3), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66002, flags: [.Incoming], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: peers[peerId], text: self.presentationData.strings.Appearance_ThemePreview_Chat_2_Text, attributes: [ReplyMessageAttribute(messageId: replyMessageId)], media: [], peers: peers, associatedMessages: messages, associatedMessageIds: []) + items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message2, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) + + let waveformBase64 = "DAAOAAkACQAGAAwADwAMABAADQAPABsAGAALAA0AGAAfABoAHgATABgAGQAYABQADAAVABEAHwANAA0ACQAWABkACQAOAAwACQAfAAAAGQAVAAAAEwATAAAACAAfAAAAHAAAABwAHwAAABcAGQAAABQADgAAABQAHwAAAB8AHwAAAAwADwAAAB8AEwAAABoAFwAAAB8AFAAAAAAAHwAAAAAAHgAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAAAA=" + let voiceAttributes: [TelegramMediaFileAttribute] = [.Audio(isVoice: true, duration: 23, title: nil, performer: nil, waveform: MemoryBuffer(data: Data(base64Encoded: waveformBase64)!))] + let voiceMedia = TelegramMediaFile(fileId: MediaId(namespace: 0, id: 0), partialReference: nil, resource: LocalFileMediaResource(fileId: 0), previewRepresentations: [], immediateThumbnailData: nil, mimeType: "audio/ogg", size: 0, attributes: voiceAttributes) + + let message3 = Message(stableId: 1, stableVersion: 0, id: MessageId(peerId: peerId, namespace: 0, id: 1), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66001, flags: [.Incoming], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: peers[peerId], text: "", attributes: [], media: [voiceMedia], peers: peers, associatedMessages: messages, associatedMessageIds: []) + items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message3, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: FileMediaResourceStatus(mediaStatus: .playbackStatus(.paused), fetchStatus: .Local), tapMessage: nil, clickThroughMessage: nil)) + + let message4 = Message(stableId: 2, stableVersion: 0, id: MessageId(peerId: otherPeerId, namespace: 0, id: 2), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66001, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: peers[otherPeerId], text: self.presentationData.strings.Appearance_ThemePreview_Chat_1_Text, attributes: [], media: [], peers: peers, associatedMessages: messages, associatedMessageIds: []) + items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message4, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) + + let width: CGFloat + if case .regular = layout.metrics.widthClass { + width = layout.size.width / 2.0 + } else { + width = layout.size.width + } + + let params = ListViewItemLayoutParams(width: width, leftInset: layout.safeInsets.left, rightInset: layout.safeInsets.right, availableHeight: layout.size.height) + if let messageNodes = self.messageNodes { + for i in 0 ..< items.count { + let itemNode = messageNodes[i] + items[i].updateNode(async: { $0() }, node: { + return itemNode + }, params: params, previousItem: i == 0 ? nil : items[i - 1], nextItem: i == (items.count - 1) ? nil : items[i + 1], animation: .None, completion: { (layout, apply) in + let nodeFrame = CGRect(origin: itemNode.frame.origin, size: CGSize(width: width, height: layout.size.height)) + + itemNode.contentSize = layout.contentSize + itemNode.insets = layout.insets + itemNode.frame = nodeFrame + itemNode.isUserInteractionEnabled = false + + apply(ListViewItemApply(isOnScreen: true)) + }) + } + } else { + var messageNodes: [ListViewItemNode] = [] + for i in 0 ..< items.count { + var itemNode: ListViewItemNode? + items[i].nodeConfiguredForParams(async: { $0() }, params: params, synchronousLoads: false, previousItem: i == 0 ? nil : items[i - 1], nextItem: i == (items.count - 1) ? nil : items[i + 1], completion: { node, apply in + itemNode = node + apply().1(ListViewItemApply(isOnScreen: true)) + }) + itemNode!.subnodeTransform = CATransform3DMakeScale(-1.0, 1.0, 1.0) + itemNode!.isUserInteractionEnabled = false + messageNodes.append(itemNode!) + self.messagesContainerNode.addSubnode(itemNode!) + } + self.messageNodes = messageNodes + } + + var bottomOffset: CGFloat = 9.0 + bottomInset + if let messageNodes = self.messageNodes { + for itemNode in messageNodes { + transition.updateFrame(node: itemNode, frame: CGRect(origin: CGPoint(x: 0.0, y: bottomOffset), size: itemNode.frame.size)) + bottomOffset += itemNode.frame.height + itemNode.updateFrame(itemNode.frame, within: layout.size) + } + } + + let dateHeaderNode: ListViewItemHeaderNode + if let currentDateHeaderNode = self.dateHeaderNode { + dateHeaderNode = currentDateHeaderNode + headerItem.updateNode(dateHeaderNode, previous: nil, next: headerItem) + } else { + dateHeaderNode = headerItem.node() + dateHeaderNode.subnodeTransform = CATransform3DMakeScale(-1.0, 1.0, 1.0) + self.messagesContainerNode.addSubnode(dateHeaderNode) + self.dateHeaderNode = dateHeaderNode + } + + transition.updateFrame(node: dateHeaderNode, frame: CGRect(origin: CGPoint(x: 0.0, y: bottomOffset), size: CGSize(width: layout.size.width, height: headerItem.height))) + dateHeaderNode.updateLayout(size: self.messagesContainerNode.frame.size, leftInset: layout.safeInsets.left, rightInset: layout.safeInsets.right) + } + + func updatePresentationThemeSettings(_ presentationThemeSettings: PresentationThemeSettings) { + let chatBubbleCorners = PresentationChatBubbleCorners(mainRadius: CGFloat(presentationThemeSettings.chatBubbleSettings.mainRadius), auxiliaryRadius: CGFloat(presentationThemeSettings.chatBubbleSettings.auxiliaryRadius), mergeBubbleCorners: presentationThemeSettings.chatBubbleSettings.mergeBubbleCorners) + + self.presentationData = self.presentationData.withChatBubbleCorners(chatBubbleCorners) + self.toolbarNode.updatePresentationData(presentationData: self.presentationData) + self.toolbarNode.updatePresentationThemeSettings(presentationThemeSettings: self.presentationThemeSettings) + if let (layout, navigationBarHeight) = self.validLayout { + self.containerLayoutUpdated(layout, navigationBarHeight: navigationBarHeight, transition: .immediate) + self.recursivelyEnsureDisplaySynchronously(true) + } + } + + func containerLayoutUpdated(_ layout: ContainerViewLayout, navigationBarHeight: CGFloat, transition: ContainedViewLayoutTransition) { + self.validLayout = (layout, navigationBarHeight) + + let bounds = CGRect(origin: CGPoint(), size: layout.size) + self.scrollNode.frame = bounds + + let toolbarHeight = self.toolbarNode.updateLayout(width: layout.size.width, bottomInset: layout.intrinsicInsets.bottom, layout: layout, transition: transition) + + var chatFrame = CGRect(x: 0.0, y: 0.0, width: bounds.width, height: bounds.height) + + let bottomInset: CGFloat + chatFrame = CGRect(x: 0.0, y: 0.0, width: bounds.width, height: bounds.height) + self.scrollNode.view.contentSize = CGSize(width: bounds.width, height: bounds.height) + + bottomInset = 37.0 + + self.chatBackgroundNode.frame = chatFrame + self.chatBackgroundNode.updateLayout(size: chatFrame.size, transition: transition) + self.messagesContainerNode.frame = chatFrame + + transition.updateFrame(node: self.toolbarNode, frame: CGRect(origin: CGPoint(x: 0.0, y: layout.size.height - toolbarHeight), size: CGSize(width: layout.size.width, height: toolbarHeight + layout.intrinsicInsets.bottom))) + + self.updateMessagesLayout(layout: layout, bottomInset: toolbarHeight + bottomInset, transition: transition) + + transition.updateFrame(node: self.maskNode, frame: CGRect(x: 0.0, y: layout.size.height - toolbarHeight - 80.0, width: bounds.width, height: 80.0)) + } +} + +final class BubbleSettingsController: ViewController { + private let context: AccountContext + + private var controllerNode: BubbleSettingsControllerNode { + return self.displayNode as! BubbleSettingsControllerNode + } + + private var didPlayPresentationAnimation = false + + private var presentationData: PresentationData + private var presentationDataDisposable: Disposable? + + private var presentationThemeSettings: PresentationThemeSettings + private var presentationThemeSettingsDisposable: Disposable? + + private var disposable: Disposable? + private var applyDisposable = MetaDisposable() + + public init(context: AccountContext, presentationThemeSettings: PresentationThemeSettings) { + self.context = context + + self.presentationData = context.sharedContext.currentPresentationData.with { $0 } + self.presentationThemeSettings = presentationThemeSettings + + super.init(navigationBarPresentationData: NavigationBarPresentationData(presentationTheme: self.presentationData.theme, presentationStrings: self.presentationData.strings)) + + self.blocksBackgroundWhenInOverlay = true + self.navigationPresentation = .modal + + self.navigationItem.title = self.presentationData.strings.Appearance_BubbleCorners_Title + self.navigationItem.leftBarButtonItem = UIBarButtonItem(customView: UIView()) + + self.statusBar.statusBarStyle = self.presentationData.theme.rootController.statusBarStyle.style + self.supportedOrientations = ViewControllerSupportedOrientations(regularSize: .all, compactSize: .portrait) + + self.presentationDataDisposable = (context.sharedContext.presentationData + |> deliverOnMainQueue).start(next: { [weak self] presentationData in + if let strongSelf = self { + strongSelf.presentationData = presentationData + } + }) + } + + required public init(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + deinit { + self.presentationDataDisposable?.dispose() + self.presentationThemeSettingsDisposable?.dispose() + self.disposable?.dispose() + self.applyDisposable.dispose() + } + + override public func viewDidAppear(_ animated: Bool) { + super.viewDidAppear(animated) + + if let presentationArguments = self.presentationArguments as? ViewControllerPresentationArguments, !self.didPlayPresentationAnimation { + self.didPlayPresentationAnimation = true + if case .modalSheet = presentationArguments.presentationAnimation { + self.controllerNode.animateIn() + } + } + } + + override public func loadDisplayNode() { + super.loadDisplayNode() + + self.displayNode = BubbleSettingsControllerNode(context: self.context, presentationThemeSettings: self.presentationThemeSettings, dismiss: { [weak self] in + if let strongSelf = self { + strongSelf.dismiss() + } + }, apply: { [weak self] chatBubbleSettings in + if let strongSelf = self { + strongSelf.apply(chatBubbleSettings: chatBubbleSettings) + } + }) + self.displayNodeDidLoad() + } + + private func apply(chatBubbleSettings: PresentationChatBubbleSettings) { + let _ = (updatePresentationThemeSettingsInteractively(accountManager: self.context.sharedContext.accountManager, { current in + var current = current + current.chatBubbleSettings = chatBubbleSettings + return current + }) + |> deliverOnMainQueue).start(completed: { [weak self] in + self?.dismiss() + }) + } + + override public func containerLayoutUpdated(_ layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) { + super.containerLayoutUpdated(layout, transition: transition) + + self.controllerNode.containerLayoutUpdated(layout, navigationBarHeight: self.navigationHeight, transition: transition) + } +} + +private enum TextSelectionCustomMode { + case list + case chat +} + +private final class BubbleSettingsToolbarNode: ASDisplayNode { + private var presentationThemeSettings: PresentationThemeSettings + private var presentationData: PresentationData + + private let cancelButton = HighlightableButtonNode() + private let doneButton = HighlightableButtonNode() + private let separatorNode = ASDisplayNode() + private let topSeparatorNode = ASDisplayNode() + + private var switchItemNode: ItemListSwitchItemNode + private var cornerRadiusItemNode: ThemeSettingsFontSizeItemNode + + private(set) var customMode: TextSelectionCustomMode = .chat + + var cancel: (() -> Void)? + var done: (() -> Void)? + + var updateMergeBubbleCorners: ((Bool) -> Void)? + var updateCornerRadius: ((Int32) -> Void)? + + init(presentationThemeSettings: PresentationThemeSettings, presentationData: PresentationData) { + self.presentationThemeSettings = presentationThemeSettings + self.presentationData = presentationData + + self.switchItemNode = ItemListSwitchItemNode(type: .regular) + self.cornerRadiusItemNode = ThemeSettingsFontSizeItemNode() + + super.init() + + self.addSubnode(self.switchItemNode) + self.addSubnode(self.cornerRadiusItemNode) + self.addSubnode(self.cancelButton) + self.addSubnode(self.doneButton) + self.addSubnode(self.separatorNode) + self.addSubnode(self.topSeparatorNode) + + self.updatePresentationData(presentationData: self.presentationData) + + self.cancelButton.highligthedChanged = { [weak self] highlighted in + if let strongSelf = self { + if highlighted { + strongSelf.cancelButton.backgroundColor = strongSelf.presentationData.theme.list.itemHighlightedBackgroundColor + } else { + UIView.animate(withDuration: 0.3, animations: { + strongSelf.cancelButton.backgroundColor = .clear + }) + } + } + } + + self.doneButton.highligthedChanged = { [weak self] highlighted in + if let strongSelf = self { + if highlighted { + strongSelf.doneButton.backgroundColor = strongSelf.presentationData.theme.list.itemHighlightedBackgroundColor + } else { + UIView.animate(withDuration: 0.3, animations: { + strongSelf.doneButton.backgroundColor = .clear + }) + } + } + } + + self.cancelButton.addTarget(self, action: #selector(self.cancelPressed), forControlEvents: .touchUpInside) + self.doneButton.addTarget(self, action: #selector(self.donePressed), forControlEvents: .touchUpInside) + } + + func setDoneEnabled(_ enabled: Bool) { + self.doneButton.alpha = enabled ? 1.0 : 0.4 + self.doneButton.isUserInteractionEnabled = enabled + } + + func setCustomMode(_ customMode: TextSelectionCustomMode) { + self.customMode = customMode + } + + func updatePresentationData(presentationData: PresentationData) { + self.backgroundColor = presentationData.theme.rootController.tabBar.backgroundColor + self.separatorNode.backgroundColor = presentationData.theme.rootController.tabBar.separatorColor + self.topSeparatorNode.backgroundColor = presentationData.theme.rootController.tabBar.separatorColor + + self.cancelButton.setTitle(presentationData.strings.Common_Cancel, with: Font.regular(17.0), with: presentationData.theme.list.itemPrimaryTextColor, for: []) + self.doneButton.setTitle(presentationData.strings.Wallpaper_Set, with: Font.regular(17.0), with: presentationData.theme.list.itemPrimaryTextColor, for: []) + } + + func updatePresentationThemeSettings(presentationThemeSettings: PresentationThemeSettings) { + self.presentationThemeSettings = presentationThemeSettings + } + + func updateLayout(width: CGFloat, bottomInset: CGFloat, layout: ContainerViewLayout, transition: ContainedViewLayoutTransition) -> CGFloat { + var contentHeight: CGFloat = 0.0 + + let switchItem = ItemListSwitchItem(presentationData: ItemListPresentationData(self.presentationData), title: self.presentationData.strings.Appearance_BubbleCorners_AdjustAdjacent, value: self.presentationThemeSettings.chatBubbleSettings.mergeBubbleCorners, disableLeadingInset: true, sectionId: 0, style: .blocks, updated: { [weak self] value in + self?.updateMergeBubbleCorners?(value) + }) + let fontSize: PresentationFontSize + switch Int(self.presentationData.chatBubbleCorners.mainRadius) { + case 4: + fontSize = .extraSmall + case 6: + fontSize = .small + case 8: + fontSize = .medium + case 10: + fontSize = .regular + case 12: + fontSize = .large + case 14: + fontSize = .extraLarge + case 16: + fontSize = .extraLargeX2 + default: + fontSize = .extraLargeX2 + } + let cornerRadiusItem = ThemeSettingsFontSizeItem(theme: self.presentationData.theme, fontSize: fontSize, enabled: true, disableLeadingInset: false, displayIcons: false, force: false, sectionId: 0, updated: { [weak self] value in + let numericValue: Int32 + switch value { + case .extraSmall: + numericValue = 4 + case .small: + numericValue = 6 + case .medium: + numericValue = 8 + case .regular: + numericValue = 10 + case .large: + numericValue = 12 + case .extraLarge: + numericValue = 14 + case .extraLargeX2: + numericValue = 16 + } + self?.updateCornerRadius?(numericValue) + }) + + /*switchItem.updateNode(async: { f in + f() + }, node: { + return self.switchItemNode + }, params: ListViewItemLayoutParams(width: width, leftInset: layout.intrinsicInsets.left, rightInset: layout.intrinsicInsets.right, availableHeight: 1000.0), previousItem: nil, nextItem: cornerRadiusItem, animation: .None, completion: { layout, apply in + self.switchItemNode.contentSize = layout.contentSize + self.switchItemNode.insets = layout.insets + transition.updateFrame(node: self.switchItemNode, frame: CGRect(origin: CGPoint(x: 0.0, y: contentHeight), size: layout.contentSize)) + contentHeight += layout.contentSize.height + apply(ListViewItemApply(isOnScreen: true)) + })*/ + + cornerRadiusItem.updateNode(async: { f in + f() + }, node: { + return self.cornerRadiusItemNode + }, params: ListViewItemLayoutParams(width: width, leftInset: layout.intrinsicInsets.left, rightInset: layout.intrinsicInsets.right, availableHeight: 1000.0), previousItem: switchItem, nextItem: nil, animation: .None, completion: { layout, apply in + self.cornerRadiusItemNode.contentSize = layout.contentSize + self.cornerRadiusItemNode.insets = layout.insets + transition.updateFrame(node: self.cornerRadiusItemNode, frame: CGRect(origin: CGPoint(x: 0.0, y: contentHeight), size: layout.contentSize)) + contentHeight += layout.contentSize.height + apply(ListViewItemApply(isOnScreen: true)) + }) + + self.cancelButton.frame = CGRect(origin: CGPoint(x: 0.0, y: contentHeight), size: CGSize(width: floor(width / 2.0), height: 49.0)) + self.doneButton.frame = CGRect(origin: CGPoint(x: floor(width / 2.0), y: contentHeight), size: CGSize(width: width - floor(width / 2.0), height: 49.0)) + + contentHeight += 49.0 + + self.topSeparatorNode.frame = CGRect(origin: CGPoint(), size: CGSize(width: width, height: UIScreenPixel)) + + let resultHeight = contentHeight + bottomInset + + self.separatorNode.frame = CGRect(origin: CGPoint(x: floor(width / 2.0), y: self.cancelButton.frame.minY), size: CGSize(width: UIScreenPixel, height: resultHeight - self.cancelButton.frame.minY)) + + return resultHeight + } + + @objc func cancelPressed() { + self.cancel?() + } + + @objc func donePressed() { + self.doneButton.isUserInteractionEnabled = false + self.done?() + } +} diff --git a/submodules/SettingsUI/Sources/Privacy and Security/ForwardPrivacyChatPreviewItem.swift b/submodules/SettingsUI/Sources/Privacy and Security/ForwardPrivacyChatPreviewItem.swift index dfdba0d1ea..ccc324d7ef 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/ForwardPrivacyChatPreviewItem.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/ForwardPrivacyChatPreviewItem.swift @@ -18,6 +18,7 @@ class ForwardPrivacyChatPreviewItem: ListViewItem, ItemListItem { let strings: PresentationStrings let sectionId: ItemListSectionId let fontSize: PresentationFontSize + let chatBubbleCorners: PresentationChatBubbleCorners let wallpaper: TelegramWallpaper let dateTimeFormat: PresentationDateTimeFormat let nameDisplayOrder: PresentationPersonNameOrder @@ -25,12 +26,13 @@ class ForwardPrivacyChatPreviewItem: ListViewItem, ItemListItem { let linkEnabled: Bool let tooltipText: String - init(context: AccountContext, theme: PresentationTheme, strings: PresentationStrings, sectionId: ItemListSectionId, fontSize: PresentationFontSize, wallpaper: TelegramWallpaper, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, peerName: String, linkEnabled: Bool, tooltipText: String) { + init(context: AccountContext, theme: PresentationTheme, strings: PresentationStrings, sectionId: ItemListSectionId, fontSize: PresentationFontSize, chatBubbleCorners: PresentationChatBubbleCorners, wallpaper: TelegramWallpaper, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, peerName: String, linkEnabled: Bool, tooltipText: String) { self.context = context self.theme = theme self.strings = strings self.sectionId = sectionId self.fontSize = fontSize + self.chatBubbleCorners = chatBubbleCorners self.wallpaper = wallpaper self.dateTimeFormat = dateTimeFormat self.nameDisplayOrder = nameDisplayOrder @@ -157,7 +159,7 @@ class ForwardPrivacyChatPreviewItemNode: ListViewItemNode { let forwardInfo = MessageForwardInfo(author: item.linkEnabled ? peers[peerId] : nil, source: nil, sourceMessageId: nil, date: 0, authorSignature: item.linkEnabled ? nil : item.peerName) - let messageItem = item.context.sharedContext.makeChatMessagePreviewItem(context: item.context, message: Message(stableId: 1, stableVersion: 0, id: MessageId(peerId: peerId, namespace: 0, id: 1), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66000, flags: [.Incoming], tags: [], globalTags: [], localTags: [], forwardInfo: forwardInfo, author: nil, text: item.strings.Privacy_Forwards_PreviewMessageText, attributes: [], media: [], peers: peers, associatedMessages: messages, associatedMessageIds: []), theme: item.theme, strings: item.strings, wallpaper: item.wallpaper, fontSize: item.fontSize, dateTimeFormat: item.dateTimeFormat, nameOrder: item.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil) + let messageItem = item.context.sharedContext.makeChatMessagePreviewItem(context: item.context, message: Message(stableId: 1, stableVersion: 0, id: MessageId(peerId: peerId, namespace: 0, id: 1), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66000, flags: [.Incoming], tags: [], globalTags: [], localTags: [], forwardInfo: forwardInfo, author: nil, text: item.strings.Privacy_Forwards_PreviewMessageText, attributes: [], media: [], peers: peers, associatedMessages: messages, associatedMessageIds: []), theme: item.theme, strings: item.strings, wallpaper: item.wallpaper, fontSize: item.fontSize, chatBubbleCorners: item.chatBubbleCorners, dateTimeFormat: item.dateTimeFormat, nameOrder: item.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil) var node: ListViewItemNode? if let current = currentNode { diff --git a/submodules/SettingsUI/Sources/Privacy and Security/SelectivePrivacySettingsController.swift b/submodules/SettingsUI/Sources/Privacy and Security/SelectivePrivacySettingsController.swift index 1a89bcca3c..3c7774bcc4 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/SelectivePrivacySettingsController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/SelectivePrivacySettingsController.swift @@ -87,7 +87,7 @@ private func stringForUserCount(_ peers: [PeerId: SelectivePrivacyPeer], strings private enum SelectivePrivacySettingsEntry: ItemListNodeEntry { case forwardsPreviewHeader(PresentationTheme, String) - case forwardsPreview(PresentationTheme, TelegramWallpaper, PresentationFontSize, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, String, Bool, String) + case forwardsPreview(PresentationTheme, TelegramWallpaper, PresentationFontSize, PresentationChatBubbleCorners, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, String, Bool, String) case settingHeader(PresentationTheme, String) case everybody(PresentationTheme, String, Bool) case contacts(PresentationTheme, String, Bool) @@ -194,8 +194,8 @@ private enum SelectivePrivacySettingsEntry: ItemListNodeEntry { } else { return false } - case let .forwardsPreview(lhsTheme, lhsWallpaper, lhsFontSize, lhsStrings, lhsTimeFormat, lhsNameOrder, lhsPeerName, lhsLinkEnabled, lhsTooltipText): - if case let .forwardsPreview(rhsTheme, rhsWallpaper, rhsFontSize, rhsStrings, rhsTimeFormat, rhsNameOrder, rhsPeerName, rhsLinkEnabled, rhsTooltipText) = rhs, lhsTheme === rhsTheme, lhsWallpaper == rhsWallpaper, lhsFontSize == rhsFontSize, lhsStrings === rhsStrings, lhsTimeFormat == rhsTimeFormat, lhsNameOrder == rhsNameOrder, lhsPeerName == rhsPeerName, lhsLinkEnabled == rhsLinkEnabled, lhsTooltipText == rhsTooltipText { + case let .forwardsPreview(lhsTheme, lhsWallpaper, lhsFontSize, lhsChatBubbleCorners, lhsStrings, lhsTimeFormat, lhsNameOrder, lhsPeerName, lhsLinkEnabled, lhsTooltipText): + if case let .forwardsPreview(rhsTheme, rhsWallpaper, rhsFontSize, rhsChatBubbleCorners, rhsStrings, rhsTimeFormat, rhsNameOrder, rhsPeerName, rhsLinkEnabled, rhsTooltipText) = rhs, lhsTheme === rhsTheme, lhsWallpaper == rhsWallpaper, lhsFontSize == rhsFontSize, lhsChatBubbleCorners == rhsChatBubbleCorners, lhsStrings === rhsStrings, lhsTimeFormat == rhsTimeFormat, lhsNameOrder == rhsNameOrder, lhsPeerName == rhsPeerName, lhsLinkEnabled == rhsLinkEnabled, lhsTooltipText == rhsTooltipText { return true } else { return false @@ -350,8 +350,8 @@ private enum SelectivePrivacySettingsEntry: ItemListNodeEntry { switch self { case let .forwardsPreviewHeader(theme, text): return ItemListSectionHeaderItem(presentationData: presentationData, text: text, multiline: true, sectionId: self.section) - case let .forwardsPreview(theme, wallpaper, fontSize, strings, dateTimeFormat, nameDisplayOrder, peerName, linkEnabled, tooltipText): - return ForwardPrivacyChatPreviewItem(context: arguments.context, theme: theme, strings: strings, sectionId: self.section, fontSize: fontSize, wallpaper: wallpaper, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, peerName: peerName, linkEnabled: linkEnabled, tooltipText: tooltipText) + case let .forwardsPreview(theme, wallpaper, fontSize, chatBubbleCorners, strings, dateTimeFormat, nameDisplayOrder, peerName, linkEnabled, tooltipText): + return ForwardPrivacyChatPreviewItem(context: arguments.context, theme: theme, strings: strings, sectionId: self.section, fontSize: fontSize, chatBubbleCorners: chatBubbleCorners, wallpaper: wallpaper, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, peerName: peerName, linkEnabled: linkEnabled, tooltipText: tooltipText) case let .settingHeader(theme, text): return ItemListSectionHeaderItem(presentationData: presentationData, text: text, multiline: true, sectionId: self.section) case let .everybody(theme, text, value): @@ -591,7 +591,7 @@ private func selectivePrivacySettingsControllerEntries(presentationData: Present linkEnabled = false } entries.append(.forwardsPreviewHeader(presentationData.theme, presentationData.strings.Privacy_Forwards_Preview)) - entries.append(.forwardsPreview(presentationData.theme, presentationData.chatWallpaper, presentationData.chatFontSize, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, peerName, linkEnabled, tootipText)) + entries.append(.forwardsPreview(presentationData.theme, presentationData.chatWallpaper, presentationData.chatFontSize, presentationData.chatBubbleCorners, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, peerName, linkEnabled, tootipText)) } entries.append(.settingHeader(presentationData.theme, settingTitle)) diff --git a/submodules/SettingsUI/Sources/Text Size/TextSizeSelectionController.swift b/submodules/SettingsUI/Sources/Text Size/TextSizeSelectionController.swift index 20a23a462b..675dc81df5 100644 --- a/submodules/SettingsUI/Sources/Text Size/TextSizeSelectionController.swift +++ b/submodules/SettingsUI/Sources/Text Size/TextSizeSelectionController.swift @@ -303,7 +303,7 @@ private final class TextSizeSelectionControllerNode: ASDisplayNode, UIScrollView } private func updateMessagesLayout(layout: ContainerViewLayout, bottomInset: CGFloat, transition: ContainedViewLayoutTransition) { - let headerItem = self.context.sharedContext.makeChatMessageDateHeaderItem(context: self.context, timestamp: self.referenceTimestamp, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder) + let headerItem = self.context.sharedContext.makeChatMessageDateHeaderItem(context: self.context, timestamp: self.referenceTimestamp, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder) var items: [ListViewItem] = [] let peerId = PeerId(namespace: Namespaces.Peer.CloudUser, id: 1) @@ -317,20 +317,20 @@ private final class TextSizeSelectionControllerNode: ASDisplayNode, UIScrollView messages[replyMessageId] = Message(stableId: 3, stableVersion: 0, id: replyMessageId, globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66000, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: peers[otherPeerId], text: self.presentationData.strings.Appearance_ThemePreview_Chat_1_Text, attributes: [], media: [], peers: peers, associatedMessages: SimpleDictionary(), associatedMessageIds: []) let message1 = Message(stableId: 4, stableVersion: 0, id: MessageId(peerId: otherPeerId, namespace: 0, id: 4), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66003, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: peers[otherPeerId], text: self.presentationData.strings.Appearance_ThemePreview_Chat_3_Text, attributes: [], media: [], peers: peers, associatedMessages: messages, associatedMessageIds: []) - items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message1, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) + items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message1, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) let message2 = Message(stableId: 3, stableVersion: 0, id: MessageId(peerId: peerId, namespace: 0, id: 3), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66002, flags: [.Incoming], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: peers[peerId], text: self.presentationData.strings.Appearance_ThemePreview_Chat_2_Text, attributes: [ReplyMessageAttribute(messageId: replyMessageId)], media: [], peers: peers, associatedMessages: messages, associatedMessageIds: []) - items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message2, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) + items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message2, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) let waveformBase64 = "DAAOAAkACQAGAAwADwAMABAADQAPABsAGAALAA0AGAAfABoAHgATABgAGQAYABQADAAVABEAHwANAA0ACQAWABkACQAOAAwACQAfAAAAGQAVAAAAEwATAAAACAAfAAAAHAAAABwAHwAAABcAGQAAABQADgAAABQAHwAAAB8AHwAAAAwADwAAAB8AEwAAABoAFwAAAB8AFAAAAAAAHwAAAAAAHgAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAHwAAAAAAAAA=" let voiceAttributes: [TelegramMediaFileAttribute] = [.Audio(isVoice: true, duration: 23, title: nil, performer: nil, waveform: MemoryBuffer(data: Data(base64Encoded: waveformBase64)!))] let voiceMedia = TelegramMediaFile(fileId: MediaId(namespace: 0, id: 0), partialReference: nil, resource: LocalFileMediaResource(fileId: 0), previewRepresentations: [], immediateThumbnailData: nil, mimeType: "audio/ogg", size: 0, attributes: voiceAttributes) let message3 = Message(stableId: 1, stableVersion: 0, id: MessageId(peerId: peerId, namespace: 0, id: 1), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66001, flags: [.Incoming], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: peers[peerId], text: "", attributes: [], media: [voiceMedia], peers: peers, associatedMessages: messages, associatedMessageIds: []) - items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message3, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: FileMediaResourceStatus(mediaStatus: .playbackStatus(.paused), fetchStatus: .Local), tapMessage: nil, clickThroughMessage: nil)) + items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message3, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: FileMediaResourceStatus(mediaStatus: .playbackStatus(.paused), fetchStatus: .Local), tapMessage: nil, clickThroughMessage: nil)) let message4 = Message(stableId: 2, stableVersion: 0, id: MessageId(peerId: otherPeerId, namespace: 0, id: 2), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66001, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: peers[otherPeerId], text: self.presentationData.strings.Appearance_ThemePreview_Chat_1_Text, attributes: [], media: [], peers: peers, associatedMessages: messages, associatedMessageIds: []) - items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message4, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) + items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message4, theme: self.presentationData.theme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) let width: CGFloat if case .regular = layout.metrics.widthClass { diff --git a/submodules/SettingsUI/Sources/Themes/EditThemeController.swift b/submodules/SettingsUI/Sources/Themes/EditThemeController.swift index b918e65d1a..f85e96e5ce 100644 --- a/submodules/SettingsUI/Sources/Themes/EditThemeController.swift +++ b/submodules/SettingsUI/Sources/Themes/EditThemeController.swift @@ -53,7 +53,7 @@ private enum EditThemeControllerEntry: ItemListNodeEntry { case slug(PresentationTheme, PresentationStrings, String, String, Bool) case slugInfo(PresentationTheme, String) case chatPreviewHeader(PresentationTheme, String) - case chatPreview(PresentationTheme, PresentationTheme, TelegramWallpaper, PresentationFontSize, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, [ChatPreviewMessageItem]) + case chatPreview(PresentationTheme, PresentationTheme, TelegramWallpaper, PresentationFontSize, PresentationChatBubbleCorners, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, [ChatPreviewMessageItem]) case changeColors(PresentationTheme, String) case uploadTheme(PresentationTheme, String) case uploadInfo(PresentationTheme, String) @@ -114,8 +114,8 @@ private enum EditThemeControllerEntry: ItemListNodeEntry { } else { return false } - case let .chatPreview(lhsTheme, lhsComponentTheme, lhsWallpaper, lhsFontSize, lhsStrings, lhsTimeFormat, lhsNameOrder, lhsItems): - if case let .chatPreview(rhsTheme, rhsComponentTheme, rhsWallpaper, rhsFontSize, rhsStrings, rhsTimeFormat, rhsNameOrder, rhsItems) = rhs, lhsComponentTheme === rhsComponentTheme, lhsTheme === rhsTheme, lhsWallpaper == rhsWallpaper, lhsFontSize == rhsFontSize, lhsStrings === rhsStrings, lhsTimeFormat == rhsTimeFormat, lhsNameOrder == rhsNameOrder, lhsItems == rhsItems { + case let .chatPreview(lhsTheme, lhsComponentTheme, lhsWallpaper, lhsFontSize, lhsChatBubbleCorners, lhsStrings, lhsTimeFormat, lhsNameOrder, lhsItems): + if case let .chatPreview(rhsTheme, rhsComponentTheme, rhsWallpaper, rhsFontSize, rhsChatBubbleCorners, rhsStrings, rhsTimeFormat, rhsNameOrder, rhsItems) = rhs, lhsComponentTheme === rhsComponentTheme, lhsTheme === rhsTheme, lhsWallpaper == rhsWallpaper, lhsFontSize == rhsFontSize, lhsChatBubbleCorners == rhsChatBubbleCorners, lhsStrings === rhsStrings, lhsTimeFormat == rhsTimeFormat, lhsNameOrder == rhsNameOrder, lhsItems == rhsItems { return true } else { return false @@ -172,8 +172,8 @@ private enum EditThemeControllerEntry: ItemListNodeEntry { return ItemListTextItem(presentationData: presentationData, text: .markdown(text), sectionId: self.section) case let .chatPreviewHeader(theme, text): return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section) - case let .chatPreview(theme, componentTheme, wallpaper, fontSize, strings, dateTimeFormat, nameDisplayOrder, items): - return ThemeSettingsChatPreviewItem(context: arguments.context, theme: theme, componentTheme: componentTheme, strings: strings, sectionId: self.section, fontSize: fontSize, wallpaper: wallpaper, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, messageItems: items) + case let .chatPreview(theme, componentTheme, wallpaper, fontSize, chatBubbleCorners, strings, dateTimeFormat, nameDisplayOrder, items): + return ThemeSettingsChatPreviewItem(context: arguments.context, theme: theme, componentTheme: componentTheme, strings: strings, sectionId: self.section, fontSize: fontSize, chatBubbleCorners: chatBubbleCorners, wallpaper: wallpaper, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, messageItems: items) case let .changeColors(theme, text): return ItemListActionItem(presentationData: presentationData, title: text, kind: .generic, alignment: .natural, sectionId: self.section, style: .blocks, action: { arguments.openColors() @@ -253,7 +253,7 @@ private func editThemeControllerEntries(presentationData: PresentationData, stat entries.append(.slugInfo(presentationData.theme, infoText)) entries.append(.chatPreviewHeader(presentationData.theme, presentationData.strings.EditTheme_Preview.uppercased())) - entries.append(.chatPreview(presentationData.theme, previewTheme, previewTheme.chat.defaultWallpaper, presentationData.chatFontSize, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, [ChatPreviewMessageItem(outgoing: false, reply: (previewIncomingReplyName, previewIncomingReplyText), text: previewIncomingText), ChatPreviewMessageItem(outgoing: true, reply: nil, text: previewOutgoingText)])) + entries.append(.chatPreview(presentationData.theme, previewTheme, previewTheme.chat.defaultWallpaper, presentationData.chatFontSize, presentationData.chatBubbleCorners, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, [ChatPreviewMessageItem(outgoing: false, reply: (previewIncomingReplyName, previewIncomingReplyText), text: previewIncomingText), ChatPreviewMessageItem(outgoing: true, reply: nil, text: previewOutgoingText)])) entries.append(.changeColors(presentationData.theme, presentationData.strings.EditTheme_ChangeColors)) if !hasSettings { @@ -556,7 +556,7 @@ public func editThemeController(context: AccountContext, mode: EditThemeControll var themeSpecificChatWallpapers = current.themeSpecificChatWallpapers themeSpecificChatWallpapers[themeReference.index] = nil - return PresentationThemeSettings(theme: themeReference, themeSpecificAccentColors: current.themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, automaticThemeSwitchSetting: current.automaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) + return PresentationThemeSettings(theme: themeReference, themeSpecificAccentColors: current.themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, chatBubbleSettings: current.chatBubbleSettings, automaticThemeSwitchSetting: current.automaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) }) |> deliverOnMainQueue).start(completed: { if !hasCustomFile { saveThemeTemplateFile(state.title, themeResource, { @@ -590,7 +590,7 @@ public func editThemeController(context: AccountContext, mode: EditThemeControll var themeSpecificChatWallpapers = current.themeSpecificChatWallpapers themeSpecificChatWallpapers[themeReference.index] = nil - return PresentationThemeSettings(theme: themeReference, themeSpecificAccentColors: current.themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, automaticThemeSwitchSetting: current.automaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) + return PresentationThemeSettings(theme: themeReference, themeSpecificAccentColors: current.themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, chatBubbleSettings: current.chatBubbleSettings, automaticThemeSwitchSetting: current.automaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) }) |> deliverOnMainQueue).start(completed: { if let themeResource = themeResource, !hasCustomFile { saveThemeTemplateFile(state.title, themeResource, { diff --git a/submodules/SettingsUI/Sources/Themes/ThemeAccentColorController.swift b/submodules/SettingsUI/Sources/Themes/ThemeAccentColorController.swift index 503d9005d3..21c9950124 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeAccentColorController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeAccentColorController.swift @@ -276,7 +276,7 @@ final class ThemeAccentColorController: ViewController { var themeSpecificAccentColors = current.themeSpecificAccentColors themeSpecificAccentColors[baseThemeReference.index] = PresentationThemeAccentColor(themeIndex: themeReference.index) - return PresentationThemeSettings(theme: updatedTheme, themeSpecificAccentColors: themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, automaticThemeSwitchSetting: updatedAutomaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) + return PresentationThemeSettings(theme: updatedTheme, themeSpecificAccentColors: themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, chatBubbleSettings: current.chatBubbleSettings, automaticThemeSwitchSetting: updatedAutomaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) }) |> castError(CreateThemeError.self) } else { @@ -305,7 +305,7 @@ final class ThemeAccentColorController: ViewController { var themeSpecificAccentColors = current.themeSpecificAccentColors themeSpecificAccentColors[baseThemeReference.index] = PresentationThemeAccentColor(themeIndex: themeReference.index) - return PresentationThemeSettings(theme: updatedTheme, themeSpecificAccentColors: themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, automaticThemeSwitchSetting: updatedAutomaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) + return PresentationThemeSettings(theme: updatedTheme, themeSpecificAccentColors: themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, chatBubbleSettings: current.chatBubbleSettings, automaticThemeSwitchSetting: updatedAutomaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) }) |> castError(CreateThemeError.self) } else { diff --git a/submodules/SettingsUI/Sources/Themes/ThemeAccentColorControllerNode.swift b/submodules/SettingsUI/Sources/Themes/ThemeAccentColorControllerNode.swift index beef472dec..57916acc46 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeAccentColorControllerNode.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeAccentColorControllerNode.swift @@ -226,6 +226,7 @@ final class ThemeAccentColorControllerNode: ASDisplayNode, UIScrollViewDelegate self.presentationData = context.sharedContext.currentPresentationData.with { $0 } self.theme = theme self.wallpaper = self.presentationData.chatWallpaper + let bubbleCorners = self.presentationData.chatBubbleCorners self.ready = ready @@ -498,7 +499,7 @@ final class ThemeAccentColorControllerNode: ASDisplayNode, UIScrollViewDelegate updatedTheme = theme } - let _ = PresentationResourcesChat.principalGraphics(mediaBox: context.account.postbox.mediaBox, knockoutWallpaper: context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: updatedTheme!, wallpaper: wallpaper) + let _ = PresentationResourcesChat.principalGraphics(mediaBox: context.account.postbox.mediaBox, knockoutWallpaper: context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: updatedTheme!, wallpaper: wallpaper, bubbleCorners: bubbleCorners) } else { updatedTheme = nil } @@ -836,7 +837,7 @@ final class ThemeAccentColorControllerNode: ASDisplayNode, UIScrollViewDelegate } private func updateMessagesLayout(layout: ContainerViewLayout, bottomInset: CGFloat, transition: ContainedViewLayoutTransition) { - let headerItem = self.context.sharedContext.makeChatMessageDateHeaderItem(context: self.context, timestamp: self.referenceTimestamp, theme: self.theme, strings: self.presentationData.strings, wallpaper: self.wallpaper, fontSize: self.presentationData.chatFontSize, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder) + let headerItem = self.context.sharedContext.makeChatMessageDateHeaderItem(context: self.context, timestamp: self.referenceTimestamp, theme: self.theme, strings: self.presentationData.strings, wallpaper: self.wallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder) var items: [ListViewItem] = [] let peerId = PeerId(namespace: Namespaces.Peer.CloudUser, id: 1) @@ -878,7 +879,7 @@ final class ThemeAccentColorControllerNode: ASDisplayNode, UIScrollViewDelegate sampleMessages.append(message8) items = sampleMessages.reversed().map { message in - let item = self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message, theme: self.theme, strings: self.presentationData.strings, wallpaper: self.wallpaper, fontSize: self.presentationData.chatFontSize, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: !message.media.isEmpty ? FileMediaResourceStatus(mediaStatus: .playbackStatus(.paused), fetchStatus: .Local) : nil, tapMessage: { [weak self] message in + let item = self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message, theme: self.theme, strings: self.presentationData.strings, wallpaper: self.wallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: !message.media.isEmpty ? FileMediaResourceStatus(mediaStatus: .playbackStatus(.paused), fetchStatus: .Local) : nil, tapMessage: { [weak self] message in if message.flags.contains(.Incoming) { self?.updateSection(.accent) self?.requestSectionUpdate?(.accent) diff --git a/submodules/SettingsUI/Sources/Themes/ThemePreviewControllerNode.swift b/submodules/SettingsUI/Sources/Themes/ThemePreviewControllerNode.swift index b4b5cbaf2f..469477a0d6 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemePreviewControllerNode.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemePreviewControllerNode.swift @@ -442,7 +442,7 @@ final class ThemePreviewControllerNode: ASDisplayNode, UIScrollViewDelegate { } private func updateMessagesLayout(layout: ContainerViewLayout, bottomInset: CGFloat, transition: ContainedViewLayoutTransition) { - let headerItem = self.context.sharedContext.makeChatMessageDateHeaderItem(context: self.context, timestamp: self.referenceTimestamp, theme: self.previewTheme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder) + let headerItem = self.context.sharedContext.makeChatMessageDateHeaderItem(context: self.context, timestamp: self.referenceTimestamp, theme: self.previewTheme, strings: self.presentationData.strings, wallpaper: self.presentationData.chatWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder) var items: [ListViewItem] = [] let peerId = PeerId(namespace: Namespaces.Peer.CloudUser, id: 1) @@ -484,7 +484,7 @@ final class ThemePreviewControllerNode: ASDisplayNode, UIScrollViewDelegate { sampleMessages.append(message8) items = sampleMessages.reversed().map { message in - self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message, theme: self.previewTheme, strings: self.presentationData.strings, wallpaper: self.previewTheme.chat.defaultWallpaper, fontSize: self.presentationData.chatFontSize, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: !message.media.isEmpty ? FileMediaResourceStatus(mediaStatus: .playbackStatus(.paused), fetchStatus: .Local) : nil, tapMessage: nil, clickThroughMessage: nil) + self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message, theme: self.previewTheme, strings: self.presentationData.strings, wallpaper: self.previewTheme.chat.defaultWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: !message.media.isEmpty ? FileMediaResourceStatus(mediaStatus: .playbackStatus(.paused), fetchStatus: .Local) : nil, tapMessage: nil, clickThroughMessage: nil) } let width: CGFloat diff --git a/submodules/SettingsUI/Sources/Themes/ThemeSettingsChatPreviewItem.swift b/submodules/SettingsUI/Sources/Themes/ThemeSettingsChatPreviewItem.swift index 4a2a1361ad..47b4bbda37 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeSettingsChatPreviewItem.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeSettingsChatPreviewItem.swift @@ -40,18 +40,20 @@ class ThemeSettingsChatPreviewItem: ListViewItem, ItemListItem { let strings: PresentationStrings let sectionId: ItemListSectionId let fontSize: PresentationFontSize + let chatBubbleCorners: PresentationChatBubbleCorners let wallpaper: TelegramWallpaper let dateTimeFormat: PresentationDateTimeFormat let nameDisplayOrder: PresentationPersonNameOrder let messageItems: [ChatPreviewMessageItem] - init(context: AccountContext, theme: PresentationTheme, componentTheme: PresentationTheme, strings: PresentationStrings, sectionId: ItemListSectionId, fontSize: PresentationFontSize, wallpaper: TelegramWallpaper, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, messageItems: [ChatPreviewMessageItem]) { + init(context: AccountContext, theme: PresentationTheme, componentTheme: PresentationTheme, strings: PresentationStrings, sectionId: ItemListSectionId, fontSize: PresentationFontSize, chatBubbleCorners: PresentationChatBubbleCorners, wallpaper: TelegramWallpaper, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, messageItems: [ChatPreviewMessageItem]) { self.context = context self.theme = theme self.componentTheme = componentTheme self.strings = strings self.sectionId = sectionId self.fontSize = fontSize + self.chatBubbleCorners = chatBubbleCorners self.wallpaper = wallpaper self.dateTimeFormat = dateTimeFormat self.nameDisplayOrder = nameDisplayOrder @@ -163,7 +165,7 @@ class ThemeSettingsChatPreviewItemNode: ListViewItemNode { } let message = Message(stableId: 1, stableVersion: 0, id: MessageId(peerId: messageItem.outgoing ? otherPeerId : peerId, namespace: 0, id: 1), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66000, flags: messageItem.outgoing ? [] : [.Incoming], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: messageItem.outgoing ? TelegramUser(id: otherPeerId, accessHash: nil, firstName: "", lastName: "", username: nil, phone: nil, photo: [], botInfo: nil, restrictionInfo: nil, flags: []) : nil, text: messageItem.text, attributes: messageItem.reply != nil ? [ReplyMessageAttribute(messageId: replyMessageId)] : [], media: [], peers: peers, associatedMessages: messages, associatedMessageIds: []) - items.append(item.context.sharedContext.makeChatMessagePreviewItem(context: item.context, message: message, theme: item.componentTheme, strings: item.strings, wallpaper: item.wallpaper, fontSize: item.fontSize, dateTimeFormat: item.dateTimeFormat, nameOrder: item.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) + items.append(item.context.sharedContext.makeChatMessagePreviewItem(context: item.context, message: message, theme: item.componentTheme, strings: item.strings, wallpaper: item.wallpaper, fontSize: item.fontSize, chatBubbleCorners: item.chatBubbleCorners, dateTimeFormat: item.dateTimeFormat, nameOrder: item.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) } var nodes: [ListViewItemNode] = [] diff --git a/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift b/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift index d45c21762c..6f8357dfba 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeSettingsController.swift @@ -76,6 +76,7 @@ private final class ThemeSettingsControllerArguments { let openAccentColorPicker: (PresentationThemeReference, Bool) -> Void let openAutoNightTheme: () -> Void let openTextSize: () -> Void + let openBubbleSettings: () -> Void let toggleLargeEmoji: (Bool) -> Void let disableAnimations: (Bool) -> Void let selectAppIcon: (String) -> Void @@ -83,7 +84,7 @@ private final class ThemeSettingsControllerArguments { let themeContextAction: (Bool, PresentationThemeReference, ASDisplayNode, ContextGesture?) -> Void let colorContextAction: (Bool, PresentationThemeReference, ThemeSettingsColorOption?, ASDisplayNode, ContextGesture?) -> Void - init(context: AccountContext, selectTheme: @escaping (PresentationThemeReference) -> Void, selectFontSize: @escaping (PresentationFontSize) -> Void, openWallpaperSettings: @escaping () -> Void, selectAccentColor: @escaping (PresentationThemeAccentColor?) -> Void, openAccentColorPicker: @escaping (PresentationThemeReference, Bool) -> Void, openAutoNightTheme: @escaping () -> Void, openTextSize: @escaping () -> Void, toggleLargeEmoji: @escaping (Bool) -> Void, disableAnimations: @escaping (Bool) -> Void, selectAppIcon: @escaping (String) -> Void, editTheme: @escaping (PresentationCloudTheme) -> Void, themeContextAction: @escaping (Bool, PresentationThemeReference, ASDisplayNode, ContextGesture?) -> Void, colorContextAction: @escaping (Bool, PresentationThemeReference, ThemeSettingsColorOption?, ASDisplayNode, ContextGesture?) -> Void) { + init(context: AccountContext, selectTheme: @escaping (PresentationThemeReference) -> Void, selectFontSize: @escaping (PresentationFontSize) -> Void, openWallpaperSettings: @escaping () -> Void, selectAccentColor: @escaping (PresentationThemeAccentColor?) -> Void, openAccentColorPicker: @escaping (PresentationThemeReference, Bool) -> Void, openAutoNightTheme: @escaping () -> Void, openTextSize: @escaping () -> Void, openBubbleSettings: @escaping () -> Void, toggleLargeEmoji: @escaping (Bool) -> Void, disableAnimations: @escaping (Bool) -> Void, selectAppIcon: @escaping (String) -> Void, editTheme: @escaping (PresentationCloudTheme) -> Void, themeContextAction: @escaping (Bool, PresentationThemeReference, ASDisplayNode, ContextGesture?) -> Void, colorContextAction: @escaping (Bool, PresentationThemeReference, ThemeSettingsColorOption?, ASDisplayNode, ContextGesture?) -> Void) { self.context = context self.selectTheme = selectTheme self.selectFontSize = selectFontSize @@ -92,6 +93,7 @@ private final class ThemeSettingsControllerArguments { self.openAccentColorPicker = openAccentColorPicker self.openAutoNightTheme = openAutoNightTheme self.openTextSize = openTextSize + self.openBubbleSettings = openBubbleSettings self.toggleLargeEmoji = toggleLargeEmoji self.disableAnimations = disableAnimations self.selectAppIcon = selectAppIcon @@ -131,11 +133,12 @@ private enum ThemeSettingsControllerEntry: ItemListNodeEntry { case themeListHeader(PresentationTheme, String) case fontSizeHeader(PresentationTheme, String) case fontSize(PresentationTheme, PresentationFontSize) - case chatPreview(PresentationTheme, TelegramWallpaper, PresentationFontSize, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, [ChatPreviewMessageItem]) + case chatPreview(PresentationTheme, TelegramWallpaper, PresentationFontSize, PresentationChatBubbleCorners, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, [ChatPreviewMessageItem]) case wallpaper(PresentationTheme, String) case accentColor(PresentationTheme, PresentationThemeReference, PresentationThemeReference, [PresentationThemeReference], ThemeSettingsColorOption?) case autoNightTheme(PresentationTheme, String, String) case textSize(PresentationTheme, String, String) + case bubbleSettings(PresentationTheme, String, String) case themeItem(PresentationTheme, PresentationStrings, [PresentationThemeReference], [PresentationThemeReference], PresentationThemeReference, [Int64: PresentationThemeAccentColor], [Int64: TelegramWallpaper], PresentationThemeAccentColor?) case iconHeader(PresentationTheme, String) case iconItem(PresentationTheme, PresentationStrings, [PresentationAppIcon], String?) @@ -150,7 +153,7 @@ private enum ThemeSettingsControllerEntry: ItemListNodeEntry { return ThemeSettingsControllerSection.chatPreview.rawValue case .fontSizeHeader, .fontSize: return ThemeSettingsControllerSection.fontSize.rawValue - case .wallpaper, .autoNightTheme, .textSize: + case .wallpaper, .autoNightTheme, .textSize, .bubbleSettings: return ThemeSettingsControllerSection.background.rawValue case .iconHeader, .iconItem: return ThemeSettingsControllerSection.icon.rawValue @@ -175,29 +178,31 @@ private enum ThemeSettingsControllerEntry: ItemListNodeEntry { return 6 case .textSize: return 7 - case .fontSizeHeader: + case .bubbleSettings: return 8 - case .fontSize: + case .fontSizeHeader: return 9 - case .iconHeader: + case .fontSize: return 10 - case .iconItem: + case .iconHeader: return 11 - case .otherHeader: + case .iconItem: return 12 - case .largeEmoji: + case .otherHeader: return 13 - case .animations: + case .largeEmoji: return 14 - case .animationsInfo: + case .animations: return 15 + case .animationsInfo: + return 16 } } static func ==(lhs: ThemeSettingsControllerEntry, rhs: ThemeSettingsControllerEntry) -> Bool { switch lhs { - case let .chatPreview(lhsTheme, lhsWallpaper, lhsFontSize, lhsStrings, lhsTimeFormat, lhsNameOrder, lhsItems): - if case let .chatPreview(rhsTheme, rhsWallpaper, rhsFontSize, rhsStrings, rhsTimeFormat, rhsNameOrder, rhsItems) = rhs, lhsTheme === rhsTheme, lhsWallpaper == rhsWallpaper, lhsFontSize == rhsFontSize, lhsStrings === rhsStrings, lhsTimeFormat == rhsTimeFormat, lhsNameOrder == rhsNameOrder, lhsItems == rhsItems { + case let .chatPreview(lhsTheme, lhsWallpaper, lhsFontSize, lhsChatBubbleCorners, lhsStrings, lhsTimeFormat, lhsNameOrder, lhsItems): + if case let .chatPreview(rhsTheme, rhsWallpaper, rhsFontSize, rhsChatBubbleCorners, rhsStrings, rhsTimeFormat, rhsNameOrder, rhsItems) = rhs, lhsTheme === rhsTheme, lhsWallpaper == rhsWallpaper, lhsFontSize == rhsFontSize, lhsChatBubbleCorners == rhsChatBubbleCorners, lhsStrings === rhsStrings, lhsTimeFormat == rhsTimeFormat, lhsNameOrder == rhsNameOrder, lhsItems == rhsItems { return true } else { return false @@ -226,6 +231,12 @@ private enum ThemeSettingsControllerEntry: ItemListNodeEntry { } else { return false } + case let .bubbleSettings(lhsTheme, lhsText, lhsValue): + if case let .bubbleSettings(rhsTheme, rhsText, rhsValue) = rhs, lhsTheme === rhsTheme, lhsText == rhsText, lhsValue == rhsValue { + return true + } else { + return false + } case let .themeListHeader(lhsTheme, lhsText): if case let .themeListHeader(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { return true @@ -302,8 +313,8 @@ private enum ThemeSettingsControllerEntry: ItemListNodeEntry { return ThemeSettingsFontSizeItem(theme: theme, fontSize: fontSize, sectionId: self.section, updated: { value in arguments.selectFontSize(value) }, tag: ThemeSettingsEntryTag.fontSize) - case let .chatPreview(theme, wallpaper, fontSize, strings, dateTimeFormat, nameDisplayOrder, items): - return ThemeSettingsChatPreviewItem(context: arguments.context, theme: theme, componentTheme: theme, strings: strings, sectionId: self.section, fontSize: fontSize, wallpaper: wallpaper, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, messageItems: items) + case let .chatPreview(theme, wallpaper, fontSize, chatBubbleCorners, strings, dateTimeFormat, nameDisplayOrder, items): + return ThemeSettingsChatPreviewItem(context: arguments.context, theme: theme, componentTheme: theme, strings: strings, sectionId: self.section, fontSize: fontSize, chatBubbleCorners: chatBubbleCorners, wallpaper: wallpaper, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, messageItems: items) case let .wallpaper(theme, text): return ItemListDisclosureItem(presentationData: presentationData, title: text, label: "", sectionId: self.section, style: .blocks, action: { arguments.openWallpaperSettings() @@ -387,6 +398,10 @@ private enum ThemeSettingsControllerEntry: ItemListNodeEntry { return ItemListDisclosureItem(presentationData: presentationData, icon: nil, title: text, label: value, labelStyle: .text, sectionId: self.section, style: .blocks, disclosureStyle: .arrow, action: { arguments.openTextSize() }) + case let .bubbleSettings(theme, text, value): + return ItemListDisclosureItem(presentationData: presentationData, icon: nil, title: text, label: value, labelStyle: .text, sectionId: self.section, style: .blocks, disclosureStyle: .arrow, action: { + arguments.openBubbleSettings() + }) case let .themeListHeader(theme, text): return ItemListSectionHeaderItem(presentationData: presentationData, text: text, sectionId: self.section) case let .themeItem(theme, strings, themes, allThemes, currentTheme, themeSpecificAccentColors, themeSpecificChatWallpapers, _): @@ -429,7 +444,7 @@ private func themeSettingsControllerEntries(presentationData: PresentationData, let strings = presentationData.strings let title = presentationData.autoNightModeTriggered ? strings.Appearance_ColorThemeNight.uppercased() : strings.Appearance_ColorTheme.uppercased() entries.append(.themeListHeader(presentationData.theme, title)) - entries.append(.chatPreview(presentationData.theme, presentationData.chatWallpaper, presentationData.chatFontSize, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, [ChatPreviewMessageItem(outgoing: false, reply: (presentationData.strings.Appearance_PreviewReplyAuthor, presentationData.strings.Appearance_PreviewReplyText), text: presentationData.strings.Appearance_PreviewIncomingText), ChatPreviewMessageItem(outgoing: true, reply: nil, text: presentationData.strings.Appearance_PreviewOutgoingText)])) + entries.append(.chatPreview(presentationData.theme, presentationData.chatWallpaper, presentationData.chatFontSize, presentationData.chatBubbleCorners, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, [ChatPreviewMessageItem(outgoing: false, reply: (presentationData.strings.Appearance_PreviewReplyAuthor, presentationData.strings.Appearance_PreviewReplyText), text: presentationData.strings.Appearance_PreviewIncomingText), ChatPreviewMessageItem(outgoing: true, reply: nil, text: presentationData.strings.Appearance_PreviewOutgoingText)])) let generalThemes: [PresentationThemeReference] = availableThemes.filter { reference in if case let .cloud(theme) = reference { @@ -497,6 +512,7 @@ private func themeSettingsControllerEntries(presentationData: PresentationData, } } entries.append(.textSize(presentationData.theme, strings.Appearance_TextSizeSetting, textSizeValue)) + entries.append(.bubbleSettings(presentationData.theme, strings.Appearance_BubbleCornersSetting, "")) if !availableAppIcons.isEmpty { entries.append(.iconHeader(presentationData.theme, strings.Appearance_AppIcon.uppercased())) @@ -570,6 +586,13 @@ public func themeSettingsController(context: AccountContext, focusOnItemTag: The let settings = (view.entries[ApplicationSpecificSharedDataKeys.presentationThemeSettings] as? PresentationThemeSettings) ?? PresentationThemeSettings.defaultSettings pushControllerImpl?(TextSizeSelectionController(context: context, presentationThemeSettings: settings)) }) + }, openBubbleSettings: { + let _ = (context.sharedContext.accountManager.sharedData(keys: Set([ApplicationSpecificSharedDataKeys.presentationThemeSettings])) + |> take(1) + |> deliverOnMainQueue).start(next: { view in + let settings = (view.entries[ApplicationSpecificSharedDataKeys.presentationThemeSettings] as? PresentationThemeSettings) ?? PresentationThemeSettings.defaultSettings + pushControllerImpl?(BubbleSettingsController(context: context, presentationThemeSettings: settings)) + }) }, toggleLargeEmoji: { largeEmoji in let _ = updatePresentationThemeSettingsInteractively(accountManager: context.sharedContext.accountManager, { current in return current.withUpdatedLargeEmoji(largeEmoji) @@ -1272,7 +1295,7 @@ public func themeSettingsController(context: AccountContext, focusOnItemTag: The } } - return PresentationThemeSettings(theme: updatedTheme, themeSpecificAccentColors: themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, automaticThemeSwitchSetting: updatedAutomaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) + return PresentationThemeSettings(theme: updatedTheme, themeSpecificAccentColors: themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, chatBubbleSettings: current.chatBubbleSettings, automaticThemeSwitchSetting: updatedAutomaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) }).start() presentCrossfadeControllerImpl?(true) diff --git a/submodules/SettingsUI/Sources/Themes/ThemeSettingsFontSizeItem.swift b/submodules/SettingsUI/Sources/Themes/ThemeSettingsFontSizeItem.swift index b409c93e4b..61b07eabff 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeSettingsFontSizeItem.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeSettingsFontSizeItem.swift @@ -16,17 +16,19 @@ class ThemeSettingsFontSizeItem: ListViewItem, ItemListItem { let theme: PresentationTheme let fontSize: PresentationFontSize let disableLeadingInset: Bool + let displayIcons: Bool let force: Bool let enabled: Bool let sectionId: ItemListSectionId let updated: (PresentationFontSize) -> Void let tag: ItemListItemTag? - init(theme: PresentationTheme, fontSize: PresentationFontSize, enabled: Bool = true, disableLeadingInset: Bool = false, force: Bool = false, sectionId: ItemListSectionId, updated: @escaping (PresentationFontSize) -> Void, tag: ItemListItemTag? = nil) { + init(theme: PresentationTheme, fontSize: PresentationFontSize, enabled: Bool = true, disableLeadingInset: Bool = false, displayIcons: Bool = true, force: Bool = false, sectionId: ItemListSectionId, updated: @escaping (PresentationFontSize) -> Void, tag: ItemListItemTag? = nil) { self.theme = theme self.fontSize = fontSize self.enabled = enabled self.disableLeadingInset = disableLeadingInset + self.displayIcons = displayIcons self.force = force self.sectionId = sectionId self.updated = updated @@ -164,7 +166,9 @@ class ThemeSettingsFontSizeItemNode: ListViewItemNode, ItemListItemNode { sliderView.trackColor = item.enabled ? item.theme.list.itemAccentColor : item.theme.list.itemDisabledTextColor sliderView.knobImage = generateKnobImage() - sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 38.0, y: 8.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 38.0 * 2.0, height: 44.0)) + let sliderInset: CGFloat = item.displayIcons ? 38.0 : 16.0 + + sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + sliderInset, y: 8.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - sliderInset * 2.0, height: 44.0)) } self.view.insertSubview(sliderView, belowSubview: self.disabledOverlayNode.view) sliderView.addTarget(self, action: #selector(self.sliderValueChanged), for: .valueChanged) @@ -271,6 +275,9 @@ class ThemeSettingsFontSizeItemNode: ListViewItemNode, ItemListItemNode { strongSelf.rightIconNode.frame = CGRect(origin: CGPoint(x: params.width - params.rightInset - 14.0 - image.size.width, y: 21.0), size: CGSize(width: image.size.width, height: image.size.height)) } + strongSelf.leftIconNode.isHidden = !item.displayIcons + strongSelf.rightIconNode.isHidden = !item.displayIcons + if let sliderView = strongSelf.sliderView { sliderView.isUserInteractionEnabled = item.enabled sliderView.trackColor = item.enabled ? item.theme.list.itemAccentColor : item.theme.list.itemDisabledTextColor @@ -302,7 +309,8 @@ class ThemeSettingsFontSizeItemNode: ListViewItemNode, ItemListItemNode { sliderView.value = value } - sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + 38.0, y: 8.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - 38.0 * 2.0, height: 44.0)) + let sliderInset: CGFloat = item.displayIcons ? 38.0 : 16.0 + sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + sliderInset, y: 8.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - sliderInset * 2.0, height: 44.0)) } } }) diff --git a/submodules/SettingsUI/Sources/Themes/WallpaperGalleryItem.swift b/submodules/SettingsUI/Sources/Themes/WallpaperGalleryItem.swift index 9453bc392c..a159690102 100644 --- a/submodules/SettingsUI/Sources/Themes/WallpaperGalleryItem.swift +++ b/submodules/SettingsUI/Sources/Themes/WallpaperGalleryItem.swift @@ -832,10 +832,10 @@ final class WallpaperGalleryItemNode: GalleryItemNode { let theme = self.presentationData.theme.withUpdated(preview: true) let message1 = Message(stableId: 2, stableVersion: 0, id: MessageId(peerId: peerId, namespace: 0, id: 2), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66001, flags: [], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: peers[otherPeerId], text: bottomMessageText, attributes: [], media: [], peers: peers, associatedMessages: messages, associatedMessageIds: []) - items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message1, theme: theme, strings: self.presentationData.strings, wallpaper: currentWallpaper, fontSize: self.presentationData.chatFontSize, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) + items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message1, theme: theme, strings: self.presentationData.strings, wallpaper: currentWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) let message2 = Message(stableId: 1, stableVersion: 0, id: MessageId(peerId: peerId, namespace: 0, id: 1), globallyUniqueId: nil, groupingKey: nil, groupInfo: nil, timestamp: 66000, flags: [.Incoming], tags: [], globalTags: [], localTags: [], forwardInfo: nil, author: peers[peerId], text: topMessageText, attributes: [], media: [], peers: peers, associatedMessages: messages, associatedMessageIds: []) - items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message2, theme: theme, strings: self.presentationData.strings, wallpaper: currentWallpaper, fontSize: self.presentationData.chatFontSize, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) + items.append(self.context.sharedContext.makeChatMessagePreviewItem(context: self.context, message: message2, theme: theme, strings: self.presentationData.strings, wallpaper: currentWallpaper, fontSize: self.presentationData.chatFontSize, chatBubbleCorners: self.presentationData.chatBubbleCorners, dateTimeFormat: self.presentationData.dateTimeFormat, nameOrder: self.presentationData.nameDisplayOrder, forcedResourceStatus: nil, tapMessage: nil, clickThroughMessage: nil)) let params = ListViewItemLayoutParams(width: layout.size.width, leftInset: layout.safeInsets.left, rightInset: layout.safeInsets.right, availableHeight: layout.size.height) if let messageNodes = self.messageNodes { diff --git a/submodules/TelegramPresentationData/Sources/ChatMessageBubbleImages.swift b/submodules/TelegramPresentationData/Sources/ChatMessageBubbleImages.swift index 4ae705e92f..36850b476d 100644 --- a/submodules/TelegramPresentationData/Sources/ChatMessageBubbleImages.swift +++ b/submodules/TelegramPresentationData/Sources/ChatMessageBubbleImages.swift @@ -26,14 +26,253 @@ public func messageSingleBubbleLikeImage(fillColor: UIColor, strokeColor: UIColo })!.stretchableImage(withLeftCapWidth: Int(diameter / 2.0), topCapHeight: Int(diameter / 2.0)) } -public func messageBubbleImage(incoming: Bool, fillColor: UIColor, strokeColor: UIColor, neighbors: MessageBubbleImageNeighbors, theme: PresentationThemeChat, wallpaper: TelegramWallpaper, knockout knockoutValue: Bool, mask: Bool = false, extendedEdges: Bool = false, onlyOutline: Bool = false) -> UIImage { - let diameter: CGFloat = 36.0 - let corner: CGFloat = 7.0 +private let minRadiusForFullTailCorner: CGFloat = 14.0 + +func mediaBubbleCornerImage(incoming: Bool, radius: CGFloat, inset: CGFloat) -> UIImage { + let imageSize = CGSize(width: radius + 7.0, height: 8.0) + let fixedMainDiameter: CGFloat = 33.0 + + let formContext = DrawingContext(size: imageSize) + formContext.withFlippedContext { context in + context.clear(CGRect(origin: CGPoint(), size: imageSize)) + context.translateBy(x: imageSize.width / 2.0, y: imageSize.height / 2.0) + context.scaleBy(x: incoming ? -1.0 : 1.0, y: -1.0) + context.translateBy(x: -imageSize.width / 2.0, y: -imageSize.height / 2.0) + + context.setFillColor(UIColor.black.cgColor) + + let bottomEllipse = CGRect(origin: CGPoint(x: 24.0, y: 16.0), size: CGSize(width: 27.0, height: 17.0)).insetBy(dx: inset, dy: inset).offsetBy(dx: inset, dy: inset) + let topEllipse = CGRect(origin: CGPoint(x: 33.0, y: 14.0), size: CGSize(width: 23.0, height: 21.0)).insetBy(dx: -inset, dy: -inset).offsetBy(dx: inset, dy: inset) + + context.translateBy(x: -fixedMainDiameter + imageSize.width - 6.0, y: -fixedMainDiameter + imageSize.height) + + let topLeftRadius: CGFloat = 2.0 + let topRightRadius: CGFloat = 2.0 + let bottomLeftRadius: CGFloat = 2.0 + let bottomRightRadius: CGFloat = radius + + context.move(to: CGPoint(x: 0.0, y: topLeftRadius)) + context.addArc(tangent1End: CGPoint(x: 0.0, y: 0.0), tangent2End: CGPoint(x: topLeftRadius, y: 0.0), radius: topLeftRadius) + context.addLine(to: CGPoint(x: fixedMainDiameter - topRightRadius, y: 0.0)) + context.addArc(tangent1End: CGPoint(x: fixedMainDiameter, y: 0.0), tangent2End: CGPoint(x: fixedMainDiameter, y: topRightRadius), radius: topRightRadius) + context.addLine(to: CGPoint(x: fixedMainDiameter, y: fixedMainDiameter - bottomRightRadius)) + context.addArc(tangent1End: CGPoint(x: fixedMainDiameter, y: fixedMainDiameter), tangent2End: CGPoint(x: fixedMainDiameter - bottomRightRadius, y: fixedMainDiameter), radius: bottomRightRadius) + context.addLine(to: CGPoint(x: bottomLeftRadius, y: fixedMainDiameter)) + context.addArc(tangent1End: CGPoint(x: 0.0, y: fixedMainDiameter), tangent2End: CGPoint(x: 0.0, y: fixedMainDiameter - bottomLeftRadius), radius: bottomLeftRadius) + context.addLine(to: CGPoint(x: 0.0, y: topLeftRadius)) + context.fillPath() + + if radius >= minRadiusForFullTailCorner { + context.move(to: CGPoint(x: bottomEllipse.minX, y: bottomEllipse.midY)) + context.addQuadCurve(to: CGPoint(x: bottomEllipse.midX, y: bottomEllipse.maxY), control: CGPoint(x: bottomEllipse.minX, y: bottomEllipse.maxY)) + context.addQuadCurve(to: CGPoint(x: bottomEllipse.maxX, y: bottomEllipse.midY), control: CGPoint(x: bottomEllipse.maxX, y: bottomEllipse.maxY)) + context.fillPath() + } else { + context.fill(CGRect(origin: CGPoint(x: bottomEllipse.minX - 5.0, y: bottomEllipse.midY), size: CGSize(width: bottomEllipse.width + 5.0, height: bottomEllipse.height / 2.0))) + } + context.fill(CGRect(origin: CGPoint(x: fixedMainDiameter / 2.0, y: fixedMainDiameter / 2.0), size: CGSize(width: fixedMainDiameter / 2.0, height: bottomEllipse.midY - fixedMainDiameter / 2.0))) + context.setFillColor(UIColor.clear.cgColor) + context.setBlendMode(.copy) + context.fillEllipse(in: topEllipse) + } + + return formContext.generateImage()! +} + +public func messageBubbleImage(maxCornerRadius: CGFloat, minCornerRadius: CGFloat, incoming: Bool, fillColor: UIColor, strokeColor: UIColor, neighbors: MessageBubbleImageNeighbors, theme: PresentationThemeChat, wallpaper: TelegramWallpaper, knockout knockoutValue: Bool, mask: Bool = false, extendedEdges: Bool = false, onlyOutline: Bool = false) -> UIImage { + let topLeftRadius: CGFloat + let topRightRadius: CGFloat + let bottomLeftRadius: CGFloat + let bottomRightRadius: CGFloat + let drawTail: Bool + + switch neighbors { + case .none: + topLeftRadius = maxCornerRadius + topRightRadius = maxCornerRadius + bottomLeftRadius = maxCornerRadius + bottomRightRadius = maxCornerRadius + drawTail = true + case .both: + topLeftRadius = maxCornerRadius + topRightRadius = minCornerRadius + bottomLeftRadius = maxCornerRadius + bottomRightRadius = minCornerRadius + drawTail = false + case .bottom: + topLeftRadius = maxCornerRadius + topRightRadius = minCornerRadius + bottomLeftRadius = maxCornerRadius + bottomRightRadius = maxCornerRadius + drawTail = true + case .side: + topLeftRadius = maxCornerRadius + topRightRadius = maxCornerRadius + bottomLeftRadius = maxCornerRadius + bottomRightRadius = maxCornerRadius + drawTail = false + case let .top(side): + topLeftRadius = maxCornerRadius + topRightRadius = side ? minCornerRadius : maxCornerRadius + bottomLeftRadius = maxCornerRadius + bottomRightRadius = minCornerRadius + drawTail = false + } + + let fixedMainDiameter: CGFloat = 33.0 + let innerSize = CGSize(width: fixedMainDiameter + 6.0, height: fixedMainDiameter) + let strokeInset: CGFloat = 1.0 + let sourceRawSize = CGSize(width: innerSize.width + strokeInset * 2.0, height: innerSize.height + strokeInset * 2.0) + let additionalInset: CGFloat = 1.0 + let imageSize = CGSize(width: sourceRawSize.width + additionalInset * 2.0, height: sourceRawSize.height + additionalInset * 2.0) + let outgoingStretchPoint: (x: Int, y: Int) = (Int(additionalInset + strokeInset + round(fixedMainDiameter / 2.0)) - 1, Int(additionalInset + strokeInset + round(fixedMainDiameter / 2.0))) + let incomingStretchPoint: (x: Int, y: Int) = (Int(sourceRawSize.width) - outgoingStretchPoint.x + 1, outgoingStretchPoint.y) + let knockout = knockoutValue && !mask - let inset: CGFloat = 1.0 + let rawSize = imageSize - return generateImage(CGSize(width: 42.0 + inset * 2.0, height: diameter + inset * 2.0), contextGenerator: { rawSize, context in + let bottomEllipse = CGRect(origin: CGPoint(x: 24.0, y: 16.0), size: CGSize(width: 27.0, height: 17.0)) + let topEllipse = CGRect(origin: CGPoint(x: 33.0, y: 14.0), size: CGSize(width: 23.0, height: 21.0)) + + let formContext = DrawingContext(size: imageSize) + formContext.withFlippedContext { context in + context.clear(CGRect(origin: CGPoint(), size: rawSize)) + context.translateBy(x: additionalInset + strokeInset, y: additionalInset + strokeInset) + + context.setFillColor(UIColor.black.cgColor) + + context.move(to: CGPoint(x: 0.0, y: topLeftRadius)) + context.addArc(tangent1End: CGPoint(x: 0.0, y: 0.0), tangent2End: CGPoint(x: topLeftRadius, y: 0.0), radius: topLeftRadius) + context.addLine(to: CGPoint(x: fixedMainDiameter - topRightRadius, y: 0.0)) + context.addArc(tangent1End: CGPoint(x: fixedMainDiameter, y: 0.0), tangent2End: CGPoint(x: fixedMainDiameter, y: topRightRadius), radius: topRightRadius) + context.addLine(to: CGPoint(x: fixedMainDiameter, y: fixedMainDiameter - bottomRightRadius)) + context.addArc(tangent1End: CGPoint(x: fixedMainDiameter, y: fixedMainDiameter), tangent2End: CGPoint(x: fixedMainDiameter - bottomRightRadius, y: fixedMainDiameter), radius: bottomRightRadius) + context.addLine(to: CGPoint(x: bottomLeftRadius, y: fixedMainDiameter)) + context.addArc(tangent1End: CGPoint(x: 0.0, y: fixedMainDiameter), tangent2End: CGPoint(x: 0.0, y: fixedMainDiameter - bottomLeftRadius), radius: bottomLeftRadius) + context.addLine(to: CGPoint(x: 0.0, y: topLeftRadius)) + context.fillPath() + + if drawTail { + if maxCornerRadius >= minRadiusForFullTailCorner { + context.move(to: CGPoint(x: bottomEllipse.minX, y: bottomEllipse.midY)) + context.addQuadCurve(to: CGPoint(x: bottomEllipse.midX, y: bottomEllipse.maxY), control: CGPoint(x: bottomEllipse.minX, y: bottomEllipse.maxY)) + context.addQuadCurve(to: CGPoint(x: bottomEllipse.maxX, y: bottomEllipse.midY), control: CGPoint(x: bottomEllipse.maxX, y: bottomEllipse.maxY)) + context.fillPath() + } else { + context.fill(CGRect(origin: CGPoint(x: bottomEllipse.minX - 2.0, y: bottomEllipse.midY), size: CGSize(width: bottomEllipse.width + 2.0, height: bottomEllipse.height / 2.0))) + } + context.fill(CGRect(origin: CGPoint(x: fixedMainDiameter / 2.0, y: fixedMainDiameter / 2.0), size: CGSize(width: fixedMainDiameter / 2.0, height: bottomEllipse.midY - fixedMainDiameter / 2.0))) + context.setFillColor(UIColor.clear.cgColor) + context.setBlendMode(.copy) + context.fillEllipse(in: topEllipse) + } + } + let formImage = formContext.generateImage()! + + let outlineContext = DrawingContext(size: imageSize) + outlineContext.withFlippedContext { context in + context.clear(CGRect(origin: CGPoint(), size: rawSize)) + context.translateBy(x: additionalInset + strokeInset, y: additionalInset + strokeInset) + + context.setStrokeColor(UIColor.black.cgColor) + let borderWidth: CGFloat = UIScreenPixel * 2.0 + context.setLineWidth(borderWidth) + + let borderOffset: CGFloat = borderWidth / 2.0 + + context.move(to: CGPoint(x: -borderOffset, y: topLeftRadius + borderOffset)) + context.addArc(tangent1End: CGPoint(x: -borderOffset, y: -borderOffset), tangent2End: CGPoint(x: topLeftRadius + borderOffset, y: -borderOffset), radius: topLeftRadius + borderOffset * 2.0) + context.addLine(to: CGPoint(x: fixedMainDiameter - topRightRadius - borderOffset, y: -borderOffset)) + context.addArc(tangent1End: CGPoint(x: fixedMainDiameter + borderOffset, y: -borderOffset), tangent2End: CGPoint(x: fixedMainDiameter + borderOffset, y: topRightRadius + borderOffset), radius: topRightRadius + borderOffset * 2.0) + context.addLine(to: CGPoint(x: fixedMainDiameter + borderOffset, y: fixedMainDiameter - bottomRightRadius - borderOffset)) + context.addArc(tangent1End: CGPoint(x: fixedMainDiameter + borderOffset, y: fixedMainDiameter + borderOffset), tangent2End: CGPoint(x: fixedMainDiameter - bottomRightRadius - borderOffset, y: fixedMainDiameter + borderOffset), radius: bottomRightRadius + borderOffset * 2.0) + context.addLine(to: CGPoint(x: bottomLeftRadius + borderOffset, y: fixedMainDiameter + borderOffset)) + context.addArc(tangent1End: CGPoint(x: -borderOffset, y: fixedMainDiameter + borderOffset), tangent2End: CGPoint(x: -borderOffset, y: fixedMainDiameter - bottomLeftRadius - borderOffset), radius: bottomLeftRadius + borderOffset * 2.0) + context.closePath() + context.strokePath() + + if drawTail { + let outlineBottomEllipse = bottomEllipse.insetBy(dx: -borderOffset, dy: -borderOffset) + let outlineInnerTopEllipse = topEllipse.insetBy(dx: borderOffset, dy: borderOffset) + let outlineTopEllipse = topEllipse.insetBy(dx: -borderOffset, dy: -borderOffset) + + context.setBlendMode(.copy) + context.setFillColor(UIColor.clear.cgColor) + + if maxCornerRadius >= minRadiusForFullTailCorner { + context.move(to: CGPoint(x: bottomEllipse.minX, y: bottomEllipse.midY)) + context.addQuadCurve(to: CGPoint(x: bottomEllipse.midX, y: bottomEllipse.maxY), control: CGPoint(x: bottomEllipse.minX, y: bottomEllipse.maxY)) + context.addQuadCurve(to: CGPoint(x: bottomEllipse.maxX, y: bottomEllipse.midY), control: CGPoint(x: bottomEllipse.maxX, y: bottomEllipse.maxY)) + context.fillPath() + } else { + context.fill(CGRect(origin: CGPoint(x: bottomEllipse.minX - 2.0, y: bottomEllipse.midY), size: CGSize(width: bottomEllipse.width + 2.0, height: bottomEllipse.height / 2.0))) + } + context.fill(CGRect(origin: CGPoint(x: fixedMainDiameter / 2.0, y: fixedMainDiameter / 2.0), size: CGSize(width: fixedMainDiameter / 2.0 + borderWidth, height: bottomEllipse.midY - fixedMainDiameter / 2.0))) + + context.setBlendMode(.normal) + context.move(to: CGPoint(x: fixedMainDiameter + borderOffset, y: fixedMainDiameter / 2.0)) + context.addLine(to: CGPoint(x: fixedMainDiameter + borderOffset, y: outlineBottomEllipse.midY)) + context.strokePath() + + let bubbleTailContext = DrawingContext(size: imageSize) + bubbleTailContext.withFlippedContext { context in + context.clear(CGRect(origin: CGPoint(), size: rawSize)) + context.translateBy(x: additionalInset + strokeInset, y: additionalInset + strokeInset) + + context.setStrokeColor(UIColor.black.cgColor) + context.setLineWidth(borderWidth) + + if maxCornerRadius >= minRadiusForFullTailCorner { + context.move(to: CGPoint(x: outlineBottomEllipse.minX, y: outlineBottomEllipse.midY)) + context.addQuadCurve(to: CGPoint(x: outlineBottomEllipse.midX, y: outlineBottomEllipse.maxY), control: CGPoint(x: outlineBottomEllipse.minX, y: outlineBottomEllipse.maxY)) + context.addQuadCurve(to: CGPoint(x: outlineBottomEllipse.maxX, y: outlineBottomEllipse.midY), control: CGPoint(x: outlineBottomEllipse.maxX, y: outlineBottomEllipse.maxY)) + } else { + context.move(to: CGPoint(x: outlineBottomEllipse.minX - 2.0, y: outlineBottomEllipse.maxY)) + context.addLine(to: CGPoint(x: outlineBottomEllipse.minX, y: outlineBottomEllipse.maxY)) + context.addLine(to: CGPoint(x: outlineBottomEllipse.maxX, y: outlineBottomEllipse.maxY)) + } + context.strokePath() + context.setFillColor(UIColor.clear.cgColor) + context.setBlendMode(.copy) + context.fillEllipse(in: outlineInnerTopEllipse) + + context.move(to: CGPoint(x: 0.0, y: topLeftRadius)) + context.addArc(tangent1End: CGPoint(x: 0.0, y: 0.0), tangent2End: CGPoint(x: topLeftRadius, y: 0.0), radius: topLeftRadius) + context.addLine(to: CGPoint(x: fixedMainDiameter - topRightRadius, y: 0.0)) + context.addArc(tangent1End: CGPoint(x: fixedMainDiameter, y: 0.0), tangent2End: CGPoint(x: fixedMainDiameter, y: topRightRadius), radius: topRightRadius) + context.addLine(to: CGPoint(x: fixedMainDiameter, y: fixedMainDiameter - bottomRightRadius)) + context.addArc(tangent1End: CGPoint(x: fixedMainDiameter, y: fixedMainDiameter), tangent2End: CGPoint(x: fixedMainDiameter - bottomRightRadius, y: fixedMainDiameter), radius: bottomRightRadius) + context.addLine(to: CGPoint(x: bottomLeftRadius, y: fixedMainDiameter)) + context.addArc(tangent1End: CGPoint(x: 0.0, y: fixedMainDiameter), tangent2End: CGPoint(x: 0.0, y: fixedMainDiameter - bottomLeftRadius), radius: bottomLeftRadius) + context.addLine(to: CGPoint(x: 0.0, y: topLeftRadius)) + context.fillPath() + + let bottomEllipseMask = generateImage(bottomEllipse.insetBy(dx: -1.0, dy: -1.0).size, contextGenerator: { size, context in + context.clear(CGRect(origin: CGPoint(), size: size)) + context.setFillColor(UIColor.black.cgColor) + if maxCornerRadius >= minRadiusForFullTailCorner { + context.fillEllipse(in: CGRect(origin: CGPoint(x: 1.0 - borderOffset, y: 1.0 - borderOffset), size: CGSize(width: outlineBottomEllipse.width, height: outlineBottomEllipse.height))) + } else { + context.fill(CGRect(origin: CGPoint(x: 1.0 - borderOffset, y: 1.0 - borderOffset), size: CGSize(width: outlineBottomEllipse.width, height: outlineBottomEllipse.height))) + } + context.clear(CGRect(origin: CGPoint(), size: CGSize(width: size.width, height: size.height / 2.0))) + })! + + context.clip(to: bottomEllipse.insetBy(dx: -1.0, dy: -1.0), mask: bottomEllipseMask.cgImage!) + context.strokeEllipse(in: outlineInnerTopEllipse) + context.resetClip() + } + + context.translateBy(x: -(additionalInset + strokeInset), y: -(additionalInset + strokeInset)) + context.draw(bubbleTailContext.generateImage()!.cgImage!, in: CGRect(origin: CGPoint(), size: rawSize)) + context.translateBy(x: additionalInset + strokeInset, y: additionalInset + strokeInset) + } + } + let outlineImage = outlineContext.generateImage()! + + let drawingContext = DrawingContext(size: imageSize) + drawingContext.withFlippedContext { context in var drawWithClearColor = false if knockout { @@ -48,94 +287,33 @@ public func messageBubbleImage(incoming: Bool, fillColor: UIColor, strokeColor: context.clear(CGRect(origin: CGPoint(), size: rawSize)) } - let additionalOffset: CGFloat - switch neighbors { - case .none, .bottom: - additionalOffset = 0.0 - case .both, .side, .top: - additionalOffset = 6.0 - } - - context.translateBy(x: rawSize.width / 2.0, y: rawSize.height / 2.0) - context.scaleBy(x: incoming ? 1.0 : -1.0, y: -1.0) - context.translateBy(x: -rawSize.width / 2.0, y: -rawSize.height / 2.0) - - context.translateBy(x: additionalOffset + 0.5, y: 0.5) - - let size = CGSize(width: rawSize.width - inset * 2.0, height: rawSize.height - inset * 2.0) - context.translateBy(x: inset, y: inset) - - var lineWidth: CGFloat = 1.0 - if drawWithClearColor { context.setBlendMode(.copy) context.setFillColor(UIColor.clear.cgColor) - context.setStrokeColor(UIColor.clear.cgColor) } else { + context.setBlendMode(.normal) context.setFillColor(fillColor.cgColor) - context.setLineWidth(lineWidth) - context.setStrokeColor(strokeColor.cgColor) } - if onlyOutline { - if knockout { - lineWidth = max(UIScreenPixel, 1.0 - 0.5) - } - context.setLineWidth(lineWidth) - context.setStrokeColor(strokeColor.cgColor) + context.saveGState() + + context.translateBy(x: rawSize.width / 2.0, y: rawSize.height / 2.0) + context.scaleBy(x: incoming ? -1.0 : 1.0, y: -1.0) + context.translateBy(x: -rawSize.width / 2.0, y: -rawSize.height / 2.0) + + if !onlyOutline { + context.clip(to: CGRect(origin: CGPoint(), size: rawSize), mask: formImage.cgImage!) + context.fill(CGRect(origin: CGPoint(), size: rawSize)) + } else { + context.setFillColor(strokeColor.cgColor) + context.clip(to: CGRect(origin: CGPoint(), size: rawSize), mask: outlineImage.cgImage!) + context.fill(CGRect(origin: CGPoint(), size: rawSize)) } - switch neighbors { - case .none: - if onlyOutline { - let _ = try? drawSvgPath(context, path: "M6,17.5 C6,7.83289181 13.8350169,0 23.5,0 C33.1671082,0 41,7.83501688 41,17.5 C41,27.1671082 33.1649831,35 23.5,35 C19.2941198,35 15.4354328,33.5169337 12.4179496,31.0453367 C9.05531719,34.9894816 -2.41102995e-08,35 0,35 C5.972003,31.5499861 6,26.8616169 6,26.8616169 L6,17.5 L6,17.5 ") - context.strokePath() - } else { - let _ = try? drawSvgPath(context, path: "M6,17.5 C6,7.83289181 13.8350169,0 23.5,0 C33.1671082,0 41,7.83501688 41,17.5 C41,27.1671082 33.1649831,35 23.5,35 C19.2941198,35 15.4354328,33.5169337 12.4179496,31.0453367 C9.05531719,34.9894816 -2.41102995e-08,35 0,35 C5.972003,31.5499861 6,26.8616169 6,26.8616169 L6,17.5 L6,17.5 ") - context.fillPath() - } - case .side: - if onlyOutline { - context.strokeEllipse(in: CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: 35.0, height: 35.0))) - } else { - context.fillEllipse(in: CGRect(origin: CGPoint(x: 0.0, y: 0.0), size: CGSize(width: 35.0, height: 35.0))) - } - case let .top(side): - if side { - if onlyOutline { - let _ = try? drawSvgPath(context, path: "M17.5,0 L17.5,0 C27.1649831,-1.7754286e-15 35,7.83501688 35,17.5 L35,29 C35,32.3137085 32.3137085,35 29,35 L6,35 C2.6862915,35 4.05812251e-16,32.3137085 0,29 L0,17.5 C-1.18361906e-15,7.83501688 7.83501688,1.7754286e-15 17.5,0 ") - context.strokePath() - } else { - let _ = try? drawSvgPath(context, path: "M17.5,0 L17.5,0 C27.1649831,-1.7754286e-15 35,7.83501688 35,17.5 L35,29 C35,32.3137085 32.3137085,35 29,35 L6,35 C2.6862915,35 4.05812251e-16,32.3137085 0,29 L0,17.5 C-1.18361906e-15,7.83501688 7.83501688,1.7754286e-15 17.5,0 ") - context.fillPath() - } - } else { - if onlyOutline { - let _ = try? drawSvgPath(context, path: "M35,17.5 C35,7.83501688 27.1671082,0 17.5,0 L17.5,0 C7.83501688,0 0,7.83289181 0,17.5 L0,29.0031815 C0,32.3151329 2.6882755,35 5.99681848,35 L17.5,35 C27.1649831,35 35,27.1671082 35,17.5 L35,17.5 L35,17.5 ") - context.strokePath() - } else { - let _ = try? drawSvgPath(context, path: "M35,17.5 C35,7.83501688 27.1671082,0 17.5,0 L17.5,0 C7.83501688,0 0,7.83289181 0,17.5 L0,29.0031815 C0,32.3151329 2.6882755,35 5.99681848,35 L17.5,35 C27.1649831,35 35,27.1671082 35,17.5 L35,17.5 L35,17.5 ") - context.fillPath() - } - } - case .bottom: - if onlyOutline { - let _ = try? drawSvgPath(context, path: "M6,17.5 L6,5.99681848 C6,2.6882755 8.68486709,0 11.9968185,0 L23.5,0 C33.1671082,0 41,7.83501688 41,17.5 C41,27.1671082 33.1649831,35 23.5,35 C19.2941198,35 15.4354328,33.5169337 12.4179496,31.0453367 C9.05531719,34.9894816 -2.41103066e-08,35 0,35 C5.972003,31.5499861 6,26.8616169 6,26.8616169 L6,17.5 L6,17.5 ") - context.strokePath() - } else { - let _ = try? drawSvgPath(context, path: "M6,17.5 L6,5.99681848 C6,2.6882755 8.68486709,0 11.9968185,0 L23.5,0 C33.1671082,0 41,7.83501688 41,17.5 C41,27.1671082 33.1649831,35 23.5,35 C19.2941198,35 15.4354328,33.5169337 12.4179496,31.0453367 C9.05531719,34.9894816 -2.41103066e-08,35 0,35 C5.972003,31.5499861 6,26.8616169 6,26.8616169 L6,17.5 L6,17.5 ") - context.fillPath() - } - case .both: - if onlyOutline { - let _ = try? drawSvgPath(context, path: "M35,17.5 C35,7.83501688 27.1671082,0 17.5,0 L5.99681848,0 C2.68486709,0 0,2.6882755 0,5.99681848 L0,29.0031815 C0,32.3151329 2.6882755,35 5.99681848,35 L17.5,35 C27.1649831,35 35,27.1671082 35,17.5 L35,17.5 L35,17.5 ") - context.strokePath() - } else { - let _ = try? drawSvgPath(context, path: "M35,17.5 C35,7.83501688 27.1671082,0 17.5,0 L5.99681848,0 C2.68486709,0 0,2.6882755 0,5.99681848 L0,29.0031815 C0,32.3151329 2.6882755,35 5.99681848,35 L17.5,35 C27.1649831,35 35,27.1671082 35,17.5 L35,17.5 L35,17.5 ") - context.fillPath() - } - } - })!.stretchableImage(withLeftCapWidth: incoming ? Int(inset + corner + diameter / 2.0 - 1.0) : Int(inset + diameter / 2.0), topCapHeight: Int(inset + diameter / 2.0)) + context.restoreGState() + } + + return drawingContext.generateImage()!.stretchableImage(withLeftCapWidth: incoming ? incomingStretchPoint.x : outgoingStretchPoint.x, topCapHeight: incoming ? incomingStretchPoint.y : outgoingStretchPoint.y) } public enum MessageBubbleActionButtonPosition { diff --git a/submodules/TelegramPresentationData/Sources/PresentationData.swift b/submodules/TelegramPresentationData/Sources/PresentationData.swift index c8e271e5cd..f33079da79 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationData.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationData.swift @@ -48,12 +48,25 @@ public enum PresentationDateFormat { case dayFirst } +public struct PresentationChatBubbleCorners: Equatable, Hashable { + public var mainRadius: CGFloat + public var auxiliaryRadius: CGFloat + public var mergeBubbleCorners: Bool + + public init(mainRadius: CGFloat, auxiliaryRadius: CGFloat, mergeBubbleCorners: Bool) { + self.mainRadius = mainRadius + self.auxiliaryRadius = auxiliaryRadius + self.mergeBubbleCorners = mergeBubbleCorners + } +} + public final class PresentationData: Equatable { public let strings: PresentationStrings public let theme: PresentationTheme public let autoNightModeTriggered: Bool public let chatWallpaper: TelegramWallpaper public let chatFontSize: PresentationFontSize + public let chatBubbleCorners: PresentationChatBubbleCorners public let listsFontSize: PresentationFontSize public let dateTimeFormat: PresentationDateTimeFormat public let nameDisplayOrder: PresentationPersonNameOrder @@ -61,12 +74,13 @@ public final class PresentationData: Equatable { public let disableAnimations: Bool public let largeEmoji: Bool - public init(strings: PresentationStrings, theme: PresentationTheme, autoNightModeTriggered: Bool, chatWallpaper: TelegramWallpaper, chatFontSize: PresentationFontSize, listsFontSize: PresentationFontSize, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, nameSortOrder: PresentationPersonNameOrder, disableAnimations: Bool, largeEmoji: Bool) { + public init(strings: PresentationStrings, theme: PresentationTheme, autoNightModeTriggered: Bool, chatWallpaper: TelegramWallpaper, chatFontSize: PresentationFontSize, chatBubbleCorners: PresentationChatBubbleCorners, listsFontSize: PresentationFontSize, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, nameSortOrder: PresentationPersonNameOrder, disableAnimations: Bool, largeEmoji: Bool) { self.strings = strings self.theme = theme self.autoNightModeTriggered = autoNightModeTriggered self.chatWallpaper = chatWallpaper self.chatFontSize = chatFontSize + self.chatBubbleCorners = chatBubbleCorners self.listsFontSize = listsFontSize self.dateTimeFormat = dateTimeFormat self.nameDisplayOrder = nameDisplayOrder @@ -76,7 +90,7 @@ public final class PresentationData: Equatable { } public static func ==(lhs: PresentationData, rhs: PresentationData) -> Bool { - return lhs.strings === rhs.strings && lhs.theme === rhs.theme && lhs.autoNightModeTriggered == rhs.autoNightModeTriggered && lhs.chatWallpaper == rhs.chatWallpaper && lhs.chatFontSize == rhs.chatFontSize && lhs.listsFontSize == rhs.listsFontSize && lhs.dateTimeFormat == rhs.dateTimeFormat && lhs.disableAnimations == rhs.disableAnimations && lhs.largeEmoji == rhs.largeEmoji + return lhs.strings === rhs.strings && lhs.theme === rhs.theme && lhs.autoNightModeTriggered == rhs.autoNightModeTriggered && lhs.chatWallpaper == rhs.chatWallpaper && lhs.chatFontSize == rhs.chatFontSize && lhs.chatBubbleCorners == rhs.chatBubbleCorners && lhs.listsFontSize == rhs.listsFontSize && lhs.dateTimeFormat == rhs.dateTimeFormat && lhs.disableAnimations == rhs.disableAnimations && lhs.largeEmoji == rhs.largeEmoji } } @@ -268,7 +282,9 @@ public func currentPresentationDataAndSettings(accountManager: AccountManager, s let (chatFontSize, listsFontSize) = resolveFontSize(settings: themeSettings) - return InitialPresentationDataAndSettings(presentationData: PresentationData(strings: stringsValue, theme: theme, autoNightModeTriggered: autoNightModeTriggered, chatWallpaper: effectiveChatWallpaper, chatFontSize: chatFontSize, listsFontSize: listsFontSize, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, nameSortOrder: nameSortOrder, disableAnimations: themeSettings.disableAnimations, largeEmoji: themeSettings.largeEmoji), automaticMediaDownloadSettings: automaticMediaDownloadSettings, autodownloadSettings: autodownloadSettings, callListSettings: callListSettings, inAppNotificationSettings: inAppNotificationSettings, mediaInputSettings: mediaInputSettings, experimentalUISettings: experimentalUISettings) + let chatBubbleCorners = PresentationChatBubbleCorners(mainRadius: CGFloat(themeSettings.chatBubbleSettings.mainRadius), auxiliaryRadius: CGFloat(themeSettings.chatBubbleSettings.auxiliaryRadius), mergeBubbleCorners: themeSettings.chatBubbleSettings.mergeBubbleCorners) + + return InitialPresentationDataAndSettings(presentationData: PresentationData(strings: stringsValue, theme: theme, autoNightModeTriggered: autoNightModeTriggered, chatWallpaper: effectiveChatWallpaper, chatFontSize: chatFontSize, chatBubbleCorners: chatBubbleCorners, listsFontSize: listsFontSize, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, nameSortOrder: nameSortOrder, disableAnimations: themeSettings.disableAnimations, largeEmoji: themeSettings.largeEmoji), automaticMediaDownloadSettings: automaticMediaDownloadSettings, autodownloadSettings: autodownloadSettings, callListSettings: callListSettings, inAppNotificationSettings: inAppNotificationSettings, mediaInputSettings: mediaInputSettings, experimentalUISettings: experimentalUISettings) } } @@ -601,7 +617,9 @@ public func updatedPresentationData(accountManager: AccountManager, applicationI let (chatFontSize, listsFontSize) = resolveFontSize(settings: themeSettings) - return PresentationData(strings: stringsValue, theme: themeValue, autoNightModeTriggered: autoNightModeTriggered, chatWallpaper: effectiveChatWallpaper, chatFontSize: chatFontSize, listsFontSize: listsFontSize, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, nameSortOrder: nameSortOrder, disableAnimations: themeSettings.disableAnimations, largeEmoji: themeSettings.largeEmoji) + let chatBubbleCorners = PresentationChatBubbleCorners(mainRadius: CGFloat(themeSettings.chatBubbleSettings.mainRadius), auxiliaryRadius: CGFloat(themeSettings.chatBubbleSettings.auxiliaryRadius), mergeBubbleCorners: themeSettings.chatBubbleSettings.mergeBubbleCorners) + + return PresentationData(strings: stringsValue, theme: themeValue, autoNightModeTriggered: autoNightModeTriggered, chatWallpaper: effectiveChatWallpaper, chatFontSize: chatFontSize, chatBubbleCorners: chatBubbleCorners, listsFontSize: listsFontSize, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, nameSortOrder: nameSortOrder, disableAnimations: themeSettings.disableAnimations, largeEmoji: themeSettings.largeEmoji) } } else { return .complete() @@ -634,15 +652,21 @@ public func defaultPresentationData() -> PresentationData { let (chatFontSize, listsFontSize) = resolveFontSize(settings: themeSettings) - return PresentationData(strings: defaultPresentationStrings, theme: defaultPresentationTheme, autoNightModeTriggered: false, chatWallpaper: .builtin(WallpaperSettings()), chatFontSize: chatFontSize, listsFontSize: listsFontSize, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, nameSortOrder: nameSortOrder, disableAnimations: themeSettings.disableAnimations, largeEmoji: themeSettings.largeEmoji) + let chatBubbleCorners = PresentationChatBubbleCorners(mainRadius: CGFloat(themeSettings.chatBubbleSettings.mainRadius), auxiliaryRadius: CGFloat(themeSettings.chatBubbleSettings.auxiliaryRadius), mergeBubbleCorners: themeSettings.chatBubbleSettings.mergeBubbleCorners) + + return PresentationData(strings: defaultPresentationStrings, theme: defaultPresentationTheme, autoNightModeTriggered: false, chatWallpaper: .builtin(WallpaperSettings()), chatFontSize: chatFontSize, chatBubbleCorners: chatBubbleCorners, listsFontSize: listsFontSize, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, nameSortOrder: nameSortOrder, disableAnimations: themeSettings.disableAnimations, largeEmoji: themeSettings.largeEmoji) } public extension PresentationData { func withFontSizes(chatFontSize: PresentationFontSize, listsFontSize: PresentationFontSize) -> PresentationData { - return PresentationData(strings: self.strings, theme: self.theme, autoNightModeTriggered: self.autoNightModeTriggered, chatWallpaper: self.chatWallpaper, chatFontSize: chatFontSize, listsFontSize: listsFontSize, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, nameSortOrder: self.nameSortOrder, disableAnimations: self.disableAnimations, largeEmoji: self.largeEmoji) + return PresentationData(strings: self.strings, theme: self.theme, autoNightModeTriggered: self.autoNightModeTriggered, chatWallpaper: self.chatWallpaper, chatFontSize: chatFontSize, chatBubbleCorners: self.chatBubbleCorners, listsFontSize: listsFontSize, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, nameSortOrder: self.nameSortOrder, disableAnimations: self.disableAnimations, largeEmoji: self.largeEmoji) + } + + func withChatBubbleCorners(_ chatBubbleCorners: PresentationChatBubbleCorners) -> PresentationData { + return PresentationData(strings: self.strings, theme: self.theme, autoNightModeTriggered: self.autoNightModeTriggered, chatWallpaper: self.chatWallpaper, chatFontSize: self.chatFontSize, chatBubbleCorners: chatBubbleCorners, listsFontSize: self.listsFontSize, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, nameSortOrder: self.nameSortOrder, disableAnimations: self.disableAnimations, largeEmoji: self.largeEmoji) } func withStrings(_ strings: PresentationStrings) -> PresentationData { - return PresentationData(strings: strings, theme: self.theme, autoNightModeTriggered: self.autoNightModeTriggered, chatWallpaper: self.chatWallpaper, chatFontSize: self.chatFontSize, listsFontSize: self.listsFontSize, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, nameSortOrder: self.nameSortOrder, disableAnimations: self.disableAnimations, largeEmoji: self.largeEmoji) + return PresentationData(strings: strings, theme: self.theme, autoNightModeTriggered: self.autoNightModeTriggered, chatWallpaper: self.chatWallpaper, chatFontSize: self.chatFontSize, chatBubbleCorners: chatBubbleCorners, listsFontSize: self.listsFontSize, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, nameSortOrder: self.nameSortOrder, disableAnimations: self.disableAnimations, largeEmoji: self.largeEmoji) } } diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index d4e4d3501b..221c9c51a5 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -2403,2916 +2403,2920 @@ public final class PresentationStrings: Equatable { public var ScheduledMessages_SendNow: String { return self._s[2051]! } public var Checkout_NewCard_PaymentCard: String { return self._s[2053]! } public var Login_InfoHelp: String { return self._s[2054]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2055]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2056]! } + public var Appearance_BubbleCorners_AdjustAdjacent: String { return self._s[2055]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2056]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2057]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2057]!, self._r[2057]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2058]!, self._r[2058]!, [_1, _2]) } - public var SocksProxySetup_AddProxy: String { return self._s[2060]! } - public var CreatePoll_Title: String { return self._s[2061]! } - public var MessagePoll_QuizNoUsers: String { return self._s[2062]! } - public var Conversation_ViewTheme: String { return self._s[2063]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2064]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2065]! } - public var TwoFactorSetup_Intro_Text: String { return self._s[2066]! } - public var UserInfo_GroupsInCommon: String { return self._s[2067]! } - public var TelegramWallet_Intro_TermsUrl: String { return self._s[2068]! } - public var Call_AudioRouteHide: String { return self._s[2069]! } + public var SocksProxySetup_AddProxy: String { return self._s[2061]! } + public var CreatePoll_Title: String { return self._s[2062]! } + public var MessagePoll_QuizNoUsers: String { return self._s[2063]! } + public var Conversation_ViewTheme: String { return self._s[2064]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2065]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2066]! } + public var TwoFactorSetup_Intro_Text: String { return self._s[2067]! } + public var UserInfo_GroupsInCommon: String { return self._s[2068]! } + public var TelegramWallet_Intro_TermsUrl: String { return self._s[2069]! } + public var Call_AudioRouteHide: String { return self._s[2070]! } public func Wallet_Info_TransactionDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2071]!, self._r[2071]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2072]!, self._r[2072]!, [_1, _2]) } - public var ContactInfo_PhoneLabelMobile: String { return self._s[2072]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2073]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[2074]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[2073]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2074]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[2075]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2075]!, self._r[2075]!, [_0]) + return formatWithArgumentRanges(self._s[2076]!, self._r[2076]!, [_0]) } - public var TextFormat_Bold: String { return self._s[2076]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2077]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[2078]! } - public var Notifications_Title: String { return self._s[2079]! } - public var Group_Username_InvalidTooShort: String { return self._s[2080]! } - public var Channel_ErrorAddTooMuch: String { return self._s[2081]! } + public var TextFormat_Bold: String { return self._s[2077]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2078]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[2079]! } + public var Notifications_Title: String { return self._s[2080]! } + public var Group_Username_InvalidTooShort: String { return self._s[2081]! } + public var Channel_ErrorAddTooMuch: String { return self._s[2082]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2082]!, self._r[2082]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2083]!, self._r[2083]!, ["\(_0)"]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[2084]! } - public var Stickers_SuggestAdded: String { return self._s[2085]! } - public var Login_CountryCode: String { return self._s[2086]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[2087]! } - public var Map_GetDirections: String { return self._s[2088]! } - public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2089]! } - public var Login_PhoneFloodError: String { return self._s[2090]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[2085]! } + public var Stickers_SuggestAdded: String { return self._s[2086]! } + public var Login_CountryCode: String { return self._s[2087]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[2088]! } + public var Map_GetDirections: String { return self._s[2089]! } + public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2090]! } + public var Login_PhoneFloodError: String { return self._s[2091]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2091]!, self._r[2091]!, [_0]) + return formatWithArgumentRanges(self._s[2092]!, self._r[2092]!, [_0]) } public func Wallet_Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2092]!, self._r[2092]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2093]!, self._r[2093]!, [_1, _2, _3]) } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2093]! } - public var Settings_SetUsername: String { return self._s[2095]! } - public var Group_Location_ChangeLocation: String { return self._s[2096]! } - public var Notification_GroupInviterSelf: String { return self._s[2097]! } - public var InstantPage_TapToOpenLink: String { return self._s[2098]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2094]! } + public var Settings_SetUsername: String { return self._s[2096]! } + public var Group_Location_ChangeLocation: String { return self._s[2097]! } + public var Notification_GroupInviterSelf: String { return self._s[2098]! } + public var InstantPage_TapToOpenLink: String { return self._s[2099]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2099]!, self._r[2099]!, [_0]) + return formatWithArgumentRanges(self._s[2100]!, self._r[2100]!, [_0]) } - public var Watch_Suggestion_TalkLater: String { return self._s[2100]! } - public var SecretChat_Title: String { return self._s[2101]! } - public var Group_UpgradeNoticeText1: String { return self._s[2102]! } - public var AuthSessions_Title: String { return self._s[2103]! } + public var Watch_Suggestion_TalkLater: String { return self._s[2101]! } + public var SecretChat_Title: String { return self._s[2102]! } + public var Group_UpgradeNoticeText1: String { return self._s[2103]! } + public var AuthSessions_Title: String { return self._s[2104]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2104]!, self._r[2104]!, [_0]) + return formatWithArgumentRanges(self._s[2105]!, self._r[2105]!, [_0]) } - public var PhotoEditor_CropAuto: String { return self._s[2105]! } - public var Channel_About_Title: String { return self._s[2106]! } - public var Theme_ThemeChanged: String { return self._s[2107]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[2108]! } + public var PhotoEditor_CropAuto: String { return self._s[2106]! } + public var Channel_About_Title: String { return self._s[2107]! } + public var Theme_ThemeChanged: String { return self._s[2108]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[2109]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2110]!, self._r[2110]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2111]!, self._r[2111]!, ["\(_0)"]) } - public var VoiceOver_MessageContextReport: String { return self._s[2111]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2113]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[2114]! } + public var VoiceOver_MessageContextReport: String { return self._s[2112]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2114]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[2115]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2115]!, self._r[2115]!, [_1]) + return formatWithArgumentRanges(self._s[2116]!, self._r[2116]!, [_1]) } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2117]!, self._r[2117]!, [_0]) - } - public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2118]!, self._r[2118]!, [_0]) } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2119]! } - public var Presence_online: String { return self._s[2122]! } - public var PasscodeSettings_Title: String { return self._s[2123]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2124]! } - public var Web_OpenExternal: String { return self._s[2125]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[2127]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2128]! } - public var LocalGroup_Title: String { return self._s[2129]! } + public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2119]!, self._r[2119]!, [_0]) + } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2120]! } + public var Presence_online: String { return self._s[2123]! } + public var PasscodeSettings_Title: String { return self._s[2124]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2125]! } + public var Web_OpenExternal: String { return self._s[2126]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[2128]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2129]! } + public var LocalGroup_Title: String { return self._s[2130]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2130]!, self._r[2130]!, [_0]) + return formatWithArgumentRanges(self._s[2131]!, self._r[2131]!, [_0]) } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2131]! } - public var Conversation_StopQuizConfirmation: String { return self._s[2132]! } - public var Map_YouAreHere: String { return self._s[2133]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2132]! } + public var Conversation_StopQuizConfirmation: String { return self._s[2133]! } + public var Map_YouAreHere: String { return self._s[2134]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2134]!, self._r[2134]!, [_0]) - } - public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[2136]! } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2137]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2138]! } - public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2139]!, self._r[2139]!, [_0]) + public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_0]) } - public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { + public var Theme_Context_ChangeColors: String { return self._s[2137]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2138]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2139]! } + public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2140]!, self._r[2140]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[2141]! } - public var Bot_Start: String { return self._s[2142]! } - public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2143]!, self._r[2143]!, [_0]) + public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2141]!, self._r[2141]!, [_0]) } - public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { + public var SocksProxySetup_Username: String { return self._s[2142]! } + public var Bot_Start: String { return self._s[2143]! } + public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2144]!, self._r[2144]!, [_0]) } - public var Contacts_SortByPresence: String { return self._s[2145]! } - public var AccentColor_Title: String { return self._s[2147]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2148]! } + public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2145]!, self._r[2145]!, [_0]) + } + public var Contacts_SortByPresence: String { return self._s[2146]! } + public var AccentColor_Title: String { return self._s[2148]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2149]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2149]!, self._r[2149]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2150]!, self._r[2150]!, [_1, _2]) } public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2150]!, self._r[2150]!, [_0]) + return formatWithArgumentRanges(self._s[2151]!, self._r[2151]!, [_0]) } public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2151]!, self._r[2151]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2152]!, self._r[2152]!, [_1, _2]) } - public var Passport_Email_EnterOtherEmail: String { return self._s[2152]! } - public var Login_InfoAvatarPhoto: String { return self._s[2153]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2154]! } - public var Tour_Title4: String { return self._s[2155]! } - public var Passport_Identity_Translation: String { return self._s[2156]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2157]! } - public var Login_TermsOfServiceLabel: String { return self._s[2159]! } - public var Passport_Language_it: String { return self._s[2160]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2161]! } - public var Passport_Identity_SelfieHelp: String { return self._s[2162]! } - public var Conversation_ClearAll: String { return self._s[2164]! } - public var Wallet_Send_UninitializedText: String { return self._s[2166]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[2167]! } - public var TwoStepAuth_FloodError: String { return self._s[2168]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[2153]! } + public var Login_InfoAvatarPhoto: String { return self._s[2154]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2155]! } + public var Tour_Title4: String { return self._s[2156]! } + public var Passport_Identity_Translation: String { return self._s[2157]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2158]! } + public var Login_TermsOfServiceLabel: String { return self._s[2160]! } + public var Passport_Language_it: String { return self._s[2161]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2162]! } + public var Passport_Identity_SelfieHelp: String { return self._s[2163]! } + public var Conversation_ClearAll: String { return self._s[2165]! } + public var Wallet_Send_UninitializedText: String { return self._s[2167]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[2168]! } + public var TwoStepAuth_FloodError: String { return self._s[2169]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2169]!, self._r[2169]!, [_1]) + return formatWithArgumentRanges(self._s[2170]!, self._r[2170]!, [_1]) } - public var Paint_Delete: String { return self._s[2170]! } + public var Paint_Delete: String { return self._s[2171]! } public func Wallet_Sent_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2171]!, self._r[2171]!, [_0]) + return formatWithArgumentRanges(self._s[2172]!, self._r[2172]!, [_0]) } - public var Privacy_AddNewPeer: String { return self._s[2172]! } + public var Privacy_AddNewPeer: String { return self._s[2173]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2173]!, self._r[2173]!, [_1]) + return formatWithArgumentRanges(self._s[2174]!, self._r[2174]!, [_1]) } - public var LogoutOptions_SetPasscodeText: String { return self._s[2174]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[2175]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2175]!, self._r[2175]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2176]!, self._r[2176]!, [_1, _2]) } - public var Message_PinnedAudioMessage: String { return self._s[2176]! } + public var Message_PinnedAudioMessage: String { return self._s[2177]! } public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2177]!, self._r[2177]!, [_0]) + return formatWithArgumentRanges(self._s[2178]!, self._r[2178]!, [_0]) } - public var Notification_Mute1hMin: String { return self._s[2178]! } - public var Notifications_GroupNotificationsSound: String { return self._s[2179]! } - public var Wallet_Month_GenNovember: String { return self._s[2180]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[2181]! } - public var Conversation_MessageEditedLabel: String { return self._s[2182]! } + public var Notification_Mute1hMin: String { return self._s[2179]! } + public var Notifications_GroupNotificationsSound: String { return self._s[2180]! } + public var Wallet_Month_GenNovember: String { return self._s[2181]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[2182]! } + public var Conversation_MessageEditedLabel: String { return self._s[2183]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2183]!, self._r[2183]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2184]!, self._r[2184]!, [_0, _1]) } - public var Notification_Exceptions_AlwaysOff: String { return self._s[2184]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2185]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[2185]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2186]! } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2186]!, self._r[2186]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2187]!, self._r[2187]!, [_0, _1, _2]) } - public var NetworkUsageSettings_ResetStats: String { return self._s[2187]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[2188]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2188]!, self._r[2188]!, [_1]) + return formatWithArgumentRanges(self._s[2189]!, self._r[2189]!, [_1]) } - public var AccessDenied_LocationTracking: String { return self._s[2189]! } - public var Month_GenOctober: String { return self._s[2190]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2191]! } - public var EnterPasscode_EnterPasscode: String { return self._s[2192]! } - public var MediaPicker_TimerTooltip: String { return self._s[2194]! } - public var SharedMedia_TitleAll: String { return self._s[2195]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2198]! } - public var Conversation_RestrictedMedia: String { return self._s[2199]! } - public var AccessDenied_PhotosRestricted: String { return self._s[2200]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2202]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2203]! } + public var AccessDenied_LocationTracking: String { return self._s[2190]! } + public var Month_GenOctober: String { return self._s[2191]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2192]! } + public var EnterPasscode_EnterPasscode: String { return self._s[2193]! } + public var MediaPicker_TimerTooltip: String { return self._s[2195]! } + public var SharedMedia_TitleAll: String { return self._s[2196]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2199]! } + public var Conversation_RestrictedMedia: String { return self._s[2200]! } + public var AccessDenied_PhotosRestricted: String { return self._s[2201]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2203]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2204]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2204]!, self._r[2204]!, [_0]) + return formatWithArgumentRanges(self._s[2205]!, self._r[2205]!, [_0]) } - public var Conversation_SavedMessages: String { return self._s[2207]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[2209]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2210]! } + public var Conversation_SavedMessages: String { return self._s[2208]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[2210]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2211]! } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2212]!, self._r[2212]!, [_0]) + return formatWithArgumentRanges(self._s[2213]!, self._r[2213]!, [_0]) } - public var VoiceOver_Chat_YourMessage: String { return self._s[2213]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2214]! } public func VoiceOver_Chat_Title(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2214]!, self._r[2214]!, [_0]) + return formatWithArgumentRanges(self._s[2215]!, self._r[2215]!, [_0]) } - public var ReportPeer_AlertSuccess: String { return self._s[2215]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2216]! } + public var ReportPeer_AlertSuccess: String { return self._s[2216]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2217]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2217]!, self._r[2217]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2218]!, self._r[2218]!, [_1, _2]) } - public var Checkout_PasswordEntry_Title: String { return self._s[2218]! } - public var PhotoEditor_FadeTool: String { return self._s[2219]! } - public var Privacy_ContactsReset: String { return self._s[2220]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2219]! } + public var PhotoEditor_FadeTool: String { return self._s[2220]! } + public var Privacy_ContactsReset: String { return self._s[2221]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2222]!, self._r[2222]!, [_0]) + return formatWithArgumentRanges(self._s[2223]!, self._r[2223]!, [_0]) } - public var Message_PinnedVideoMessage: String { return self._s[2223]! } - public var ChatList_Mute: String { return self._s[2224]! } + public var Message_PinnedVideoMessage: String { return self._s[2224]! } + public var ChatList_Mute: String { return self._s[2225]! } public func Wallet_Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2225]!, self._r[2225]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2226]!, self._r[2226]!, [_1, _2, _3]) } - public var Permissions_CellularDataText_v0: String { return self._s[2226]! } - public var Conversation_PinnedQuiz: String { return self._s[2228]! } - public var ShareMenu_SelectChats: String { return self._s[2230]! } - public var ChatList_Context_Unarchive: String { return self._s[2231]! } - public var MusicPlayer_VoiceNote: String { return self._s[2232]! } - public var Conversation_RestrictedText: String { return self._s[2233]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2234]! } - public var Wallet_Month_GenApril: String { return self._s[2235]! } - public var Wallet_Month_ShortMarch: String { return self._s[2236]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[2237]! } - public var Cache_Videos: String { return self._s[2238]! } - public var PrivacySettings_PhoneNumber: String { return self._s[2239]! } - public var Wallet_Month_GenFebruary: String { return self._s[2240]! } - public var FeatureDisabled_Oops: String { return self._s[2242]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[2243]! } + public var Permissions_CellularDataText_v0: String { return self._s[2227]! } + public var Conversation_PinnedQuiz: String { return self._s[2229]! } + public var ShareMenu_SelectChats: String { return self._s[2231]! } + public var ChatList_Context_Unarchive: String { return self._s[2232]! } + public var MusicPlayer_VoiceNote: String { return self._s[2233]! } + public var Conversation_RestrictedText: String { return self._s[2234]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2235]! } + public var Wallet_Month_GenApril: String { return self._s[2236]! } + public var Wallet_Month_ShortMarch: String { return self._s[2237]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2238]! } + public var Cache_Videos: String { return self._s[2239]! } + public var PrivacySettings_PhoneNumber: String { return self._s[2240]! } + public var Wallet_Month_GenFebruary: String { return self._s[2241]! } + public var FeatureDisabled_Oops: String { return self._s[2243]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[2244]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2244]!, self._r[2244]!, [_0]) + return formatWithArgumentRanges(self._s[2245]!, self._r[2245]!, [_0]) } - public var Stickers_GroupStickersHelp: String { return self._s[2245]! } - public var GroupPermission_NoSendPolls: String { return self._s[2246]! } - public var Wallet_Qr_ScanCode: String { return self._s[2247]! } - public var Message_VideoExpired: String { return self._s[2249]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[2250]! } - public var Notifications_Badge: String { return self._s[2251]! } - public var Wallet_Receive_AddressCopied: String { return self._s[2252]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[2253]! } - public var Username_InvalidTooShort: String { return self._s[2254]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2255]! } - public var Channel_AdminLog_PinMessages: String { return self._s[2256]! } - public var ArchivedChats_IntroTitle3: String { return self._s[2257]! } + public var Stickers_GroupStickersHelp: String { return self._s[2246]! } + public var GroupPermission_NoSendPolls: String { return self._s[2247]! } + public var Wallet_Qr_ScanCode: String { return self._s[2248]! } + public var Message_VideoExpired: String { return self._s[2250]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[2251]! } + public var Notifications_Badge: String { return self._s[2252]! } + public var Wallet_Receive_AddressCopied: String { return self._s[2253]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[2254]! } + public var Username_InvalidTooShort: String { return self._s[2255]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2256]! } + public var Channel_AdminLog_PinMessages: String { return self._s[2257]! } + public var ArchivedChats_IntroTitle3: String { return self._s[2258]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2258]!, self._r[2258]!, [_1]) + return formatWithArgumentRanges(self._s[2259]!, self._r[2259]!, [_1]) } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[2259]! } - public var Conversation_DefaultRestrictedText: String { return self._s[2260]! } - public var SharedMedia_CategoryDocs: String { return self._s[2263]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[2260]! } + public var Conversation_DefaultRestrictedText: String { return self._s[2261]! } + public var SharedMedia_CategoryDocs: String { return self._s[2264]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2264]!, self._r[2264]!, [_1]) + return formatWithArgumentRanges(self._s[2265]!, self._r[2265]!, [_1]) } - public var Wallet_Send_UninitializedTitle: String { return self._s[2265]! } - public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2266]! } - public var Privacy_Forwards_NeverLink: String { return self._s[2268]! } + public var Wallet_Send_UninitializedTitle: String { return self._s[2266]! } + public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2267]! } + public var Privacy_Forwards_NeverLink: String { return self._s[2269]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2269]!, self._r[2269]!, [_1]) + return formatWithArgumentRanges(self._s[2270]!, self._r[2270]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2270]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2271]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2271]!, self._r[2271]!, [_0]) + return formatWithArgumentRanges(self._s[2272]!, self._r[2272]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[2272]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2273]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[2274]! } - public var Channel_UpdatePhotoItem: String { return self._s[2275]! } - public var GroupInfo_LeftStatus: String { return self._s[2276]! } - public var Watch_MessageView_Forward: String { return self._s[2278]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[2279]! } - public var Cache_ClearEmpty: String { return self._s[2281]! } - public var Localization_LanguageName: String { return self._s[2282]! } - public var Wallet_AccessDenied_Title: String { return self._s[2283]! } - public var WebSearch_GIFs: String { return self._s[2284]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2285]! } - public var Wallet_AccessDenied_Settings: String { return self._s[2286]! } - public var Username_InvalidStartsWithNumber: String { return self._s[2287]! } - public var Common_Back: String { return self._s[2288]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2289]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2290]! } - public var Wallet_Send_Send: String { return self._s[2291]! } + public var ChatSettings_PrivateChats: String { return self._s[2273]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2274]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[2275]! } + public var Channel_UpdatePhotoItem: String { return self._s[2276]! } + public var GroupInfo_LeftStatus: String { return self._s[2277]! } + public var Watch_MessageView_Forward: String { return self._s[2279]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[2280]! } + public var Cache_ClearEmpty: String { return self._s[2282]! } + public var Localization_LanguageName: String { return self._s[2283]! } + public var Wallet_AccessDenied_Title: String { return self._s[2284]! } + public var WebSearch_GIFs: String { return self._s[2285]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2286]! } + public var Wallet_AccessDenied_Settings: String { return self._s[2287]! } + public var Username_InvalidStartsWithNumber: String { return self._s[2288]! } + public var Common_Back: String { return self._s[2289]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2290]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2291]! } + public var Wallet_Send_Send: String { return self._s[2292]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2293]!, self._r[2293]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2294]!, self._r[2294]!, [_1, _2]) } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[2294]! } - public var Wallet_Month_GenJune: String { return self._s[2295]! } - public var Passport_Email_Help: String { return self._s[2296]! } - public var Watch_Conversation_Reply: String { return self._s[2298]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[2301]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2302]! } - public var Channel_BanUser_Unban: String { return self._s[2304]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2305]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2306]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2308]! } - public var Wallet_Send_AddressHeader: String { return self._s[2309]! } - public var Passport_Identity_Name: String { return self._s[2310]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[2295]! } + public var Wallet_Month_GenJune: String { return self._s[2296]! } + public var Passport_Email_Help: String { return self._s[2297]! } + public var Watch_Conversation_Reply: String { return self._s[2299]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[2302]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2303]! } + public var Channel_BanUser_Unban: String { return self._s[2305]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2306]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2307]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2309]! } + public var Wallet_Send_AddressHeader: String { return self._s[2310]! } + public var Passport_Identity_Name: String { return self._s[2311]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2311]!, self._r[2311]!, [_0]) + return formatWithArgumentRanges(self._s[2312]!, self._r[2312]!, [_0]) } - public var GroupRemoved_ViewUserInfo: String { return self._s[2312]! } - public var Conversation_BlockUser: String { return self._s[2313]! } - public var Month_GenJanuary: String { return self._s[2314]! } - public var ChatSettings_TextSize: String { return self._s[2315]! } - public var Notification_PassportValuePhone: String { return self._s[2316]! } - public var MediaPlayer_UnknownArtist: String { return self._s[2317]! } - public var Passport_Language_ne: String { return self._s[2318]! } - public var Notification_CallBack: String { return self._s[2319]! } - public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2320]! } - public var TwoStepAuth_EmailHelp: String { return self._s[2321]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[2313]! } + public var Conversation_BlockUser: String { return self._s[2314]! } + public var Month_GenJanuary: String { return self._s[2315]! } + public var ChatSettings_TextSize: String { return self._s[2316]! } + public var Notification_PassportValuePhone: String { return self._s[2317]! } + public var MediaPlayer_UnknownArtist: String { return self._s[2318]! } + public var Passport_Language_ne: String { return self._s[2319]! } + public var Notification_CallBack: String { return self._s[2320]! } + public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2321]! } + public var TwoStepAuth_EmailHelp: String { return self._s[2322]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2322]!, self._r[2322]!, [_0]) + return formatWithArgumentRanges(self._s[2323]!, self._r[2323]!, [_0]) } - public var Channel_Info_Management: String { return self._s[2323]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[2324]! } - public var Stickers_FrequentlyUsed: String { return self._s[2325]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2326]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2328]! } + public var Channel_Info_Management: String { return self._s[2324]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[2325]! } + public var Stickers_FrequentlyUsed: String { return self._s[2326]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2327]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2329]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2329]!, self._r[2329]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[2330]!, self._r[2330]!, [_1, "\(_2)"]) } - public var TwoFactorSetup_Password_Title: String { return self._s[2330]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[2331]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[2332]! } - public var CreatePoll_TextHeader: String { return self._s[2333]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2331]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[2332]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[2333]! } + public var CreatePoll_TextHeader: String { return self._s[2334]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2334]!, self._r[2334]!, [_0]) + return formatWithArgumentRanges(self._s[2335]!, self._r[2335]!, [_0]) } - public var PhotoEditor_QualityMedium: String { return self._s[2335]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2336]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[2338]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[2339]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[2340]! } + public var PhotoEditor_QualityMedium: String { return self._s[2336]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2337]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[2339]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[2340]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[2341]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2341]!, self._r[2341]!, [_0]) + return formatWithArgumentRanges(self._s[2342]!, self._r[2342]!, [_0]) } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2342]!, self._r[2342]!, [_1]) + return formatWithArgumentRanges(self._s[2343]!, self._r[2343]!, [_1]) } - public var LogoutOptions_LogOutWalletInfo: String { return self._s[2343]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2344]! } - public var Conversation_LinkDialogOpen: String { return self._s[2346]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2347]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[2348]! } - public var Settings_Username: String { return self._s[2350]! } - public var Conversation_Block: String { return self._s[2352]! } - public var Wallpaper_Wallpaper: String { return self._s[2353]! } - public var SocksProxySetup_UseProxy: String { return self._s[2355]! } - public var Wallet_Send_Confirmation: String { return self._s[2356]! } - public var EditTheme_UploadEditedTheme: String { return self._s[2357]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[2358]! } - public var MessageTimer_Forever: String { return self._s[2359]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[2360]! } - public var PhotoEditor_DiscardChanges: String { return self._s[2361]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2362]! } - public var Passport_Language_da: String { return self._s[2363]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[2364]! } + public var LogoutOptions_LogOutWalletInfo: String { return self._s[2344]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2345]! } + public var Conversation_LinkDialogOpen: String { return self._s[2347]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2348]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[2349]! } + public var Settings_Username: String { return self._s[2351]! } + public var Conversation_Block: String { return self._s[2353]! } + public var Wallpaper_Wallpaper: String { return self._s[2354]! } + public var SocksProxySetup_UseProxy: String { return self._s[2356]! } + public var Wallet_Send_Confirmation: String { return self._s[2357]! } + public var EditTheme_UploadEditedTheme: String { return self._s[2358]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[2359]! } + public var MessageTimer_Forever: String { return self._s[2360]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[2361]! } + public var PhotoEditor_DiscardChanges: String { return self._s[2362]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2363]! } + public var Passport_Language_da: String { return self._s[2364]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[2365]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2365]!, self._r[2365]!, [_0]) + return formatWithArgumentRanges(self._s[2366]!, self._r[2366]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[2366]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[2367]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2368]!, self._r[2368]!, [_0]) + return formatWithArgumentRanges(self._s[2369]!, self._r[2369]!, [_0]) } - public var Settings_AddDevice: String { return self._s[2369]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2371]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2372]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2373]! } - public var Conversation_PinnedPoll: String { return self._s[2374]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2375]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2376]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2377]! } + public var Settings_AddDevice: String { return self._s[2370]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2372]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2373]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2374]! } + public var Conversation_PinnedPoll: String { return self._s[2375]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2376]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2377]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2378]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2378]!, self._r[2378]!, [_1]) + return formatWithArgumentRanges(self._s[2379]!, self._r[2379]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[2379]! } - public var Cache_ByPeerHeader: String { return self._s[2380]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2380]! } + public var Cache_ByPeerHeader: String { return self._s[2381]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2381]!, self._r[2381]!, [_0]) + return formatWithArgumentRanges(self._s[2382]!, self._r[2382]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[2382]! } - public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2385]! } - public var Wallet_Completed_Title: String { return self._s[2386]! } - public var Notification_PinnedMessage: String { return self._s[2387]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2388]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2390]! } - public var Contacts_SortBy: String { return self._s[2391]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[2383]! } + public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2386]! } + public var Wallet_Completed_Title: String { return self._s[2387]! } + public var Notification_PinnedMessage: String { return self._s[2388]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2389]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2391]! } + public var Contacts_SortBy: String { return self._s[2392]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2392]!, self._r[2392]!, [_1]) + return formatWithArgumentRanges(self._s[2393]!, self._r[2393]!, [_1]) } - public var Appearance_ColorThemeNight: String { return self._s[2394]! } + public var Appearance_ColorThemeNight: String { return self._s[2395]! } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2395]!, self._r[2395]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2396]!, self._r[2396]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[2396]! } - public var Watch_UserInfo_Service: String { return self._s[2397]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2399]! } - public var Conversation_Unpin: String { return self._s[2401]! } - public var CancelResetAccount_Title: String { return self._s[2402]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[2403]! } + public var Call_EncryptionKey_Title: String { return self._s[2397]! } + public var Watch_UserInfo_Service: String { return self._s[2398]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2400]! } + public var Conversation_Unpin: String { return self._s[2402]! } + public var CancelResetAccount_Title: String { return self._s[2403]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[2404]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2405]!, self._r[2405]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2406]!, self._r[2406]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2406]! } - public var CallSettings_Title: String { return self._s[2407]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2408]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[2410]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2411]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2407]! } + public var Appearance_BubbleCorners_Title: String { return self._s[2408]! } + public var CallSettings_Title: String { return self._s[2409]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2410]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[2412]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2413]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2412]!, self._r[2412]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2414]!, self._r[2414]!, [_1, _2]) } - public var Passport_Identity_DocumentDetails: String { return self._s[2413]! } - public var LoginPassword_PasswordHelp: String { return self._s[2414]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2415]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2416]! } - public var ChatContextMenu_TextSelectionTip: String { return self._s[2417]! } - public var Checkout_TotalPaidAmount: String { return self._s[2418]! } + public var Passport_Identity_DocumentDetails: String { return self._s[2415]! } + public var LoginPassword_PasswordHelp: String { return self._s[2416]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2417]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2418]! } + public var ChatContextMenu_TextSelectionTip: String { return self._s[2419]! } + public var Checkout_TotalPaidAmount: String { return self._s[2420]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2419]!, self._r[2419]!, [_0]) + return formatWithArgumentRanges(self._s[2421]!, self._r[2421]!, [_0]) } - public var PasscodeSettings_ChangePasscode: String { return self._s[2420]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[2422]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[2423]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[2422]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[2424]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[2425]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2424]!, self._r[2424]!, [_1]) + return formatWithArgumentRanges(self._s[2426]!, self._r[2426]!, [_1]) } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2425]! } - public var Contacts_InviteFriends: String { return self._s[2427]! } - public var Map_ChooseLocationTitle: String { return self._s[2428]! } - public var Conversation_StopPoll: String { return self._s[2430]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2427]! } + public var Contacts_InviteFriends: String { return self._s[2429]! } + public var Map_ChooseLocationTitle: String { return self._s[2430]! } + public var Conversation_StopPoll: String { return self._s[2432]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2431]!, self._r[2431]!, [_0]) + return formatWithArgumentRanges(self._s[2433]!, self._r[2433]!, [_0]) } - public var Call_Camera: String { return self._s[2432]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2433]! } - public var AppWallet_Intro_Text: String { return self._s[2434]! } - public var Calls_RatingFeedback: String { return self._s[2435]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2437]! } - public var Wallet_Alert_OK: String { return self._s[2438]! } - public var NotificationsSound_Pulse: String { return self._s[2439]! } - public var Watch_LastSeen_Lately: String { return self._s[2440]! } - public var ReportGroupLocation_Report: String { return self._s[2443]! } - public var Widget_NoUsers: String { return self._s[2444]! } - public var Conversation_UnvotePoll: String { return self._s[2445]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2447]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2448]! } - public var NotificationsSound_Circles: String { return self._s[2449]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2452]! } - public var Wallet_Settings_DeleteWallet: String { return self._s[2453]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2454]! } - public var Proxy_TooltipUnavailable: String { return self._s[2455]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2457]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2459]! } - public var Conversation_FileDropbox: String { return self._s[2460]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[2461]! } - public var Tour_Text3: String { return self._s[2463]! } - public var Login_ResetAccountProtected_Title: String { return self._s[2465]! } - public var GroupPermission_NoSendMessages: String { return self._s[2466]! } - public var WallpaperSearch_ColorTitle: String { return self._s[2467]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2468]! } + public var Call_Camera: String { return self._s[2434]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2435]! } + public var AppWallet_Intro_Text: String { return self._s[2436]! } + public var Appearance_BubbleCornersSetting: String { return self._s[2437]! } + public var Calls_RatingFeedback: String { return self._s[2438]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2440]! } + public var Wallet_Alert_OK: String { return self._s[2441]! } + public var NotificationsSound_Pulse: String { return self._s[2442]! } + public var Watch_LastSeen_Lately: String { return self._s[2443]! } + public var ReportGroupLocation_Report: String { return self._s[2446]! } + public var Widget_NoUsers: String { return self._s[2447]! } + public var Conversation_UnvotePoll: String { return self._s[2448]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2450]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2451]! } + public var NotificationsSound_Circles: String { return self._s[2452]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2455]! } + public var Wallet_Settings_DeleteWallet: String { return self._s[2456]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2457]! } + public var Proxy_TooltipUnavailable: String { return self._s[2458]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2460]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2462]! } + public var Conversation_FileDropbox: String { return self._s[2463]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[2464]! } + public var Tour_Text3: String { return self._s[2466]! } + public var Login_ResetAccountProtected_Title: String { return self._s[2468]! } + public var GroupPermission_NoSendMessages: String { return self._s[2469]! } + public var WallpaperSearch_ColorTitle: String { return self._s[2470]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2471]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2470]!, self._r[2470]!, [_0]) + return formatWithArgumentRanges(self._s[2473]!, self._r[2473]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[2471]! } - public var Checkout_ShippingOption_Title: String { return self._s[2472]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2473]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[2474]! } + public var Checkout_ShippingOption_Title: String { return self._s[2475]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2476]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2474]!, self._r[2474]!, [_0]) + return formatWithArgumentRanges(self._s[2477]!, self._r[2477]!, [_0]) } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2475]!, self._r[2475]!, [_0]) + return formatWithArgumentRanges(self._s[2478]!, self._r[2478]!, [_0]) } - public var Channel_Management_LabelAdministrator: String { return self._s[2476]! } - public var EditTheme_FileReadError: String { return self._s[2477]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[2478]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2479]! } - public var AutoDownloadSettings_Photos: String { return self._s[2481]! } - public var Appearance_PreviewIncomingText: String { return self._s[2482]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[2483]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[2484]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2485]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2486]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2487]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2488]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2489]! } - public var Notification_SecretChatScreenshot: String { return self._s[2490]! } - public var AccessDenied_Wallpapers: String { return self._s[2491]! } - public var ChatList_Context_Mute: String { return self._s[2493]! } - public var Passport_Address_City: String { return self._s[2494]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2495]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[2496]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2497]! } - public var AccessDenied_LocationDisabled: String { return self._s[2498]! } - public var Group_Location_Title: String { return self._s[2499]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2501]! } - public var GroupInfo_Sound: String { return self._s[2502]! } - public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2503]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[2504]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2505]! } - public var Contacts_Title: String { return self._s[2506]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[2507]! } - public var Passport_Language_fr: String { return self._s[2508]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2509]! } - public var Notifications_ResetAllNotifications: String { return self._s[2510]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2512]! } - public var PrivacySettings_SecurityTitle: String { return self._s[2514]! } - public var Checkout_NewCard_Title: String { return self._s[2515]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[2516]! } - public var Conversation_ForwardChats: String { return self._s[2517]! } - public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2519]! } - public var PasscodeSettings_4DigitCode: String { return self._s[2520]! } - public var Settings_FAQ: String { return self._s[2522]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2523]! } - public var Conversation_ContextMenuForward: String { return self._s[2524]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[2527]! } - public var PrivacyPolicy_Title: String { return self._s[2530]! } - public var Notifications_TextTone: String { return self._s[2531]! } - public var Profile_CreateNewContact: String { return self._s[2532]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2533]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2535]! } - public var Call_Speaker: String { return self._s[2536]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2537]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2539]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2540]! } + public var Channel_Management_LabelAdministrator: String { return self._s[2479]! } + public var EditTheme_FileReadError: String { return self._s[2480]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[2481]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2482]! } + public var AutoDownloadSettings_Photos: String { return self._s[2484]! } + public var Appearance_PreviewIncomingText: String { return self._s[2485]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[2486]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[2487]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2488]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2489]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2490]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2491]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2492]! } + public var Notification_SecretChatScreenshot: String { return self._s[2493]! } + public var AccessDenied_Wallpapers: String { return self._s[2494]! } + public var ChatList_Context_Mute: String { return self._s[2496]! } + public var Passport_Address_City: String { return self._s[2497]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2498]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[2499]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2500]! } + public var AccessDenied_LocationDisabled: String { return self._s[2501]! } + public var Group_Location_Title: String { return self._s[2502]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2504]! } + public var GroupInfo_Sound: String { return self._s[2505]! } + public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2506]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[2507]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2508]! } + public var Contacts_Title: String { return self._s[2509]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[2510]! } + public var Passport_Language_fr: String { return self._s[2511]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2512]! } + public var Notifications_ResetAllNotifications: String { return self._s[2513]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2515]! } + public var PrivacySettings_SecurityTitle: String { return self._s[2517]! } + public var Checkout_NewCard_Title: String { return self._s[2518]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[2519]! } + public var Conversation_ForwardChats: String { return self._s[2520]! } + public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2522]! } + public var PasscodeSettings_4DigitCode: String { return self._s[2523]! } + public var Settings_FAQ: String { return self._s[2525]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2526]! } + public var Conversation_ContextMenuForward: String { return self._s[2527]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[2530]! } + public var PrivacyPolicy_Title: String { return self._s[2533]! } + public var Notifications_TextTone: String { return self._s[2534]! } + public var Profile_CreateNewContact: String { return self._s[2535]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2536]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2538]! } + public var Call_Speaker: String { return self._s[2539]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2540]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2542]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2543]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2541]!, self._r[2541]!, [_0]) + return formatWithArgumentRanges(self._s[2544]!, self._r[2544]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2542]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2543]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2544]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2545]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[2546]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2547]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2548]! } - public var Bot_Unblock: String { return self._s[2549]! } - public var TextFormat_Italic: String { return self._s[2550]! } - public var WallpaperSearch_ColorPink: String { return self._s[2551]! } - public var Settings_About_Help: String { return self._s[2553]! } - public var SearchImages_Title: String { return self._s[2554]! } - public var Weekday_Wednesday: String { return self._s[2555]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2556]! } - public var ExplicitContent_AlertTitle: String { return self._s[2557]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2545]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2546]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2547]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2548]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[2549]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2550]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2551]! } + public var Bot_Unblock: String { return self._s[2552]! } + public var TextFormat_Italic: String { return self._s[2553]! } + public var WallpaperSearch_ColorPink: String { return self._s[2554]! } + public var Settings_About_Help: String { return self._s[2556]! } + public var SearchImages_Title: String { return self._s[2557]! } + public var Weekday_Wednesday: String { return self._s[2558]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2559]! } + public var ExplicitContent_AlertTitle: String { return self._s[2560]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2558]!, self._r[2558]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2561]!, self._r[2561]!, [_1, _2, _3]) } - public var Channel_DiscussionGroup_Create: String { return self._s[2559]! } - public var Weekday_Thursday: String { return self._s[2560]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2561]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2562]! } + public var Channel_DiscussionGroup_Create: String { return self._s[2562]! } + public var Weekday_Thursday: String { return self._s[2563]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2564]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2565]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2563]!, self._r[2563]!, [_0]) + return formatWithArgumentRanges(self._s[2566]!, self._r[2566]!, [_0]) } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2564]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2565]! } - public var Passport_RequestedInformation: String { return self._s[2566]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2567]! } - public var Conversation_EncryptionProcessing: String { return self._s[2569]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2570]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2572]! } - public var Channel_Setup_Title: String { return self._s[2573]! } - public var Conversation_SearchPlaceholder: String { return self._s[2574]! } - public var OldChannels_GroupEmptyFormat: String { return self._s[2575]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2576]! } - public var Checkout_ErrorGeneric: String { return self._s[2577]! } - public var Passport_Language_hu: String { return self._s[2578]! } - public var GroupPermission_EditingDisabled: String { return self._s[2579]! } - public var Wallet_Month_ShortSeptember: String { return self._s[2581]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2567]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2568]! } + public var Passport_RequestedInformation: String { return self._s[2569]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2570]! } + public var Conversation_EncryptionProcessing: String { return self._s[2572]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2573]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2575]! } + public var Channel_Setup_Title: String { return self._s[2576]! } + public var Conversation_SearchPlaceholder: String { return self._s[2577]! } + public var OldChannels_GroupEmptyFormat: String { return self._s[2578]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2579]! } + public var Checkout_ErrorGeneric: String { return self._s[2580]! } + public var Passport_Language_hu: String { return self._s[2581]! } + public var GroupPermission_EditingDisabled: String { return self._s[2582]! } + public var Wallet_Month_ShortSeptember: String { return self._s[2584]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2582]!, self._r[2582]!, [_0]) + return formatWithArgumentRanges(self._s[2585]!, self._r[2585]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2585]!, self._r[2585]!, [_1]) + return formatWithArgumentRanges(self._s[2588]!, self._r[2588]!, [_1]) } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2586]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2589]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2587]!, self._r[2587]!, [_0]) + return formatWithArgumentRanges(self._s[2590]!, self._r[2590]!, [_0]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2588]! } - public var Group_Location_Info: String { return self._s[2589]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2590]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2591]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2591]! } + public var Group_Location_Info: String { return self._s[2592]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2593]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2594]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2592]!, self._r[2592]!, [_0]) + return formatWithArgumentRanges(self._s[2595]!, self._r[2595]!, [_0]) } - public var Conversation_ClearPrivateHistory: String { return self._s[2593]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2594]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[2595]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2596]! } + public var Conversation_ClearPrivateHistory: String { return self._s[2596]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2597]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[2598]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2599]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2597]!, self._r[2597]!, [_0]) + return formatWithArgumentRanges(self._s[2600]!, self._r[2600]!, [_0]) } public func Notification_PinnedQuizMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2598]!, self._r[2598]!, [_0]) + return formatWithArgumentRanges(self._s[2601]!, self._r[2601]!, [_0]) } - public var Passport_Language_cs: String { return self._s[2599]! } - public var Message_PinnedAnimationMessage: String { return self._s[2601]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2603]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2604]! } - public var Wallet_Info_TransactionTo: String { return self._s[2606]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2607]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2608]! } - public var Embed_PlayingInPIP: String { return self._s[2609]! } - public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2610]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2611]! } + public var Passport_Language_cs: String { return self._s[2602]! } + public var Message_PinnedAnimationMessage: String { return self._s[2604]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2606]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2607]! } + public var Wallet_Info_TransactionTo: String { return self._s[2609]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2610]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2611]! } + public var Embed_PlayingInPIP: String { return self._s[2612]! } + public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2613]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2614]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2612]!, self._r[2612]!, [_0]) + return formatWithArgumentRanges(self._s[2615]!, self._r[2615]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2613]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[2616]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2614]!, self._r[2614]!, [_1]) + return formatWithArgumentRanges(self._s[2617]!, self._r[2617]!, [_1]) } - public var Notification_PaymentSent: String { return self._s[2615]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2616]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2617]! } - public var AutoNightTheme_System: String { return self._s[2618]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2619]! } - public var CreatePoll_QuizTitle: String { return self._s[2620]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2621]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2622]! } + public var Notification_PaymentSent: String { return self._s[2618]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2619]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2620]! } + public var AutoNightTheme_System: String { return self._s[2621]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2622]! } + public var CreatePoll_QuizTitle: String { return self._s[2623]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2624]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2625]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2625]!, self._r[2625]!, [_1]) + return formatWithArgumentRanges(self._s[2628]!, self._r[2628]!, [_1]) } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2626]!, self._r[2626]!, [_1]) + return formatWithArgumentRanges(self._s[2629]!, self._r[2629]!, [_1]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2627]!, self._r[2627]!, [_1]) + return formatWithArgumentRanges(self._s[2630]!, self._r[2630]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2629]! } - public var PasscodeSettings_HelpTop: String { return self._s[2630]! } - public var Conversation_WalletRequiredTitle: String { return self._s[2631]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2632]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2633]! } - public var EditTheme_ShortLink: String { return self._s[2634]! } - public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2635]! } - public var ProxyServer_VoiceOver_Active: String { return self._s[2636]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2637]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2638]! } - public var Call_Accept: String { return self._s[2640]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2641]! } - public var Month_GenMarch: String { return self._s[2643]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2644]! } - public var LoginPassword_Title: String { return self._s[2645]! } - public var Call_End: String { return self._s[2646]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2647]! } - public var VoiceOver_Chat_Contact: String { return self._s[2648]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2649]! } - public var CallSettings_Always: String { return self._s[2650]! } - public var CallFeedback_Success: String { return self._s[2651]! } - public var TwoStepAuth_SetupHint: String { return self._s[2652]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2632]! } + public var PasscodeSettings_HelpTop: String { return self._s[2633]! } + public var Conversation_WalletRequiredTitle: String { return self._s[2634]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2635]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2636]! } + public var EditTheme_ShortLink: String { return self._s[2637]! } + public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2638]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[2639]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2640]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2641]! } + public var Call_Accept: String { return self._s[2643]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2644]! } + public var Month_GenMarch: String { return self._s[2646]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2647]! } + public var LoginPassword_Title: String { return self._s[2648]! } + public var Call_End: String { return self._s[2649]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2650]! } + public var VoiceOver_Chat_Contact: String { return self._s[2651]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2652]! } + public var CallSettings_Always: String { return self._s[2653]! } + public var CallFeedback_Success: String { return self._s[2654]! } + public var TwoStepAuth_SetupHint: String { return self._s[2655]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2653]!, self._r[2653]!, [_1]) + return formatWithArgumentRanges(self._s[2656]!, self._r[2656]!, [_1]) } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2654]! } - public var Login_PhoneTitle: String { return self._s[2655]! } - public var Passport_FieldPhoneHelp: String { return self._s[2656]! } - public var Weekday_ShortSunday: String { return self._s[2657]! } - public var Passport_InfoFAQ_URL: String { return self._s[2658]! } - public var ContactInfo_Job: String { return self._s[2660]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2661]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[2662]! } - public var CreatePoll_QuizTip: String { return self._s[2663]! } - public var TwoFactorSetup_Email_Text: String { return self._s[2664]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2665]! } - public var Invite_ChannelsTooMuch: String { return self._s[2666]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[2667]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2668]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2669]! } - public var Wallet_Receive_AmountText: String { return self._s[2670]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2671]! } - public var CallFeedback_ReasonNoise: String { return self._s[2672]! } - public var Appearance_AppIconDefault: String { return self._s[2674]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2675]! } - public var MediaPicker_AddCaption: String { return self._s[2676]! } - public var CallSettings_TabIconDescription: String { return self._s[2677]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2657]! } + public var Login_PhoneTitle: String { return self._s[2658]! } + public var Passport_FieldPhoneHelp: String { return self._s[2659]! } + public var Weekday_ShortSunday: String { return self._s[2660]! } + public var Passport_InfoFAQ_URL: String { return self._s[2661]! } + public var ContactInfo_Job: String { return self._s[2663]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2664]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[2665]! } + public var CreatePoll_QuizTip: String { return self._s[2666]! } + public var TwoFactorSetup_Email_Text: String { return self._s[2667]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2668]! } + public var Invite_ChannelsTooMuch: String { return self._s[2669]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[2670]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2671]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2672]! } + public var Wallet_Receive_AmountText: String { return self._s[2673]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2674]! } + public var CallFeedback_ReasonNoise: String { return self._s[2675]! } + public var Appearance_AppIconDefault: String { return self._s[2677]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2678]! } + public var MediaPicker_AddCaption: String { return self._s[2679]! } + public var CallSettings_TabIconDescription: String { return self._s[2680]! } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2678]!, self._r[2678]!, [_0]) + return formatWithArgumentRanges(self._s[2681]!, self._r[2681]!, [_0]) } - public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2679]! } + public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2682]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2680]!, self._r[2680]!, [_0]) + return formatWithArgumentRanges(self._s[2683]!, self._r[2683]!, [_0]) } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2681]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2682]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2683]! } - public var DialogList_SearchSectionRecent: String { return self._s[2684]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2685]! } - public var CreatePoll_Anonymous: String { return self._s[2686]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2689]! } - public var LastSeen_WithinAWeek: String { return self._s[2690]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2691]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2693]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2694]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2684]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2685]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2686]! } + public var DialogList_SearchSectionRecent: String { return self._s[2687]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2688]! } + public var CreatePoll_Anonymous: String { return self._s[2689]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2692]! } + public var LastSeen_WithinAWeek: String { return self._s[2693]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2694]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2696]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2697]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2695]!, self._r[2695]!, [_0]) + return formatWithArgumentRanges(self._s[2698]!, self._r[2698]!, [_0]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2696]! } - public var Conversation_StatusLeftGroup: String { return self._s[2697]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2698]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2700]! } - public var GroupPermission_AddSuccess: String { return self._s[2701]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2703]! } - public var Conversation_ContextMenuCopy: String { return self._s[2704]! } - public var AccessDenied_CallMicrophone: String { return self._s[2705]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2699]! } + public var Conversation_StatusLeftGroup: String { return self._s[2700]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2701]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2703]! } + public var GroupPermission_AddSuccess: String { return self._s[2704]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2706]! } + public var Conversation_ContextMenuCopy: String { return self._s[2707]! } + public var AccessDenied_CallMicrophone: String { return self._s[2708]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2706]!, self._r[2706]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2709]!, self._r[2709]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2707]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2708]! } - public var Checkout_PaymentMethod_New: String { return self._s[2709]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2710]! } - public var PhotoEditor_QualityTool: String { return self._s[2711]! } - public var Login_SendCodeViaSms: String { return self._s[2712]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2713]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2714]! } - public var Wallet_Receive_CopyAddress: String { return self._s[2715]! } - public var Login_EmailNotConfiguredError: String { return self._s[2716]! } - public var SocksProxySetup_Status: String { return self._s[2717]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2718]! } - public var PrivacyPolicy_Accept: String { return self._s[2719]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2720]! } - public var Appearance_AppIconClassicX: String { return self._s[2721]! } + public var Login_InvalidFirstNameError: String { return self._s[2710]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2711]! } + public var Checkout_PaymentMethod_New: String { return self._s[2712]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2713]! } + public var PhotoEditor_QualityTool: String { return self._s[2714]! } + public var Login_SendCodeViaSms: String { return self._s[2715]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2716]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2717]! } + public var Wallet_Receive_CopyAddress: String { return self._s[2718]! } + public var Login_EmailNotConfiguredError: String { return self._s[2719]! } + public var SocksProxySetup_Status: String { return self._s[2720]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2721]! } + public var PrivacyPolicy_Accept: String { return self._s[2722]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2723]! } + public var Appearance_AppIconClassicX: String { return self._s[2724]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2722]!, self._r[2722]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2725]!, self._r[2725]!, [_1, _2, _3]) } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[2723]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2725]! } - public var AutoNightTheme_Automatic: String { return self._s[2726]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2727]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2728]! } - public var Cache_Help: String { return self._s[2729]! } - public var Group_ErrorAccessDenied: String { return self._s[2730]! } - public var Passport_Language_fa: String { return self._s[2731]! } - public var Wallet_Intro_Text: String { return self._s[2732]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2733]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2734]! } - public var PrivacySettings_LastSeen: String { return self._s[2735]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[2726]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2728]! } + public var AutoNightTheme_Automatic: String { return self._s[2729]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2730]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2731]! } + public var Cache_Help: String { return self._s[2732]! } + public var Group_ErrorAccessDenied: String { return self._s[2733]! } + public var Passport_Language_fa: String { return self._s[2734]! } + public var Wallet_Intro_Text: String { return self._s[2735]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2736]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2737]! } + public var PrivacySettings_LastSeen: String { return self._s[2738]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2736]!, self._r[2736]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2739]!, self._r[2739]!, [_0, _1]) } - public var Wallet_Configuration_Apply: String { return self._s[2740]! } - public var Preview_SaveGif: String { return self._s[2741]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2742]! } - public var Profile_About: String { return self._s[2743]! } - public var Channel_About_Placeholder: String { return self._s[2744]! } - public var Login_InfoTitle: String { return self._s[2745]! } + public var Wallet_Configuration_Apply: String { return self._s[2743]! } + public var Preview_SaveGif: String { return self._s[2744]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2745]! } + public var Profile_About: String { return self._s[2746]! } + public var Channel_About_Placeholder: String { return self._s[2747]! } + public var Login_InfoTitle: String { return self._s[2748]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2746]!, self._r[2746]!, [_0]) + return formatWithArgumentRanges(self._s[2749]!, self._r[2749]!, [_0]) } - public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2747]! } - public var Watch_Suggestion_CantTalk: String { return self._s[2749]! } - public var ContactInfo_Title: String { return self._s[2750]! } - public var Media_ShareThisVideo: String { return self._s[2751]! } - public var Weekday_ShortFriday: String { return self._s[2752]! } - public var AccessDenied_Contacts: String { return self._s[2754]! } - public var Notification_CallIncomingShort: String { return self._s[2755]! } - public var Group_Setup_TypePublic: String { return self._s[2756]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2757]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2758]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2761]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2762]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2763]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2764]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2765]! } + public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2750]! } + public var Watch_Suggestion_CantTalk: String { return self._s[2752]! } + public var ContactInfo_Title: String { return self._s[2753]! } + public var Media_ShareThisVideo: String { return self._s[2754]! } + public var Weekday_ShortFriday: String { return self._s[2755]! } + public var AccessDenied_Contacts: String { return self._s[2757]! } + public var Notification_CallIncomingShort: String { return self._s[2758]! } + public var Group_Setup_TypePublic: String { return self._s[2759]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2760]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[2761]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[2764]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2765]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2766]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2767]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2768]! } public func Wallet_SecureStorageChanged_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2766]!, self._r[2766]!, [_0]) + return formatWithArgumentRanges(self._s[2769]!, self._r[2769]!, [_0]) } - public var DialogList_Typing: String { return self._s[2767]! } - public var CallFeedback_IncludeLogs: String { return self._s[2769]! } - public var Checkout_Phone: String { return self._s[2771]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[2774]! } - public var Privacy_Calls_Integration: String { return self._s[2775]! } - public var Notifications_PermissionsAllow: String { return self._s[2776]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[2780]! } - public var Settings_ChatSettings: String { return self._s[2781]! } - public var Conversation_SendingOptionsTooltip: String { return self._s[2782]! } + public var DialogList_Typing: String { return self._s[2770]! } + public var CallFeedback_IncludeLogs: String { return self._s[2772]! } + public var Checkout_Phone: String { return self._s[2774]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[2777]! } + public var Privacy_Calls_Integration: String { return self._s[2778]! } + public var Notifications_PermissionsAllow: String { return self._s[2779]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[2783]! } + public var Settings_ChatSettings: String { return self._s[2784]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[2785]! } public func UserInfo_StartSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2784]!, self._r[2784]!, [_0]) + return formatWithArgumentRanges(self._s[2787]!, self._r[2787]!, [_0]) } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2785]!, self._r[2785]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2788]!, self._r[2788]!, [_1, _2]) } - public var GroupRemoved_DeleteUser: String { return self._s[2787]! } + public var GroupRemoved_DeleteUser: String { return self._s[2790]! } public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2788]!, self._r[2788]!, [_0]) + return formatWithArgumentRanges(self._s[2791]!, self._r[2791]!, [_0]) } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2789]!, self._r[2789]!, [_1]) + return formatWithArgumentRanges(self._s[2792]!, self._r[2792]!, [_1]) } - public var Login_ContinueWithLocalization: String { return self._s[2790]! } - public var Watch_Message_ForwardedFrom: String { return self._s[2791]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[2793]! } - public var Conversation_Unblock: String { return self._s[2794]! } - public var PrivacySettings_DataSettings: String { return self._s[2795]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[2796]! } - public var Group_PublicLink_Info: String { return self._s[2797]! } + public var Login_ContinueWithLocalization: String { return self._s[2793]! } + public var Watch_Message_ForwardedFrom: String { return self._s[2794]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[2796]! } + public var Conversation_Unblock: String { return self._s[2797]! } + public var PrivacySettings_DataSettings: String { return self._s[2798]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[2799]! } + public var Group_PublicLink_Info: String { return self._s[2800]! } public func Wallet_Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2798]!, self._r[2798]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2801]!, self._r[2801]!, [_1, _2, _3]) } - public var Notifications_InAppNotificationsVibrate: String { return self._s[2799]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[2802]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2800]!, self._r[2800]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2803]!, self._r[2803]!, [_0, _1]) } - public var OldChannels_ChannelsHeader: String { return self._s[2802]! } - public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2803]! } - public var PrivacySettings_Passcode: String { return self._s[2805]! } - public var Call_Mute: String { return self._s[2806]! } - public var Wallet_Weekday_Yesterday: String { return self._s[2807]! } - public var Passport_Language_dz: String { return self._s[2808]! } - public var Wallet_Receive_AmountHeader: String { return self._s[2809]! } - public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2810]! } - public var Passport_Language_tk: String { return self._s[2811]! } + public var OldChannels_ChannelsHeader: String { return self._s[2805]! } + public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2806]! } + public var PrivacySettings_Passcode: String { return self._s[2808]! } + public var Call_Mute: String { return self._s[2809]! } + public var Wallet_Weekday_Yesterday: String { return self._s[2810]! } + public var Passport_Language_dz: String { return self._s[2811]! } + public var Wallet_Receive_AmountHeader: String { return self._s[2812]! } + public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2813]! } + public var Passport_Language_tk: String { return self._s[2814]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2812]!, self._r[2812]!, [_0]) + return formatWithArgumentRanges(self._s[2815]!, self._r[2815]!, [_0]) } - public var Settings_Search: String { return self._s[2813]! } - public var Wallet_Month_ShortFebruary: String { return self._s[2814]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2815]! } - public var Wallet_Configuration_SourceJSON: String { return self._s[2816]! } - public var Conversation_ContextMenuReply: String { return self._s[2817]! } - public var WallpaperSearch_ColorBrown: String { return self._s[2818]! } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2819]! } - public var Tour_Title1: String { return self._s[2820]! } - public var Wallet_Alert_Cancel: String { return self._s[2821]! } - public var Conversation_ClearGroupHistory: String { return self._s[2823]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2824]! } - public var WallpaperPreview_Motion: String { return self._s[2825]! } + public var Settings_Search: String { return self._s[2816]! } + public var Wallet_Month_ShortFebruary: String { return self._s[2817]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2818]! } + public var Wallet_Configuration_SourceJSON: String { return self._s[2819]! } + public var Conversation_ContextMenuReply: String { return self._s[2820]! } + public var WallpaperSearch_ColorBrown: String { return self._s[2821]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2822]! } + public var Tour_Title1: String { return self._s[2823]! } + public var Wallet_Alert_Cancel: String { return self._s[2824]! } + public var Conversation_ClearGroupHistory: String { return self._s[2826]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2827]! } + public var WallpaperPreview_Motion: String { return self._s[2828]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2826]!, self._r[2826]!, [_0]) + return formatWithArgumentRanges(self._s[2829]!, self._r[2829]!, [_0]) } - public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2827]! } - public var Call_RateCall: String { return self._s[2828]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2829]! } - public var Passport_PasswordCompleteSetup: String { return self._s[2830]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2831]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[2833]! } + public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2830]! } + public var Call_RateCall: String { return self._s[2831]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2832]! } + public var Passport_PasswordCompleteSetup: String { return self._s[2833]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2834]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[2836]! } public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2835]!, self._r[2835]!, [_0]) + return formatWithArgumentRanges(self._s[2838]!, self._r[2838]!, [_0]) } - public var Compose_Create: String { return self._s[2836]! } - public var Contacts_InviteToTelegram: String { return self._s[2837]! } - public var GroupInfo_Notifications: String { return self._s[2838]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2840]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[2841]! } - public var Month_GenApril: String { return self._s[2842]! } - public var Appearance_AutoNightTheme: String { return self._s[2843]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[2845]! } - public var Login_CodeSentSms: String { return self._s[2847]! } + public var Compose_Create: String { return self._s[2839]! } + public var Contacts_InviteToTelegram: String { return self._s[2840]! } + public var GroupInfo_Notifications: String { return self._s[2841]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2843]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[2844]! } + public var Month_GenApril: String { return self._s[2845]! } + public var Appearance_AutoNightTheme: String { return self._s[2846]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[2848]! } + public var Login_CodeSentSms: String { return self._s[2850]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2848]!, self._r[2848]!, [_0]) + return formatWithArgumentRanges(self._s[2851]!, self._r[2851]!, [_0]) } - public var EmptyGroupInfo_Line3: String { return self._s[2849]! } - public var LogoutOptions_ContactSupportText: String { return self._s[2850]! } - public var Passport_Language_hr: String { return self._s[2851]! } - public var Common_ActionNotAllowedError: String { return self._s[2852]! } + public var EmptyGroupInfo_Line3: String { return self._s[2852]! } + public var LogoutOptions_ContactSupportText: String { return self._s[2853]! } + public var Passport_Language_hr: String { return self._s[2854]! } + public var Common_ActionNotAllowedError: String { return self._s[2855]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2853]!, self._r[2853]!, [_0]) + return formatWithArgumentRanges(self._s[2856]!, self._r[2856]!, [_0]) } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[2854]! } - public var Wallet_Info_TransactionFrom: String { return self._s[2855]! } - public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2856]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2857]! } - public var Privacy_SecretChatsTitle: String { return self._s[2858]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2860]! } - public var GroupInfo_AddUserLeftError: String { return self._s[2861]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2862]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[2863]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2864]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[2865]! } - public var Preview_DeleteGif: String { return self._s[2866]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2867]! } - public var Group_ErrorNotMutualContact: String { return self._s[2868]! } - public var Notification_MessageLifetime5s: String { return self._s[2869]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[2870]! } - public var OldChannels_ChannelFormat: String { return self._s[2871]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[2857]! } + public var Wallet_Info_TransactionFrom: String { return self._s[2858]! } + public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2859]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2860]! } + public var Privacy_SecretChatsTitle: String { return self._s[2861]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2863]! } + public var GroupInfo_AddUserLeftError: String { return self._s[2864]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2865]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[2866]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2867]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[2868]! } + public var Preview_DeleteGif: String { return self._s[2869]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2870]! } + public var Group_ErrorNotMutualContact: String { return self._s[2871]! } + public var Notification_MessageLifetime5s: String { return self._s[2872]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[2873]! } + public var OldChannels_ChannelFormat: String { return self._s[2874]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2872]!, self._r[2872]!, [_0]) + return formatWithArgumentRanges(self._s[2875]!, self._r[2875]!, [_0]) } - public var VoiceOver_Chat_Video: String { return self._s[2873]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2875]! } - public var ReportSpam_DeleteThisChat: String { return self._s[2876]! } - public var Passport_Address_AddBankStatement: String { return self._s[2877]! } - public var Notification_CallIncoming: String { return self._s[2878]! } - public var Wallet_Words_NotDoneTitle: String { return self._s[2879]! } - public var Compose_NewGroupTitle: String { return self._s[2880]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2882]! } - public var Passport_Address_Postcode: String { return self._s[2884]! } + public var VoiceOver_Chat_Video: String { return self._s[2876]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2878]! } + public var ReportSpam_DeleteThisChat: String { return self._s[2879]! } + public var Passport_Address_AddBankStatement: String { return self._s[2880]! } + public var Notification_CallIncoming: String { return self._s[2881]! } + public var Wallet_Words_NotDoneTitle: String { return self._s[2882]! } + public var Compose_NewGroupTitle: String { return self._s[2883]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2885]! } + public var Passport_Address_Postcode: String { return self._s[2887]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2885]!, self._r[2885]!, [_0]) + return formatWithArgumentRanges(self._s[2888]!, self._r[2888]!, [_0]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2886]! } - public var Wallet_Month_ShortOctober: String { return self._s[2887]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2888]! } - public var WallpaperColors_Title: String { return self._s[2889]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2890]! } - public var VoiceOver_MessageContextForward: String { return self._s[2891]! } - public var GroupPermission_Duration: String { return self._s[2892]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2889]! } + public var Wallet_Month_ShortOctober: String { return self._s[2890]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2891]! } + public var WallpaperColors_Title: String { return self._s[2892]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2893]! } + public var VoiceOver_MessageContextForward: String { return self._s[2894]! } + public var GroupPermission_Duration: String { return self._s[2895]! } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2893]!, self._r[2893]!, [_0]) + return formatWithArgumentRanges(self._s[2896]!, self._r[2896]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2894]! } - public var Username_Placeholder: String { return self._s[2895]! } - public var CallFeedback_WhatWentWrong: String { return self._s[2896]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2897]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2898]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2897]! } + public var Username_Placeholder: String { return self._s[2898]! } + public var CallFeedback_WhatWentWrong: String { return self._s[2899]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2900]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2901]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2900]!, self._r[2900]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2903]!, self._r[2903]!, [_1, _2]) } - public var Passport_PasswordDescription: String { return self._s[2901]! } - public var Channel_MessagePhotoUpdated: String { return self._s[2902]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[2903]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2904]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[2905]! } - public var Conversation_ContextMenuMore: String { return self._s[2906]! } - public var Privacy_PaymentsClearInfo: String { return self._s[2907]! } - public var CallSettings_TabIcon: String { return self._s[2908]! } - public var KeyCommand_Find: String { return self._s[2909]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2910]! } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2911]! } - public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2912]! } - public var Message_PinnedGame: String { return self._s[2913]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2914]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2916]! } - public var Login_CallRequestState2: String { return self._s[2918]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2920]! } + public var Passport_PasswordDescription: String { return self._s[2904]! } + public var Channel_MessagePhotoUpdated: String { return self._s[2905]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[2906]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2907]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[2908]! } + public var Conversation_ContextMenuMore: String { return self._s[2909]! } + public var Privacy_PaymentsClearInfo: String { return self._s[2910]! } + public var CallSettings_TabIcon: String { return self._s[2911]! } + public var KeyCommand_Find: String { return self._s[2912]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2913]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2914]! } + public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2915]! } + public var Message_PinnedGame: String { return self._s[2916]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2917]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2919]! } + public var Login_CallRequestState2: String { return self._s[2921]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2923]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2921]!, self._r[2921]!, [_0]) + return formatWithArgumentRanges(self._s[2924]!, self._r[2924]!, [_0]) } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_0]) + return formatWithArgumentRanges(self._s[2926]!, self._r[2926]!, [_0]) } - public var AuthSessions_AddDevice: String { return self._s[2924]! } - public var WallpaperPreview_Blurred: String { return self._s[2925]! } - public var Conversation_InstantPagePreview: String { return self._s[2926]! } + public var AuthSessions_AddDevice: String { return self._s[2927]! } + public var WallpaperPreview_Blurred: String { return self._s[2928]! } + public var Conversation_InstantPagePreview: String { return self._s[2929]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2927]!, self._r[2927]!, [_0]) + return formatWithArgumentRanges(self._s[2930]!, self._r[2930]!, [_0]) } - public var SecretTimer_VideoDescription: String { return self._s[2930]! } - public var WallpaperSearch_ColorRed: String { return self._s[2931]! } - public var GroupPermission_NoPinMessages: String { return self._s[2932]! } - public var Passport_Language_es: String { return self._s[2933]! } - public var Permissions_ContactsAllow_v0: String { return self._s[2935]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2936]! } + public var SecretTimer_VideoDescription: String { return self._s[2933]! } + public var WallpaperSearch_ColorRed: String { return self._s[2934]! } + public var GroupPermission_NoPinMessages: String { return self._s[2935]! } + public var Passport_Language_es: String { return self._s[2936]! } + public var Permissions_ContactsAllow_v0: String { return self._s[2938]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2939]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2937]!, self._r[2937]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2940]!, self._r[2940]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[2938]! } - public var WebPreview_GettingLinkInfo: String { return self._s[2939]! } - public var Watch_UserInfo_Unmute: String { return self._s[2940]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2941]! } - public var AccessDenied_CameraRestricted: String { return self._s[2943]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[2941]! } + public var WebPreview_GettingLinkInfo: String { return self._s[2942]! } + public var Watch_UserInfo_Unmute: String { return self._s[2943]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2944]! } + public var AccessDenied_CameraRestricted: String { return self._s[2946]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2944]!, self._r[2944]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2947]!, self._r[2947]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[2946]! } - public var Settings_CopyUsername: String { return self._s[2947]! } - public var Contacts_SearchLabel: String { return self._s[2948]! } - public var Map_OpenInYandexNavigator: String { return self._s[2950]! } - public var PasscodeSettings_EncryptData: String { return self._s[2951]! } - public var Settings_Wallet: String { return self._s[2952]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2953]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[2954]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[2955]! } - public var DialogList_AdNoticeAlert: String { return self._s[2956]! } - public var Wallet_Month_GenMay: String { return self._s[2958]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2959]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2960]! } - public var Localization_LanguageCustom: String { return self._s[2961]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2962]! } - public var CallFeedback_Title: String { return self._s[2963]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2966]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2967]! } - public var Wallet_Intro_CreateErrorTitle: String { return self._s[2968]! } - public var Conversation_InfoGroup: String { return self._s[2969]! } - public var Compose_NewMessage: String { return self._s[2970]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2971]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2972]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2973]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2974]! } + public var ChatList_ReadAll: String { return self._s[2949]! } + public var Settings_CopyUsername: String { return self._s[2950]! } + public var Contacts_SearchLabel: String { return self._s[2951]! } + public var Map_OpenInYandexNavigator: String { return self._s[2953]! } + public var PasscodeSettings_EncryptData: String { return self._s[2954]! } + public var Settings_Wallet: String { return self._s[2955]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2956]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2957]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[2958]! } + public var DialogList_AdNoticeAlert: String { return self._s[2959]! } + public var Wallet_Month_GenMay: String { return self._s[2961]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2962]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2963]! } + public var Localization_LanguageCustom: String { return self._s[2964]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2965]! } + public var CallFeedback_Title: String { return self._s[2966]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2969]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2970]! } + public var Wallet_Intro_CreateErrorTitle: String { return self._s[2971]! } + public var Conversation_InfoGroup: String { return self._s[2972]! } + public var Compose_NewMessage: String { return self._s[2973]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2974]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2975]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2976]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2977]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2975]!, self._r[2975]!, [_0]) + return formatWithArgumentRanges(self._s[2978]!, self._r[2978]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2976]! } - public var Login_CancelSignUpConfirmation: String { return self._s[2977]! } - public var ChangePhoneNumberCode_Help: String { return self._s[2978]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[2979]! } - public var Channel_BlackList_Title: String { return self._s[2980]! } - public var UserInfo_PhoneCall: String { return self._s[2981]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2983]! } - public var Wallet_Month_ShortJanuary: String { return self._s[2984]! } - public var State_connecting: String { return self._s[2985]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2986]! } - public var Wallet_Month_GenMarch: String { return self._s[2987]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2988]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[2989]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2979]! } + public var Login_CancelSignUpConfirmation: String { return self._s[2980]! } + public var ChangePhoneNumberCode_Help: String { return self._s[2981]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[2982]! } + public var Channel_BlackList_Title: String { return self._s[2983]! } + public var UserInfo_PhoneCall: String { return self._s[2984]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2986]! } + public var Wallet_Month_ShortJanuary: String { return self._s[2987]! } + public var State_connecting: String { return self._s[2988]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2989]! } + public var Wallet_Month_GenMarch: String { return self._s[2990]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2991]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[2992]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2990]!, self._r[2990]!, [_0]) + return formatWithArgumentRanges(self._s[2993]!, self._r[2993]!, [_0]) } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2991]!, self._r[2991]!, [_0]) + return formatWithArgumentRanges(self._s[2994]!, self._r[2994]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[2992]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2993]! } - public var Passport_Identity_EditPassport: String { return self._s[2994]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2996]! } - public var Localization_EnglishLanguageName: String { return self._s[2997]! } - public var Share_AuthDescription: String { return self._s[2998]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2999]! } - public var Passport_Identity_Surname: String { return self._s[3000]! } - public var Compose_TokenListPlaceholder: String { return self._s[3001]! } - public var Wallet_AccessDenied_Camera: String { return self._s[3002]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[3003]! } - public var Settings_AboutEmpty: String { return self._s[3004]! } - public var Conversation_Unmute: String { return self._s[3005]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[3007]! } - public var Wallet_Sending_Text: String { return self._s[3008]! } + public var Notifications_GroupNotifications: String { return self._s[2995]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2996]! } + public var Passport_Identity_EditPassport: String { return self._s[2997]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2999]! } + public var Localization_EnglishLanguageName: String { return self._s[3000]! } + public var Share_AuthDescription: String { return self._s[3001]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3002]! } + public var Passport_Identity_Surname: String { return self._s[3003]! } + public var Compose_TokenListPlaceholder: String { return self._s[3004]! } + public var Wallet_AccessDenied_Camera: String { return self._s[3005]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[3006]! } + public var Settings_AboutEmpty: String { return self._s[3007]! } + public var Conversation_Unmute: String { return self._s[3008]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[3010]! } + public var Wallet_Sending_Text: String { return self._s[3011]! } public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3009]!, self._r[3009]!, [_1]) + return formatWithArgumentRanges(self._s[3012]!, self._r[3012]!, [_1]) } - public var Login_CodeSentCall: String { return self._s[3010]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3012]! } - public var ChatSettings_Appearance: String { return self._s[3013]! } - public var ClearCache_StorageUsage: String { return self._s[3014]! } - public var Appearance_PickAccentColor: String { return self._s[3015]! } + public var Login_CodeSentCall: String { return self._s[3013]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3015]! } + public var ChatSettings_Appearance: String { return self._s[3016]! } + public var ClearCache_StorageUsage: String { return self._s[3017]! } + public var Appearance_PickAccentColor: String { return self._s[3018]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3016]!, self._r[3016]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3019]!, self._r[3019]!, [_1, _2]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3017]!, self._r[3017]!, [_1]) + return formatWithArgumentRanges(self._s[3020]!, self._r[3020]!, [_1]) } - public var Notification_CallMissed: String { return self._s[3018]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3019]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3020]! } - public var Wallet_Month_GenOctober: String { return self._s[3022]! } - public var ChatAdmins_AdminLabel: String { return self._s[3023]! } - public var KeyCommand_JumpToNextChat: String { return self._s[3024]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[3026]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3027]! } - public var Month_GenJune: String { return self._s[3028]! } - public var IntentsSettings_MainAccountInfo: String { return self._s[3029]! } - public var Watch_Location_Current: String { return self._s[3030]! } - public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3031]! } - public var Conversation_TitleMute: String { return self._s[3032]! } - public var Map_PlacesInThisArea: String { return self._s[3033]! } + public var Notification_CallMissed: String { return self._s[3021]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3022]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3023]! } + public var Wallet_Month_GenOctober: String { return self._s[3025]! } + public var ChatAdmins_AdminLabel: String { return self._s[3026]! } + public var KeyCommand_JumpToNextChat: String { return self._s[3027]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[3029]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3030]! } + public var Month_GenJune: String { return self._s[3031]! } + public var IntentsSettings_MainAccountInfo: String { return self._s[3032]! } + public var Watch_Location_Current: String { return self._s[3033]! } + public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3034]! } + public var Conversation_TitleMute: String { return self._s[3035]! } + public var Map_PlacesInThisArea: String { return self._s[3036]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3034]!, self._r[3034]!, [_1]) + return formatWithArgumentRanges(self._s[3037]!, self._r[3037]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[3035]! } + public var GroupInfo_DeleteAndExit: String { return self._s[3038]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3036]!, self._r[3036]!, [_0]) + return formatWithArgumentRanges(self._s[3039]!, self._r[3039]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[3037]! } - public var Chat_SlowmodeSendError: String { return self._s[3038]! } - public var MaskStickerSettings_Info: String { return self._s[3039]! } - public var EditTheme_Expand_TopInfo: String { return self._s[3040]! } + public var Call_ReportPlaceholder: String { return self._s[3040]! } + public var Chat_SlowmodeSendError: String { return self._s[3041]! } + public var MaskStickerSettings_Info: String { return self._s[3042]! } + public var EditTheme_Expand_TopInfo: String { return self._s[3043]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3041]!, self._r[3041]!, [_0]) + return formatWithArgumentRanges(self._s[3044]!, self._r[3044]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[3042]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3044]! } - public var Contacts_ShareTelegram: String { return self._s[3045]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3046]! } - public var Map_AddressOnMap: String { return self._s[3047]! } - public var Channel_ErrorAccessDenied: String { return self._s[3048]! } - public var UserInfo_ScamBotWarning: String { return self._s[3050]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[3051]! } - public var Call_ConnectionErrorTitle: String { return self._s[3052]! } - public var UserInfo_NotificationsEnable: String { return self._s[3053]! } - public var ArchivedChats_IntroText1: String { return self._s[3054]! } - public var Tour_Text4: String { return self._s[3057]! } - public var WallpaperSearch_Recent: String { return self._s[3058]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[3059]! } - public var Profile_MessageLifetime2s: String { return self._s[3061]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3062]! } - public var Notification_MessageLifetime2s: String { return self._s[3063]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[3045]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3047]! } + public var Contacts_ShareTelegram: String { return self._s[3048]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3049]! } + public var Map_AddressOnMap: String { return self._s[3050]! } + public var Channel_ErrorAccessDenied: String { return self._s[3051]! } + public var UserInfo_ScamBotWarning: String { return self._s[3053]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[3054]! } + public var Call_ConnectionErrorTitle: String { return self._s[3055]! } + public var UserInfo_NotificationsEnable: String { return self._s[3056]! } + public var ArchivedChats_IntroText1: String { return self._s[3057]! } + public var Tour_Text4: String { return self._s[3060]! } + public var WallpaperSearch_Recent: String { return self._s[3061]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[3062]! } + public var Profile_MessageLifetime2s: String { return self._s[3064]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3065]! } + public var Notification_MessageLifetime2s: String { return self._s[3066]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3064]!, self._r[3064]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3067]!, self._r[3067]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[3065]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3066]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3067]! } + public var Cache_ClearCache: String { return self._s[3068]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3069]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3070]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3071]!, self._r[3071]!, [_0]) + return formatWithArgumentRanges(self._s[3074]!, self._r[3074]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3073]!, self._r[3073]!, [_0]) + return formatWithArgumentRanges(self._s[3076]!, self._r[3076]!, [_0]) } - public var LocalGroup_Text: String { return self._s[3074]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3075]! } - public var SocksProxySetup_TypeSocks: String { return self._s[3076]! } - public var ChatList_UnarchiveAction: String { return self._s[3077]! } - public var AutoNightTheme_Title: String { return self._s[3078]! } - public var InstantPage_FeedbackButton: String { return self._s[3079]! } - public var Passport_FieldAddress: String { return self._s[3080]! } + public var LocalGroup_Text: String { return self._s[3077]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3078]! } + public var SocksProxySetup_TypeSocks: String { return self._s[3079]! } + public var ChatList_UnarchiveAction: String { return self._s[3080]! } + public var AutoNightTheme_Title: String { return self._s[3081]! } + public var InstantPage_FeedbackButton: String { return self._s[3082]! } + public var Passport_FieldAddress: String { return self._s[3083]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3081]!, self._r[3081]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3084]!, self._r[3084]!, [_1, _2]) } - public var Month_ShortMarch: String { return self._s[3082]! } + public var Month_ShortMarch: String { return self._s[3085]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3083]!, self._r[3083]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3086]!, self._r[3086]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3084]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3085]! } - public var Passport_FloodError: String { return self._s[3086]! } - public var SecretGif_Title: String { return self._s[3087]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3088]! } - public var ChatList_Context_UnhideArchive: String { return self._s[3089]! } - public var Passport_Language_th: String { return self._s[3091]! } - public var Passport_Address_Address: String { return self._s[3092]! } - public var Login_InvalidLastNameError: String { return self._s[3093]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3094]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[3095]! } - public var ChatList_Context_Archive: String { return self._s[3096]! } - public var SettingsSearch_FAQ: String { return self._s[3097]! } - public var ShareMenu_Send: String { return self._s[3098]! } - public var WallpaperSearch_ColorYellow: String { return self._s[3100]! } - public var Month_GenNovember: String { return self._s[3102]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3104]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3087]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3088]! } + public var Passport_FloodError: String { return self._s[3089]! } + public var SecretGif_Title: String { return self._s[3090]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3091]! } + public var ChatList_Context_UnhideArchive: String { return self._s[3092]! } + public var Passport_Language_th: String { return self._s[3094]! } + public var Passport_Address_Address: String { return self._s[3095]! } + public var Login_InvalidLastNameError: String { return self._s[3096]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3097]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[3098]! } + public var ChatList_Context_Archive: String { return self._s[3099]! } + public var SettingsSearch_FAQ: String { return self._s[3100]! } + public var ShareMenu_Send: String { return self._s[3101]! } + public var WallpaperSearch_ColorYellow: String { return self._s[3103]! } + public var Month_GenNovember: String { return self._s[3105]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3107]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3105]!, self._r[3105]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3108]!, self._r[3108]!, [_1, _2]) } - public var Conversation_SwipeToReplyHintText: String { return self._s[3106]! } - public var Checkout_Email: String { return self._s[3107]! } - public var NotificationsSound_Tritone: String { return self._s[3108]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[3110]! } - public var Wallet_ContextMenuCopy: String { return self._s[3112]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3109]! } + public var Checkout_Email: String { return self._s[3110]! } + public var NotificationsSound_Tritone: String { return self._s[3111]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[3113]! } + public var Wallet_ContextMenuCopy: String { return self._s[3115]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3114]!, self._r[3114]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3117]!, self._r[3117]!, [_1, _2, _3]) } - public var Appearance_TextSize_Automatic: String { return self._s[3115]! } + public var Appearance_TextSize_Automatic: String { return self._s[3118]! } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3116]!, self._r[3116]!, [_1]) + return formatWithArgumentRanges(self._s[3119]!, self._r[3119]!, [_1]) } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3117]!, self._r[3117]!, [_0]) + return formatWithArgumentRanges(self._s[3120]!, self._r[3120]!, [_0]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[3118]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[3121]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3119]!, self._r[3119]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3122]!, self._r[3122]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[3120]! } - public var Notification_Exceptions_Add: String { return self._s[3121]! } - public var DialogList_You: String { return self._s[3122]! } - public var MediaPicker_Send: String { return self._s[3125]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3126]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3127]! } - public var Call_AudioRouteSpeaker: String { return self._s[3128]! } - public var Watch_UserInfo_Title: String { return self._s[3129]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[3130]! } - public var Appearance_AccentColor: String { return self._s[3132]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3123]! } + public var Notification_Exceptions_Add: String { return self._s[3124]! } + public var DialogList_You: String { return self._s[3125]! } + public var MediaPicker_Send: String { return self._s[3128]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3129]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3130]! } + public var Call_AudioRouteSpeaker: String { return self._s[3131]! } + public var Watch_UserInfo_Title: String { return self._s[3132]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[3133]! } + public var Appearance_AccentColor: String { return self._s[3135]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3133]!, self._r[3133]!, [_0]) + return formatWithArgumentRanges(self._s[3136]!, self._r[3136]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3134]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3137]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3135]!, self._r[3135]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3138]!, self._r[3138]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[3136]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3137]! } - public var Notification_CallOutgoing: String { return self._s[3138]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3139]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3140]! } - public var Call_RecordingDisabledMessage: String { return self._s[3141]! } - public var Message_Game: String { return self._s[3142]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[3143]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3144]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3145]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3146]! } - public var Date_DialogDateFormat: String { return self._s[3148]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3149]! } - public var Notifications_InAppNotifications: String { return self._s[3150]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[3139]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3140]! } + public var Notification_CallOutgoing: String { return self._s[3141]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3142]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3143]! } + public var Call_RecordingDisabledMessage: String { return self._s[3144]! } + public var Message_Game: String { return self._s[3145]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[3146]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3147]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3148]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3149]! } + public var Date_DialogDateFormat: String { return self._s[3151]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3152]! } + public var Notifications_InAppNotifications: String { return self._s[3153]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3151]!, self._r[3151]!, [_0]) - } - public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3152]!, self._r[3152]!, [_1, _2]) - } - public var NewContact_Title: String { return self._s[3153]! } - public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3154]!, self._r[3154]!, [_0]) } - public var Conversation_ViewContactDetails: String { return self._s[3155]! } + public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3155]!, self._r[3155]!, [_1, _2]) + } + public var NewContact_Title: String { return self._s[3156]! } + public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3157]!, self._r[3157]!, [_0]) + } + public var Conversation_ViewContactDetails: String { return self._s[3158]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3157]!, self._r[3157]!, [_1]) + return formatWithArgumentRanges(self._s[3160]!, self._r[3160]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3158]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3159]! } - public var PrivacySettings_Title: String { return self._s[3160]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3163]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[3164]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[3165]! } - public var Contacts_PhoneNumber: String { return self._s[3166]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3168]! } - public var Map_ShowPlaces: String { return self._s[3169]! } - public var ChatAdmins_Title: String { return self._s[3170]! } - public var InstantPage_Reference: String { return self._s[3172]! } - public var Wallet_Info_Updating: String { return self._s[3173]! } - public var ReportGroupLocation_Text: String { return self._s[3174]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3161]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3162]! } + public var PrivacySettings_Title: String { return self._s[3163]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3166]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[3167]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[3168]! } + public var Contacts_PhoneNumber: String { return self._s[3169]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3171]! } + public var Map_ShowPlaces: String { return self._s[3172]! } + public var ChatAdmins_Title: String { return self._s[3173]! } + public var InstantPage_Reference: String { return self._s[3175]! } + public var Wallet_Info_Updating: String { return self._s[3176]! } + public var ReportGroupLocation_Text: String { return self._s[3177]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3175]!, self._r[3175]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3178]!, self._r[3178]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[3176]! } - public var Watch_UserInfo_Block: String { return self._s[3177]! } - public var ChatSettings_Stickers: String { return self._s[3178]! } - public var ChatSettings_DownloadInBackground: String { return self._s[3179]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3180]! } + public var Camera_FlashOff: String { return self._s[3179]! } + public var Watch_UserInfo_Block: String { return self._s[3180]! } + public var ChatSettings_Stickers: String { return self._s[3181]! } + public var ChatSettings_DownloadInBackground: String { return self._s[3182]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3183]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3181]!, self._r[3181]!, [_0]) + return formatWithArgumentRanges(self._s[3184]!, self._r[3184]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[3182]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3183]! } - public var AutoDownloadSettings_Cellular: String { return self._s[3184]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[3185]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3186]! } - public var VoiceOver_MessageContextShare: String { return self._s[3187]! } + public var Settings_ViewPhoto: String { return self._s[3185]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3186]! } + public var AutoDownloadSettings_Cellular: String { return self._s[3187]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[3188]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3189]! } + public var VoiceOver_MessageContextShare: String { return self._s[3190]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3189]!, self._r[3189]!, [_0]) - } - public var Privacy_DeleteDrafts: String { return self._s[3190]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3191]! } - public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3192]!, self._r[3192]!, [_0]) } - public var DialogList_SavedMessagesHelp: String { return self._s[3193]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3194]! } - public var DialogList_SavedMessages: String { return self._s[3195]! } - public var GroupInfo_UpgradeButton: String { return self._s[3196]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3198]! } - public var DialogList_Pin: String { return self._s[3199]! } + public var Privacy_DeleteDrafts: String { return self._s[3193]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3194]! } + public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3195]!, self._r[3195]!, [_0]) + } + public var DialogList_SavedMessagesHelp: String { return self._s[3196]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3197]! } + public var DialogList_SavedMessages: String { return self._s[3198]! } + public var GroupInfo_UpgradeButton: String { return self._s[3199]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3201]! } + public var DialogList_Pin: String { return self._s[3202]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3200]!, self._r[3200]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3203]!, self._r[3203]!, [_0, _1]) } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3201]!, self._r[3201]!, [_0]) + return formatWithArgumentRanges(self._s[3204]!, self._r[3204]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3202]! } - public var UserInfo_NotificationsDisable: String { return self._s[3203]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[3204]! } - public var Paint_Outlined: String { return self._s[3205]! } - public var Activity_PlayingGame: String { return self._s[3206]! } - public var SearchImages_NoImagesFound: String { return self._s[3207]! } - public var SocksProxySetup_ProxyType: String { return self._s[3208]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3210]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3211]! } - public var Settings_AppLanguage: String { return self._s[3212]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3213]! } - public var Common_ChoosePhoto: String { return self._s[3214]! } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3215]! } - public var CallFeedback_ReasonEcho: String { return self._s[3216]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3205]! } + public var UserInfo_NotificationsDisable: String { return self._s[3206]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[3207]! } + public var Paint_Outlined: String { return self._s[3208]! } + public var Activity_PlayingGame: String { return self._s[3209]! } + public var SearchImages_NoImagesFound: String { return self._s[3210]! } + public var SocksProxySetup_ProxyType: String { return self._s[3211]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3213]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3214]! } + public var Settings_AppLanguage: String { return self._s[3215]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3216]! } + public var Common_ChoosePhoto: String { return self._s[3217]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3218]! } + public var CallFeedback_ReasonEcho: String { return self._s[3219]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3217]!, self._r[3217]!, [_1]) + return formatWithArgumentRanges(self._s[3220]!, self._r[3220]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3218]! } - public var PollResults_Collapse: String { return self._s[3219]! } - public var Activity_UploadingVideo: String { return self._s[3220]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3221]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3222]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3223]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3224]! } - public var PUSH_SENDER_YOU: String { return self._s[3225]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3226]! } - public var Checkout_PayWithTouchId: String { return self._s[3227]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3228]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3221]! } + public var PollResults_Collapse: String { return self._s[3222]! } + public var Activity_UploadingVideo: String { return self._s[3223]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3224]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3225]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3226]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3227]! } + public var PUSH_SENDER_YOU: String { return self._s[3228]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3229]! } + public var Checkout_PayWithTouchId: String { return self._s[3230]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3231]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3230]!, self._r[3230]!, [_1]) - } - public var Notifications_ExceptionsNone: String { return self._s[3231]! } - public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3232]!, self._r[3232]!, [_0]) - } - public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3233]!, self._r[3233]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3235]! } - public var Passport_Address_Region: String { return self._s[3238]! } - public var ChatList_DeleteChat: String { return self._s[3239]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3240]! } - public var PhotoEditor_TiltShift: String { return self._s[3241]! } - public var Settings_FAQ_URL: String { return self._s[3242]! } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3243]! } - public var Passport_Language_sl: String { return self._s[3244]! } - public var Settings_PrivacySettings: String { return self._s[3246]! } - public var SharedMedia_TitleLink: String { return self._s[3247]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3248]! } - public var Settings_SetProfilePhoto: String { return self._s[3249]! } - public var Channel_About_Help: String { return self._s[3250]! } - public var Contacts_PermissionsEnable: String { return self._s[3251]! } - public var Wallet_Sending_Title: String { return self._s[3252]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3253]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3254]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3256]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3257]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3258]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3259]! } - public var OldChannels_Title: String { return self._s[3260]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3261]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3263]! } - public var Map_OpenInYandexMaps: String { return self._s[3265]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3266]! } - public var VoiceOver_MessageContextReply: String { return self._s[3267]! } - public var PhotoEditor_SaturationTool: String { return self._s[3269]! } + public var Notifications_ExceptionsNone: String { return self._s[3234]! } + public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3235]!, self._r[3235]!, [_0]) + } + public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3236]!, self._r[3236]!, [_1]) + } + public var AuthSessions_IncompleteAttempts: String { return self._s[3238]! } + public var Passport_Address_Region: String { return self._s[3241]! } + public var ChatList_DeleteChat: String { return self._s[3242]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3243]! } + public var PhotoEditor_TiltShift: String { return self._s[3244]! } + public var Settings_FAQ_URL: String { return self._s[3245]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3246]! } + public var Passport_Language_sl: String { return self._s[3247]! } + public var Settings_PrivacySettings: String { return self._s[3249]! } + public var SharedMedia_TitleLink: String { return self._s[3250]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3251]! } + public var Settings_SetProfilePhoto: String { return self._s[3252]! } + public var Channel_About_Help: String { return self._s[3253]! } + public var Contacts_PermissionsEnable: String { return self._s[3254]! } + public var Wallet_Sending_Title: String { return self._s[3255]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3256]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3257]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3259]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3260]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3261]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3262]! } + public var OldChannels_Title: String { return self._s[3263]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3264]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3266]! } + public var Map_OpenInYandexMaps: String { return self._s[3268]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3269]! } + public var VoiceOver_MessageContextReply: String { return self._s[3270]! } + public var PhotoEditor_SaturationTool: String { return self._s[3272]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3270]!, self._r[3270]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3273]!, self._r[3273]!, [_1, _2]) } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3271]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3272]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3273]! } + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3274]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3275]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3276]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3277]!, self._r[3277]!, [_1, "\(_2)"]) } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3275]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3277]! } - public var SettingsSearch_Synonyms_Wallet: String { return self._s[3278]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3278]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3280]! } + public var SettingsSearch_Synonyms_Wallet: String { return self._s[3281]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3279]!, self._r[3279]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3282]!, self._r[3282]!, [_1, _2]) } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3280]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3283]! } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3281]!, self._r[3281]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3284]!, self._r[3284]!, [_1, _2, _3]) } - public var WallpaperPreview_PatternTitle: String { return self._s[3282]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[3283]! } - public var Passport_PassportInformation: String { return self._s[3286]! } - public var Theme_Unsupported: String { return self._s[3287]! } - public var WatchRemote_AlertTitle: String { return self._s[3288]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3289]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3291]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3285]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3286]! } + public var Passport_PassportInformation: String { return self._s[3289]! } + public var Theme_Unsupported: String { return self._s[3290]! } + public var WatchRemote_AlertTitle: String { return self._s[3291]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3292]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3294]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3292]!, self._r[3292]!, [_0]) + return formatWithArgumentRanges(self._s[3295]!, self._r[3295]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3293]!, self._r[3293]!, [_1]) + return formatWithArgumentRanges(self._s[3296]!, self._r[3296]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3294]! } - public var Wallet_Navigation_Done: String { return self._s[3296]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3297]! } - public var AccessDenied_CameraDisabled: String { return self._s[3298]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3297]! } + public var Wallet_Navigation_Done: String { return self._s[3299]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3300]! } + public var AccessDenied_CameraDisabled: String { return self._s[3301]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3299]!, self._r[3299]!, [_0]) + return formatWithArgumentRanges(self._s[3302]!, self._r[3302]!, [_0]) } - public var ClearCache_Forever: String { return self._s[3300]! } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3301]! } - public var CreatePoll_Quiz: String { return self._s[3302]! } - public var PhotoEditor_ContrastTool: String { return self._s[3305]! } + public var ClearCache_Forever: String { return self._s[3303]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3304]! } + public var CreatePoll_Quiz: String { return self._s[3305]! } + public var PhotoEditor_ContrastTool: String { return self._s[3308]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3306]!, self._r[3306]!, [_1]) + return formatWithArgumentRanges(self._s[3309]!, self._r[3309]!, [_1]) } - public var DialogList_Draft: String { return self._s[3307]! } - public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3308]! } - public var Privacy_TopPeersDelete: String { return self._s[3310]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3311]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3312]! } - public var WebSearch_RecentSectionClear: String { return self._s[3313]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3314]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3316]! } - public var Common_Done: String { return self._s[3318]! } - public var Shortcut_SwitchAccount: String { return self._s[3319]! } - public var AuthSessions_EmptyText: String { return self._s[3320]! } - public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3321]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3322]! } - public var Tour_Title5: String { return self._s[3323]! } - public var Wallet_Settings_Title: String { return self._s[3324]! } + public var DialogList_Draft: String { return self._s[3310]! } + public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3311]! } + public var Privacy_TopPeersDelete: String { return self._s[3313]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3314]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3315]! } + public var WebSearch_RecentSectionClear: String { return self._s[3316]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3317]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3319]! } + public var Common_Done: String { return self._s[3321]! } + public var Shortcut_SwitchAccount: String { return self._s[3322]! } + public var AuthSessions_EmptyText: String { return self._s[3323]! } + public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3324]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3325]! } + public var Tour_Title5: String { return self._s[3326]! } + public var Wallet_Settings_Title: String { return self._s[3327]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3325]!, self._r[3325]!, [_0]) + return formatWithArgumentRanges(self._s[3328]!, self._r[3328]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3326]! } - public var Conversation_LinkDialogSave: String { return self._s[3327]! } - public var GroupInfo_ActionRestrict: String { return self._s[3328]! } - public var Checkout_Title: String { return self._s[3329]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3331]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3333]! } - public var Notification_RenamedGroup: String { return self._s[3334]! } - public var PeopleNearby_Groups: String { return self._s[3335]! } - public var Checkout_PayWithFaceId: String { return self._s[3336]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3337]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3339]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3340]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3341]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3329]! } + public var Conversation_LinkDialogSave: String { return self._s[3330]! } + public var GroupInfo_ActionRestrict: String { return self._s[3331]! } + public var Checkout_Title: String { return self._s[3332]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3334]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3336]! } + public var Notification_RenamedGroup: String { return self._s[3337]! } + public var PeopleNearby_Groups: String { return self._s[3338]! } + public var Checkout_PayWithFaceId: String { return self._s[3339]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3340]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3342]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3343]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3344]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3342]!, self._r[3342]!, [_0]) + return formatWithArgumentRanges(self._s[3345]!, self._r[3345]!, [_0]) } - public var Profile_AddToExisting: String { return self._s[3344]! } + public var Profile_AddToExisting: String { return self._s[3347]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3345]!, self._r[3345]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3348]!, self._r[3348]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3347]! } - public var Permissions_PrivacyPolicy: String { return self._s[3348]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3349]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3350]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3352]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3354]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3355]! } + public var Cache_Files: String { return self._s[3350]! } + public var Permissions_PrivacyPolicy: String { return self._s[3351]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3352]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3353]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3355]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3357]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3358]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_0]) + return formatWithArgumentRanges(self._s[3359]!, self._r[3359]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3357]! } - public var VoiceOver_AttachMedia: String { return self._s[3360]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3361]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3360]! } + public var VoiceOver_AttachMedia: String { return self._s[3363]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3364]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3362]!, self._r[3362]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3365]!, self._r[3365]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3363]! } - public var Conversation_SetReminder_Title: String { return self._s[3364]! } - public var Passport_FieldAddressHelp: String { return self._s[3365]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3366]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3367]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3366]! } + public var Conversation_SetReminder_Title: String { return self._s[3367]! } + public var Passport_FieldAddressHelp: String { return self._s[3368]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3369]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3370]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3368]!, self._r[3368]!, [_0]) + return formatWithArgumentRanges(self._s[3371]!, self._r[3371]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3369]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3370]! } - public var Login_UnknownError: String { return self._s[3371]! } - public var Group_UpgradeNoticeText2: String { return self._s[3374]! } - public var Watch_Compose_AddContact: String { return self._s[3375]! } - public var ClearCache_StorageServiceFiles: String { return self._s[3376]! } - public var Web_Error: String { return self._s[3377]! } - public var Gif_Search: String { return self._s[3378]! } - public var Profile_MessageLifetime1h: String { return self._s[3379]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3380]! } - public var Channel_Username_CheckingUsername: String { return self._s[3381]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3382]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3383]! } - public var Channel_AboutItem: String { return self._s[3384]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3386]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3387]! } - public var GroupInfo_SharedMedia: String { return self._s[3388]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3372]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3373]! } + public var Login_UnknownError: String { return self._s[3374]! } + public var Group_UpgradeNoticeText2: String { return self._s[3377]! } + public var Watch_Compose_AddContact: String { return self._s[3378]! } + public var ClearCache_StorageServiceFiles: String { return self._s[3379]! } + public var Web_Error: String { return self._s[3380]! } + public var Gif_Search: String { return self._s[3381]! } + public var Profile_MessageLifetime1h: String { return self._s[3382]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3383]! } + public var Channel_Username_CheckingUsername: String { return self._s[3384]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3385]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3386]! } + public var Channel_AboutItem: String { return self._s[3387]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3389]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3390]! } + public var GroupInfo_SharedMedia: String { return self._s[3391]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3389]!, self._r[3389]!, [_1]) + return formatWithArgumentRanges(self._s[3392]!, self._r[3392]!, [_1]) } - public var Call_PhoneCallInProgressMessage: String { return self._s[3390]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3393]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3391]!, self._r[3391]!, [_1]) + return formatWithArgumentRanges(self._s[3394]!, self._r[3394]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3392]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3393]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3394]! } - public var CreatePoll_AddOption: String { return self._s[3395]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3396]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3397]! } - public var Channel_Management_AddModerator: String { return self._s[3398]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3399]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3400]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3401]! } - public var Theme_Colors_Background: String { return self._s[3402]! } - public var NotificationsSound_Hello: String { return self._s[3404]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3405]! } - public var Channel_Stickers_Placeholder: String { return self._s[3407]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3395]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3396]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3397]! } + public var CreatePoll_AddOption: String { return self._s[3398]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3399]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3400]! } + public var Channel_Management_AddModerator: String { return self._s[3401]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3402]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3403]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3404]! } + public var Theme_Colors_Background: String { return self._s[3405]! } + public var NotificationsSound_Hello: String { return self._s[3407]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3408]! } + public var Channel_Stickers_Placeholder: String { return self._s[3410]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3408]!, self._r[3408]!, [_0]) + return formatWithArgumentRanges(self._s[3411]!, self._r[3411]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3409]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3410]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3411]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3412]! } - public var AutoDownloadSettings_Channels: String { return self._s[3413]! } - public var Passport_Language_mn: String { return self._s[3414]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3417]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3418]! } - public var Passport_Language_ja: String { return self._s[3420]! } - public var Settings_About_Title: String { return self._s[3421]! } - public var Settings_NotificationsAndSounds: String { return self._s[3422]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3423]! } - public var Settings_BlockedUsers: String { return self._s[3424]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3412]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3413]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3414]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3415]! } + public var AutoDownloadSettings_Channels: String { return self._s[3416]! } + public var Passport_Language_mn: String { return self._s[3417]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3420]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3421]! } + public var Passport_Language_ja: String { return self._s[3423]! } + public var Settings_About_Title: String { return self._s[3424]! } + public var Settings_NotificationsAndSounds: String { return self._s[3425]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3426]! } + public var Settings_BlockedUsers: String { return self._s[3427]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3425]!, self._r[3425]!, [_0]) + return formatWithArgumentRanges(self._s[3428]!, self._r[3428]!, [_0]) } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3426]! } - public var Wallet_Weekday_Today: String { return self._s[3427]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3428]! } - public var Widget_ApplicationLocked: String { return self._s[3429]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3430]! } - public var Channel_Username_Title: String { return self._s[3431]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3429]! } + public var Wallet_Weekday_Today: String { return self._s[3430]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3431]! } + public var Widget_ApplicationLocked: String { return self._s[3432]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3433]! } + public var Channel_Username_Title: String { return self._s[3434]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3432]!, self._r[3432]!, [_0]) + return formatWithArgumentRanges(self._s[3435]!, self._r[3435]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3434]! } - public var AppleWatch_Title: String { return self._s[3435]! } - public var Activity_RecordingVideoMessage: String { return self._s[3436]! } + public var AttachmentMenu_File: String { return self._s[3437]! } + public var AppleWatch_Title: String { return self._s[3438]! } + public var Activity_RecordingVideoMessage: String { return self._s[3439]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3437]!, self._r[3437]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3440]!, self._r[3440]!, [_1, _2]) } - public var Theme_Colors_Messages: String { return self._s[3438]! } - public var Weekday_Saturday: String { return self._s[3439]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3440]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3441]! } - public var Common_Next: String { return self._s[3443]! } - public var Channel_Stickers_YourStickers: String { return self._s[3445]! } - public var Message_Theme: String { return self._s[3446]! } - public var Call_AudioRouteHeadphones: String { return self._s[3447]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3449]! } - public var Watch_Contacts_NoResults: String { return self._s[3451]! } - public var PhotoEditor_TintTool: String { return self._s[3454]! } - public var LoginPassword_ResetAccount: String { return self._s[3456]! } - public var Settings_SavedMessages: String { return self._s[3457]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3458]! } - public var Bot_GenericSupportStatus: String { return self._s[3459]! } - public var StickerPack_Add: String { return self._s[3460]! } - public var Checkout_TotalAmount: String { return self._s[3461]! } - public var Your_cards_number_is_invalid: String { return self._s[3462]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3463]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3464]! } + public var Theme_Colors_Messages: String { return self._s[3441]! } + public var Weekday_Saturday: String { return self._s[3442]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3443]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3444]! } + public var Common_Next: String { return self._s[3446]! } + public var Channel_Stickers_YourStickers: String { return self._s[3448]! } + public var Message_Theme: String { return self._s[3449]! } + public var Call_AudioRouteHeadphones: String { return self._s[3450]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3452]! } + public var Watch_Contacts_NoResults: String { return self._s[3454]! } + public var PhotoEditor_TintTool: String { return self._s[3457]! } + public var LoginPassword_ResetAccount: String { return self._s[3459]! } + public var Settings_SavedMessages: String { return self._s[3460]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3461]! } + public var Bot_GenericSupportStatus: String { return self._s[3462]! } + public var StickerPack_Add: String { return self._s[3463]! } + public var Checkout_TotalAmount: String { return self._s[3464]! } + public var Your_cards_number_is_invalid: String { return self._s[3465]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3466]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3467]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3465]!, self._r[3465]!, [_0]) + return formatWithArgumentRanges(self._s[3468]!, self._r[3468]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3466]!, self._r[3466]!, [_1, _2]) - } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3467]! } - public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3469]!, self._r[3469]!, [_1, _2]) } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3470]! } + public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3472]!, self._r[3472]!, [_1, _2]) + } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3470]!, self._r[3470]!, [_0]) + return formatWithArgumentRanges(self._s[3473]!, self._r[3473]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3471]! } - public var StickerPack_Share: String { return self._s[3472]! } - public var Passport_DeleteAddress: String { return self._s[3473]! } - public var Settings_Passport: String { return self._s[3474]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3475]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3476]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3477]! } - public var Contacts_PermissionsText: String { return self._s[3478]! } - public var Group_Setup_HistoryVisible: String { return self._s[3479]! } - public var Wallet_Month_ShortDecember: String { return self._s[3481]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3482]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3483]! } - public var SocksProxySetup_Title: String { return self._s[3484]! } - public var Notification_Mute1h: String { return self._s[3485]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3474]! } + public var StickerPack_Share: String { return self._s[3475]! } + public var Passport_DeleteAddress: String { return self._s[3476]! } + public var Settings_Passport: String { return self._s[3477]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3478]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3479]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3480]! } + public var Contacts_PermissionsText: String { return self._s[3481]! } + public var Group_Setup_HistoryVisible: String { return self._s[3482]! } + public var Wallet_Month_ShortDecember: String { return self._s[3484]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3485]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3486]! } + public var SocksProxySetup_Title: String { return self._s[3487]! } + public var Notification_Mute1h: String { return self._s[3488]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3486]!, self._r[3486]!, [_0]) + return formatWithArgumentRanges(self._s[3489]!, self._r[3489]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3487]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3490]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3488]!, self._r[3488]!, [_1]) + return formatWithArgumentRanges(self._s[3491]!, self._r[3491]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3489]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3492]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3494]! } - public var DialogList_NoMessagesText: String { return self._s[3495]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3496]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3497]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3499]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3500]! } - public var Common_TakePhotoOrVideo: String { return self._s[3501]! } - public var Wallet_Words_Text: String { return self._s[3502]! } - public var Call_StatusBusy: String { return self._s[3503]! } - public var Conversation_PinnedMessage: String { return self._s[3504]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3505]! } - public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3506]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3507]! } - public var Undo_ChatCleared: String { return self._s[3508]! } - public var AppleWatch_ReplyPresets: String { return self._s[3509]! } - public var Passport_DiscardMessageDescription: String { return self._s[3511]! } - public var Login_NetworkError: String { return self._s[3512]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3492]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3495]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3497]! } + public var DialogList_NoMessagesText: String { return self._s[3498]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3499]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3500]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3502]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3503]! } + public var Common_TakePhotoOrVideo: String { return self._s[3504]! } + public var Wallet_Words_Text: String { return self._s[3505]! } + public var Call_StatusBusy: String { return self._s[3506]! } + public var Conversation_PinnedMessage: String { return self._s[3507]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3508]! } + public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3509]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3510]! } + public var Undo_ChatCleared: String { return self._s[3511]! } + public var AppleWatch_ReplyPresets: String { return self._s[3512]! } + public var Passport_DiscardMessageDescription: String { return self._s[3514]! } + public var Login_NetworkError: String { return self._s[3515]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3513]!, self._r[3513]!, [_0]) + return formatWithArgumentRanges(self._s[3516]!, self._r[3516]!, [_0]) } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3514]!, self._r[3514]!, [_0]) + return formatWithArgumentRanges(self._s[3517]!, self._r[3517]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3515]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3517]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3518]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3518]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3520]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3521]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3520]!, self._r[3520]!, [_0]) + return formatWithArgumentRanges(self._s[3523]!, self._r[3523]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3521]! } - public var VoiceOver_Chat_Music: String { return self._s[3522]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3523]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3525]! } - public var ConversationMedia_Title: String { return self._s[3526]! } - public var EncryptionKey_Title: String { return self._s[3528]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3529]! } - public var Notification_Exceptions_AddException: String { return self._s[3530]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3531]! } - public var Profile_MessageLifetime1m: String { return self._s[3532]! } + public var Call_ConnectionErrorMessage: String { return self._s[3524]! } + public var VoiceOver_Chat_Music: String { return self._s[3525]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3526]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3528]! } + public var ConversationMedia_Title: String { return self._s[3529]! } + public var EncryptionKey_Title: String { return self._s[3531]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3532]! } + public var Notification_Exceptions_AddException: String { return self._s[3533]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3534]! } + public var Profile_MessageLifetime1m: String { return self._s[3535]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3533]!, self._r[3533]!, [_1]) + return formatWithArgumentRanges(self._s[3536]!, self._r[3536]!, [_1]) } - public var Month_GenMay: String { return self._s[3534]! } + public var Month_GenMay: String { return self._s[3537]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3535]!, self._r[3535]!, [_0]) + return formatWithArgumentRanges(self._s[3538]!, self._r[3538]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3536]! } - public var Wallet_Send_AddressInfo: String { return self._s[3537]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3538]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3539]! } + public var PeopleNearby_Users: String { return self._s[3539]! } + public var Wallet_Send_AddressInfo: String { return self._s[3540]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3541]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3542]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3541]!, self._r[3541]!, [_0]) + return formatWithArgumentRanges(self._s[3544]!, self._r[3544]!, [_0]) } - public var Conversation_EmptyPlaceholder: String { return self._s[3542]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3543]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3544]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3545]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3546]! } - public var Channel_JoinChannel: String { return self._s[3548]! } - public var Appearance_Animations: String { return self._s[3551]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3545]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3546]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3547]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3548]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3549]! } + public var Channel_JoinChannel: String { return self._s[3551]! } + public var Appearance_Animations: String { return self._s[3554]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3552]!, self._r[3552]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3555]!, self._r[3555]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3554]! } - public var Appearance_ShareTheme: String { return self._s[3555]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3556]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3558]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3559]! } - public var Passport_Address_Street: String { return self._s[3560]! } - public var Conversation_AddContact: String { return self._s[3561]! } - public var Login_PhonePlaceholder: String { return self._s[3562]! } - public var Channel_Members_InviteLink: String { return self._s[3564]! } - public var Bot_Stop: String { return self._s[3565]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3567]! } - public var Notification_PassportValueAddress: String { return self._s[3568]! } - public var Month_ShortJuly: String { return self._s[3569]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3570]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3571]! } - public var Passport_Identity_ReverseSide: String { return self._s[3572]! } - public var Watch_Stickers_Recents: String { return self._s[3575]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3577]! } - public var Map_SendThisLocation: String { return self._s[3578]! } + public var Stickers_GroupStickers: String { return self._s[3557]! } + public var Appearance_ShareTheme: String { return self._s[3558]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3559]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3561]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3562]! } + public var Passport_Address_Street: String { return self._s[3563]! } + public var Conversation_AddContact: String { return self._s[3564]! } + public var Login_PhonePlaceholder: String { return self._s[3565]! } + public var Channel_Members_InviteLink: String { return self._s[3567]! } + public var Bot_Stop: String { return self._s[3568]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3570]! } + public var Notification_PassportValueAddress: String { return self._s[3571]! } + public var Month_ShortJuly: String { return self._s[3572]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3573]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3574]! } + public var Passport_Identity_ReverseSide: String { return self._s[3575]! } + public var Watch_Stickers_Recents: String { return self._s[3578]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3580]! } + public var Map_SendThisLocation: String { return self._s[3581]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3579]!, self._r[3579]!, [_0]) + return formatWithArgumentRanges(self._s[3582]!, self._r[3582]!, [_0]) } public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3580]!, self._r[3580]!, [_0]) - } - public var ConvertToSupergroup_Note: String { return self._s[3581]! } - public var Wallet_Intro_NotNow: String { return self._s[3582]! } - public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3583]!, self._r[3583]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3584]! } + public var ConvertToSupergroup_Note: String { return self._s[3584]! } + public var Wallet_Intro_NotNow: String { return self._s[3585]! } + public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3586]!, self._r[3586]!, [_0]) + } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3587]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3585]!, self._r[3585]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3588]!, self._r[3588]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3587]! } - public var Wallpaper_SearchShort: String { return self._s[3588]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3590]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3591]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3592]! } + public var Login_CallRequestState3: String { return self._s[3590]! } + public var Wallpaper_SearchShort: String { return self._s[3591]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3593]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3594]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3595]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3593]!, self._r[3593]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3596]!, self._r[3596]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3594]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3596]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3599]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3597]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3599]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3602]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, [_0]) - } - public var Passport_CorrectErrors: String { return self._s[3601]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3602]! } - public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3603]!, self._r[3603]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3604]! } - public var Channel_DiscussionGroup: String { return self._s[3605]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3606]! } + public var Passport_CorrectErrors: String { return self._s[3604]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3605]! } + public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3606]!, self._r[3606]!, [_0]) + } + public var Map_SendMyCurrentLocation: String { return self._s[3607]! } + public var Channel_DiscussionGroup: String { return self._s[3608]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3609]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3607]!, self._r[3607]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3610]!, self._r[3610]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3608]! } - public var Permissions_NotificationsText_v0: String { return self._s[3609]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3610]! } - public var Appearance_AppIcon: String { return self._s[3611]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3612]! } - public var LoginPassword_FloodError: String { return self._s[3613]! } - public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3615]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3616]! } + public var SharedMedia_SearchNoResults: String { return self._s[3611]! } + public var Permissions_NotificationsText_v0: String { return self._s[3612]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3613]! } + public var Appearance_AppIcon: String { return self._s[3614]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3615]! } + public var LoginPassword_FloodError: String { return self._s[3616]! } + public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3618]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3619]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3617]!, self._r[3617]!, [_0]) + return formatWithArgumentRanges(self._s[3620]!, self._r[3620]!, [_0]) } - public var Passport_Language_bn: String { return self._s[3618]! } + public var Passport_Language_bn: String { return self._s[3621]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3619]!, self._r[3619]!, [_0]) - } - public var ChatList_Context_Pin: String { return self._s[3620]! } - public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3621]!, self._r[3621]!, [_0]) - } - public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3622]!, self._r[3622]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3623]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3627]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3629]! } - public var Wallet_Month_GenDecember: String { return self._s[3630]! } - public var Contacts_PermissionsAllow: String { return self._s[3631]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3632]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3633]! } - public var WallpaperPreview_Pattern: String { return self._s[3634]! } - public var Paint_Duplicate: String { return self._s[3635]! } - public var Passport_Address_Country: String { return self._s[3636]! } - public var Notification_RenamedChannel: String { return self._s[3638]! } - public var ChatList_Context_Unmute: String { return self._s[3639]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3640]! } - public var Group_MessagePhotoUpdated: String { return self._s[3641]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3642]! } - public var Conversation_ContextMenuBan: String { return self._s[3643]! } - public var TwoStepAuth_EmailSent: String { return self._s[3644]! } - public var MessagePoll_NoVotes: String { return self._s[3645]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3646]! } - public var Passport_Language_is: String { return self._s[3648]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3650]! } - public var Tour_Text5: String { return self._s[3651]! } + public var ChatList_Context_Pin: String { return self._s[3623]! } + public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3624]!, self._r[3624]!, [_0]) + } + public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3625]!, self._r[3625]!, [_0]) + } + public var Wallet_Navigation_Close: String { return self._s[3626]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3630]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3632]! } + public var Wallet_Month_GenDecember: String { return self._s[3633]! } + public var Contacts_PermissionsAllow: String { return self._s[3634]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3635]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3636]! } + public var WallpaperPreview_Pattern: String { return self._s[3637]! } + public var Paint_Duplicate: String { return self._s[3638]! } + public var Passport_Address_Country: String { return self._s[3639]! } + public var Notification_RenamedChannel: String { return self._s[3641]! } + public var ChatList_Context_Unmute: String { return self._s[3642]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3643]! } + public var Group_MessagePhotoUpdated: String { return self._s[3644]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3645]! } + public var Conversation_ContextMenuBan: String { return self._s[3646]! } + public var TwoStepAuth_EmailSent: String { return self._s[3647]! } + public var MessagePoll_NoVotes: String { return self._s[3648]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3649]! } + public var Passport_Language_is: String { return self._s[3651]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3653]! } + public var Tour_Text5: String { return self._s[3654]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3654]!, self._r[3654]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3657]!, self._r[3657]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3655]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3656]! } + public var Undo_SecretChatDeleted: String { return self._s[3658]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3659]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3657]!, self._r[3657]!, [_0]) + return formatWithArgumentRanges(self._s[3660]!, self._r[3660]!, [_0]) } - public var Forward_ErrorDisabledForChat: String { return self._s[3658]! } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3659]! } - public var Paint_Edit: String { return self._s[3661]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3663]! } - public var Undo_DeletedGroup: String { return self._s[3665]! } - public var LoginPassword_ForgotPassword: String { return self._s[3666]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3667]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3668]! } + public var Forward_ErrorDisabledForChat: String { return self._s[3661]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3662]! } + public var Paint_Edit: String { return self._s[3664]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3666]! } + public var Undo_DeletedGroup: String { return self._s[3668]! } + public var LoginPassword_ForgotPassword: String { return self._s[3669]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3670]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3671]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3669]!, self._r[3669]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3672]!, self._r[3672]!, [_0, _1]) } - public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3670]! } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3671]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3672]! } - public var Passport_Language_uz: String { return self._s[3673]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3674]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3675]! } - public var Map_StopLiveLocation: String { return self._s[3677]! } - public var VoiceOver_MessageContextSend: String { return self._s[3679]! } - public var PasscodeSettings_Help: String { return self._s[3680]! } - public var NotificationsSound_Input: String { return self._s[3681]! } - public var Share_Title: String { return self._s[3684]! } - public var LogoutOptions_Title: String { return self._s[3685]! } - public var Wallet_Send_AddressText: String { return self._s[3686]! } - public var Login_TermsOfServiceAgree: String { return self._s[3687]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3688]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3689]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3690]! } - public var EnterPasscode_EnterTitle: String { return self._s[3691]! } + public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3673]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3674]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3675]! } + public var Passport_Language_uz: String { return self._s[3676]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3677]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3678]! } + public var Map_StopLiveLocation: String { return self._s[3680]! } + public var VoiceOver_MessageContextSend: String { return self._s[3682]! } + public var PasscodeSettings_Help: String { return self._s[3683]! } + public var NotificationsSound_Input: String { return self._s[3684]! } + public var Share_Title: String { return self._s[3687]! } + public var LogoutOptions_Title: String { return self._s[3688]! } + public var Wallet_Send_AddressText: String { return self._s[3689]! } + public var Login_TermsOfServiceAgree: String { return self._s[3690]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3691]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3692]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3693]! } + public var EnterPasscode_EnterTitle: String { return self._s[3694]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3692]!, self._r[3692]!, [_0]) - } - public var Settings_CopyPhoneNumber: String { return self._s[3693]! } - public var Conversation_AddToContacts: String { return self._s[3694]! } - public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3695]!, self._r[3695]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[3696]! } + public var Settings_CopyPhoneNumber: String { return self._s[3696]! } + public var Conversation_AddToContacts: String { return self._s[3697]! } + public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_0]) + } + public var NotificationsSound_Keys: String { return self._s[3699]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3697]!, self._r[3697]!, [_0]) + return formatWithArgumentRanges(self._s[3700]!, self._r[3700]!, [_0]) } - public var Notification_MessageLifetime1w: String { return self._s[3698]! } - public var Message_Video: String { return self._s[3699]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3700]! } + public var Notification_MessageLifetime1w: String { return self._s[3701]! } + public var Message_Video: String { return self._s[3702]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3703]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_1]) + return formatWithArgumentRanges(self._s[3704]!, self._r[3704]!, [_1]) } - public var Wallet_Receive_AmountInfo: String { return self._s[3704]! } + public var Wallet_Receive_AmountInfo: String { return self._s[3707]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3705]!, self._r[3705]!, [_0]) + return formatWithArgumentRanges(self._s[3708]!, self._r[3708]!, [_0]) } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3706]!, self._r[3706]!, [_0]) + return formatWithArgumentRanges(self._s[3709]!, self._r[3709]!, [_0]) } - public var Passport_Language_mk: String { return self._s[3707]! } + public var Passport_Language_mk: String { return self._s[3710]! } public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3708]!, self._r[3708]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3711]!, self._r[3711]!, [_1, _2, _3]) } - public var CreatePoll_CancelConfirmation: String { return self._s[3709]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3710]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3712]! } - public var PrivacyPolicy_Decline: String { return self._s[3713]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3714]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3715]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3716]! } - public var Permissions_SiriAllow_v0: String { return self._s[3718]! } - public var Wallet_Month_ShortAugust: String { return self._s[3719]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3720]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3712]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3713]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3715]! } + public var PrivacyPolicy_Decline: String { return self._s[3716]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3717]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3718]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3719]! } + public var Permissions_SiriAllow_v0: String { return self._s[3721]! } + public var Wallet_Month_ShortAugust: String { return self._s[3722]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3723]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3721]!, self._r[3721]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3724]!, self._r[3724]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3722]!, self._r[3722]!, [_0]) + return formatWithArgumentRanges(self._s[3725]!, self._r[3725]!, [_0]) } - public var Paint_Regular: String { return self._s[3723]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3724]! } - public var SocksProxySetup_ShareLink: String { return self._s[3725]! } - public var Wallet_Qr_Title: String { return self._s[3726]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3727]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3729]! } - public var Wallet_Settings_Configuration: String { return self._s[3730]! } - public var GroupInfo_InviteByLink: String { return self._s[3731]! } - public var MessageTimer_Custom: String { return self._s[3732]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3733]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3734]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3736]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[3737]! } - public var VoiceOver_Chat_Selected: String { return self._s[3738]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3739]! } - public var Channel_Username_InvalidTaken: String { return self._s[3740]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3741]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3742]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[3743]! } - public var Settings_ChatBackground: String { return self._s[3744]! } - public var Channel_Subscribers_Title: String { return self._s[3745]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3746]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3747]! } - public var Watch_ConnectionDescription: String { return self._s[3748]! } - public var OldChannels_NoticeText: String { return self._s[3751]! } - public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3752]! } - public var IntentsSettings_SuggestBy: String { return self._s[3754]! } - public var Theme_ThemeChangedText: String { return self._s[3755]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[3756]! } - public var Wallpaper_ResetWallpapers: String { return self._s[3757]! } - public var Wallet_Send_TransactionInProgress: String { return self._s[3758]! } - public var EditProfile_Title: String { return self._s[3759]! } - public var NotificationsSound_Bamboo: String { return self._s[3761]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3763]! } - public var Login_SmsRequestState2: String { return self._s[3764]! } - public var Passport_Language_ar: String { return self._s[3765]! } + public var Paint_Regular: String { return self._s[3726]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3727]! } + public var SocksProxySetup_ShareLink: String { return self._s[3728]! } + public var Wallet_Qr_Title: String { return self._s[3729]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3730]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3732]! } + public var Wallet_Settings_Configuration: String { return self._s[3733]! } + public var GroupInfo_InviteByLink: String { return self._s[3734]! } + public var MessageTimer_Custom: String { return self._s[3735]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3736]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3737]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3739]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[3740]! } + public var VoiceOver_Chat_Selected: String { return self._s[3741]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3742]! } + public var Channel_Username_InvalidTaken: String { return self._s[3743]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3744]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3745]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[3746]! } + public var Settings_ChatBackground: String { return self._s[3747]! } + public var Channel_Subscribers_Title: String { return self._s[3748]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3749]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3750]! } + public var Watch_ConnectionDescription: String { return self._s[3751]! } + public var OldChannels_NoticeText: String { return self._s[3754]! } + public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3755]! } + public var IntentsSettings_SuggestBy: String { return self._s[3757]! } + public var Theme_ThemeChangedText: String { return self._s[3758]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[3759]! } + public var Wallpaper_ResetWallpapers: String { return self._s[3760]! } + public var Wallet_Send_TransactionInProgress: String { return self._s[3761]! } + public var EditProfile_Title: String { return self._s[3762]! } + public var NotificationsSound_Bamboo: String { return self._s[3764]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3766]! } + public var Login_SmsRequestState2: String { return self._s[3767]! } + public var Passport_Language_ar: String { return self._s[3768]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3766]!, self._r[3766]!, [_0]) + return formatWithArgumentRanges(self._s[3769]!, self._r[3769]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3767]! } - public var Wallet_Created_Text: String { return self._s[3768]! } - public var Conversation_MessageDialogEdit: String { return self._s[3770]! } - public var Wallet_Created_Proceed: String { return self._s[3771]! } - public var Wallet_Words_Done: String { return self._s[3772]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3773]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3770]! } + public var Wallet_Created_Text: String { return self._s[3771]! } + public var Conversation_MessageDialogEdit: String { return self._s[3773]! } + public var Wallet_Created_Proceed: String { return self._s[3774]! } + public var Wallet_Words_Done: String { return self._s[3775]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3776]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3774]!, self._r[3774]!, [_1]) + return formatWithArgumentRanges(self._s[3777]!, self._r[3777]!, [_1]) } - public var Common_Close: String { return self._s[3775]! } - public var GroupInfo_PublicLink: String { return self._s[3776]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3777]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3778]! } + public var Common_Close: String { return self._s[3778]! } + public var GroupInfo_PublicLink: String { return self._s[3779]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3780]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3781]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3782]!, self._r[3782]!, [_0]) + return formatWithArgumentRanges(self._s[3785]!, self._r[3785]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3783]! } + public var UserInfo_About_Placeholder: String { return self._s[3786]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3784]!, self._r[3784]!, [_0]) + return formatWithArgumentRanges(self._s[3787]!, self._r[3787]!, [_0]) } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[3785]! } - public var Channel_Info_Banned: String { return self._s[3787]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[3788]! } + public var Channel_Info_Banned: String { return self._s[3790]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3788]!, self._r[3788]!, [_0]) + return formatWithArgumentRanges(self._s[3791]!, self._r[3791]!, [_0]) } - public var Appearance_Other: String { return self._s[3789]! } - public var Passport_Language_my: String { return self._s[3790]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3791]! } + public var Appearance_Other: String { return self._s[3792]! } + public var Passport_Language_my: String { return self._s[3793]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3794]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3792]!, self._r[3792]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3795]!, self._r[3795]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3793]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3794]! } - public var Preview_CopyAddress: String { return self._s[3795]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3796]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3797]! } + public var Preview_CopyAddress: String { return self._s[3798]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3796]!, self._r[3796]!, [_0]) + return formatWithArgumentRanges(self._s[3799]!, self._r[3799]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3797]! } - public var UserInfo_BotSettings: String { return self._s[3798]! } - public var LiveLocation_MenuStopAll: String { return self._s[3800]! } - public var Passport_PasswordCreate: String { return self._s[3801]! } - public var StickerSettings_MaskContextInfo: String { return self._s[3802]! } - public var Message_PinnedLocationMessage: String { return self._s[3803]! } - public var Map_Satellite: String { return self._s[3804]! } - public var Watch_Message_Unsupported: String { return self._s[3805]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[3806]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3807]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3800]! } + public var UserInfo_BotSettings: String { return self._s[3801]! } + public var LiveLocation_MenuStopAll: String { return self._s[3803]! } + public var Passport_PasswordCreate: String { return self._s[3804]! } + public var StickerSettings_MaskContextInfo: String { return self._s[3805]! } + public var Message_PinnedLocationMessage: String { return self._s[3806]! } + public var Map_Satellite: String { return self._s[3807]! } + public var Watch_Message_Unsupported: String { return self._s[3808]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[3809]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3810]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3808]!, self._r[3808]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3811]!, self._r[3811]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3809]!, self._r[3809]!, [_0]) + return formatWithArgumentRanges(self._s[3812]!, self._r[3812]!, [_0]) } - public var Wallet_WordImport_Continue: String { return self._s[3810]! } + public var Wallet_WordImport_Continue: String { return self._s[3813]! } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3811]!, self._r[3811]!, [_0]) + return formatWithArgumentRanges(self._s[3814]!, self._r[3814]!, [_0]) } - public var Notifications_ChannelNotificationsHelp: String { return self._s[3812]! } - public var Privacy_Calls_P2PContacts: String { return self._s[3813]! } - public var NotificationsSound_None: String { return self._s[3814]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3815]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3817]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[3818]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[3815]! } + public var Privacy_Calls_P2PContacts: String { return self._s[3816]! } + public var NotificationsSound_None: String { return self._s[3817]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3818]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3820]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[3821]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3819]!, self._r[3819]!, [_1]) + return formatWithArgumentRanges(self._s[3822]!, self._r[3822]!, [_1]) } - public var Cache_Indexing: String { return self._s[3820]! } - public var DialogList_RecentTitlePeople: String { return self._s[3822]! } - public var DialogList_EncryptionRejected: String { return self._s[3823]! } - public var GroupInfo_Administrators: String { return self._s[3824]! } - public var Passport_ScanPassportHelp: String { return self._s[3825]! } - public var Application_Name: String { return self._s[3826]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3827]! } - public var Appearance_ThemeCarouselDay: String { return self._s[3829]! } - public var Passport_Identity_TranslationHelp: String { return self._s[3830]! } + public var Cache_Indexing: String { return self._s[3823]! } + public var DialogList_RecentTitlePeople: String { return self._s[3825]! } + public var DialogList_EncryptionRejected: String { return self._s[3826]! } + public var GroupInfo_Administrators: String { return self._s[3827]! } + public var Passport_ScanPassportHelp: String { return self._s[3828]! } + public var Application_Name: String { return self._s[3829]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3830]! } + public var Appearance_ThemeCarouselDay: String { return self._s[3832]! } + public var Passport_Identity_TranslationHelp: String { return self._s[3833]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3831]!, self._r[3831]!, [_0]) + return formatWithArgumentRanges(self._s[3834]!, self._r[3834]!, [_0]) } public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3832]!, self._r[3832]!, [_0]) + return formatWithArgumentRanges(self._s[3835]!, self._r[3835]!, [_0]) } public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3833]!, self._r[3833]!, [_0]) + return formatWithArgumentRanges(self._s[3836]!, self._r[3836]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3834]! } - public var Privacy_ChatsTitle: String { return self._s[3835]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[3836]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3837]! } - public var Watch_Suggestion_HoldOn: String { return self._s[3838]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3839]! } - public var WebBrowser_Title: String { return self._s[3840]! } - public var Group_LinkedChannel: String { return self._s[3841]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3842]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[3843]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3844]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3845]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[3846]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[3848]! } - public var Channel_Setup_TypePublic: String { return self._s[3850]! } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3837]! } + public var Privacy_ChatsTitle: String { return self._s[3838]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[3839]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3840]! } + public var Watch_Suggestion_HoldOn: String { return self._s[3841]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3842]! } + public var WebBrowser_Title: String { return self._s[3843]! } + public var Group_LinkedChannel: String { return self._s[3844]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3845]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[3846]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3847]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3848]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[3849]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[3851]! } + public var Channel_Setup_TypePublic: String { return self._s[3853]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3851]!, self._r[3851]!, [_0]) + return formatWithArgumentRanges(self._s[3854]!, self._r[3854]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[3853]! } - public var MessagePoll_ViewResults: String { return self._s[3854]! } - public var Map_OpenInMaps: String { return self._s[3856]! } + public var Channel_TypeSetup_Title: String { return self._s[3856]! } + public var MessagePoll_ViewResults: String { return self._s[3857]! } + public var Map_OpenInMaps: String { return self._s[3859]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3857]!, self._r[3857]!, [_1]) + return formatWithArgumentRanges(self._s[3860]!, self._r[3860]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[3859]! } + public var NotificationsSound_Tremolo: String { return self._s[3862]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3860]!, self._r[3860]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3863]!, self._r[3863]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3861]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3862]! } - public var Passport_PasswordHelp: String { return self._s[3863]! } - public var Login_CodeExpiredError: String { return self._s[3864]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3865]! } - public var Conversation_TitleUnmute: String { return self._s[3866]! } - public var Passport_Identity_ScansHelp: String { return self._s[3867]! } - public var Passport_Language_lo: String { return self._s[3868]! } - public var Camera_FlashAuto: String { return self._s[3869]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3870]! } - public var Common_Cancel: String { return self._s[3871]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[3872]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3873]! } - public var Appearance_TintAllColors: String { return self._s[3874]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3864]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3865]! } + public var Passport_PasswordHelp: String { return self._s[3866]! } + public var Login_CodeExpiredError: String { return self._s[3867]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3868]! } + public var Conversation_TitleUnmute: String { return self._s[3869]! } + public var Passport_Identity_ScansHelp: String { return self._s[3870]! } + public var Passport_Language_lo: String { return self._s[3871]! } + public var Camera_FlashAuto: String { return self._s[3872]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3873]! } + public var Common_Cancel: String { return self._s[3874]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[3875]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3876]! } + public var Appearance_TintAllColors: String { return self._s[3877]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3875]!, self._r[3875]!, [_1]) + return formatWithArgumentRanges(self._s[3878]!, self._r[3878]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[3876]! } - public var ChatSettings_Title: String { return self._s[3878]! } - public var Passport_PasswordReset: String { return self._s[3879]! } - public var SocksProxySetup_TypeNone: String { return self._s[3880]! } - public var EditTheme_Title: String { return self._s[3883]! } - public var PhoneNumberHelp_Help: String { return self._s[3884]! } - public var Checkout_EnterPassword: String { return self._s[3885]! } - public var Activity_UploadingDocument: String { return self._s[3887]! } - public var Share_AuthTitle: String { return self._s[3888]! } - public var State_Connecting: String { return self._s[3889]! } - public var Profile_MessageLifetime1w: String { return self._s[3890]! } - public var Conversation_ContextMenuReport: String { return self._s[3891]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3892]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3893]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[3879]! } + public var ChatSettings_Title: String { return self._s[3881]! } + public var Passport_PasswordReset: String { return self._s[3882]! } + public var SocksProxySetup_TypeNone: String { return self._s[3883]! } + public var EditTheme_Title: String { return self._s[3886]! } + public var PhoneNumberHelp_Help: String { return self._s[3887]! } + public var Checkout_EnterPassword: String { return self._s[3888]! } + public var Activity_UploadingDocument: String { return self._s[3890]! } + public var Share_AuthTitle: String { return self._s[3891]! } + public var State_Connecting: String { return self._s[3892]! } + public var Profile_MessageLifetime1w: String { return self._s[3893]! } + public var Conversation_ContextMenuReport: String { return self._s[3894]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3895]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3896]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3894]!, self._r[3894]!, [_0]) + return formatWithArgumentRanges(self._s[3897]!, self._r[3897]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[3895]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[3896]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3898]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3899]! } - public var PhotoEditor_Set: String { return self._s[3900]! } - public var EmptyGroupInfo_Title: String { return self._s[3901]! } - public var Login_PadPhoneHelp: String { return self._s[3902]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3904]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3906]! } - public var NotificationsSound_Complete: String { return self._s[3907]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3908]! } - public var Group_Info_AdminLog: String { return self._s[3909]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3910]! } + public var AuthSessions_Terminate: String { return self._s[3898]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[3899]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3901]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3902]! } + public var PhotoEditor_Set: String { return self._s[3903]! } + public var EmptyGroupInfo_Title: String { return self._s[3904]! } + public var Login_PadPhoneHelp: String { return self._s[3905]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3907]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3909]! } + public var NotificationsSound_Complete: String { return self._s[3910]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3911]! } + public var Group_Info_AdminLog: String { return self._s[3912]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3913]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3911]!, self._r[3911]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3914]!, self._r[3914]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3912]! } - public var Group_Location_CreateInThisPlace: String { return self._s[3914]! } - public var Conversation_Admin: String { return self._s[3915]! } - public var Conversation_GifTooltip: String { return self._s[3916]! } - public var Passport_NotLoggedInMessage: String { return self._s[3917]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3915]! } + public var Group_Location_CreateInThisPlace: String { return self._s[3917]! } + public var Conversation_Admin: String { return self._s[3918]! } + public var Conversation_GifTooltip: String { return self._s[3919]! } + public var Passport_NotLoggedInMessage: String { return self._s[3920]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3919]!, self._r[3919]!, [_0]) + return formatWithArgumentRanges(self._s[3922]!, self._r[3922]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[3920]! } - public var SharedMedia_EmptyTitle: String { return self._s[3922]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3924]! } - public var Username_Help: String { return self._s[3925]! } - public var DialogList_LanguageTooltip: String { return self._s[3927]! } - public var Map_LoadError: String { return self._s[3928]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3929]! } - public var Channel_AdminLog_AddMembers: String { return self._s[3930]! } - public var ArchivedChats_IntroTitle2: String { return self._s[3931]! } - public var Notification_Exceptions_NewException: String { return self._s[3932]! } - public var TwoStepAuth_EmailTitle: String { return self._s[3933]! } - public var WatchRemote_AlertText: String { return self._s[3934]! } + public var Profile_MessageLifetimeForever: String { return self._s[3923]! } + public var SharedMedia_EmptyTitle: String { return self._s[3925]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3927]! } + public var Username_Help: String { return self._s[3928]! } + public var DialogList_LanguageTooltip: String { return self._s[3930]! } + public var Map_LoadError: String { return self._s[3931]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3932]! } + public var Channel_AdminLog_AddMembers: String { return self._s[3933]! } + public var ArchivedChats_IntroTitle2: String { return self._s[3934]! } + public var Notification_Exceptions_NewException: String { return self._s[3935]! } + public var TwoStepAuth_EmailTitle: String { return self._s[3936]! } + public var WatchRemote_AlertText: String { return self._s[3937]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3935]!, self._r[3935]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_1, _2, _3]) } - public var ChatSettings_ConnectionType_Title: String { return self._s[3939]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[3942]! } public func PUSH_PINNED_QUIZ(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3943]!, self._r[3943]!, [_1, _2]) } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3941]!, self._r[3941]!, [_0]) + return formatWithArgumentRanges(self._s[3944]!, self._r[3944]!, [_0]) } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3942]! } - public var WebBrowser_DefaultBrowser: String { return self._s[3943]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[3944]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3945]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3946]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[3947]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3945]!, self._r[3945]!, [_0]) + return formatWithArgumentRanges(self._s[3948]!, self._r[3948]!, [_0]) } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3946]!, self._r[3946]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3949]!, self._r[3949]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[3947]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3948]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[3950]! } - public var Wallet_Created_ExportErrorText: String { return self._s[3951]! } - public var ChatList_UndoArchiveText1: String { return self._s[3952]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3953]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3954]! } - public var Cache_ClearNone: String { return self._s[3955]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3956]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3957]! } + public var Group_AdminLog_EmptyText: String { return self._s[3950]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3951]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3953]! } + public var Wallet_Created_ExportErrorText: String { return self._s[3954]! } + public var ChatList_UndoArchiveText1: String { return self._s[3955]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3956]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3957]! } + public var Cache_ClearNone: String { return self._s[3958]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3959]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3960]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3958]!, self._r[3958]!, [_0]) - } - public var Passport_Identity_Country: String { return self._s[3959]! } - public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3960]!, self._r[3960]!, [_0]) - } - public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3961]!, self._r[3961]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[3962]! } - public var AccessDenied_Settings: String { return self._s[3963]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3964]! } - public var Month_ShortMay: String { return self._s[3965]! } - public var Compose_NewGroup: String { return self._s[3967]! } - public var Group_Setup_TypePrivate: String { return self._s[3969]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3971]! } - public var Appearance_ThemeDayClassic: String { return self._s[3972]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3973]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3974]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3975]! } - public var Conversation_typing: String { return self._s[3977]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[3978]! } - public var Paint_Masks: String { return self._s[3979]! } - public var Contacts_DeselectAll: String { return self._s[3980]! } - public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3981]!, self._r[3981]!, [_0]) + public var Passport_Identity_Country: String { return self._s[3962]! } + public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3963]!, self._r[3963]!, [_0]) } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3982]! } - public var Username_InvalidTaken: String { return self._s[3983]! } - public var Call_StatusNoAnswer: String { return self._s[3984]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3985]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3986]! } - public var Passport_Identity_Selfie: String { return self._s[3987]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3988]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3989]! } - public var Conversation_ClearSecretHistory: String { return self._s[3990]! } - public var PeopleNearby_Description: String { return self._s[3992]! } - public var NetworkUsageSettings_Title: String { return self._s[3993]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3995]! } + public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3964]!, self._r[3964]!, [_0]) + } + public var Exceptions_AddToExceptions: String { return self._s[3965]! } + public var AccessDenied_Settings: String { return self._s[3966]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3967]! } + public var Month_ShortMay: String { return self._s[3968]! } + public var Compose_NewGroup: String { return self._s[3970]! } + public var Group_Setup_TypePrivate: String { return self._s[3972]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3974]! } + public var Appearance_ThemeDayClassic: String { return self._s[3975]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3976]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3977]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3978]! } + public var Conversation_typing: String { return self._s[3980]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[3981]! } + public var Paint_Masks: String { return self._s[3982]! } + public var Contacts_DeselectAll: String { return self._s[3983]! } + public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3984]!, self._r[3984]!, [_0]) + } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3985]! } + public var Username_InvalidTaken: String { return self._s[3986]! } + public var Call_StatusNoAnswer: String { return self._s[3987]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3988]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3989]! } + public var Passport_Identity_Selfie: String { return self._s[3990]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3991]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3992]! } + public var Conversation_ClearSecretHistory: String { return self._s[3993]! } + public var PeopleNearby_Description: String { return self._s[3995]! } + public var NetworkUsageSettings_Title: String { return self._s[3996]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3998]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3997]!, self._r[3997]!, [_0]) + return formatWithArgumentRanges(self._s[4000]!, self._r[4000]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3998]!, self._r[3998]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4001]!, self._r[4001]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[4000]! } - public var VoiceOver_Navigation_Search: String { return self._s[4001]! } - public var Map_LiveLocationTitle: String { return self._s[4002]! } - public var Login_InfoAvatarAdd: String { return self._s[4003]! } - public var Passport_Identity_FilesView: String { return self._s[4004]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[4005]! } - public var Privacy_Calls_NeverAllow: String { return self._s[4006]! } - public var VoiceOver_Chat_File: String { return self._s[4007]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4008]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[4003]! } + public var VoiceOver_Navigation_Search: String { return self._s[4004]! } + public var Map_LiveLocationTitle: String { return self._s[4005]! } + public var Login_InfoAvatarAdd: String { return self._s[4006]! } + public var Passport_Identity_FilesView: String { return self._s[4007]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[4008]! } + public var Privacy_Calls_NeverAllow: String { return self._s[4009]! } + public var VoiceOver_Chat_File: String { return self._s[4010]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4011]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4009]!, self._r[4009]!, [_0]) + return formatWithArgumentRanges(self._s[4012]!, self._r[4012]!, [_0]) } - public var ContactInfo_PhoneNumberHidden: String { return self._s[4010]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[4011]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4012]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[4013]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[4014]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4015]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4013]!, self._r[4013]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4016]!, self._r[4016]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4014]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[4015]! } - public var Tour_Title2: String { return self._s[4016]! } - public var Wallet_Sent_ViewWallet: String { return self._s[4017]! } - public var Conversation_FileOpenIn: String { return self._s[4018]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4019]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4020]! } - public var Wallpaper_Set: String { return self._s[4021]! } - public var Passport_Identity_Translations: String { return self._s[4023]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4017]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[4018]! } + public var Tour_Title2: String { return self._s[4019]! } + public var Wallet_Sent_ViewWallet: String { return self._s[4020]! } + public var Conversation_FileOpenIn: String { return self._s[4021]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4022]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4023]! } + public var Wallpaper_Set: String { return self._s[4024]! } + public var Passport_Identity_Translations: String { return self._s[4026]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4024]!, self._r[4024]!, [_0]) + return formatWithArgumentRanges(self._s[4027]!, self._r[4027]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[4025]! } + public var Channel_LeaveChannel: String { return self._s[4028]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4026]!, self._r[4026]!, [_1]) + return formatWithArgumentRanges(self._s[4029]!, self._r[4029]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4028]! } - public var PhotoEditor_HighlightsTint: String { return self._s[4029]! } - public var MessagePoll_LabelPoll: String { return self._s[4030]! } - public var Passport_Email_Delete: String { return self._s[4031]! } - public var Conversation_Mute: String { return self._s[4033]! } - public var Channel_AddBotAsAdmin: String { return self._s[4034]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[4036]! } - public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4037]! } - public var ChatSettings_IntentsSettings: String { return self._s[4039]! } - public var Channel_Management_LabelOwner: String { return self._s[4040]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4031]! } + public var PhotoEditor_HighlightsTint: String { return self._s[4032]! } + public var MessagePoll_LabelPoll: String { return self._s[4033]! } + public var Passport_Email_Delete: String { return self._s[4034]! } + public var Conversation_Mute: String { return self._s[4036]! } + public var Channel_AddBotAsAdmin: String { return self._s[4037]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[4039]! } + public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4040]! } + public var ChatSettings_IntentsSettings: String { return self._s[4042]! } + public var Channel_Management_LabelOwner: String { return self._s[4043]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4041]!, self._r[4041]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[4042]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[4043]! } - public var Common_No: String { return self._s[4044]! } - public var Weekday_Sunday: String { return self._s[4045]! } - public var Notification_Reply: String { return self._s[4046]! } - public var Conversation_ViewMessage: String { return self._s[4047]! } + public var Calls_CallTabDescription: String { return self._s[4045]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[4046]! } + public var Common_No: String { return self._s[4047]! } + public var Weekday_Sunday: String { return self._s[4048]! } + public var Notification_Reply: String { return self._s[4049]! } + public var Conversation_ViewMessage: String { return self._s[4050]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4048]!, self._r[4048]!, [_0]) + return formatWithArgumentRanges(self._s[4051]!, self._r[4051]!, [_0]) } public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4049]!, self._r[4049]!, [_0]) + return formatWithArgumentRanges(self._s[4052]!, self._r[4052]!, [_0]) } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4050]!, self._r[4050]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4053]!, self._r[4053]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4051]! } - public var Wallet_Send_Title: String { return self._s[4052]! } - public var Message_PinnedDocumentMessage: String { return self._s[4053]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[4054]! } - public var DialogList_TabTitle: String { return self._s[4056]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4057]! } - public var Passport_FieldEmail: String { return self._s[4058]! } - public var Conversation_UnpinMessageAlert: String { return self._s[4059]! } - public var Passport_Address_TypeBankStatement: String { return self._s[4060]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[4061]! } - public var Passport_Identity_ExpiryDate: String { return self._s[4062]! } - public var Privacy_Calls_P2P: String { return self._s[4063]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4054]! } + public var Wallet_Send_Title: String { return self._s[4055]! } + public var Message_PinnedDocumentMessage: String { return self._s[4056]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[4057]! } + public var DialogList_TabTitle: String { return self._s[4059]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4060]! } + public var Passport_FieldEmail: String { return self._s[4061]! } + public var Conversation_UnpinMessageAlert: String { return self._s[4062]! } + public var Passport_Address_TypeBankStatement: String { return self._s[4063]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[4064]! } + public var Passport_Identity_ExpiryDate: String { return self._s[4065]! } + public var Privacy_Calls_P2P: String { return self._s[4066]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4065]!, self._r[4065]!, [_0]) + return formatWithArgumentRanges(self._s[4068]!, self._r[4068]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[4066]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[4069]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4067]!, self._r[4067]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4070]!, self._r[4070]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[4068]! } - public var EnterPasscode_ChangeTitle: String { return self._s[4069]! } - public var TwoFactorSetup_Email_Title: String { return self._s[4070]! } - public var Passport_InfoText: String { return self._s[4071]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4072]! } + public var Stickers_ClearRecent: String { return self._s[4071]! } + public var EnterPasscode_ChangeTitle: String { return self._s[4072]! } + public var TwoFactorSetup_Email_Title: String { return self._s[4073]! } + public var Passport_InfoText: String { return self._s[4074]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4075]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4073]!, self._r[4073]!, [_0]) + return formatWithArgumentRanges(self._s[4076]!, self._r[4076]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4074]!, self._r[4074]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4077]!, self._r[4077]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4075]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[4076]! } - public var VoiceOver_Navigation_Compose: String { return self._s[4077]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[4078]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[4080]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4081]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4078]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[4079]! } + public var VoiceOver_Navigation_Compose: String { return self._s[4080]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[4081]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[4083]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4084]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4084]! } - public var ChatSettings_OpenLinksIn: String { return self._s[4085]! } - public var Map_HomeAndWorkTitle: String { return self._s[4086]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4087]! } + public var ChatSettings_OpenLinksIn: String { return self._s[4088]! } + public var Map_HomeAndWorkTitle: String { return self._s[4089]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4088]!, self._r[4088]!, [_0]) + return formatWithArgumentRanges(self._s[4091]!, self._r[4091]!, [_0]) } - public var DialogList_Unread: String { return self._s[4089]! } + public var DialogList_Unread: String { return self._s[4092]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4090]!, self._r[4090]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4093]!, self._r[4093]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[4091]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4092]! } + public var User_DeletedAccount: String { return self._s[4094]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4095]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4093]!, self._r[4093]!, [_0]) + return formatWithArgumentRanges(self._s[4096]!, self._r[4096]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[4094]! } - public var SharedMedia_CategoryMedia: String { return self._s[4095]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4096]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4097]! } - public var Watch_ChatList_Compose: String { return self._s[4098]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4099]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[4100]! } - public var Watch_Microphone_Access: String { return self._s[4101]! } - public var Group_Setup_HistoryHeader: String { return self._s[4102]! } - public var Map_SetThisLocation: String { return self._s[4103]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4104]! } - public var Activity_UploadingPhoto: String { return self._s[4105]! } - public var Conversation_Edit: String { return self._s[4107]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[4108]! } - public var Login_TermsOfServiceDecline: String { return self._s[4109]! } - public var Message_PinnedContactMessage: String { return self._s[4110]! } + public var UserInfo_NotificationsDefault: String { return self._s[4097]! } + public var SharedMedia_CategoryMedia: String { return self._s[4098]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4099]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4100]! } + public var Watch_ChatList_Compose: String { return self._s[4101]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4102]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[4103]! } + public var Watch_Microphone_Access: String { return self._s[4104]! } + public var Group_Setup_HistoryHeader: String { return self._s[4105]! } + public var Map_SetThisLocation: String { return self._s[4106]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4107]! } + public var Activity_UploadingPhoto: String { return self._s[4108]! } + public var Conversation_Edit: String { return self._s[4110]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[4111]! } + public var Login_TermsOfServiceDecline: String { return self._s[4112]! } + public var Message_PinnedContactMessage: String { return self._s[4113]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4111]!, self._r[4111]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4114]!, self._r[4114]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[4115]!, self._r[4115]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[4113]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4115]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4116]! } + public var Appearance_LargeEmoji: String { return self._s[4116]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4118]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4119]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4117]!, self._r[4117]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4120]!, self._r[4120]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[4118]! } - public var Message_PinnedPhotoMessage: String { return self._s[4119]! } - public var Passport_FieldPhone: String { return self._s[4120]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4121]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[4122]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[4124]! } - public var Conversation_Call: String { return self._s[4125]! } - public var Common_TakePhoto: String { return self._s[4127]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4128]! } - public var Wallet_Receive_CommentHeader: String { return self._s[4129]! } - public var Channel_NotificationLoading: String { return self._s[4130]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[4121]! } + public var Message_PinnedPhotoMessage: String { return self._s[4122]! } + public var Passport_FieldPhone: String { return self._s[4123]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4124]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[4125]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[4127]! } + public var Conversation_Call: String { return self._s[4128]! } + public var Common_TakePhoto: String { return self._s[4130]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4131]! } + public var Wallet_Receive_CommentHeader: String { return self._s[4132]! } + public var Channel_NotificationLoading: String { return self._s[4133]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4131]!, self._r[4131]!, [_0]) + return formatWithArgumentRanges(self._s[4134]!, self._r[4134]!, [_0]) } public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4132]!, self._r[4132]!, [_0]) - } - public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4133]!, self._r[4133]!, [_1]) - } - public var Permissions_SiriTitle_v0: String { return self._s[4134]! } - public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4135]!, self._r[4135]!, [_0]) } + public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4136]!, self._r[4136]!, [_1]) + } + public var Permissions_SiriTitle_v0: String { return self._s[4137]! } + public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4138]!, self._r[4138]!, [_0]) + } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4136]!, self._r[4136]!, [_0]) + return formatWithArgumentRanges(self._s[4139]!, self._r[4139]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[4137]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[4138]! } - public var ClearCache_FreeSpace: String { return self._s[4139]! } - public var Common_edit: String { return self._s[4140]! } - public var PrivacySettings_AuthSessions: String { return self._s[4141]! } - public var Month_ShortJune: String { return self._s[4142]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4143]! } - public var Call_ReportSend: String { return self._s[4144]! } - public var Watch_LastSeen_JustNow: String { return self._s[4145]! } - public var Notifications_MessageNotifications: String { return self._s[4146]! } - public var WallpaperSearch_ColorGreen: String { return self._s[4147]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4149]! } - public var Group_Status: String { return self._s[4150]! } + public var Channel_MessagePhotoRemoved: String { return self._s[4140]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[4141]! } + public var ClearCache_FreeSpace: String { return self._s[4142]! } + public var Appearance_BubbleCorners_Apply: String { return self._s[4143]! } + public var Common_edit: String { return self._s[4144]! } + public var PrivacySettings_AuthSessions: String { return self._s[4145]! } + public var Month_ShortJune: String { return self._s[4146]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4147]! } + public var Call_ReportSend: String { return self._s[4148]! } + public var Watch_LastSeen_JustNow: String { return self._s[4149]! } + public var Notifications_MessageNotifications: String { return self._s[4150]! } + public var WallpaperSearch_ColorGreen: String { return self._s[4151]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4153]! } + public var Group_Status: String { return self._s[4154]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4151]!, self._r[4151]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[4152]! } - public var ShareMenu_ShareTo: String { return self._s[4153]! } - public var Conversation_Moderate_Ban: String { return self._s[4154]! } + public var TextFormat_AddLinkTitle: String { return self._s[4156]! } + public var ShareMenu_ShareTo: String { return self._s[4157]! } + public var Conversation_Moderate_Ban: String { return self._s[4158]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_0]) + return formatWithArgumentRanges(self._s[4159]!, self._r[4159]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[4156]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4157]! } + public var SharedMedia_ViewInChat: String { return self._s[4160]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4161]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4158]!, self._r[4158]!, [_1]) + return formatWithArgumentRanges(self._s[4162]!, self._r[4162]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4159]!, self._r[4159]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4163]!, self._r[4163]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4161]!, self._r[4161]!, [_0]) + return formatWithArgumentRanges(self._s[4165]!, self._r[4165]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[4162]! } - public var Appearance_ReduceMotion: String { return self._s[4163]! } + public var Map_OpenInHereMaps: String { return self._s[4166]! } + public var Appearance_ReduceMotion: String { return self._s[4167]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4164]!, self._r[4164]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4168]!, self._r[4168]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[4165]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[4166]! } - public var PhotoEditor_Skip: String { return self._s[4167]! } - public func MessagePoll_QuizCount(_ value: Int32) -> String { + public var Channel_Setup_TypePublicHelp: String { return self._s[4169]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[4170]! } + public var PhotoEditor_Skip: String { return self._s[4171]! } + public func ForwardedGifs(_ 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 ForwardedVideoMessages(_ value: Int32) -> String { + public func ServiceMessage_GameScoreExtended(_ 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 ForwardedFiles(_ value: Int32) -> String { + public func Map_ETAMinutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func StickerPack_RemoveMaskCount(_ 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 ForwardedMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Seconds(_ 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 MessageTimer_Months(_ 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 ForwardedStickers(_ 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 Watch_LastSeen_HoursAgo(_ 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 InviteText_ContactsCountText(_ 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 LastSeen_HoursAgo(_ 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 AttachmentMenu_SendPhoto(_ 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_MESSAGE_VIDEOS(_ 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 Notification_GameScoreSelfSimple(_ 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 AttachmentMenu_SendItem(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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 DialogList_LiveLocationChatsCount(_ 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 AttachmentMenu_SendVideo(_ 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 VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_DeleteItemsConfirmation(_ 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 Media_SharePhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) - } - public func OldChannels_InactiveYear(_ 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 ForwardedPhotos(_ 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 Theme_UsersCount(_ 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_CHANNEL_MESSAGE_VIDEOS(_ 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 LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) - } - public func QuickSend_Photos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusSubscribers(_ 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 OldChannels_GroupFormat(_ 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 Media_ShareItem(_ 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 AttachmentMenu_SendGif(_ 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 Notification_GameScoreExtended(_ 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 GroupInfo_ShowMoreMembers(_ 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 SharedMedia_Generic(_ 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 MuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Days(_ 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 Chat_DeleteMessagesConfirmation(_ 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 Call_Minutes(_ 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 Conversation_SelectedMessages(_ 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 MessageTimer_ShortDays(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ 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 LiveLocation_MenuChatsCount(_ 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 PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func UserCount(_ 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 Contacts_ImportersCount(_ 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 ForwardedContacts(_ 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 ForwardedAudios(_ 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 StickerPack_StickerCount(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 MessageTimer_ShortWeeks(_ 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 Notifications_Exceptions(_ 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_DeletedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notification_GameScoreSimple(_ 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 CreatePoll_AddMoreOptions(_ 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 MuteFor_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 Notification_GameScoreSelfExtended(_ 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 Media_ShareVideo(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func SharedMedia_File(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_LiveLocationMembersCount(_ 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 MessageTimer_Minutes(_ 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 Conversation_StatusMembers(_ 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 StickerPack_AddStickerCount(_ 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 MessageTimer_Years(_ 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 Map_ETAMinutes(_ 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 ForwardedVideos(_ 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 SharedMedia_Link(_ 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 MessagePoll_VotedCount(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Contacts_InviteContacts(_ 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 MessageTimer_Days(_ 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 Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Photo(_ 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 Wallet_Updated_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 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[86 * 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[87 * 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[88 * 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[89 * 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[90 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_MESSAGE_ROUNDS(_ 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 OldChannels_Leave(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, _1, _2) - } - 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[94 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func OldChannels_InactiveMonth(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[96 * 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[97 * 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[98 * 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[99 * 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[100 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func StickerPack_RemoveStickerCount(_ 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 ServiceMessage_GameScoreSimple(_ 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 OldChannels_InactiveWeek(_ 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 StickerPack_AddMaskCount(_ 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 ForwardedLocations(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_ShortHours(_ 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 MuteFor_Days(_ 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_GameScoreSelfSimple(_ 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 PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[111 * 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[112 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, _1, _2) } public func ChatList_DeleteConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedGifs(_ value: Int32) -> String { + public func LastSeen_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteExpires_Minutes(_ value: Int32) -> String { + public func VoiceOver_Chat_ContactPhoneNumberCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { + public func Call_Minutes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + public func Contacts_InviteContacts(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_SelectedChats(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[119 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Weeks(_ value: Int32) -> String { + public func Conversation_StatusSubscribers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[120 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[11 * 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[12 * 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[13 * 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[14 * 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[121 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[15 * 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[16 * 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[17 * 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[18 * 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[19 * 6 + Int(form.rawValue)]!, _1, _2) + } + 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[20 * 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[21 * 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[22 * 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[23 * 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[24 * 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[25 * 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[26 * 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[27 * 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[28 * 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[29 * 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[30 * 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[31 * 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[32 * 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[33 * 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[34 * 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[35 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideoMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedFiles(_ 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 Notification_GameScoreSelfExtended(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreExtended(_ 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 ForwardedPhotos(_ 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 Passport_Scans(_ 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 StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func SharedMedia_Photo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[46 * 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[47 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[48 * 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[49 * 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[50 * 6 + Int(form.rawValue)]!, _1, _2) + } + 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 Call_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Chat_DeleteMessagesConfirmation(_ 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 InviteText_ContactsCountText(_ 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 ForwardedPolls(_ 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) + return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Video(_ value: Int32) -> String { + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) } - public func Map_ETAHours(_ value: Int32) -> String { + public func ChatList_SelectedChats(_ 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) + return String(format: self._ps[58 * 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[59 * 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[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Wallet_Updated_MinutesAgo(_ 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 MuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Notifications_Exceptions(_ 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 UserCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_Link(_ 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 Conversation_StatusOnline(_ 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) + return String(format: self._ps[68 * 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[69 * 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[70 * 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[71 * 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[72 * 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[73 * 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[74 * 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[75 * 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[76 * 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[77 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + 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[78 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func ForwardedLocations(_ 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 AttachmentMenu_SendItem(_ 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_VIDEOS(_ 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 ServiceMessage_GameScoreSimple(_ 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 PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 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[85 * 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[86 * 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[87 * 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[88 * 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[89 * 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[90 * 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[91 * 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[92 * 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[93 * 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[94 * 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[95 * 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[96 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedContacts(_ 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 MessageTimer_Weeks(_ 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 LiveLocation_MenuChatsCount(_ 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 MuteExpires_Hours(_ 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MuteFor_Days(_ 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 PasscodeSettings_FailedAttempts(_ 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 MuteFor_Hours(_ 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 SharedMedia_File(_ 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 DialogList_LiveLocationChatsCount(_ 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 Call_ShortMinutes(_ 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 SharedMedia_Generic(_ 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 MessageTimer_Days(_ 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 MessageTimer_ShortMinutes(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 Call_Seconds(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, _0, _1) + } + public func MessageTimer_Minutes(_ 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 GroupInfo_ShowMoreMembers(_ 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 Conversation_SelectedMessages(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[116 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortDays(_ 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 Watch_LastSeen_MinutesAgo(_ 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 MessageTimer_ShortSeconds(_ 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 MessageTimer_Months(_ 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_Leave(_ 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 OldChannels_InactiveYear(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[123 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedMessages(_ 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_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, _1, _2) } public init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?, groupingSeparator: String) { diff --git a/submodules/TelegramPresentationData/Sources/PresentationTheme.swift b/submodules/TelegramPresentationData/Sources/PresentationTheme.swift index 3571d6d77f..e9ab5e256a 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationTheme.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationTheme.swift @@ -1182,6 +1182,10 @@ public final class PresentationTheme: Equatable { return self.resourceCache.object(key, self, generate) } + public func object(_ key: PresentationResourceParameterKey, _ generate: (PresentationTheme) -> AnyObject?) -> AnyObject? { + return self.resourceCache.parameterObject(key, self, generate) + } + public static func ==(lhs: PresentationTheme, rhs: PresentationTheme) -> Bool { return lhs === rhs } diff --git a/submodules/TelegramPresentationData/Sources/PresentationThemeEssentialGraphics.swift b/submodules/TelegramPresentationData/Sources/PresentationThemeEssentialGraphics.swift index dd1618f965..d5a0f0fc3a 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationThemeEssentialGraphics.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationThemeEssentialGraphics.swift @@ -160,7 +160,7 @@ public final class PrincipalThemeEssentialGraphics { public let incomingBubbleGradientImage: UIImage? public let outgoingBubbleGradientImage: UIImage? - init(mediaBox: MediaBox, presentationTheme: PresentationTheme, wallpaper initialWallpaper: TelegramWallpaper, preview: Bool = false, knockoutMode: Bool) { + init(mediaBox: MediaBox, presentationTheme: PresentationTheme, wallpaper initialWallpaper: TelegramWallpaper, preview: Bool = false, knockoutMode: Bool, bubbleCorners: PresentationChatBubbleCorners) { let theme = presentationTheme.chat var wallpaper = initialWallpaper @@ -215,28 +215,31 @@ public final class PrincipalThemeEssentialGraphics { let serviceColor = serviceMessageColorComponents(chatTheme: theme, wallpaper: wallpaper) + let maxCornerRadius = bubbleCorners.mainRadius + let minCornerRadius = bubbleCorners.mergeBubbleCorners ? bubbleCorners.auxiliaryRadius : bubbleCorners.mainRadius + let emptyImage = UIImage() if preview { - self.chatMessageBackgroundIncomingMaskImage = messageBubbleImage(incoming: true, fillColor: UIColor.black, strokeColor: UIColor.clear, neighbors: .none, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundIncomingImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingOutlineImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundOutgoingMaskImage = messageBubbleImage(incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .none, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundOutgoingImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingOutlineImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundIncomingMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: UIColor.black, strokeColor: UIColor.clear, neighbors: .none, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundIncomingImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundOutgoingMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .none, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundOutgoingImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) self.checkBubbleFullImage = generateCheckImage(partial: false, color: theme.message.outgoingCheckColor, width: 11.0)! self.checkBubblePartialImage = generateCheckImage(partial: true, color: theme.message.outgoingCheckColor, width: 11.0)! self.chatMessageBackgroundIncomingHighlightedImage = emptyImage self.chatMessageBackgroundIncomingMergedTopMaskImage = emptyImage - self.chatMessageBackgroundIncomingMergedTopImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedTopOutlineImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundIncomingMergedTopImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedTopOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) self.chatMessageBackgroundIncomingMergedTopHighlightedImage = emptyImage self.chatMessageBackgroundIncomingMergedTopSideMaskImage = emptyImage self.chatMessageBackgroundIncomingMergedTopSideImage = emptyImage self.chatMessageBackgroundIncomingMergedTopSideOutlineImage = emptyImage self.chatMessageBackgroundIncomingMergedTopSideHighlightedImage = emptyImage self.chatMessageBackgroundIncomingMergedBottomMaskImage = emptyImage - self.chatMessageBackgroundIncomingMergedBottomImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedBottomOutlineImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundIncomingMergedBottomImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedBottomOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) self.chatMessageBackgroundIncomingMergedBottomHighlightedImage = emptyImage self.chatMessageBackgroundIncomingMergedBothMaskImage = emptyImage self.chatMessageBackgroundIncomingMergedBothImage = emptyImage @@ -247,21 +250,21 @@ public final class PrincipalThemeEssentialGraphics { self.chatMessageBackgroundIncomingMergedSideOutlineImage = emptyImage self.chatMessageBackgroundIncomingMergedSideHighlightedImage = emptyImage self.chatMessageBackgroundOutgoingHighlightedImage = emptyImage - self.chatMessageBackgroundOutgoingMergedTopMaskImage = messageBubbleImage(incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .top(side: false), theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedTopImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedTopOutlineImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundOutgoingMergedTopMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .top(side: false), theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedTopImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedTopOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) self.chatMessageBackgroundOutgoingMergedTopHighlightedImage = emptyImage self.chatMessageBackgroundOutgoingMergedTopSideMaskImage = emptyImage self.chatMessageBackgroundOutgoingMergedTopSideImage = emptyImage self.chatMessageBackgroundOutgoingMergedTopSideOutlineImage = emptyImage self.chatMessageBackgroundOutgoingMergedTopSideHighlightedImage = emptyImage - self.chatMessageBackgroundOutgoingMergedBottomMaskImage = messageBubbleImage(incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .bottom, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedBottomImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedBottomOutlineImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundOutgoingMergedBottomMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .bottom, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedBottomImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedBottomOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) self.chatMessageBackgroundOutgoingMergedBottomHighlightedImage = emptyImage - self.chatMessageBackgroundOutgoingMergedBothMaskImage = messageBubbleImage(incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .both, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedBothImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedBothOutlineImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundOutgoingMergedBothMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .both, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedBothImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedBothOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) self.chatMessageBackgroundOutgoingMergedBothHighlightedImage = emptyImage self.chatMessageBackgroundOutgoingMergedSideMaskImage = emptyImage self.chatMessageBackgroundOutgoingMergedSideImage = emptyImage @@ -288,56 +291,56 @@ public final class PrincipalThemeEssentialGraphics { self.radialIndicatorFileIconIncoming = emptyImage self.radialIndicatorFileIconOutgoing = emptyImage } else { - self.chatMessageBackgroundIncomingMaskImage = messageBubbleImage(incoming: true, fillColor: .black, strokeColor: .clear, neighbors: .none, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundIncomingImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingOutlineImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundIncomingHighlightedImage = messageBubbleImage(incoming: true, fillColor: incoming.highlightedFill, strokeColor: incoming.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedTopMaskImage = messageBubbleImage(incoming: true, fillColor: .black, strokeColor: .clear, neighbors: .top(side: false), theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedTopImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedTopOutlineImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundIncomingMergedTopHighlightedImage = messageBubbleImage(incoming: true, fillColor: incoming.highlightedFill, strokeColor: incoming.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedTopSideMaskImage = messageBubbleImage(incoming: true, fillColor: .black, strokeColor: .clear, neighbors: .top(side: true), theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedTopSideImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .top(side: true), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedTopSideOutlineImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .top(side: true), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundIncomingMergedTopSideHighlightedImage = messageBubbleImage(incoming: true, fillColor: incoming.highlightedFill, strokeColor: incoming.stroke, neighbors: .top(side: true), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedBottomMaskImage = messageBubbleImage(incoming: true, fillColor: .black, strokeColor: .clear, neighbors: .bottom, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedBottomImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedBottomOutlineImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundIncomingMergedBottomHighlightedImage = messageBubbleImage(incoming: true, fillColor: incoming.highlightedFill, strokeColor: incoming.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedBothMaskImage = messageBubbleImage(incoming: true, fillColor: .black, strokeColor: .clear, neighbors: .both, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedBothImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedBothOutlineImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundIncomingMergedBothHighlightedImage = messageBubbleImage(incoming: true, fillColor: incoming.highlightedFill, strokeColor: incoming.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: .black, strokeColor: .clear, neighbors: .none, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundIncomingImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundIncomingHighlightedImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.highlightedFill, strokeColor: incoming.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedTopMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: .black, strokeColor: .clear, neighbors: .top(side: false), theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedTopImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedTopOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundIncomingMergedTopHighlightedImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.highlightedFill, strokeColor: incoming.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedTopSideMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: .black, strokeColor: .clear, neighbors: .top(side: true), theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedTopSideImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .top(side: true), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedTopSideOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .top(side: true), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundIncomingMergedTopSideHighlightedImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.highlightedFill, strokeColor: incoming.stroke, neighbors: .top(side: true), theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedBottomMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: .black, strokeColor: .clear, neighbors: .bottom, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedBottomImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedBottomOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundIncomingMergedBottomHighlightedImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.highlightedFill, strokeColor: incoming.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedBothMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: .black, strokeColor: .clear, neighbors: .both, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedBothImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedBothOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundIncomingMergedBothHighlightedImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.highlightedFill, strokeColor: incoming.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: incomingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMaskImage = messageBubbleImage(incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .none, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundOutgoingImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingOutlineImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundOutgoingHighlightedImage = messageBubbleImage(incoming: false, fillColor: outgoing.highlightedFill, strokeColor: outgoing.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedTopMaskImage = messageBubbleImage(incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .top(side: false), theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedTopImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedTopOutlineImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundOutgoingMergedTopHighlightedImage = messageBubbleImage(incoming: false, fillColor: outgoing.highlightedFill, strokeColor: outgoing.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedTopSideMaskImage = messageBubbleImage(incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .top(side: true), theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedTopSideImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .top(side: true), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedTopSideOutlineImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .top(side: true), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundOutgoingMergedTopSideHighlightedImage = messageBubbleImage(incoming: false, fillColor: outgoing.highlightedFill, strokeColor: outgoing.stroke, neighbors: .top(side: true), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedBottomMaskImage = messageBubbleImage(incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .bottom, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedBottomImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedBottomOutlineImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundOutgoingMergedBottomHighlightedImage = messageBubbleImage(incoming: false, fillColor: outgoing.highlightedFill, strokeColor: outgoing.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedBothMaskImage = messageBubbleImage(incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .both, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedBothImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedBothOutlineImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundOutgoingMergedBothHighlightedImage = messageBubbleImage(incoming: false, fillColor: outgoing.highlightedFill, strokeColor: outgoing.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .none, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundOutgoingImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundOutgoingHighlightedImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.highlightedFill, strokeColor: outgoing.stroke, neighbors: .none, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedTopMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .top(side: false), theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedTopImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedTopOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundOutgoingMergedTopHighlightedImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.highlightedFill, strokeColor: outgoing.stroke, neighbors: .top(side: false), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedTopSideMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .top(side: true), theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedTopSideImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .top(side: true), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedTopSideOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .top(side: true), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundOutgoingMergedTopSideHighlightedImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.highlightedFill, strokeColor: outgoing.stroke, neighbors: .top(side: true), theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedBottomMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .bottom, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedBottomImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedBottomOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundOutgoingMergedBottomHighlightedImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.highlightedFill, strokeColor: outgoing.stroke, neighbors: .bottom, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedBothMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .both, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedBothImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedBothOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundOutgoingMergedBothHighlightedImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.highlightedFill, strokeColor: outgoing.stroke, neighbors: .both, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedSideMaskImage = messageBubbleImage(incoming: true, fillColor: .black, strokeColor: .clear, neighbors: .side, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedSideImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .side, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundIncomingMergedSideOutlineImage = messageBubbleImage(incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .side, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundOutgoingMergedSideMaskImage = messageBubbleImage(incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .side, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedSideImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .side, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedSideOutlineImage = messageBubbleImage(incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .side, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) - self.chatMessageBackgroundIncomingMergedSideHighlightedImage = messageBubbleImage(incoming: true, fillColor: incoming.highlightedFill, strokeColor: incoming.stroke, neighbors: .side, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) - self.chatMessageBackgroundOutgoingMergedSideHighlightedImage = messageBubbleImage(incoming: false, fillColor: outgoing.highlightedFill, strokeColor: outgoing.stroke, neighbors: .side, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedSideMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: .black, strokeColor: .clear, neighbors: .side, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedSideImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .side, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundIncomingMergedSideOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.fill, strokeColor: incoming.stroke, neighbors: .side, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundOutgoingMergedSideMaskImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: .black, strokeColor: .clear, neighbors: .side, theme: theme, wallpaper: .color(0xffffff), knockout: true, mask: true, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedSideImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .side, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedSideOutlineImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.fill, strokeColor: outgoing.stroke, neighbors: .side, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true, onlyOutline: true) + self.chatMessageBackgroundIncomingMergedSideHighlightedImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: true, fillColor: incoming.highlightedFill, strokeColor: incoming.stroke, neighbors: .side, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) + self.chatMessageBackgroundOutgoingMergedSideHighlightedImage = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: minCornerRadius, incoming: false, fillColor: outgoing.highlightedFill, strokeColor: outgoing.stroke, neighbors: .side, theme: theme, wallpaper: wallpaper, knockout: outgoingKnockout, extendedEdges: true) self.checkBubbleFullImage = generateCheckImage(partial: false, color: theme.message.outgoingCheckColor, width: 11.0)! self.checkBubblePartialImage = generateCheckImage(partial: true, color: theme.message.outgoingCheckColor, width: 11.0)! diff --git a/submodules/TelegramPresentationData/Sources/PresentationsResourceCache.swift b/submodules/TelegramPresentationData/Sources/PresentationsResourceCache.swift index a241cbfa43..2d59cc9eec 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationsResourceCache.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationsResourceCache.swift @@ -9,6 +9,7 @@ private final class PresentationsResourceCacheHolder { private final class PresentationsResourceAnyCacheHolder { var objects: [Int32: AnyObject] = [:] + var parameterObjects: [PresentationResourceParameterKey: AnyObject] = [:] } public final class PresentationsResourceCache { @@ -68,4 +69,22 @@ public final class PresentationsResourceCache { } } } + + public func parameterObject(_ key: PresentationResourceParameterKey, _ theme: PresentationTheme, _ generate: (PresentationTheme) -> AnyObject?) -> AnyObject? { + let result = self.objectCache.with { holder -> AnyObject? in + return holder.parameterObjects[key] + } + if let result = result { + return result + } else { + if let object = generate(theme) { + self.objectCache.with { holder -> Void in + holder.parameterObjects[key] = object + } + return object + } else { + return nil + } + } + } } diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift index a1b0744fad..82815c9990 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift @@ -78,9 +78,6 @@ public enum PresentationResourceKey: Int32 { case chatTitleLockIcon case chatTitleMuteIcon - case chatPrincipalThemeEssentialGraphicsWithWallpaper - case chatPrincipalThemeEssentialGraphicsWithoutWallpaper - case chatPrincipalThemeAdditionalGraphicsWithCustomWallpaper case chatPrincipalThemeAdditionalGraphicsWithDefaultWallpaper @@ -234,4 +231,8 @@ public enum PresentationResourceParameterKey: Hashable { case chatListBadgeBackgroundMention(CGFloat) case chatListBadgeBackgroundInactiveMention(CGFloat) case chatListBadgeBackgroundPinned(CGFloat) + + case chatBubbleMediaCorner(incoming: Bool, mainRadius: CGFloat, inset: CGFloat) + + case chatPrincipalThemeEssentialGraphics(hasWallpaper: Bool, bubbleCorners: PresentationChatBubbleCorners) } diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift index e3c4799b12..39e872972a 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift @@ -69,11 +69,10 @@ public struct PresentationResourcesChat { }) } - public static func principalGraphics(mediaBox: MediaBox, knockoutWallpaper: Bool, theme: PresentationTheme, wallpaper: TelegramWallpaper) -> PrincipalThemeEssentialGraphics { + public static func principalGraphics(mediaBox: MediaBox, knockoutWallpaper: Bool, theme: PresentationTheme, wallpaper: TelegramWallpaper, bubbleCorners: PresentationChatBubbleCorners) -> PrincipalThemeEssentialGraphics { let hasWallpaper = !wallpaper.isEmpty - let key: PresentationResourceKey = !hasWallpaper ? PresentationResourceKey.chatPrincipalThemeEssentialGraphicsWithoutWallpaper : PresentationResourceKey.chatPrincipalThemeEssentialGraphicsWithWallpaper - return theme.object(key.rawValue, { theme in - return PrincipalThemeEssentialGraphics(mediaBox: mediaBox, presentationTheme: theme, wallpaper: wallpaper, preview: theme.preview, knockoutMode: knockoutWallpaper) + return theme.object(PresentationResourceParameterKey.chatPrincipalThemeEssentialGraphics(hasWallpaper: hasWallpaper, bubbleCorners: bubbleCorners), { theme in + return PrincipalThemeEssentialGraphics(mediaBox: mediaBox, presentationTheme: theme, wallpaper: wallpaper, preview: theme.preview, knockoutMode: knockoutWallpaper, bubbleCorners: bubbleCorners) }) as! PrincipalThemeEssentialGraphics } @@ -950,4 +949,10 @@ public struct PresentationResourcesChat { return generateCheckImage(partial: true, color: color, width: size) }) } + + public static func chatBubbleMediaCorner(_ theme: PresentationTheme, incoming: Bool, mainRadius: CGFloat, inset: CGFloat) -> UIImage? { + return theme.image(PresentationResourceParameterKey.chatBubbleMediaCorner(incoming: incoming, mainRadius: mainRadius, inset: inset), { _ in + return mediaBubbleCornerImage(incoming: incoming, radius: mainRadius, inset: inset) + }) + } } diff --git a/submodules/TelegramUI/TelegramUI/ChatHistoryGridNode.swift b/submodules/TelegramUI/TelegramUI/ChatHistoryGridNode.swift index dfba0ca7ad..34f88f5cd1 100644 --- a/submodules/TelegramUI/TelegramUI/ChatHistoryGridNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatHistoryGridNode.swift @@ -251,7 +251,7 @@ public final class ChatHistoryGridNode: GridNode, ChatHistoryNode { self.chatPresentationDataPromise.set(context.sharedContext.presentationData |> map { presentationData in - return ChatPresentationData(theme: ChatPresentationThemeData(theme: presentationData.theme, wallpaper: presentationData.chatWallpaper), fontSize: presentationData.chatFontSize, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, disableAnimations: presentationData.disableAnimations, largeEmoji: presentationData.largeEmoji) + return ChatPresentationData(theme: ChatPresentationThemeData(theme: presentationData.theme, wallpaper: presentationData.chatWallpaper), fontSize: presentationData.chatFontSize, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, disableAnimations: presentationData.disableAnimations, largeEmoji: presentationData.largeEmoji, chatBubbleCorners: presentationData.chatBubbleCorners) }) self.floatingSections = true diff --git a/submodules/TelegramUI/TelegramUI/ChatHistoryListNode.swift b/submodules/TelegramUI/TelegramUI/ChatHistoryListNode.swift index ab032691e6..9e562d29e0 100644 --- a/submodules/TelegramUI/TelegramUI/ChatHistoryListNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatHistoryListNode.swift @@ -505,7 +505,7 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode { self.mode = mode let presentationData = context.sharedContext.currentPresentationData.with { $0 } - self.currentPresentationData = ChatPresentationData(theme: ChatPresentationThemeData(theme: presentationData.theme, wallpaper: presentationData.chatWallpaper), fontSize: presentationData.chatFontSize, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, disableAnimations: presentationData.disableAnimations, largeEmoji: presentationData.largeEmoji, animatedEmojiScale: 1.0) + self.currentPresentationData = ChatPresentationData(theme: ChatPresentationThemeData(theme: presentationData.theme, wallpaper: presentationData.chatWallpaper), fontSize: presentationData.chatFontSize, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, disableAnimations: presentationData.disableAnimations, largeEmoji: presentationData.largeEmoji, chatBubbleCorners: presentationData.chatBubbleCorners, animatedEmojiScale: 1.0) self.chatPresentationDataPromise = Promise(self.currentPresentationData) @@ -880,7 +880,7 @@ public final class ChatHistoryListNode: ListView, ChatHistoryNode { if previousTheme !== presentationData.theme || previousStrings !== presentationData.strings || previousWallpaper != presentationData.chatWallpaper || previousDisableAnimations != presentationData.disableAnimations || previousAnimatedEmojiScale != animatedEmojiConfig.scale { let themeData = ChatPresentationThemeData(theme: presentationData.theme, wallpaper: presentationData.chatWallpaper) - let chatPresentationData = ChatPresentationData(theme: themeData, fontSize: presentationData.chatFontSize, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, disableAnimations: presentationData.disableAnimations, largeEmoji: presentationData.largeEmoji, animatedEmojiScale: animatedEmojiConfig.scale) + let chatPresentationData = ChatPresentationData(theme: themeData, fontSize: presentationData.chatFontSize, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, disableAnimations: presentationData.disableAnimations, largeEmoji: presentationData.largeEmoji, chatBubbleCorners: presentationData.chatBubbleCorners, animatedEmojiScale: animatedEmojiConfig.scale) strongSelf.currentPresentationData = chatPresentationData strongSelf.dynamicBounceEnabled = !presentationData.disableAnimations diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift index 0cbef84d24..3fecaf1419 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift @@ -349,7 +349,7 @@ class ChatMessageAnimatedStickerItemNode: ChatMessageItemView { let currentItem = self.item return { item, params, mergedTop, mergedBottom, dateHeaderAtBottom in - let layoutConstants = chatMessageItemLayoutConstants(layoutConstants, params: params) + let layoutConstants = chatMessageItemLayoutConstants(layoutConstants, params: params, presentationData: item.presentationData) let incoming = item.message.effectivelyIncoming(item.context.account.peerId) var imageSize: CGSize = CGSize(width: 200.0, height: 200.0) var isEmoji = false diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBackground.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBackground.swift index a24df24f77..09ab5933d4 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBackground.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBackground.swift @@ -82,8 +82,8 @@ class ChatMessageBackground: ASDisplayNode { super.init() self.isUserInteractionEnabled = false - self.addSubnode(self.outlineImageNode) self.addSubnode(self.imageNode) + self.addSubnode(self.outlineImageNode) } func updateLayout(size: CGSize, transition: ContainedViewLayoutTransition) { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleBackdrop.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleBackdrop.swift index 7da5d38987..1f0b4a71ad 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleBackdrop.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleBackdrop.swift @@ -91,7 +91,7 @@ final class ChatMessageBubbleBackdrop: ASDisplayNode { } func setType(type: ChatMessageBackgroundType, theme: ChatPresentationThemeData, mediaBox: MediaBox, essentialGraphics: PrincipalThemeEssentialGraphics, maskMode: Bool) { - if self.currentType != type || self.theme != theme || self.currentMaskMode != maskMode { + if self.currentType != type || self.theme != theme || self.currentMaskMode != maskMode || self.essentialGraphics !== essentialGraphics { self.currentType = type self.theme = theme self.essentialGraphics = essentialGraphics diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentCalclulateImageCorners.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentCalclulateImageCorners.swift index f3c7671062..bb22c33754 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentCalclulateImageCorners.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentCalclulateImageCorners.swift @@ -1,8 +1,9 @@ import Foundation import UIKit import Display +import TelegramPresentationData -func chatMessageBubbleImageContentCorners(relativeContentPosition position: ChatMessageBubbleContentPosition, normalRadius: CGFloat, mergedRadius: CGFloat, mergedWithAnotherContentRadius: CGFloat) -> ImageCorners { +func chatMessageBubbleImageContentCorners(relativeContentPosition position: ChatMessageBubbleContentPosition, normalRadius: CGFloat, mergedRadius: CGFloat, mergedWithAnotherContentRadius: CGFloat, layoutConstants: ChatMessageItemLayoutConstants, chatPresentationData: ChatPresentationData) -> ImageCorners { let topLeftCorner: ImageCorner let topRightCorner: ImageCorner @@ -55,13 +56,33 @@ func chatMessageBubbleImageContentCorners(relativeContentPosition position: Chat bottomLeftCorner = .Corner(mergedRadius) bottomRightCorner = .Corner(normalRadius) case let .None(status): + let bubbleInsets: UIEdgeInsets + if case .color = chatPresentationData.theme.wallpaper { + let colors: PresentationThemeBubbleColorComponents + switch status { + case .Incoming: + colors = chatPresentationData.theme.theme.chat.message.incoming.bubble.withoutWallpaper + case .Outgoing: + colors = chatPresentationData.theme.theme.chat.message.outgoing.bubble.withoutWallpaper + case .None: + colors = chatPresentationData.theme.theme.chat.message.incoming.bubble.withoutWallpaper + } + if colors.fill == colors.stroke || colors.stroke.alpha.isZero { + bubbleInsets = UIEdgeInsets(top: 1.0, left: 1.0, bottom: 1.0, right: 1.0) + } else { + bubbleInsets = layoutConstants.bubble.strokeInsets + } + } else { + bubbleInsets = layoutConstants.image.bubbleInsets + } + switch status { case .Incoming: - bottomLeftCorner = .Tail(normalRadius, true) + bottomLeftCorner = .Tail(normalRadius, PresentationResourcesChat.chatBubbleMediaCorner(chatPresentationData.theme.theme, incoming: true, mainRadius: normalRadius, inset: max(0.0, bubbleInsets.left - 1.0))!) bottomRightCorner = .Corner(normalRadius) case .Outgoing: bottomLeftCorner = .Corner(normalRadius) - bottomRightCorner = .Tail(normalRadius, true) + bottomRightCorner = .Tail(normalRadius, PresentationResourcesChat.chatBubbleMediaCorner(chatPresentationData.theme.theme, incoming: false, mainRadius: normalRadius, inset: max(0.0, bubbleInsets.right - 1.0))!) case .None: bottomLeftCorner = .Corner(normalRadius) bottomRightCorner = .Corner(normalRadius) @@ -75,7 +96,20 @@ func chatMessageBubbleImageContentCorners(relativeContentPosition position: Chat switch position.bottomLeft { case let .none(tail): if tail { - bottomLeftCorner = .Tail(normalRadius, true) + let bubbleInsets: UIEdgeInsets + if case .color = chatPresentationData.theme.wallpaper { + let colors: PresentationThemeBubbleColorComponents + colors = chatPresentationData.theme.theme.chat.message.incoming.bubble.withoutWallpaper + if colors.fill == colors.stroke || colors.stroke.alpha.isZero { + bubbleInsets = UIEdgeInsets(top: 1.0, left: 1.0, bottom: 1.0, right: 1.0) + } else { + bubbleInsets = layoutConstants.bubble.strokeInsets + } + } else { + bubbleInsets = layoutConstants.image.bubbleInsets + } + + bottomLeftCorner = .Tail(normalRadius, PresentationResourcesChat.chatBubbleMediaCorner(chatPresentationData.theme.theme, incoming: true, mainRadius: normalRadius, inset: max(0.0, bubbleInsets.left - 1.0))!) } else { bottomLeftCorner = .Corner(normalRadius) } @@ -85,7 +119,19 @@ func chatMessageBubbleImageContentCorners(relativeContentPosition position: Chat switch position.bottomRight { case let .none(tail): if tail { - bottomRightCorner = .Tail(normalRadius, true) + let bubbleInsets: UIEdgeInsets + if case .color = chatPresentationData.theme.wallpaper { + let colors: PresentationThemeBubbleColorComponents + colors = chatPresentationData.theme.theme.chat.message.outgoing.bubble.withoutWallpaper + if colors.fill == colors.stroke || colors.stroke.alpha.isZero { + bubbleInsets = UIEdgeInsets(top: 1.0, left: 1.0, bottom: 1.0, right: 1.0) + } else { + bubbleInsets = layoutConstants.bubble.strokeInsets + } + } else { + bubbleInsets = layoutConstants.image.bubbleInsets + } + bottomRightCorner = .Tail(normalRadius, PresentationResourcesChat.chatBubbleMediaCorner(chatPresentationData.theme.theme, incoming: false, mainRadius: normalRadius, inset: max(0.0, bubbleInsets.right - 1.0))!) } else { bottomRightCorner = .Corner(normalRadius) } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift index a507081fd5..406e3a59f5 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift @@ -615,7 +615,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode let weakSelf = Weak(self) return { item, params, mergedTop, mergedBottom, dateHeaderAtBottom in - let layoutConstants = chatMessageItemLayoutConstants(layoutConstants, params: params) + let layoutConstants = chatMessageItemLayoutConstants(layoutConstants, params: params, presentationData: item.presentationData) return ChatMessageBubbleItemNode.beginLayout(selfReference: weakSelf, item, params, mergedTop, mergedBottom, dateHeaderAtBottom, currentContentClassesPropertiesAndLayouts: currentContentClassesPropertiesAndLayouts, authorNameLayout: authorNameLayout, @@ -1546,7 +1546,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode let layout = ListViewItemNodeLayout(contentSize: layoutSize, insets: layoutInsets) - let graphics = PresentationResourcesChat.principalGraphics(mediaBox: item.context.account.postbox.mediaBox, knockoutWallpaper: item.context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.principalGraphics(mediaBox: item.context.account.postbox.mediaBox, knockoutWallpaper: item.context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) var updatedMergedTop = mergedBottom var updatedMergedBottom = mergedTop @@ -2769,7 +2769,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode if self.highlightedState != highlighted { self.highlightedState = highlighted if let backgroundType = self.backgroundType { - let graphics = PresentationResourcesChat.principalGraphics(mediaBox: item.context.account.postbox.mediaBox, knockoutWallpaper: item.context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.principalGraphics(mediaBox: item.context.account.postbox.mediaBox, knockoutWallpaper: item.context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) let hasWallpaper = item.presentationData.theme.wallpaper.hasWallpaper self.backgroundNode.setType(type: backgroundType, highlighted: highlighted, graphics: graphics, maskMode: self.contextSourceNode.isExtractedToContextPreview, hasWallpaper: hasWallpaper, transition: animated ? .animated(duration: 0.3, curve: .easeInOut) : .immediate) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageDateAndStatusNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageDateAndStatusNode.swift index 12b8e635f9..114cebebbd 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageDateAndStatusNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageDateAndStatusNode.swift @@ -187,7 +187,7 @@ class ChatMessageDateAndStatusNode: ASDisplayNode { let themeUpdated = presentationData.theme != currentTheme || type != currentType - let graphics = PresentationResourcesChat.principalGraphics(mediaBox: context.account.postbox.mediaBox, knockoutWallpaper: context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.principalGraphics(mediaBox: context.account.postbox.mediaBox, knockoutWallpaper: context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper, bubbleCorners: presentationData.chatBubbleCorners) let isDefaultWallpaper = serviceMessageColorHasDefaultWallpaper(presentationData.theme.wallpaper) let offset: CGFloat = -UIScreenPixel diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageDateHeader.swift b/submodules/TelegramUI/TelegramUI/ChatMessageDateHeader.swift index 45efafcf67..97640a4d64 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageDateHeader.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageDateHeader.swift @@ -161,7 +161,7 @@ final class ChatMessageDateHeaderNode: ListViewItemHeaderNode { self.transform = CATransform3DMakeRotation(CGFloat.pi, 0.0, 0.0, 1.0) - let graphics = PresentationResourcesChat.principalGraphics(mediaBox: context.account.postbox.mediaBox, knockoutWallpaper: context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.principalGraphics(mediaBox: context.account.postbox.mediaBox, knockoutWallpaper: context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper, bubbleCorners: presentationData.chatBubbleCorners) self.backgroundNode.image = graphics.dateStaticBackground self.stickBackgroundNode.image = graphics.dateFloatingBackground @@ -190,7 +190,7 @@ final class ChatMessageDateHeaderNode: ListViewItemHeaderNode { let previousPresentationData = self.presentationData self.presentationData = presentationData - let graphics = PresentationResourcesChat.principalGraphics(mediaBox: context.account.postbox.mediaBox, knockoutWallpaper: context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.principalGraphics(mediaBox: context.account.postbox.mediaBox, knockoutWallpaper: context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper, bubbleCorners: presentationData.chatBubbleCorners) self.backgroundNode.image = graphics.dateStaticBackground self.stickBackgroundNode.image = graphics.dateFloatingBackground diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift index 77dbaa3cbe..c1f5d88cec 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift @@ -115,7 +115,7 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { let currentForwardInfo = self.appliedForwardInfo return { item, params, mergedTop, mergedBottom, dateHeaderAtBottom in - let layoutConstants = chatMessageItemLayoutConstants(layoutConstants, params: params) + let layoutConstants = chatMessageItemLayoutConstants(layoutConstants, params: params, presentationData: item.presentationData) let incoming = item.message.effectivelyIncoming(item.context.account.peerId) let avatarInset: CGFloat diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveFileNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveFileNode.swift index 1a3e3d599b..664a47f472 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveFileNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageInteractiveFileNode.swift @@ -439,7 +439,7 @@ final class ChatMessageInteractiveFileNode: ASDisplayNode { if hasThumbnail { fileIconImage = nil } else { - let principalGraphics = PresentationResourcesChat.principalGraphics(mediaBox: context.account.postbox.mediaBox, knockoutWallpaper: context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper) + let principalGraphics = PresentationResourcesChat.principalGraphics(mediaBox: context.account.postbox.mediaBox, knockoutWallpaper: context.sharedContext.immediateExperimentalUISettings.knockoutWallpaper, theme: presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper, bubbleCorners: presentationData.chatBubbleCorners) fileIconImage = incoming ? principalGraphics.radialIndicatorFileIconIncoming : principalGraphics.radialIndicatorFileIconOutgoing } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift b/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift index 11450a6aa4..5377241b60 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift @@ -11,9 +11,9 @@ import ContextUI import ChatListUI struct ChatMessageItemWidthFill { - let compactInset: CGFloat - let compactWidthBoundary: CGFloat - let freeMaximumFillFactor: CGFloat + var compactInset: CGFloat + var compactWidthBoundary: CGFloat + var freeMaximumFillFactor: CGFloat func widthFor(_ width: CGFloat) -> CGFloat { if width <= self.compactWidthBoundary { @@ -25,68 +25,68 @@ struct ChatMessageItemWidthFill { } struct ChatMessageItemBubbleLayoutConstants { - let edgeInset: CGFloat - let defaultSpacing: CGFloat - let mergedSpacing: CGFloat - let maximumWidthFill: ChatMessageItemWidthFill - let minimumSize: CGSize - let contentInsets: UIEdgeInsets - let borderInset: CGFloat - let strokeInsets: UIEdgeInsets + var edgeInset: CGFloat + var defaultSpacing: CGFloat + var mergedSpacing: CGFloat + var maximumWidthFill: ChatMessageItemWidthFill + var minimumSize: CGSize + var contentInsets: UIEdgeInsets + var borderInset: CGFloat + var strokeInsets: UIEdgeInsets } struct ChatMessageItemTextLayoutConstants { - let bubbleInsets: UIEdgeInsets + var bubbleInsets: UIEdgeInsets } struct ChatMessageItemImageLayoutConstants { - let bubbleInsets: UIEdgeInsets - let statusInsets: UIEdgeInsets - let defaultCornerRadius: CGFloat - let mergedCornerRadius: CGFloat - let contentMergedCornerRadius: CGFloat - let maxDimensions: CGSize - let minDimensions: CGSize + var bubbleInsets: UIEdgeInsets + var statusInsets: UIEdgeInsets + var defaultCornerRadius: CGFloat + var mergedCornerRadius: CGFloat + var contentMergedCornerRadius: CGFloat + var maxDimensions: CGSize + var minDimensions: CGSize } struct ChatMessageItemVideoLayoutConstants { - let maxHorizontalHeight: CGFloat - let maxVerticalHeight: CGFloat + var maxHorizontalHeight: CGFloat + var maxVerticalHeight: CGFloat } struct ChatMessageItemInstantVideoConstants { - let insets: UIEdgeInsets - let dimensions: CGSize + var insets: UIEdgeInsets + var dimensions: CGSize } struct ChatMessageItemFileLayoutConstants { - let bubbleInsets: UIEdgeInsets + var bubbleInsets: UIEdgeInsets } struct ChatMessageItemWallpaperLayoutConstants { - let maxTextWidth: CGFloat + var maxTextWidth: CGFloat } struct ChatMessageItemLayoutConstants { - let avatarDiameter: CGFloat - let timestampHeaderHeight: CGFloat + var avatarDiameter: CGFloat + var timestampHeaderHeight: CGFloat - let bubble: ChatMessageItemBubbleLayoutConstants - let image: ChatMessageItemImageLayoutConstants - let video: ChatMessageItemVideoLayoutConstants - let text: ChatMessageItemTextLayoutConstants - let file: ChatMessageItemFileLayoutConstants - let instantVideo: ChatMessageItemInstantVideoConstants - let wallpapers: ChatMessageItemWallpaperLayoutConstants + var bubble: ChatMessageItemBubbleLayoutConstants + var image: ChatMessageItemImageLayoutConstants + var video: ChatMessageItemVideoLayoutConstants + var text: ChatMessageItemTextLayoutConstants + var file: ChatMessageItemFileLayoutConstants + var instantVideo: ChatMessageItemInstantVideoConstants + var wallpapers: ChatMessageItemWallpaperLayoutConstants static var `default`: ChatMessageItemLayoutConstants { return self.compact } fileprivate static var compact: ChatMessageItemLayoutConstants { - let bubble = ChatMessageItemBubbleLayoutConstants(edgeInset: 4.0, defaultSpacing: 2.0 + UIScreenPixel, mergedSpacing: 1.0, maximumWidthFill: ChatMessageItemWidthFill(compactInset: 36.0, compactWidthBoundary: 500.0, freeMaximumFillFactor: 0.85), minimumSize: CGSize(width: 40.0, height: 35.0), contentInsets: UIEdgeInsets(top: 0.0, left: 6.0, bottom: 0.0, right: 0.0), borderInset: UIScreenPixel, strokeInsets: UIEdgeInsets(top: 1.0 - UIScreenPixel, left: 1.0 - UIScreenPixel, bottom: 1.0 - UIScreenPixel, right: 1.0 - UIScreenPixel)) + let bubble = ChatMessageItemBubbleLayoutConstants(edgeInset: 4.0, defaultSpacing: 2.0 + UIScreenPixel, mergedSpacing: 1.0, maximumWidthFill: ChatMessageItemWidthFill(compactInset: 36.0, compactWidthBoundary: 500.0, freeMaximumFillFactor: 0.85), minimumSize: CGSize(width: 40.0, height: 35.0), contentInsets: UIEdgeInsets(top: 0.0, left: 6.0, bottom: 0.0, right: 0.0), borderInset: UIScreenPixel, strokeInsets: UIEdgeInsets(top: 1.0, left: 1.0, bottom: 1.0, right: 1.0)) let text = ChatMessageItemTextLayoutConstants(bubbleInsets: UIEdgeInsets(top: 6.0 + UIScreenPixel, left: 12.0, bottom: 6.0 - UIScreenPixel, right: 12.0)) - let image = ChatMessageItemImageLayoutConstants(bubbleInsets: UIEdgeInsets(top: 1.0 + UIScreenPixel, left: 1.0 + UIScreenPixel, bottom: 1.0 + UIScreenPixel, right: 1.0 + UIScreenPixel), statusInsets: UIEdgeInsets(top: 0.0, left: 0.0, bottom: 6.0, right: 6.0), defaultCornerRadius: 17.0, mergedCornerRadius: 5.0, contentMergedCornerRadius: 0.0, maxDimensions: CGSize(width: 300.0, height: 300.0), minDimensions: CGSize(width: 170.0, height: 74.0)) + let image = ChatMessageItemImageLayoutConstants(bubbleInsets: UIEdgeInsets(top: 2.0, left: 2.0, bottom: 2.0, right: 2.0), statusInsets: UIEdgeInsets(top: 0.0, left: 0.0, bottom: 6.0, right: 6.0), defaultCornerRadius: 16.0, mergedCornerRadius: 8.0, contentMergedCornerRadius: 0.0, maxDimensions: CGSize(width: 300.0, height: 300.0), minDimensions: CGSize(width: 170.0, height: 74.0)) let video = ChatMessageItemVideoLayoutConstants(maxHorizontalHeight: 250.0, maxVerticalHeight: 360.0) let file = ChatMessageItemFileLayoutConstants(bubbleInsets: UIEdgeInsets(top: 15.0, left: 9.0, bottom: 15.0, right: 12.0)) let instantVideo = ChatMessageItemInstantVideoConstants(insets: UIEdgeInsets(top: 4.0, left: 0.0, bottom: 4.0, right: 0.0), dimensions: CGSize(width: 212.0, height: 212.0)) @@ -98,7 +98,7 @@ struct ChatMessageItemLayoutConstants { fileprivate static var regular: ChatMessageItemLayoutConstants { let bubble = ChatMessageItemBubbleLayoutConstants(edgeInset: 4.0, defaultSpacing: 2.0 + UIScreenPixel, mergedSpacing: 1.0, maximumWidthFill: ChatMessageItemWidthFill(compactInset: 36.0, compactWidthBoundary: 500.0, freeMaximumFillFactor: 0.65), minimumSize: CGSize(width: 40.0, height: 35.0), contentInsets: UIEdgeInsets(top: 0.0, left: 6.0, bottom: 0.0, right: 0.0), borderInset: UIScreenPixel, strokeInsets: UIEdgeInsets(top: 1.0 - UIScreenPixel, left: 1.0 - UIScreenPixel, bottom: 1.0 - UIScreenPixel, right: 1.0 - UIScreenPixel)) let text = ChatMessageItemTextLayoutConstants(bubbleInsets: UIEdgeInsets(top: 6.0 + UIScreenPixel, left: 12.0, bottom: 6.0 - UIScreenPixel, right: 12.0)) - let image = ChatMessageItemImageLayoutConstants(bubbleInsets: UIEdgeInsets(top: 1.0 + UIScreenPixel, left: 1.0 + UIScreenPixel, bottom: 1.0 + UIScreenPixel, right: 1.0 + UIScreenPixel), statusInsets: UIEdgeInsets(top: 0.0, left: 0.0, bottom: 6.0, right: 6.0), defaultCornerRadius: 17.0, mergedCornerRadius: 5.0, contentMergedCornerRadius: 5.0, maxDimensions: CGSize(width: 440.0, height: 440.0), minDimensions: CGSize(width: 170.0, height: 74.0)) + let image = ChatMessageItemImageLayoutConstants(bubbleInsets: UIEdgeInsets(top: 1.0, left: 1.0, bottom: 1.0, right: 1.0), statusInsets: UIEdgeInsets(top: 0.0, left: 0.0, bottom: 6.0, right: 6.0), defaultCornerRadius: 17.0, mergedCornerRadius: 5.0, contentMergedCornerRadius: 5.0, maxDimensions: CGSize(width: 440.0, height: 440.0), minDimensions: CGSize(width: 170.0, height: 74.0)) let video = ChatMessageItemVideoLayoutConstants(maxHorizontalHeight: 250.0, maxVerticalHeight: 360.0) let file = ChatMessageItemFileLayoutConstants(bubbleInsets: UIEdgeInsets(top: 15.0, left: 9.0, bottom: 15.0, right: 12.0)) let instantVideo = ChatMessageItemInstantVideoConstants(insets: UIEdgeInsets(top: 4.0, left: 0.0, bottom: 4.0, right: 0.0), dimensions: CGSize(width: 212.0, height: 212.0)) @@ -108,12 +108,24 @@ struct ChatMessageItemLayoutConstants { } } -func chatMessageItemLayoutConstants(_ constants: (ChatMessageItemLayoutConstants, ChatMessageItemLayoutConstants), params: ListViewItemLayoutParams) -> ChatMessageItemLayoutConstants { +func chatMessageItemLayoutConstants(_ constants: (ChatMessageItemLayoutConstants, ChatMessageItemLayoutConstants), params: ListViewItemLayoutParams, presentationData: ChatPresentationData) -> ChatMessageItemLayoutConstants { + var result: ChatMessageItemLayoutConstants if params.width > 680.0 { - return constants.1 + result = constants.1 } else { - return constants.0 + result = constants.0 } + result.image.defaultCornerRadius = presentationData.chatBubbleCorners.mainRadius + result.image.mergedCornerRadius = presentationData.chatBubbleCorners.mergeBubbleCorners ? presentationData.chatBubbleCorners.auxiliaryRadius : presentationData.chatBubbleCorners.mainRadius + let minRadius: CGFloat = 4.0 + let maxRadius: CGFloat = 16.0 + let radiusTransition = (presentationData.chatBubbleCorners.mainRadius - minRadius) / (maxRadius - minRadius) + let minInset: CGFloat = 9.0 + let maxInset: CGFloat = 12.0 + let textInset: CGFloat = min(maxInset, ceil(maxInset * radiusTransition + minInset * (1.0 - radiusTransition))) + result.text.bubbleInsets.left = textInset + result.text.bubbleInsets.right = textInset + return result } enum ChatMessageItemBottomNeighbor { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageMapBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageMapBubbleContentNode.swift index f0602bea07..178685165d 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageMapBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageMapBubbleContentNode.swift @@ -159,13 +159,13 @@ class ChatMessageMapBubbleContentNode: ChatMessageBubbleContentNode { if case let .linear(top, _) = position { relativePosition = .linear(top: top, bottom: ChatMessageBubbleRelativePosition.Neighbour) } - imageCorners = chatMessageBubbleImageContentCorners(relativeContentPosition: relativePosition, normalRadius: layoutConstants.image.defaultCornerRadius, mergedRadius: layoutConstants.image.mergedCornerRadius, mergedWithAnotherContentRadius: layoutConstants.image.contentMergedCornerRadius) + imageCorners = chatMessageBubbleImageContentCorners(relativeContentPosition: relativePosition, normalRadius: layoutConstants.image.defaultCornerRadius, mergedRadius: layoutConstants.image.mergedCornerRadius, mergedWithAnotherContentRadius: layoutConstants.image.contentMergedCornerRadius, layoutConstants: layoutConstants, chatPresentationData: item.presentationData) maxTextWidth = constrainedSize.width - bubbleInsets.left + bubbleInsets.right - layoutConstants.text.bubbleInsets.left - layoutConstants.text.bubbleInsets.right - 40.0 } else { maxTextWidth = constrainedSize.width - imageSize.width - bubbleInsets.left + bubbleInsets.right - layoutConstants.text.bubbleInsets.right - imageCorners = chatMessageBubbleImageContentCorners(relativeContentPosition: position, normalRadius: layoutConstants.image.defaultCornerRadius, mergedRadius: layoutConstants.image.mergedCornerRadius, mergedWithAnotherContentRadius: layoutConstants.image.contentMergedCornerRadius) + imageCorners = chatMessageBubbleImageContentCorners(relativeContentPosition: position, normalRadius: layoutConstants.image.defaultCornerRadius, mergedRadius: layoutConstants.image.mergedCornerRadius, mergedWithAnotherContentRadius: layoutConstants.image.contentMergedCornerRadius, layoutConstants: layoutConstants, chatPresentationData: item.presentationData) } let (titleLayout, titleApply) = makeTitleLayout(TextNodeLayoutArguments(attributedString: titleString, backgroundColor: nil, maximumNumberOfLines: 1, truncationType: .end, constrainedSize: CGSize(width: max(1.0, maxTextWidth), height: CGFloat.greatestFiniteMagnitude), alignment: .natural, cutout: nil, insets: UIEdgeInsets())) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageMediaBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageMediaBubbleContentNode.swift index c1f5213022..4566abadca 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageMediaBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageMediaBubbleContentNode.swift @@ -128,8 +128,8 @@ class ChatMessageMediaBubbleContentNode: ChatMessageBubbleContentNode { } else { colors = item.presentationData.theme.theme.chat.message.outgoing.bubble.withoutWallpaper } - if colors.fill == colors.stroke { - bubbleInsets = UIEdgeInsets() + if colors.fill == colors.stroke || colors.stroke.alpha.isZero { + bubbleInsets = UIEdgeInsets(top: 1.0, left: 1.0, bottom: 1.0, right: 1.0) } else { bubbleInsets = layoutConstants.bubble.strokeInsets } @@ -162,7 +162,7 @@ class ChatMessageMediaBubbleContentNode: ChatMessageBubbleContentNode { updatedPosition = .linear(top: top, bottom: .Neighbour) } - let imageCorners = chatMessageBubbleImageContentCorners(relativeContentPosition: updatedPosition, normalRadius: layoutConstants.image.defaultCornerRadius, mergedRadius: layoutConstants.image.mergedCornerRadius, mergedWithAnotherContentRadius: layoutConstants.image.contentMergedCornerRadius) + let imageCorners = chatMessageBubbleImageContentCorners(relativeContentPosition: updatedPosition, normalRadius: layoutConstants.image.defaultCornerRadius, mergedRadius: layoutConstants.image.mergedCornerRadius, mergedWithAnotherContentRadius: layoutConstants.image.contentMergedCornerRadius, layoutConstants: layoutConstants, chatPresentationData: item.presentationData) let (refinedWidth, finishLayout) = refineLayout(CGSize(width: constrainedSize.width - bubbleInsets.left - bubbleInsets.right, height: constrainedSize.height), automaticPlayback, wideLayout, imageCorners) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageStickerItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageStickerItemNode.swift index d9c2e3c55d..7a0f4ff8c8 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageStickerItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageStickerItemNode.swift @@ -143,7 +143,7 @@ class ChatMessageStickerItemNode: ChatMessageItemView { let currentItem = self.item return { item, params, mergedTop, mergedBottom, dateHeaderAtBottom in - let layoutConstants = chatMessageItemLayoutConstants(layoutConstants, params: params) + let layoutConstants = chatMessageItemLayoutConstants(layoutConstants, params: params, presentationData: item.presentationData) let incoming = item.message.effectivelyIncoming(item.context.account.peerId) var imageSize: CGSize = CGSize(width: 100.0, height: 100.0) if let telegramFile = telegramFile { diff --git a/submodules/TelegramUI/TelegramUI/ChatPresentationData.swift b/submodules/TelegramUI/TelegramUI/ChatPresentationData.swift index 0927b45710..253882e904 100644 --- a/submodules/TelegramUI/TelegramUI/ChatPresentationData.swift +++ b/submodules/TelegramUI/TelegramUI/ChatPresentationData.swift @@ -28,6 +28,7 @@ public final class ChatPresentationData { let nameDisplayOrder: PresentationPersonNameOrder let disableAnimations: Bool let largeEmoji: Bool + let chatBubbleCorners: PresentationChatBubbleCorners let animatedEmojiScale: CGFloat let isPreview: Bool @@ -39,13 +40,14 @@ public final class ChatPresentationData { let messageFixedFont: UIFont let messageBlockQuoteFont: UIFont - init(theme: ChatPresentationThemeData, fontSize: PresentationFontSize, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, disableAnimations: Bool, largeEmoji: Bool, animatedEmojiScale: CGFloat = 1.0, isPreview: Bool = false) { + init(theme: ChatPresentationThemeData, fontSize: PresentationFontSize, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, disableAnimations: Bool, largeEmoji: Bool, chatBubbleCorners: PresentationChatBubbleCorners, animatedEmojiScale: CGFloat = 1.0, isPreview: Bool = false) { self.theme = theme self.fontSize = fontSize self.strings = strings self.dateTimeFormat = dateTimeFormat self.nameDisplayOrder = nameDisplayOrder self.disableAnimations = disableAnimations + self.chatBubbleCorners = chatBubbleCorners self.largeEmoji = largeEmoji self.isPreview = isPreview diff --git a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift index cf5344ad57..2a2b602ab9 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift @@ -113,7 +113,7 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode { self.state = ChatRecentActionsControllerState(chatWallpaper: self.presentationData.chatWallpaper, theme: self.presentationData.theme, strings: self.presentationData.strings, fontSize: self.presentationData.chatFontSize) - self.chatPresentationDataPromise = Promise(ChatPresentationData(theme: ChatPresentationThemeData(theme: self.presentationData.theme, wallpaper: self.presentationData.chatWallpaper), fontSize: self.presentationData.chatFontSize, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameDisplayOrder: self.presentationData.nameDisplayOrder, disableAnimations: self.presentationData.disableAnimations, largeEmoji: self.presentationData.largeEmoji)) + self.chatPresentationDataPromise = Promise(ChatPresentationData(theme: ChatPresentationThemeData(theme: self.presentationData.theme, wallpaper: self.presentationData.chatWallpaper), fontSize: self.presentationData.chatFontSize, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameDisplayOrder: self.presentationData.nameDisplayOrder, disableAnimations: self.presentationData.disableAnimations, largeEmoji: self.presentationData.largeEmoji, chatBubbleCorners: self.presentationData.chatBubbleCorners)) self.eventLogContext = ChannelAdminEventLogContext(postbox: self.context.account.postbox, network: self.context.account.network, peerId: self.peer.id) @@ -496,7 +496,7 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode { |> deliverOnMainQueue).start(next: { [weak self] presentationData in if let strongSelf = self { strongSelf.presentationData = presentationData - strongSelf.chatPresentationDataPromise.set(.single(ChatPresentationData(theme: ChatPresentationThemeData(theme: presentationData.theme, wallpaper: presentationData.chatWallpaper), fontSize: presentationData.chatFontSize, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, disableAnimations: presentationData.disableAnimations, largeEmoji: presentationData.largeEmoji))) + strongSelf.chatPresentationDataPromise.set(.single(ChatPresentationData(theme: ChatPresentationThemeData(theme: presentationData.theme, wallpaper: presentationData.chatWallpaper), fontSize: presentationData.chatFontSize, strings: presentationData.strings, dateTimeFormat: presentationData.dateTimeFormat, nameDisplayOrder: presentationData.nameDisplayOrder, disableAnimations: presentationData.disableAnimations, largeEmoji: presentationData.largeEmoji, chatBubbleCorners: presentationData.chatBubbleCorners))) strongSelf.updateThemeAndStrings(theme: presentationData.theme, strings: presentationData.strings) } diff --git a/submodules/TelegramUI/TelegramUI/ChatSendMessageActionSheetControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatSendMessageActionSheetControllerNode.swift index b30f9e2e02..9c845b4699 100644 --- a/submodules/TelegramUI/TelegramUI/ChatSendMessageActionSheetControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatSendMessageActionSheetControllerNode.swift @@ -272,7 +272,10 @@ final class ChatSendMessageActionSheetControllerNode: ViewControllerTracingNode, self.messageBackgroundNode.contentMode = .scaleToFill let outgoing: PresentationThemeBubbleColorComponents = self.presentationData.chatWallpaper.isEmpty ? self.presentationData.theme.chat.message.outgoing.bubble.withoutWallpaper : self.presentationData.theme.chat.message.outgoing.bubble.withWallpaper - self.messageBackgroundNode.image = messageBubbleImage(incoming: false, fillColor: outgoing.gradientFill, strokeColor: outgoing.fill == outgoing.gradientFill ? outgoing.stroke : .clear, neighbors: .none, theme: self.presentationData.theme.chat, wallpaper: self.presentationData.chatWallpaper, knockout: false) + + let maxCornerRadius = self.presentationData.chatBubbleCorners.mainRadius + let minCornerRadius = self.presentationData.chatBubbleCorners.auxiliaryRadius + self.messageBackgroundNode.image = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: maxCornerRadius, incoming: false, fillColor: outgoing.gradientFill, strokeColor: outgoing.fill == outgoing.gradientFill ? outgoing.stroke : .clear, neighbors: .none, theme: self.presentationData.theme.chat, wallpaper: self.presentationData.chatWallpaper, knockout: false) self.view.addSubview(self.effectView) self.addSubnode(self.dimNode) @@ -376,7 +379,9 @@ final class ChatSendMessageActionSheetControllerNode: ViewControllerTracingNode, } let outgoing: PresentationThemeBubbleColorComponents = self.presentationData.chatWallpaper.isEmpty ? self.presentationData.theme.chat.message.outgoing.bubble.withoutWallpaper : self.presentationData.theme.chat.message.outgoing.bubble.withWallpaper - self.messageBackgroundNode.image = messageBubbleImage(incoming: false, fillColor: outgoing.gradientFill, strokeColor: outgoing.fill == outgoing.gradientFill ? outgoing.stroke : .clear, neighbors: .none, theme: self.presentationData.theme.chat, wallpaper: self.presentationData.chatWallpaper, knockout: false) + let maxCornerRadius = self.presentationData.chatBubbleCorners.mainRadius + let minCornerRadius = self.presentationData.chatBubbleCorners.auxiliaryRadius + self.messageBackgroundNode.image = messageBubbleImage(maxCornerRadius: maxCornerRadius, minCornerRadius: maxCornerRadius, incoming: false, fillColor: outgoing.gradientFill, strokeColor: outgoing.fill == outgoing.gradientFill ? outgoing.stroke : .clear, neighbors: .none, theme: self.presentationData.theme.chat, wallpaper: self.presentationData.chatWallpaper, knockout: false) for node in self.contentNodes { node.updateTheme(presentationData.theme) diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping index aab4fb144de75691c1805eb292a35ee88189e6ef..8fcfb968b659141e77ba3896905c51a987a97092 100644 GIT binary patch delta 23767 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 XZWidpbJ%dxNn&vd&BeJq>ZJbzX8$Vv delta 23793 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 Void)? = nil, clickThroughMessage: (() -> Void)? = nil) -> ListViewItem { + public func makeChatMessagePreviewItem(context: AccountContext, message: Message, theme: PresentationTheme, strings: PresentationStrings, wallpaper: TelegramWallpaper, fontSize: PresentationFontSize, chatBubbleCorners: PresentationChatBubbleCorners, dateTimeFormat: PresentationDateTimeFormat, nameOrder: PresentationPersonNameOrder, forcedResourceStatus: FileMediaResourceStatus?, tapMessage: ((Message) -> Void)? = nil, clickThroughMessage: (() -> Void)? = nil) -> ListViewItem { let controllerInteraction: ChatControllerInteraction if tapMessage != nil || clickThroughMessage != nil { controllerInteraction = ChatControllerInteraction(openMessage: { _, _ in @@ -1139,11 +1139,11 @@ public final class SharedAccountContextImpl: SharedAccountContext { controllerInteraction = defaultChatControllerInteraction } - return ChatMessageItem(presentationData: ChatPresentationData(theme: ChatPresentationThemeData(theme: theme, wallpaper: wallpaper), fontSize: fontSize, strings: strings, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameOrder, disableAnimations: false, largeEmoji: false, animatedEmojiScale: 1.0, isPreview: true), context: context, chatLocation: .peer(message.id.peerId), associatedData: ChatMessageItemAssociatedData(automaticDownloadPeerType: .contact, automaticDownloadNetworkType: .cellular, isRecentActions: false, isScheduledMessages: false, contactsPeerIds: Set(), animatedEmojiStickers: [:], forcedResourceStatus: forcedResourceStatus), controllerInteraction: controllerInteraction, content: .message(message: message, read: true, selection: .none, attributes: ChatMessageEntryAttributes()), disableDate: true, additionalContent: nil) + return ChatMessageItem(presentationData: ChatPresentationData(theme: ChatPresentationThemeData(theme: theme, wallpaper: wallpaper), fontSize: fontSize, strings: strings, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameOrder, disableAnimations: false, largeEmoji: false, chatBubbleCorners: chatBubbleCorners, animatedEmojiScale: 1.0, isPreview: true), context: context, chatLocation: .peer(message.id.peerId), associatedData: ChatMessageItemAssociatedData(automaticDownloadPeerType: .contact, automaticDownloadNetworkType: .cellular, isRecentActions: false, isScheduledMessages: false, contactsPeerIds: Set(), animatedEmojiStickers: [:], forcedResourceStatus: forcedResourceStatus), controllerInteraction: controllerInteraction, content: .message(message: message, read: true, selection: .none, attributes: ChatMessageEntryAttributes()), disableDate: true, additionalContent: nil) } - public func makeChatMessageDateHeaderItem(context: AccountContext, timestamp: Int32, theme: PresentationTheme, strings: PresentationStrings, wallpaper: TelegramWallpaper, fontSize: PresentationFontSize, dateTimeFormat: PresentationDateTimeFormat, nameOrder: PresentationPersonNameOrder) -> ListViewItemHeader { - return ChatMessageDateHeader(timestamp: timestamp, scheduled: false, presentationData: ChatPresentationData(theme: ChatPresentationThemeData(theme: theme, wallpaper: wallpaper), fontSize: fontSize, strings: strings, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameOrder, disableAnimations: false, largeEmoji: false, animatedEmojiScale: 1.0, isPreview: true), context: context) + public func makeChatMessageDateHeaderItem(context: AccountContext, timestamp: Int32, theme: PresentationTheme, strings: PresentationStrings, wallpaper: TelegramWallpaper, fontSize: PresentationFontSize, chatBubbleCorners: PresentationChatBubbleCorners, dateTimeFormat: PresentationDateTimeFormat, nameOrder: PresentationPersonNameOrder) -> ListViewItemHeader { + return ChatMessageDateHeader(timestamp: timestamp, scheduled: false, presentationData: ChatPresentationData(theme: ChatPresentationThemeData(theme: theme, wallpaper: wallpaper), fontSize: fontSize, strings: strings, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameOrder, disableAnimations: false, largeEmoji: false, chatBubbleCorners: chatBubbleCorners, animatedEmojiScale: 1.0, isPreview: true), context: context) } public func openWallet(context: AccountContext, walletContext: OpenWalletContext, present: @escaping (ViewController) -> Void) { diff --git a/submodules/TelegramUI/TelegramUI/ThemeUpdateManager.swift b/submodules/TelegramUI/TelegramUI/ThemeUpdateManager.swift index 3051fa73ed..2371c501a3 100644 --- a/submodules/TelegramUI/TelegramUI/ThemeUpdateManager.swift +++ b/submodules/TelegramUI/TelegramUI/ThemeUpdateManager.swift @@ -139,7 +139,7 @@ final class ThemeUpdateManagerImpl: ThemeUpdateManager { theme = updatedTheme } - return PresentationThemeSettings(theme: theme, themeSpecificAccentColors: current.themeSpecificAccentColors, themeSpecificChatWallpapers: current.themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, automaticThemeSwitchSetting: automaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) + return PresentationThemeSettings(theme: theme, themeSpecificAccentColors: current.themeSpecificAccentColors, themeSpecificChatWallpapers: current.themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, chatBubbleSettings: current.chatBubbleSettings, automaticThemeSwitchSetting: automaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) }) }).start() } diff --git a/submodules/TelegramUI/TelegramUI/WallpaperUploadManager.swift b/submodules/TelegramUI/TelegramUI/WallpaperUploadManager.swift index 9f20c48e3e..0527746dd8 100644 --- a/submodules/TelegramUI/TelegramUI/WallpaperUploadManager.swift +++ b/submodules/TelegramUI/TelegramUI/WallpaperUploadManager.swift @@ -133,7 +133,7 @@ final class WallpaperUploadManagerImpl: WallpaperUploadManager { var themeSpecificChatWallpapers = current.themeSpecificChatWallpapers themeSpecificChatWallpapers[themeReference.index] = updatedWallpaper themeSpecificChatWallpapers[coloredThemeIndex(reference: themeReference, accentColor: current.themeSpecificAccentColors[themeReference.index])] = updatedWallpaper - return PresentationThemeSettings(theme: current.theme, themeSpecificAccentColors: current.themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, automaticThemeSwitchSetting: current.automaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) + return PresentationThemeSettings(theme: current.theme, themeSpecificAccentColors: current.themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: current.useSystemFont, fontSize: current.fontSize, listsFontSize: current.listsFontSize, chatBubbleSettings: current.chatBubbleSettings, automaticThemeSwitchSetting: current.automaticThemeSwitchSetting, largeEmoji: current.largeEmoji, disableAnimations: current.disableAnimations) })).start() } diff --git a/submodules/TelegramUIPreferences/Sources/PresentationThemeSettings.swift b/submodules/TelegramUIPreferences/Sources/PresentationThemeSettings.swift index f78a460341..ab9d7e7291 100644 --- a/submodules/TelegramUIPreferences/Sources/PresentationThemeSettings.swift +++ b/submodules/TelegramUIPreferences/Sources/PresentationThemeSettings.swift @@ -531,6 +531,32 @@ public struct PresentationThemeAccentColor: PostboxCoding, Equatable { } } +public struct PresentationChatBubbleSettings: PostboxCoding, Equatable { + public var mainRadius: Int32 + public var auxiliaryRadius: Int32 + public var mergeBubbleCorners: Bool + + public static var `default`: PresentationChatBubbleSettings = PresentationChatBubbleSettings(mainRadius: 16, auxiliaryRadius: 8, mergeBubbleCorners: true) + + public init(mainRadius: Int32, auxiliaryRadius: Int32, mergeBubbleCorners: Bool) { + self.mainRadius = mainRadius + self.auxiliaryRadius = auxiliaryRadius + self.mergeBubbleCorners = mergeBubbleCorners + } + + public init(decoder: PostboxDecoder) { + self.mainRadius = decoder.decodeInt32ForKey("mainRadius", orElse: 16) + self.auxiliaryRadius = decoder.decodeInt32ForKey("auxiliaryRadius", orElse: 8) + self.mergeBubbleCorners = decoder.decodeInt32ForKey("mergeBubbleCorners", orElse: 1) != 0 + } + + public func encode(_ encoder: PostboxEncoder) { + encoder.encodeInt32(self.mainRadius, forKey: "mainRadius") + encoder.encodeInt32(self.auxiliaryRadius, forKey: "auxiliaryRadius") + encoder.encodeInt32(self.mergeBubbleCorners ? 1 : 0, forKey: "mergeBubbleCorners") + } +} + public struct PresentationThemeSettings: PreferencesEntry { public var theme: PresentationThemeReference public var themeSpecificAccentColors: [Int64: PresentationThemeAccentColor] @@ -538,6 +564,7 @@ public struct PresentationThemeSettings: PreferencesEntry { public var useSystemFont: Bool public var fontSize: PresentationFontSize public var listsFontSize: PresentationFontSize + public var chatBubbleSettings: PresentationChatBubbleSettings public var automaticThemeSwitchSetting: AutomaticThemeSwitchSetting public var largeEmoji: Bool public var disableAnimations: Bool @@ -578,16 +605,17 @@ public struct PresentationThemeSettings: PreferencesEntry { } public static var defaultSettings: PresentationThemeSettings { - return PresentationThemeSettings(theme: .builtin(.dayClassic), themeSpecificAccentColors: [:], themeSpecificChatWallpapers: [:], useSystemFont: true, fontSize: .regular, listsFontSize: .regular, automaticThemeSwitchSetting: AutomaticThemeSwitchSetting(trigger: .system, theme: .builtin(.night)), largeEmoji: true, disableAnimations: true) + return PresentationThemeSettings(theme: .builtin(.dayClassic), themeSpecificAccentColors: [:], themeSpecificChatWallpapers: [:], useSystemFont: true, fontSize: .regular, listsFontSize: .regular, chatBubbleSettings: .default, automaticThemeSwitchSetting: AutomaticThemeSwitchSetting(trigger: .system, theme: .builtin(.night)), largeEmoji: true, disableAnimations: true) } - public init(theme: PresentationThemeReference, themeSpecificAccentColors: [Int64: PresentationThemeAccentColor], themeSpecificChatWallpapers: [Int64: TelegramWallpaper], useSystemFont: Bool, fontSize: PresentationFontSize, listsFontSize: PresentationFontSize, automaticThemeSwitchSetting: AutomaticThemeSwitchSetting, largeEmoji: Bool, disableAnimations: Bool) { + public init(theme: PresentationThemeReference, themeSpecificAccentColors: [Int64: PresentationThemeAccentColor], themeSpecificChatWallpapers: [Int64: TelegramWallpaper], useSystemFont: Bool, fontSize: PresentationFontSize, listsFontSize: PresentationFontSize, chatBubbleSettings: PresentationChatBubbleSettings, automaticThemeSwitchSetting: AutomaticThemeSwitchSetting, largeEmoji: Bool, disableAnimations: Bool) { self.theme = theme self.themeSpecificAccentColors = themeSpecificAccentColors self.themeSpecificChatWallpapers = themeSpecificChatWallpapers self.useSystemFont = useSystemFont self.fontSize = fontSize self.listsFontSize = listsFontSize + self.chatBubbleSettings = chatBubbleSettings self.automaticThemeSwitchSetting = automaticThemeSwitchSetting self.largeEmoji = largeEmoji self.disableAnimations = disableAnimations @@ -612,6 +640,7 @@ public struct PresentationThemeSettings: PreferencesEntry { let fontSize = PresentationFontSize(rawValue: decoder.decodeInt32ForKey("f", orElse: PresentationFontSize.regular.rawValue)) ?? .regular self.fontSize = fontSize self.listsFontSize = PresentationFontSize(rawValue: decoder.decodeInt32ForKey("lf", orElse: PresentationFontSize.regular.rawValue)) ?? fontSize + self.chatBubbleSettings = decoder.decodeObjectForKey("chatBubbleSettings", decoder: { PresentationChatBubbleSettings(decoder: $0) }) as? PresentationChatBubbleSettings ?? PresentationChatBubbleSettings.default self.automaticThemeSwitchSetting = (decoder.decodeObjectForKey("automaticThemeSwitchSetting", decoder: { AutomaticThemeSwitchSetting(decoder: $0) }) as? AutomaticThemeSwitchSetting) ?? AutomaticThemeSwitchSetting(trigger: .system, theme: .builtin(.night)) self.largeEmoji = decoder.decodeBoolForKey("largeEmoji", orElse: true) self.disableAnimations = decoder.decodeBoolForKey("disableAnimations", orElse: true) @@ -628,6 +657,7 @@ public struct PresentationThemeSettings: PreferencesEntry { encoder.encodeInt32(self.useSystemFont ? 1 : 0, forKey: "useSystemFont") encoder.encodeInt32(self.fontSize.rawValue, forKey: "f") encoder.encodeInt32(self.listsFontSize.rawValue, forKey: "lf") + encoder.encodeObject(self.chatBubbleSettings, forKey: "chatBubbleSettings") encoder.encodeObject(self.automaticThemeSwitchSetting, forKey: "automaticThemeSwitchSetting") encoder.encodeBool(self.largeEmoji, forKey: "largeEmoji") encoder.encodeBool(self.disableAnimations, forKey: "disableAnimations") @@ -642,39 +672,43 @@ public struct PresentationThemeSettings: PreferencesEntry { } public static func ==(lhs: PresentationThemeSettings, rhs: PresentationThemeSettings) -> Bool { - return lhs.theme == rhs.theme && lhs.themeSpecificAccentColors == rhs.themeSpecificAccentColors && lhs.themeSpecificChatWallpapers == rhs.themeSpecificChatWallpapers && lhs.useSystemFont == rhs.useSystemFont && lhs.fontSize == rhs.fontSize && lhs.listsFontSize == rhs.listsFontSize && lhs.automaticThemeSwitchSetting == rhs.automaticThemeSwitchSetting && lhs.largeEmoji == rhs.largeEmoji && lhs.disableAnimations == rhs.disableAnimations + return lhs.theme == rhs.theme && lhs.themeSpecificAccentColors == rhs.themeSpecificAccentColors && lhs.themeSpecificChatWallpapers == rhs.themeSpecificChatWallpapers && lhs.useSystemFont == rhs.useSystemFont && lhs.fontSize == rhs.fontSize && lhs.listsFontSize == rhs.listsFontSize && lhs.chatBubbleSettings == rhs.chatBubbleSettings && lhs.automaticThemeSwitchSetting == rhs.automaticThemeSwitchSetting && lhs.largeEmoji == rhs.largeEmoji && lhs.disableAnimations == rhs.disableAnimations } public func withUpdatedTheme(_ theme: PresentationThemeReference) -> PresentationThemeSettings { - return PresentationThemeSettings(theme: theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) + return PresentationThemeSettings(theme: theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, chatBubbleSettings: self.chatBubbleSettings, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) } public func withUpdatedThemeSpecificAccentColors(_ themeSpecificAccentColors: [Int64: PresentationThemeAccentColor]) -> PresentationThemeSettings { - return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) + return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, chatBubbleSettings: self.chatBubbleSettings, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) } public func withUpdatedThemeSpecificChatWallpapers(_ themeSpecificChatWallpapers: [Int64: TelegramWallpaper]) -> PresentationThemeSettings { - return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) + return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, chatBubbleSettings: self.chatBubbleSettings, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) } public func withUpdatedUseSystemFont(_ useSystemFont: Bool) -> PresentationThemeSettings { - return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) + return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, chatBubbleSettings: self.chatBubbleSettings, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) } public func withUpdatedFontSizes(fontSize: PresentationFontSize, listsFontSize: PresentationFontSize) -> PresentationThemeSettings { - return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: fontSize, listsFontSize: listsFontSize, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) + return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: fontSize, listsFontSize: listsFontSize, chatBubbleSettings: self.chatBubbleSettings, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) + } + + public func withUpdatedChatBubbleSettings(_ chatBubbleSettings: PresentationChatBubbleSettings) -> PresentationThemeSettings { + return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, chatBubbleSettings: chatBubbleSettings, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) } public func withUpdatedAutomaticThemeSwitchSetting(_ automaticThemeSwitchSetting: AutomaticThemeSwitchSetting) -> PresentationThemeSettings { - return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, automaticThemeSwitchSetting: automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) + return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, chatBubbleSettings: self.chatBubbleSettings, automaticThemeSwitchSetting: automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: self.disableAnimations) } public func withUpdatedLargeEmoji(_ largeEmoji: Bool) -> PresentationThemeSettings { - return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: largeEmoji, disableAnimations: self.disableAnimations) + return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, chatBubbleSettings: self.chatBubbleSettings, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: largeEmoji, disableAnimations: self.disableAnimations) } public func withUpdatedDisableAnimations(_ disableAnimations: Bool) -> PresentationThemeSettings { - return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: disableAnimations) + return PresentationThemeSettings(theme: self.theme, themeSpecificAccentColors: self.themeSpecificAccentColors, themeSpecificChatWallpapers: self.themeSpecificChatWallpapers, useSystemFont: self.useSystemFont, fontSize: self.fontSize, listsFontSize: self.listsFontSize, chatBubbleSettings: self.chatBubbleSettings, automaticThemeSwitchSetting: self.automaticThemeSwitchSetting, largeEmoji: self.largeEmoji, disableAnimations: disableAnimations) } } From 5d684792b24ffbb610e06a26036426ff14a3d61e Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 21 Jan 2020 20:35:37 +0300 Subject: [PATCH 52/63] Escape asterisks in peer names in live location panel subtitle [skip ci] --- Telegram-iOS/en.lproj/Localizable.strings | 2 + ...ionBroadcastNavigationAccessoryPanel.swift | 4 +- .../Sources/PresentationStrings.swift | 6577 +++++++++-------- .../Resources/PresentationStrings.mapping | Bin 144339 -> 144387 bytes 4 files changed, 3294 insertions(+), 3289 deletions(-) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index 4af86fec1d..88bbb9260e 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -5291,3 +5291,5 @@ Any member of this group will be able to see messages in the channel."; "Forward.ErrorPublicQuizDisabledInChannels" = "Sorry, public polls can’t be forwarded to channels."; "Map.PlacesInThisArea" = "Places In This Area"; + +"Conversation.LiveLocationYouAndOther" = "**You** and %@"; diff --git a/submodules/TelegramBaseController/Sources/LocationBroadcastNavigationAccessoryPanel.swift b/submodules/TelegramBaseController/Sources/LocationBroadcastNavigationAccessoryPanel.swift index d75b0ee04f..59430f3883 100644 --- a/submodules/TelegramBaseController/Sources/LocationBroadcastNavigationAccessoryPanel.swift +++ b/submodules/TelegramBaseController/Sources/LocationBroadcastNavigationAccessoryPanel.swift @@ -135,13 +135,13 @@ final class LocationBroadcastNavigationAccessoryPanel: ASDisplayNode { } else { let otherString: String if filteredPeers.count == 1 { - otherString = peers[0].compactDisplayTitle + otherString = peers[0].compactDisplayTitle.replacingOccurrences(of: "*", with: "") } else { otherString = self.strings.Conversation_LiveLocationMembersCount(Int32(peers.count)) } let rawText: String if filteredPeers.count != peers.count { - rawText = self.strings.Conversation_LiveLocationYouAnd(otherString).0.replacingOccurrences(of: "*", with: "**") + rawText = self.strings.Conversation_LiveLocationYouAndOther(otherString).0 } else { rawText = otherString } diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index d4e4d3501b..615e220b50 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -1137,3639 +1137,3641 @@ public final class PresentationStrings: Equatable { public var TwoStepAuth_EnterPasswordPassword: String { return self._s[871]! } public var NotificationsSound_Calypso: String { return self._s[872]! } public var Map_Map: String { return self._s[873]! } - public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[875]! } - public var ChatSettings_TextSizeUnits: String { return self._s[876]! } + public func Conversation_LiveLocationYouAndOther(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[874]!, self._r[874]!, [_0]) + } + public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[876]! } + public var ChatSettings_TextSizeUnits: String { return self._s[877]! } public func VoiceOver_Chat_FileFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[877]!, self._r[877]!, [_0]) + return formatWithArgumentRanges(self._s[878]!, self._r[878]!, [_0]) } - public var Common_of: String { return self._s[878]! } - public var Conversation_ForwardContacts: String { return self._s[881]! } - public var IntentsSettings_SuggestByAll: String { return self._s[883]! } + public var Common_of: String { return self._s[879]! } + public var Conversation_ForwardContacts: String { return self._s[882]! } + public var IntentsSettings_SuggestByAll: String { return self._s[884]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[884]!, self._r[884]!, [_0]) + return formatWithArgumentRanges(self._s[885]!, self._r[885]!, [_0]) } - public var Passport_Language_hy: String { return self._s[885]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[886]! } - public var AutoDownloadSettings_Reset: String { return self._s[887]! } - public var Wallet_TransactionInfo_AddressCopied: String { return self._s[888]! } - public var Paint_ClearConfirm: String { return self._s[889]! } - public var Camera_VideoMode: String { return self._s[890]! } + public var Passport_Language_hy: String { return self._s[886]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[887]! } + public var AutoDownloadSettings_Reset: String { return self._s[888]! } + public var Wallet_TransactionInfo_AddressCopied: String { return self._s[889]! } + public var Paint_ClearConfirm: String { return self._s[890]! } + public var Camera_VideoMode: String { return self._s[891]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[891]!, self._r[891]!, [_0]) + return formatWithArgumentRanges(self._s[892]!, self._r[892]!, [_0]) } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[892]! } - public var Conversation_ViewBackground: String { return self._s[893]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[893]! } + public var Conversation_ViewBackground: String { return self._s[894]! } public func Wallet_Info_TransactionDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[894]!, self._r[894]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[895]!, self._r[895]!, [_1, _2, _3]) } - public var Passport_Language_el: String { return self._s[895]! } - public var PhotoEditor_Original: String { return self._s[896]! } - public var Settings_FAQ_Button: String { return self._s[898]! } - public var Channel_Setup_PublicNoLink: String { return self._s[900]! } - public var Conversation_UnsupportedMedia: String { return self._s[901]! } - public var Conversation_SlideToCancel: String { return self._s[902]! } - public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[903]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[904]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[905]! } - public var Conversation_ReportSpamChannelConfirmation: String { return self._s[906]! } - public var AutoNightTheme_NotAvailable: String { return self._s[907]! } - public var Conversation_Owner: String { return self._s[908]! } - public var Common_Create: String { return self._s[909]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[910]! } - public var ContactList_Context_Call: String { return self._s[911]! } - public var Localization_ChooseLanguage: String { return self._s[913]! } - public var ChatList_Context_AddToContacts: String { return self._s[915]! } - public var OldChannels_NoticeTitle: String { return self._s[916]! } - public var Settings_Proxy: String { return self._s[918]! } - public var Privacy_TopPeersHelp: String { return self._s[919]! } - public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[920]! } - public var Chat_UnsendMyMessages: String { return self._s[921]! } + public var Passport_Language_el: String { return self._s[896]! } + public var PhotoEditor_Original: String { return self._s[897]! } + public var Settings_FAQ_Button: String { return self._s[899]! } + public var Channel_Setup_PublicNoLink: String { return self._s[901]! } + public var Conversation_UnsupportedMedia: String { return self._s[902]! } + public var Conversation_SlideToCancel: String { return self._s[903]! } + public var Appearance_ThemePreview_ChatList_4_Name: String { return self._s[904]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[905]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[906]! } + public var Conversation_ReportSpamChannelConfirmation: String { return self._s[907]! } + public var AutoNightTheme_NotAvailable: String { return self._s[908]! } + public var Conversation_Owner: String { return self._s[909]! } + public var Common_Create: String { return self._s[910]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[911]! } + public var ContactList_Context_Call: String { return self._s[912]! } + public var Localization_ChooseLanguage: String { return self._s[914]! } + public var ChatList_Context_AddToContacts: String { return self._s[916]! } + public var OldChannels_NoticeTitle: String { return self._s[917]! } + public var Settings_Proxy: String { return self._s[919]! } + public var Privacy_TopPeersHelp: String { return self._s[920]! } + public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[921]! } + public var Chat_UnsendMyMessages: String { return self._s[922]! } public func VoiceOver_Chat_Duration(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[922]!, self._r[922]!, [_0]) + return formatWithArgumentRanges(self._s[923]!, self._r[923]!, [_0]) } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[923]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[924]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[925]!, self._r[925]!, [_0]) + return formatWithArgumentRanges(self._s[926]!, self._r[926]!, [_0]) } - public var Contacts_SortedByPresence: String { return self._s[926]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[927]! } - public var Cache_Title: String { return self._s[928]! } + public var Contacts_SortedByPresence: String { return self._s[927]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[928]! } + public var Cache_Title: String { return self._s[929]! } public func Login_PhoneBannedEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[929]!, self._r[929]!, [_0]) + return formatWithArgumentRanges(self._s[930]!, self._r[930]!, [_0]) } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[930]! } - public var Channel_Moderator_Title: String { return self._s[931]! } - public var InstantPage_AutoNightTheme: String { return self._s[933]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[931]! } + public var Channel_Moderator_Title: String { return self._s[932]! } + public var InstantPage_AutoNightTheme: String { return self._s[934]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[936]!, self._r[936]!, [_1]) + return formatWithArgumentRanges(self._s[937]!, self._r[937]!, [_1]) } - public var Passport_Scans_Upload: String { return self._s[937]! } - public var Undo_Undo: String { return self._s[939]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[940]! } - public var TwoStepAuth_RemovePassword: String { return self._s[941]! } - public var Common_Delete: String { return self._s[942]! } - public var Contacts_AddPeopleNearby: String { return self._s[944]! } - public var Conversation_ContextMenuDelete: String { return self._s[945]! } - public var SocksProxySetup_Credentials: String { return self._s[946]! } - public var Appearance_EditTheme: String { return self._s[948]! } - public var ClearCache_StorageOtherApps: String { return self._s[949]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[950]! } - public var Wallet_Send_NetworkErrorText: String { return self._s[951]! } - public var AuthSessions_DevicesTitle: String { return self._s[953]! } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[955]! } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[956]! } - public var Passport_Language_id: String { return self._s[958]! } - public var WallpaperSearch_ColorTeal: String { return self._s[959]! } - public var ChannelIntro_Title: String { return self._s[960]! } + public var Passport_Scans_Upload: String { return self._s[938]! } + public var Undo_Undo: String { return self._s[940]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[941]! } + public var TwoStepAuth_RemovePassword: String { return self._s[942]! } + public var Common_Delete: String { return self._s[943]! } + public var Contacts_AddPeopleNearby: String { return self._s[945]! } + public var Conversation_ContextMenuDelete: String { return self._s[946]! } + public var SocksProxySetup_Credentials: String { return self._s[947]! } + public var Appearance_EditTheme: String { return self._s[949]! } + public var ClearCache_StorageOtherApps: String { return self._s[950]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[951]! } + public var Wallet_Send_NetworkErrorText: String { return self._s[952]! } + public var AuthSessions_DevicesTitle: String { return self._s[954]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[956]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[957]! } + public var Passport_Language_id: String { return self._s[959]! } + public var WallpaperSearch_ColorTeal: String { return self._s[960]! } + public var ChannelIntro_Title: String { return self._s[961]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[961]!, self._r[961]!, [_0]) + return formatWithArgumentRanges(self._s[962]!, self._r[962]!, [_0]) } - public var VoiceOver_Chat_OpenLinkHint: String { return self._s[963]! } - public var VoiceOver_Chat_Reply: String { return self._s[964]! } - public var ScheduledMessages_BotActionUnavailable: String { return self._s[965]! } - public var Channel_Info_Description: String { return self._s[966]! } - public var Stickers_FavoriteStickers: String { return self._s[967]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[968]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[969]! } - public var ChatSearch_ResultsTooltip: String { return self._s[970]! } - public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[971]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[972]! } - public var Group_PublicLink_Placeholder: String { return self._s[973]! } - public var Notifications_ExceptionsDefaultSound: String { return self._s[974]! } + public var VoiceOver_Chat_OpenLinkHint: String { return self._s[964]! } + public var VoiceOver_Chat_Reply: String { return self._s[965]! } + public var ScheduledMessages_BotActionUnavailable: String { return self._s[966]! } + public var Channel_Info_Description: String { return self._s[967]! } + public var Stickers_FavoriteStickers: String { return self._s[968]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[969]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[970]! } + public var ChatSearch_ResultsTooltip: String { return self._s[971]! } + public var Wallet_VoiceOver_Editing_ClearText: String { return self._s[972]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[973]! } + public var Group_PublicLink_Placeholder: String { return self._s[974]! } + public var Notifications_ExceptionsDefaultSound: String { return self._s[975]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[975]!, self._r[975]!, [_1]) + return formatWithArgumentRanges(self._s[976]!, self._r[976]!, [_1]) } - public var TextFormat_Underline: String { return self._s[976]! } + public var TextFormat_Underline: String { return self._s[977]! } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[978]!, self._r[978]!, [_1, _2]) + return formatWithArgumentRanges(self._s[979]!, self._r[979]!, [_1, _2]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[979]!, self._r[979]!, [_0]) + return formatWithArgumentRanges(self._s[980]!, self._r[980]!, [_0]) } - public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[980]! } + public var Appearance_ThemePreview_ChatList_3_Name: String { return self._s[981]! } public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[981]!, self._r[981]!, [_1, _2]) + return formatWithArgumentRanges(self._s[982]!, self._r[982]!, [_1, _2]) } - public var Wallet_Intro_ImportExisting: String { return self._s[982]! } - public var GroupPermission_Delete: String { return self._s[983]! } - public var Passport_Language_uk: String { return self._s[984]! } - public var StickerPack_HideStickers: String { return self._s[986]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[987]! } + public var Wallet_Intro_ImportExisting: String { return self._s[983]! } + public var GroupPermission_Delete: String { return self._s[984]! } + public var Passport_Language_uk: String { return self._s[985]! } + public var StickerPack_HideStickers: String { return self._s[987]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[988]! } public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[988]!, self._r[988]!, [_1, _2]) + return formatWithArgumentRanges(self._s[989]!, self._r[989]!, [_1, _2]) } - public var Activity_UploadingVideoMessage: String { return self._s[989]! } + public var Activity_UploadingVideoMessage: String { return self._s[990]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[990]!, self._r[990]!, [_0]) + return formatWithArgumentRanges(self._s[991]!, self._r[991]!, [_0]) } - public var Channel_TitleInfo: String { return self._s[991]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[992]! } - public var Settings_CallSettings: String { return self._s[993]! } - public var Camera_SquareMode: String { return self._s[994]! } - public var Conversation_SendMessage_ScheduleMessage: String { return self._s[995]! } - public var GroupInfo_SharedMediaNone: String { return self._s[996]! } + public var Channel_TitleInfo: String { return self._s[992]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[993]! } + public var Settings_CallSettings: String { return self._s[994]! } + public var Camera_SquareMode: String { return self._s[995]! } + public var Conversation_SendMessage_ScheduleMessage: String { return self._s[996]! } + public var GroupInfo_SharedMediaNone: String { return self._s[997]! } public func PUSH_MESSAGE_VIDEO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[997]!, self._r[997]!, [_1]) + return formatWithArgumentRanges(self._s[998]!, self._r[998]!, [_1]) } - public var Bot_GenericBotStatus: String { return self._s[998]! } - public var Application_Update: String { return self._s[1000]! } - public var Month_ShortJanuary: String { return self._s[1001]! } - public var Contacts_PermissionsKeepDisabled: String { return self._s[1002]! } - public var Channel_AdminLog_BanReadMessages: String { return self._s[1003]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[1004]! } - public var Passport_Address_Street2Placeholder: String { return self._s[1005]! } + public var Bot_GenericBotStatus: String { return self._s[999]! } + public var Application_Update: String { return self._s[1001]! } + public var Month_ShortJanuary: String { return self._s[1002]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[1003]! } + public var Channel_AdminLog_BanReadMessages: String { return self._s[1004]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[1005]! } + public var Passport_Address_Street2Placeholder: String { return self._s[1006]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1006]!, self._r[1006]!, [_0]) + return formatWithArgumentRanges(self._s[1007]!, self._r[1007]!, [_0]) } - public var NetworkUsageSettings_Cellular: String { return self._s[1007]! } - public var Appearance_PreviewOutgoingText: String { return self._s[1008]! } + public var NetworkUsageSettings_Cellular: String { return self._s[1008]! } + public var Appearance_PreviewOutgoingText: String { return self._s[1009]! } public func StickerPackActionInfo_RemovedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1009]!, self._r[1009]!, [_0]) + return formatWithArgumentRanges(self._s[1010]!, self._r[1010]!, [_0]) } - public var Notifications_PermissionsAllowInSettings: String { return self._s[1010]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[1012]! } - public var Map_Directions: String { return self._s[1013]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[1015]! } - public var Appearance_ThemeDay: String { return self._s[1016]! } - public var LogoutOptions_LogOut: String { return self._s[1017]! } - public var Group_PublicLink_Title: String { return self._s[1019]! } - public var Channel_AddBotErrorNoRights: String { return self._s[1020]! } - public var ChatList_Search_ShowLess: String { return self._s[1021]! } - public var Passport_Identity_AddPassport: String { return self._s[1022]! } - public var LocalGroup_ButtonTitle: String { return self._s[1023]! } - public var Call_Message: String { return self._s[1024]! } - public var PhotoEditor_ExposureTool: String { return self._s[1025]! } - public var Wallet_Receive_CommentInfo: String { return self._s[1027]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[1028]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[1030]! } - public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[1031]! } - public var Appearance_Preview: String { return self._s[1032]! } - public var Compose_ChannelMembers: String { return self._s[1033]! } - public var Conversation_DeleteManyMessages: String { return self._s[1034]! } - public var ReportPeer_ReasonOther_Title: String { return self._s[1035]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1036]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1037]! } - public var Channel_Stickers_CreateYourOwn: String { return self._s[1040]! } - public var Conversation_UpdateTelegram: String { return self._s[1041]! } - public var EditTheme_Create_TopInfo: String { return self._s[1042]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[1011]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[1013]! } + public var Map_Directions: String { return self._s[1014]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[1016]! } + public var Appearance_ThemeDay: String { return self._s[1017]! } + public var LogoutOptions_LogOut: String { return self._s[1018]! } + public var Group_PublicLink_Title: String { return self._s[1020]! } + public var Channel_AddBotErrorNoRights: String { return self._s[1021]! } + public var ChatList_Search_ShowLess: String { return self._s[1022]! } + public var Passport_Identity_AddPassport: String { return self._s[1023]! } + public var LocalGroup_ButtonTitle: String { return self._s[1024]! } + public var Call_Message: String { return self._s[1025]! } + public var PhotoEditor_ExposureTool: String { return self._s[1026]! } + public var Wallet_Receive_CommentInfo: String { return self._s[1028]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[1029]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[1031]! } + public var Appearance_ThemePreview_ChatList_2_Name: String { return self._s[1032]! } + public var Appearance_Preview: String { return self._s[1033]! } + public var Compose_ChannelMembers: String { return self._s[1034]! } + public var Conversation_DeleteManyMessages: String { return self._s[1035]! } + public var ReportPeer_ReasonOther_Title: String { return self._s[1036]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[1037]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[1038]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[1041]! } + public var Conversation_UpdateTelegram: String { return self._s[1042]! } + public var EditTheme_Create_TopInfo: String { return self._s[1043]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1043]!, self._r[1043]!, [_0]) + return formatWithArgumentRanges(self._s[1044]!, self._r[1044]!, [_0]) } - public var Wallet_WordCheck_Continue: String { return self._s[1044]! } - public var TwoFactorSetup_Hint_Action: String { return self._s[1045]! } - public var IntentsSettings_ResetAll: String { return self._s[1046]! } + public var Wallet_WordCheck_Continue: String { return self._s[1045]! } + public var TwoFactorSetup_Hint_Action: String { return self._s[1046]! } + public var IntentsSettings_ResetAll: String { return self._s[1047]! } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1047]!, self._r[1047]!, [_1]) + return formatWithArgumentRanges(self._s[1048]!, self._r[1048]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[1048]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[1049]! } + public var GroupInfo_Administrators_Title: String { return self._s[1049]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[1050]! } public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1050]!, self._r[1050]!, [_0]) + return formatWithArgumentRanges(self._s[1051]!, self._r[1051]!, [_0]) } - public var Tour_Title3: String { return self._s[1051]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[1052]! } - public var Clipboard_SendPhoto: String { return self._s[1056]! } - public var MediaPicker_Videos: String { return self._s[1057]! } - public var Passport_Email_Title: String { return self._s[1058]! } + public var Tour_Title3: String { return self._s[1052]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[1053]! } + public var Clipboard_SendPhoto: String { return self._s[1057]! } + public var MediaPicker_Videos: String { return self._s[1058]! } + public var Passport_Email_Title: String { return self._s[1059]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1059]!, self._r[1059]!, [_0]) + return formatWithArgumentRanges(self._s[1060]!, self._r[1060]!, [_0]) } - public var StickerPacksSettings_Title: String { return self._s[1060]! } - public var Conversation_MessageDialogDelete: String { return self._s[1061]! } - public var Privacy_Calls_CustomHelp: String { return self._s[1063]! } - public var Message_Wallpaper: String { return self._s[1064]! } - public var MemberSearch_BotSection: String { return self._s[1065]! } - public var GroupInfo_SetSound: String { return self._s[1066]! } - public var Core_ServiceUserStatus: String { return self._s[1067]! } - public var LiveLocationUpdated_JustNow: String { return self._s[1068]! } - public var Call_StatusFailed: String { return self._s[1069]! } - public var TwoFactorSetup_Email_Placeholder: String { return self._s[1070]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1071]! } - public var TwoStepAuth_SetPassword: String { return self._s[1072]! } - public var Permissions_PeopleNearbyText_v0: String { return self._s[1073]! } + public var StickerPacksSettings_Title: String { return self._s[1061]! } + public var Conversation_MessageDialogDelete: String { return self._s[1062]! } + public var Privacy_Calls_CustomHelp: String { return self._s[1064]! } + public var Message_Wallpaper: String { return self._s[1065]! } + public var MemberSearch_BotSection: String { return self._s[1066]! } + public var GroupInfo_SetSound: String { return self._s[1067]! } + public var Core_ServiceUserStatus: String { return self._s[1068]! } + public var LiveLocationUpdated_JustNow: String { return self._s[1069]! } + public var Call_StatusFailed: String { return self._s[1070]! } + public var TwoFactorSetup_Email_Placeholder: String { return self._s[1071]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[1072]! } + public var TwoStepAuth_SetPassword: String { return self._s[1073]! } + public var Permissions_PeopleNearbyText_v0: String { return self._s[1074]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1075]!, self._r[1075]!, [_0]) + return formatWithArgumentRanges(self._s[1076]!, self._r[1076]!, [_0]) } - public var Calls_SubmitRating: String { return self._s[1076]! } - public var Map_NoPlacesNearby: String { return self._s[1077]! } - public var Profile_Username: String { return self._s[1078]! } - public var Bot_DescriptionTitle: String { return self._s[1079]! } - public var MaskStickerSettings_Title: String { return self._s[1080]! } - public var SharedMedia_CategoryOther: String { return self._s[1081]! } - public var GroupInfo_SetGroupPhoto: String { return self._s[1082]! } - public var Common_NotNow: String { return self._s[1083]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[1084]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[1085]! } - public var Map_Location: String { return self._s[1086]! } - public var Invitation_JoinGroup: String { return self._s[1087]! } - public var AutoDownloadSettings_Title: String { return self._s[1089]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1090]! } - public var Channel_ErrorAddBlocked: String { return self._s[1091]! } - public var Conversation_UnblockUser: String { return self._s[1092]! } - public var EditTheme_Edit_TopInfo: String { return self._s[1093]! } - public var Watch_Bot_Restart: String { return self._s[1094]! } - public var TwoStepAuth_Title: String { return self._s[1095]! } - public var Channel_AdminLog_BanSendMessages: String { return self._s[1096]! } - public var Checkout_ShippingMethod: String { return self._s[1097]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1098]! } + public var Calls_SubmitRating: String { return self._s[1077]! } + public var Map_NoPlacesNearby: String { return self._s[1078]! } + public var Profile_Username: String { return self._s[1079]! } + public var Bot_DescriptionTitle: String { return self._s[1080]! } + public var MaskStickerSettings_Title: String { return self._s[1081]! } + public var SharedMedia_CategoryOther: String { return self._s[1082]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[1083]! } + public var Common_NotNow: String { return self._s[1084]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[1085]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[1086]! } + public var Map_Location: String { return self._s[1087]! } + public var Invitation_JoinGroup: String { return self._s[1088]! } + public var AutoDownloadSettings_Title: String { return self._s[1090]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[1091]! } + public var Channel_ErrorAddBlocked: String { return self._s[1092]! } + public var Conversation_UnblockUser: String { return self._s[1093]! } + public var EditTheme_Edit_TopInfo: String { return self._s[1094]! } + public var Watch_Bot_Restart: String { return self._s[1095]! } + public var TwoStepAuth_Title: String { return self._s[1096]! } + public var Channel_AdminLog_BanSendMessages: String { return self._s[1097]! } + public var Checkout_ShippingMethod: String { return self._s[1098]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[1099]! } public func PUSH_CHAT_MESSAGE_STICKER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1099]!, self._r[1099]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1100]!, self._r[1100]!, [_1, _2, _3]) } - public var EditTheme_ChangeColors: String { return self._s[1101]! } + public var EditTheme_ChangeColors: String { return self._s[1102]! } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1102]!, self._r[1102]!, [_0]) - } - public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1103]!, self._r[1103]!, [_0]) } - public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1104]! } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1105]! } - public var AuthSessions_TerminateOtherSessions: String { return self._s[1106]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[1107]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[1108]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1109]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1110]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[1111]! } - public var Checkout_PaymentMethod_Title: String { return self._s[1112]! } - public var SocksProxySetup_Connection: String { return self._s[1113]! } - public var Group_MessagePhotoRemoved: String { return self._s[1114]! } - public var Channel_Stickers_NotFound: String { return self._s[1117]! } - public var Group_About_Help: String { return self._s[1118]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[1119]! } - public var PeopleNearby_Title: String { return self._s[1121]! } - public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1122]!, self._r[1122]!, [_1]) + public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1104]!, self._r[1104]!, [_0]) } - public var Map_Home: String { return self._s[1123]! } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1125]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1126]! } - public var SocksProxySetup_Password: String { return self._s[1127]! } - public var Notifications_PermissionsEnable: String { return self._s[1128]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[1130]! } + public var Appearance_ThemePreview_ChatList_1_Name: String { return self._s[1105]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[1106]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[1107]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[1108]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[1109]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[1110]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[1111]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[1112]! } + public var Checkout_PaymentMethod_Title: String { return self._s[1113]! } + public var SocksProxySetup_Connection: String { return self._s[1114]! } + public var Group_MessagePhotoRemoved: String { return self._s[1115]! } + public var Channel_Stickers_NotFound: String { return self._s[1118]! } + public var Group_About_Help: String { return self._s[1119]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[1120]! } + public var PeopleNearby_Title: String { return self._s[1122]! } + public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1123]!, self._r[1123]!, [_1]) + } + public var Map_Home: String { return self._s[1124]! } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[1126]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[1127]! } + public var SocksProxySetup_Password: String { return self._s[1128]! } + public var Notifications_PermissionsEnable: String { return self._s[1129]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[1131]! } public func Channel_AdminLog_MessageInvitedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1131]!, self._r[1131]!, [_1]) + return formatWithArgumentRanges(self._s[1132]!, self._r[1132]!, [_1]) } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1133]!, self._r[1133]!, [_0]) + return formatWithArgumentRanges(self._s[1134]!, self._r[1134]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[1134]! } - public var ArchivedPacksAlert_Title: String { return self._s[1135]! } - public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1136]! } - public var Map_PlacesNearby: String { return self._s[1137]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[1135]! } + public var ArchivedPacksAlert_Title: String { return self._s[1136]! } + public var Wallet_Receive_InvoiceUrlCopied: String { return self._s[1137]! } + public var Map_PlacesNearby: String { return self._s[1138]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1138]!, self._r[1138]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1139]!, self._r[1139]!, [_1, _2, _3]) } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1139]! } - public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1141]! } - public var Conversation_StatusTyping: String { return self._s[1142]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[1143]! } - public var Notification_PassportValueProofOfAddress: String { return self._s[1144]! } - public var UserInfo_CreateNewContact: String { return self._s[1145]! } - public var Passport_Identity_FrontSide: String { return self._s[1146]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1147]! } - public var Calls_CallTabTitle: String { return self._s[1148]! } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1149]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[1140]! } + public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[1142]! } + public var Conversation_StatusTyping: String { return self._s[1143]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[1144]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[1145]! } + public var UserInfo_CreateNewContact: String { return self._s[1146]! } + public var Passport_Identity_FrontSide: String { return self._s[1147]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[1148]! } + public var Calls_CallTabTitle: String { return self._s[1149]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[1150]! } public func Login_BannedPhoneBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1151]!, self._r[1151]!, [_0]) + return formatWithArgumentRanges(self._s[1152]!, self._r[1152]!, [_0]) } - public var Watch_UserInfo_MuteTitle: String { return self._s[1152]! } - public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1153]! } - public var SharedMedia_EmptyMusicText: String { return self._s[1154]! } - public var Wallet_Completed_Text: String { return self._s[1155]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1156]! } - public var Paint_Stickers: String { return self._s[1157]! } - public var Privacy_GroupsAndChannels: String { return self._s[1158]! } - public var ChatList_Context_Delete: String { return self._s[1160]! } - public var UserInfo_AddContact: String { return self._s[1161]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[1153]! } + public var Group_EditAdmin_RankAdminPlaceholder: String { return self._s[1154]! } + public var SharedMedia_EmptyMusicText: String { return self._s[1155]! } + public var Wallet_Completed_Text: String { return self._s[1156]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[1157]! } + public var Paint_Stickers: String { return self._s[1158]! } + public var Privacy_GroupsAndChannels: String { return self._s[1159]! } + public var ChatList_Context_Delete: String { return self._s[1161]! } + public var UserInfo_AddContact: String { return self._s[1162]! } public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1162]!, self._r[1162]!, [_0]) + return formatWithArgumentRanges(self._s[1163]!, self._r[1163]!, [_0]) } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[1164]! } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[1165]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1166]!, self._r[1166]!, [_0]) + return formatWithArgumentRanges(self._s[1167]!, self._r[1167]!, [_0]) } - public var DialogList_NoMessagesTitle: String { return self._s[1167]! } - public var EditProfile_NameAndPhotoHelp: String { return self._s[1168]! } - public var BlockedUsers_BlockUser: String { return self._s[1169]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[1170]! } - public var MediaPicker_UngroupDescription: String { return self._s[1172]! } - public var Watch_NoConnection: String { return self._s[1173]! } - public var Month_GenSeptember: String { return self._s[1174]! } - public var Conversation_ViewGroup: String { return self._s[1176]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1179]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[1180]! } - public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1181]! } - public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1182]! } - public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1183]! } - public var MediaPicker_CameraRoll: String { return self._s[1185]! } - public var Month_GenAugust: String { return self._s[1186]! } - public var Wallet_Configuration_SourceHeader: String { return self._s[1187]! } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[1188]! } - public var SharedMedia_EmptyText: String { return self._s[1189]! } - public var Map_ShareLiveLocation: String { return self._s[1190]! } - public var Calls_All: String { return self._s[1191]! } - public var Map_SendThisPlace: String { return self._s[1193]! } - public var Appearance_ThemeNight: String { return self._s[1195]! } - public var Conversation_HoldForAudio: String { return self._s[1196]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[1199]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[1200]! } - public var SocksProxySetup_Secret: String { return self._s[1201]! } + public var DialogList_NoMessagesTitle: String { return self._s[1168]! } + public var EditProfile_NameAndPhotoHelp: String { return self._s[1169]! } + public var BlockedUsers_BlockUser: String { return self._s[1170]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[1171]! } + public var MediaPicker_UngroupDescription: String { return self._s[1173]! } + public var Watch_NoConnection: String { return self._s[1174]! } + public var Month_GenSeptember: String { return self._s[1175]! } + public var Conversation_ViewGroup: String { return self._s[1177]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[1180]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[1181]! } + public var Channel_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[1182]! } + public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[1183]! } + public var Wallet_WordCheck_IncorrectHeader: String { return self._s[1184]! } + public var MediaPicker_CameraRoll: String { return self._s[1186]! } + public var Month_GenAugust: String { return self._s[1187]! } + public var Wallet_Configuration_SourceHeader: String { return self._s[1188]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[1189]! } + public var SharedMedia_EmptyText: String { return self._s[1190]! } + public var Map_ShareLiveLocation: String { return self._s[1191]! } + public var Calls_All: String { return self._s[1192]! } + public var Map_SendThisPlace: String { return self._s[1194]! } + public var Appearance_ThemeNight: String { return self._s[1196]! } + public var Conversation_HoldForAudio: String { return self._s[1197]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[1200]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[1201]! } + public var SocksProxySetup_Secret: String { return self._s[1202]! } public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1202]!, self._r[1202]!, [_0]) + return formatWithArgumentRanges(self._s[1203]!, self._r[1203]!, [_0]) } - public var Channel_BanList_RestrictedTitle: String { return self._s[1204]! } - public var Conversation_Location: String { return self._s[1205]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[1205]! } + public var Conversation_Location: String { return self._s[1206]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1206]!, self._r[1206]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1207]!, self._r[1207]!, [_1, _2]) } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[1208]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1209]! } - public var Notifications_PermissionsText: String { return self._s[1210]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1211]! } - public var Call_Flip: String { return self._s[1212]! } - public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1214]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1215]! } - public var Wallet_TransactionInfo_StorageFeeInfoUrl: String { return self._s[1216]! } - public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1217]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1219]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1221]! } - public var Channel_TooMuchBots: String { return self._s[1223]! } - public var Passport_DeletePassportConfirmation: String { return self._s[1224]! } - public var Login_InvalidCodeError: String { return self._s[1225]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1226]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[1209]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1210]! } + public var Notifications_PermissionsText: String { return self._s[1211]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1212]! } + public var Call_Flip: String { return self._s[1213]! } + public var Channel_AdminLog_CanDeleteMessagesOfOthers: String { return self._s[1215]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1216]! } + public var Wallet_TransactionInfo_StorageFeeInfoUrl: String { return self._s[1217]! } + public var PrivacyPhoneNumberSettings_DiscoveryHeader: String { return self._s[1218]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1220]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1222]! } + public var Channel_TooMuchBots: String { return self._s[1224]! } + public var Passport_DeletePassportConfirmation: String { return self._s[1225]! } + public var Login_InvalidCodeError: String { return self._s[1226]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1227]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1227]!, self._r[1227]!, [_0]) - } - public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1228]!, self._r[1228]!, [_0]) } - public var VoiceOver_Navigation_ProxySettings: String { return self._s[1229]! } - public var Call_CallInProgressTitle: String { return self._s[1230]! } - public var Month_ShortSeptember: String { return self._s[1231]! } - public var Watch_ChannelInfo_Title: String { return self._s[1232]! } - public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1235]! } - public var DialogList_PasscodeLockHelp: String { return self._s[1236]! } - public var Chat_MultipleTextMessagesDisabled: String { return self._s[1237]! } - public var Wallet_Receive_Title: String { return self._s[1238]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[1239]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1240]! } - public var PhotoEditor_CropReset: String { return self._s[1241]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1243]! } - public var Channel_Management_LabelEditor: String { return self._s[1244]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1246]! } - public var PhotoEditor_HighlightsTool: String { return self._s[1247]! } - public var Wallet_Info_WalletCreated: String { return self._s[1248]! } - public var UserInfo_Title: String { return self._s[1249]! } - public var ChatList_HideAction: String { return self._s[1250]! } - public var AccessDenied_Title: String { return self._s[1251]! } - public var DialogList_SearchLabel: String { return self._s[1252]! } - public var Group_Setup_HistoryHidden: String { return self._s[1253]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1254]! } - public var State_Updating: String { return self._s[1256]! } - public var Contacts_TabTitle: String { return self._s[1257]! } - public var Notifications_Badge_CountUnreadMessages: String { return self._s[1259]! } - public var GroupInfo_GroupHistory: String { return self._s[1260]! } - public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1261]! } - public var Wallpaper_SetColor: String { return self._s[1262]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1263]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1264]! } - public var Chat_AttachmentLimitReached: String { return self._s[1265]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1266]! } - public var Contacts_NotRegisteredSection: String { return self._s[1267]! } + public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1229]!, self._r[1229]!, [_0]) + } + public var VoiceOver_Navigation_ProxySettings: String { return self._s[1230]! } + public var Call_CallInProgressTitle: String { return self._s[1231]! } + public var Month_ShortSeptember: String { return self._s[1232]! } + public var Watch_ChannelInfo_Title: String { return self._s[1233]! } + public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1236]! } + public var DialogList_PasscodeLockHelp: String { return self._s[1237]! } + public var Chat_MultipleTextMessagesDisabled: String { return self._s[1238]! } + public var Wallet_Receive_Title: String { return self._s[1239]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[1240]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1241]! } + public var PhotoEditor_CropReset: String { return self._s[1242]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1244]! } + public var Channel_Management_LabelEditor: String { return self._s[1245]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1247]! } + public var PhotoEditor_HighlightsTool: String { return self._s[1248]! } + public var Wallet_Info_WalletCreated: String { return self._s[1249]! } + public var UserInfo_Title: String { return self._s[1250]! } + public var ChatList_HideAction: String { return self._s[1251]! } + public var AccessDenied_Title: String { return self._s[1252]! } + public var DialogList_SearchLabel: String { return self._s[1253]! } + public var Group_Setup_HistoryHidden: String { return self._s[1254]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1255]! } + public var State_Updating: String { return self._s[1257]! } + public var Contacts_TabTitle: String { return self._s[1258]! } + public var Notifications_Badge_CountUnreadMessages: String { return self._s[1260]! } + public var GroupInfo_GroupHistory: String { return self._s[1261]! } + public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1262]! } + public var Wallpaper_SetColor: String { return self._s[1263]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1264]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1265]! } + public var Chat_AttachmentLimitReached: String { return self._s[1266]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1267]! } + public var Contacts_NotRegisteredSection: String { return self._s[1268]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1268]!, self._r[1268]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1269]!, self._r[1269]!, [_1, _2, _3]) } - public var Paint_Clear: String { return self._s[1269]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[1270]! } - public var SocksProxySetup_Connecting: String { return self._s[1271]! } - public var ExplicitContent_AlertChannel: String { return self._s[1272]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[1273]! } - public var Conversation_Contact: String { return self._s[1274]! } - public var Login_CodeExpired: String { return self._s[1275]! } - public var Passport_DiscardMessageAction: String { return self._s[1276]! } - public var ChatList_Context_Unpin: String { return self._s[1277]! } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1278]! } + public var Paint_Clear: String { return self._s[1270]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[1271]! } + public var SocksProxySetup_Connecting: String { return self._s[1272]! } + public var ExplicitContent_AlertChannel: String { return self._s[1273]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[1274]! } + public var Conversation_Contact: String { return self._s[1275]! } + public var Login_CodeExpired: String { return self._s[1276]! } + public var Passport_DiscardMessageAction: String { return self._s[1277]! } + public var ChatList_Context_Unpin: String { return self._s[1278]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1279]! } public func VoiceOver_Chat_MusicFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1279]!, self._r[1279]!, [_0]) + return formatWithArgumentRanges(self._s[1280]!, self._r[1280]!, [_0]) } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[1280]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1281]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[1281]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1282]! } public func Group_EditAdmin_RankInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1282]!, self._r[1282]!, [_0]) + return formatWithArgumentRanges(self._s[1283]!, self._r[1283]!, [_0]) } - public var Month_ShortApril: String { return self._s[1283]! } - public var AuthSessions_CurrentSession: String { return self._s[1284]! } - public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1287]! } - public var Wallet_Navigation_Cancel: String { return self._s[1289]! } - public var WallpaperPreview_CropTopText: String { return self._s[1290]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1291]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1292]! } + public var Month_ShortApril: String { return self._s[1284]! } + public var AuthSessions_CurrentSession: String { return self._s[1285]! } + public var Chat_AttachmentMultipleFilesDisabled: String { return self._s[1288]! } + public var Wallet_Navigation_Cancel: String { return self._s[1290]! } + public var WallpaperPreview_CropTopText: String { return self._s[1291]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1292]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1293]! } public func Conversation_ScheduleMessage_SendOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1293]!, self._r[1293]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1294]!, self._r[1294]!, [_0, _1]) } - public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1294]! } - public var Channel_Setup_TypePrivate: String { return self._s[1296]! } - public var Forward_ChannelReadOnly: String { return self._s[1299]! } - public var PhotoEditor_CurvesBlue: String { return self._s[1300]! } - public var AddContact_SharedContactException: String { return self._s[1301]! } - public var UserInfo_BotPrivacy: String { return self._s[1303]! } - public var Wallet_CreateInvoice_Title: String { return self._s[1304]! } - public var Notification_PassportValueEmail: String { return self._s[1305]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[1306]! } - public var GroupPermission_NewTitle: String { return self._s[1307]! } - public var CallFeedback_ReasonDropped: String { return self._s[1308]! } - public var GroupInfo_Permissions_AddException: String { return self._s[1309]! } - public var Channel_SignMessages_Help: String { return self._s[1311]! } - public var Undo_ChatDeleted: String { return self._s[1313]! } - public var Conversation_ChatBackground: String { return self._s[1314]! } + public var Appearance_ThemePreview_Chat_2_Text: String { return self._s[1295]! } + public var Channel_Setup_TypePrivate: String { return self._s[1297]! } + public var Forward_ChannelReadOnly: String { return self._s[1300]! } + public var PhotoEditor_CurvesBlue: String { return self._s[1301]! } + public var AddContact_SharedContactException: String { return self._s[1302]! } + public var UserInfo_BotPrivacy: String { return self._s[1304]! } + public var Wallet_CreateInvoice_Title: String { return self._s[1305]! } + public var Notification_PassportValueEmail: String { return self._s[1306]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[1307]! } + public var GroupPermission_NewTitle: String { return self._s[1308]! } + public var CallFeedback_ReasonDropped: String { return self._s[1309]! } + public var GroupInfo_Permissions_AddException: String { return self._s[1310]! } + public var Channel_SignMessages_Help: String { return self._s[1312]! } + public var Undo_ChatDeleted: String { return self._s[1314]! } + public var Conversation_ChatBackground: String { return self._s[1315]! } public func Wallet_WordCheck_Text(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1315]!, self._r[1315]!, [_1, _2, _3]) - } - public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1316]!, self._r[1316]!, [_1, _2, _3]) } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1317]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1318]! } - public var Passport_Language_pt: String { return self._s[1319]! } - public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1320]! } - public var NotificationsSound_Popcorn: String { return self._s[1323]! } - public var AutoNightTheme_Disabled: String { return self._s[1324]! } - public var BlockedUsers_LeavePrefix: String { return self._s[1325]! } - public var WallpaperPreview_CustomColorTopText: String { return self._s[1326]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1327]! } - public var WallpaperSearch_ColorBlue: String { return self._s[1328]! } + public func PUSH_CHAT_MESSAGE_QUIZ(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1317]!, self._r[1317]!, [_1, _2, _3]) + } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1318]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1319]! } + public var Passport_Language_pt: String { return self._s[1320]! } + public var VoiceOver_Chat_YourVoiceMessage: String { return self._s[1321]! } + public var NotificationsSound_Popcorn: String { return self._s[1324]! } + public var AutoNightTheme_Disabled: String { return self._s[1325]! } + public var BlockedUsers_LeavePrefix: String { return self._s[1326]! } + public var WallpaperPreview_CustomColorTopText: String { return self._s[1327]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1328]! } + public var WallpaperSearch_ColorBlue: String { return self._s[1329]! } public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1329]!, self._r[1329]!, [_0]) + return formatWithArgumentRanges(self._s[1330]!, self._r[1330]!, [_0]) } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1330]! } - public var SocksProxySetup_UseForCalls: String { return self._s[1331]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[1333]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1331]! } + public var SocksProxySetup_UseForCalls: String { return self._s[1332]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[1334]! } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1334]!, self._r[1334]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1335]!, self._r[1335]!, ["\(_0)"]) } - public var SocksProxySetup_Hostname: String { return self._s[1337]! } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1338]! } - public var Compose_NewEncryptedChat: String { return self._s[1339]! } - public var Login_CodeFloodError: String { return self._s[1340]! } - public var Calls_TabTitle: String { return self._s[1341]! } - public var Privacy_ProfilePhoto: String { return self._s[1342]! } - public var Passport_Language_he: String { return self._s[1343]! } + public var SocksProxySetup_Hostname: String { return self._s[1338]! } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1339]! } + public var Compose_NewEncryptedChat: String { return self._s[1340]! } + public var Login_CodeFloodError: String { return self._s[1341]! } + public var Calls_TabTitle: String { return self._s[1342]! } + public var Privacy_ProfilePhoto: String { return self._s[1343]! } + public var Passport_Language_he: String { return self._s[1344]! } public func Conversation_SetReminder_RemindToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1344]!, self._r[1344]!, [_0]) + return formatWithArgumentRanges(self._s[1345]!, self._r[1345]!, [_0]) } - public var GroupPermission_Title: String { return self._s[1345]! } + public var GroupPermission_Title: String { return self._s[1346]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1346]!, self._r[1346]!, [_0]) + return formatWithArgumentRanges(self._s[1347]!, self._r[1347]!, [_0]) } - public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1347]! } - public var GroupPermission_NoChangeInfo: String { return self._s[1348]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[1349]! } - public var Tour_Text1: String { return self._s[1350]! } - public var Channel_EditAdmin_TransferOwnership: String { return self._s[1351]! } - public var Month_ShortFebruary: String { return self._s[1352]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1353]! } + public var Wallet_TransactionInfo_SenderHeader: String { return self._s[1348]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1349]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[1350]! } + public var Tour_Text1: String { return self._s[1351]! } + public var Channel_EditAdmin_TransferOwnership: String { return self._s[1352]! } + public var Month_ShortFebruary: String { return self._s[1353]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1354]! } public func Wallet_Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1354]!, self._r[1354]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1355]!, self._r[1355]!, [_1, _2, _3]) } - public var NotificationsSound_Glass: String { return self._s[1355]! } - public var Appearance_ThemeNightBlue: String { return self._s[1356]! } - public var CheckoutInfo_Pay: String { return self._s[1357]! } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1359]! } - public var Call_CallAgain: String { return self._s[1361]! } - public var AttachmentMenu_SendAsFile: String { return self._s[1362]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[1363]! } - public var Passport_InvalidPasswordError: String { return self._s[1364]! } - public var Watch_Message_Game: String { return self._s[1365]! } - public var Stickers_Install: String { return self._s[1366]! } - public var VoiceOver_Chat_Message: String { return self._s[1367]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1368]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[1370]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1371]! } - public var AuthSessions_OtherSessions: String { return self._s[1372]! } - public var Channel_Username_Help: String { return self._s[1373]! } - public var Camera_Title: String { return self._s[1374]! } - public var IntentsSettings_Title: String { return self._s[1375]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1377]! } - public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1378]! } - public var Channel_AdminLog_SendPolls: String { return self._s[1379]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1380]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1381]! } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1382]! } - public var ScheduledMessages_DeleteMany: String { return self._s[1383]! } - public var Conversation_RestrictedStickers: String { return self._s[1384]! } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[1386]! } - public var UserInfo_TelegramCall: String { return self._s[1388]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1389]! } - public var CreatePoll_OptionsHeader: String { return self._s[1390]! } - public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1391]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1392]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1393]! } - public var Theme_Colors_Proceed: String { return self._s[1394]! } - public var Passport_Identity_EditPersonalDetails: String { return self._s[1395]! } + public var NotificationsSound_Glass: String { return self._s[1356]! } + public var Appearance_ThemeNightBlue: String { return self._s[1357]! } + public var CheckoutInfo_Pay: String { return self._s[1358]! } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1360]! } + public var Call_CallAgain: String { return self._s[1362]! } + public var AttachmentMenu_SendAsFile: String { return self._s[1363]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[1364]! } + public var Passport_InvalidPasswordError: String { return self._s[1365]! } + public var Watch_Message_Game: String { return self._s[1366]! } + public var Stickers_Install: String { return self._s[1367]! } + public var VoiceOver_Chat_Message: String { return self._s[1368]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1369]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[1371]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1372]! } + public var AuthSessions_OtherSessions: String { return self._s[1373]! } + public var Channel_Username_Help: String { return self._s[1374]! } + public var Camera_Title: String { return self._s[1375]! } + public var IntentsSettings_Title: String { return self._s[1376]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1378]! } + public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1379]! } + public var Channel_AdminLog_SendPolls: String { return self._s[1380]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1381]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1382]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1383]! } + public var ScheduledMessages_DeleteMany: String { return self._s[1384]! } + public var Conversation_RestrictedStickers: String { return self._s[1385]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[1387]! } + public var UserInfo_TelegramCall: String { return self._s[1389]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1390]! } + public var CreatePoll_OptionsHeader: String { return self._s[1391]! } + public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1392]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1393]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1394]! } + public var Theme_Colors_Proceed: String { return self._s[1395]! } + public var Passport_Identity_EditPersonalDetails: String { return self._s[1396]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1396]!, self._r[1396]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1397]!, self._r[1397]!, [_1, _2, _3]) } - public var Wallet_Month_GenAugust: String { return self._s[1397]! } - public var Settings_SaveEditedPhotos: String { return self._s[1398]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[1399]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1400]! } - public var Conversation_MessageDialogRetry: String { return self._s[1401]! } - public var ChatList_Context_MarkAsUnread: String { return self._s[1402]! } - public var MessagePoll_SubmitVote: String { return self._s[1403]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[1404]! } - public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1405]! } - public var Group_Setup_TypeHeader: String { return self._s[1406]! } - public var Paint_RecentStickers: String { return self._s[1407]! } - public var PhotoEditor_GrainTool: String { return self._s[1408]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[1409]! } - public var EmptyGroupInfo_Line4: String { return self._s[1410]! } - public var Watch_AuthRequired: String { return self._s[1412]! } + public var Wallet_Month_GenAugust: String { return self._s[1398]! } + public var Settings_SaveEditedPhotos: String { return self._s[1399]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[1400]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1401]! } + public var Conversation_MessageDialogRetry: String { return self._s[1402]! } + public var ChatList_Context_MarkAsUnread: String { return self._s[1403]! } + public var MessagePoll_SubmitVote: String { return self._s[1404]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[1405]! } + public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1406]! } + public var Group_Setup_TypeHeader: String { return self._s[1407]! } + public var Paint_RecentStickers: String { return self._s[1408]! } + public var PhotoEditor_GrainTool: String { return self._s[1409]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[1410]! } + public var EmptyGroupInfo_Line4: String { return self._s[1411]! } + public var Watch_AuthRequired: String { return self._s[1413]! } public func Passport_Email_UseTelegramEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1413]!, self._r[1413]!, [_0]) + return formatWithArgumentRanges(self._s[1414]!, self._r[1414]!, [_0]) } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1414]! } - public var ChannelIntro_Text: String { return self._s[1415]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[1416]! } - public var GroupPermission_NoSendMedia: String { return self._s[1417]! } - public var Calls_AddTab: String { return self._s[1418]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[1419]! } - public var Channel_AdminLog_EmptyFilterText: String { return self._s[1420]! } - public var Conversation_WalletRequiredSetup: String { return self._s[1421]! } - public var Notification_MessageLifetime1d: String { return self._s[1422]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1423]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1424]! } - public var Passport_Identity_GenderFemale: String { return self._s[1425]! } - public var BlockedUsers_BlockTitle: String { return self._s[1426]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1415]! } + public var ChannelIntro_Text: String { return self._s[1416]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[1417]! } + public var GroupPermission_NoSendMedia: String { return self._s[1418]! } + public var Calls_AddTab: String { return self._s[1419]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[1420]! } + public var Channel_AdminLog_EmptyFilterText: String { return self._s[1421]! } + public var Conversation_WalletRequiredSetup: String { return self._s[1422]! } + public var Notification_MessageLifetime1d: String { return self._s[1423]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1424]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1425]! } + public var Passport_Identity_GenderFemale: String { return self._s[1426]! } + public var BlockedUsers_BlockTitle: String { return self._s[1427]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1427]!, self._r[1427]!, [_1]) + return formatWithArgumentRanges(self._s[1428]!, self._r[1428]!, [_1]) } - public var Weekday_Yesterday: String { return self._s[1428]! } - public var WallpaperSearch_ColorBlack: String { return self._s[1429]! } - public var Settings_Context_Logout: String { return self._s[1430]! } - public var Wallet_Info_UnknownTransaction: String { return self._s[1431]! } - public var ChatList_ArchiveAction: String { return self._s[1432]! } - public var AutoNightTheme_Scheduled: String { return self._s[1433]! } - public var TwoFactorSetup_Email_SkipAction: String { return self._s[1434]! } - public var Settings_Devices: String { return self._s[1435]! } - public var ContactInfo_Note: String { return self._s[1436]! } + public var Weekday_Yesterday: String { return self._s[1429]! } + public var WallpaperSearch_ColorBlack: String { return self._s[1430]! } + public var Settings_Context_Logout: String { return self._s[1431]! } + public var Wallet_Info_UnknownTransaction: String { return self._s[1432]! } + public var ChatList_ArchiveAction: String { return self._s[1433]! } + public var AutoNightTheme_Scheduled: String { return self._s[1434]! } + public var TwoFactorSetup_Email_SkipAction: String { return self._s[1435]! } + public var Settings_Devices: String { return self._s[1436]! } + public var ContactInfo_Note: String { return self._s[1437]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1437]!, self._r[1437]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[1438]!, self._r[1438]!, [_1, _2, _3, _4, _5, _6]) } - public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1438]! } - public var Wallet_Receive_CreateInvoice: String { return self._s[1439]! } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1440]! } - public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[1441]! } + public var EditTheme_ThemeTemplateAlertTitle: String { return self._s[1439]! } + public var Wallet_Receive_CreateInvoice: String { return self._s[1440]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1441]! } + public var Theme_Colors_ColorWallpaperWarningProceed: String { return self._s[1442]! } public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1442]!, self._r[1442]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1443]!, self._r[1443]!, [_1, _2]) } - public var CreatePoll_Create: String { return self._s[1443]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1444]! } + public var CreatePoll_Create: String { return self._s[1444]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1445]! } public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1445]!, self._r[1445]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1446]!, self._r[1446]!, [_1, _2]) } - public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1446]! } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1447]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[1449]! } + public var ScheduledMessages_ClearAllConfirmation: String { return self._s[1447]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1448]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[1450]! } public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1450]!, self._r[1450]!, [_1]) + return formatWithArgumentRanges(self._s[1451]!, self._r[1451]!, [_1]) } - public var Preview_OpenInInstagram: String { return self._s[1451]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1452]! } + public var Preview_OpenInInstagram: String { return self._s[1452]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1453]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1453]!, self._r[1453]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1454]!, self._r[1454]!, [_1, _2, _3]) } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1454]!, self._r[1454]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1455]!, self._r[1455]!, [_1, _2]) } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1455]! } - public var ArchivedChats_IntroText3: String { return self._s[1456]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[1457]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1458]! } - public var Wallet_Month_GenSeptember: String { return self._s[1459]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1460]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1456]! } + public var ArchivedChats_IntroText3: String { return self._s[1457]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[1458]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1459]! } + public var Wallet_Month_GenSeptember: String { return self._s[1460]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1461]! } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1461]!, self._r[1461]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1462]!, self._r[1462]!, [_1, _2, _3]) } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1463]! } - public var FastTwoStepSetup_HintSection: String { return self._s[1464]! } - public var Wallpaper_PhotoLibrary: String { return self._s[1465]! } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1466]! } - public var Gif_NoGifsFound: String { return self._s[1467]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[1468]! } - public var VoiceOver_MessageContextDelete: String { return self._s[1469]! } - public var EditTheme_Preview: String { return self._s[1470]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1464]! } + public var FastTwoStepSetup_HintSection: String { return self._s[1465]! } + public var Wallpaper_PhotoLibrary: String { return self._s[1466]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1467]! } + public var Gif_NoGifsFound: String { return self._s[1468]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[1469]! } + public var VoiceOver_MessageContextDelete: String { return self._s[1470]! } + public var EditTheme_Preview: String { return self._s[1471]! } public func ClearCache_StorageTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1471]!, self._r[1471]!, [_0]) + return formatWithArgumentRanges(self._s[1472]!, self._r[1472]!, [_0]) } - public var GroupInfo_ActionPromote: String { return self._s[1472]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[1473]! } - public var GroupInfo_Permissions_Title: String { return self._s[1474]! } - public var Permissions_ContactsText_v0: String { return self._s[1475]! } - public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1476]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1477]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1480]! } - public var Passport_FieldEmailHelp: String { return self._s[1481]! } + public var GroupInfo_ActionPromote: String { return self._s[1473]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[1474]! } + public var GroupInfo_Permissions_Title: String { return self._s[1475]! } + public var Permissions_ContactsText_v0: String { return self._s[1476]! } + public var PrivacyPhoneNumberSettings_CustomDisabledHelp: String { return self._s[1477]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1478]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1481]! } + public var Passport_FieldEmailHelp: String { return self._s[1482]! } public func Activity_RemindAboutUser(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1482]!, self._r[1482]!, [_0]) + return formatWithArgumentRanges(self._s[1483]!, self._r[1483]!, [_0]) } - public var Passport_Identity_GenderPlaceholder: String { return self._s[1483]! } - public var Weekday_ShortSaturday: String { return self._s[1484]! } - public var ContactInfo_PhoneLabelMain: String { return self._s[1485]! } - public var Watch_Conversation_UserInfo: String { return self._s[1486]! } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1487]! } - public var GroupPermission_PermissionDisabledByDefault: String { return self._s[1488]! } - public var PrivacyLastSeenSettings_Title: String { return self._s[1489]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[1490]! } - public var PhotoEditor_VignetteTool: String { return self._s[1491]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1492]! } - public var Passport_Language_et: String { return self._s[1493]! } - public var AppUpgrade_Running: String { return self._s[1494]! } - public var Channel_DiscussionGroup_Info: String { return self._s[1496]! } - public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1497]! } - public var Passport_Language_bg: String { return self._s[1498]! } - public var Stickers_NoStickersFound: String { return self._s[1500]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1484]! } + public var Weekday_ShortSaturday: String { return self._s[1485]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[1486]! } + public var Watch_Conversation_UserInfo: String { return self._s[1487]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1488]! } + public var GroupPermission_PermissionDisabledByDefault: String { return self._s[1489]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[1490]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[1491]! } + public var PhotoEditor_VignetteTool: String { return self._s[1492]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1493]! } + public var Passport_Language_et: String { return self._s[1494]! } + public var AppUpgrade_Running: String { return self._s[1495]! } + public var Channel_DiscussionGroup_Info: String { return self._s[1497]! } + public var EditTheme_Create_Preview_IncomingReplyName: String { return self._s[1498]! } + public var Passport_Language_bg: String { return self._s[1499]! } + public var Stickers_NoStickersFound: String { return self._s[1501]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1502]!, self._r[1502]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1503]!, self._r[1503]!, [_1, _2]) } public func VoiceOver_Chat_ContactFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1503]!, self._r[1503]!, [_0]) + return formatWithArgumentRanges(self._s[1504]!, self._r[1504]!, [_0]) } - public var Wallet_Month_GenJuly: String { return self._s[1504]! } - public var Wallet_Receive_AddressHeader: String { return self._s[1505]! } - public var Wallet_Send_AmountText: String { return self._s[1506]! } - public var Settings_About: String { return self._s[1507]! } + public var Wallet_Month_GenJuly: String { return self._s[1505]! } + public var Wallet_Receive_AddressHeader: String { return self._s[1506]! } + public var Wallet_Send_AmountText: String { return self._s[1507]! } + public var Settings_About: String { return self._s[1508]! } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1508]!, self._r[1508]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1509]!, self._r[1509]!, [_0, _1, _2]) } - public var ChatList_Context_MarkAsRead: String { return self._s[1510]! } - public var KeyCommand_NewMessage: String { return self._s[1511]! } - public var Group_ErrorAddBlocked: String { return self._s[1512]! } + public var ChatList_Context_MarkAsRead: String { return self._s[1511]! } + public var KeyCommand_NewMessage: String { return self._s[1512]! } + public var Group_ErrorAddBlocked: String { return self._s[1513]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1513]!, self._r[1513]!, [_0]) + return formatWithArgumentRanges(self._s[1514]!, self._r[1514]!, [_0]) } - public var Map_LocationTitle: String { return self._s[1514]! } - public var ReportGroupLocation_Title: String { return self._s[1515]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1516]! } - public var Cache_ClearProgress: String { return self._s[1517]! } + public var Map_LocationTitle: String { return self._s[1515]! } + public var ReportGroupLocation_Title: String { return self._s[1516]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1517]! } + public var Cache_ClearProgress: String { return self._s[1518]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1518]!, self._r[1518]!, [_0]) + return formatWithArgumentRanges(self._s[1519]!, self._r[1519]!, [_0]) } - public var GroupRemoved_AddToGroup: String { return self._s[1519]! } - public var Passport_UpdateRequiredError: String { return self._s[1520]! } - public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1521]! } + public var GroupRemoved_AddToGroup: String { return self._s[1520]! } + public var Passport_UpdateRequiredError: String { return self._s[1521]! } + public var Wallet_SecureStorageNotAvailable_Text: String { return self._s[1522]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1522]!, self._r[1522]!, [_1]) + return formatWithArgumentRanges(self._s[1523]!, self._r[1523]!, [_1]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[1524]! } - public var Passport_Identity_MainPageHelp: String { return self._s[1525]! } - public var Conversation_StatusKickedFromGroup: String { return self._s[1526]! } - public var Passport_Language_ka: String { return self._s[1527]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[1525]! } + public var Passport_Identity_MainPageHelp: String { return self._s[1526]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[1527]! } + public var Passport_Language_ka: String { return self._s[1528]! } public func Wallet_Time_PreciseDate_m12(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1528]!, self._r[1528]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1529]!, self._r[1529]!, [_1, _2, _3]) } - public var Call_Decline: String { return self._s[1529]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[1530]! } - public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1533]! } + public var Call_Decline: String { return self._s[1530]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[1531]! } + public var TwoFactorSetup_Email_SkipConfirmationText: String { return self._s[1534]! } public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1534]!, self._r[1534]!, [_0]) + return formatWithArgumentRanges(self._s[1535]!, self._r[1535]!, [_0]) } - public var CallFeedback_Send: String { return self._s[1535]! } - public var EditTheme_EditTitle: String { return self._s[1536]! } + public var CallFeedback_Send: String { return self._s[1536]! } + public var EditTheme_EditTitle: String { return self._s[1537]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1537]!, self._r[1537]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1538]!, self._r[1538]!, [_1, _2]) } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1538]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1539]! } public func Wallet_Updated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1540]!, self._r[1540]!, [_0]) + return formatWithArgumentRanges(self._s[1541]!, self._r[1541]!, [_0]) } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1541]! } - public var Passport_DeletePassport: String { return self._s[1542]! } - public var Appearance_AppIconFilled: String { return self._s[1543]! } - public var Privacy_Calls_P2PAlways: String { return self._s[1544]! } - public var Month_ShortDecember: String { return self._s[1545]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1547]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1542]! } + public var Passport_DeletePassport: String { return self._s[1543]! } + public var Appearance_AppIconFilled: String { return self._s[1544]! } + public var Privacy_Calls_P2PAlways: String { return self._s[1545]! } + public var Month_ShortDecember: String { return self._s[1546]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1548]! } public func Contacts_AccessDeniedHelpLandscape(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1548]!, self._r[1548]!, [_0]) + return formatWithArgumentRanges(self._s[1549]!, self._r[1549]!, [_0]) } - public var Channel_Stickers_Searching: String { return self._s[1549]! } - public var Conversation_EncryptedDescription1: String { return self._s[1550]! } - public var Conversation_EncryptedDescription2: String { return self._s[1551]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[1552]! } - public var Conversation_EncryptedDescription3: String { return self._s[1554]! } - public var PhotoEditor_SharpenTool: String { return self._s[1555]! } - public var Wallet_Configuration_Title: String { return self._s[1556]! } + public var Channel_Stickers_Searching: String { return self._s[1550]! } + public var Conversation_EncryptedDescription1: String { return self._s[1551]! } + public var Conversation_EncryptedDescription2: String { return self._s[1552]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[1553]! } + public var Conversation_EncryptedDescription3: String { return self._s[1555]! } + public var PhotoEditor_SharpenTool: String { return self._s[1556]! } + public var Wallet_Configuration_Title: String { return self._s[1557]! } public func Conversation_AddNameToContacts(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1557]!, self._r[1557]!, [_0]) + return formatWithArgumentRanges(self._s[1558]!, self._r[1558]!, [_0]) } - public var Conversation_EncryptedDescription4: String { return self._s[1559]! } - public var Channel_Members_AddMembers: String { return self._s[1560]! } - public var Wallpaper_Search: String { return self._s[1561]! } - public var Weekday_Friday: String { return self._s[1563]! } - public var Privacy_ContactsSync: String { return self._s[1564]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1565]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1566]! } + public var Conversation_EncryptedDescription4: String { return self._s[1560]! } + public var Channel_Members_AddMembers: String { return self._s[1561]! } + public var Wallpaper_Search: String { return self._s[1562]! } + public var Weekday_Friday: String { return self._s[1564]! } + public var Privacy_ContactsSync: String { return self._s[1565]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1566]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1567]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1567]!, self._r[1567]!, [_0]) + return formatWithArgumentRanges(self._s[1568]!, self._r[1568]!, [_0]) } - public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[1568]! } - public var GroupInfo_Permissions_Removed: String { return self._s[1569]! } - public var ScheduledMessages_ScheduledOnline: String { return self._s[1570]! } - public var Passport_Identity_GenderMale: String { return self._s[1571]! } + public var Wallet_Configuration_BlockchainIdHeader: String { return self._s[1569]! } + public var GroupInfo_Permissions_Removed: String { return self._s[1570]! } + public var ScheduledMessages_ScheduledOnline: String { return self._s[1571]! } + public var Passport_Identity_GenderMale: String { return self._s[1572]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1572]!, self._r[1572]!, [_0]) + return formatWithArgumentRanges(self._s[1573]!, self._r[1573]!, [_0]) } - public var Notifications_PermissionsKeepDisabled: String { return self._s[1573]! } - public var Conversation_JumpToDate: String { return self._s[1574]! } - public var Contacts_GlobalSearch: String { return self._s[1575]! } - public var AutoDownloadSettings_ResetHelp: String { return self._s[1576]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[1577]! } - public var Profile_MessageLifetime1d: String { return self._s[1578]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[1574]! } + public var Conversation_JumpToDate: String { return self._s[1575]! } + public var Contacts_GlobalSearch: String { return self._s[1576]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[1577]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[1578]! } + public var Profile_MessageLifetime1d: String { return self._s[1579]! } public func MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1579]!, self._r[1579]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1580]!, self._r[1580]!, [_1, _2]) } - public var StickerPack_BuiltinPackName: String { return self._s[1582]! } + public var StickerPack_BuiltinPackName: String { return self._s[1583]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1583]!, self._r[1583]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1584]!, self._r[1584]!, [_1, _2]) } - public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1584]! } - public var Passport_InfoTitle: String { return self._s[1586]! } - public var Notifications_PermissionsUnreachableText: String { return self._s[1587]! } + public var VoiceOver_Chat_RecordModeVoiceMessageInfo: String { return self._s[1585]! } + public var Passport_InfoTitle: String { return self._s[1587]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[1588]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1591]!, self._r[1591]!, [_0]) + return formatWithArgumentRanges(self._s[1592]!, self._r[1592]!, [_0]) } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1592]!, self._r[1592]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1593]!, self._r[1593]!, [_1, _2]) } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1593]! } - public var Profile_BotInfo: String { return self._s[1594]! } - public var Watch_Compose_CreateMessage: String { return self._s[1595]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1596]! } - public var Month_ShortNovember: String { return self._s[1597]! } - public var Conversation_ScamWarning: String { return self._s[1598]! } - public var Wallpaper_SetCustomBackground: String { return self._s[1599]! } - public var Appearance_TextSize_Title: String { return self._s[1600]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1601]! } - public var NotificationsSound_Chime: String { return self._s[1602]! } - public var Passport_Language_ko: String { return self._s[1604]! } - public var InviteText_URL: String { return self._s[1605]! } - public var TextFormat_Monospace: String { return self._s[1606]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1594]! } + public var Profile_BotInfo: String { return self._s[1595]! } + public var Watch_Compose_CreateMessage: String { return self._s[1596]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1597]! } + public var Month_ShortNovember: String { return self._s[1598]! } + public var Conversation_ScamWarning: String { return self._s[1599]! } + public var Wallpaper_SetCustomBackground: String { return self._s[1600]! } + public var Appearance_TextSize_Title: String { return self._s[1601]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1602]! } + public var NotificationsSound_Chime: String { return self._s[1603]! } + public var Passport_Language_ko: String { return self._s[1605]! } + public var InviteText_URL: String { return self._s[1606]! } + public var TextFormat_Monospace: String { return self._s[1607]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1607]!, self._r[1607]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1608]!, self._r[1608]!, [_1, _2, _3]) } - public var EditTheme_Edit_BottomInfo: String { return self._s[1608]! } + public var EditTheme_Edit_BottomInfo: String { return self._s[1609]! } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1609]!, self._r[1609]!, [_0]) + return formatWithArgumentRanges(self._s[1610]!, self._r[1610]!, [_0]) } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1610]!, self._r[1610]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1611]!, self._r[1611]!, [_1, _2]) } - public var Wallet_Words_Title: String { return self._s[1611]! } - public var Wallet_Month_ShortMay: String { return self._s[1612]! } - public var EditTheme_CreateTitle: String { return self._s[1614]! } - public var Passport_InfoLearnMore: String { return self._s[1615]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[1616]! } - public var Passport_Identity_AddIdentityCard: String { return self._s[1617]! } - public var Your_card_has_expired: String { return self._s[1618]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[1619]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1620]! } - public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[1624]! } - public var Conversation_Report: String { return self._s[1626]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1627]! } - public var Notification_MessageLifetime1m: String { return self._s[1628]! } - public var Privacy_ContactsTitle: String { return self._s[1629]! } - public var Conversation_ShareMyContactInfo: String { return self._s[1630]! } - public var Wallet_WordCheck_Title: String { return self._s[1631]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1632]! } - public var Channel_Members_Title: String { return self._s[1633]! } - public var Map_OpenInWaze: String { return self._s[1634]! } - public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1635]! } - public var Login_PhoneBannedError: String { return self._s[1636]! } + public var Wallet_Words_Title: String { return self._s[1612]! } + public var Wallet_Month_ShortMay: String { return self._s[1613]! } + public var EditTheme_CreateTitle: String { return self._s[1615]! } + public var Passport_InfoLearnMore: String { return self._s[1616]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[1617]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[1618]! } + public var Your_card_has_expired: String { return self._s[1619]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[1620]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1621]! } + public var TwoFactorSetup_EmailVerification_ResendAction: String { return self._s[1625]! } + public var Conversation_Report: String { return self._s[1627]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1628]! } + public var Notification_MessageLifetime1m: String { return self._s[1629]! } + public var Privacy_ContactsTitle: String { return self._s[1630]! } + public var Conversation_ShareMyContactInfo: String { return self._s[1631]! } + public var Wallet_WordCheck_Title: String { return self._s[1632]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1633]! } + public var Channel_Members_Title: String { return self._s[1634]! } + public var Map_OpenInWaze: String { return self._s[1635]! } + public var Appearance_RemoveThemeColorConfirmation: String { return self._s[1636]! } + public var Login_PhoneBannedError: String { return self._s[1637]! } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1637]!, self._r[1637]!, [_0]) + return formatWithArgumentRanges(self._s[1638]!, self._r[1638]!, [_0]) } - public var IntentsSettings_MainAccount: String { return self._s[1638]! } - public var Group_Management_AddModeratorHelp: String { return self._s[1639]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[1640]! } - public var Common_OK: String { return self._s[1641]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1642]! } - public var Wallet_Words_NotDoneResponse: String { return self._s[1643]! } - public var Cache_Music: String { return self._s[1644]! } - public var Wallet_Configuration_SourceURL: String { return self._s[1645]! } - public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1646]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1648]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1649]! } + public var IntentsSettings_MainAccount: String { return self._s[1639]! } + public var Group_Management_AddModeratorHelp: String { return self._s[1640]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[1641]! } + public var Common_OK: String { return self._s[1642]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1643]! } + public var Wallet_Words_NotDoneResponse: String { return self._s[1644]! } + public var Cache_Music: String { return self._s[1645]! } + public var Wallet_Configuration_SourceURL: String { return self._s[1646]! } + public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1647]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1649]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1650]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1650]!, self._r[1650]!, [_1]) + return formatWithArgumentRanges(self._s[1651]!, self._r[1651]!, [_1]) } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1651]!, self._r[1651]!, [_0]) + return formatWithArgumentRanges(self._s[1652]!, self._r[1652]!, [_0]) } - public var TwoFactorSetup_Done_Action: String { return self._s[1652]! } + public var TwoFactorSetup_Done_Action: String { return self._s[1653]! } public func VoiceOver_Chat_ContactOrganization(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1653]!, self._r[1653]!, [_0]) + return formatWithArgumentRanges(self._s[1654]!, self._r[1654]!, [_0]) } - public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1654]! } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1656]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[1657]! } - public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1659]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1660]! } - public var State_ConnectingToProxyInfo: String { return self._s[1661]! } - public var Conversation_SwipeToReplyHintTitle: String { return self._s[1662]! } - public var Message_VideoMessage: String { return self._s[1664]! } - public var ChannelInfo_DeleteChannel: String { return self._s[1665]! } - public var ContactInfo_PhoneLabelOther: String { return self._s[1666]! } - public var Channel_EditAdmin_CannotEdit: String { return self._s[1667]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[1668]! } + public var Wallet_Send_ErrorNotEnoughFundsText: String { return self._s[1655]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1657]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[1658]! } + public var Wallet_Receive_CreateInvoiceInfo: String { return self._s[1660]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1661]! } + public var State_ConnectingToProxyInfo: String { return self._s[1662]! } + public var Conversation_SwipeToReplyHintTitle: String { return self._s[1663]! } + public var Message_VideoMessage: String { return self._s[1665]! } + public var ChannelInfo_DeleteChannel: String { return self._s[1666]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[1667]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[1668]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[1669]! } public func Wallet_Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1669]!, self._r[1669]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1670]!, self._r[1670]!, [_1, _2, _3]) } - public var WallpaperPreview_SwipeBottomText: String { return self._s[1670]! } - public var Activity_RecordingAudio: String { return self._s[1671]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[1672]! } - public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1673]! } - public var Wallet_Info_Address: String { return self._s[1674]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[1671]! } + public var Activity_RecordingAudio: String { return self._s[1672]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[1673]! } + public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1674]! } + public var Wallet_Info_Address: String { return self._s[1675]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1676]!, self._r[1676]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1677]!, self._r[1677]!, [_0, _1]) } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1680]!, self._r[1680]!, [_0]) + return formatWithArgumentRanges(self._s[1681]!, self._r[1681]!, [_0]) } - public var Conversation_ApplyLocalization: String { return self._s[1681]! } - public var TwoFactorSetup_Intro_Action: String { return self._s[1682]! } - public var UserInfo_AddPhone: String { return self._s[1683]! } - public var Map_ShareLiveLocationHelp: String { return self._s[1684]! } + public var Conversation_ApplyLocalization: String { return self._s[1682]! } + public var TwoFactorSetup_Intro_Action: String { return self._s[1683]! } + public var UserInfo_AddPhone: String { return self._s[1684]! } + public var Map_ShareLiveLocationHelp: String { return self._s[1685]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1685]!, self._r[1685]!, [_0]) + return formatWithArgumentRanges(self._s[1686]!, self._r[1686]!, [_0]) } - public var Passport_Scans: String { return self._s[1687]! } - public var BlockedUsers_Unblock: String { return self._s[1688]! } + public var Passport_Scans: String { return self._s[1688]! } + public var BlockedUsers_Unblock: String { return self._s[1689]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1689]!, self._r[1689]!, [_1]) + return formatWithArgumentRanges(self._s[1690]!, self._r[1690]!, [_1]) } - public var Channel_Management_LabelCreator: String { return self._s[1690]! } - public var Conversation_ReportSpamAndLeave: String { return self._s[1691]! } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1692]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1693]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1694]! } + public var Channel_Management_LabelCreator: String { return self._s[1691]! } + public var Conversation_ReportSpamAndLeave: String { return self._s[1692]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1693]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1694]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1695]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1695]!, self._r[1695]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1696]!, self._r[1696]!, [_0, _1, _2]) } - public var Login_PhoneNumberHelp: String { return self._s[1696]! } - public var LastSeen_ALongTimeAgo: String { return self._s[1697]! } - public var Channel_AdminLog_CanPinMessages: String { return self._s[1698]! } - public var ChannelIntro_CreateChannel: String { return self._s[1699]! } - public var Conversation_UnreadMessages: String { return self._s[1700]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1701]! } - public var Channel_AdminLog_EmptyText: String { return self._s[1702]! } - public var Theme_Context_Apply: String { return self._s[1703]! } - public var Notification_GroupActivated: String { return self._s[1704]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[1705]! } - public var Wallet_Intro_CreateWallet: String { return self._s[1706]! } + public var Login_PhoneNumberHelp: String { return self._s[1697]! } + public var LastSeen_ALongTimeAgo: String { return self._s[1698]! } + public var Channel_AdminLog_CanPinMessages: String { return self._s[1699]! } + public var ChannelIntro_CreateChannel: String { return self._s[1700]! } + public var Conversation_UnreadMessages: String { return self._s[1701]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1702]! } + public var Channel_AdminLog_EmptyText: String { return self._s[1703]! } + public var Theme_Context_Apply: String { return self._s[1704]! } + public var Notification_GroupActivated: String { return self._s[1705]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[1706]! } + public var Wallet_Intro_CreateWallet: String { return self._s[1707]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1707]!, self._r[1707]!, [_0]) + return formatWithArgumentRanges(self._s[1708]!, self._r[1708]!, [_0]) } public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1708]!, self._r[1708]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1709]!, self._r[1709]!, [_0, _1]) } - public var GroupInfo_ConvertToSupergroup: String { return self._s[1710]! } + public var GroupInfo_ConvertToSupergroup: String { return self._s[1711]! } public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1711]!, self._r[1711]!, [_0]) + return formatWithArgumentRanges(self._s[1712]!, self._r[1712]!, [_0]) } - public var Undo_DeletedChannel: String { return self._s[1712]! } - public var CallFeedback_AddComment: String { return self._s[1713]! } + public var Undo_DeletedChannel: String { return self._s[1713]! } + public var CallFeedback_AddComment: String { return self._s[1714]! } public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1714]!, self._r[1714]!, [_0]) + return formatWithArgumentRanges(self._s[1715]!, self._r[1715]!, [_0]) } - public var Document_TargetConfirmationFormat: String { return self._s[1715]! } + public var Document_TargetConfirmationFormat: String { return self._s[1716]! } public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1716]!, self._r[1716]!, [_0]) + return formatWithArgumentRanges(self._s[1717]!, self._r[1717]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[1717]! } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[1718]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1718]!, self._r[1718]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[1719]!, self._r[1719]!, [_1, _2, _3, _4]) } - public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1719]! } - public var Theme_ErrorNotFound: String { return self._s[1720]! } - public var Contacts_SortByName: String { return self._s[1721]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1722]! } + public var Wallet_SecureStorageChanged_PasscodeText: String { return self._s[1720]! } + public var Theme_ErrorNotFound: String { return self._s[1721]! } + public var Contacts_SortByName: String { return self._s[1722]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1723]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1724]!, self._r[1724]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1725]!, self._r[1725]!, [_1, _2, _3]) } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1725]! } - public var ScheduledMessages_EditTime: String { return self._s[1726]! } - public var Conversation_ClearSelfHistory: String { return self._s[1727]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1728]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[1729]! } - public var Stickers_SuggestNone: String { return self._s[1730]! } - public var ChatSettings_Cache: String { return self._s[1731]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1732]! } - public var Media_ShareThisPhoto: String { return self._s[1733]! } - public var Chat_SlowmodeTooltipPending: String { return self._s[1734]! } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[1735]! } - public var Conversation_ContextMenuCopyLink: String { return self._s[1736]! } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1737]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1738]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1739]! } - public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[1740]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1726]! } + public var ScheduledMessages_EditTime: String { return self._s[1727]! } + public var Conversation_ClearSelfHistory: String { return self._s[1728]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1729]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[1730]! } + public var Stickers_SuggestNone: String { return self._s[1731]! } + public var ChatSettings_Cache: String { return self._s[1732]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1733]! } + public var Media_ShareThisPhoto: String { return self._s[1734]! } + public var Chat_SlowmodeTooltipPending: String { return self._s[1735]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[1736]! } + public var Conversation_ContextMenuCopyLink: String { return self._s[1737]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1738]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1739]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1740]! } + public var Appearance_ThemePreview_Chat_6_Text: String { return self._s[1741]! } public func Wallet_SecureStorageReset_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1741]!, self._r[1741]!, [_0]) + return formatWithArgumentRanges(self._s[1742]!, self._r[1742]!, [_0]) } - public var Permissions_CellularDataTitle_v0: String { return self._s[1742]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1744]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1745]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[1746]! } - public var Map_OpenIn: String { return self._s[1747]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[1743]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1745]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1746]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[1747]! } + public var Map_OpenIn: String { return self._s[1748]! } public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1750]!, self._r[1750]!, [_1]) + return formatWithArgumentRanges(self._s[1751]!, self._r[1751]!, [_1]) } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1751]!, self._r[1751]!, [_0]) + return formatWithArgumentRanges(self._s[1752]!, self._r[1752]!, [_0]) } - public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1752]! } - public var MessagePoll_LabelClosed: String { return self._s[1753]! } - public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1755]! } - public var Wallet_Send_SendAnyway: String { return self._s[1756]! } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1757]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[1758]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1759]! } - public var Map_SetThisPlace: String { return self._s[1760]! } - public var Login_SelectCountry_Title: String { return self._s[1761]! } - public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1762]! } + public var GroupInfo_Permissions_SlowmodeHeader: String { return self._s[1753]! } + public var MessagePoll_LabelClosed: String { return self._s[1754]! } + public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1756]! } + public var Wallet_Send_SendAnyway: String { return self._s[1757]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1758]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[1759]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1760]! } + public var Map_SetThisPlace: String { return self._s[1761]! } + public var Login_SelectCountry_Title: String { return self._s[1762]! } + public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1763]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1763]!, self._r[1763]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1764]!, self._r[1764]!, [_1, _2]) } - public var Channel_AdminLog_ChangeInfo: String { return self._s[1764]! } - public var Watch_Suggestion_BRB: String { return self._s[1765]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[1766]! } - public var Contacts_PermissionsTitle: String { return self._s[1767]! } - public var Conversation_RestrictedInline: String { return self._s[1768]! } - public var Appearance_RemoveThemeColor: String { return self._s[1770]! } - public var StickerPack_ViewPack: String { return self._s[1771]! } - public var Wallet_UnknownError: String { return self._s[1772]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[1765]! } + public var Watch_Suggestion_BRB: String { return self._s[1766]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[1767]! } + public var Contacts_PermissionsTitle: String { return self._s[1768]! } + public var Conversation_RestrictedInline: String { return self._s[1769]! } + public var Appearance_RemoveThemeColor: String { return self._s[1771]! } + public var StickerPack_ViewPack: String { return self._s[1772]! } + public var Wallet_UnknownError: String { return self._s[1773]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1773]!, self._r[1773]!, [_0]) + return formatWithArgumentRanges(self._s[1774]!, self._r[1774]!, [_0]) } - public var Compose_NewChannel: String { return self._s[1775]! } - public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1778]! } - public var MessagePoll_LabelQuiz: String { return self._s[1780]! } - public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1781]! } - public var Channel_Info_Stickers: String { return self._s[1782]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[1783]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1784]! } - public var Passport_DeletePersonalDetails: String { return self._s[1785]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[1786]! } - public var Channel_DiscussionGroupInfo: String { return self._s[1787]! } - public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1788]! } - public var Conversation_SearchNoResults: String { return self._s[1791]! } - public var Wallet_Configuration_ApplyErrorTextURLInvalid: String { return self._s[1792]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1793]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1794]! } - public var Login_Code: String { return self._s[1795]! } - public var EditTheme_Create_BottomInfo: String { return self._s[1796]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[1797]! } - public var Weekday_ShortThursday: String { return self._s[1798]! } - public var Resolve_ErrorNotFound: String { return self._s[1800]! } - public var LastSeen_Offline: String { return self._s[1801]! } - public var PeopleNearby_NoMembers: String { return self._s[1802]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[1803]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1804]! } - public var GroupInfo_Title: String { return self._s[1806]! } - public var NotificationsSound_Note: String { return self._s[1807]! } - public var Conversation_EditingMessagePanelTitle: String { return self._s[1808]! } - public var Watch_Message_Poll: String { return self._s[1809]! } - public var Privacy_Calls: String { return self._s[1810]! } + public var Compose_NewChannel: String { return self._s[1776]! } + public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1779]! } + public var MessagePoll_LabelQuiz: String { return self._s[1781]! } + public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1782]! } + public var Channel_Info_Stickers: String { return self._s[1783]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[1784]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1785]! } + public var Passport_DeletePersonalDetails: String { return self._s[1786]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[1787]! } + public var Channel_DiscussionGroupInfo: String { return self._s[1788]! } + public var Group_EditAdmin_RankOwnerPlaceholder: String { return self._s[1789]! } + public var Conversation_SearchNoResults: String { return self._s[1792]! } + public var Wallet_Configuration_ApplyErrorTextURLInvalid: String { return self._s[1793]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1794]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1795]! } + public var Login_Code: String { return self._s[1796]! } + public var EditTheme_Create_BottomInfo: String { return self._s[1797]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[1798]! } + public var Weekday_ShortThursday: String { return self._s[1799]! } + public var Resolve_ErrorNotFound: String { return self._s[1801]! } + public var LastSeen_Offline: String { return self._s[1802]! } + public var PeopleNearby_NoMembers: String { return self._s[1803]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[1804]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1805]! } + public var GroupInfo_Title: String { return self._s[1807]! } + public var NotificationsSound_Note: String { return self._s[1808]! } + public var Conversation_EditingMessagePanelTitle: String { return self._s[1809]! } + public var Watch_Message_Poll: String { return self._s[1810]! } + public var Privacy_Calls: String { return self._s[1811]! } public func Channel_AdminLog_MessageRankUsername(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1811]!, self._r[1811]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1812]!, self._r[1812]!, [_1, _2, _3]) } - public var Month_ShortAugust: String { return self._s[1812]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[1813]! } - public var Notifications_Reset: String { return self._s[1814]! } - public var Conversation_Pin: String { return self._s[1815]! } - public var Passport_Language_lv: String { return self._s[1816]! } - public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1817]! } - public var BlockedUsers_Info: String { return self._s[1818]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1820]! } - public var Watch_Conversation_Unblock: String { return self._s[1822]! } + public var Month_ShortAugust: String { return self._s[1813]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[1814]! } + public var Notifications_Reset: String { return self._s[1815]! } + public var Conversation_Pin: String { return self._s[1816]! } + public var Passport_Language_lv: String { return self._s[1817]! } + public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1818]! } + public var BlockedUsers_Info: String { return self._s[1819]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1821]! } + public var Watch_Conversation_Unblock: String { return self._s[1823]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1823]!, self._r[1823]!, [_0]) + return formatWithArgumentRanges(self._s[1824]!, self._r[1824]!, [_0]) } - public var CloudStorage_Title: String { return self._s[1824]! } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1825]! } + public var CloudStorage_Title: String { return self._s[1825]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1826]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1826]!, self._r[1826]!, [_0]) + return formatWithArgumentRanges(self._s[1827]!, self._r[1827]!, [_0]) } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1827]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[1828]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1829]! } - public var Passport_Address_EditBankStatement: String { return self._s[1830]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1828]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[1829]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1830]! } + public var Passport_Address_EditBankStatement: String { return self._s[1831]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1831]!, self._r[1831]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1832]!, self._r[1832]!, [_1, _2]) } - public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1832]! } - public var ShareMenu_Comment: String { return self._s[1833]! } - public var Permissions_ContactsTitle_v0: String { return self._s[1834]! } - public var Notifications_PermissionsTitle: String { return self._s[1835]! } - public var GroupPermission_NoSendLinks: String { return self._s[1836]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1837]! } - public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1838]! } - public var Settings_Support: String { return self._s[1839]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1840]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1841]! } - public var Privacy_Forwards_Preview: String { return self._s[1842]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[1843]! } - public var Watch_Stickers_StickerPacks: String { return self._s[1844]! } - public var Common_Select: String { return self._s[1846]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1847]! } - public var WallpaperSearch_ColorGray: String { return self._s[1850]! } - public var TwoFactorSetup_Password_PlaceholderPassword: String { return self._s[1851]! } - public var TwoFactorSetup_Hint_SkipAction: String { return self._s[1852]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1853]! } - public var PollResults_Title: String { return self._s[1854]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1855]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[1856]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1857]! } - public var Widget_AuthRequired: String { return self._s[1858]! } - public var Camera_FlashOn: String { return self._s[1859]! } - public var Conversation_ContextMenuLookUp: String { return self._s[1860]! } - public var Channel_Stickers_NotFoundHelp: String { return self._s[1861]! } - public var Watch_Suggestion_OK: String { return self._s[1862]! } + public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1833]! } + public var ShareMenu_Comment: String { return self._s[1834]! } + public var Permissions_ContactsTitle_v0: String { return self._s[1835]! } + public var Notifications_PermissionsTitle: String { return self._s[1836]! } + public var GroupPermission_NoSendLinks: String { return self._s[1837]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1838]! } + public var Wallet_SecureStorageChanged_ImportWallet: String { return self._s[1839]! } + public var Settings_Support: String { return self._s[1840]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1841]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1842]! } + public var Privacy_Forwards_Preview: String { return self._s[1843]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[1844]! } + public var Watch_Stickers_StickerPacks: String { return self._s[1845]! } + public var Common_Select: String { return self._s[1847]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1848]! } + public var WallpaperSearch_ColorGray: String { return self._s[1851]! } + public var TwoFactorSetup_Password_PlaceholderPassword: String { return self._s[1852]! } + public var TwoFactorSetup_Hint_SkipAction: String { return self._s[1853]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1854]! } + public var PollResults_Title: String { return self._s[1855]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1856]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[1857]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1858]! } + public var Widget_AuthRequired: String { return self._s[1859]! } + public var Camera_FlashOn: String { return self._s[1860]! } + public var Conversation_ContextMenuLookUp: String { return self._s[1861]! } + public var Channel_Stickers_NotFoundHelp: String { return self._s[1862]! } + public var Watch_Suggestion_OK: String { return self._s[1863]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1864]!, self._r[1864]!, [_0]) + return formatWithArgumentRanges(self._s[1865]!, self._r[1865]!, [_0]) } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1866]!, self._r[1866]!, [_0]) + return formatWithArgumentRanges(self._s[1867]!, self._r[1867]!, [_0]) } - public var TextFormat_Strikethrough: String { return self._s[1867]! } - public var DialogList_AdLabel: String { return self._s[1868]! } - public var WatchRemote_NotificationText: String { return self._s[1869]! } - public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1870]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1871]! } - public var Conversation_ReportSpam: String { return self._s[1872]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1873]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[1875]! } - public var PhoneLabel_Title: String { return self._s[1876]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[1877]! } - public var Settings_ChangePhoneNumber: String { return self._s[1878]! } - public var Notifications_ExceptionsTitle: String { return self._s[1879]! } - public var Notifications_AlertTones: String { return self._s[1880]! } - public var Call_ReportIncludeLogDescription: String { return self._s[1881]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1882]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1883]! } - public var VoiceOver_Chat_Photo: String { return self._s[1885]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[1886]! } - public var ReportPeer_ReasonOther: String { return self._s[1887]! } - public var ChatList_Context_JoinChannel: String { return self._s[1888]! } - public var KeyCommand_ScrollDown: String { return self._s[1890]! } - public var Conversation_ScheduleMessage_Title: String { return self._s[1891]! } + public var TextFormat_Strikethrough: String { return self._s[1868]! } + public var DialogList_AdLabel: String { return self._s[1869]! } + public var WatchRemote_NotificationText: String { return self._s[1870]! } + public var IntentsSettings_SuggestedChatsSavedMessages: String { return self._s[1871]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1872]! } + public var Conversation_ReportSpam: String { return self._s[1873]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1874]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[1876]! } + public var PhoneLabel_Title: String { return self._s[1877]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[1878]! } + public var Settings_ChangePhoneNumber: String { return self._s[1879]! } + public var Notifications_ExceptionsTitle: String { return self._s[1880]! } + public var Notifications_AlertTones: String { return self._s[1881]! } + public var Call_ReportIncludeLogDescription: String { return self._s[1882]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1883]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1884]! } + public var VoiceOver_Chat_Photo: String { return self._s[1886]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[1887]! } + public var ReportPeer_ReasonOther: String { return self._s[1888]! } + public var ChatList_Context_JoinChannel: String { return self._s[1889]! } + public var KeyCommand_ScrollDown: String { return self._s[1891]! } + public var Conversation_ScheduleMessage_Title: String { return self._s[1892]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1892]!, self._r[1892]!, [_0]) + return formatWithArgumentRanges(self._s[1893]!, self._r[1893]!, [_0]) } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1893]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1894]! } - public var AuthSessions_LogOut: String { return self._s[1895]! } - public var Passport_Identity_TypeInternalPassport: String { return self._s[1896]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1897]! } - public var Passport_Phone_Title: String { return self._s[1898]! } - public var ContactList_Context_StartSecretChat: String { return self._s[1899]! } - public var Settings_PhoneNumber: String { return self._s[1900]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1894]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1895]! } + public var AuthSessions_LogOut: String { return self._s[1896]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[1897]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1898]! } + public var Passport_Phone_Title: String { return self._s[1899]! } + public var ContactList_Context_StartSecretChat: String { return self._s[1900]! } + public var Settings_PhoneNumber: String { return self._s[1901]! } public func Conversation_ScheduleMessage_SendToday(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1901]!, self._r[1901]!, [_0]) + return formatWithArgumentRanges(self._s[1902]!, self._r[1902]!, [_0]) } - public var NotificationsSound_Alert: String { return self._s[1903]! } - public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1904]! } - public var WebSearch_SearchNoResults: String { return self._s[1905]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1907]! } - public var Wallet_Configuration_SourceInfo: String { return self._s[1908]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1909]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[1910]! } - public var PhotoEditor_CurvesTool: String { return self._s[1911]! } - public var Checkout_PaymentMethod: String { return self._s[1913]! } + public var NotificationsSound_Alert: String { return self._s[1904]! } + public var Wallet_SecureStorageChanged_CreateWallet: String { return self._s[1905]! } + public var WebSearch_SearchNoResults: String { return self._s[1906]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1908]! } + public var Wallet_Configuration_SourceInfo: String { return self._s[1909]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1910]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[1911]! } + public var PhotoEditor_CurvesTool: String { return self._s[1912]! } + public var Checkout_PaymentMethod: String { return self._s[1914]! } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1914]!, self._r[1914]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1915]!, self._r[1915]!, [_1, _2]) } - public var Contacts_AccessDeniedError: String { return self._s[1915]! } - public var Camera_PhotoMode: String { return self._s[1918]! } - public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1919]! } - public var Appearance_TextSize_Apply: String { return self._s[1920]! } - public var Passport_Address_AddUtilityBill: String { return self._s[1922]! } - public var CallSettings_OnMobile: String { return self._s[1923]! } - public var Tour_Text2: String { return self._s[1924]! } + public var Contacts_AccessDeniedError: String { return self._s[1916]! } + public var Camera_PhotoMode: String { return self._s[1919]! } + public var EditTheme_Expand_Preview_IncomingText: String { return self._s[1920]! } + public var Appearance_TextSize_Apply: String { return self._s[1921]! } + public var Passport_Address_AddUtilityBill: String { return self._s[1923]! } + public var CallSettings_OnMobile: String { return self._s[1924]! } + public var Tour_Text2: String { return self._s[1925]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1925]!, self._r[1925]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1926]!, self._r[1926]!, [_1, _2]) } - public var DialogList_EncryptionProcessing: String { return self._s[1927]! } - public var Permissions_Skip: String { return self._s[1928]! } - public var Wallet_Words_NotDoneOk: String { return self._s[1929]! } - public var SecretImage_Title: String { return self._s[1930]! } - public var Watch_MessageView_Title: String { return self._s[1931]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1932]! } - public var AttachmentMenu_Poll: String { return self._s[1933]! } + public var DialogList_EncryptionProcessing: String { return self._s[1928]! } + public var Permissions_Skip: String { return self._s[1929]! } + public var Wallet_Words_NotDoneOk: String { return self._s[1930]! } + public var SecretImage_Title: String { return self._s[1931]! } + public var Watch_MessageView_Title: String { return self._s[1932]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1933]! } + public var AttachmentMenu_Poll: String { return self._s[1934]! } public func Notification_GroupInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1934]!, self._r[1934]!, [_0]) + return formatWithArgumentRanges(self._s[1935]!, self._r[1935]!, [_0]) } public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1935]!, self._r[1935]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1936]!, self._r[1936]!, [_1, _2]) } - public var Notification_CallCanceled: String { return self._s[1936]! } - public var WallpaperPreview_Title: String { return self._s[1937]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1938]! } - public var Settings_ProxyConnecting: String { return self._s[1939]! } - public var Settings_CheckPhoneNumberText: String { return self._s[1941]! } - public var VoiceOver_Chat_YourVideo: String { return self._s[1942]! } - public var Wallet_Intro_Title: String { return self._s[1943]! } - public var TwoFactorSetup_Password_Action: String { return self._s[1944]! } - public var Profile_MessageLifetime5s: String { return self._s[1945]! } - public var Username_InvalidCharacters: String { return self._s[1946]! } - public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1947]! } - public var ScheduledMessages_ClearAll: String { return self._s[1948]! } - public var WallpaperPreview_CropBottomText: String { return self._s[1949]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[1950]! } - public var Settings_AddAccount: String { return self._s[1951]! } - public var Notification_CreatedChannel: String { return self._s[1954]! } + public var Notification_CallCanceled: String { return self._s[1937]! } + public var WallpaperPreview_Title: String { return self._s[1938]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1939]! } + public var Settings_ProxyConnecting: String { return self._s[1940]! } + public var Settings_CheckPhoneNumberText: String { return self._s[1942]! } + public var VoiceOver_Chat_YourVideo: String { return self._s[1943]! } + public var Wallet_Intro_Title: String { return self._s[1944]! } + public var TwoFactorSetup_Password_Action: String { return self._s[1945]! } + public var Profile_MessageLifetime5s: String { return self._s[1946]! } + public var Username_InvalidCharacters: String { return self._s[1947]! } + public var VoiceOver_Media_PlaybackRateFast: String { return self._s[1948]! } + public var ScheduledMessages_ClearAll: String { return self._s[1949]! } + public var WallpaperPreview_CropBottomText: String { return self._s[1950]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[1951]! } + public var Settings_AddAccount: String { return self._s[1952]! } + public var Notification_CreatedChannel: String { return self._s[1955]! } public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1955]!, self._r[1955]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1956]!, self._r[1956]!, [_1, _2, _3]) } - public var Passcode_AppLockedAlert: String { return self._s[1957]! } - public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1958]! } - public var VoiceOver_Media_PlaybackStop: String { return self._s[1959]! } - public var Contacts_TopSection: String { return self._s[1960]! } - public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1961]! } + public var Passcode_AppLockedAlert: String { return self._s[1958]! } + public var StickerPacksSettings_AnimatedStickersInfo: String { return self._s[1959]! } + public var VoiceOver_Media_PlaybackStop: String { return self._s[1960]! } + public var Contacts_TopSection: String { return self._s[1961]! } + public var ChatList_DeleteForEveryoneConfirmationAction: String { return self._s[1962]! } public func Conversation_SetReminder_RemindOn(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1962]!, self._r[1962]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1963]!, self._r[1963]!, [_0, _1]) } - public var Wallet_Info_Receive: String { return self._s[1963]! } - public var Wallet_Completed_ViewWallet: String { return self._s[1964]! } + public var Wallet_Info_Receive: String { return self._s[1964]! } + public var Wallet_Completed_ViewWallet: String { return self._s[1965]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1965]!, self._r[1965]!, [_0]) + return formatWithArgumentRanges(self._s[1966]!, self._r[1966]!, [_0]) } - public var ReportPeer_ReasonSpam: String { return self._s[1966]! } - public var UserInfo_TapToCall: String { return self._s[1967]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1969]! } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1970]! } - public var Common_Search: String { return self._s[1971]! } - public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1972]! } + public var ReportPeer_ReasonSpam: String { return self._s[1967]! } + public var UserInfo_TapToCall: String { return self._s[1968]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1970]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1971]! } + public var Common_Search: String { return self._s[1972]! } + public var ScheduledMessages_EmptyPlaceholder: String { return self._s[1973]! } public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1973]!, self._r[1973]!, [_0]) + return formatWithArgumentRanges(self._s[1974]!, self._r[1974]!, [_0]) } - public var Wallet_Month_ShortJuly: String { return self._s[1974]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1976]! } - public var Message_InvoiceLabel: String { return self._s[1977]! } - public var Conversation_InputTextPlaceholder: String { return self._s[1978]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1979]! } + public var Wallet_Month_ShortJuly: String { return self._s[1975]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1977]! } + public var Message_InvoiceLabel: String { return self._s[1978]! } + public var Conversation_InputTextPlaceholder: String { return self._s[1979]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1980]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1980]!, self._r[1980]!, [_0]) + return formatWithArgumentRanges(self._s[1981]!, self._r[1981]!, [_0]) } - public var IntentsSettings_Reset: String { return self._s[1981]! } - public var Conversation_Info: String { return self._s[1982]! } - public var Login_InfoDeletePhoto: String { return self._s[1983]! } - public var Passport_Language_vi: String { return self._s[1985]! } - public var UserInfo_ScamUserWarning: String { return self._s[1986]! } - public var Conversation_Search: String { return self._s[1987]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1989]! } - public var ReportPeer_ReasonPornography: String { return self._s[1990]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1991]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1992]! } - public var Map_LiveLocationGroupDescription: String { return self._s[1993]! } - public var Channel_Setup_TypeHeader: String { return self._s[1994]! } - public var AuthSessions_LoggedIn: String { return self._s[1995]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1996]! } - public var Login_SmsRequestState3: String { return self._s[1997]! } - public var Passport_Address_EditUtilityBill: String { return self._s[1998]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1999]! } - public var Join_ChannelsTooMuch: String { return self._s[2000]! } - public var Channel_Edit_LinkItem: String { return self._s[2001]! } - public var Privacy_Calls_P2PNever: String { return self._s[2002]! } - public var Conversation_AddToReadingList: String { return self._s[2004]! } - public var Share_MultipleMessagesDisabled: String { return self._s[2005]! } - public var Message_Animation: String { return self._s[2006]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[2007]! } - public var Map_Unknown: String { return self._s[2008]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[2009]! } + public var IntentsSettings_Reset: String { return self._s[1982]! } + public var Conversation_Info: String { return self._s[1983]! } + public var Login_InfoDeletePhoto: String { return self._s[1984]! } + public var Passport_Language_vi: String { return self._s[1986]! } + public var UserInfo_ScamUserWarning: String { return self._s[1987]! } + public var Conversation_Search: String { return self._s[1988]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1990]! } + public var ReportPeer_ReasonPornography: String { return self._s[1991]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1992]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1993]! } + public var Map_LiveLocationGroupDescription: String { return self._s[1994]! } + public var Channel_Setup_TypeHeader: String { return self._s[1995]! } + public var AuthSessions_LoggedIn: String { return self._s[1996]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1997]! } + public var Login_SmsRequestState3: String { return self._s[1998]! } + public var Passport_Address_EditUtilityBill: String { return self._s[1999]! } + public var Appearance_ReduceMotionInfo: String { return self._s[2000]! } + public var Join_ChannelsTooMuch: String { return self._s[2001]! } + public var Channel_Edit_LinkItem: String { return self._s[2002]! } + public var Privacy_Calls_P2PNever: String { return self._s[2003]! } + public var Conversation_AddToReadingList: String { return self._s[2005]! } + public var Share_MultipleMessagesDisabled: String { return self._s[2006]! } + public var Message_Animation: String { return self._s[2007]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[2008]! } + public var Map_Unknown: String { return self._s[2009]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[2010]! } public func PUSH_PINNED_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2010]!, self._r[2010]!, [_1, _2]) - } - public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2011]!, self._r[2011]!, [_1, _2]) } - public var Call_StatusRequesting: String { return self._s[2012]! } - public var Conversation_SecretChatContextBotAlert: String { return self._s[2013]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[2014]! } + public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2012]!, self._r[2012]!, [_1, _2]) + } + public var Call_StatusRequesting: String { return self._s[2013]! } + public var Conversation_SecretChatContextBotAlert: String { return self._s[2014]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[2015]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2015]!, self._r[2015]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2016]!, self._r[2016]!, [_1, _2]) } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2016]!, self._r[2016]!, [_0]) + return formatWithArgumentRanges(self._s[2017]!, self._r[2017]!, [_0]) } - public var Update_Skip: String { return self._s[2017]! } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2018]! } - public var BlockedUsers_Title: String { return self._s[2019]! } - public var Weekday_Monday: String { return self._s[2020]! } + public var Update_Skip: String { return self._s[2018]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[2019]! } + public var BlockedUsers_Title: String { return self._s[2020]! } + public var Weekday_Monday: String { return self._s[2021]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2021]!, self._r[2021]!, [_1]) + return formatWithArgumentRanges(self._s[2022]!, self._r[2022]!, [_1]) } - public var Username_CheckingUsername: String { return self._s[2022]! } - public var NotificationsSound_Bell: String { return self._s[2023]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[2024]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[2025]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[2026]! } - public var ChatSettings_Groups: String { return self._s[2027]! } - public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2028]! } + public var Username_CheckingUsername: String { return self._s[2023]! } + public var NotificationsSound_Bell: String { return self._s[2024]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[2025]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[2026]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[2027]! } + public var ChatSettings_Groups: String { return self._s[2028]! } + public var WallpaperPreview_PatternPaternDiscard: String { return self._s[2029]! } public func Conversation_SetReminder_RemindTomorrow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2029]!, self._r[2029]!, [_0]) + return formatWithArgumentRanges(self._s[2030]!, self._r[2030]!, [_0]) } - public var Your_card_was_declined: String { return self._s[2030]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2032]! } - public var Wallet_Month_ShortApril: String { return self._s[2033]! } - public var ChatList_Unmute: String { return self._s[2034]! } - public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2035]! } - public var PhotoEditor_CurvesAll: String { return self._s[2036]! } - public var Weekday_ShortTuesday: String { return self._s[2037]! } - public var DialogList_Read: String { return self._s[2038]! } - public var Appearance_AppIconClassic: String { return self._s[2039]! } - public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[2040]! } - public var Passport_Identity_Gender: String { return self._s[2041]! } + public var Your_card_was_declined: String { return self._s[2031]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[2033]! } + public var Wallet_Month_ShortApril: String { return self._s[2034]! } + public var ChatList_Unmute: String { return self._s[2035]! } + public var AuthSessions_AddDevice_ScanTitle: String { return self._s[2036]! } + public var PhotoEditor_CurvesAll: String { return self._s[2037]! } + public var Weekday_ShortTuesday: String { return self._s[2038]! } + public var DialogList_Read: String { return self._s[2039]! } + public var Appearance_AppIconClassic: String { return self._s[2040]! } + public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[2041]! } + public var Passport_Identity_Gender: String { return self._s[2042]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2042]!, self._r[2042]!, [_0]) + return formatWithArgumentRanges(self._s[2043]!, self._r[2043]!, [_0]) } - public var Target_SelectGroup: String { return self._s[2043]! } - public var Map_HomeAndWorkInfo: String { return self._s[2045]! } + public var Target_SelectGroup: String { return self._s[2044]! } + public var Map_HomeAndWorkInfo: String { return self._s[2046]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2046]!, self._r[2046]!, [_0]) + return formatWithArgumentRanges(self._s[2047]!, self._r[2047]!, [_0]) } - public var Passport_Language_en: String { return self._s[2047]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[2048]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2049]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[2050]! } - public var ScheduledMessages_SendNow: String { return self._s[2051]! } - public var Checkout_NewCard_PaymentCard: String { return self._s[2053]! } - public var Login_InfoHelp: String { return self._s[2054]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2055]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2056]! } + public var Passport_Language_en: String { return self._s[2048]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[2049]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[2050]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[2051]! } + public var ScheduledMessages_SendNow: String { return self._s[2052]! } + public var Checkout_NewCard_PaymentCard: String { return self._s[2054]! } + public var Login_InfoHelp: String { return self._s[2055]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[2056]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[2057]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2057]!, self._r[2057]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2058]!, self._r[2058]!, [_1, _2]) } - public var SocksProxySetup_AddProxy: String { return self._s[2060]! } - public var CreatePoll_Title: String { return self._s[2061]! } - public var MessagePoll_QuizNoUsers: String { return self._s[2062]! } - public var Conversation_ViewTheme: String { return self._s[2063]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2064]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2065]! } - public var TwoFactorSetup_Intro_Text: String { return self._s[2066]! } - public var UserInfo_GroupsInCommon: String { return self._s[2067]! } - public var TelegramWallet_Intro_TermsUrl: String { return self._s[2068]! } - public var Call_AudioRouteHide: String { return self._s[2069]! } + public var SocksProxySetup_AddProxy: String { return self._s[2061]! } + public var CreatePoll_Title: String { return self._s[2062]! } + public var MessagePoll_QuizNoUsers: String { return self._s[2063]! } + public var Conversation_ViewTheme: String { return self._s[2064]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[2065]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[2066]! } + public var TwoFactorSetup_Intro_Text: String { return self._s[2067]! } + public var UserInfo_GroupsInCommon: String { return self._s[2068]! } + public var TelegramWallet_Intro_TermsUrl: String { return self._s[2069]! } + public var Call_AudioRouteHide: String { return self._s[2070]! } public func Wallet_Info_TransactionDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2071]!, self._r[2071]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2072]!, self._r[2072]!, [_1, _2]) } - public var ContactInfo_PhoneLabelMobile: String { return self._s[2072]! } - public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2073]! } - public var CreatePoll_QuizOptionsHeader: String { return self._s[2074]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[2073]! } + public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2074]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[2075]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2075]!, self._r[2075]!, [_0]) + return formatWithArgumentRanges(self._s[2076]!, self._r[2076]!, [_0]) } - public var TextFormat_Bold: String { return self._s[2076]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2077]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[2078]! } - public var Notifications_Title: String { return self._s[2079]! } - public var Group_Username_InvalidTooShort: String { return self._s[2080]! } - public var Channel_ErrorAddTooMuch: String { return self._s[2081]! } + public var TextFormat_Bold: String { return self._s[2077]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2078]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[2079]! } + public var Notifications_Title: String { return self._s[2080]! } + public var Group_Username_InvalidTooShort: String { return self._s[2081]! } + public var Channel_ErrorAddTooMuch: String { return self._s[2082]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2082]!, self._r[2082]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2083]!, self._r[2083]!, ["\(_0)"]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[2084]! } - public var Stickers_SuggestAdded: String { return self._s[2085]! } - public var Login_CountryCode: String { return self._s[2086]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[2087]! } - public var Map_GetDirections: String { return self._s[2088]! } - public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2089]! } - public var Login_PhoneFloodError: String { return self._s[2090]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[2085]! } + public var Stickers_SuggestAdded: String { return self._s[2086]! } + public var Login_CountryCode: String { return self._s[2087]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[2088]! } + public var Map_GetDirections: String { return self._s[2089]! } + public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2090]! } + public var Login_PhoneFloodError: String { return self._s[2091]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2091]!, self._r[2091]!, [_0]) + return formatWithArgumentRanges(self._s[2092]!, self._r[2092]!, [_0]) } public func Wallet_Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2092]!, self._r[2092]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2093]!, self._r[2093]!, [_1, _2, _3]) } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2093]! } - public var Settings_SetUsername: String { return self._s[2095]! } - public var Group_Location_ChangeLocation: String { return self._s[2096]! } - public var Notification_GroupInviterSelf: String { return self._s[2097]! } - public var InstantPage_TapToOpenLink: String { return self._s[2098]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2094]! } + public var Settings_SetUsername: String { return self._s[2096]! } + public var Group_Location_ChangeLocation: String { return self._s[2097]! } + public var Notification_GroupInviterSelf: String { return self._s[2098]! } + public var InstantPage_TapToOpenLink: String { return self._s[2099]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2099]!, self._r[2099]!, [_0]) + return formatWithArgumentRanges(self._s[2100]!, self._r[2100]!, [_0]) } - public var Watch_Suggestion_TalkLater: String { return self._s[2100]! } - public var SecretChat_Title: String { return self._s[2101]! } - public var Group_UpgradeNoticeText1: String { return self._s[2102]! } - public var AuthSessions_Title: String { return self._s[2103]! } + public var Watch_Suggestion_TalkLater: String { return self._s[2101]! } + public var SecretChat_Title: String { return self._s[2102]! } + public var Group_UpgradeNoticeText1: String { return self._s[2103]! } + public var AuthSessions_Title: String { return self._s[2104]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2104]!, self._r[2104]!, [_0]) + return formatWithArgumentRanges(self._s[2105]!, self._r[2105]!, [_0]) } - public var PhotoEditor_CropAuto: String { return self._s[2105]! } - public var Channel_About_Title: String { return self._s[2106]! } - public var Theme_ThemeChanged: String { return self._s[2107]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[2108]! } + public var PhotoEditor_CropAuto: String { return self._s[2106]! } + public var Channel_About_Title: String { return self._s[2107]! } + public var Theme_ThemeChanged: String { return self._s[2108]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[2109]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2110]!, self._r[2110]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2111]!, self._r[2111]!, ["\(_0)"]) } - public var VoiceOver_MessageContextReport: String { return self._s[2111]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2113]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[2114]! } + public var VoiceOver_MessageContextReport: String { return self._s[2112]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2114]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[2115]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2115]!, self._r[2115]!, [_1]) + return formatWithArgumentRanges(self._s[2116]!, self._r[2116]!, [_1]) } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2117]!, self._r[2117]!, [_0]) - } - public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2118]!, self._r[2118]!, [_0]) } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2119]! } - public var Presence_online: String { return self._s[2122]! } - public var PasscodeSettings_Title: String { return self._s[2123]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2124]! } - public var Web_OpenExternal: String { return self._s[2125]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[2127]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2128]! } - public var LocalGroup_Title: String { return self._s[2129]! } + public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2119]!, self._r[2119]!, [_0]) + } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2120]! } + public var Presence_online: String { return self._s[2123]! } + public var PasscodeSettings_Title: String { return self._s[2124]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2125]! } + public var Web_OpenExternal: String { return self._s[2126]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[2128]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2129]! } + public var LocalGroup_Title: String { return self._s[2130]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2130]!, self._r[2130]!, [_0]) + return formatWithArgumentRanges(self._s[2131]!, self._r[2131]!, [_0]) } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2131]! } - public var Conversation_StopQuizConfirmation: String { return self._s[2132]! } - public var Map_YouAreHere: String { return self._s[2133]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2132]! } + public var Conversation_StopQuizConfirmation: String { return self._s[2133]! } + public var Map_YouAreHere: String { return self._s[2134]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2134]!, self._r[2134]!, [_0]) - } - public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[2136]! } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2137]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2138]! } - public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2139]!, self._r[2139]!, [_0]) + public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_0]) } - public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { + public var Theme_Context_ChangeColors: String { return self._s[2137]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2138]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2139]! } + public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2140]!, self._r[2140]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[2141]! } - public var Bot_Start: String { return self._s[2142]! } - public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2143]!, self._r[2143]!, [_0]) + public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2141]!, self._r[2141]!, [_0]) } - public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { + public var SocksProxySetup_Username: String { return self._s[2142]! } + public var Bot_Start: String { return self._s[2143]! } + public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2144]!, self._r[2144]!, [_0]) } - public var Contacts_SortByPresence: String { return self._s[2145]! } - public var AccentColor_Title: String { return self._s[2147]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2148]! } + public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2145]!, self._r[2145]!, [_0]) + } + public var Contacts_SortByPresence: String { return self._s[2146]! } + public var AccentColor_Title: String { return self._s[2148]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2149]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2149]!, self._r[2149]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2150]!, self._r[2150]!, [_1, _2]) } public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2150]!, self._r[2150]!, [_0]) + return formatWithArgumentRanges(self._s[2151]!, self._r[2151]!, [_0]) } public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2151]!, self._r[2151]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2152]!, self._r[2152]!, [_1, _2]) } - public var Passport_Email_EnterOtherEmail: String { return self._s[2152]! } - public var Login_InfoAvatarPhoto: String { return self._s[2153]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2154]! } - public var Tour_Title4: String { return self._s[2155]! } - public var Passport_Identity_Translation: String { return self._s[2156]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2157]! } - public var Login_TermsOfServiceLabel: String { return self._s[2159]! } - public var Passport_Language_it: String { return self._s[2160]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2161]! } - public var Passport_Identity_SelfieHelp: String { return self._s[2162]! } - public var Conversation_ClearAll: String { return self._s[2164]! } - public var Wallet_Send_UninitializedText: String { return self._s[2166]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[2167]! } - public var TwoStepAuth_FloodError: String { return self._s[2168]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[2153]! } + public var Login_InfoAvatarPhoto: String { return self._s[2154]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2155]! } + public var Tour_Title4: String { return self._s[2156]! } + public var Passport_Identity_Translation: String { return self._s[2157]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2158]! } + public var Login_TermsOfServiceLabel: String { return self._s[2160]! } + public var Passport_Language_it: String { return self._s[2161]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2162]! } + public var Passport_Identity_SelfieHelp: String { return self._s[2163]! } + public var Conversation_ClearAll: String { return self._s[2165]! } + public var Wallet_Send_UninitializedText: String { return self._s[2167]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[2168]! } + public var TwoStepAuth_FloodError: String { return self._s[2169]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2169]!, self._r[2169]!, [_1]) + return formatWithArgumentRanges(self._s[2170]!, self._r[2170]!, [_1]) } - public var Paint_Delete: String { return self._s[2170]! } + public var Paint_Delete: String { return self._s[2171]! } public func Wallet_Sent_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2171]!, self._r[2171]!, [_0]) + return formatWithArgumentRanges(self._s[2172]!, self._r[2172]!, [_0]) } - public var Privacy_AddNewPeer: String { return self._s[2172]! } + public var Privacy_AddNewPeer: String { return self._s[2173]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2173]!, self._r[2173]!, [_1]) + return formatWithArgumentRanges(self._s[2174]!, self._r[2174]!, [_1]) } - public var LogoutOptions_SetPasscodeText: String { return self._s[2174]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[2175]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2175]!, self._r[2175]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2176]!, self._r[2176]!, [_1, _2]) } - public var Message_PinnedAudioMessage: String { return self._s[2176]! } + public var Message_PinnedAudioMessage: String { return self._s[2177]! } public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2177]!, self._r[2177]!, [_0]) + return formatWithArgumentRanges(self._s[2178]!, self._r[2178]!, [_0]) } - public var Notification_Mute1hMin: String { return self._s[2178]! } - public var Notifications_GroupNotificationsSound: String { return self._s[2179]! } - public var Wallet_Month_GenNovember: String { return self._s[2180]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[2181]! } - public var Conversation_MessageEditedLabel: String { return self._s[2182]! } + public var Notification_Mute1hMin: String { return self._s[2179]! } + public var Notifications_GroupNotificationsSound: String { return self._s[2180]! } + public var Wallet_Month_GenNovember: String { return self._s[2181]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[2182]! } + public var Conversation_MessageEditedLabel: String { return self._s[2183]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2183]!, self._r[2183]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2184]!, self._r[2184]!, [_0, _1]) } - public var Notification_Exceptions_AlwaysOff: String { return self._s[2184]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2185]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[2185]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2186]! } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2186]!, self._r[2186]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2187]!, self._r[2187]!, [_0, _1, _2]) } - public var NetworkUsageSettings_ResetStats: String { return self._s[2187]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[2188]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2188]!, self._r[2188]!, [_1]) + return formatWithArgumentRanges(self._s[2189]!, self._r[2189]!, [_1]) } - public var AccessDenied_LocationTracking: String { return self._s[2189]! } - public var Month_GenOctober: String { return self._s[2190]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2191]! } - public var EnterPasscode_EnterPasscode: String { return self._s[2192]! } - public var MediaPicker_TimerTooltip: String { return self._s[2194]! } - public var SharedMedia_TitleAll: String { return self._s[2195]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2198]! } - public var Conversation_RestrictedMedia: String { return self._s[2199]! } - public var AccessDenied_PhotosRestricted: String { return self._s[2200]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2202]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2203]! } + public var AccessDenied_LocationTracking: String { return self._s[2190]! } + public var Month_GenOctober: String { return self._s[2191]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2192]! } + public var EnterPasscode_EnterPasscode: String { return self._s[2193]! } + public var MediaPicker_TimerTooltip: String { return self._s[2195]! } + public var SharedMedia_TitleAll: String { return self._s[2196]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2199]! } + public var Conversation_RestrictedMedia: String { return self._s[2200]! } + public var AccessDenied_PhotosRestricted: String { return self._s[2201]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2203]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2204]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2204]!, self._r[2204]!, [_0]) + return formatWithArgumentRanges(self._s[2205]!, self._r[2205]!, [_0]) } - public var Conversation_SavedMessages: String { return self._s[2207]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[2209]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2210]! } + public var Conversation_SavedMessages: String { return self._s[2208]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[2210]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2211]! } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2212]!, self._r[2212]!, [_0]) + return formatWithArgumentRanges(self._s[2213]!, self._r[2213]!, [_0]) } - public var VoiceOver_Chat_YourMessage: String { return self._s[2213]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2214]! } public func VoiceOver_Chat_Title(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2214]!, self._r[2214]!, [_0]) + return formatWithArgumentRanges(self._s[2215]!, self._r[2215]!, [_0]) } - public var ReportPeer_AlertSuccess: String { return self._s[2215]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2216]! } + public var ReportPeer_AlertSuccess: String { return self._s[2216]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2217]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2217]!, self._r[2217]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2218]!, self._r[2218]!, [_1, _2]) } - public var Checkout_PasswordEntry_Title: String { return self._s[2218]! } - public var PhotoEditor_FadeTool: String { return self._s[2219]! } - public var Privacy_ContactsReset: String { return self._s[2220]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2219]! } + public var PhotoEditor_FadeTool: String { return self._s[2220]! } + public var Privacy_ContactsReset: String { return self._s[2221]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2222]!, self._r[2222]!, [_0]) + return formatWithArgumentRanges(self._s[2223]!, self._r[2223]!, [_0]) } - public var Message_PinnedVideoMessage: String { return self._s[2223]! } - public var ChatList_Mute: String { return self._s[2224]! } + public var Message_PinnedVideoMessage: String { return self._s[2224]! } + public var ChatList_Mute: String { return self._s[2225]! } public func Wallet_Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2225]!, self._r[2225]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2226]!, self._r[2226]!, [_1, _2, _3]) } - public var Permissions_CellularDataText_v0: String { return self._s[2226]! } - public var Conversation_PinnedQuiz: String { return self._s[2228]! } - public var ShareMenu_SelectChats: String { return self._s[2230]! } - public var ChatList_Context_Unarchive: String { return self._s[2231]! } - public var MusicPlayer_VoiceNote: String { return self._s[2232]! } - public var Conversation_RestrictedText: String { return self._s[2233]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2234]! } - public var Wallet_Month_GenApril: String { return self._s[2235]! } - public var Wallet_Month_ShortMarch: String { return self._s[2236]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[2237]! } - public var Cache_Videos: String { return self._s[2238]! } - public var PrivacySettings_PhoneNumber: String { return self._s[2239]! } - public var Wallet_Month_GenFebruary: String { return self._s[2240]! } - public var FeatureDisabled_Oops: String { return self._s[2242]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[2243]! } + public var Permissions_CellularDataText_v0: String { return self._s[2227]! } + public var Conversation_PinnedQuiz: String { return self._s[2229]! } + public var ShareMenu_SelectChats: String { return self._s[2231]! } + public var ChatList_Context_Unarchive: String { return self._s[2232]! } + public var MusicPlayer_VoiceNote: String { return self._s[2233]! } + public var Conversation_RestrictedText: String { return self._s[2234]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2235]! } + public var Wallet_Month_GenApril: String { return self._s[2236]! } + public var Wallet_Month_ShortMarch: String { return self._s[2237]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2238]! } + public var Cache_Videos: String { return self._s[2239]! } + public var PrivacySettings_PhoneNumber: String { return self._s[2240]! } + public var Wallet_Month_GenFebruary: String { return self._s[2241]! } + public var FeatureDisabled_Oops: String { return self._s[2243]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[2244]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2244]!, self._r[2244]!, [_0]) + return formatWithArgumentRanges(self._s[2245]!, self._r[2245]!, [_0]) } - public var Stickers_GroupStickersHelp: String { return self._s[2245]! } - public var GroupPermission_NoSendPolls: String { return self._s[2246]! } - public var Wallet_Qr_ScanCode: String { return self._s[2247]! } - public var Message_VideoExpired: String { return self._s[2249]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[2250]! } - public var Notifications_Badge: String { return self._s[2251]! } - public var Wallet_Receive_AddressCopied: String { return self._s[2252]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[2253]! } - public var Username_InvalidTooShort: String { return self._s[2254]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2255]! } - public var Channel_AdminLog_PinMessages: String { return self._s[2256]! } - public var ArchivedChats_IntroTitle3: String { return self._s[2257]! } + public var Stickers_GroupStickersHelp: String { return self._s[2246]! } + public var GroupPermission_NoSendPolls: String { return self._s[2247]! } + public var Wallet_Qr_ScanCode: String { return self._s[2248]! } + public var Message_VideoExpired: String { return self._s[2250]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[2251]! } + public var Notifications_Badge: String { return self._s[2252]! } + public var Wallet_Receive_AddressCopied: String { return self._s[2253]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[2254]! } + public var Username_InvalidTooShort: String { return self._s[2255]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2256]! } + public var Channel_AdminLog_PinMessages: String { return self._s[2257]! } + public var ArchivedChats_IntroTitle3: String { return self._s[2258]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2258]!, self._r[2258]!, [_1]) + return formatWithArgumentRanges(self._s[2259]!, self._r[2259]!, [_1]) } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[2259]! } - public var Conversation_DefaultRestrictedText: String { return self._s[2260]! } - public var SharedMedia_CategoryDocs: String { return self._s[2263]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[2260]! } + public var Conversation_DefaultRestrictedText: String { return self._s[2261]! } + public var SharedMedia_CategoryDocs: String { return self._s[2264]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2264]!, self._r[2264]!, [_1]) + return formatWithArgumentRanges(self._s[2265]!, self._r[2265]!, [_1]) } - public var Wallet_Send_UninitializedTitle: String { return self._s[2265]! } - public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2266]! } - public var Privacy_Forwards_NeverLink: String { return self._s[2268]! } + public var Wallet_Send_UninitializedTitle: String { return self._s[2266]! } + public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2267]! } + public var Privacy_Forwards_NeverLink: String { return self._s[2269]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2269]!, self._r[2269]!, [_1]) + return formatWithArgumentRanges(self._s[2270]!, self._r[2270]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2270]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2271]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2271]!, self._r[2271]!, [_0]) + return formatWithArgumentRanges(self._s[2272]!, self._r[2272]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[2272]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2273]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[2274]! } - public var Channel_UpdatePhotoItem: String { return self._s[2275]! } - public var GroupInfo_LeftStatus: String { return self._s[2276]! } - public var Watch_MessageView_Forward: String { return self._s[2278]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[2279]! } - public var Cache_ClearEmpty: String { return self._s[2281]! } - public var Localization_LanguageName: String { return self._s[2282]! } - public var Wallet_AccessDenied_Title: String { return self._s[2283]! } - public var WebSearch_GIFs: String { return self._s[2284]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2285]! } - public var Wallet_AccessDenied_Settings: String { return self._s[2286]! } - public var Username_InvalidStartsWithNumber: String { return self._s[2287]! } - public var Common_Back: String { return self._s[2288]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2289]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2290]! } - public var Wallet_Send_Send: String { return self._s[2291]! } + public var ChatSettings_PrivateChats: String { return self._s[2273]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2274]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[2275]! } + public var Channel_UpdatePhotoItem: String { return self._s[2276]! } + public var GroupInfo_LeftStatus: String { return self._s[2277]! } + public var Watch_MessageView_Forward: String { return self._s[2279]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[2280]! } + public var Cache_ClearEmpty: String { return self._s[2282]! } + public var Localization_LanguageName: String { return self._s[2283]! } + public var Wallet_AccessDenied_Title: String { return self._s[2284]! } + public var WebSearch_GIFs: String { return self._s[2285]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2286]! } + public var Wallet_AccessDenied_Settings: String { return self._s[2287]! } + public var Username_InvalidStartsWithNumber: String { return self._s[2288]! } + public var Common_Back: String { return self._s[2289]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2290]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2291]! } + public var Wallet_Send_Send: String { return self._s[2292]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2293]!, self._r[2293]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2294]!, self._r[2294]!, [_1, _2]) } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[2294]! } - public var Wallet_Month_GenJune: String { return self._s[2295]! } - public var Passport_Email_Help: String { return self._s[2296]! } - public var Watch_Conversation_Reply: String { return self._s[2298]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[2301]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2302]! } - public var Channel_BanUser_Unban: String { return self._s[2304]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2305]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2306]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2308]! } - public var Wallet_Send_AddressHeader: String { return self._s[2309]! } - public var Passport_Identity_Name: String { return self._s[2310]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[2295]! } + public var Wallet_Month_GenJune: String { return self._s[2296]! } + public var Passport_Email_Help: String { return self._s[2297]! } + public var Watch_Conversation_Reply: String { return self._s[2299]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[2302]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2303]! } + public var Channel_BanUser_Unban: String { return self._s[2305]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2306]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2307]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2309]! } + public var Wallet_Send_AddressHeader: String { return self._s[2310]! } + public var Passport_Identity_Name: String { return self._s[2311]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2311]!, self._r[2311]!, [_0]) + return formatWithArgumentRanges(self._s[2312]!, self._r[2312]!, [_0]) } - public var GroupRemoved_ViewUserInfo: String { return self._s[2312]! } - public var Conversation_BlockUser: String { return self._s[2313]! } - public var Month_GenJanuary: String { return self._s[2314]! } - public var ChatSettings_TextSize: String { return self._s[2315]! } - public var Notification_PassportValuePhone: String { return self._s[2316]! } - public var MediaPlayer_UnknownArtist: String { return self._s[2317]! } - public var Passport_Language_ne: String { return self._s[2318]! } - public var Notification_CallBack: String { return self._s[2319]! } - public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2320]! } - public var TwoStepAuth_EmailHelp: String { return self._s[2321]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[2313]! } + public var Conversation_BlockUser: String { return self._s[2314]! } + public var Month_GenJanuary: String { return self._s[2315]! } + public var ChatSettings_TextSize: String { return self._s[2316]! } + public var Notification_PassportValuePhone: String { return self._s[2317]! } + public var MediaPlayer_UnknownArtist: String { return self._s[2318]! } + public var Passport_Language_ne: String { return self._s[2319]! } + public var Notification_CallBack: String { return self._s[2320]! } + public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2321]! } + public var TwoStepAuth_EmailHelp: String { return self._s[2322]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2322]!, self._r[2322]!, [_0]) + return formatWithArgumentRanges(self._s[2323]!, self._r[2323]!, [_0]) } - public var Channel_Info_Management: String { return self._s[2323]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[2324]! } - public var Stickers_FrequentlyUsed: String { return self._s[2325]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2326]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2328]! } + public var Channel_Info_Management: String { return self._s[2324]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[2325]! } + public var Stickers_FrequentlyUsed: String { return self._s[2326]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2327]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2329]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2329]!, self._r[2329]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[2330]!, self._r[2330]!, [_1, "\(_2)"]) } - public var TwoFactorSetup_Password_Title: String { return self._s[2330]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[2331]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[2332]! } - public var CreatePoll_TextHeader: String { return self._s[2333]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2331]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[2332]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[2333]! } + public var CreatePoll_TextHeader: String { return self._s[2334]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2334]!, self._r[2334]!, [_0]) + return formatWithArgumentRanges(self._s[2335]!, self._r[2335]!, [_0]) } - public var PhotoEditor_QualityMedium: String { return self._s[2335]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2336]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[2338]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[2339]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[2340]! } + public var PhotoEditor_QualityMedium: String { return self._s[2336]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2337]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[2339]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[2340]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[2341]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2341]!, self._r[2341]!, [_0]) + return formatWithArgumentRanges(self._s[2342]!, self._r[2342]!, [_0]) } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2342]!, self._r[2342]!, [_1]) + return formatWithArgumentRanges(self._s[2343]!, self._r[2343]!, [_1]) } - public var LogoutOptions_LogOutWalletInfo: String { return self._s[2343]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2344]! } - public var Conversation_LinkDialogOpen: String { return self._s[2346]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2347]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[2348]! } - public var Settings_Username: String { return self._s[2350]! } - public var Conversation_Block: String { return self._s[2352]! } - public var Wallpaper_Wallpaper: String { return self._s[2353]! } - public var SocksProxySetup_UseProxy: String { return self._s[2355]! } - public var Wallet_Send_Confirmation: String { return self._s[2356]! } - public var EditTheme_UploadEditedTheme: String { return self._s[2357]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[2358]! } - public var MessageTimer_Forever: String { return self._s[2359]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[2360]! } - public var PhotoEditor_DiscardChanges: String { return self._s[2361]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2362]! } - public var Passport_Language_da: String { return self._s[2363]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[2364]! } + public var LogoutOptions_LogOutWalletInfo: String { return self._s[2344]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2345]! } + public var Conversation_LinkDialogOpen: String { return self._s[2347]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2348]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[2349]! } + public var Settings_Username: String { return self._s[2351]! } + public var Conversation_Block: String { return self._s[2353]! } + public var Wallpaper_Wallpaper: String { return self._s[2354]! } + public var SocksProxySetup_UseProxy: String { return self._s[2356]! } + public var Wallet_Send_Confirmation: String { return self._s[2357]! } + public var EditTheme_UploadEditedTheme: String { return self._s[2358]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[2359]! } + public var MessageTimer_Forever: String { return self._s[2360]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[2361]! } + public var PhotoEditor_DiscardChanges: String { return self._s[2362]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2363]! } + public var Passport_Language_da: String { return self._s[2364]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[2365]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2365]!, self._r[2365]!, [_0]) + return formatWithArgumentRanges(self._s[2366]!, self._r[2366]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[2366]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[2367]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2368]!, self._r[2368]!, [_0]) + return formatWithArgumentRanges(self._s[2369]!, self._r[2369]!, [_0]) } - public var Settings_AddDevice: String { return self._s[2369]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2371]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2372]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2373]! } - public var Conversation_PinnedPoll: String { return self._s[2374]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2375]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2376]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2377]! } + public var Settings_AddDevice: String { return self._s[2370]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2372]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2373]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2374]! } + public var Conversation_PinnedPoll: String { return self._s[2375]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2376]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2377]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2378]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2378]!, self._r[2378]!, [_1]) + return formatWithArgumentRanges(self._s[2379]!, self._r[2379]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[2379]! } - public var Cache_ByPeerHeader: String { return self._s[2380]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2380]! } + public var Cache_ByPeerHeader: String { return self._s[2381]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2381]!, self._r[2381]!, [_0]) + return formatWithArgumentRanges(self._s[2382]!, self._r[2382]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[2382]! } - public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2385]! } - public var Wallet_Completed_Title: String { return self._s[2386]! } - public var Notification_PinnedMessage: String { return self._s[2387]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2388]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2390]! } - public var Contacts_SortBy: String { return self._s[2391]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[2383]! } + public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2386]! } + public var Wallet_Completed_Title: String { return self._s[2387]! } + public var Notification_PinnedMessage: String { return self._s[2388]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2389]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2391]! } + public var Contacts_SortBy: String { return self._s[2392]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2392]!, self._r[2392]!, [_1]) + return formatWithArgumentRanges(self._s[2393]!, self._r[2393]!, [_1]) } - public var Appearance_ColorThemeNight: String { return self._s[2394]! } + public var Appearance_ColorThemeNight: String { return self._s[2395]! } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2395]!, self._r[2395]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2396]!, self._r[2396]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[2396]! } - public var Watch_UserInfo_Service: String { return self._s[2397]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2399]! } - public var Conversation_Unpin: String { return self._s[2401]! } - public var CancelResetAccount_Title: String { return self._s[2402]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[2403]! } + public var Call_EncryptionKey_Title: String { return self._s[2397]! } + public var Watch_UserInfo_Service: String { return self._s[2398]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2400]! } + public var Conversation_Unpin: String { return self._s[2402]! } + public var CancelResetAccount_Title: String { return self._s[2403]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[2404]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2405]!, self._r[2405]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2406]!, self._r[2406]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2406]! } - public var CallSettings_Title: String { return self._s[2407]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2408]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[2410]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2411]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2407]! } + public var CallSettings_Title: String { return self._s[2408]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2409]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[2411]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2412]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2412]!, self._r[2412]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2413]!, self._r[2413]!, [_1, _2]) } - public var Passport_Identity_DocumentDetails: String { return self._s[2413]! } - public var LoginPassword_PasswordHelp: String { return self._s[2414]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2415]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2416]! } - public var ChatContextMenu_TextSelectionTip: String { return self._s[2417]! } - public var Checkout_TotalPaidAmount: String { return self._s[2418]! } + public var Passport_Identity_DocumentDetails: String { return self._s[2414]! } + public var LoginPassword_PasswordHelp: String { return self._s[2415]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2416]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2417]! } + public var ChatContextMenu_TextSelectionTip: String { return self._s[2418]! } + public var Checkout_TotalPaidAmount: String { return self._s[2419]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2419]!, self._r[2419]!, [_0]) + return formatWithArgumentRanges(self._s[2420]!, self._r[2420]!, [_0]) } - public var PasscodeSettings_ChangePasscode: String { return self._s[2420]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[2422]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[2423]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[2421]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[2423]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[2424]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2424]!, self._r[2424]!, [_1]) + return formatWithArgumentRanges(self._s[2425]!, self._r[2425]!, [_1]) } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2425]! } - public var Contacts_InviteFriends: String { return self._s[2427]! } - public var Map_ChooseLocationTitle: String { return self._s[2428]! } - public var Conversation_StopPoll: String { return self._s[2430]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2426]! } + public var Contacts_InviteFriends: String { return self._s[2428]! } + public var Map_ChooseLocationTitle: String { return self._s[2429]! } + public var Conversation_StopPoll: String { return self._s[2431]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2431]!, self._r[2431]!, [_0]) + return formatWithArgumentRanges(self._s[2432]!, self._r[2432]!, [_0]) } - public var Call_Camera: String { return self._s[2432]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2433]! } - public var AppWallet_Intro_Text: String { return self._s[2434]! } - public var Calls_RatingFeedback: String { return self._s[2435]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2437]! } - public var Wallet_Alert_OK: String { return self._s[2438]! } - public var NotificationsSound_Pulse: String { return self._s[2439]! } - public var Watch_LastSeen_Lately: String { return self._s[2440]! } - public var ReportGroupLocation_Report: String { return self._s[2443]! } - public var Widget_NoUsers: String { return self._s[2444]! } - public var Conversation_UnvotePoll: String { return self._s[2445]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2447]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2448]! } - public var NotificationsSound_Circles: String { return self._s[2449]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2452]! } - public var Wallet_Settings_DeleteWallet: String { return self._s[2453]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2454]! } - public var Proxy_TooltipUnavailable: String { return self._s[2455]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2457]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2459]! } - public var Conversation_FileDropbox: String { return self._s[2460]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[2461]! } - public var Tour_Text3: String { return self._s[2463]! } - public var Login_ResetAccountProtected_Title: String { return self._s[2465]! } - public var GroupPermission_NoSendMessages: String { return self._s[2466]! } - public var WallpaperSearch_ColorTitle: String { return self._s[2467]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2468]! } + public var Call_Camera: String { return self._s[2433]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2434]! } + public var AppWallet_Intro_Text: String { return self._s[2435]! } + public var Calls_RatingFeedback: String { return self._s[2436]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2438]! } + public var Wallet_Alert_OK: String { return self._s[2439]! } + public var NotificationsSound_Pulse: String { return self._s[2440]! } + public var Watch_LastSeen_Lately: String { return self._s[2441]! } + public var ReportGroupLocation_Report: String { return self._s[2444]! } + public var Widget_NoUsers: String { return self._s[2445]! } + public var Conversation_UnvotePoll: String { return self._s[2446]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2448]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2449]! } + public var NotificationsSound_Circles: String { return self._s[2450]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2453]! } + public var Wallet_Settings_DeleteWallet: String { return self._s[2454]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2455]! } + public var Proxy_TooltipUnavailable: String { return self._s[2456]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2458]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2460]! } + public var Conversation_FileDropbox: String { return self._s[2461]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[2462]! } + public var Tour_Text3: String { return self._s[2464]! } + public var Login_ResetAccountProtected_Title: String { return self._s[2466]! } + public var GroupPermission_NoSendMessages: String { return self._s[2467]! } + public var WallpaperSearch_ColorTitle: String { return self._s[2468]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2469]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2470]!, self._r[2470]!, [_0]) + return formatWithArgumentRanges(self._s[2471]!, self._r[2471]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[2471]! } - public var Checkout_ShippingOption_Title: String { return self._s[2472]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2473]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[2472]! } + public var Checkout_ShippingOption_Title: String { return self._s[2473]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2474]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2474]!, self._r[2474]!, [_0]) - } - public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2475]!, self._r[2475]!, [_0]) } - public var Channel_Management_LabelAdministrator: String { return self._s[2476]! } - public var EditTheme_FileReadError: String { return self._s[2477]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[2478]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2479]! } - public var AutoDownloadSettings_Photos: String { return self._s[2481]! } - public var Appearance_PreviewIncomingText: String { return self._s[2482]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[2483]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[2484]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2485]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2486]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2487]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2488]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2489]! } - public var Notification_SecretChatScreenshot: String { return self._s[2490]! } - public var AccessDenied_Wallpapers: String { return self._s[2491]! } - public var ChatList_Context_Mute: String { return self._s[2493]! } - public var Passport_Address_City: String { return self._s[2494]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2495]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[2496]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2497]! } - public var AccessDenied_LocationDisabled: String { return self._s[2498]! } - public var Group_Location_Title: String { return self._s[2499]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2501]! } - public var GroupInfo_Sound: String { return self._s[2502]! } - public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2503]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[2504]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2505]! } - public var Contacts_Title: String { return self._s[2506]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[2507]! } - public var Passport_Language_fr: String { return self._s[2508]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2509]! } - public var Notifications_ResetAllNotifications: String { return self._s[2510]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2512]! } - public var PrivacySettings_SecurityTitle: String { return self._s[2514]! } - public var Checkout_NewCard_Title: String { return self._s[2515]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[2516]! } - public var Conversation_ForwardChats: String { return self._s[2517]! } - public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2519]! } - public var PasscodeSettings_4DigitCode: String { return self._s[2520]! } - public var Settings_FAQ: String { return self._s[2522]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2523]! } - public var Conversation_ContextMenuForward: String { return self._s[2524]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[2527]! } - public var PrivacyPolicy_Title: String { return self._s[2530]! } - public var Notifications_TextTone: String { return self._s[2531]! } - public var Profile_CreateNewContact: String { return self._s[2532]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2533]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2535]! } - public var Call_Speaker: String { return self._s[2536]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2537]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2539]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2540]! } + public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2476]!, self._r[2476]!, [_0]) + } + public var Channel_Management_LabelAdministrator: String { return self._s[2477]! } + public var EditTheme_FileReadError: String { return self._s[2478]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[2479]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2480]! } + public var AutoDownloadSettings_Photos: String { return self._s[2482]! } + public var Appearance_PreviewIncomingText: String { return self._s[2483]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[2484]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[2485]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2486]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2487]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2488]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2489]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2490]! } + public var Notification_SecretChatScreenshot: String { return self._s[2491]! } + public var AccessDenied_Wallpapers: String { return self._s[2492]! } + public var ChatList_Context_Mute: String { return self._s[2494]! } + public var Passport_Address_City: String { return self._s[2495]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2496]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[2497]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2498]! } + public var AccessDenied_LocationDisabled: String { return self._s[2499]! } + public var Group_Location_Title: String { return self._s[2500]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2502]! } + public var GroupInfo_Sound: String { return self._s[2503]! } + public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2504]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[2505]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2506]! } + public var Contacts_Title: String { return self._s[2507]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[2508]! } + public var Passport_Language_fr: String { return self._s[2509]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2510]! } + public var Notifications_ResetAllNotifications: String { return self._s[2511]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2513]! } + public var PrivacySettings_SecurityTitle: String { return self._s[2515]! } + public var Checkout_NewCard_Title: String { return self._s[2516]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[2517]! } + public var Conversation_ForwardChats: String { return self._s[2518]! } + public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2520]! } + public var PasscodeSettings_4DigitCode: String { return self._s[2521]! } + public var Settings_FAQ: String { return self._s[2523]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2524]! } + public var Conversation_ContextMenuForward: String { return self._s[2525]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[2528]! } + public var PrivacyPolicy_Title: String { return self._s[2531]! } + public var Notifications_TextTone: String { return self._s[2532]! } + public var Profile_CreateNewContact: String { return self._s[2533]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2534]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2536]! } + public var Call_Speaker: String { return self._s[2537]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2538]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2540]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2541]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2541]!, self._r[2541]!, [_0]) + return formatWithArgumentRanges(self._s[2542]!, self._r[2542]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2542]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2543]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2544]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2545]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[2546]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2547]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2548]! } - public var Bot_Unblock: String { return self._s[2549]! } - public var TextFormat_Italic: String { return self._s[2550]! } - public var WallpaperSearch_ColorPink: String { return self._s[2551]! } - public var Settings_About_Help: String { return self._s[2553]! } - public var SearchImages_Title: String { return self._s[2554]! } - public var Weekday_Wednesday: String { return self._s[2555]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2556]! } - public var ExplicitContent_AlertTitle: String { return self._s[2557]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2543]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2544]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2545]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2546]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[2547]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2548]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2549]! } + public var Bot_Unblock: String { return self._s[2550]! } + public var TextFormat_Italic: String { return self._s[2551]! } + public var WallpaperSearch_ColorPink: String { return self._s[2552]! } + public var Settings_About_Help: String { return self._s[2554]! } + public var SearchImages_Title: String { return self._s[2555]! } + public var Weekday_Wednesday: String { return self._s[2556]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2557]! } + public var ExplicitContent_AlertTitle: String { return self._s[2558]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2558]!, self._r[2558]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2559]!, self._r[2559]!, [_1, _2, _3]) } - public var Channel_DiscussionGroup_Create: String { return self._s[2559]! } - public var Weekday_Thursday: String { return self._s[2560]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2561]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2562]! } + public var Channel_DiscussionGroup_Create: String { return self._s[2560]! } + public var Weekday_Thursday: String { return self._s[2561]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2562]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2563]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2563]!, self._r[2563]!, [_0]) + return formatWithArgumentRanges(self._s[2564]!, self._r[2564]!, [_0]) } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2564]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2565]! } - public var Passport_RequestedInformation: String { return self._s[2566]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2567]! } - public var Conversation_EncryptionProcessing: String { return self._s[2569]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2570]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2572]! } - public var Channel_Setup_Title: String { return self._s[2573]! } - public var Conversation_SearchPlaceholder: String { return self._s[2574]! } - public var OldChannels_GroupEmptyFormat: String { return self._s[2575]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2576]! } - public var Checkout_ErrorGeneric: String { return self._s[2577]! } - public var Passport_Language_hu: String { return self._s[2578]! } - public var GroupPermission_EditingDisabled: String { return self._s[2579]! } - public var Wallet_Month_ShortSeptember: String { return self._s[2581]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2565]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2566]! } + public var Passport_RequestedInformation: String { return self._s[2567]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2568]! } + public var Conversation_EncryptionProcessing: String { return self._s[2570]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2571]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2573]! } + public var Channel_Setup_Title: String { return self._s[2574]! } + public var Conversation_SearchPlaceholder: String { return self._s[2575]! } + public var OldChannels_GroupEmptyFormat: String { return self._s[2576]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2577]! } + public var Checkout_ErrorGeneric: String { return self._s[2578]! } + public var Passport_Language_hu: String { return self._s[2579]! } + public var GroupPermission_EditingDisabled: String { return self._s[2580]! } + public var Wallet_Month_ShortSeptember: String { return self._s[2582]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2582]!, self._r[2582]!, [_0]) + return formatWithArgumentRanges(self._s[2583]!, self._r[2583]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2585]!, self._r[2585]!, [_1]) + return formatWithArgumentRanges(self._s[2586]!, self._r[2586]!, [_1]) } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2586]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2587]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2587]!, self._r[2587]!, [_0]) + return formatWithArgumentRanges(self._s[2588]!, self._r[2588]!, [_0]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2588]! } - public var Group_Location_Info: String { return self._s[2589]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2590]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2591]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2589]! } + public var Group_Location_Info: String { return self._s[2590]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2591]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2592]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2592]!, self._r[2592]!, [_0]) + return formatWithArgumentRanges(self._s[2593]!, self._r[2593]!, [_0]) } - public var Conversation_ClearPrivateHistory: String { return self._s[2593]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2594]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[2595]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2596]! } + public var Conversation_ClearPrivateHistory: String { return self._s[2594]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2595]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[2596]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2597]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2597]!, self._r[2597]!, [_0]) - } - public func Notification_PinnedQuizMessage(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2598]!, self._r[2598]!, [_0]) } - public var Passport_Language_cs: String { return self._s[2599]! } - public var Message_PinnedAnimationMessage: String { return self._s[2601]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2603]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2604]! } - public var Wallet_Info_TransactionTo: String { return self._s[2606]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2607]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2608]! } - public var Embed_PlayingInPIP: String { return self._s[2609]! } - public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2610]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2611]! } + public func Notification_PinnedQuizMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2599]!, self._r[2599]!, [_0]) + } + public var Passport_Language_cs: String { return self._s[2600]! } + public var Message_PinnedAnimationMessage: String { return self._s[2602]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2604]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2605]! } + public var Wallet_Info_TransactionTo: String { return self._s[2607]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2608]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2609]! } + public var Embed_PlayingInPIP: String { return self._s[2610]! } + public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2611]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2612]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2612]!, self._r[2612]!, [_0]) + return formatWithArgumentRanges(self._s[2613]!, self._r[2613]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2613]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[2614]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2614]!, self._r[2614]!, [_1]) + return formatWithArgumentRanges(self._s[2615]!, self._r[2615]!, [_1]) } - public var Notification_PaymentSent: String { return self._s[2615]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2616]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2617]! } - public var AutoNightTheme_System: String { return self._s[2618]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2619]! } - public var CreatePoll_QuizTitle: String { return self._s[2620]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2621]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2622]! } + public var Notification_PaymentSent: String { return self._s[2616]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2617]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2618]! } + public var AutoNightTheme_System: String { return self._s[2619]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2620]! } + public var CreatePoll_QuizTitle: String { return self._s[2621]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2622]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2623]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2625]!, self._r[2625]!, [_1]) - } - public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2626]!, self._r[2626]!, [_1]) } - public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { + public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2627]!, self._r[2627]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2629]! } - public var PasscodeSettings_HelpTop: String { return self._s[2630]! } - public var Conversation_WalletRequiredTitle: String { return self._s[2631]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2632]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2633]! } - public var EditTheme_ShortLink: String { return self._s[2634]! } - public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2635]! } - public var ProxyServer_VoiceOver_Active: String { return self._s[2636]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2637]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2638]! } - public var Call_Accept: String { return self._s[2640]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2641]! } - public var Month_GenMarch: String { return self._s[2643]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2644]! } - public var LoginPassword_Title: String { return self._s[2645]! } - public var Call_End: String { return self._s[2646]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2647]! } - public var VoiceOver_Chat_Contact: String { return self._s[2648]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2649]! } - public var CallSettings_Always: String { return self._s[2650]! } - public var CallFeedback_Success: String { return self._s[2651]! } - public var TwoStepAuth_SetupHint: String { return self._s[2652]! } + public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2628]!, self._r[2628]!, [_1]) + } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2630]! } + public var PasscodeSettings_HelpTop: String { return self._s[2631]! } + public var Conversation_WalletRequiredTitle: String { return self._s[2632]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2633]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2634]! } + public var EditTheme_ShortLink: String { return self._s[2635]! } + public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2636]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[2637]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2638]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2639]! } + public var Call_Accept: String { return self._s[2641]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2642]! } + public var Month_GenMarch: String { return self._s[2644]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2645]! } + public var LoginPassword_Title: String { return self._s[2646]! } + public var Call_End: String { return self._s[2647]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2648]! } + public var VoiceOver_Chat_Contact: String { return self._s[2649]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2650]! } + public var CallSettings_Always: String { return self._s[2651]! } + public var CallFeedback_Success: String { return self._s[2652]! } + public var TwoStepAuth_SetupHint: String { return self._s[2653]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2653]!, self._r[2653]!, [_1]) + return formatWithArgumentRanges(self._s[2654]!, self._r[2654]!, [_1]) } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2654]! } - public var Login_PhoneTitle: String { return self._s[2655]! } - public var Passport_FieldPhoneHelp: String { return self._s[2656]! } - public var Weekday_ShortSunday: String { return self._s[2657]! } - public var Passport_InfoFAQ_URL: String { return self._s[2658]! } - public var ContactInfo_Job: String { return self._s[2660]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2661]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[2662]! } - public var CreatePoll_QuizTip: String { return self._s[2663]! } - public var TwoFactorSetup_Email_Text: String { return self._s[2664]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2665]! } - public var Invite_ChannelsTooMuch: String { return self._s[2666]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[2667]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2668]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2669]! } - public var Wallet_Receive_AmountText: String { return self._s[2670]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2671]! } - public var CallFeedback_ReasonNoise: String { return self._s[2672]! } - public var Appearance_AppIconDefault: String { return self._s[2674]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2675]! } - public var MediaPicker_AddCaption: String { return self._s[2676]! } - public var CallSettings_TabIconDescription: String { return self._s[2677]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2655]! } + public var Login_PhoneTitle: String { return self._s[2656]! } + public var Passport_FieldPhoneHelp: String { return self._s[2657]! } + public var Weekday_ShortSunday: String { return self._s[2658]! } + public var Passport_InfoFAQ_URL: String { return self._s[2659]! } + public var ContactInfo_Job: String { return self._s[2661]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2662]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[2663]! } + public var CreatePoll_QuizTip: String { return self._s[2664]! } + public var TwoFactorSetup_Email_Text: String { return self._s[2665]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2666]! } + public var Invite_ChannelsTooMuch: String { return self._s[2667]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[2668]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2669]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2670]! } + public var Wallet_Receive_AmountText: String { return self._s[2671]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2672]! } + public var CallFeedback_ReasonNoise: String { return self._s[2673]! } + public var Appearance_AppIconDefault: String { return self._s[2675]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2676]! } + public var MediaPicker_AddCaption: String { return self._s[2677]! } + public var CallSettings_TabIconDescription: String { return self._s[2678]! } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2678]!, self._r[2678]!, [_0]) + return formatWithArgumentRanges(self._s[2679]!, self._r[2679]!, [_0]) } - public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2679]! } + public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2680]! } public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2680]!, self._r[2680]!, [_0]) + return formatWithArgumentRanges(self._s[2681]!, self._r[2681]!, [_0]) } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2681]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2682]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2683]! } - public var DialogList_SearchSectionRecent: String { return self._s[2684]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2685]! } - public var CreatePoll_Anonymous: String { return self._s[2686]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2689]! } - public var LastSeen_WithinAWeek: String { return self._s[2690]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2691]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2693]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2694]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2682]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2683]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2684]! } + public var DialogList_SearchSectionRecent: String { return self._s[2685]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2686]! } + public var CreatePoll_Anonymous: String { return self._s[2687]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2690]! } + public var LastSeen_WithinAWeek: String { return self._s[2691]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2692]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2694]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2695]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2695]!, self._r[2695]!, [_0]) + return formatWithArgumentRanges(self._s[2696]!, self._r[2696]!, [_0]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2696]! } - public var Conversation_StatusLeftGroup: String { return self._s[2697]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2698]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2700]! } - public var GroupPermission_AddSuccess: String { return self._s[2701]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2703]! } - public var Conversation_ContextMenuCopy: String { return self._s[2704]! } - public var AccessDenied_CallMicrophone: String { return self._s[2705]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2697]! } + public var Conversation_StatusLeftGroup: String { return self._s[2698]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2699]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2701]! } + public var GroupPermission_AddSuccess: String { return self._s[2702]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2704]! } + public var Conversation_ContextMenuCopy: String { return self._s[2705]! } + public var AccessDenied_CallMicrophone: String { return self._s[2706]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2706]!, self._r[2706]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2707]!, self._r[2707]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2707]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2708]! } - public var Checkout_PaymentMethod_New: String { return self._s[2709]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2710]! } - public var PhotoEditor_QualityTool: String { return self._s[2711]! } - public var Login_SendCodeViaSms: String { return self._s[2712]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2713]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2714]! } - public var Wallet_Receive_CopyAddress: String { return self._s[2715]! } - public var Login_EmailNotConfiguredError: String { return self._s[2716]! } - public var SocksProxySetup_Status: String { return self._s[2717]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2718]! } - public var PrivacyPolicy_Accept: String { return self._s[2719]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2720]! } - public var Appearance_AppIconClassicX: String { return self._s[2721]! } + public var Login_InvalidFirstNameError: String { return self._s[2708]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2709]! } + public var Checkout_PaymentMethod_New: String { return self._s[2710]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2711]! } + public var PhotoEditor_QualityTool: String { return self._s[2712]! } + public var Login_SendCodeViaSms: String { return self._s[2713]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2714]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2715]! } + public var Wallet_Receive_CopyAddress: String { return self._s[2716]! } + public var Login_EmailNotConfiguredError: String { return self._s[2717]! } + public var SocksProxySetup_Status: String { return self._s[2718]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2719]! } + public var PrivacyPolicy_Accept: String { return self._s[2720]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2721]! } + public var Appearance_AppIconClassicX: String { return self._s[2722]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2722]!, self._r[2722]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2723]!, self._r[2723]!, [_1, _2, _3]) } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[2723]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2725]! } - public var AutoNightTheme_Automatic: String { return self._s[2726]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2727]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2728]! } - public var Cache_Help: String { return self._s[2729]! } - public var Group_ErrorAccessDenied: String { return self._s[2730]! } - public var Passport_Language_fa: String { return self._s[2731]! } - public var Wallet_Intro_Text: String { return self._s[2732]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2733]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2734]! } - public var PrivacySettings_LastSeen: String { return self._s[2735]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[2724]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2726]! } + public var AutoNightTheme_Automatic: String { return self._s[2727]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2728]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2729]! } + public var Cache_Help: String { return self._s[2730]! } + public var Group_ErrorAccessDenied: String { return self._s[2731]! } + public var Passport_Language_fa: String { return self._s[2732]! } + public var Wallet_Intro_Text: String { return self._s[2733]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2734]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2735]! } + public var PrivacySettings_LastSeen: String { return self._s[2736]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2736]!, self._r[2736]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2737]!, self._r[2737]!, [_0, _1]) } - public var Wallet_Configuration_Apply: String { return self._s[2740]! } - public var Preview_SaveGif: String { return self._s[2741]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2742]! } - public var Profile_About: String { return self._s[2743]! } - public var Channel_About_Placeholder: String { return self._s[2744]! } - public var Login_InfoTitle: String { return self._s[2745]! } + public var Wallet_Configuration_Apply: String { return self._s[2741]! } + public var Preview_SaveGif: String { return self._s[2742]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2743]! } + public var Profile_About: String { return self._s[2744]! } + public var Channel_About_Placeholder: String { return self._s[2745]! } + public var Login_InfoTitle: String { return self._s[2746]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2746]!, self._r[2746]!, [_0]) + return formatWithArgumentRanges(self._s[2747]!, self._r[2747]!, [_0]) } - public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2747]! } - public var Watch_Suggestion_CantTalk: String { return self._s[2749]! } - public var ContactInfo_Title: String { return self._s[2750]! } - public var Media_ShareThisVideo: String { return self._s[2751]! } - public var Weekday_ShortFriday: String { return self._s[2752]! } - public var AccessDenied_Contacts: String { return self._s[2754]! } - public var Notification_CallIncomingShort: String { return self._s[2755]! } - public var Group_Setup_TypePublic: String { return self._s[2756]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2757]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2758]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2761]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2762]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2763]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2764]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2765]! } + public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2748]! } + public var Watch_Suggestion_CantTalk: String { return self._s[2750]! } + public var ContactInfo_Title: String { return self._s[2751]! } + public var Media_ShareThisVideo: String { return self._s[2752]! } + public var Weekday_ShortFriday: String { return self._s[2753]! } + public var AccessDenied_Contacts: String { return self._s[2755]! } + public var Notification_CallIncomingShort: String { return self._s[2756]! } + public var Group_Setup_TypePublic: String { return self._s[2757]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2758]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[2759]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[2762]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2763]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2764]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2765]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2766]! } public func Wallet_SecureStorageChanged_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2766]!, self._r[2766]!, [_0]) + return formatWithArgumentRanges(self._s[2767]!, self._r[2767]!, [_0]) } - public var DialogList_Typing: String { return self._s[2767]! } - public var CallFeedback_IncludeLogs: String { return self._s[2769]! } - public var Checkout_Phone: String { return self._s[2771]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[2774]! } - public var Privacy_Calls_Integration: String { return self._s[2775]! } - public var Notifications_PermissionsAllow: String { return self._s[2776]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[2780]! } - public var Settings_ChatSettings: String { return self._s[2781]! } - public var Conversation_SendingOptionsTooltip: String { return self._s[2782]! } + public var DialogList_Typing: String { return self._s[2768]! } + public var CallFeedback_IncludeLogs: String { return self._s[2770]! } + public var Checkout_Phone: String { return self._s[2772]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[2775]! } + public var Privacy_Calls_Integration: String { return self._s[2776]! } + public var Notifications_PermissionsAllow: String { return self._s[2777]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[2781]! } + public var Settings_ChatSettings: String { return self._s[2782]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[2783]! } public func UserInfo_StartSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2784]!, self._r[2784]!, [_0]) + return formatWithArgumentRanges(self._s[2785]!, self._r[2785]!, [_0]) } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2785]!, self._r[2785]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2786]!, self._r[2786]!, [_1, _2]) } - public var GroupRemoved_DeleteUser: String { return self._s[2787]! } + public var GroupRemoved_DeleteUser: String { return self._s[2788]! } public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2788]!, self._r[2788]!, [_0]) + return formatWithArgumentRanges(self._s[2789]!, self._r[2789]!, [_0]) } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2789]!, self._r[2789]!, [_1]) + return formatWithArgumentRanges(self._s[2790]!, self._r[2790]!, [_1]) } - public var Login_ContinueWithLocalization: String { return self._s[2790]! } - public var Watch_Message_ForwardedFrom: String { return self._s[2791]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[2793]! } - public var Conversation_Unblock: String { return self._s[2794]! } - public var PrivacySettings_DataSettings: String { return self._s[2795]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[2796]! } - public var Group_PublicLink_Info: String { return self._s[2797]! } + public var Login_ContinueWithLocalization: String { return self._s[2791]! } + public var Watch_Message_ForwardedFrom: String { return self._s[2792]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[2794]! } + public var Conversation_Unblock: String { return self._s[2795]! } + public var PrivacySettings_DataSettings: String { return self._s[2796]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[2797]! } + public var Group_PublicLink_Info: String { return self._s[2798]! } public func Wallet_Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2798]!, self._r[2798]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2799]!, self._r[2799]!, [_1, _2, _3]) } - public var Notifications_InAppNotificationsVibrate: String { return self._s[2799]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[2800]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2800]!, self._r[2800]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2801]!, self._r[2801]!, [_0, _1]) } - public var OldChannels_ChannelsHeader: String { return self._s[2802]! } - public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2803]! } - public var PrivacySettings_Passcode: String { return self._s[2805]! } - public var Call_Mute: String { return self._s[2806]! } - public var Wallet_Weekday_Yesterday: String { return self._s[2807]! } - public var Passport_Language_dz: String { return self._s[2808]! } - public var Wallet_Receive_AmountHeader: String { return self._s[2809]! } - public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2810]! } - public var Passport_Language_tk: String { return self._s[2811]! } + public var OldChannels_ChannelsHeader: String { return self._s[2803]! } + public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2804]! } + public var PrivacySettings_Passcode: String { return self._s[2806]! } + public var Call_Mute: String { return self._s[2807]! } + public var Wallet_Weekday_Yesterday: String { return self._s[2808]! } + public var Passport_Language_dz: String { return self._s[2809]! } + public var Wallet_Receive_AmountHeader: String { return self._s[2810]! } + public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2811]! } + public var Passport_Language_tk: String { return self._s[2812]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2812]!, self._r[2812]!, [_0]) + return formatWithArgumentRanges(self._s[2813]!, self._r[2813]!, [_0]) } - public var Settings_Search: String { return self._s[2813]! } - public var Wallet_Month_ShortFebruary: String { return self._s[2814]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2815]! } - public var Wallet_Configuration_SourceJSON: String { return self._s[2816]! } - public var Conversation_ContextMenuReply: String { return self._s[2817]! } - public var WallpaperSearch_ColorBrown: String { return self._s[2818]! } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2819]! } - public var Tour_Title1: String { return self._s[2820]! } - public var Wallet_Alert_Cancel: String { return self._s[2821]! } - public var Conversation_ClearGroupHistory: String { return self._s[2823]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2824]! } - public var WallpaperPreview_Motion: String { return self._s[2825]! } + public var Settings_Search: String { return self._s[2814]! } + public var Wallet_Month_ShortFebruary: String { return self._s[2815]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2816]! } + public var Wallet_Configuration_SourceJSON: String { return self._s[2817]! } + public var Conversation_ContextMenuReply: String { return self._s[2818]! } + public var WallpaperSearch_ColorBrown: String { return self._s[2819]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2820]! } + public var Tour_Title1: String { return self._s[2821]! } + public var Wallet_Alert_Cancel: String { return self._s[2822]! } + public var Conversation_ClearGroupHistory: String { return self._s[2824]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2825]! } + public var WallpaperPreview_Motion: String { return self._s[2826]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2826]!, self._r[2826]!, [_0]) + return formatWithArgumentRanges(self._s[2827]!, self._r[2827]!, [_0]) } - public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2827]! } - public var Call_RateCall: String { return self._s[2828]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2829]! } - public var Passport_PasswordCompleteSetup: String { return self._s[2830]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2831]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[2833]! } + public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2828]! } + public var Call_RateCall: String { return self._s[2829]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2830]! } + public var Passport_PasswordCompleteSetup: String { return self._s[2831]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2832]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[2834]! } public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2835]!, self._r[2835]!, [_0]) + return formatWithArgumentRanges(self._s[2836]!, self._r[2836]!, [_0]) } - public var Compose_Create: String { return self._s[2836]! } - public var Contacts_InviteToTelegram: String { return self._s[2837]! } - public var GroupInfo_Notifications: String { return self._s[2838]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2840]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[2841]! } - public var Month_GenApril: String { return self._s[2842]! } - public var Appearance_AutoNightTheme: String { return self._s[2843]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[2845]! } - public var Login_CodeSentSms: String { return self._s[2847]! } + public var Compose_Create: String { return self._s[2837]! } + public var Contacts_InviteToTelegram: String { return self._s[2838]! } + public var GroupInfo_Notifications: String { return self._s[2839]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2841]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[2842]! } + public var Month_GenApril: String { return self._s[2843]! } + public var Appearance_AutoNightTheme: String { return self._s[2844]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[2846]! } + public var Login_CodeSentSms: String { return self._s[2848]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2848]!, self._r[2848]!, [_0]) + return formatWithArgumentRanges(self._s[2849]!, self._r[2849]!, [_0]) } - public var EmptyGroupInfo_Line3: String { return self._s[2849]! } - public var LogoutOptions_ContactSupportText: String { return self._s[2850]! } - public var Passport_Language_hr: String { return self._s[2851]! } - public var Common_ActionNotAllowedError: String { return self._s[2852]! } + public var EmptyGroupInfo_Line3: String { return self._s[2850]! } + public var LogoutOptions_ContactSupportText: String { return self._s[2851]! } + public var Passport_Language_hr: String { return self._s[2852]! } + public var Common_ActionNotAllowedError: String { return self._s[2853]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2853]!, self._r[2853]!, [_0]) + return formatWithArgumentRanges(self._s[2854]!, self._r[2854]!, [_0]) } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[2854]! } - public var Wallet_Info_TransactionFrom: String { return self._s[2855]! } - public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2856]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2857]! } - public var Privacy_SecretChatsTitle: String { return self._s[2858]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2860]! } - public var GroupInfo_AddUserLeftError: String { return self._s[2861]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2862]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[2863]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2864]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[2865]! } - public var Preview_DeleteGif: String { return self._s[2866]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2867]! } - public var Group_ErrorNotMutualContact: String { return self._s[2868]! } - public var Notification_MessageLifetime5s: String { return self._s[2869]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[2870]! } - public var OldChannels_ChannelFormat: String { return self._s[2871]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[2855]! } + public var Wallet_Info_TransactionFrom: String { return self._s[2856]! } + public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2857]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2858]! } + public var Privacy_SecretChatsTitle: String { return self._s[2859]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2861]! } + public var GroupInfo_AddUserLeftError: String { return self._s[2862]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2863]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[2864]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2865]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[2866]! } + public var Preview_DeleteGif: String { return self._s[2867]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2868]! } + public var Group_ErrorNotMutualContact: String { return self._s[2869]! } + public var Notification_MessageLifetime5s: String { return self._s[2870]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[2871]! } + public var OldChannels_ChannelFormat: String { return self._s[2872]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2872]!, self._r[2872]!, [_0]) + return formatWithArgumentRanges(self._s[2873]!, self._r[2873]!, [_0]) } - public var VoiceOver_Chat_Video: String { return self._s[2873]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2875]! } - public var ReportSpam_DeleteThisChat: String { return self._s[2876]! } - public var Passport_Address_AddBankStatement: String { return self._s[2877]! } - public var Notification_CallIncoming: String { return self._s[2878]! } - public var Wallet_Words_NotDoneTitle: String { return self._s[2879]! } - public var Compose_NewGroupTitle: String { return self._s[2880]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2882]! } - public var Passport_Address_Postcode: String { return self._s[2884]! } + public var VoiceOver_Chat_Video: String { return self._s[2874]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2876]! } + public var ReportSpam_DeleteThisChat: String { return self._s[2877]! } + public var Passport_Address_AddBankStatement: String { return self._s[2878]! } + public var Notification_CallIncoming: String { return self._s[2879]! } + public var Wallet_Words_NotDoneTitle: String { return self._s[2880]! } + public var Compose_NewGroupTitle: String { return self._s[2881]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2883]! } + public var Passport_Address_Postcode: String { return self._s[2885]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2885]!, self._r[2885]!, [_0]) + return formatWithArgumentRanges(self._s[2886]!, self._r[2886]!, [_0]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2886]! } - public var Wallet_Month_ShortOctober: String { return self._s[2887]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2888]! } - public var WallpaperColors_Title: String { return self._s[2889]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2890]! } - public var VoiceOver_MessageContextForward: String { return self._s[2891]! } - public var GroupPermission_Duration: String { return self._s[2892]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2887]! } + public var Wallet_Month_ShortOctober: String { return self._s[2888]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2889]! } + public var WallpaperColors_Title: String { return self._s[2890]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2891]! } + public var VoiceOver_MessageContextForward: String { return self._s[2892]! } + public var GroupPermission_Duration: String { return self._s[2893]! } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2893]!, self._r[2893]!, [_0]) + return formatWithArgumentRanges(self._s[2894]!, self._r[2894]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2894]! } - public var Username_Placeholder: String { return self._s[2895]! } - public var CallFeedback_WhatWentWrong: String { return self._s[2896]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2897]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2898]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2895]! } + public var Username_Placeholder: String { return self._s[2896]! } + public var CallFeedback_WhatWentWrong: String { return self._s[2897]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2898]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2899]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2900]!, self._r[2900]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2901]!, self._r[2901]!, [_1, _2]) } - public var Passport_PasswordDescription: String { return self._s[2901]! } - public var Channel_MessagePhotoUpdated: String { return self._s[2902]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[2903]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2904]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[2905]! } - public var Conversation_ContextMenuMore: String { return self._s[2906]! } - public var Privacy_PaymentsClearInfo: String { return self._s[2907]! } - public var CallSettings_TabIcon: String { return self._s[2908]! } - public var KeyCommand_Find: String { return self._s[2909]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2910]! } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2911]! } - public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2912]! } - public var Message_PinnedGame: String { return self._s[2913]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2914]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2916]! } - public var Login_CallRequestState2: String { return self._s[2918]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2920]! } + public var Passport_PasswordDescription: String { return self._s[2902]! } + public var Channel_MessagePhotoUpdated: String { return self._s[2903]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[2904]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2905]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[2906]! } + public var Conversation_ContextMenuMore: String { return self._s[2907]! } + public var Privacy_PaymentsClearInfo: String { return self._s[2908]! } + public var CallSettings_TabIcon: String { return self._s[2909]! } + public var KeyCommand_Find: String { return self._s[2910]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2911]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2912]! } + public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2913]! } + public var Message_PinnedGame: String { return self._s[2914]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2915]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2917]! } + public var Login_CallRequestState2: String { return self._s[2919]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2921]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2921]!, self._r[2921]!, [_0]) + return formatWithArgumentRanges(self._s[2922]!, self._r[2922]!, [_0]) } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_0]) + return formatWithArgumentRanges(self._s[2924]!, self._r[2924]!, [_0]) } - public var AuthSessions_AddDevice: String { return self._s[2924]! } - public var WallpaperPreview_Blurred: String { return self._s[2925]! } - public var Conversation_InstantPagePreview: String { return self._s[2926]! } + public var AuthSessions_AddDevice: String { return self._s[2925]! } + public var WallpaperPreview_Blurred: String { return self._s[2926]! } + public var Conversation_InstantPagePreview: String { return self._s[2927]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2927]!, self._r[2927]!, [_0]) + return formatWithArgumentRanges(self._s[2928]!, self._r[2928]!, [_0]) } - public var SecretTimer_VideoDescription: String { return self._s[2930]! } - public var WallpaperSearch_ColorRed: String { return self._s[2931]! } - public var GroupPermission_NoPinMessages: String { return self._s[2932]! } - public var Passport_Language_es: String { return self._s[2933]! } - public var Permissions_ContactsAllow_v0: String { return self._s[2935]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2936]! } + public var SecretTimer_VideoDescription: String { return self._s[2931]! } + public var WallpaperSearch_ColorRed: String { return self._s[2932]! } + public var GroupPermission_NoPinMessages: String { return self._s[2933]! } + public var Passport_Language_es: String { return self._s[2934]! } + public var Permissions_ContactsAllow_v0: String { return self._s[2936]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2937]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2937]!, self._r[2937]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2938]!, self._r[2938]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[2938]! } - public var WebPreview_GettingLinkInfo: String { return self._s[2939]! } - public var Watch_UserInfo_Unmute: String { return self._s[2940]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2941]! } - public var AccessDenied_CameraRestricted: String { return self._s[2943]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[2939]! } + public var WebPreview_GettingLinkInfo: String { return self._s[2940]! } + public var Watch_UserInfo_Unmute: String { return self._s[2941]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2942]! } + public var AccessDenied_CameraRestricted: String { return self._s[2944]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2944]!, self._r[2944]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2945]!, self._r[2945]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[2946]! } - public var Settings_CopyUsername: String { return self._s[2947]! } - public var Contacts_SearchLabel: String { return self._s[2948]! } - public var Map_OpenInYandexNavigator: String { return self._s[2950]! } - public var PasscodeSettings_EncryptData: String { return self._s[2951]! } - public var Settings_Wallet: String { return self._s[2952]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2953]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[2954]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[2955]! } - public var DialogList_AdNoticeAlert: String { return self._s[2956]! } - public var Wallet_Month_GenMay: String { return self._s[2958]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2959]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2960]! } - public var Localization_LanguageCustom: String { return self._s[2961]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2962]! } - public var CallFeedback_Title: String { return self._s[2963]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2966]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2967]! } - public var Wallet_Intro_CreateErrorTitle: String { return self._s[2968]! } - public var Conversation_InfoGroup: String { return self._s[2969]! } - public var Compose_NewMessage: String { return self._s[2970]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2971]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2972]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2973]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2974]! } + public var ChatList_ReadAll: String { return self._s[2947]! } + public var Settings_CopyUsername: String { return self._s[2948]! } + public var Contacts_SearchLabel: String { return self._s[2949]! } + public var Map_OpenInYandexNavigator: String { return self._s[2951]! } + public var PasscodeSettings_EncryptData: String { return self._s[2952]! } + public var Settings_Wallet: String { return self._s[2953]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2954]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2955]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[2956]! } + public var DialogList_AdNoticeAlert: String { return self._s[2957]! } + public var Wallet_Month_GenMay: String { return self._s[2959]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2960]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2961]! } + public var Localization_LanguageCustom: String { return self._s[2962]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2963]! } + public var CallFeedback_Title: String { return self._s[2964]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2967]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2968]! } + public var Wallet_Intro_CreateErrorTitle: String { return self._s[2969]! } + public var Conversation_InfoGroup: String { return self._s[2970]! } + public var Compose_NewMessage: String { return self._s[2971]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2972]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2973]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2974]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2975]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2975]!, self._r[2975]!, [_0]) + return formatWithArgumentRanges(self._s[2976]!, self._r[2976]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2976]! } - public var Login_CancelSignUpConfirmation: String { return self._s[2977]! } - public var ChangePhoneNumberCode_Help: String { return self._s[2978]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[2979]! } - public var Channel_BlackList_Title: String { return self._s[2980]! } - public var UserInfo_PhoneCall: String { return self._s[2981]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2983]! } - public var Wallet_Month_ShortJanuary: String { return self._s[2984]! } - public var State_connecting: String { return self._s[2985]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2986]! } - public var Wallet_Month_GenMarch: String { return self._s[2987]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2988]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[2989]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2977]! } + public var Login_CancelSignUpConfirmation: String { return self._s[2978]! } + public var ChangePhoneNumberCode_Help: String { return self._s[2979]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[2980]! } + public var Channel_BlackList_Title: String { return self._s[2981]! } + public var UserInfo_PhoneCall: String { return self._s[2982]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2984]! } + public var Wallet_Month_ShortJanuary: String { return self._s[2985]! } + public var State_connecting: String { return self._s[2986]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2987]! } + public var Wallet_Month_GenMarch: String { return self._s[2988]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2989]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[2990]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2990]!, self._r[2990]!, [_0]) - } - public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2991]!, self._r[2991]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[2992]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2993]! } - public var Passport_Identity_EditPassport: String { return self._s[2994]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2996]! } - public var Localization_EnglishLanguageName: String { return self._s[2997]! } - public var Share_AuthDescription: String { return self._s[2998]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2999]! } - public var Passport_Identity_Surname: String { return self._s[3000]! } - public var Compose_TokenListPlaceholder: String { return self._s[3001]! } - public var Wallet_AccessDenied_Camera: String { return self._s[3002]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[3003]! } - public var Settings_AboutEmpty: String { return self._s[3004]! } - public var Conversation_Unmute: String { return self._s[3005]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[3007]! } - public var Wallet_Sending_Text: String { return self._s[3008]! } - public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3009]!, self._r[3009]!, [_1]) + public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2992]!, self._r[2992]!, [_0]) } - public var Login_CodeSentCall: String { return self._s[3010]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3012]! } - public var ChatSettings_Appearance: String { return self._s[3013]! } - public var ClearCache_StorageUsage: String { return self._s[3014]! } - public var Appearance_PickAccentColor: String { return self._s[3015]! } + public var Notifications_GroupNotifications: String { return self._s[2993]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2994]! } + public var Passport_Identity_EditPassport: String { return self._s[2995]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2997]! } + public var Localization_EnglishLanguageName: String { return self._s[2998]! } + public var Share_AuthDescription: String { return self._s[2999]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[3000]! } + public var Passport_Identity_Surname: String { return self._s[3001]! } + public var Compose_TokenListPlaceholder: String { return self._s[3002]! } + public var Wallet_AccessDenied_Camera: String { return self._s[3003]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[3004]! } + public var Settings_AboutEmpty: String { return self._s[3005]! } + public var Conversation_Unmute: String { return self._s[3006]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[3008]! } + public var Wallet_Sending_Text: String { return self._s[3009]! } + public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3010]!, self._r[3010]!, [_1]) + } + public var Login_CodeSentCall: String { return self._s[3011]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3013]! } + public var ChatSettings_Appearance: String { return self._s[3014]! } + public var ClearCache_StorageUsage: String { return self._s[3015]! } + public var Appearance_PickAccentColor: String { return self._s[3016]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3016]!, self._r[3016]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3017]!, self._r[3017]!, [_1, _2]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3017]!, self._r[3017]!, [_1]) + return formatWithArgumentRanges(self._s[3018]!, self._r[3018]!, [_1]) } - public var Notification_CallMissed: String { return self._s[3018]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3019]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3020]! } - public var Wallet_Month_GenOctober: String { return self._s[3022]! } - public var ChatAdmins_AdminLabel: String { return self._s[3023]! } - public var KeyCommand_JumpToNextChat: String { return self._s[3024]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[3026]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3027]! } - public var Month_GenJune: String { return self._s[3028]! } - public var IntentsSettings_MainAccountInfo: String { return self._s[3029]! } - public var Watch_Location_Current: String { return self._s[3030]! } - public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3031]! } - public var Conversation_TitleMute: String { return self._s[3032]! } - public var Map_PlacesInThisArea: String { return self._s[3033]! } + public var Notification_CallMissed: String { return self._s[3019]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3020]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3021]! } + public var Wallet_Month_GenOctober: String { return self._s[3023]! } + public var ChatAdmins_AdminLabel: String { return self._s[3024]! } + public var KeyCommand_JumpToNextChat: String { return self._s[3025]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[3027]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3028]! } + public var Month_GenJune: String { return self._s[3029]! } + public var IntentsSettings_MainAccountInfo: String { return self._s[3030]! } + public var Watch_Location_Current: String { return self._s[3031]! } + public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3032]! } + public var Conversation_TitleMute: String { return self._s[3033]! } + public var Map_PlacesInThisArea: String { return self._s[3034]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3034]!, self._r[3034]!, [_1]) + return formatWithArgumentRanges(self._s[3035]!, self._r[3035]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[3035]! } + public var GroupInfo_DeleteAndExit: String { return self._s[3036]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3036]!, self._r[3036]!, [_0]) + return formatWithArgumentRanges(self._s[3037]!, self._r[3037]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[3037]! } - public var Chat_SlowmodeSendError: String { return self._s[3038]! } - public var MaskStickerSettings_Info: String { return self._s[3039]! } - public var EditTheme_Expand_TopInfo: String { return self._s[3040]! } + public var Call_ReportPlaceholder: String { return self._s[3038]! } + public var Chat_SlowmodeSendError: String { return self._s[3039]! } + public var MaskStickerSettings_Info: String { return self._s[3040]! } + public var EditTheme_Expand_TopInfo: String { return self._s[3041]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3041]!, self._r[3041]!, [_0]) + return formatWithArgumentRanges(self._s[3042]!, self._r[3042]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[3042]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3044]! } - public var Contacts_ShareTelegram: String { return self._s[3045]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3046]! } - public var Map_AddressOnMap: String { return self._s[3047]! } - public var Channel_ErrorAccessDenied: String { return self._s[3048]! } - public var UserInfo_ScamBotWarning: String { return self._s[3050]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[3051]! } - public var Call_ConnectionErrorTitle: String { return self._s[3052]! } - public var UserInfo_NotificationsEnable: String { return self._s[3053]! } - public var ArchivedChats_IntroText1: String { return self._s[3054]! } - public var Tour_Text4: String { return self._s[3057]! } - public var WallpaperSearch_Recent: String { return self._s[3058]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[3059]! } - public var Profile_MessageLifetime2s: String { return self._s[3061]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3062]! } - public var Notification_MessageLifetime2s: String { return self._s[3063]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[3043]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3045]! } + public var Contacts_ShareTelegram: String { return self._s[3046]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3047]! } + public var Map_AddressOnMap: String { return self._s[3048]! } + public var Channel_ErrorAccessDenied: String { return self._s[3049]! } + public var UserInfo_ScamBotWarning: String { return self._s[3051]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[3052]! } + public var Call_ConnectionErrorTitle: String { return self._s[3053]! } + public var UserInfo_NotificationsEnable: String { return self._s[3054]! } + public var ArchivedChats_IntroText1: String { return self._s[3055]! } + public var Tour_Text4: String { return self._s[3058]! } + public var WallpaperSearch_Recent: String { return self._s[3059]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[3060]! } + public var Profile_MessageLifetime2s: String { return self._s[3062]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3063]! } + public var Notification_MessageLifetime2s: String { return self._s[3064]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3064]!, self._r[3064]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3065]!, self._r[3065]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[3065]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3066]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3067]! } + public var Cache_ClearCache: String { return self._s[3066]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3067]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3068]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3071]!, self._r[3071]!, [_0]) + return formatWithArgumentRanges(self._s[3072]!, self._r[3072]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3073]!, self._r[3073]!, [_0]) + return formatWithArgumentRanges(self._s[3074]!, self._r[3074]!, [_0]) } - public var LocalGroup_Text: String { return self._s[3074]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3075]! } - public var SocksProxySetup_TypeSocks: String { return self._s[3076]! } - public var ChatList_UnarchiveAction: String { return self._s[3077]! } - public var AutoNightTheme_Title: String { return self._s[3078]! } - public var InstantPage_FeedbackButton: String { return self._s[3079]! } - public var Passport_FieldAddress: String { return self._s[3080]! } + public var LocalGroup_Text: String { return self._s[3075]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3076]! } + public var SocksProxySetup_TypeSocks: String { return self._s[3077]! } + public var ChatList_UnarchiveAction: String { return self._s[3078]! } + public var AutoNightTheme_Title: String { return self._s[3079]! } + public var InstantPage_FeedbackButton: String { return self._s[3080]! } + public var Passport_FieldAddress: String { return self._s[3081]! } public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3081]!, self._r[3081]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3082]!, self._r[3082]!, [_1, _2]) } - public var Month_ShortMarch: String { return self._s[3082]! } + public var Month_ShortMarch: String { return self._s[3083]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3083]!, self._r[3083]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3084]!, self._r[3084]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3084]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3085]! } - public var Passport_FloodError: String { return self._s[3086]! } - public var SecretGif_Title: String { return self._s[3087]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3088]! } - public var ChatList_Context_UnhideArchive: String { return self._s[3089]! } - public var Passport_Language_th: String { return self._s[3091]! } - public var Passport_Address_Address: String { return self._s[3092]! } - public var Login_InvalidLastNameError: String { return self._s[3093]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3094]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[3095]! } - public var ChatList_Context_Archive: String { return self._s[3096]! } - public var SettingsSearch_FAQ: String { return self._s[3097]! } - public var ShareMenu_Send: String { return self._s[3098]! } - public var WallpaperSearch_ColorYellow: String { return self._s[3100]! } - public var Month_GenNovember: String { return self._s[3102]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3104]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3085]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3086]! } + public var Passport_FloodError: String { return self._s[3087]! } + public var SecretGif_Title: String { return self._s[3088]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3089]! } + public var ChatList_Context_UnhideArchive: String { return self._s[3090]! } + public var Passport_Language_th: String { return self._s[3092]! } + public var Passport_Address_Address: String { return self._s[3093]! } + public var Login_InvalidLastNameError: String { return self._s[3094]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3095]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[3096]! } + public var ChatList_Context_Archive: String { return self._s[3097]! } + public var SettingsSearch_FAQ: String { return self._s[3098]! } + public var ShareMenu_Send: String { return self._s[3099]! } + public var WallpaperSearch_ColorYellow: String { return self._s[3101]! } + public var Month_GenNovember: String { return self._s[3103]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3105]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3105]!, self._r[3105]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3106]!, self._r[3106]!, [_1, _2]) } - public var Conversation_SwipeToReplyHintText: String { return self._s[3106]! } - public var Checkout_Email: String { return self._s[3107]! } - public var NotificationsSound_Tritone: String { return self._s[3108]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[3110]! } - public var Wallet_ContextMenuCopy: String { return self._s[3112]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3107]! } + public var Checkout_Email: String { return self._s[3108]! } + public var NotificationsSound_Tritone: String { return self._s[3109]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[3111]! } + public var Wallet_ContextMenuCopy: String { return self._s[3113]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3114]!, self._r[3114]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3115]!, self._r[3115]!, [_1, _2, _3]) } - public var Appearance_TextSize_Automatic: String { return self._s[3115]! } + public var Appearance_TextSize_Automatic: String { return self._s[3116]! } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3116]!, self._r[3116]!, [_1]) + return formatWithArgumentRanges(self._s[3117]!, self._r[3117]!, [_1]) } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3117]!, self._r[3117]!, [_0]) + return formatWithArgumentRanges(self._s[3118]!, self._r[3118]!, [_0]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[3118]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[3119]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3119]!, self._r[3119]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3120]!, self._r[3120]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[3120]! } - public var Notification_Exceptions_Add: String { return self._s[3121]! } - public var DialogList_You: String { return self._s[3122]! } - public var MediaPicker_Send: String { return self._s[3125]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3126]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3127]! } - public var Call_AudioRouteSpeaker: String { return self._s[3128]! } - public var Watch_UserInfo_Title: String { return self._s[3129]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[3130]! } - public var Appearance_AccentColor: String { return self._s[3132]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3121]! } + public var Notification_Exceptions_Add: String { return self._s[3122]! } + public var DialogList_You: String { return self._s[3123]! } + public var MediaPicker_Send: String { return self._s[3126]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3127]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3128]! } + public var Call_AudioRouteSpeaker: String { return self._s[3129]! } + public var Watch_UserInfo_Title: String { return self._s[3130]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[3131]! } + public var Appearance_AccentColor: String { return self._s[3133]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3133]!, self._r[3133]!, [_0]) + return formatWithArgumentRanges(self._s[3134]!, self._r[3134]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3134]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3135]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3135]!, self._r[3135]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3136]!, self._r[3136]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[3136]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3137]! } - public var Notification_CallOutgoing: String { return self._s[3138]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3139]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3140]! } - public var Call_RecordingDisabledMessage: String { return self._s[3141]! } - public var Message_Game: String { return self._s[3142]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[3143]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3144]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3145]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3146]! } - public var Date_DialogDateFormat: String { return self._s[3148]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3149]! } - public var Notifications_InAppNotifications: String { return self._s[3150]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[3137]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3138]! } + public var Notification_CallOutgoing: String { return self._s[3139]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3140]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3141]! } + public var Call_RecordingDisabledMessage: String { return self._s[3142]! } + public var Message_Game: String { return self._s[3143]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[3144]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3145]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3146]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3147]! } + public var Date_DialogDateFormat: String { return self._s[3149]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3150]! } + public var Notifications_InAppNotifications: String { return self._s[3151]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3151]!, self._r[3151]!, [_0]) + return formatWithArgumentRanges(self._s[3152]!, self._r[3152]!, [_0]) } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3152]!, self._r[3152]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3153]!, self._r[3153]!, [_1, _2]) } - public var NewContact_Title: String { return self._s[3153]! } + public var NewContact_Title: String { return self._s[3154]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3154]!, self._r[3154]!, [_0]) + return formatWithArgumentRanges(self._s[3155]!, self._r[3155]!, [_0]) } - public var Conversation_ViewContactDetails: String { return self._s[3155]! } + public var Conversation_ViewContactDetails: String { return self._s[3156]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3157]!, self._r[3157]!, [_1]) + return formatWithArgumentRanges(self._s[3158]!, self._r[3158]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3158]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3159]! } - public var PrivacySettings_Title: String { return self._s[3160]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3163]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[3164]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[3165]! } - public var Contacts_PhoneNumber: String { return self._s[3166]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3168]! } - public var Map_ShowPlaces: String { return self._s[3169]! } - public var ChatAdmins_Title: String { return self._s[3170]! } - public var InstantPage_Reference: String { return self._s[3172]! } - public var Wallet_Info_Updating: String { return self._s[3173]! } - public var ReportGroupLocation_Text: String { return self._s[3174]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3159]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3160]! } + public var PrivacySettings_Title: String { return self._s[3161]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3164]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[3165]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[3166]! } + public var Contacts_PhoneNumber: String { return self._s[3167]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3169]! } + public var Map_ShowPlaces: String { return self._s[3170]! } + public var ChatAdmins_Title: String { return self._s[3171]! } + public var InstantPage_Reference: String { return self._s[3173]! } + public var Wallet_Info_Updating: String { return self._s[3174]! } + public var ReportGroupLocation_Text: String { return self._s[3175]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3175]!, self._r[3175]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3176]!, self._r[3176]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[3176]! } - public var Watch_UserInfo_Block: String { return self._s[3177]! } - public var ChatSettings_Stickers: String { return self._s[3178]! } - public var ChatSettings_DownloadInBackground: String { return self._s[3179]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3180]! } + public var Camera_FlashOff: String { return self._s[3177]! } + public var Watch_UserInfo_Block: String { return self._s[3178]! } + public var ChatSettings_Stickers: String { return self._s[3179]! } + public var ChatSettings_DownloadInBackground: String { return self._s[3180]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3181]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3181]!, self._r[3181]!, [_0]) + return formatWithArgumentRanges(self._s[3182]!, self._r[3182]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[3182]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3183]! } - public var AutoDownloadSettings_Cellular: String { return self._s[3184]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[3185]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3186]! } - public var VoiceOver_MessageContextShare: String { return self._s[3187]! } + public var Settings_ViewPhoto: String { return self._s[3183]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3184]! } + public var AutoDownloadSettings_Cellular: String { return self._s[3185]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[3186]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3187]! } + public var VoiceOver_MessageContextShare: String { return self._s[3188]! } public func Target_InviteToGroupConfirmation(_ _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 Privacy_DeleteDrafts: String { return self._s[3190]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3191]! } + public var Privacy_DeleteDrafts: String { return self._s[3191]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3192]! } public func LastSeen_AtDate(_ _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 DialogList_SavedMessagesHelp: String { return self._s[3193]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3194]! } - public var DialogList_SavedMessages: String { return self._s[3195]! } - public var GroupInfo_UpgradeButton: String { return self._s[3196]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3198]! } - public var DialogList_Pin: String { return self._s[3199]! } + public var DialogList_SavedMessagesHelp: String { return self._s[3194]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3195]! } + public var DialogList_SavedMessages: String { return self._s[3196]! } + public var GroupInfo_UpgradeButton: String { return self._s[3197]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3199]! } + public var DialogList_Pin: String { return self._s[3200]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3200]!, self._r[3200]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3201]!, self._r[3201]!, [_0, _1]) } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3201]!, self._r[3201]!, [_0]) + return formatWithArgumentRanges(self._s[3202]!, self._r[3202]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3202]! } - public var UserInfo_NotificationsDisable: String { return self._s[3203]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[3204]! } - public var Paint_Outlined: String { return self._s[3205]! } - public var Activity_PlayingGame: String { return self._s[3206]! } - public var SearchImages_NoImagesFound: String { return self._s[3207]! } - public var SocksProxySetup_ProxyType: String { return self._s[3208]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3210]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3211]! } - public var Settings_AppLanguage: String { return self._s[3212]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3213]! } - public var Common_ChoosePhoto: String { return self._s[3214]! } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3215]! } - public var CallFeedback_ReasonEcho: String { return self._s[3216]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3203]! } + public var UserInfo_NotificationsDisable: String { return self._s[3204]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[3205]! } + public var Paint_Outlined: String { return self._s[3206]! } + public var Activity_PlayingGame: String { return self._s[3207]! } + public var SearchImages_NoImagesFound: String { return self._s[3208]! } + public var SocksProxySetup_ProxyType: String { return self._s[3209]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3211]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3212]! } + public var Settings_AppLanguage: String { return self._s[3213]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3214]! } + public var Common_ChoosePhoto: String { return self._s[3215]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3216]! } + public var CallFeedback_ReasonEcho: String { return self._s[3217]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3217]!, self._r[3217]!, [_1]) + return formatWithArgumentRanges(self._s[3218]!, self._r[3218]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3218]! } - public var PollResults_Collapse: String { return self._s[3219]! } - public var Activity_UploadingVideo: String { return self._s[3220]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3221]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3222]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3223]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3224]! } - public var PUSH_SENDER_YOU: String { return self._s[3225]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3226]! } - public var Checkout_PayWithTouchId: String { return self._s[3227]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3228]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3219]! } + public var PollResults_Collapse: String { return self._s[3220]! } + public var Activity_UploadingVideo: String { return self._s[3221]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3222]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3223]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3224]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3225]! } + public var PUSH_SENDER_YOU: String { return self._s[3226]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3227]! } + public var Checkout_PayWithTouchId: String { return self._s[3228]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3229]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3230]!, self._r[3230]!, [_1]) + return formatWithArgumentRanges(self._s[3231]!, self._r[3231]!, [_1]) } - public var Notifications_ExceptionsNone: String { return self._s[3231]! } + public var Notifications_ExceptionsNone: String { return self._s[3232]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3232]!, self._r[3232]!, [_0]) + return formatWithArgumentRanges(self._s[3233]!, self._r[3233]!, [_0]) } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3233]!, self._r[3233]!, [_1]) + return formatWithArgumentRanges(self._s[3234]!, self._r[3234]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3235]! } - public var Passport_Address_Region: String { return self._s[3238]! } - public var ChatList_DeleteChat: String { return self._s[3239]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3240]! } - public var PhotoEditor_TiltShift: String { return self._s[3241]! } - public var Settings_FAQ_URL: String { return self._s[3242]! } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3243]! } - public var Passport_Language_sl: String { return self._s[3244]! } - public var Settings_PrivacySettings: String { return self._s[3246]! } - public var SharedMedia_TitleLink: String { return self._s[3247]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3248]! } - public var Settings_SetProfilePhoto: String { return self._s[3249]! } - public var Channel_About_Help: String { return self._s[3250]! } - public var Contacts_PermissionsEnable: String { return self._s[3251]! } - public var Wallet_Sending_Title: String { return self._s[3252]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3253]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3254]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3256]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3257]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3258]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3259]! } - public var OldChannels_Title: String { return self._s[3260]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3261]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3263]! } - public var Map_OpenInYandexMaps: String { return self._s[3265]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3266]! } - public var VoiceOver_MessageContextReply: String { return self._s[3267]! } - public var PhotoEditor_SaturationTool: String { return self._s[3269]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3236]! } + public var Passport_Address_Region: String { return self._s[3239]! } + public var ChatList_DeleteChat: String { return self._s[3240]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3241]! } + public var PhotoEditor_TiltShift: String { return self._s[3242]! } + public var Settings_FAQ_URL: String { return self._s[3243]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3244]! } + public var Passport_Language_sl: String { return self._s[3245]! } + public var Settings_PrivacySettings: String { return self._s[3247]! } + public var SharedMedia_TitleLink: String { return self._s[3248]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3249]! } + public var Settings_SetProfilePhoto: String { return self._s[3250]! } + public var Channel_About_Help: String { return self._s[3251]! } + public var Contacts_PermissionsEnable: String { return self._s[3252]! } + public var Wallet_Sending_Title: String { return self._s[3253]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3254]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3255]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3257]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3258]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3259]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3260]! } + public var OldChannels_Title: String { return self._s[3261]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3262]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3264]! } + public var Map_OpenInYandexMaps: String { return self._s[3266]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3267]! } + public var VoiceOver_MessageContextReply: String { return self._s[3268]! } + public var PhotoEditor_SaturationTool: String { return self._s[3270]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3270]!, self._r[3270]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3271]!, self._r[3271]!, [_1, _2]) } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3271]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3272]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3273]! } + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3272]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3273]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3274]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3275]!, self._r[3275]!, [_1, "\(_2)"]) } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3275]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3277]! } - public var SettingsSearch_Synonyms_Wallet: String { return self._s[3278]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3276]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3278]! } + public var SettingsSearch_Synonyms_Wallet: String { return self._s[3279]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _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 Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3280]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3281]! } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3281]!, self._r[3281]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3282]!, self._r[3282]!, [_1, _2, _3]) } - public var WallpaperPreview_PatternTitle: String { return self._s[3282]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[3283]! } - public var Passport_PassportInformation: String { return self._s[3286]! } - public var Theme_Unsupported: String { return self._s[3287]! } - public var WatchRemote_AlertTitle: String { return self._s[3288]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3289]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3291]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3283]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3284]! } + public var Passport_PassportInformation: String { return self._s[3287]! } + public var Theme_Unsupported: String { return self._s[3288]! } + public var WatchRemote_AlertTitle: String { return self._s[3289]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3290]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3292]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3292]!, self._r[3292]!, [_0]) + return formatWithArgumentRanges(self._s[3293]!, self._r[3293]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3293]!, self._r[3293]!, [_1]) + return formatWithArgumentRanges(self._s[3294]!, self._r[3294]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3294]! } - public var Wallet_Navigation_Done: String { return self._s[3296]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3297]! } - public var AccessDenied_CameraDisabled: String { return self._s[3298]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3295]! } + public var Wallet_Navigation_Done: String { return self._s[3297]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3298]! } + public var AccessDenied_CameraDisabled: String { return self._s[3299]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3299]!, self._r[3299]!, [_0]) + return formatWithArgumentRanges(self._s[3300]!, self._r[3300]!, [_0]) } - public var ClearCache_Forever: String { return self._s[3300]! } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3301]! } - public var CreatePoll_Quiz: String { return self._s[3302]! } - public var PhotoEditor_ContrastTool: String { return self._s[3305]! } + public var ClearCache_Forever: String { return self._s[3301]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3302]! } + public var CreatePoll_Quiz: String { return self._s[3303]! } + public var PhotoEditor_ContrastTool: String { return self._s[3306]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3306]!, self._r[3306]!, [_1]) + return formatWithArgumentRanges(self._s[3307]!, self._r[3307]!, [_1]) } - public var DialogList_Draft: String { return self._s[3307]! } - public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3308]! } - public var Privacy_TopPeersDelete: String { return self._s[3310]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3311]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3312]! } - public var WebSearch_RecentSectionClear: String { return self._s[3313]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3314]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3316]! } - public var Common_Done: String { return self._s[3318]! } - public var Shortcut_SwitchAccount: String { return self._s[3319]! } - public var AuthSessions_EmptyText: String { return self._s[3320]! } - public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3321]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3322]! } - public var Tour_Title5: String { return self._s[3323]! } - public var Wallet_Settings_Title: String { return self._s[3324]! } + public var DialogList_Draft: String { return self._s[3308]! } + public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3309]! } + public var Privacy_TopPeersDelete: String { return self._s[3311]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3312]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3313]! } + public var WebSearch_RecentSectionClear: String { return self._s[3314]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3315]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3317]! } + public var Common_Done: String { return self._s[3319]! } + public var Shortcut_SwitchAccount: String { return self._s[3320]! } + public var AuthSessions_EmptyText: String { return self._s[3321]! } + public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3322]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3323]! } + public var Tour_Title5: String { return self._s[3324]! } + public var Wallet_Settings_Title: String { return self._s[3325]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3325]!, self._r[3325]!, [_0]) + return formatWithArgumentRanges(self._s[3326]!, self._r[3326]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3326]! } - public var Conversation_LinkDialogSave: String { return self._s[3327]! } - public var GroupInfo_ActionRestrict: String { return self._s[3328]! } - public var Checkout_Title: String { return self._s[3329]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3331]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3333]! } - public var Notification_RenamedGroup: String { return self._s[3334]! } - public var PeopleNearby_Groups: String { return self._s[3335]! } - public var Checkout_PayWithFaceId: String { return self._s[3336]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3337]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3339]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3340]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3341]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3327]! } + public var Conversation_LinkDialogSave: String { return self._s[3328]! } + public var GroupInfo_ActionRestrict: String { return self._s[3329]! } + public var Checkout_Title: String { return self._s[3330]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3332]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3334]! } + public var Notification_RenamedGroup: String { return self._s[3335]! } + public var PeopleNearby_Groups: String { return self._s[3336]! } + public var Checkout_PayWithFaceId: String { return self._s[3337]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3338]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3340]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3341]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3342]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3342]!, self._r[3342]!, [_0]) + return formatWithArgumentRanges(self._s[3343]!, self._r[3343]!, [_0]) } - public var Profile_AddToExisting: String { return self._s[3344]! } + public var Profile_AddToExisting: String { return self._s[3345]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3345]!, self._r[3345]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3346]!, self._r[3346]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3347]! } - public var Permissions_PrivacyPolicy: String { return self._s[3348]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3349]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3350]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3352]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3354]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3355]! } + public var Cache_Files: String { return self._s[3348]! } + public var Permissions_PrivacyPolicy: String { return self._s[3349]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3350]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3351]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3353]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3355]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3356]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_0]) + return formatWithArgumentRanges(self._s[3357]!, self._r[3357]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3357]! } - public var VoiceOver_AttachMedia: String { return self._s[3360]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3361]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3358]! } + public var VoiceOver_AttachMedia: String { return self._s[3361]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3362]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3362]!, self._r[3362]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3363]!, self._r[3363]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3363]! } - public var Conversation_SetReminder_Title: String { return self._s[3364]! } - public var Passport_FieldAddressHelp: String { return self._s[3365]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3366]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3367]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3364]! } + public var Conversation_SetReminder_Title: String { return self._s[3365]! } + public var Passport_FieldAddressHelp: String { return self._s[3366]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3367]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3368]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3368]!, self._r[3368]!, [_0]) + return formatWithArgumentRanges(self._s[3369]!, self._r[3369]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3369]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3370]! } - public var Login_UnknownError: String { return self._s[3371]! } - public var Group_UpgradeNoticeText2: String { return self._s[3374]! } - public var Watch_Compose_AddContact: String { return self._s[3375]! } - public var ClearCache_StorageServiceFiles: String { return self._s[3376]! } - public var Web_Error: String { return self._s[3377]! } - public var Gif_Search: String { return self._s[3378]! } - public var Profile_MessageLifetime1h: String { return self._s[3379]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3380]! } - public var Channel_Username_CheckingUsername: String { return self._s[3381]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3382]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3383]! } - public var Channel_AboutItem: String { return self._s[3384]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3386]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3387]! } - public var GroupInfo_SharedMedia: String { return self._s[3388]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3370]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3371]! } + public var Login_UnknownError: String { return self._s[3372]! } + public var Group_UpgradeNoticeText2: String { return self._s[3375]! } + public var Watch_Compose_AddContact: String { return self._s[3376]! } + public var ClearCache_StorageServiceFiles: String { return self._s[3377]! } + public var Web_Error: String { return self._s[3378]! } + public var Gif_Search: String { return self._s[3379]! } + public var Profile_MessageLifetime1h: String { return self._s[3380]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3381]! } + public var Channel_Username_CheckingUsername: String { return self._s[3382]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3383]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3384]! } + public var Channel_AboutItem: String { return self._s[3385]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3387]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3388]! } + public var GroupInfo_SharedMedia: String { return self._s[3389]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3389]!, self._r[3389]!, [_1]) + return formatWithArgumentRanges(self._s[3390]!, self._r[3390]!, [_1]) } - public var Call_PhoneCallInProgressMessage: String { return self._s[3390]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3391]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3391]!, self._r[3391]!, [_1]) + return formatWithArgumentRanges(self._s[3392]!, self._r[3392]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3392]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3393]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3394]! } - public var CreatePoll_AddOption: String { return self._s[3395]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3396]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3397]! } - public var Channel_Management_AddModerator: String { return self._s[3398]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3399]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3400]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3401]! } - public var Theme_Colors_Background: String { return self._s[3402]! } - public var NotificationsSound_Hello: String { return self._s[3404]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3405]! } - public var Channel_Stickers_Placeholder: String { return self._s[3407]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3393]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3394]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3395]! } + public var CreatePoll_AddOption: String { return self._s[3396]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3397]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3398]! } + public var Channel_Management_AddModerator: String { return self._s[3399]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3400]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3401]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3402]! } + public var Theme_Colors_Background: String { return self._s[3403]! } + public var NotificationsSound_Hello: String { return self._s[3405]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3406]! } + public var Channel_Stickers_Placeholder: String { return self._s[3408]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3408]!, self._r[3408]!, [_0]) + return formatWithArgumentRanges(self._s[3409]!, self._r[3409]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3409]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3410]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3411]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3412]! } - public var AutoDownloadSettings_Channels: String { return self._s[3413]! } - public var Passport_Language_mn: String { return self._s[3414]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3417]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3418]! } - public var Passport_Language_ja: String { return self._s[3420]! } - public var Settings_About_Title: String { return self._s[3421]! } - public var Settings_NotificationsAndSounds: String { return self._s[3422]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3423]! } - public var Settings_BlockedUsers: String { return self._s[3424]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3410]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3411]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3412]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3413]! } + public var AutoDownloadSettings_Channels: String { return self._s[3414]! } + public var Passport_Language_mn: String { return self._s[3415]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3418]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3419]! } + public var Passport_Language_ja: String { return self._s[3421]! } + public var Settings_About_Title: String { return self._s[3422]! } + public var Settings_NotificationsAndSounds: String { return self._s[3423]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3424]! } + public var Settings_BlockedUsers: String { return self._s[3425]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3425]!, self._r[3425]!, [_0]) + return formatWithArgumentRanges(self._s[3426]!, self._r[3426]!, [_0]) } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3426]! } - public var Wallet_Weekday_Today: String { return self._s[3427]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3428]! } - public var Widget_ApplicationLocked: String { return self._s[3429]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3430]! } - public var Channel_Username_Title: String { return self._s[3431]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3427]! } + public var Wallet_Weekday_Today: String { return self._s[3428]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3429]! } + public var Widget_ApplicationLocked: String { return self._s[3430]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3431]! } + public var Channel_Username_Title: String { return self._s[3432]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3432]!, self._r[3432]!, [_0]) + return formatWithArgumentRanges(self._s[3433]!, self._r[3433]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3434]! } - public var AppleWatch_Title: String { return self._s[3435]! } - public var Activity_RecordingVideoMessage: String { return self._s[3436]! } + public var AttachmentMenu_File: String { return self._s[3435]! } + public var AppleWatch_Title: String { return self._s[3436]! } + public var Activity_RecordingVideoMessage: String { return self._s[3437]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3437]!, self._r[3437]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3438]!, self._r[3438]!, [_1, _2]) } - public var Theme_Colors_Messages: String { return self._s[3438]! } - public var Weekday_Saturday: String { return self._s[3439]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3440]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3441]! } - public var Common_Next: String { return self._s[3443]! } - public var Channel_Stickers_YourStickers: String { return self._s[3445]! } - public var Message_Theme: String { return self._s[3446]! } - public var Call_AudioRouteHeadphones: String { return self._s[3447]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3449]! } - public var Watch_Contacts_NoResults: String { return self._s[3451]! } - public var PhotoEditor_TintTool: String { return self._s[3454]! } - public var LoginPassword_ResetAccount: String { return self._s[3456]! } - public var Settings_SavedMessages: String { return self._s[3457]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3458]! } - public var Bot_GenericSupportStatus: String { return self._s[3459]! } - public var StickerPack_Add: String { return self._s[3460]! } - public var Checkout_TotalAmount: String { return self._s[3461]! } - public var Your_cards_number_is_invalid: String { return self._s[3462]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3463]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3464]! } + public var Theme_Colors_Messages: String { return self._s[3439]! } + public var Weekday_Saturday: String { return self._s[3440]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3441]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3442]! } + public var Common_Next: String { return self._s[3444]! } + public var Channel_Stickers_YourStickers: String { return self._s[3446]! } + public var Message_Theme: String { return self._s[3447]! } + public var Call_AudioRouteHeadphones: String { return self._s[3448]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3450]! } + public var Watch_Contacts_NoResults: String { return self._s[3452]! } + public var PhotoEditor_TintTool: String { return self._s[3455]! } + public var LoginPassword_ResetAccount: String { return self._s[3457]! } + public var Settings_SavedMessages: String { return self._s[3458]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3459]! } + public var Bot_GenericSupportStatus: String { return self._s[3460]! } + public var StickerPack_Add: String { return self._s[3461]! } + public var Checkout_TotalAmount: String { return self._s[3462]! } + public var Your_cards_number_is_invalid: String { return self._s[3463]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3464]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3465]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3465]!, self._r[3465]!, [_0]) + return formatWithArgumentRanges(self._s[3466]!, self._r[3466]!, [_0]) } public func GroupPermission_AddedInfo(_ _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 ChatSettings_ConnectionType_UseSocks5: String { return self._s[3467]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3468]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3469]!, self._r[3469]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3470]!, self._r[3470]!, [_1, _2]) } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3470]!, self._r[3470]!, [_0]) + return formatWithArgumentRanges(self._s[3471]!, self._r[3471]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3471]! } - public var StickerPack_Share: String { return self._s[3472]! } - public var Passport_DeleteAddress: String { return self._s[3473]! } - public var Settings_Passport: String { return self._s[3474]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3475]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3476]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3477]! } - public var Contacts_PermissionsText: String { return self._s[3478]! } - public var Group_Setup_HistoryVisible: String { return self._s[3479]! } - public var Wallet_Month_ShortDecember: String { return self._s[3481]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3482]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3483]! } - public var SocksProxySetup_Title: String { return self._s[3484]! } - public var Notification_Mute1h: String { return self._s[3485]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3472]! } + public var StickerPack_Share: String { return self._s[3473]! } + public var Passport_DeleteAddress: String { return self._s[3474]! } + public var Settings_Passport: String { return self._s[3475]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3476]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3477]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3478]! } + public var Contacts_PermissionsText: String { return self._s[3479]! } + public var Group_Setup_HistoryVisible: String { return self._s[3480]! } + public var Wallet_Month_ShortDecember: String { return self._s[3482]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3483]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3484]! } + public var SocksProxySetup_Title: String { return self._s[3485]! } + public var Notification_Mute1h: String { return self._s[3486]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3486]!, self._r[3486]!, [_0]) + return formatWithArgumentRanges(self._s[3487]!, self._r[3487]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3487]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3488]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3488]!, self._r[3488]!, [_1]) + return formatWithArgumentRanges(self._s[3489]!, self._r[3489]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3489]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3492]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3494]! } - public var DialogList_NoMessagesText: String { return self._s[3495]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3496]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3497]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3499]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3500]! } - public var Common_TakePhotoOrVideo: String { return self._s[3501]! } - public var Wallet_Words_Text: String { return self._s[3502]! } - public var Call_StatusBusy: String { return self._s[3503]! } - public var Conversation_PinnedMessage: String { return self._s[3504]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3505]! } - public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3506]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3507]! } - public var Undo_ChatCleared: String { return self._s[3508]! } - public var AppleWatch_ReplyPresets: String { return self._s[3509]! } - public var Passport_DiscardMessageDescription: String { return self._s[3511]! } - public var Login_NetworkError: String { return self._s[3512]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3490]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3493]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3495]! } + public var DialogList_NoMessagesText: String { return self._s[3496]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3497]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3498]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3500]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3501]! } + public var Common_TakePhotoOrVideo: String { return self._s[3502]! } + public var Wallet_Words_Text: String { return self._s[3503]! } + public var Call_StatusBusy: String { return self._s[3504]! } + public var Conversation_PinnedMessage: String { return self._s[3505]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3506]! } + public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3507]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3508]! } + public var Undo_ChatCleared: String { return self._s[3509]! } + public var AppleWatch_ReplyPresets: String { return self._s[3510]! } + public var Passport_DiscardMessageDescription: String { return self._s[3512]! } + public var Login_NetworkError: String { return self._s[3513]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3513]!, self._r[3513]!, [_0]) - } - public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3514]!, self._r[3514]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3515]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3517]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3518]! } + public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3515]!, self._r[3515]!, [_0]) + } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3516]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3518]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3519]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3520]!, self._r[3520]!, [_0]) + return formatWithArgumentRanges(self._s[3521]!, self._r[3521]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3521]! } - public var VoiceOver_Chat_Music: String { return self._s[3522]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3523]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3525]! } - public var ConversationMedia_Title: String { return self._s[3526]! } - public var EncryptionKey_Title: String { return self._s[3528]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3529]! } - public var Notification_Exceptions_AddException: String { return self._s[3530]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3531]! } - public var Profile_MessageLifetime1m: String { return self._s[3532]! } + public var Call_ConnectionErrorMessage: String { return self._s[3522]! } + public var VoiceOver_Chat_Music: String { return self._s[3523]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3524]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3526]! } + public var ConversationMedia_Title: String { return self._s[3527]! } + public var EncryptionKey_Title: String { return self._s[3529]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3530]! } + public var Notification_Exceptions_AddException: String { return self._s[3531]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3532]! } + public var Profile_MessageLifetime1m: String { return self._s[3533]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3533]!, self._r[3533]!, [_1]) + return formatWithArgumentRanges(self._s[3534]!, self._r[3534]!, [_1]) } - public var Month_GenMay: String { return self._s[3534]! } + public var Month_GenMay: String { return self._s[3535]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3535]!, self._r[3535]!, [_0]) + return formatWithArgumentRanges(self._s[3536]!, self._r[3536]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3536]! } - public var Wallet_Send_AddressInfo: String { return self._s[3537]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3538]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3539]! } + public var PeopleNearby_Users: String { return self._s[3537]! } + public var Wallet_Send_AddressInfo: String { return self._s[3538]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3539]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3540]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3541]!, self._r[3541]!, [_0]) + return formatWithArgumentRanges(self._s[3542]!, self._r[3542]!, [_0]) } - public var Conversation_EmptyPlaceholder: String { return self._s[3542]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3543]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3544]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3545]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3546]! } - public var Channel_JoinChannel: String { return self._s[3548]! } - public var Appearance_Animations: String { return self._s[3551]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3543]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3544]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3545]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3546]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3547]! } + public var Channel_JoinChannel: String { return self._s[3549]! } + public var Appearance_Animations: String { return self._s[3552]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3552]!, self._r[3552]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3553]!, self._r[3553]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3554]! } - public var Appearance_ShareTheme: String { return self._s[3555]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3556]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3558]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3559]! } - public var Passport_Address_Street: String { return self._s[3560]! } - public var Conversation_AddContact: String { return self._s[3561]! } - public var Login_PhonePlaceholder: String { return self._s[3562]! } - public var Channel_Members_InviteLink: String { return self._s[3564]! } - public var Bot_Stop: String { return self._s[3565]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3567]! } - public var Notification_PassportValueAddress: String { return self._s[3568]! } - public var Month_ShortJuly: String { return self._s[3569]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3570]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3571]! } - public var Passport_Identity_ReverseSide: String { return self._s[3572]! } - public var Watch_Stickers_Recents: String { return self._s[3575]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3577]! } - public var Map_SendThisLocation: String { return self._s[3578]! } + public var Stickers_GroupStickers: String { return self._s[3555]! } + public var Appearance_ShareTheme: String { return self._s[3556]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3557]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3559]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3560]! } + public var Passport_Address_Street: String { return self._s[3561]! } + public var Conversation_AddContact: String { return self._s[3562]! } + public var Login_PhonePlaceholder: String { return self._s[3563]! } + public var Channel_Members_InviteLink: String { return self._s[3565]! } + public var Bot_Stop: String { return self._s[3566]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3568]! } + public var Notification_PassportValueAddress: String { return self._s[3569]! } + public var Month_ShortJuly: String { return self._s[3570]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3571]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3572]! } + public var Passport_Identity_ReverseSide: String { return self._s[3573]! } + public var Watch_Stickers_Recents: String { return self._s[3576]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3578]! } + public var Map_SendThisLocation: String { return self._s[3579]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3579]!, self._r[3579]!, [_0]) - } - public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3580]!, self._r[3580]!, [_0]) } - public var ConvertToSupergroup_Note: String { return self._s[3581]! } - public var Wallet_Intro_NotNow: String { return self._s[3582]! } + public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3581]!, self._r[3581]!, [_0]) + } + public var ConvertToSupergroup_Note: String { return self._s[3582]! } + public var Wallet_Intro_NotNow: String { return self._s[3583]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3583]!, self._r[3583]!, [_0]) + return formatWithArgumentRanges(self._s[3584]!, self._r[3584]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3584]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3585]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3585]!, self._r[3585]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3586]!, self._r[3586]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3587]! } - public var Wallpaper_SearchShort: String { return self._s[3588]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3590]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3591]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3592]! } + public var Login_CallRequestState3: String { return self._s[3588]! } + public var Wallpaper_SearchShort: String { return self._s[3589]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3591]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3592]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3593]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3593]!, self._r[3593]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3594]!, self._r[3594]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3594]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3596]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3599]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3595]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3597]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3600]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, [_0]) + return formatWithArgumentRanges(self._s[3601]!, self._r[3601]!, [_0]) } - public var Passport_CorrectErrors: String { return self._s[3601]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3602]! } + public var Passport_CorrectErrors: String { return self._s[3602]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3603]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3603]!, self._r[3603]!, [_0]) + return formatWithArgumentRanges(self._s[3604]!, self._r[3604]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3604]! } - public var Channel_DiscussionGroup: String { return self._s[3605]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3606]! } + public var Map_SendMyCurrentLocation: String { return self._s[3605]! } + public var Channel_DiscussionGroup: String { return self._s[3606]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3607]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3607]!, self._r[3607]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3608]!, self._r[3608]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3608]! } - public var Permissions_NotificationsText_v0: String { return self._s[3609]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3610]! } - public var Appearance_AppIcon: String { return self._s[3611]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3612]! } - public var LoginPassword_FloodError: String { return self._s[3613]! } - public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3615]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3616]! } + public var SharedMedia_SearchNoResults: String { return self._s[3609]! } + public var Permissions_NotificationsText_v0: String { return self._s[3610]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3611]! } + public var Appearance_AppIcon: String { return self._s[3612]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3613]! } + public var LoginPassword_FloodError: String { return self._s[3614]! } + public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3616]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3617]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3617]!, self._r[3617]!, [_0]) + return formatWithArgumentRanges(self._s[3618]!, self._r[3618]!, [_0]) } - public var Passport_Language_bn: String { return self._s[3618]! } + public var Passport_Language_bn: String { return self._s[3619]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3619]!, self._r[3619]!, [_0]) + return formatWithArgumentRanges(self._s[3620]!, self._r[3620]!, [_0]) } - public var ChatList_Context_Pin: String { return self._s[3620]! } + public var ChatList_Context_Pin: String { return self._s[3621]! } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3621]!, self._r[3621]!, [_0]) - } - public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3622]!, self._r[3622]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3623]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3627]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3629]! } - public var Wallet_Month_GenDecember: String { return self._s[3630]! } - public var Contacts_PermissionsAllow: String { return self._s[3631]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3632]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3633]! } - public var WallpaperPreview_Pattern: String { return self._s[3634]! } - public var Paint_Duplicate: String { return self._s[3635]! } - public var Passport_Address_Country: String { return self._s[3636]! } - public var Notification_RenamedChannel: String { return self._s[3638]! } - public var ChatList_Context_Unmute: String { return self._s[3639]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3640]! } - public var Group_MessagePhotoUpdated: String { return self._s[3641]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3642]! } - public var Conversation_ContextMenuBan: String { return self._s[3643]! } - public var TwoStepAuth_EmailSent: String { return self._s[3644]! } - public var MessagePoll_NoVotes: String { return self._s[3645]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3646]! } - public var Passport_Language_is: String { return self._s[3648]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3650]! } - public var Tour_Text5: String { return self._s[3651]! } + public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3623]!, self._r[3623]!, [_0]) + } + public var Wallet_Navigation_Close: String { return self._s[3624]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3628]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3630]! } + public var Wallet_Month_GenDecember: String { return self._s[3631]! } + public var Contacts_PermissionsAllow: String { return self._s[3632]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3633]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3634]! } + public var WallpaperPreview_Pattern: String { return self._s[3635]! } + public var Paint_Duplicate: String { return self._s[3636]! } + public var Passport_Address_Country: String { return self._s[3637]! } + public var Notification_RenamedChannel: String { return self._s[3639]! } + public var ChatList_Context_Unmute: String { return self._s[3640]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3641]! } + public var Group_MessagePhotoUpdated: String { return self._s[3642]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3643]! } + public var Conversation_ContextMenuBan: String { return self._s[3644]! } + public var TwoStepAuth_EmailSent: String { return self._s[3645]! } + public var MessagePoll_NoVotes: String { return self._s[3646]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3647]! } + public var Passport_Language_is: String { return self._s[3649]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3651]! } + public var Tour_Text5: String { return self._s[3652]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3654]!, self._r[3654]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3655]!, self._r[3655]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3655]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3656]! } + public var Undo_SecretChatDeleted: String { return self._s[3656]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3657]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3657]!, self._r[3657]!, [_0]) + return formatWithArgumentRanges(self._s[3658]!, self._r[3658]!, [_0]) } - public var Forward_ErrorDisabledForChat: String { return self._s[3658]! } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3659]! } - public var Paint_Edit: String { return self._s[3661]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3663]! } - public var Undo_DeletedGroup: String { return self._s[3665]! } - public var LoginPassword_ForgotPassword: String { return self._s[3666]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3667]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3668]! } + public var Forward_ErrorDisabledForChat: String { return self._s[3659]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3660]! } + public var Paint_Edit: String { return self._s[3662]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3664]! } + public var Undo_DeletedGroup: String { return self._s[3666]! } + public var LoginPassword_ForgotPassword: String { return self._s[3667]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3668]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3669]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3669]!, self._r[3669]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3670]!, self._r[3670]!, [_0, _1]) } - public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3670]! } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3671]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3672]! } - public var Passport_Language_uz: String { return self._s[3673]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3674]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3675]! } - public var Map_StopLiveLocation: String { return self._s[3677]! } - public var VoiceOver_MessageContextSend: String { return self._s[3679]! } - public var PasscodeSettings_Help: String { return self._s[3680]! } - public var NotificationsSound_Input: String { return self._s[3681]! } - public var Share_Title: String { return self._s[3684]! } - public var LogoutOptions_Title: String { return self._s[3685]! } - public var Wallet_Send_AddressText: String { return self._s[3686]! } - public var Login_TermsOfServiceAgree: String { return self._s[3687]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3688]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3689]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3690]! } - public var EnterPasscode_EnterTitle: String { return self._s[3691]! } + public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3671]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3672]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3673]! } + public var Passport_Language_uz: String { return self._s[3674]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3675]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3676]! } + public var Map_StopLiveLocation: String { return self._s[3678]! } + public var VoiceOver_MessageContextSend: String { return self._s[3680]! } + public var PasscodeSettings_Help: String { return self._s[3681]! } + public var NotificationsSound_Input: String { return self._s[3682]! } + public var Share_Title: String { return self._s[3685]! } + public var LogoutOptions_Title: String { return self._s[3686]! } + public var Wallet_Send_AddressText: String { return self._s[3687]! } + public var Login_TermsOfServiceAgree: String { return self._s[3688]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3689]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3690]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3691]! } + public var EnterPasscode_EnterTitle: String { return self._s[3692]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3692]!, self._r[3692]!, [_0]) + return formatWithArgumentRanges(self._s[3693]!, self._r[3693]!, [_0]) } - public var Settings_CopyPhoneNumber: String { return self._s[3693]! } - public var Conversation_AddToContacts: String { return self._s[3694]! } + public var Settings_CopyPhoneNumber: String { return self._s[3694]! } + public var Conversation_AddToContacts: String { return self._s[3695]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3695]!, self._r[3695]!, [_0]) + return formatWithArgumentRanges(self._s[3696]!, self._r[3696]!, [_0]) } - public var NotificationsSound_Keys: String { return self._s[3696]! } + public var NotificationsSound_Keys: String { return self._s[3697]! } public func Call_ParticipantVersionOutdatedError(_ _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 Notification_MessageLifetime1w: String { return self._s[3698]! } - public var Message_Video: String { return self._s[3699]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3700]! } + public var Notification_MessageLifetime1w: String { return self._s[3699]! } + public var Message_Video: String { return self._s[3700]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3701]! } public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_1]) + return formatWithArgumentRanges(self._s[3702]!, self._r[3702]!, [_1]) } - public var Wallet_Receive_AmountInfo: String { return self._s[3704]! } + public var Wallet_Receive_AmountInfo: String { return self._s[3705]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3705]!, self._r[3705]!, [_0]) - } - public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3706]!, self._r[3706]!, [_0]) } - public var Passport_Language_mk: String { return self._s[3707]! } - public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3708]!, self._r[3708]!, [_1, _2, _3]) + public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3707]!, self._r[3707]!, [_0]) } - public var CreatePoll_CancelConfirmation: String { return self._s[3709]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3710]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3712]! } - public var PrivacyPolicy_Decline: String { return self._s[3713]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3714]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3715]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3716]! } - public var Permissions_SiriAllow_v0: String { return self._s[3718]! } - public var Wallet_Month_ShortAugust: String { return self._s[3719]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3720]! } + public var Passport_Language_mk: String { return self._s[3708]! } + public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3709]!, self._r[3709]!, [_1, _2, _3]) + } + public var CreatePoll_CancelConfirmation: String { return self._s[3710]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3711]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3713]! } + public var PrivacyPolicy_Decline: String { return self._s[3714]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3715]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3716]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3717]! } + public var Permissions_SiriAllow_v0: String { return self._s[3719]! } + public var Wallet_Month_ShortAugust: String { return self._s[3720]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3721]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3721]!, self._r[3721]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3722]!, self._r[3722]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3722]!, self._r[3722]!, [_0]) + return formatWithArgumentRanges(self._s[3723]!, self._r[3723]!, [_0]) } - public var Paint_Regular: String { return self._s[3723]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3724]! } - public var SocksProxySetup_ShareLink: String { return self._s[3725]! } - public var Wallet_Qr_Title: String { return self._s[3726]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3727]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3729]! } - public var Wallet_Settings_Configuration: String { return self._s[3730]! } - public var GroupInfo_InviteByLink: String { return self._s[3731]! } - public var MessageTimer_Custom: String { return self._s[3732]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3733]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3734]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3736]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[3737]! } - public var VoiceOver_Chat_Selected: String { return self._s[3738]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3739]! } - public var Channel_Username_InvalidTaken: String { return self._s[3740]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3741]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3742]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[3743]! } - public var Settings_ChatBackground: String { return self._s[3744]! } - public var Channel_Subscribers_Title: String { return self._s[3745]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3746]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3747]! } - public var Watch_ConnectionDescription: String { return self._s[3748]! } - public var OldChannels_NoticeText: String { return self._s[3751]! } - public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3752]! } - public var IntentsSettings_SuggestBy: String { return self._s[3754]! } - public var Theme_ThemeChangedText: String { return self._s[3755]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[3756]! } - public var Wallpaper_ResetWallpapers: String { return self._s[3757]! } - public var Wallet_Send_TransactionInProgress: String { return self._s[3758]! } - public var EditProfile_Title: String { return self._s[3759]! } - public var NotificationsSound_Bamboo: String { return self._s[3761]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3763]! } - public var Login_SmsRequestState2: String { return self._s[3764]! } - public var Passport_Language_ar: String { return self._s[3765]! } + public var Paint_Regular: String { return self._s[3724]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3725]! } + public var SocksProxySetup_ShareLink: String { return self._s[3726]! } + public var Wallet_Qr_Title: String { return self._s[3727]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3728]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3730]! } + public var Wallet_Settings_Configuration: String { return self._s[3731]! } + public var GroupInfo_InviteByLink: String { return self._s[3732]! } + public var MessageTimer_Custom: String { return self._s[3733]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3734]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3735]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3737]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[3738]! } + public var VoiceOver_Chat_Selected: String { return self._s[3739]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3740]! } + public var Channel_Username_InvalidTaken: String { return self._s[3741]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3742]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3743]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[3744]! } + public var Settings_ChatBackground: String { return self._s[3745]! } + public var Channel_Subscribers_Title: String { return self._s[3746]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3747]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3748]! } + public var Watch_ConnectionDescription: String { return self._s[3749]! } + public var OldChannels_NoticeText: String { return self._s[3752]! } + public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3753]! } + public var IntentsSettings_SuggestBy: String { return self._s[3755]! } + public var Theme_ThemeChangedText: String { return self._s[3756]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[3757]! } + public var Wallpaper_ResetWallpapers: String { return self._s[3758]! } + public var Wallet_Send_TransactionInProgress: String { return self._s[3759]! } + public var EditProfile_Title: String { return self._s[3760]! } + public var NotificationsSound_Bamboo: String { return self._s[3762]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3764]! } + public var Login_SmsRequestState2: String { return self._s[3765]! } + public var Passport_Language_ar: String { return self._s[3766]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3766]!, self._r[3766]!, [_0]) + return formatWithArgumentRanges(self._s[3767]!, self._r[3767]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3767]! } - public var Wallet_Created_Text: String { return self._s[3768]! } - public var Conversation_MessageDialogEdit: String { return self._s[3770]! } - public var Wallet_Created_Proceed: String { return self._s[3771]! } - public var Wallet_Words_Done: String { return self._s[3772]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3773]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3768]! } + public var Wallet_Created_Text: String { return self._s[3769]! } + public var Conversation_MessageDialogEdit: String { return self._s[3771]! } + public var Wallet_Created_Proceed: String { return self._s[3772]! } + public var Wallet_Words_Done: String { return self._s[3773]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3774]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3774]!, self._r[3774]!, [_1]) + return formatWithArgumentRanges(self._s[3775]!, self._r[3775]!, [_1]) } - public var Common_Close: String { return self._s[3775]! } - public var GroupInfo_PublicLink: String { return self._s[3776]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3777]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3778]! } + public var Common_Close: String { return self._s[3776]! } + public var GroupInfo_PublicLink: String { return self._s[3777]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3778]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3779]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3782]!, self._r[3782]!, [_0]) + return formatWithArgumentRanges(self._s[3783]!, self._r[3783]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3783]! } + public var UserInfo_About_Placeholder: String { return self._s[3784]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3784]!, self._r[3784]!, [_0]) + return formatWithArgumentRanges(self._s[3785]!, self._r[3785]!, [_0]) } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[3785]! } - public var Channel_Info_Banned: String { return self._s[3787]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[3786]! } + public var Channel_Info_Banned: String { return self._s[3788]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3788]!, self._r[3788]!, [_0]) + return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_0]) } - public var Appearance_Other: String { return self._s[3789]! } - public var Passport_Language_my: String { return self._s[3790]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3791]! } + public var Appearance_Other: String { return self._s[3790]! } + public var Passport_Language_my: String { return self._s[3791]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3792]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3792]!, self._r[3792]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3793]!, self._r[3793]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3793]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3794]! } - public var Preview_CopyAddress: String { return self._s[3795]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3794]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3795]! } + public var Preview_CopyAddress: String { return self._s[3796]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3796]!, self._r[3796]!, [_0]) + return formatWithArgumentRanges(self._s[3797]!, self._r[3797]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3797]! } - public var UserInfo_BotSettings: String { return self._s[3798]! } - public var LiveLocation_MenuStopAll: String { return self._s[3800]! } - public var Passport_PasswordCreate: String { return self._s[3801]! } - public var StickerSettings_MaskContextInfo: String { return self._s[3802]! } - public var Message_PinnedLocationMessage: String { return self._s[3803]! } - public var Map_Satellite: String { return self._s[3804]! } - public var Watch_Message_Unsupported: String { return self._s[3805]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[3806]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3807]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3798]! } + public var UserInfo_BotSettings: String { return self._s[3799]! } + public var LiveLocation_MenuStopAll: String { return self._s[3801]! } + public var Passport_PasswordCreate: String { return self._s[3802]! } + public var StickerSettings_MaskContextInfo: String { return self._s[3803]! } + public var Message_PinnedLocationMessage: String { return self._s[3804]! } + public var Map_Satellite: String { return self._s[3805]! } + public var Watch_Message_Unsupported: String { return self._s[3806]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[3807]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3808]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3808]!, self._r[3808]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3809]!, self._r[3809]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3809]!, self._r[3809]!, [_0]) + return formatWithArgumentRanges(self._s[3810]!, self._r[3810]!, [_0]) } - public var Wallet_WordImport_Continue: String { return self._s[3810]! } + public var Wallet_WordImport_Continue: String { return self._s[3811]! } public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3811]!, self._r[3811]!, [_0]) + return formatWithArgumentRanges(self._s[3812]!, self._r[3812]!, [_0]) } - public var Notifications_ChannelNotificationsHelp: String { return self._s[3812]! } - public var Privacy_Calls_P2PContacts: String { return self._s[3813]! } - public var NotificationsSound_None: String { return self._s[3814]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3815]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3817]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[3818]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[3813]! } + public var Privacy_Calls_P2PContacts: String { return self._s[3814]! } + public var NotificationsSound_None: String { return self._s[3815]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3816]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3818]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[3819]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3819]!, self._r[3819]!, [_1]) + return formatWithArgumentRanges(self._s[3820]!, self._r[3820]!, [_1]) } - public var Cache_Indexing: String { return self._s[3820]! } - public var DialogList_RecentTitlePeople: String { return self._s[3822]! } - public var DialogList_EncryptionRejected: String { return self._s[3823]! } - public var GroupInfo_Administrators: String { return self._s[3824]! } - public var Passport_ScanPassportHelp: String { return self._s[3825]! } - public var Application_Name: String { return self._s[3826]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3827]! } - public var Appearance_ThemeCarouselDay: String { return self._s[3829]! } - public var Passport_Identity_TranslationHelp: String { return self._s[3830]! } + public var Cache_Indexing: String { return self._s[3821]! } + public var DialogList_RecentTitlePeople: String { return self._s[3823]! } + public var DialogList_EncryptionRejected: String { return self._s[3824]! } + public var GroupInfo_Administrators: String { return self._s[3825]! } + public var Passport_ScanPassportHelp: String { return self._s[3826]! } + public var Application_Name: String { return self._s[3827]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3828]! } + public var Appearance_ThemeCarouselDay: String { return self._s[3830]! } + public var Passport_Identity_TranslationHelp: String { return self._s[3831]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3831]!, self._r[3831]!, [_0]) - } - public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3832]!, self._r[3832]!, [_0]) } - public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { + public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3833]!, self._r[3833]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3834]! } - public var Privacy_ChatsTitle: String { return self._s[3835]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[3836]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3837]! } - public var Watch_Suggestion_HoldOn: String { return self._s[3838]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3839]! } - public var WebBrowser_Title: String { return self._s[3840]! } - public var Group_LinkedChannel: String { return self._s[3841]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3842]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[3843]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3844]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3845]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[3846]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[3848]! } - public var Channel_Setup_TypePublic: String { return self._s[3850]! } + public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3834]!, self._r[3834]!, [_0]) + } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3835]! } + public var Privacy_ChatsTitle: String { return self._s[3836]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[3837]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3838]! } + public var Watch_Suggestion_HoldOn: String { return self._s[3839]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3840]! } + public var WebBrowser_Title: String { return self._s[3841]! } + public var Group_LinkedChannel: String { return self._s[3842]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3843]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[3844]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3845]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3846]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[3847]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[3849]! } + public var Channel_Setup_TypePublic: String { return self._s[3851]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3851]!, self._r[3851]!, [_0]) + return formatWithArgumentRanges(self._s[3852]!, self._r[3852]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[3853]! } - public var MessagePoll_ViewResults: String { return self._s[3854]! } - public var Map_OpenInMaps: String { return self._s[3856]! } + public var Channel_TypeSetup_Title: String { return self._s[3854]! } + public var MessagePoll_ViewResults: String { return self._s[3855]! } + public var Map_OpenInMaps: String { return self._s[3857]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3857]!, self._r[3857]!, [_1]) + return formatWithArgumentRanges(self._s[3858]!, self._r[3858]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[3859]! } + public var NotificationsSound_Tremolo: String { return self._s[3860]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3860]!, self._r[3860]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3861]!, self._r[3861]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3861]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3862]! } - public var Passport_PasswordHelp: String { return self._s[3863]! } - public var Login_CodeExpiredError: String { return self._s[3864]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3865]! } - public var Conversation_TitleUnmute: String { return self._s[3866]! } - public var Passport_Identity_ScansHelp: String { return self._s[3867]! } - public var Passport_Language_lo: String { return self._s[3868]! } - public var Camera_FlashAuto: String { return self._s[3869]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3870]! } - public var Common_Cancel: String { return self._s[3871]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[3872]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3873]! } - public var Appearance_TintAllColors: String { return self._s[3874]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3862]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3863]! } + public var Passport_PasswordHelp: String { return self._s[3864]! } + public var Login_CodeExpiredError: String { return self._s[3865]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3866]! } + public var Conversation_TitleUnmute: String { return self._s[3867]! } + public var Passport_Identity_ScansHelp: String { return self._s[3868]! } + public var Passport_Language_lo: String { return self._s[3869]! } + public var Camera_FlashAuto: String { return self._s[3870]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3871]! } + public var Common_Cancel: String { return self._s[3872]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[3873]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3874]! } + public var Appearance_TintAllColors: String { return self._s[3875]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3875]!, self._r[3875]!, [_1]) + return formatWithArgumentRanges(self._s[3876]!, self._r[3876]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[3876]! } - public var ChatSettings_Title: String { return self._s[3878]! } - public var Passport_PasswordReset: String { return self._s[3879]! } - public var SocksProxySetup_TypeNone: String { return self._s[3880]! } - public var EditTheme_Title: String { return self._s[3883]! } - public var PhoneNumberHelp_Help: String { return self._s[3884]! } - public var Checkout_EnterPassword: String { return self._s[3885]! } - public var Activity_UploadingDocument: String { return self._s[3887]! } - public var Share_AuthTitle: String { return self._s[3888]! } - public var State_Connecting: String { return self._s[3889]! } - public var Profile_MessageLifetime1w: String { return self._s[3890]! } - public var Conversation_ContextMenuReport: String { return self._s[3891]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3892]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3893]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[3877]! } + public var ChatSettings_Title: String { return self._s[3879]! } + public var Passport_PasswordReset: String { return self._s[3880]! } + public var SocksProxySetup_TypeNone: String { return self._s[3881]! } + public var EditTheme_Title: String { return self._s[3884]! } + public var PhoneNumberHelp_Help: String { return self._s[3885]! } + public var Checkout_EnterPassword: String { return self._s[3886]! } + public var Activity_UploadingDocument: String { return self._s[3888]! } + public var Share_AuthTitle: String { return self._s[3889]! } + public var State_Connecting: String { return self._s[3890]! } + public var Profile_MessageLifetime1w: String { return self._s[3891]! } + public var Conversation_ContextMenuReport: String { return self._s[3892]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3893]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3894]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3894]!, self._r[3894]!, [_0]) + return formatWithArgumentRanges(self._s[3895]!, self._r[3895]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[3895]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[3896]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3898]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3899]! } - public var PhotoEditor_Set: String { return self._s[3900]! } - public var EmptyGroupInfo_Title: String { return self._s[3901]! } - public var Login_PadPhoneHelp: String { return self._s[3902]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3904]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3906]! } - public var NotificationsSound_Complete: String { return self._s[3907]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3908]! } - public var Group_Info_AdminLog: String { return self._s[3909]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3910]! } + public var AuthSessions_Terminate: String { return self._s[3896]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[3897]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3899]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3900]! } + public var PhotoEditor_Set: String { return self._s[3901]! } + public var EmptyGroupInfo_Title: String { return self._s[3902]! } + public var Login_PadPhoneHelp: String { return self._s[3903]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3905]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3907]! } + public var NotificationsSound_Complete: String { return self._s[3908]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3909]! } + public var Group_Info_AdminLog: String { return self._s[3910]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3911]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3911]!, self._r[3911]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3912]!, self._r[3912]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3912]! } - public var Group_Location_CreateInThisPlace: String { return self._s[3914]! } - public var Conversation_Admin: String { return self._s[3915]! } - public var Conversation_GifTooltip: String { return self._s[3916]! } - public var Passport_NotLoggedInMessage: String { return self._s[3917]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3913]! } + public var Group_Location_CreateInThisPlace: String { return self._s[3915]! } + public var Conversation_Admin: String { return self._s[3916]! } + public var Conversation_GifTooltip: String { return self._s[3917]! } + public var Passport_NotLoggedInMessage: String { return self._s[3918]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3919]!, self._r[3919]!, [_0]) + return formatWithArgumentRanges(self._s[3920]!, self._r[3920]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[3920]! } - public var SharedMedia_EmptyTitle: String { return self._s[3922]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3924]! } - public var Username_Help: String { return self._s[3925]! } - public var DialogList_LanguageTooltip: String { return self._s[3927]! } - public var Map_LoadError: String { return self._s[3928]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3929]! } - public var Channel_AdminLog_AddMembers: String { return self._s[3930]! } - public var ArchivedChats_IntroTitle2: String { return self._s[3931]! } - public var Notification_Exceptions_NewException: String { return self._s[3932]! } - public var TwoStepAuth_EmailTitle: String { return self._s[3933]! } - public var WatchRemote_AlertText: String { return self._s[3934]! } + public var Profile_MessageLifetimeForever: String { return self._s[3921]! } + public var SharedMedia_EmptyTitle: String { return self._s[3923]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3925]! } + public var Username_Help: String { return self._s[3926]! } + public var DialogList_LanguageTooltip: String { return self._s[3928]! } + public var Map_LoadError: String { return self._s[3929]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3930]! } + public var Channel_AdminLog_AddMembers: String { return self._s[3931]! } + public var ArchivedChats_IntroTitle2: String { return self._s[3932]! } + public var Notification_Exceptions_NewException: String { return self._s[3933]! } + public var TwoStepAuth_EmailTitle: String { return self._s[3934]! } + public var WatchRemote_AlertText: String { return self._s[3935]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3935]!, self._r[3935]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3936]!, self._r[3936]!, [_1, _2, _3]) } - public var ChatSettings_ConnectionType_Title: String { return self._s[3939]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[3940]! } public func PUSH_PINNED_QUIZ(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3941]!, self._r[3941]!, [_1, _2]) } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3941]!, self._r[3941]!, [_0]) + return formatWithArgumentRanges(self._s[3942]!, self._r[3942]!, [_0]) } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3942]! } - public var WebBrowser_DefaultBrowser: String { return self._s[3943]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[3944]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3943]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3944]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[3945]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3945]!, self._r[3945]!, [_0]) + return formatWithArgumentRanges(self._s[3946]!, self._r[3946]!, [_0]) } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3946]!, self._r[3946]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3947]!, self._r[3947]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[3947]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3948]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[3950]! } - public var Wallet_Created_ExportErrorText: String { return self._s[3951]! } - public var ChatList_UndoArchiveText1: String { return self._s[3952]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3953]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3954]! } - public var Cache_ClearNone: String { return self._s[3955]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3956]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3957]! } + public var Group_AdminLog_EmptyText: String { return self._s[3948]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3949]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3951]! } + public var Wallet_Created_ExportErrorText: String { return self._s[3952]! } + public var ChatList_UndoArchiveText1: String { return self._s[3953]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3954]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3955]! } + public var Cache_ClearNone: String { return self._s[3956]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3957]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3958]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3958]!, self._r[3958]!, [_0]) + return formatWithArgumentRanges(self._s[3959]!, self._r[3959]!, [_0]) } - public var Passport_Identity_Country: String { return self._s[3959]! } + public var Passport_Identity_Country: String { return self._s[3960]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3960]!, self._r[3960]!, [_0]) - } - public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3961]!, self._r[3961]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[3962]! } - public var AccessDenied_Settings: String { return self._s[3963]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3964]! } - public var Month_ShortMay: String { return self._s[3965]! } - public var Compose_NewGroup: String { return self._s[3967]! } - public var Group_Setup_TypePrivate: String { return self._s[3969]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3971]! } - public var Appearance_ThemeDayClassic: String { return self._s[3972]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3973]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3974]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3975]! } - public var Conversation_typing: String { return self._s[3977]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[3978]! } - public var Paint_Masks: String { return self._s[3979]! } - public var Contacts_DeselectAll: String { return self._s[3980]! } - public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3981]!, self._r[3981]!, [_0]) + public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3962]!, self._r[3962]!, [_0]) } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3982]! } - public var Username_InvalidTaken: String { return self._s[3983]! } - public var Call_StatusNoAnswer: String { return self._s[3984]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3985]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3986]! } - public var Passport_Identity_Selfie: String { return self._s[3987]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3988]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3989]! } - public var Conversation_ClearSecretHistory: String { return self._s[3990]! } - public var PeopleNearby_Description: String { return self._s[3992]! } - public var NetworkUsageSettings_Title: String { return self._s[3993]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3995]! } + public var Exceptions_AddToExceptions: String { return self._s[3963]! } + public var AccessDenied_Settings: String { return self._s[3964]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3965]! } + public var Month_ShortMay: String { return self._s[3966]! } + public var Compose_NewGroup: String { return self._s[3968]! } + public var Group_Setup_TypePrivate: String { return self._s[3970]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3972]! } + public var Appearance_ThemeDayClassic: String { return self._s[3973]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3974]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3975]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3976]! } + public var Conversation_typing: String { return self._s[3978]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[3979]! } + public var Paint_Masks: String { return self._s[3980]! } + public var Contacts_DeselectAll: String { return self._s[3981]! } + public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3982]!, self._r[3982]!, [_0]) + } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3983]! } + public var Username_InvalidTaken: String { return self._s[3984]! } + public var Call_StatusNoAnswer: String { return self._s[3985]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3986]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3987]! } + public var Passport_Identity_Selfie: String { return self._s[3988]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3989]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3990]! } + public var Conversation_ClearSecretHistory: String { return self._s[3991]! } + public var PeopleNearby_Description: String { return self._s[3993]! } + public var NetworkUsageSettings_Title: String { return self._s[3994]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3996]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3997]!, self._r[3997]!, [_0]) + return formatWithArgumentRanges(self._s[3998]!, self._r[3998]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3998]!, self._r[3998]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3999]!, self._r[3999]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[4000]! } - public var VoiceOver_Navigation_Search: String { return self._s[4001]! } - public var Map_LiveLocationTitle: String { return self._s[4002]! } - public var Login_InfoAvatarAdd: String { return self._s[4003]! } - public var Passport_Identity_FilesView: String { return self._s[4004]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[4005]! } - public var Privacy_Calls_NeverAllow: String { return self._s[4006]! } - public var VoiceOver_Chat_File: String { return self._s[4007]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4008]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[4001]! } + public var VoiceOver_Navigation_Search: String { return self._s[4002]! } + public var Map_LiveLocationTitle: String { return self._s[4003]! } + public var Login_InfoAvatarAdd: String { return self._s[4004]! } + public var Passport_Identity_FilesView: String { return self._s[4005]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[4006]! } + public var Privacy_Calls_NeverAllow: String { return self._s[4007]! } + public var VoiceOver_Chat_File: String { return self._s[4008]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4009]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4009]!, self._r[4009]!, [_0]) + return formatWithArgumentRanges(self._s[4010]!, self._r[4010]!, [_0]) } - public var ContactInfo_PhoneNumberHidden: String { return self._s[4010]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[4011]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4012]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[4011]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[4012]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4013]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4013]!, self._r[4013]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4014]!, self._r[4014]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4014]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[4015]! } - public var Tour_Title2: String { return self._s[4016]! } - public var Wallet_Sent_ViewWallet: String { return self._s[4017]! } - public var Conversation_FileOpenIn: String { return self._s[4018]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4019]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4020]! } - public var Wallpaper_Set: String { return self._s[4021]! } - public var Passport_Identity_Translations: String { return self._s[4023]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4015]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[4016]! } + public var Tour_Title2: String { return self._s[4017]! } + public var Wallet_Sent_ViewWallet: String { return self._s[4018]! } + public var Conversation_FileOpenIn: String { return self._s[4019]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4020]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4021]! } + public var Wallpaper_Set: String { return self._s[4022]! } + public var Passport_Identity_Translations: String { return self._s[4024]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4024]!, self._r[4024]!, [_0]) + return formatWithArgumentRanges(self._s[4025]!, self._r[4025]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[4025]! } + public var Channel_LeaveChannel: String { return self._s[4026]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4026]!, self._r[4026]!, [_1]) + return formatWithArgumentRanges(self._s[4027]!, self._r[4027]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4028]! } - public var PhotoEditor_HighlightsTint: String { return self._s[4029]! } - public var MessagePoll_LabelPoll: String { return self._s[4030]! } - public var Passport_Email_Delete: String { return self._s[4031]! } - public var Conversation_Mute: String { return self._s[4033]! } - public var Channel_AddBotAsAdmin: String { return self._s[4034]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[4036]! } - public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4037]! } - public var ChatSettings_IntentsSettings: String { return self._s[4039]! } - public var Channel_Management_LabelOwner: String { return self._s[4040]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4029]! } + public var PhotoEditor_HighlightsTint: String { return self._s[4030]! } + public var MessagePoll_LabelPoll: String { return self._s[4031]! } + public var Passport_Email_Delete: String { return self._s[4032]! } + public var Conversation_Mute: String { return self._s[4034]! } + public var Channel_AddBotAsAdmin: String { return self._s[4035]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[4037]! } + public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4038]! } + public var ChatSettings_IntentsSettings: String { return self._s[4040]! } + public var Channel_Management_LabelOwner: String { return self._s[4041]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4041]!, self._r[4041]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[4042]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[4043]! } - public var Common_No: String { return self._s[4044]! } - public var Weekday_Sunday: String { return self._s[4045]! } - public var Notification_Reply: String { return self._s[4046]! } - public var Conversation_ViewMessage: String { return self._s[4047]! } + public var Calls_CallTabDescription: String { return self._s[4043]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[4044]! } + public var Common_No: String { return self._s[4045]! } + public var Weekday_Sunday: String { return self._s[4046]! } + public var Notification_Reply: String { return self._s[4047]! } + public var Conversation_ViewMessage: String { return self._s[4048]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4048]!, self._r[4048]!, [_0]) - } - public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4049]!, self._r[4049]!, [_0]) } + public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4050]!, self._r[4050]!, [_0]) + } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4050]!, self._r[4050]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4051]!, self._r[4051]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4051]! } - public var Wallet_Send_Title: String { return self._s[4052]! } - public var Message_PinnedDocumentMessage: String { return self._s[4053]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[4054]! } - public var DialogList_TabTitle: String { return self._s[4056]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4057]! } - public var Passport_FieldEmail: String { return self._s[4058]! } - public var Conversation_UnpinMessageAlert: String { return self._s[4059]! } - public var Passport_Address_TypeBankStatement: String { return self._s[4060]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[4061]! } - public var Passport_Identity_ExpiryDate: String { return self._s[4062]! } - public var Privacy_Calls_P2P: String { return self._s[4063]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4052]! } + public var Wallet_Send_Title: String { return self._s[4053]! } + public var Message_PinnedDocumentMessage: String { return self._s[4054]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[4055]! } + public var DialogList_TabTitle: String { return self._s[4057]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4058]! } + public var Passport_FieldEmail: String { return self._s[4059]! } + public var Conversation_UnpinMessageAlert: String { return self._s[4060]! } + public var Passport_Address_TypeBankStatement: String { return self._s[4061]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[4062]! } + public var Passport_Identity_ExpiryDate: String { return self._s[4063]! } + public var Privacy_Calls_P2P: String { return self._s[4064]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4065]!, self._r[4065]!, [_0]) + return formatWithArgumentRanges(self._s[4066]!, self._r[4066]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[4066]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[4067]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4067]!, self._r[4067]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4068]!, self._r[4068]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[4068]! } - public var EnterPasscode_ChangeTitle: String { return self._s[4069]! } - public var TwoFactorSetup_Email_Title: String { return self._s[4070]! } - public var Passport_InfoText: String { return self._s[4071]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4072]! } + public var Stickers_ClearRecent: String { return self._s[4069]! } + public var EnterPasscode_ChangeTitle: String { return self._s[4070]! } + public var TwoFactorSetup_Email_Title: String { return self._s[4071]! } + public var Passport_InfoText: String { return self._s[4072]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4073]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4073]!, self._r[4073]!, [_0]) + return formatWithArgumentRanges(self._s[4074]!, self._r[4074]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4074]!, self._r[4074]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4075]!, self._r[4075]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4075]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[4076]! } - public var VoiceOver_Navigation_Compose: String { return self._s[4077]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[4078]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[4080]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4081]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4076]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[4077]! } + public var VoiceOver_Navigation_Compose: String { return self._s[4078]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[4079]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[4081]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4082]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4083]!, self._r[4083]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4084]! } - public var ChatSettings_OpenLinksIn: String { return self._s[4085]! } - public var Map_HomeAndWorkTitle: String { return self._s[4086]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4085]! } + public var ChatSettings_OpenLinksIn: String { return self._s[4086]! } + public var Map_HomeAndWorkTitle: String { return self._s[4087]! } public func Generic_OpenHiddenLinkAlert(_ _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 DialogList_Unread: String { return self._s[4089]! } + public var DialogList_Unread: String { return self._s[4090]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4090]!, self._r[4090]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4091]!, self._r[4091]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[4091]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4092]! } + public var User_DeletedAccount: String { return self._s[4092]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4093]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4093]!, self._r[4093]!, [_0]) + return formatWithArgumentRanges(self._s[4094]!, self._r[4094]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[4094]! } - public var SharedMedia_CategoryMedia: String { return self._s[4095]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4096]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4097]! } - public var Watch_ChatList_Compose: String { return self._s[4098]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4099]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[4100]! } - public var Watch_Microphone_Access: String { return self._s[4101]! } - public var Group_Setup_HistoryHeader: String { return self._s[4102]! } - public var Map_SetThisLocation: String { return self._s[4103]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4104]! } - public var Activity_UploadingPhoto: String { return self._s[4105]! } - public var Conversation_Edit: String { return self._s[4107]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[4108]! } - public var Login_TermsOfServiceDecline: String { return self._s[4109]! } - public var Message_PinnedContactMessage: String { return self._s[4110]! } + public var UserInfo_NotificationsDefault: String { return self._s[4095]! } + public var SharedMedia_CategoryMedia: String { return self._s[4096]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4097]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4098]! } + public var Watch_ChatList_Compose: String { return self._s[4099]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4100]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[4101]! } + public var Watch_Microphone_Access: String { return self._s[4102]! } + public var Group_Setup_HistoryHeader: String { return self._s[4103]! } + public var Map_SetThisLocation: String { return self._s[4104]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4105]! } + public var Activity_UploadingPhoto: String { return self._s[4106]! } + public var Conversation_Edit: String { return self._s[4108]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[4109]! } + public var Login_TermsOfServiceDecline: String { return self._s[4110]! } + public var Message_PinnedContactMessage: String { return self._s[4111]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4111]!, self._r[4111]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4112]!, self._r[4112]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[4113]!, self._r[4113]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[4113]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4115]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4116]! } + public var Appearance_LargeEmoji: String { return self._s[4114]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4116]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4117]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4117]!, self._r[4117]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4118]!, self._r[4118]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[4118]! } - public var Message_PinnedPhotoMessage: String { return self._s[4119]! } - public var Passport_FieldPhone: String { return self._s[4120]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4121]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[4122]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[4124]! } - public var Conversation_Call: String { return self._s[4125]! } - public var Common_TakePhoto: String { return self._s[4127]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4128]! } - public var Wallet_Receive_CommentHeader: String { return self._s[4129]! } - public var Channel_NotificationLoading: String { return self._s[4130]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[4119]! } + public var Message_PinnedPhotoMessage: String { return self._s[4120]! } + public var Passport_FieldPhone: String { return self._s[4121]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4122]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[4123]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[4125]! } + public var Conversation_Call: String { return self._s[4126]! } + public var Common_TakePhoto: String { return self._s[4128]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4129]! } + public var Wallet_Receive_CommentHeader: String { return self._s[4130]! } + public var Channel_NotificationLoading: String { return self._s[4131]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4131]!, self._r[4131]!, [_0]) - } - public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4132]!, self._r[4132]!, [_0]) } + public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4133]!, self._r[4133]!, [_0]) + } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4133]!, self._r[4133]!, [_1]) + return formatWithArgumentRanges(self._s[4134]!, self._r[4134]!, [_1]) } - public var Permissions_SiriTitle_v0: String { return self._s[4134]! } + public var Permissions_SiriTitle_v0: String { return self._s[4135]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4135]!, self._r[4135]!, [_0]) - } - public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[4136]!, self._r[4136]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[4137]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[4138]! } - public var ClearCache_FreeSpace: String { return self._s[4139]! } - public var Common_edit: String { return self._s[4140]! } - public var PrivacySettings_AuthSessions: String { return self._s[4141]! } - public var Month_ShortJune: String { return self._s[4142]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4143]! } - public var Call_ReportSend: String { return self._s[4144]! } - public var Watch_LastSeen_JustNow: String { return self._s[4145]! } - public var Notifications_MessageNotifications: String { return self._s[4146]! } - public var WallpaperSearch_ColorGreen: String { return self._s[4147]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4149]! } - public var Group_Status: String { return self._s[4150]! } + public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[4137]!, self._r[4137]!, [_0]) + } + public var Channel_MessagePhotoRemoved: String { return self._s[4138]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[4139]! } + public var ClearCache_FreeSpace: String { return self._s[4140]! } + public var Common_edit: String { return self._s[4141]! } + public var PrivacySettings_AuthSessions: String { return self._s[4142]! } + public var Month_ShortJune: String { return self._s[4143]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4144]! } + public var Call_ReportSend: String { return self._s[4145]! } + public var Watch_LastSeen_JustNow: String { return self._s[4146]! } + public var Notifications_MessageNotifications: String { return self._s[4147]! } + public var WallpaperSearch_ColorGreen: String { return self._s[4148]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4150]! } + public var Group_Status: String { return self._s[4151]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4151]!, self._r[4151]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4152]!, self._r[4152]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[4152]! } - public var ShareMenu_ShareTo: String { return self._s[4153]! } - public var Conversation_Moderate_Ban: String { return self._s[4154]! } + public var TextFormat_AddLinkTitle: String { return self._s[4153]! } + public var ShareMenu_ShareTo: String { return self._s[4154]! } + public var Conversation_Moderate_Ban: String { return self._s[4155]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_0]) + return formatWithArgumentRanges(self._s[4156]!, self._r[4156]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[4156]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4157]! } + public var SharedMedia_ViewInChat: String { return self._s[4157]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4158]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4158]!, self._r[4158]!, [_1]) + return formatWithArgumentRanges(self._s[4159]!, self._r[4159]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4159]!, self._r[4159]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4160]!, self._r[4160]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4161]!, self._r[4161]!, [_0]) + return formatWithArgumentRanges(self._s[4162]!, self._r[4162]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[4162]! } - public var Appearance_ReduceMotion: String { return self._s[4163]! } + public var Map_OpenInHereMaps: String { return self._s[4163]! } + public var Appearance_ReduceMotion: String { return self._s[4164]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4164]!, self._r[4164]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4165]!, self._r[4165]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[4165]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[4166]! } - public var PhotoEditor_Skip: String { return self._s[4167]! } - public func MessagePoll_QuizCount(_ value: Int32) -> String { + public var Channel_Setup_TypePublicHelp: String { return self._s[4166]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[4167]! } + public var PhotoEditor_Skip: String { return self._s[4168]! } + public func ChatList_DeletedChats(_ 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 ForwardedVideoMessages(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, _1, _2) } - public func ForwardedFiles(_ value: Int32) -> String { + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } - public func Call_Seconds(_ value: Int32) -> String { + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[4 * 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[5 * 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[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + public func Conversation_StatusMembers(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[6 * 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[7 * 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[7 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func MessageTimer_Seconds(_ value: Int32) -> String { + public func MuteExpires_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Months(_ 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[9 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedStickers(_ value: Int32) -> String { + public func MessageTimer_Days(_ 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 Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func InviteText_ContactsCountText(_ value: Int32) -> String { + public func Notifications_Exceptions(_ 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 LastSeen_HoursAgo(_ value: Int32) -> String { + public func Passport_Scans(_ 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 AttachmentMenu_SendPhoto(_ value: Int32) -> String { + public func Wallet_Updated_MinutesAgo(_ 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) @@ -4778,538 +4780,539 @@ public final class PresentationStrings: Equatable { let form = getPluralizationForm(self.lc, selector) return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + public func SharedMedia_Video(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + public func PasscodeSettings_FailedAttempts(_ 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 DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + public func Contacts_ImportersCount(_ 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 AttachmentMenu_SendVideo(_ value: Int32) -> String { + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { + public func LastSeen_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + public func MessageTimer_Minutes(_ 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 Media_SharePhoto(_ value: Int32) -> String { + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, stringValue) } - public func OldChannels_InactiveYear(_ value: Int32) -> String { + public func ForwardedGifs(_ 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 ForwardedPhotos(_ 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 Theme_UsersCount(_ 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_CHANNEL_MESSAGE_VIDEOS(_ 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 LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) - } - public func QuickSend_Photos(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) - } - public func VoiceOver_Chat_PollOptionCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusSubscribers(_ 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 OldChannels_GroupFormat(_ 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 Media_ShareItem(_ 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 AttachmentMenu_SendGif(_ 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 Notification_GameScoreExtended(_ 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 GroupInfo_ShowMoreMembers(_ 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 SharedMedia_Generic(_ 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 MuteExpires_Hours(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Days(_ 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 Chat_DeleteMessagesConfirmation(_ 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 Call_Minutes(_ 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 Conversation_SelectedMessages(_ 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 MessageTimer_ShortDays(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ 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 LiveLocation_MenuChatsCount(_ 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 PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func UserCount(_ 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 Contacts_ImportersCount(_ 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 ForwardedContacts(_ 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 ForwardedAudios(_ 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 StickerPack_StickerCount(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 MessageTimer_ShortWeeks(_ 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 Notifications_Exceptions(_ 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_DeletedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notification_GameScoreSimple(_ 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 CreatePoll_AddMoreOptions(_ 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 MuteFor_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 Notification_GameScoreSelfExtended(_ 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 Media_ShareVideo(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func SharedMedia_File(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_LiveLocationMembersCount(_ 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 MessageTimer_Minutes(_ 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 Conversation_StatusMembers(_ 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 StickerPack_AddStickerCount(_ 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 MessageTimer_Years(_ 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 Map_ETAMinutes(_ 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 ForwardedVideos(_ 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 SharedMedia_Link(_ 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 MessagePoll_VotedCount(_ 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 PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Contacts_InviteContacts(_ 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 MessageTimer_Days(_ 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 Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Photo(_ 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 Wallet_Updated_HoursAgo(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 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[86 * 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[87 * 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[88 * 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[89 * 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[90 * 6 + Int(form.rawValue)]!, _1, _2) - } public func PUSH_MESSAGE_ROUNDS(_ 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 OldChannels_Leave(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, _1, _2) - } - 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[94 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func OldChannels_InactiveMonth(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[96 * 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[97 * 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[98 * 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[99 * 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[100 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func StickerPack_RemoveStickerCount(_ 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 ServiceMessage_GameScoreSimple(_ 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 OldChannels_InactiveWeek(_ 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 StickerPack_AddMaskCount(_ 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 ForwardedLocations(_ 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 PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_ShortHours(_ 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 MuteFor_Days(_ 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_GameScoreSelfSimple(_ 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 PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[110 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[111 * 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[112 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, _1, _2) } public func ChatList_DeleteConfirmation(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[113 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedGifs(_ value: Int32) -> String { + public func OldChannels_Leave(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[27 * 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[28 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func SharedMedia_Generic(_ 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 Notification_GameScoreSelfSimple(_ 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 ServiceMessage_GameScoreSelfSimple(_ 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 Call_Minutes(_ 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 Chat_DeleteMessagesConfirmation(_ 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 LiveLocation_MenuChatsCount(_ 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 GroupInfo_ShowMoreMembers(_ 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 MuteExpires_Minutes(_ 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) + return String(format: self._ps[36 * 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[37 * 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[38 * 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[39 * 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[40 * 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[116 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func UserCount(_ 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) + return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[118 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[44 * 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[45 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_ShareItem(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) } public func ChatList_SelectedChats(_ 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) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Weeks(_ value: Int32) -> String { + public func StickerPack_AddStickerCount(_ 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) + return String(format: self._ps[48 * 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[49 * 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[50 * 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[121 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedPolls(_ 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[122 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_Video(_ value: Int32) -> String { + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_ShortHours(_ 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) + return String(format: self._ps[54 * 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[55 * 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[56 * 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[124 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[57 * 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[58 * 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[59 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + 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[60 * 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[61 * 6 + Int(form.rawValue)]!, _1, _2) + } + 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[62 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func StickerPack_AddMaskCount(_ 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 MessageTimer_Seconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAudios(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideoMessages(_ 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 SharedMedia_Link(_ 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 Conversation_SelectedMessages(_ 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 ForwardedContacts(_ 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 ForwardedPhotos(_ 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 Forward_ConfirmMultipleFiles(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func OldChannels_InactiveWeek(_ 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 Watch_LastSeen_HoursAgo(_ 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 AttachmentMenu_SendGif(_ 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_PHOTOS(_ 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 VoiceOver_Chat_PollOptionCount(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 ForwardedVideos(_ 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 Map_ETAMinutes(_ 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 Call_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessageTimer_Years(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 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[84 * 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[85 * 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[86 * 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[87 * 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[88 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ServiceMessage_GameScoreSelfExtended(_ 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 SharedMedia_Photo(_ 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 GroupInfo_ParticipantCount(_ 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 QuickSend_Photos(_ 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 Media_SharePhoto(_ 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 Conversation_StatusOnline(_ 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 MessageTimer_ShortMinutes(_ 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 Wallet_Updated_HoursAgo(_ 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 MuteFor_Hours(_ 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 AttachmentMenu_SendItem(_ 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 InviteText_ContactsCountText(_ 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 Media_ShareVideo(_ 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 Theme_UsersCount(_ 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 Call_Seconds(_ 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 Contacts_InviteContacts(_ 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 Invitation_Members(_ 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 LastSeen_HoursAgo(_ 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 AttachmentMenu_SendPhoto(_ 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 OldChannels_InactiveMonth(_ 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 Notification_GameScoreSimple(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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 ForwardedLocations(_ 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 StickerPack_RemoveMaskCount(_ 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 ServiceMessage_GameScoreSimple(_ 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 Conversation_StatusSubscribers(_ 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 ForwardedStickers(_ 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 MuteFor_Days(_ 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 OldChannels_GroupFormat(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[117 * 6 + Int(form.rawValue)]!, _0, _1) + } + 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[118 * 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[119 * 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[120 * 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[121 * 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[122 * 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[123 * 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[124 * 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[125 * 6 + Int(form.rawValue)]!, stringValue) diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping index aab4fb144de75691c1805eb292a35ee88189e6ef..a3515d8ffabdb90d9476d7ca81f5cf17db70253d 100644 GIT binary patch delta 35138 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 delta 35342 zcmZ5}2Ut|c_qKE80?RH<+QKed=uL{<7z_3eiY3j0uqp~HQtXWwdv~J8*o{f-g~Vv= zn5c;zjYgAL(_=TkbfbRn%!S4O_dGt}%$%7!cjnAF?!@f}z%Pu72q~;vr;e^pojUED1qIH+Wam))zs{(-^f-qF@bKaQR>ISYV_7MG zwKz&Ct4l{ynbC9jI6*bKF5UWr1yWHy3)FRX0`D~{kS`qO z#dm$^>D4E%z>&*PJ&`XeNoAAx(UKT-GP*}|<{L)&e$0#em3k^uv^jb>^2HcadGk^$ zdy~IfYGH5jv8B<<^tx33CEjhuyMC&mn880s?aaDl`+&vj8zuL|Oho-GZYyh|&c*}m ze61r&tWljgC?!zEGiKr&%7WQkzP~Jn&EvPr!r6TOyv(RB0D*;P4m0_7D9j#`F9%wP zIwMd0Cxj0e?a3DNp`&9M=krI$v$y%)(Gjheq1^|AXE{ns^9qNRBxe>o$I1mJv;?9h zvp8>bcFwruKF*>{hoiWpX04Z_JrR>L^G0KW**m=37#mxGT@ChbUsjx5n&&JO>$Q?E z922Lm2CbcEJTdZ1WBk|}{^OV^Wi6JfEi>}SvBAc5XxD?fU3SiJM{=LMQf>0bqz(Q?FYr(61dfr^DEyykbW#sOxOt?~aXN@AKnhquC~YcdS|64B8-W>1+%W?ORb2 zOV_tB*O@GSh{|oe)wme8ojb-whwT7?H|nbSue~GRQ7V^h7k_VDq*76r{2yVru8j*) zKLn|Xv)%z*H{O@+=Aq-Q>c_IKqI-}}M(J=zae7fviFm>uK6re6wwEs$AItXfJ>#R4 z19d5*DGQ-nvzd_0C0{ThTsc~oGW`_` zKRqEt{Y*Zts&O!XI>DeEt4pmTSrE5P)G5d7@`DGAyxl}2JHg+W7|A~8Qzu5LU!X%2 zza1JtsawFHCnowRC##Rm!X##t9C(U*Op0QsdD5i%>DJLU&|Ae`#9aFSqM*hGgy6q z0YdqX*kC^3O)vE!O5yy7hta#8BR{_^Kf74G_#?jf&3N@O+UzvyGPCnrZ+fV|p%}++ zuQc=7fdR_zSkL!x;+st~nEpVEIIBIfi;~;p4CIJICOPgeK4@Ah`<%r^T?RJkw$F?(Qg&w9n*J$}bxED{mQ;=XLqew``$x-0IXZVCZ()`T5B` zK$$&Eo&(0$z7?s|b)&^Y!M;bVipp=j<;mRmuW!XE?rv1E46mCo-Isar^$X(k4O{}u zlNU@62eZ$eZdbhAD9wsvbaZ;Ks>g%OwCi;i2ANuY%neIsq%d!uil2Ub@QirH-;HiJ zLWeao>alvfVn(DA;6|fTA???CGL=7^;l~1(%#2clFjyEL_*)2XGt&#K(QRfVrsJF$ z2C*_{W;_e!yJse=VW5hj#d*x++tWG3nL92szpO+sv5EW73RcZ%u1~jkXg^~}6kpf5}1Gv-9FG`@LGg3{29vOSex z+O-jj^=OU{Ys8<=31^LY_}p;TgtwS$VoiDfxmL9qh6tryi&;qRW;Exk=0>rX_|dr$ zVJ*=9f_UudteMcu{OR0SrKPs76P|w)axng&GUU(2c9(F&N}j*^UbUiA35Kwbas>H zY~B0-)`jn$AE9=|ykhw%YY=}lKUC@FM(d_ABkkYG^sEO@Szu>9d9MWtYKDBh3;S81 zclW%)k(~hn#I|RGRU0V1-1x%xBl-3Fo=X;bvff;`FqviXW($**K5l%}kYGM}p)c#p z7c6YR`thR+8!G+Xc|NgGoiKF++U@*kb0Z(~j-UD-N|AJP z2NrtMJ3c@-d*89K5BSx0Y{47RBq1~8OG$EizQhWfxz7r-x)n`9yjNy`SI@j*!%M}Y zY~$TmM6sQG)QSYQi?3P{t5mqrEy!|yZG}$#5FJe9vyX)s+6~VxEOg|Hb=l3mS0=EJ zd9#%^bq^@ad~qYAp>I(iXGf=8xKDUF2=?(u?^^k-g#sK`3-bN^`pP)<0Q#hGdzOh$ z{Yd2rtAc@c(pLp4hrzU6LU`e-aPtkR9cZS2b2YLu;&% z$Tr?>wU2rn#TY)=+rlTV_64$;x7xzK;9FNGvy=Rr)pmA@|F^n65KO|FR3Mnw@$)R7 zx28Tj$M>&^Was&fHC9%|pRI{tUvm4}hU^mWyEcYh<`dT@0hDZBYgMkekv&NXq=i!; z$i81|RIlQZ5w4xJt<$ludBQpyFiN*|DeM}bur6M?;YPcDfucFQ&L3E$YF#wD#s6Fv z1q@!tPnre9E$n7$NXM#D7K zr}Nh(@0yjnFT5=|9V}4dzP*m-l`A(_K9-`GIfWM&~ zbXTc{h#r9(QrTl}-w>nz27>r%@vP$`Hq>MP!o<|`tSQH&)t?yVnKAXimAGe#m)l3+;w>N`$>%P1@AXf6}-5S4_F$)Z@ljr zUKb@P3TqKxdQownJYR0S?gufzI0+x50MoqoK_t-hZw3g(AC2vZH{ZV{{E z<2nxBsEXuMBcnVrq%Gvb(>5jxh_f*Yx^DW$2o}gUZM3UFptIAW92SND2=VpTMhh4# zcvG|zstVj=;{!J7SQsC+DFRS%&ZbDng&k-OSLtzEX7*3d&FwHY$5ABkpcui*mCaEW zJ4O>PB&{F8hZuUVXc~Ce|uiUG^o5HYBI# z7UXF-Glt*XoTS96nju~!MNAx~_%|?m+bw}gqDmPnSg0Y>S(M`}mUBtsleR>#`h4A% zNHrPHh~!hA2l4A$g47h0V)@{oL%7e@5G7TW)=%5~GKZL88t=9>nl<2~w#KOqK`2cx zKZtI~AOTXP$ZyP#ZcPTFd9>B8G*>m98Nbb-yrdHAz~cCzZQiT}FW45zUgnFpSy@Y7 zu`N_>h2a8uc}0l3cu?!=ml-Y}+eYQtB>~*J-Ne#)i|sbGEr{zw5+v|B+r89wC`Iz4 zt4w~5LJ09%QQn>(+a3$(a&LQ_u_K7QFmfMfS#fe7$Jo*|@tjU7f85o`+wTZso%w4! zENT~!1rd9~jB*}bRX+J^t2iC38?W3Esdh(usF3FT$qsMe8r@D4%iz&F>zjI^MVxO5 z*2RzXVQ_DVhxFzJJEH(&mh4PoefW``aY|pj(7izZbf>4KAG!&Cs8O29T?$J|(OY!v zuTpw83-Wsb`o9A57`m0FnD}HbA34X@RKC8-$QSMkR9{DH6yLEp(&c-3gJ0Setqwqa z5DCoHw#HE~5LKFOA-ycF<1t8(;@MpaOC5!!B`yzyiy)i#sfYtunpDw9%>i*3_92j; zs_<5FRc^l?!XH)CQyplC*Wi21hyDOi%|1+1hoREUj~oc%t&`oodSn+$Kr>v`>=4bV zV^Bt@LhOh0Z$Au#SL)G+Hh87{KT2eUyyZucfK1sRHB*Z)5(Mp`5HF$RDdj zZhI-=H1R`7k%^DIlyP!iVZ3#KUOIZlgC<;xwW?$8`o4w5Kn!A&Ch)-@+m(r6*frHa z+P7AtOhP9c-#*7|5ED%voho`v=C?k!cbtMI>B*5!u-=XwEO!kP2&$=Q7aNf|+*#`E zkegTPEKcrJ4B|dcr{s=u5J=hPl_gY)=<_Bo*kc7Io4+SqnXdA|U4!_nSN+_D*qEVB zko%nq zXm1LfT$Oth;pDovH&I!D(c_f>S~s5g>eJ-9EJWv2x(!*y&n9}&S(D-kC^z|&BtW?f zCqntLPy7JqE`JiCaFw#dnc1UDM={a2xp|*iS*lWb2{Y?}ex)~J86UJSf)RgnUp!mR zx9zjTw{>n`q`Cr6v1;a*_kLftl85g%0q`~7Z&FvI$wc!%U}3tpurI~fYxu;z{W0V-Ii)A8g(KFTiaR9LusL$S0KJo`{Q`;gB)l*B&bpB##UQ|tPnIQ3%;rzrw% zJ?yFOMG=eZV%WXhPyGaSX3lhheBxnW0Ks{O?QB2aaX6J7;5QG4DF-3TUk&1ZNBr0! zZa)&w4)bnD%*qj!@91vS;G$TgN0rSgYE#atG`TO7fTRclm(hQR+RA#_~HIOnm+EfT;T@Ni-_`tI`b) zKku+&U{5jm2WW<$d1NquaJ(LS$k~Yq_J~KFhy|eQej=6q#wVRHslS6NNjj#Wuh}0s zTJg%C5TU|TnPLw5(dphEzj>$ zzU%Ww=4TjQXtngR(&56-3){v~EDiSO>XI)^tPVGSVNsYnPfM~;#t~-l7lvFR9OmK) z3KUcnuiw5_AGz@jU)WU@^$|73NbR<}qdJ7|TpcC_t_Mm+T0a;lCgr3T^W-m`i~!CX zaMGga-KFp0?UMnjK@KIH*vC%#!(a8)$!NvLU3-7OQ=y8l>;HjX4KSrTe&}H1iz5Pg z(WwBXUTw2>00a1kry|rq5QPcDuhxtT;uYWE^qdYW}{DUM~S1f1_{LTsTqPKl0=S$7MQSS5;qW3l`ZCs&6+OF(N_L-d#!z`$#Dm zI-sZ6CCK!=Qip(p$$fiw7jzwY(giDAT;1`rGta*e1@G443ue}p@3;_U?S_6eHkhL{ zxxceGx1`oW?9LxwutoF)jZoY|XZIQIC~zdV16IIOY7FuW-teMb%>E787vi}Ib>x!6{Tk4JLlt5{<`nuYb*PD;Zb zWhHqzqE`V=|0-TBM5E@t7~pT<%f9keirjhj_z-^hs~|RtU-~Kr(C^7t7KA3luGrO5 zkcV;q`XMhsu`<*}@T!PVKIMuZAmE}a$!sh?awQI)uwU?V0{6d~2=`aZt8s`V4!s(q zOxDghnN~1=UCriA;RyToY7~2O$=5OJG>mH&P&bIT`Pv8IE92|>Y&xIxb+kGI zO*ZO&0!O?OO*8rVuOrl1s0)XPMZ@=cj z3%~U=5o!hRyAH9~2dQzE^Tpp<0jw&%jZju-vWeORD5|$)V9n34QsW<<`G*$|zh+QZ z$!7?^5_ZP3ZJs<{tNDOyN$MIj#YrrnJ>Cz<>+m%zkk^fCHXyI(`1vlkT~7e=>UKRE z$ZOQ~81;ShN|w6e$sirCyzZ}lfEvxpxO3f`ZRCGnw;-?>awCRq=B;j|u`RslMwGf0 zRCb=$B$)5KQO~jsC9yi~ons0GuR(NZ(ornt4u11S9Q<#dH&ft$Yj)GZDtP~!5rAFe zZ>9ovZM~TU*md=0xbm?(l{bPzKz}Qc?cugtvFct79LF(0A=}tG-0pe`G9ikou4PXWI)b-mwKw|f9TiIva@Lf1N#uL7a0RrpwofUz_QTYGo zeED}NKx1EgC(xMv*Qi<#|0#$A5vs&u`t-;y87b#-8e`+MBT7MfZ(UD^jAxv2=RGqc z`S$O<)U#-h5id!FvzQNppJS!UKgaKUpQuz}O-dNpcQ{0+c(V)c!o?H9`}|;0F1qta zodfx-A50-%Vh~|*3omv?k)yDSJnUcb{Xf_daJ=?I8oSDUeoTQAuhowcaN=eE*jT`` zAMNUO^wjwF;*X*12EX@XoO08h5B9R~Mn4&W(|Y`5f=4g!rzk`f7yOh0Y$jH4!A(8C z{*zAm!JQttVLs1)@3)+9J4pPo)A@v{6J+&seYuDh!=)-=r8lq-y7b?z^j@AV`40ZQ|4K2V?bC-8U;{4?d-?Mf$z3->-)! zJ-Q#QTIEO?zX^2tK(*RX6pFoFzOyVh3$`{wt+k5X&a)mQs}Z1yl!#`{1L2^ncu=1q z0C~sgmr>YbTz?JaMT5w~2N^@S<)M!f<3SlqaG*Op3{qk}BuIYHgLzQZWajB3BaT8I z#i36$y|RHt#nf0X@u(6Dku^NK*wMpLScW|;D1eIqb$G$s4`bCt`J~$`!=)2M)F*k+ z$XKj@<|7?^d#^o80))HpPbA;+$PX~?z$25A>LK9*-`PHJ$zz?Gh9NXrD}n;akAvXb zYyUWsHRQt|Cn7-k_Tv~!6VSX6Zp=b9Mvk0CQ}KLSoPZU)|JV;8?%CrgfVjxtngGPT z_FKH#5(LqFOBXxe{F^?a6-wfb#3`v}-P#3ijm88BJ2QW@RL`IO=B2hlO*kJlJ;<-O zqbPrzus<{fl+M%s7scB0e*d$W+kr@^vUbptNEPaspItIMLyDR99yLiKdcNa-UT^~L z`(K=`Bj^J_FEwv+R@ty&juPRXP1X=fXU={%D_uP(GXRhZQEhkL{P$pZ{xW}$w01{d z!67fW|I>3_uKyl<$?vgF>c8w6N4l_*XoDbOZb} z%d8IofD{R@@@ao20wnJIv!n7ldNeZClQ~1B4&ii`Bm+ETu8NmSo(<&f{)$uwVID9C zUuU7x3>%Chf=#0X{kl5y3acYh;*Eyzioa}14me8Knu{X+YHg+5C4Wb%4s=YA$ED5R zq3TeSBKgg$LA>PeAaxi@0sL`vuzbXDlwu@M5RuX2e+Mdg*uG0}o&5W^KZ2`GT zOZq1n4#C&|u_^^P@Nl-_nZY_3SKl zj^cv6k`j>}lAJX%uSiUDHsAT59iZ>Re`chPJ@_vIUN!%x(eSD@eQH4zwBl(XJq=(6 z>1bFe-a|S#sP$Ur;a9yEB8sj-#EPd;fQVl`wW~`&YNzK@U|vi+1&37Ih^` zHeTM$#5+F+5EN~|G~rS*ujUh;C#Y*A1uV{#?s)}yrESM$<&BqGU@aQNL3Fv70bbK{ zazx}xEX%w6@$(qAVX2WJk!)!T{QO|)K-Ngv=)os9v*;k737 zJ5d%3oPMtLhf$NrX1C@BDHa2?(9?Qq!bm|wVOQP(#%tkM%EP$P) zo+?XJPC-^8R`P@=-WnT?&HBPw3^EZtX`ot+bNPGsk)g*%IBTZOR#u_QvCBv&(W z3B1}p%Cx1rfOY|^s+*F9A)PF^yi2J=+OrpFgFCY;mpo+JCVlOWWw}fb+*v&Pii{r2 ztX{zok^H|dc6wq~bmprl3fodZ(Y}Qv3t<$XROf3{N5~f?59ZIlq0Ju5q<)LqV38s~ zw>+?P*XU;tEa!Di=8)Nwg{wC}5?K=|r#C#ALAmK692`bN`;2yiqi)HeVU5tN-J6)e{_--+ajT)}xScou#@t59?`UL_>JReP0wq?S4s z&3>XB9U_%KgHGZtueQi&Lx(!QRLke04thGJV?OGyAZZ2rDxO@~hIc5^izTtUl<9>t za*v!|ES24-bzZCidq7`$VXYr|@Et~*XLUyJW3uRRD1W1LJqu(1qc`-}-QQ`J9y|XB zZPqhu_@8);FP{H`y6jyYG5HJUCC^At^-Qn+4YCCI9in{m^Iw3J|6pqkiqW@|jOdB? z_!oqc^e}>16RP!?Skot{6|2@KyLcG!8;Id?CybtqNbe=8@SWj@YBe$B##mg9IS19uNzV%^-aBuV# zN<(uUNz20JKk^|rUlyVGdWxJEYT?Vg6+chDwy6tTSeQQ{Pb!(!BSZoa)~4^#0Wat7 z$KnusPw~U5giudEmZTc-Ab8FDvQXb1&LMePif9fnhDe-@`&Kw%T=-HiS@uu(bT^lxG9Fl*28&@MK2Row8uMaug82?934b8i>I&avG|w- zvulCH4A=ysr+4Q(G0D@Jku>`XpM#495q5TN=Q~6^lMk_EJA7F9k zPKUo|zTU}jH;>EIqS$Tec@T?N+IiBt1=xmG!OUIlfZj1Q{#$0DZQ0CM=?M0o0mr)0 zot6Y6g{2eP!vzd6y8_Z(sS0+P+6^s85{U?`1&!UwI|Kr!2ek=dCMCmDU{>CBn?XXv zOwfz0WeY9p0XQVqOH8&GRf3rHrfVTAR?PxYs*HdY)b*q&BU<`U8zV$pUn(%NP}YxT z8nMUyX`>OG_6l7zvS{^H^okV$C^MzDg@6>}zD9|mn9J)lFccJTfWk(}(Mp()u*cv_ z>f;ogGe8{J$gqKE7L#o2gaj(h)|PP)Dx*bcobE1VdNPDDZ*?&0EFyTM$C?&uR~NFW zeHe?dkjP`l3QeFnAb-66eChxTGFL&fuC zJ}tlXlD7=`4)YYLT~u`*2B)+-<4w$$4X5TN7O&=kK8Uh?lmH(W{vUz52#FeLor(E} zjzn2#EG=h3_$C^mR43n)7g~+f%3skU;{_mVC^d@J3^nScG&74*iae!NPEIqF=qMU( z#)=oydNcN^R6LvCN(}N$*Ob&~x?_gW7=wDNNKLP0im}ux8~|b*4Gw3Kq2oay0@7NB zQf;#D1X>l2&7Me~gfk>BddduF@#3DI*%~;WOwYn`o~KZ(1+s4{b+kZfmQ%h3a_3E2 zh}>c}jVdfG)%Ptt!-!{yG%KhSDu0Io-s5HVAxM^S2d)=+8AIfMiN%;fsaCw%OnM!$ z9d#Bu+v&muW~O(n&>XW-ZZ66udQDXfgrGvGItP{Ef(?9R4v*Nqxu`;#iHDI=Z4fZ? zsI?7zI-dsFSe$(U8ikzEvfiN*Gjd9uaK4DgFGO1`Uq8aaceHhE<%-wcKyhL zy@iW6r`q?kgr3=0WHd)>AUaCNLT(R7ZeF&=Xw_S>4DIdZW;*RqGUTaU`&l^5cUidN zrY=WwI8X5l_Js{!TAY_ts>zlW^t~ODd?k4!+N7=mRfO=xQbq*8;#$gyz;dsr*+_;~ z-$i4T>y&;Q0iJx1?nbaA<$X_n`?DZQjzrZ5)G887u#pBvVv9CWc_j4NX4(}Az`6w^ zm}zk-BDggUv#sP81@di_8U?MfgL*~b`0k{)qFA(P7sw?hugUuBQKtE#Dm+DY4^7Qv zs`?>_to*_EW?vBu(h@axqb`J6ox{c_M>9{hhnhw+o4Oa(VZtJ&qG;yLKB38|RrYym z$y>-{p+lfn_k%30#uu!wr*Uih;_RWC^?d+-fH^E!?@DJo=t)*RkbTP-relYwQw)~u zFcrkW!Z?DHJS2ox$AC8~XgQfvJ3Jcl;H`c&x;oqHaoD9K0kK2U>F zr5&q4$gXOKr}QFR0GZ6ip=WVWC>K$Tlz9)77!QE=CCU+${wrQAD;@~wlBeb`Fm(0z zu94zbKx5?V=7!LYcr5c(+8fWT>er~X&;v6IckS{wgrk-WNS>Miv3wl_T8agYO8}eQ zp!o?bjol<FBUB3+T78+RZFN4&V^l{|%keBM1lA2SO8dMLaXU<6sNc{i0w*>a zTc7#b|A(SD|J4#H3z!&4SG%9^2inY(uEX+H)(1BIlg`wKocoLZsL!mnztJk-f-BV1 zp&&aiKe+~{{!5LLS)}q5!cDkSdmts|{1lAgj&iW@>3G-Np7TIWjBsDr32_$#lH~8D zU=?-bpUUi>UT76B$=kFJgucv3#W6NeQ7Sgvn^vZR(1&g}VWA#cfXkO|2?{^LhBs3D zb=32gK(uMhGrV5)NaA*2@~e(-s&Glg zxUOdrQYHLUBkB-Oe;6q5iczx$5Ky7ixdF~v7!@|au`+=o78FMMr~wOx_&+5Y!|722 z%+f;s4I%ifpb6y_!ND}3A=uDH!%?e5=wx!E@8^DWxFHTqB&fpqh5lyO!ikH9STi`X zyT8{&5g3O1amfyn7j_fv;K(`vP7$s3hM||O|E&5HZ zbsi?^gvd=621ZY3Klte7nNG$i()(O<|4^8tBB=u#R3}v@@uQctR7FJ^&2P*sN<*E< z^$hiL-BoNvRgEE(8q@EMA&r`lsR@g*H^tCG|5S?*u}Q_rupu0yHHFrUhBU#-HK$qP z*Gsgc2?TiyvGrE=GO?!MhnAGo6#BXq^=!%-sckS|JS|qR0y~;Qa;DQKO`(a~p}M}{ zKYG{{UE7myGvL4u^l~$nsCGo7CfIf2&BaS}5(Kdx4aEOD>qHQX&Nc(4=pyUMuQ^j$ zR|;;<>`FHsKNkxOS5}OGh@kIIgPH?(^w9CgLviikl#XZA_oFS%0RVd9NfE+uG1Hai zFw}bKM37D2P^O@YzP%~%C1zK%Ko=%8X68#^f<7oBR=$lz`O6C+!(m-%>(ft1>+gVf zK7I*qh5jHDb{KBYmS*Ra!mkJr-&Q)6UZGnr!PE7c9JfagW9{vO*QtIB*iLUy*B02F z0aVxmi#doEwP4MZY;AApdJBm1A?R!58CyeK@;8U{FSA(1p%V#}?#(3bq~0&HMr;_( zd>N}g99`1L|7&bU)yvFZ9f7h;wxNGtW&z4bowzq=ro@&^ujK1Q5|2b_-au(Jk?sPW zNQ9t?Eg{hhX;Dj9EKVJ-I;{n8k{=uD^(}$C?4LI@Ppn@Np3p!`h+XRuU`Vb7g`=oJ zD;Sc+G_Vz*V+rVl9PS7cS9l?lyR{Y5FV*p#M?wNLE9phJG@6dJV#(?lbhFY0gCf#! z>eLyl*PX+dz@ON!{CkU8hmL_%)s8wZYk*L5JJ0Fl8nd3_kA6viuUs zcC+Yd8%USAWJw3gnTK(uizqKwxI%h5r3*<6J)Z`qL(wgy@^pZwMWBOWQemXa=`2uL ztkaUi+vOGK9j;0vAFGFt`2dI6)b^OqMtZ$H6y7F!3%``jI`X~4taP?LB*7NCBAT`?>%f|* z+wg#BK4qPW`gOowZKvTKuqHd`LQhEY_fVzo1VuF`P4@B){Qu5f1zHh~*PNnW>W3&= zM0koCb!2|ZM>@V>bO^6Hrg|gsyQId`wVRwBu~;7y?uI|5Pd#hZC4 z!MLd8M@gM<>_5S%Ni|_G@5V^*$Erz*ypM`H;W+OHft?KFSeS1XoDPn{5@ZL9^*cbv zIzf3ILVJ*erq4S8f*zJdp|@|mY^OLV~M-d^loQN=2IOFwlS0U zi$LTvy4@LUc$`=lX!;YB+6AWj=jfLz5EYH+0y**p&Fli?f08P?uvqIUGzu5kxhh)U6-w#%&+im z)IM)m9&BzcM*a;Q?Z!gXZ_ykn_xq1-te$dBr=?AqyCZ?=rcQ)Vs7H4^@H^^{oLGR# z(cN+Of1u^vvEe_`!S3v3^=I)|DaB)46aEEt!i1H_KdZ=*jhk{}1Aj%mm2SbCVZck) z+!?t`g*~AE?$P=lQ1$oed=J)KeISOFQ-kx;;3E#5q`BR%L2;zE_orTj9K;>Cj-yqtS1=JPnCDqxzEWAzV zvOeIfFfk9x7|jwTIx|tPJ~)kL)J9VIJ#5L_eSjdtX=@)WuZ2$a0Y6*OD((@O{9&d$ z$5h*=Hq=H)?}D!|X>E(W4lUVT@p&mJsr{XEUA7pT%_7*$)A?TEZ;WUd1NdvU@9{~A>{Qwt| zQ6DNkyy4MD`YKb%(w{X}QoW$OV`xHu7HmxeNjTpvk)wW_HOGY|wyq z^@pTx2qFuw$Pat*AT%QXSFps5slh9ldlMS?3iM)ATJ#D|TQl1I3S?h%^ox_L!M88; z(GMLe#(W8t$lT2j@EQk0Kt_*RP|~Xy<7Il~RaluVL6F8%Eb-L(4D60wuQE5Km6!BG zoPHInkxt*f3T@uji~E=3euI;#euJ_)!12~cz=w9|9YOc^um~a5L`?_k^%}HOM=E~} zQ|lx)B5=tkKDFAbGhKKM%hCnU_#=cWb&4D9`4>?)G25=x^mRluyNOZx^Zn7XvOB%? zI&AbFwC#0PU+sxDE$bpqI=WxDm5_-haeSp{5spOdDp)T{cY>=@-hfG)MXlbzdGAB7 zyaDakmnOWyEJ6Ly4;G)+uY+b+_NN_h;GwTjn{3!s=hnm7D<=3V{rv_^=hrBH0GRW2 z>O25T_y+o8jq4#ZX#lj$0Gd4jh;Ses9stro^l$)R^kC8t#1peAc_2Ctp&kQqQgW$a zAmT?3nl%vi-B8*-5D(nU$1whipP`Wu72e*{|HyBSWqo8b@?9pOT?CKcMM2R4YUJ4?4T*lIpY$&X8 zXtMI`Yaw(+xW&hN(G4%f#&3P3IZP+W(Zx;qHfbs~8N%uTGT5%qVkwUrq3od#g0y*D{r$q+S z++1+cLRygv<7^RC=7L8S(=WLYbW6OXQ6O&?a7uPSg};r#5CD5Ofd-W`cXt_gTS^NZ zkV(tXWa2Fchk19ZHY*7=2wesT>uN4IEvM%Wy!<<49SXIzg0hDKgsh}RL-FiYv}Y(} z{c5^76dSXK*f0Q_wbX1F_;DRZLNZYcGmRa_g5Y*sFbq$87q!|A8ag`+m|z3SF|@D) z1ogvVi21!QdmZT&PVvK8pzuEqN5p(1Y9UlaWboE5sFuHy(6)(|p)F)H+VBtOCI{cg zsc|E0p{n8F^sQ2gMh(pt8?y~$!k(`7;8Z7CRO6uSl$r-Wzz#2YW0S__;R!ow?I@&; z-D~J6kKHb+$b&CyH--_n60{VHkLkZWSOt5$WOkd#D{3_Yo4uEMj$lT3C5Mdw$M2(g zBY@fVqbD*9>jhDzpgBNQBM|aBMD8O&bC?oG0>~Yq&Lgqhl{9=Lj_9W}b0oZ)pH-`e z`xBT!FF&{<-sc#E*T=!WnPo%pkrq*L9OEbPsb7k_UOwsxl)yyqhES(`D2$UR#>+-= z6i?BjeAbMerjz-2_8EGR4?``E0Eg!a+CurM;bwV+ucBlT>K;i!P?=(u*C@LXTKqcAEySzc@RFWL zsw~71x9FQfmZIGD(rzo`^9>=ubP${o$`4*zIANj_EB7PKa{})CL|dE~>1Vp+1fTzk zM}_eUW1x@puhk&QJ7h1yg5IU{A{>)@lvf1)y-&-F@bCw?s*H=JxRacM}dp~hju%+XBcV0D6GmKf=?oY|3s~LX({<@yxV`# zRkX3cHFcgV6H@;nb1^3TFX&^0%p}|u2>^H#8lM&vBU1ApEiGnt+fz^o&w?vKN4x5d znmW(W6viLL1o8YG2K6~gaa6xEA{-$luqW&2dG^0{>RG}(73kA)@m;NJRM8`{5J);|n`1eAnNkT}K9+tqh+|ri__QfoRn%oPr`}NzLUBFg;hs>MG6n&P z2#jE(mE)MpfQqDwG2k!YIYAq(m#GEfTAD91x~n%%uucr6jfIOc76ahIwr`lcb}uFz zN9ALoapP&nSZKurv>S!1Bbc6zg=LdOp5x$et50plVZV~m8ZC{EQ~_CLj05+j5RF6F zCRHzeT1{O(tu*@II0)wkWFC)qX-Lh-18+4V$9T8_8&mn)EK;VEsZB5@qF(9N8k4Xo z-5!s%Xh!Z6a7LQzWqu;HoB(v$0H0{ZVsmnX3#dj^IR3ctqvs(lTn))|;d5tE?|dr{}f7@{}%Ed}TB$uLp- z=&7m)Fg_BE1Ju4424BW82hx9&A;bESVG4GlKQ){J57#Sbtj-5QoSwZ(+t8@Irl+I1 zNDAly&#YjT*XhX=tn3?Pn~IefKy9W1xDBM&rvh&b(#sF!(T=I`Y7eG;Q^CjC^vhJB zxFLE?shP{MJGqor&Rzn}%P+_I7)}ez5k<%o3l~gZmox8(k(i25lkJ8(az={8hRp17 zNcPE*H(>J77)*op2%w4y6;RBZh+P!wHM@M^n^-mHvbi{R^WTK}E2aYczrGPQwCEB>%Ty zeN3VTZvop+p&@U<*ECfx^KaI^g&5$QwEZoh+-Y=D(7i=>-oh%)Ag}2dY9^&jXR+p4 znE(Hgs2Ug$&zw!g(_s?K(F?z_A+y*qG*9}^=IXUDFI zD855z_C$tFF_KHtsLc$Pqq zjgpyIy5%%)CSLCy?e$L1#Otk~E9j)I1hq{>ZpnKV#N{fo&q7#ZHEN}@7MDeg>KYWI zwJg;SX2H|8mOhyUAhizF5&U+8U|zIJGj`UK*KC-U@9O!{wr1A}+yFW|RqOyGPo52H z;ys!<8{G0fZJCW3Y(%RFv&cY9n7RqYP^h9{eeGA^Hj`}*@<+C4OsQ|;l1f|2IR~4w zjTX%TgKyW9AMzmS+#D7Zz60aTWDx?UXZmd_79I zHN9Q=W9KMiA&ZDOk1?c3MkrqUfQj}U6IUL674e1eN?e5a5uZ~yvk;s9B|71A4iSj8 zc`jo0ESFFg3f-kkyOwD|!OLi{@)nmZuE%~wgBCG6yF%rQz|vPWmOi`)Ed4c|S%hrc zZ}ikk$4p+mGy3+Fc{JZry~TL{YkHC6OD!W69ra!eE8;p0UyPA%&>ZpWCT&}clX#1& z@Jqdo=SI<>_V^6U(;xiQ?@+V|pJWit;V+?yC zh%yJNM~AGe^iCZHb?MnJqf5IE0_zyiE;4fiD3Rc6^F}d6d`KXO-XJWE4^1X;zb~yO zSVewlZCc~|@$-=ODXy2olTQK5@uC3+ErqGoa=1SNL2Q(wXTWkC+91kXjztbOxWK!V z(P{|D;Kjt3;l5iA`Cyd27LN`hzjvS=L&@|G3pasD|MYf^%7Kk+Ml29#_vRv`ZE#kjj++acL-;gp1B1b$A1Myb@ThG3i%9 zVmHBRSKm~mj8%|3P09KJi^KPKYw|>z(Y#gI#OAbP6^`yp1`S*MunNreGW{c(T9Ros z&QB|9wHp4x)>O0_!laEsb4p9am`NLZXIaK z8WtDY5iR&v6Ru9K@m6%A$~Dk^ozWIi6Mb~22Ros$x{z%xP(oMATnoj~oyymOwR_OJ zYhhaS1ig*h4~igvojMsPnR)9oMni#fv?I5zyvdSDwskBrycgQUApmHtj-}LkqkGff zb--O&1`YeHT?do7uNX@vf*9Im^z4(~PWmVN(T#POOMmiN&l1&FKocb5D77-_b@3j7 zkLJ^k!K$_()o9phce6{ zv+L;*3g+Qx6Y@q2o>t%b(%ijyf;EB@U8xBps^=l*=+d4qCQ*!}J{!Oe`Bc6EsI`E0 zZD7&XLi7@DYFCebd5$rzEJ-K*z5&9yh^+6y8W;syE3NZTEUwF&#i(j4Q|Q*chpjK6 zqk^yuwKhr-8Q$vqIDw-n_?l$GY=!xOm}yv_`?h`ke^Il|`?#??6T zYtF_@D%l93J`3_bM11blo6Vua8v#M)ijkwqYZF49^TZ(hetC#IZS$$gCP1JCG;k9b zaUo6I1g>2~+cx3d7SnlLDrHOP-X@$_PX3#*Y;RNAW~k|c=B(`Kd`EG^%vw;$}Li&9Gf)J@03bsOQZ=|tXA>cNNZggY_a-VCG z6gN}lRxrdCy1f-zb}K#Iij<3O)k-E~8@w+&sNXj1>P{NJ4T*-kFoehh6MkX?Rc?c| zSV8AOVEqs+fJ2qf9HQf$5`LThf9$>8m@&q7VhZgk{bhioz zINjO~R@_IAwPyxJPxsAV1mWgQN=N=^&8`kF0Z$7U2_^a2{^o0W@=j zzTJV-aFpD4Vp~3?n4MU_&jia`YkfY)Y3fc)=mdQLBK31TJz9QBh<@3LgzGO*ZYl#e zT9RzUE@bZ8ec%+7+s=5oyjsOM0&2-h_}tRPZ% z#az#mr2@Y0D(Y1MFXIJJNEdK0t*d}kxoF_eLlJ|iz#4o>7b?I3U(xRsV8knA{t({A ztFpslRS9w(?ypf5<@)lH5Brwpeh4PHhHCAGfqPTIA=l~RhtPjFYN>q-0D8 z7iZp+!al*?=s;oS{wo9gtM6mEhSSrO1FZhC!HD*X&#fTDvi%dFXm4)~2a4~oEZc{A zAM)AD zYAZeafra>szfh3l0EThOC}_O5`~(9XI0%`QK&K9}cv~WoA+SJW6p^Se;yNWd;PfUaYZ5W@Fr-0KvF1r|L@qcCG4K)^ z)8y+TglC|uhhgZqpkEF{oxDuGN3g#wDfI|6Rx28O1j4X2%{>CUwGF!A!{vwq9yPJ1e1TI>{jy zH^M!vN@N#yMllwkK0(6CE+|D(RednVD@QTKt~C58bYypLnKlOHknhCm)agMxkK(vy z&=v73lb#<1-}fTRrx4t|DdSV%pe&mFDb}oyoE{8sWDb0a^u4~|KBVt?Yf49&mHoV> ziR4)zji*<&Q^0NaRhrk8`MJ!2*Tfq&P~Om}V@G6*i44H-0!O%DmUL^>!rX!M*=JbI zLG<7=Nan%he+-PBjZW2qwviCDL#Wp=mTJ$b9;+Hp*4&enejM?vT(O~MI(!V9>!9<; zz+FSpB}S@k{c$)IhoKm(aYW1G_>R(W%vF3x>Gk8V{zuTL<5;DUwCFfAcRp=9j)Pi& z9-7rae+Z&N(w_h?I4S7_h>EE52`uF(8gqgr8cRU?f)wmo9s4Vz{U=yl*l4ukpUcXS zH@C#J$IyQ#u>0f4{yA1+0(Ji!2YxaYeGV>}N{c>+QZ1)FpTm-S)4SG6Tz(0>G>!bf zfC6|6;|di~4SF+?e-4+6#BtLp^9zhKgNnX@2Ac^&nYtOn=e*=YRbL=waTZ`BaOE_FW%o|#XRPC`B}ptUC<{uhGQ0xmbw&nKDpfJG<@>+!|M zORHDB-C{J#Pm9!iPE1SQtafJ#iX}DOYZ8%bGTB8Vr(UN3X5I#kjaN($34#w4hDHgp ziF-)huoNxv)#-EwI)4f$ZW*fZDbSyd{Mkwml~4-f_+YbNzr2z>q~D8S-;tH@?^BD@ zIAbeNOp>26rIDv`AXn1V)7aNlwDUAJdo@*^24k$Dho_cAUjZ zZ>O7QaaU{yTE&{y@VfR9vTBanN!D|Krn~5+b6}1N8hj4t?n7^WxVcGuSuP0fWhtn| zn|?%9=U7_!Zj2{PP1h%h<);WWtp71t&g1ayrS$Wd>?havs?F0LBwOm_YKXf*L6CE`e=s(u_;k?px?ueP`y>CHR)UqpvREM14v=BhmWnuhG1(%T|^b1;~MWW9tMV6?9!oP~O6Q2pm&8>DQh&8xFw=d&S z_o(hyEIRl;`iV>+?Ixr4k%foe_>&A4y6LaD2OhS-{Iur1yifoV51)V+JSvy-Nojrk&6_iCl!X_XP zG$5h_!U!q?2@oQq0t#kpR zx!jI7LFzWKz7u8YCZx_J@~{#b?Mtd{Xl%H9W@B?x*gYXx-r0n>0Ybwj$R|}UZDMEl zd4g|!S|+15bErs@ak$|ku-&zpav8E>Gt4-X25TJNb#OBuC5z`I3#lo&TU?#oexA#N zEprQHX%|ux`}@~qwB7zb_LdLXBAy3H*aV2 z>S150-g?h$Xa0Ngm}gOoWbJmiaWDC1JEBf+k_+05Pt$kct8o<`M+$9&`9jnH$Mva? zjNDv`#SL(naw5ps{R}A3I1ekHW<&{dV zAx}3y%XQma$ek_F?$1LhVG-7?+o{ajiOfGt?%m0ohs!fN*|V?JUQ2F&S3&p&eWbMT zVpHeQ&{LATi=*>((rXvz_3Pz^U3@u2yItH&jgeP&LA_%=vf(pVa_Y4jvBQQ^yMZPP z=@tQ)WYQ^DT5`ysE(DJ`j_gv$HlqIz+%w^;)Xm6hYi-md+xIZ^xs1U98AkIPT z_fV}c?9Uw)9gdE4uQSCnr!#RK?(?Yj-U0KyUt;#M3q3%!oZ!U$+0kJ|z(Sd@7un%K zS+W<(eMsKe%Q@mV6zhx&vJH|V7xyv`zZLI3TsaE;?=d~G{B<3+kE3*3)TDO=u} z$eyHce^l1&gVG<O8vX+0sH{ZQIskGNopO3LxbiWBxD zq&z9}_d}A)WYvCp_3EO{eU^4Zo>*1iy4>;OrVW{?;;ep$Xcd0n2= z#5MBnVVL0?vhy%2_AR+cqIt)oW=h2}{0MT=yB<00c4ax2{C{>Bj}x}+FY<>Y7)1Ql zquaHDakeS>-;L_R1k97EeIQfewH#;18Eh()RKDA@V z483LSsB1^njT@z0Yn`k+iazRN`M;y=$)8ZPN{w=YlS=U*p`%=L%cK^*%m2s&EvRxn zmA6|E{{AlC^JCU~G&DxG_>aNgKa;M7}JM@Y;6VB6969KpIyf2WGX7}20ibG! z?_}q3cCPQmbpn#!NP#qK8PoR!+;x)-J;6C^voxJxuiGNeoq&ICl|P^0+ia6fCtQ{8 z?bP73k?xl+C;1*bLhIg|&yPOIuy)F%lMwYTdE_Jm|3TKAgtmW_?I)4`c1z+Zn%dLG zLq?zCQ1TOPmSB!o7}plNVjowPD5T`oQ?$8XJ~#!tKR~(8!NkvVCGxZ@A?qNI{IR>J zHfb32K0kDOa#(6k(}yE+(`i=JQ3|C8mn?EN%NBY0G<`TGpPy!?kLzb*1`t&uh!^5M zNm+naCc=;gIe>K$oW^;0 zptgzlF7osQ;M_J}hNMF(HiorlIiPo>lye#U&{-t=PCQm9>U5^OcNWpX&9lAmlp|+h zN)dA5EGLsFQgbcX54&enY*Xv8B1Y=Yu{FfX!Wa{f6)mXvR-Hpx6)!KHgA;gUz5XP~ z!E>&R+(cSYWmkK>Yn#>2m%&Yd1r3ESH1uRZq5jaDlT(j#nn1#F$G_ zSao^=a_Ituoh#`VVOn{-k>gU5zl~vFWOtFF7RWNo63eYz?!836D`mwcSCPMpCiru%zbh0Q zr*)F6W!oisT;sK9ua^F@f%aVkmK(Y?kfK?Nh?)o@0RF>{3)CP| zyEs@83r})iV+fWpSROSd2hHCfjky9(l5NHmo1tEfF&A7C9Yg4dh_KW*T)KBOWtb99 z>d1IT$O9csK3C4GJ5r<0t0Dhl>KYI|m3fYq!yQd$#KH7VCJ#BVcPCSkIhOb9?%ir= z81DNxd8m^q%Dgd@uK;Qz8Yj0QD~*>=I+=1DLXLDY#qOIaX0ae*^(NTPe!kI1=?KZrjVwLp#543M?;z_fe6#t z+~y6oJf9dowquSF5U>MouwR*+X= zpd8tJ9%&iYr~RB3na?Akht;<{cd#oyMo+r>h41#tvK#5fnbcT&RK7o-v{y0VSXzs|0t*F#b$jn%ys5gsa zO_6&Eh4O>vs{J07WLtqfpOl@kCO3B}xw-+^la+()J*u&`p=q9TN4ZS$;-LNCdxKXe zI|0*~{UDEDffvw}-krpLBjKs+yfJP`N`GQneV z%!`&;J5HNwR-p6yAM%2S5x+!bE~`HbooZi}LsUR)jPtU#|0F%VCf~f`#b7TjbyTyW zFB83Pio?-grK&&p*1P`T)=wkdukmCF1G8u^@yK4c4Xfpzob$p!*Ld-~xB7|TSBE3w z5cRbeZ)h8`bdk#+2DYN zeYrdZcKem?!YL{GF+-phn)fxeilp*7SHM%-Fl7iqJcrry^#*B5fnk2bZ5N;XAGWtD z1tG9|(W2qD*BAmp{Z^2w{Ad|-QcbD*J4*WXa>pNL`rk`qD)g~YmZZ|sCi0Vm+duZ% z?QXNPWy(*fCe>^~+5m*w@iolwnMC(i3J1dY?h!J=XQItEZ}8~n>C))K!fd-d;N#Uh z24`WGllLww3KP_MoQbHv!6(`Cy20KUw6y!xqPoY znZ}yhCu`GS-1{vvc2M~az_IoGP?=#;JZjcp6)Fd5%*H>F>0pJcF=RTd_Asn=04xkl zcb_>LTEPc+aJNvtkF~y`olNB1;TfhF59iq#raS&JFJ-X2PYID>0$e`t*Ss^5n8|3* zN<}85bx!Isnbz~tkjZztAkSsONG^gm^O7q&Zt885n`c;&;F4DkWztj!Nz5|UZWp{$ z57bUvAeoV6VqHe&XPG>AN3yCyzEMsbEO#f8ERVe0vckRG&w`2|lT9?=Cw=`UhRtWF z-{iQXNG*ly=E~!K<8?>#m}bLpx4}2Z%33gDxRKuMXPb(rM3%jrmE3H4#kR(vER}V+rp$CskoW}v$1h$Q%f)q4 z9(=!yH>Aid3tee`+V0SmN9BqkL?;l`EJ2jZ%sf-#uOJr+Y;U|8HczgUH}gzC6q-l! zAk1os$%l*9NY{K*Zn`BnAQ#stsDr-c3R#$MI%ix-a~M#B4m!?8r`bK^Kl2%UPqNb# zL9$Jr>LqanP(g3$T!0jGRe~csZ+0hIS)h;1FMuZdQZGZieZU{@XC=KAvnV1A$;O`8k6q)T%`Y8|sFw z#s?EU3$8qbGR2PZ{M&^l4H@@;N%n=fXsbDk4QT3;jYI`ZGrU)Og)pm;HKtCnCIKCR zMuT<#^SCWYqKS2^&XD$6(7xkDo9l;2&6S4E~)Cx?*^yh!csjoG1!NLsf}SLJJk(_oI| zRhS}wfNcB0oeNe6v&oW8F6{3pqNexLh`9RZUpL)4XPQQZ$dmVL7+=1u=>kVCpgK@s zZ}>W4nNcVocQ!=}ib&H@v>m1}uA8UcMj;g7VluV2?Qsf$KAeg>PzlLOTI%RHc>b(u z_`X!w-js&wIPm^DetS&Qa-GT2dRPep9CWKxbcJ5JNT7^~Et4~)rr6h&Y+Y(rqzuhX zc?avknCJitPvzpuxni!6^lk`Nl@wP`<4oz-)x<@GDpg5tXZX0D3><%nbZakNufmfO zmUhg3mu_-(iOCt;oirU!>(>n3&ox~^;$@$?wt335#-=MtPUqiccj`{eZQE=Q^3?Xn z=~axKnx3Q;W7Jz1VT<&VXNnL;dw0;#0l{_m$8reXUugW5eJH1WapY=3F3b(Bh`uCR z{jP$KhSqa^KY6d(6!f^7JpGssq=#L%h%)*y>+J1pQ~yw9{Su7Q`C7Fyv4ovwfb4|2 z&A<*eBwzNBaf9jyQC#V`{kPY3K3LY3n67z4$oj>?4bA;E#(=|}!_3}|APxW#q{J}kjYFyWG+Za(lmjCC< zx>A!B7(AcQtgyZtNV4*CSj?)|Ku+W2yGr(z8)aFgDa#yBnajUtXrgYi{K*1ZnEIRb zArk}et4n$N1X)*s>^_mI4*fTvYS++P?hE*Yn|GI<1X-QRy z@nos@fKIs`uj7;y`X*CkV-14yRGC|Z;BlMO*6?$?vbO;DH4k?+fxxs-<<>Q!&LxV9 z({v{}jvv2UX=S=RQf6{eXOOCkH%wt1O`B%Q2c-x?x}Ao`;c(+dS>KJho+VStVcoOE zUuyEJ=TJ)NyY+?eDjSDUnNWL96Pmxd;^~5H&`fTQS_?>g2`8(&I_QOwOei+d3-oBG zB%+$KWQ1dL?WDEg8vVLjt@2f From fd52c04fc2bbb4d062d6f8310b96aac8cbaf3e8a Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 21 Jan 2020 23:02:12 +0400 Subject: [PATCH 53/63] Bubble handling improvements --- .../BubbleSettingsController.swift | 44 +-- .../Text Size/TextSizeSelectionItem.swift | 302 ++++++++++++++++++ .../Sources/ChatMessageBubbleImages.swift | 32 +- .../PresentationThemeEssentialGraphics.swift | 20 +- .../Resources/PresentationResourceKey.swift | 4 +- .../Resources/PresentationResourcesChat.swift | 8 +- .../TelegramUI/ChatController.swift | 3 +- .../TelegramUI/ChatControllerNode.swift | 4 +- .../TelegramUI/TelegramUI/ChatEmptyNode.swift | 6 +- .../TelegramUI/TelegramUI/ChatHoleItem.swift | 2 +- .../TelegramUI/ChatLoadingNode.swift | 4 +- .../ChatMessageActionButtonsNode.swift | 14 +- .../ChatMessageAnimatedStickerItemNode.swift | 8 +- ...eBubbleContentCalclulateImageCorners.swift | 16 +- .../ChatMessageBubbleContentNode.swift | 2 + .../ChatMessageBubbleItemNode.swift | 22 +- .../ChatMessageInstantVideoItemNode.swift | 10 +- .../TelegramUI/ChatMessageItemView.swift | 2 +- .../ChatMessageMediaBubbleContentNode.swift | 2 +- .../TelegramUI/ChatMessageReplyInfoNode.swift | 2 +- .../ChatMessageStickerItemNode.swift | 8 +- .../ChatPresentationInterfaceState.swift | 84 ++--- .../ChatRecentActionsControllerNode.swift | 4 +- .../ChatRecentActionsEmptyNode.swift | 4 +- .../PeerMediaCollectionControllerNode.swift | 2 +- 25 files changed, 456 insertions(+), 153 deletions(-) create mode 100644 submodules/SettingsUI/Sources/Text Size/TextSizeSelectionItem.swift diff --git a/submodules/SettingsUI/Sources/BubbleSettings/BubbleSettingsController.swift b/submodules/SettingsUI/Sources/BubbleSettings/BubbleSettingsController.swift index 769aa9f3c5..780335a936 100644 --- a/submodules/SettingsUI/Sources/BubbleSettings/BubbleSettingsController.swift +++ b/submodules/SettingsUI/Sources/BubbleSettings/BubbleSettingsController.swift @@ -405,7 +405,7 @@ private final class BubbleSettingsToolbarNode: ASDisplayNode { private let topSeparatorNode = ASDisplayNode() private var switchItemNode: ItemListSwitchItemNode - private var cornerRadiusItemNode: ThemeSettingsFontSizeItemNode + private var cornerRadiusItemNode: BubbleSettingsRadiusItemNode private(set) var customMode: TextSelectionCustomMode = .chat @@ -420,7 +420,7 @@ private final class BubbleSettingsToolbarNode: ASDisplayNode { self.presentationData = presentationData self.switchItemNode = ItemListSwitchItemNode(type: .regular) - self.cornerRadiusItemNode = ThemeSettingsFontSizeItemNode() + self.cornerRadiusItemNode = BubbleSettingsRadiusItemNode() super.init() @@ -489,44 +489,8 @@ private final class BubbleSettingsToolbarNode: ASDisplayNode { let switchItem = ItemListSwitchItem(presentationData: ItemListPresentationData(self.presentationData), title: self.presentationData.strings.Appearance_BubbleCorners_AdjustAdjacent, value: self.presentationThemeSettings.chatBubbleSettings.mergeBubbleCorners, disableLeadingInset: true, sectionId: 0, style: .blocks, updated: { [weak self] value in self?.updateMergeBubbleCorners?(value) }) - let fontSize: PresentationFontSize - switch Int(self.presentationData.chatBubbleCorners.mainRadius) { - case 4: - fontSize = .extraSmall - case 6: - fontSize = .small - case 8: - fontSize = .medium - case 10: - fontSize = .regular - case 12: - fontSize = .large - case 14: - fontSize = .extraLarge - case 16: - fontSize = .extraLargeX2 - default: - fontSize = .extraLargeX2 - } - let cornerRadiusItem = ThemeSettingsFontSizeItem(theme: self.presentationData.theme, fontSize: fontSize, enabled: true, disableLeadingInset: false, displayIcons: false, force: false, sectionId: 0, updated: { [weak self] value in - let numericValue: Int32 - switch value { - case .extraSmall: - numericValue = 4 - case .small: - numericValue = 6 - case .medium: - numericValue = 8 - case .regular: - numericValue = 10 - case .large: - numericValue = 12 - case .extraLarge: - numericValue = 14 - case .extraLargeX2: - numericValue = 16 - } - self?.updateCornerRadius?(numericValue) + let cornerRadiusItem = BubbleSettingsRadiusItem(theme: self.presentationData.theme, value: Int(self.presentationData.chatBubbleCorners.mainRadius), enabled: true, disableLeadingInset: false, displayIcons: false, force: false, sectionId: 0, updated: { [weak self] value in + self?.updateCornerRadius?(Int32(max(8, min(16, value)))) }) /*switchItem.updateNode(async: { f in diff --git a/submodules/SettingsUI/Sources/Text Size/TextSizeSelectionItem.swift b/submodules/SettingsUI/Sources/Text Size/TextSizeSelectionItem.swift new file mode 100644 index 0000000000..d714a7a6bc --- /dev/null +++ b/submodules/SettingsUI/Sources/Text Size/TextSizeSelectionItem.swift @@ -0,0 +1,302 @@ +import Foundation +import UIKit +import Display +import AsyncDisplayKit +import SwiftSignalKit +import TelegramCore +import SyncCore +import TelegramPresentationData +import TelegramUIPreferences +import LegacyComponents +import ItemListUI +import PresentationDataUtils +import AppBundle + +class BubbleSettingsRadiusItem: ListViewItem, ItemListItem { + let theme: PresentationTheme + let value: Int + let disableLeadingInset: Bool + let displayIcons: Bool + let force: Bool + let enabled: Bool + let sectionId: ItemListSectionId + let updated: (Int) -> Void + let tag: ItemListItemTag? + + init(theme: PresentationTheme, value: Int, enabled: Bool = true, disableLeadingInset: Bool = false, displayIcons: Bool = true, force: Bool = false, sectionId: ItemListSectionId, updated: @escaping (Int) -> Void, tag: ItemListItemTag? = nil) { + self.theme = theme + self.value = value + self.enabled = enabled + self.disableLeadingInset = disableLeadingInset + self.displayIcons = displayIcons + self.force = force + self.sectionId = sectionId + self.updated = updated + self.tag = tag + } + + func nodeConfiguredForParams(async: @escaping (@escaping () -> Void) -> Void, params: ListViewItemLayoutParams, synchronousLoads: Bool, previousItem: ListViewItem?, nextItem: ListViewItem?, completion: @escaping (ListViewItemNode, @escaping () -> (Signal?, (ListViewItemApply) -> Void)) -> Void) { + async { + let node = BubbleSettingsRadiusItemNode() + let (layout, apply) = node.asyncLayout()(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) + + node.contentSize = layout.contentSize + node.insets = layout.insets + + Queue.mainQueue().async { + completion(node, { + return (nil, { _ in apply() }) + }) + } + } + } + + func updateNode(async: @escaping (@escaping () -> Void) -> Void, node: @escaping () -> ListViewItemNode, params: ListViewItemLayoutParams, previousItem: ListViewItem?, nextItem: ListViewItem?, animation: ListViewItemUpdateAnimation, completion: @escaping (ListViewItemNodeLayout, @escaping (ListViewItemApply) -> Void) -> Void) { + Queue.mainQueue().async { + if let nodeValue = node() as? BubbleSettingsRadiusItemNode { + let makeLayout = nodeValue.asyncLayout() + + async { + let (layout, apply) = makeLayout(self, params, itemListNeighbors(item: self, topItem: previousItem as? ItemListItem, bottomItem: nextItem as? ItemListItem)) + Queue.mainQueue().async { + completion(layout, { _ in + apply() + }) + } + } + } + } + } +} + +private func generateKnobImage() -> UIImage? { + return generateImage(CGSize(width: 40.0, height: 40.0), rotatedContext: { size, context in + context.clear(CGRect(origin: CGPoint(), size: size)) + context.setShadow(offset: CGSize(width: 0.0, height: -1.0), blur: 3.5, color: UIColor(white: 0.0, alpha: 0.25).cgColor) + context.setFillColor(UIColor.white.cgColor) + context.fillEllipse(in: CGRect(origin: CGPoint(x: 6.0, y: 6.0), size: CGSize(width: 28.0, height: 28.0))) + }) +} + +class BubbleSettingsRadiusItemNode: ListViewItemNode, ItemListItemNode { + private let backgroundNode: ASDisplayNode + private let topStripeNode: ASDisplayNode + private let bottomStripeNode: ASDisplayNode + private let maskNode: ASImageNode + + private var sliderView: TGPhotoEditorSliderView? + private let leftIconNode: ASImageNode + private let rightIconNode: ASImageNode + private let disabledOverlayNode: ASDisplayNode + + private var item: BubbleSettingsRadiusItem? + private var layoutParams: ListViewItemLayoutParams? + + var tag: ItemListItemTag? { + return self.item?.tag + } + + init() { + self.backgroundNode = ASDisplayNode() + self.backgroundNode.isLayerBacked = true + + self.topStripeNode = ASDisplayNode() + self.topStripeNode.isLayerBacked = true + + self.bottomStripeNode = ASDisplayNode() + self.bottomStripeNode.isLayerBacked = true + + self.maskNode = ASImageNode() + + self.leftIconNode = ASImageNode() + self.leftIconNode.displaysAsynchronously = false + self.leftIconNode.displayWithoutProcessing = true + + self.rightIconNode = ASImageNode() + self.rightIconNode.displaysAsynchronously = false + self.rightIconNode.displayWithoutProcessing = true + + self.disabledOverlayNode = ASDisplayNode() + + super.init(layerBacked: false, dynamicBounce: false) + + self.addSubnode(self.leftIconNode) + self.addSubnode(self.rightIconNode) + + self.addSubnode(self.disabledOverlayNode) + } + + override func didLoad() { + super.didLoad() + + let sliderView = TGPhotoEditorSliderView() + sliderView.enablePanHandling = true + sliderView.enablePanHandling = true + sliderView.trackCornerRadius = 1.0 + sliderView.lineSize = 2.0 + sliderView.dotSize = 5.0 + sliderView.minimumValue = 0.0 + sliderView.maximumValue = 4.0 + sliderView.startValue = 0.0 + sliderView.positionsCount = 5 + sliderView.disablesInteractiveTransitionGestureRecognizer = true + if let item = self.item, let params = self.layoutParams { + sliderView.isUserInteractionEnabled = item.enabled + + sliderView.value = CGFloat((item.value - 8) / 2) + sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor + sliderView.backColor = item.theme.list.disclosureArrowColor + sliderView.trackColor = item.enabled ? item.theme.list.itemAccentColor : item.theme.list.itemDisabledTextColor + sliderView.knobImage = generateKnobImage() + + let sliderInset: CGFloat = item.displayIcons ? 38.0 : 16.0 + + sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + sliderInset, y: 8.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - sliderInset * 2.0, height: 44.0)) + } + self.view.insertSubview(sliderView, belowSubview: self.disabledOverlayNode.view) + sliderView.addTarget(self, action: #selector(self.sliderValueChanged), for: .valueChanged) + self.sliderView = sliderView + } + + func asyncLayout() -> (_ item: BubbleSettingsRadiusItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, () -> Void) { + let currentItem = self.item + + return { item, params, neighbors in + var updatedLeftIcon: UIImage? + var updatedRightIcon: UIImage? + + var themeUpdated = false + if currentItem?.theme !== item.theme { + themeUpdated = true + + updatedLeftIcon = generateTintedImage(image: UIImage(bundleImageName: "Instant View/SettingsFontMinIcon"), color: item.theme.list.itemPrimaryTextColor) + updatedRightIcon = generateTintedImage(image: UIImage(bundleImageName: "Instant View/SettingsFontMaxIcon"), color: item.theme.list.itemPrimaryTextColor) + } + + let contentSize: CGSize + var insets: UIEdgeInsets + let separatorHeight = UIScreenPixel + + contentSize = CGSize(width: params.width, height: 60.0) + insets = itemListNeighborsGroupedInsets(neighbors) + + if item.disableLeadingInset { + insets.top = 0.0 + insets.bottom = 0.0 + } + + let layout = ListViewItemNodeLayout(contentSize: contentSize, insets: insets) + let layoutSize = layout.size + + return (layout, { [weak self] in + if let strongSelf = self { + let firstTime = strongSelf.item == nil || item.force + strongSelf.item = item + strongSelf.layoutParams = params + + strongSelf.backgroundNode.backgroundColor = item.theme.list.itemBlocksBackgroundColor + strongSelf.topStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor + strongSelf.bottomStripeNode.backgroundColor = item.theme.list.itemBlocksSeparatorColor + + strongSelf.disabledOverlayNode.backgroundColor = item.theme.list.itemBlocksBackgroundColor.withAlphaComponent(0.4) + strongSelf.disabledOverlayNode.isHidden = item.enabled + strongSelf.disabledOverlayNode.frame = CGRect(origin: CGPoint(x: params.leftInset, y: 8.0), size: CGSize(width: params.width - params.leftInset - params.rightInset, height: 44.0)) + + if strongSelf.backgroundNode.supernode == nil { + strongSelf.insertSubnode(strongSelf.backgroundNode, at: 0) + } + if strongSelf.topStripeNode.supernode == nil { + strongSelf.insertSubnode(strongSelf.topStripeNode, at: 1) + } + if strongSelf.bottomStripeNode.supernode == nil { + strongSelf.insertSubnode(strongSelf.bottomStripeNode, at: 2) + } + if strongSelf.maskNode.supernode == nil { + strongSelf.insertSubnode(strongSelf.maskNode, at: 3) + } + + let hasCorners = itemListHasRoundedBlockLayout(params) + var hasTopCorners = false + var hasBottomCorners = false + switch neighbors.top { + case .sameSection(false): + strongSelf.topStripeNode.isHidden = true + default: + hasTopCorners = true + strongSelf.topStripeNode.isHidden = hasCorners + } + let bottomStripeInset: CGFloat + let bottomStripeOffset: CGFloat + switch neighbors.bottom { + case .sameSection(false): + bottomStripeInset = params.leftInset + 16.0 + bottomStripeOffset = -separatorHeight + default: + bottomStripeInset = 0.0 + bottomStripeOffset = 0.0 + hasBottomCorners = true + strongSelf.bottomStripeNode.isHidden = hasCorners + } + + strongSelf.maskNode.image = hasCorners ? PresentationResourcesItemList.cornersImage(item.theme, top: hasTopCorners, bottom: hasBottomCorners) : nil + + strongSelf.backgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: params.width, height: contentSize.height + min(insets.top, separatorHeight) + min(insets.bottom, separatorHeight))) + strongSelf.maskNode.frame = strongSelf.backgroundNode.frame.insetBy(dx: params.leftInset, dy: 0.0) + strongSelf.topStripeNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -min(insets.top, separatorHeight)), size: CGSize(width: layoutSize.width, height: separatorHeight)) + strongSelf.bottomStripeNode.frame = CGRect(origin: CGPoint(x: bottomStripeInset, y: contentSize.height + bottomStripeOffset), size: CGSize(width: layoutSize.width - bottomStripeInset, height: separatorHeight)) + + if let updatedLeftIcon = updatedLeftIcon { + strongSelf.leftIconNode.image = updatedLeftIcon + } + if let image = strongSelf.leftIconNode.image { + strongSelf.leftIconNode.frame = CGRect(origin: CGPoint(x: params.leftInset + 18.0, y: 25.0), size: CGSize(width: image.size.width, height: image.size.height)) + } + if let updatedRightIcon = updatedRightIcon { + strongSelf.rightIconNode.image = updatedRightIcon + } + if let image = strongSelf.rightIconNode.image { + strongSelf.rightIconNode.frame = CGRect(origin: CGPoint(x: params.width - params.rightInset - 14.0 - image.size.width, y: 21.0), size: CGSize(width: image.size.width, height: image.size.height)) + } + + strongSelf.leftIconNode.isHidden = !item.displayIcons + strongSelf.rightIconNode.isHidden = !item.displayIcons + + if let sliderView = strongSelf.sliderView { + sliderView.isUserInteractionEnabled = item.enabled + sliderView.trackColor = item.enabled ? item.theme.list.itemAccentColor : item.theme.list.itemDisabledTextColor + + if themeUpdated { + sliderView.backgroundColor = item.theme.list.itemBlocksBackgroundColor + sliderView.backColor = item.theme.list.disclosureArrowColor + sliderView.knobImage = generateKnobImage() + } + + let value: CGFloat = CGFloat((item.value - 8) / 2) + if firstTime { + sliderView.value = value + } + + let sliderInset: CGFloat = item.displayIcons ? 38.0 : 16.0 + sliderView.frame = CGRect(origin: CGPoint(x: params.leftInset + sliderInset, y: 8.0), size: CGSize(width: params.width - params.leftInset - params.rightInset - sliderInset * 2.0, height: 44.0)) + } + } + }) + } + } + + override func animateInsertion(_ currentTimestamp: Double, duration: Double, short: Bool) { + self.layer.animateAlpha(from: 0.0, to: 1.0, duration: 0.4) + } + + override func animateRemoved(_ currentTimestamp: Double, duration: Double) { + self.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.15, removeOnCompletion: false) + } + + @objc func sliderValueChanged() { + guard let sliderView = self.sliderView else { + return + } + let value = Int(sliderView.value) * 2 + 8 + self.item?.updated(value) + } +} diff --git a/submodules/TelegramPresentationData/Sources/ChatMessageBubbleImages.swift b/submodules/TelegramPresentationData/Sources/ChatMessageBubbleImages.swift index 36850b476d..a33deb89cc 100644 --- a/submodules/TelegramPresentationData/Sources/ChatMessageBubbleImages.swift +++ b/submodules/TelegramPresentationData/Sources/ChatMessageBubbleImages.swift @@ -70,7 +70,7 @@ func mediaBubbleCornerImage(incoming: Bool, radius: CGFloat, inset: CGFloat) -> } else { context.fill(CGRect(origin: CGPoint(x: bottomEllipse.minX - 5.0, y: bottomEllipse.midY), size: CGSize(width: bottomEllipse.width + 5.0, height: bottomEllipse.height / 2.0))) } - context.fill(CGRect(origin: CGPoint(x: fixedMainDiameter / 2.0, y: fixedMainDiameter / 2.0), size: CGSize(width: fixedMainDiameter / 2.0, height: bottomEllipse.midY - fixedMainDiameter / 2.0))) + context.fill(CGRect(origin: CGPoint(x: fixedMainDiameter / 2.0, y: floor(fixedMainDiameter / 2.0)), size: CGSize(width: fixedMainDiameter / 2.0, height: ceil(bottomEllipse.midY) - floor(fixedMainDiameter / 2.0)))) context.setFillColor(UIColor.clear.cgColor) context.setBlendMode(.copy) context.fillEllipse(in: topEllipse) @@ -108,13 +108,13 @@ public func messageBubbleImage(maxCornerRadius: CGFloat, minCornerRadius: CGFloa case .side: topLeftRadius = maxCornerRadius topRightRadius = maxCornerRadius - bottomLeftRadius = maxCornerRadius - bottomRightRadius = maxCornerRadius + bottomLeftRadius = minCornerRadius + bottomRightRadius = minCornerRadius drawTail = false case let .top(side): topLeftRadius = maxCornerRadius - topRightRadius = side ? minCornerRadius : maxCornerRadius - bottomLeftRadius = maxCornerRadius + topRightRadius = maxCornerRadius + bottomLeftRadius = side ? minCornerRadius : maxCornerRadius bottomRightRadius = minCornerRadius drawTail = false } @@ -162,7 +162,7 @@ public func messageBubbleImage(maxCornerRadius: CGFloat, minCornerRadius: CGFloa } else { context.fill(CGRect(origin: CGPoint(x: bottomEllipse.minX - 2.0, y: bottomEllipse.midY), size: CGSize(width: bottomEllipse.width + 2.0, height: bottomEllipse.height / 2.0))) } - context.fill(CGRect(origin: CGPoint(x: fixedMainDiameter / 2.0, y: fixedMainDiameter / 2.0), size: CGSize(width: fixedMainDiameter / 2.0, height: bottomEllipse.midY - fixedMainDiameter / 2.0))) + context.fill(CGRect(origin: CGPoint(x: fixedMainDiameter / 2.0, y: floor(fixedMainDiameter / 2.0)), size: CGSize(width: fixedMainDiameter / 2.0, height: ceil(bottomEllipse.midY) - floor(fixedMainDiameter / 2.0)))) context.setFillColor(UIColor.clear.cgColor) context.setBlendMode(.copy) context.fillEllipse(in: topEllipse) @@ -206,9 +206,9 @@ public func messageBubbleImage(maxCornerRadius: CGFloat, minCornerRadius: CGFloa context.addQuadCurve(to: CGPoint(x: bottomEllipse.maxX, y: bottomEllipse.midY), control: CGPoint(x: bottomEllipse.maxX, y: bottomEllipse.maxY)) context.fillPath() } else { - context.fill(CGRect(origin: CGPoint(x: bottomEllipse.minX - 2.0, y: bottomEllipse.midY), size: CGSize(width: bottomEllipse.width + 2.0, height: bottomEllipse.height / 2.0))) + context.fill(CGRect(origin: CGPoint(x: bottomEllipse.minX - 2.0, y: floor(bottomEllipse.midY)), size: CGSize(width: bottomEllipse.width + 2.0, height: ceil(bottomEllipse.height / 2.0)))) } - context.fill(CGRect(origin: CGPoint(x: fixedMainDiameter / 2.0, y: fixedMainDiameter / 2.0), size: CGSize(width: fixedMainDiameter / 2.0 + borderWidth, height: bottomEllipse.midY - fixedMainDiameter / 2.0))) + context.fill(CGRect(origin: CGPoint(x: floor(fixedMainDiameter / 2.0), y: fixedMainDiameter / 2.0), size: CGSize(width: fixedMainDiameter / 2.0 + borderWidth, height: ceil(bottomEllipse.midY) - floor(fixedMainDiameter / 2.0)))) context.setBlendMode(.normal) context.move(to: CGPoint(x: fixedMainDiameter + borderOffset, y: fixedMainDiameter / 2.0)) @@ -269,7 +269,13 @@ public func messageBubbleImage(maxCornerRadius: CGFloat, minCornerRadius: CGFloa context.translateBy(x: additionalInset + strokeInset, y: additionalInset + strokeInset) } } - let outlineImage = outlineContext.generateImage()! + let outlineImage = generateImage(outlineContext.size, contextGenerator: { size, context in + context.setBlendMode(.copy) + let image = outlineContext.generateImage()! + context.draw(image.cgImage!, in: CGRect(origin: CGPoint(), size: size)) + context.setBlendMode(.normal) + context.draw(image.cgImage!, in: CGRect(origin: CGPoint(), size: size)) + })! let drawingContext = DrawingContext(size: imageSize) drawingContext.withFlippedContext { context in @@ -323,14 +329,14 @@ public enum MessageBubbleActionButtonPosition { case bottomSingle } -public func messageBubbleActionButtonImage(color: UIColor, strokeColor: UIColor, position: MessageBubbleActionButtonPosition) -> UIImage { - let largeRadius: CGFloat = 17.0 - let smallRadius: CGFloat = 6.0 +public func messageBubbleActionButtonImage(color: UIColor, strokeColor: UIColor, position: MessageBubbleActionButtonPosition, bubbleCorners: PresentationChatBubbleCorners) -> UIImage { + let largeRadius: CGFloat = bubbleCorners.mainRadius + let smallRadius: CGFloat = (bubbleCorners.mergeBubbleCorners && largeRadius >= 10.0) ? bubbleCorners.auxiliaryRadius : bubbleCorners.mainRadius let size: CGSize if case .middle = position { size = CGSize(width: smallRadius + smallRadius, height: smallRadius + smallRadius) } else { - size = CGSize(width: 35.0, height: 35.0) + size = CGSize(width: largeRadius + largeRadius, height: largeRadius + largeRadius) } return generateImage(size, contextGenerator: { size, context in context.clear(CGRect(origin: CGPoint(), size: size)) diff --git a/submodules/TelegramPresentationData/Sources/PresentationThemeEssentialGraphics.swift b/submodules/TelegramPresentationData/Sources/PresentationThemeEssentialGraphics.swift index d5a0f0fc3a..3374f03b51 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationThemeEssentialGraphics.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationThemeEssentialGraphics.swift @@ -216,7 +216,7 @@ public final class PrincipalThemeEssentialGraphics { let serviceColor = serviceMessageColorComponents(chatTheme: theme, wallpaper: wallpaper) let maxCornerRadius = bubbleCorners.mainRadius - let minCornerRadius = bubbleCorners.mergeBubbleCorners ? bubbleCorners.auxiliaryRadius : bubbleCorners.mainRadius + let minCornerRadius = (bubbleCorners.mergeBubbleCorners && maxCornerRadius >= 10.0) ? bubbleCorners.auxiliaryRadius : bubbleCorners.mainRadius let emptyImage = UIImage() if preview { @@ -423,7 +423,7 @@ public final class PrincipalThemeAdditionalGraphics { public let chatEmptyItemLockIcon: UIImage public let emptyChatListCheckIcon: UIImage - init(_ theme: PresentationThemeChat, wallpaper: TelegramWallpaper) { + init(_ theme: PresentationThemeChat, wallpaper: TelegramWallpaper, bubbleCorners: PresentationChatBubbleCorners) { let serviceColor = serviceMessageColorComponents(chatTheme: theme, wallpaper: wallpaper) self.chatServiceBubbleFillImage = generateImage(CGSize(width: 20.0, height: 20.0), contextGenerator: { size, context -> Void in context.clear(CGRect(origin: CGPoint(), size: size)) @@ -444,14 +444,14 @@ public final class PrincipalThemeAdditionalGraphics { self.chatBubbleShareButtonImage = chatBubbleActionButtonImage(fillColor: bubbleVariableColor(variableColor: theme.message.shareButtonFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.shareButtonStrokeColor, wallpaper: wallpaper), foregroundColor: bubbleVariableColor(variableColor: theme.message.shareButtonForegroundColor, wallpaper: wallpaper), image: UIImage(bundleImageName: "Chat/Message/ShareIcon"))! self.chatBubbleNavigateButtonImage = chatBubbleActionButtonImage(fillColor: bubbleVariableColor(variableColor: theme.message.shareButtonFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.shareButtonStrokeColor, wallpaper: wallpaper), foregroundColor: bubbleVariableColor(variableColor: theme.message.shareButtonForegroundColor, wallpaper: wallpaper), image: UIImage(bundleImageName: "Chat/Message/NavigateToMessageIcon"), iconOffset: CGPoint(x: 0.0, y: 1.0))! - self.chatBubbleActionButtonIncomingMiddleImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsStrokeColor, wallpaper: wallpaper), position: .middle) - self.chatBubbleActionButtonIncomingBottomLeftImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsStrokeColor, wallpaper: wallpaper), position: .bottomLeft) - self.chatBubbleActionButtonIncomingBottomRightImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsStrokeColor, wallpaper: wallpaper), position: .bottomRight) - self.chatBubbleActionButtonIncomingBottomSingleImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsStrokeColor, wallpaper: wallpaper), position: .bottomSingle) - self.chatBubbleActionButtonOutgoingMiddleImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsStrokeColor, wallpaper: wallpaper), position: .middle) - self.chatBubbleActionButtonOutgoingBottomLeftImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsStrokeColor, wallpaper: wallpaper), position: .bottomLeft) - self.chatBubbleActionButtonOutgoingBottomRightImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsStrokeColor, wallpaper: wallpaper), position: .bottomRight) - self.chatBubbleActionButtonOutgoingBottomSingleImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsStrokeColor, wallpaper: wallpaper), position: .bottomSingle) + self.chatBubbleActionButtonIncomingMiddleImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsStrokeColor, wallpaper: wallpaper), position: .middle, bubbleCorners: bubbleCorners) + self.chatBubbleActionButtonIncomingBottomLeftImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsStrokeColor, wallpaper: wallpaper), position: .bottomLeft, bubbleCorners: bubbleCorners) + self.chatBubbleActionButtonIncomingBottomRightImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsStrokeColor, wallpaper: wallpaper), position: .bottomRight, bubbleCorners: bubbleCorners) + self.chatBubbleActionButtonIncomingBottomSingleImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsStrokeColor, wallpaper: wallpaper), position: .bottomSingle, bubbleCorners: bubbleCorners) + self.chatBubbleActionButtonOutgoingMiddleImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsStrokeColor, wallpaper: wallpaper), position: .middle, bubbleCorners: bubbleCorners) + self.chatBubbleActionButtonOutgoingBottomLeftImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsStrokeColor, wallpaper: wallpaper), position: .bottomLeft, bubbleCorners: bubbleCorners) + self.chatBubbleActionButtonOutgoingBottomRightImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsStrokeColor, wallpaper: wallpaper), position: .bottomRight, bubbleCorners: bubbleCorners) + self.chatBubbleActionButtonOutgoingBottomSingleImage = messageBubbleActionButtonImage(color: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsFillColor, wallpaper: wallpaper), strokeColor: bubbleVariableColor(variableColor: theme.message.outgoing.actionButtonsStrokeColor, wallpaper: wallpaper), position: .bottomSingle, bubbleCorners: bubbleCorners) self.chatBubbleActionButtonIncomingMessageIconImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Message/BotMessage"), color: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsTextColor, wallpaper: wallpaper))! self.chatBubbleActionButtonIncomingLinkIconImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Message/BotLink"), color: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsTextColor, wallpaper: wallpaper))! self.chatBubbleActionButtonIncomingShareIconImage = generateTintedImage(image: UIImage(bundleImageName: "Chat/Message/BotShare"), color: bubbleVariableColor(variableColor: theme.message.incoming.actionButtonsTextColor, wallpaper: wallpaper))! diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift index 82815c9990..0c11f4342c 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourceKey.swift @@ -78,9 +78,6 @@ public enum PresentationResourceKey: Int32 { case chatTitleLockIcon case chatTitleMuteIcon - case chatPrincipalThemeAdditionalGraphicsWithCustomWallpaper - case chatPrincipalThemeAdditionalGraphicsWithDefaultWallpaper - case chatBubbleVerticalLineIncomingImage case chatBubbleVerticalLineOutgoingImage @@ -235,4 +232,5 @@ public enum PresentationResourceParameterKey: Hashable { case chatBubbleMediaCorner(incoming: Bool, mainRadius: CGFloat, inset: CGFloat) case chatPrincipalThemeEssentialGraphics(hasWallpaper: Bool, bubbleCorners: PresentationChatBubbleCorners) + case chatPrincipalThemeAdditionalGraphics(isCustomWallpaper: Bool, bubbleCorners: PresentationChatBubbleCorners) } diff --git a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift index 39e872972a..c639d5bfa1 100644 --- a/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift +++ b/submodules/TelegramPresentationData/Sources/Resources/PresentationResourcesChat.swift @@ -76,10 +76,10 @@ public struct PresentationResourcesChat { }) as! PrincipalThemeEssentialGraphics } - public static func additionalGraphics(_ theme: PresentationTheme, wallpaper: TelegramWallpaper) -> PrincipalThemeAdditionalGraphics { - let key: PresentationResourceKey = wallpaper.isBuiltin ? PresentationResourceKey.chatPrincipalThemeAdditionalGraphicsWithDefaultWallpaper : PresentationResourceKey.chatPrincipalThemeAdditionalGraphicsWithCustomWallpaper - return theme.object(key.rawValue, { theme in - return PrincipalThemeAdditionalGraphics(theme.chat, wallpaper: wallpaper) + public static func additionalGraphics(_ theme: PresentationTheme, wallpaper: TelegramWallpaper, bubbleCorners: PresentationChatBubbleCorners) -> PrincipalThemeAdditionalGraphics { + let key: PresentationResourceParameterKey = .chatPrincipalThemeAdditionalGraphics(isCustomWallpaper: !wallpaper.isBuiltin, bubbleCorners: bubbleCorners) + return theme.object(key, { theme in + return PrincipalThemeAdditionalGraphics(theme.chat, wallpaper: wallpaper, bubbleCorners: bubbleCorners) }) as! PrincipalThemeAdditionalGraphics } diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index b07dae10d7..80b1f3f7ad 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -346,7 +346,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G isScheduledMessages = true } - self.presentationInterfaceState = ChatPresentationInterfaceState(chatWallpaper: self.presentationData.chatWallpaper, theme: self.presentationData.theme, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameDisplayOrder: self.presentationData.nameDisplayOrder, limitsConfiguration: context.currentLimitsConfiguration.with { $0 }, fontSize: self.presentationData.chatFontSize, accountPeerId: context.account.peerId, mode: mode, chatLocation: chatLocation, isScheduledMessages: isScheduledMessages) + self.presentationInterfaceState = ChatPresentationInterfaceState(chatWallpaper: self.presentationData.chatWallpaper, theme: self.presentationData.theme, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameDisplayOrder: self.presentationData.nameDisplayOrder, limitsConfiguration: context.currentLimitsConfiguration.with { $0 }, fontSize: self.presentationData.chatFontSize, bubbleCorners: self.presentationData.chatBubbleCorners, accountPeerId: context.account.peerId, mode: mode, chatLocation: chatLocation, isScheduledMessages: isScheduledMessages) var mediaAccessoryPanelVisibility = MediaAccessoryPanelVisibility.none if case .standard = mode { @@ -2538,6 +2538,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G state = state.updatedStrings(self.presentationData.strings) state = state.updatedDateTimeFormat(self.presentationData.dateTimeFormat) state = state.updatedChatWallpaper(self.presentationData.chatWallpaper) + state = state.updatedBubbleCorners(self.presentationData.chatBubbleCorners) return state }) diff --git a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift index 9ebd21cde6..b4d9552cd5 100644 --- a/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatControllerNode.swift @@ -225,7 +225,7 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { self.reactionContainerNode = ReactionSelectionParentNode(account: context.account, theme: chatPresentationInterfaceState.theme) - self.loadingNode = ChatLoadingNode(theme: self.chatPresentationInterfaceState.theme, chatWallpaper: self.chatPresentationInterfaceState.chatWallpaper) + self.loadingNode = ChatLoadingNode(theme: self.chatPresentationInterfaceState.theme, chatWallpaper: self.chatPresentationInterfaceState.chatWallpaper, bubbleCorners: self.chatPresentationInterfaceState.bubbleCorners) self.inputPanelBackgroundNode = ASDisplayNode() if case let .color(color) = self.chatPresentationInterfaceState.chatWallpaper, UIColor(rgb: color).isEqual(self.chatPresentationInterfaceState.theme.chat.inputPanel.panelBackgroundColorNoWallpaper) { @@ -1512,7 +1512,7 @@ class ChatControllerNode: ASDisplayNode, UIScrollViewDelegate { if let restrictionText = restrictionText { if self.restrictedNode == nil { - let restrictedNode = ChatRecentActionsEmptyNode(theme: chatPresentationInterfaceState.theme, chatWallpaper: chatPresentationInterfaceState.chatWallpaper) + let restrictedNode = ChatRecentActionsEmptyNode(theme: chatPresentationInterfaceState.theme, chatWallpaper: chatPresentationInterfaceState.chatWallpaper, chatBubbleCorners: chatPresentationInterfaceState.bubbleCorners) self.historyNodeContainer.supernode?.insertSubnode(restrictedNode, aboveSubnode: self.historyNodeContainer) self.restrictedNode = restrictedNode } diff --git a/submodules/TelegramUI/TelegramUI/ChatEmptyNode.swift b/submodules/TelegramUI/TelegramUI/ChatEmptyNode.swift index 57b0fef12d..c0f8623b98 100644 --- a/submodules/TelegramUI/TelegramUI/ChatEmptyNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatEmptyNode.swift @@ -121,7 +121,7 @@ private final class ChatEmptyNodeSecretChatContent: ASDisplayNode, ChatEmptyNode let lines: [NSAttributedString] = strings.map { NSAttributedString(string: $0, font: messageFont, textColor: serviceColor.primaryText) } - let graphics = PresentationResourcesChat.additionalGraphics(interfaceState.theme, wallpaper: interfaceState.chatWallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(interfaceState.theme, wallpaper: interfaceState.chatWallpaper, bubbleCorners: interfaceState.bubbleCorners) let lockIcon = graphics.chatEmptyItemLockIcon for i in 0 ..< lines.count { @@ -237,7 +237,7 @@ private final class ChatEmptyNodeGroupChatContent: ASDisplayNode, ChatEmptyNodeC let lines: [NSAttributedString] = strings.map { NSAttributedString(string: $0, font: messageFont, textColor: serviceColor.primaryText) } - let graphics = PresentationResourcesChat.additionalGraphics(interfaceState.theme, wallpaper: interfaceState.chatWallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(interfaceState.theme, wallpaper: interfaceState.chatWallpaper, bubbleCorners: interfaceState.bubbleCorners) let lockIcon = graphics.emptyChatListCheckIcon for i in 0 ..< lines.count { @@ -453,7 +453,7 @@ final class ChatEmptyNode: ASDisplayNode { self.currentTheme = interfaceState.theme self.currentStrings = interfaceState.strings - let graphics = PresentationResourcesChat.additionalGraphics(interfaceState.theme, wallpaper: interfaceState.chatWallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(interfaceState.theme, wallpaper: interfaceState.chatWallpaper, bubbleCorners: interfaceState.bubbleCorners) self.backgroundNode.image = graphics.chatEmptyItemBackgroundImage } diff --git a/submodules/TelegramUI/TelegramUI/ChatHoleItem.swift b/submodules/TelegramUI/TelegramUI/ChatHoleItem.swift index 59c80a38c7..b88cf37698 100644 --- a/submodules/TelegramUI/TelegramUI/ChatHoleItem.swift +++ b/submodules/TelegramUI/TelegramUI/ChatHoleItem.swift @@ -81,7 +81,7 @@ class ChatHoleItemNode: ListViewItemNode { return { item, params, dateAtBottom in var updatedBackground: UIImage? if item.presentationData.theme !== currentItem?.presentationData.theme { - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) updatedBackground = graphics.chatServiceBubbleFillImage } diff --git a/submodules/TelegramUI/TelegramUI/ChatLoadingNode.swift b/submodules/TelegramUI/TelegramUI/ChatLoadingNode.swift index e2280941f0..6cb7638a0b 100644 --- a/submodules/TelegramUI/TelegramUI/ChatLoadingNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatLoadingNode.swift @@ -12,13 +12,13 @@ final class ChatLoadingNode: ASDisplayNode { private let activityIndicator: ActivityIndicator private let offset: CGPoint - init(theme: PresentationTheme, chatWallpaper: TelegramWallpaper) { + init(theme: PresentationTheme, chatWallpaper: TelegramWallpaper, bubbleCorners: PresentationChatBubbleCorners) { self.backgroundNode = ASImageNode() self.backgroundNode.isLayerBacked = true self.backgroundNode.displayWithoutProcessing = true self.backgroundNode.displaysAsynchronously = false - let graphics = PresentationResourcesChat.additionalGraphics(theme, wallpaper: chatWallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(theme, wallpaper: chatWallpaper, bubbleCorners: bubbleCorners) self.backgroundNode.image = graphics.chatLoadingIndicatorBackgroundImage let serviceColor = serviceMessageColorComponents(theme: theme, wallpaper: chatWallpaper) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageActionButtonsNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageActionButtonsNode.swift index af96c3b8f2..ab5189f89b 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageActionButtonsNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageActionButtonsNode.swift @@ -84,12 +84,12 @@ private final class ChatMessageActionButtonNode: ASDisplayNode { } } - class func asyncLayout(_ maybeNode: ChatMessageActionButtonNode?) -> (_ context: AccountContext, _ theme: ChatPresentationThemeData, _ strings: PresentationStrings, _ message: Message, _ button: ReplyMarkupButton, _ constrainedWidth: CGFloat, _ position: MessageBubbleActionButtonPosition) -> (minimumWidth: CGFloat, layout: ((CGFloat) -> (CGSize, () -> ChatMessageActionButtonNode))) { + class func asyncLayout(_ maybeNode: ChatMessageActionButtonNode?) -> (_ context: AccountContext, _ theme: ChatPresentationThemeData, _ bubbleCorners: PresentationChatBubbleCorners, _ strings: PresentationStrings, _ message: Message, _ button: ReplyMarkupButton, _ constrainedWidth: CGFloat, _ position: MessageBubbleActionButtonPosition) -> (minimumWidth: CGFloat, layout: ((CGFloat) -> (CGSize, () -> ChatMessageActionButtonNode))) { let titleLayout = TextNode.asyncLayout(maybeNode?.titleNode) - return { context, theme, strings, message, button, constrainedWidth, position in + return { context, theme, bubbleCorners, strings, message, button, constrainedWidth, position in let incoming = message.effectivelyIncoming(context.account.peerId) - let graphics = PresentationResourcesChat.additionalGraphics(theme.theme, wallpaper: theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(theme.theme, wallpaper: theme.wallpaper, bubbleCorners: bubbleCorners) let iconImage: UIImage? switch button.action { @@ -216,10 +216,10 @@ final class ChatMessageActionButtonsNode: ASDisplayNode { } } - class func asyncLayout(_ maybeNode: ChatMessageActionButtonsNode?) -> (_ context: AccountContext, _ theme: ChatPresentationThemeData, _ strings: PresentationStrings, _ replyMarkup: ReplyMarkupMessageAttribute, _ message: Message, _ constrainedWidth: CGFloat) -> (minWidth: CGFloat, layout: (CGFloat) -> (CGSize, (_ animated: Bool) -> ChatMessageActionButtonsNode)) { + class func asyncLayout(_ maybeNode: ChatMessageActionButtonsNode?) -> (_ context: AccountContext, _ theme: ChatPresentationThemeData, _ chatBubbleCorners: PresentationChatBubbleCorners, _ strings: PresentationStrings, _ replyMarkup: ReplyMarkupMessageAttribute, _ message: Message, _ constrainedWidth: CGFloat) -> (minWidth: CGFloat, layout: (CGFloat) -> (CGSize, (_ animated: Bool) -> ChatMessageActionButtonsNode)) { let currentButtonLayouts = maybeNode?.buttonNodes.map { ChatMessageActionButtonNode.asyncLayout($0) } ?? [] - return { context, theme, strings, replyMarkup, message, constrainedWidth in + return { context, theme, chatBubbleCorners, strings, replyMarkup, message, constrainedWidth in let buttonHeight: CGFloat = 42.0 let buttonSpacing: CGFloat = 4.0 @@ -252,9 +252,9 @@ final class ChatMessageActionButtonsNode: ASDisplayNode { let prepareButtonLayout: (minimumWidth: CGFloat, layout: ((CGFloat) -> (CGSize, () -> ChatMessageActionButtonNode))) if buttonIndex < currentButtonLayouts.count { - prepareButtonLayout = currentButtonLayouts[buttonIndex](context, theme, strings, message, button, maximumButtonWidth, buttonPosition) + prepareButtonLayout = currentButtonLayouts[buttonIndex](context, theme, chatBubbleCorners, strings, message, button, maximumButtonWidth, buttonPosition) } else { - prepareButtonLayout = ChatMessageActionButtonNode.asyncLayout(nil)(context, theme, strings, message, button, maximumButtonWidth, buttonPosition) + prepareButtonLayout = ChatMessageActionButtonNode.asyncLayout(nil)(context, theme, chatBubbleCorners, strings, message, button, maximumButtonWidth, buttonPosition) } maximumRowButtonWidth = max(maximumRowButtonWidth, prepareButtonLayout.minimumWidth) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift index 3fecaf1419..da8d51b1c8 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageAnimatedStickerItemNode.swift @@ -560,7 +560,7 @@ class ChatMessageAnimatedStickerItemNode: ChatMessageItemView { updatedReplyBackgroundNode = ASImageNode() } - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) replyBackgroundImage = graphics.chatFreeformContentAdditionalInfoBackgroundImage } @@ -571,7 +571,7 @@ class ChatMessageAnimatedStickerItemNode: ChatMessageItemView { if currentShareButtonNode != nil { updatedShareButtonNode = currentShareButtonNode if item.presentationData.theme !== currentItem?.presentationData.theme { - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) if item.message.id.peerId == item.context.account.peerId { updatedShareButtonBackground = graphics.chatBubbleNavigateButtonImage } else { @@ -581,7 +581,7 @@ class ChatMessageAnimatedStickerItemNode: ChatMessageItemView { } else { let buttonNode = HighlightableButtonNode() let buttonIcon: UIImage? - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) if item.message.id.peerId == item.context.account.peerId { buttonIcon = graphics.chatBubbleNavigateButtonImage } else { @@ -596,7 +596,7 @@ class ChatMessageAnimatedStickerItemNode: ChatMessageItemView { var maxContentWidth = imageSize.width var actionButtonsFinalize: ((CGFloat) -> (CGSize, (_ animated: Bool) -> ChatMessageActionButtonsNode))? if let replyMarkup = replyMarkup { - let (minWidth, buttonsLayout) = actionButtonsLayout(item.context, item.presentationData.theme, item.presentationData.strings, replyMarkup, item.message, maxContentWidth) + let (minWidth, buttonsLayout) = actionButtonsLayout(item.context, item.presentationData.theme, item.presentationData.chatBubbleCorners, item.presentationData.strings, replyMarkup, item.message, maxContentWidth) maxContentWidth = max(maxContentWidth, minWidth) actionButtonsFinalize = buttonsLayout } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentCalclulateImageCorners.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentCalclulateImageCorners.swift index bb22c33754..7d3fbc07f6 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentCalclulateImageCorners.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentCalclulateImageCorners.swift @@ -13,6 +13,9 @@ func chatMessageBubbleImageContentCorners(relativeContentPosition position: Chat case .Neighbour: topLeftCorner = .Corner(mergedWithAnotherContentRadius) topRightCorner = .Corner(mergedWithAnotherContentRadius) + case .BubbleNeighbour: + topLeftCorner = .Corner(mergedRadius) + topRightCorner = .Corner(mergedRadius) case let .None(mergeStatus): switch mergeStatus { case .Left: @@ -32,12 +35,16 @@ func chatMessageBubbleImageContentCorners(relativeContentPosition position: Chat topLeftCorner = .Corner(normalRadius) case .merged: topLeftCorner = .Corner(mergedWithAnotherContentRadius) + case .mergedBubble: + topLeftCorner = .Corner(mergedRadius) } switch position.topRight { case .none: topRightCorner = .Corner(normalRadius) case .merged: topRightCorner = .Corner(mergedWithAnotherContentRadius) + case .mergedBubble: + topRightCorner = .Corner(mergedRadius) } } @@ -50,6 +57,9 @@ func chatMessageBubbleImageContentCorners(relativeContentPosition position: Chat case .Neighbour: bottomLeftCorner = .Corner(mergedWithAnotherContentRadius) bottomRightCorner = .Corner(mergedWithAnotherContentRadius) + case .BubbleNeighbour: + bottomLeftCorner = .Corner(mergedRadius) + bottomRightCorner = .Corner(mergedRadius) case let .None(mergeStatus): switch mergeStatus { case .Left: @@ -115,7 +125,9 @@ func chatMessageBubbleImageContentCorners(relativeContentPosition position: Chat } case .merged: bottomLeftCorner = .Corner(mergedWithAnotherContentRadius) - } + case .mergedBubble: + bottomLeftCorner = .Corner(mergedRadius) + } switch position.bottomRight { case let .none(tail): if tail { @@ -137,6 +149,8 @@ func chatMessageBubbleImageContentCorners(relativeContentPosition position: Chat } case .merged: bottomRightCorner = .Corner(mergedWithAnotherContentRadius) + case .mergedBubble: + bottomRightCorner = .Corner(mergedRadius) } } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentNode.swift index 4c10c8609a..621473f04c 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleContentNode.swift @@ -41,11 +41,13 @@ enum ChatMessageBubbleMergeStatus { enum ChatMessageBubbleRelativePosition { case None(ChatMessageBubbleMergeStatus) + case BubbleNeighbour case Neighbour } enum ChatMessageBubbleContentMosaicNeighbor { case merged + case mergedBubble case none(tail: Bool) } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift index 406e3a59f5..f6be80912a 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift @@ -639,7 +639,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode adminBadgeLayout: (TextNodeLayoutArguments) -> (TextNodeLayout, () -> TextNode), forwardInfoLayout: (ChatPresentationData, PresentationStrings, ChatMessageForwardInfoType, Peer?, String?, CGSize) -> (CGSize, () -> ChatMessageForwardInfoNode), replyInfoLayout: (ChatPresentationData, PresentationStrings, AccountContext, ChatMessageReplyInfoType, Message, CGSize) -> (CGSize, () -> ChatMessageReplyInfoNode), - actionButtonsLayout: (AccountContext, ChatPresentationThemeData, PresentationStrings, ReplyMarkupMessageAttribute, Message, CGFloat) -> (minWidth: CGFloat, layout: (CGFloat) -> (CGSize, (Bool) -> ChatMessageActionButtonsNode)), + actionButtonsLayout: (AccountContext, ChatPresentationThemeData, PresentationChatBubbleCorners, PresentationStrings, ReplyMarkupMessageAttribute, Message, CGFloat) -> (minWidth: CGFloat, layout: (CGFloat) -> (CGSize, (Bool) -> ChatMessageActionButtonsNode)), mosaicStatusLayout: (AccountContext, ChatPresentationData, Bool, Int?, String, ChatMessageDateAndStatusType, CGSize, [MessageReaction]) -> (CGSize, (Bool) -> ChatMessageDateAndStatusNode), currentShareButtonNode: HighlightableButtonNode?, layoutConstants: ChatMessageItemLayoutConstants, @@ -1291,7 +1291,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode var actionButtonsFinalize: ((CGFloat) -> (CGSize, (_ animated: Bool) -> ChatMessageActionButtonsNode))? if let replyMarkup = replyMarkup { - let (minWidth, buttonsLayout) = actionButtonsLayout(item.context, item.presentationData.theme, item.presentationData.strings, replyMarkup, item.message, maximumNodeWidth) + let (minWidth, buttonsLayout) = actionButtonsLayout(item.context, item.presentationData.theme, item.presentationData.chatBubbleCorners, item.presentationData.strings, replyMarkup, item.message, maximumNodeWidth) maxContentWidth = max(maxContentWidth, minWidth) actionButtonsFinalize = buttonsLayout } @@ -1313,11 +1313,14 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode case .Neighbour: topLeft = .merged topRight = .merged + case .BubbleNeighbour: + topLeft = .mergedBubble + topRight = .mergedBubble case let .None(status): if position.contains(.top) && position.contains(.left) { switch status { case .Left: - topLeft = .merged + topLeft = .mergedBubble case .Right: topLeft = .none(tail: false) case .None: @@ -1332,7 +1335,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode case .Left: topRight = .none(tail: false) case .Right: - topRight = .merged + topRight = .mergedBubble case .None: topRight = .none(tail: false) } @@ -1356,11 +1359,14 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode case .Neighbour: bottomLeft = .merged bottomRight = .merged + case .BubbleNeighbour: + bottomLeft = .mergedBubble + bottomRight = .mergedBubble case let .None(status): if position.contains(.bottom) && position.contains(.left) { switch status { case .Left: - bottomLeft = .merged + bottomLeft = .mergedBubble case .Right: bottomLeft = .none(tail: false) case let .None(tailStatus): @@ -1379,7 +1385,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode case .Left: bottomRight = .none(tail: false) case .Right: - bottomRight = .merged + bottomRight = .mergedBubble case let .None(tailStatus): if case .Outgoing = tailStatus { bottomRight = .none(tail: true) @@ -1523,7 +1529,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode if currentShareButtonNode != nil { updatedShareButtonNode = currentShareButtonNode if item.presentationData.theme !== currentItem?.presentationData.theme { - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) if item.message.id.peerId == item.context.account.peerId { updatedShareButtonBackground = graphics.chatBubbleNavigateButtonImage } else { @@ -1533,7 +1539,7 @@ class ChatMessageBubbleItemNode: ChatMessageItemView, ChatMessagePrevewItemNode } else { let buttonNode = HighlightableButtonNode() let buttonIcon: UIImage? - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) if item.message.id.peerId == item.context.account.peerId { buttonIcon = graphics.chatBubbleNavigateButtonImage } else { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift index c1f5d88cec..7ef8e6201b 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageInstantVideoItemNode.swift @@ -295,7 +295,7 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { updatedReplyBackgroundNode = ASImageNode() } - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) replyBackgroundImage = graphics.chatFreeformContentAdditionalInfoBackgroundImage } @@ -306,7 +306,7 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { if currentShareButtonNode != nil { updatedShareButtonNode = currentShareButtonNode if item.presentationData.theme !== currentItem?.presentationData.theme { - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) if item.message.id.peerId == item.context.account.peerId { updatedShareButtonBackground = graphics.chatBubbleNavigateButtonImage } else { @@ -316,7 +316,7 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { } else { let buttonNode = HighlightableButtonNode() let buttonIcon: UIImage? - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) if item.message.id.peerId == item.context.account.peerId { buttonIcon = graphics.chatBubbleNavigateButtonImage } else { @@ -364,14 +364,14 @@ class ChatMessageInstantVideoItemNode: ChatMessageItemView { updatedForwardBackgroundNode = ASImageNode() } - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) forwardBackgroundImage = graphics.chatServiceBubbleFillImage } var maxContentWidth = videoLayout.contentSize.width var actionButtonsFinalize: ((CGFloat) -> (CGSize, (_ animated: Bool) -> ChatMessageActionButtonsNode))? if let replyMarkup = replyMarkup { - let (minWidth, buttonsLayout) = actionButtonsLayout(item.context, item.presentationData.theme, item.presentationData.strings, replyMarkup, item.message, maxContentWidth) + let (minWidth, buttonsLayout) = actionButtonsLayout(item.context, item.presentationData.theme, item.presentationData.chatBubbleCorners, item.presentationData.strings, replyMarkup, item.message, maxContentWidth) maxContentWidth = max(maxContentWidth, minWidth) actionButtonsFinalize = buttonsLayout } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift b/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift index 5377241b60..1d61b59968 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift @@ -116,7 +116,7 @@ func chatMessageItemLayoutConstants(_ constants: (ChatMessageItemLayoutConstants result = constants.0 } result.image.defaultCornerRadius = presentationData.chatBubbleCorners.mainRadius - result.image.mergedCornerRadius = presentationData.chatBubbleCorners.mergeBubbleCorners ? presentationData.chatBubbleCorners.auxiliaryRadius : presentationData.chatBubbleCorners.mainRadius + result.image.mergedCornerRadius = (presentationData.chatBubbleCorners.mergeBubbleCorners && result.image.defaultCornerRadius >= 10.0) ? presentationData.chatBubbleCorners.auxiliaryRadius : presentationData.chatBubbleCorners.mainRadius let minRadius: CGFloat = 4.0 let maxRadius: CGFloat = 16.0 let radiusTransition = (presentationData.chatBubbleCorners.mainRadius - minRadius) / (maxRadius - minRadius) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageMediaBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageMediaBubbleContentNode.swift index 4566abadca..fec48009c9 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageMediaBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageMediaBubbleContentNode.swift @@ -159,7 +159,7 @@ class ChatMessageMediaBubbleContentNode: ChatMessageBubbleContentNode { if forceFullCorners, case .linear = updatedPosition { updatedPosition = .linear(top: .None(.None(.None)), bottom: .None(.None(.None))) } else if hasReplyMarkup, case let .linear(top, _) = updatedPosition { - updatedPosition = .linear(top: top, bottom: .Neighbour) + updatedPosition = .linear(top: top, bottom: .BubbleNeighbour) } let imageCorners = chatMessageBubbleImageContentCorners(relativeContentPosition: updatedPosition, normalRadius: layoutConstants.image.defaultCornerRadius, mergedRadius: layoutConstants.image.mergedCornerRadius, mergedWithAnotherContentRadius: layoutConstants.image.contentMergedCornerRadius, layoutConstants: layoutConstants, chatPresentationData: item.presentationData) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageReplyInfoNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageReplyInfoNode.swift index 6b17612beb..b546deccc4 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageReplyInfoNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageReplyInfoNode.swift @@ -76,7 +76,7 @@ class ChatMessageReplyInfoNode: ASDisplayNode { let serviceColor = serviceMessageColorComponents(theme: presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper) titleColor = serviceColor.primaryText - let graphics = PresentationResourcesChat.additionalGraphics(presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(presentationData.theme.theme, wallpaper: presentationData.theme.wallpaper, bubbleCorners: presentationData.chatBubbleCorners) lineImage = graphics.chatServiceVerticalLineImage textColor = titleColor } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageStickerItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageStickerItemNode.swift index 7a0f4ff8c8..d4b5f3b248 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageStickerItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageStickerItemNode.swift @@ -353,7 +353,7 @@ class ChatMessageStickerItemNode: ChatMessageItemView { updatedReplyBackgroundNode = ASImageNode() } - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) replyBackgroundImage = graphics.chatFreeformContentAdditionalInfoBackgroundImage } @@ -364,7 +364,7 @@ class ChatMessageStickerItemNode: ChatMessageItemView { if currentShareButtonNode != nil { updatedShareButtonNode = currentShareButtonNode if item.presentationData.theme !== currentItem?.presentationData.theme { - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) if item.message.id.peerId == item.context.account.peerId { updatedShareButtonBackground = graphics.chatBubbleNavigateButtonImage } else { @@ -374,7 +374,7 @@ class ChatMessageStickerItemNode: ChatMessageItemView { } else { let buttonNode = HighlightableButtonNode() let buttonIcon: UIImage? - let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(item.presentationData.theme.theme, wallpaper: item.presentationData.theme.wallpaper, bubbleCorners: item.presentationData.chatBubbleCorners) if item.message.id.peerId == item.context.account.peerId { buttonIcon = graphics.chatBubbleNavigateButtonImage } else { @@ -389,7 +389,7 @@ class ChatMessageStickerItemNode: ChatMessageItemView { var maxContentWidth = imageSize.width var actionButtonsFinalize: ((CGFloat) -> (CGSize, (_ animated: Bool) -> ChatMessageActionButtonsNode))? if let replyMarkup = replyMarkup { - let (minWidth, buttonsLayout) = actionButtonsLayout(item.context, item.presentationData.theme, item.presentationData.strings, replyMarkup, item.message, maxContentWidth) + let (minWidth, buttonsLayout) = actionButtonsLayout(item.context, item.presentationData.theme, item.presentationData.chatBubbleCorners, item.presentationData.strings, replyMarkup, item.message, maxContentWidth) maxContentWidth = max(maxContentWidth, minWidth) actionButtonsFinalize = buttonsLayout } diff --git a/submodules/TelegramUI/TelegramUI/ChatPresentationInterfaceState.swift b/submodules/TelegramUI/TelegramUI/ChatPresentationInterfaceState.swift index 60e1c60d6a..3697ec4e39 100644 --- a/submodules/TelegramUI/TelegramUI/ChatPresentationInterfaceState.swift +++ b/submodules/TelegramUI/TelegramUI/ChatPresentationInterfaceState.swift @@ -306,12 +306,13 @@ final class ChatPresentationInterfaceState: Equatable { let nameDisplayOrder: PresentationPersonNameOrder let limitsConfiguration: LimitsConfiguration let fontSize: PresentationFontSize + let bubbleCorners: PresentationChatBubbleCorners let accountPeerId: PeerId let mode: ChatControllerPresentationMode let hasScheduledMessages: Bool let isScheduledMessages: Bool - init(chatWallpaper: TelegramWallpaper, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, limitsConfiguration: LimitsConfiguration, fontSize: PresentationFontSize, accountPeerId: PeerId, mode: ChatControllerPresentationMode, chatLocation: ChatLocation, isScheduledMessages: Bool) { + init(chatWallpaper: TelegramWallpaper, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, limitsConfiguration: LimitsConfiguration, fontSize: PresentationFontSize, bubbleCorners: PresentationChatBubbleCorners, accountPeerId: PeerId, mode: ChatControllerPresentationMode, chatLocation: ChatLocation, isScheduledMessages: Bool) { self.interfaceState = ChatInterfaceState() self.inputTextPanelState = ChatTextInputPanelState() self.editMessageState = nil @@ -349,13 +350,14 @@ final class ChatPresentationInterfaceState: Equatable { self.nameDisplayOrder = nameDisplayOrder self.limitsConfiguration = limitsConfiguration self.fontSize = fontSize + self.bubbleCorners = bubbleCorners self.accountPeerId = accountPeerId self.mode = mode self.hasScheduledMessages = false self.isScheduledMessages = isScheduledMessages } - init(interfaceState: ChatInterfaceState, chatLocation: ChatLocation, renderedPeer: RenderedPeer?, isNotAccessible: Bool, explicitelyCanPinMessages: Bool, contactStatus: ChatContactStatus?, hasBots: Bool, isArchived: Bool, inputTextPanelState: ChatTextInputPanelState, editMessageState: ChatEditInterfaceMessageState?, recordedMediaPreview: ChatRecordedMediaPreview?, inputQueryResults: [ChatPresentationInputQueryKind: ChatPresentationInputQueryResult], inputMode: ChatInputMode, titlePanelContexts: [ChatTitlePanelContext], keyboardButtonsMessage: Message?, pinnedMessageId: MessageId?, pinnedMessage: Message?, peerIsBlocked: Bool, peerIsMuted: Bool, peerDiscussionId: PeerId?, peerGeoLocation: PeerGeoLocation?, callsAvailable: Bool, callsPrivate: Bool, slowmodeState: ChatSlowmodeState?, chatHistoryState: ChatHistoryNodeHistoryState?, botStartPayload: String?, urlPreview: (String, TelegramMediaWebpage)?, editingUrlPreview: (String, TelegramMediaWebpage)?, search: ChatSearchData?, searchQuerySuggestionResult: ChatPresentationInputQueryResult?, chatWallpaper: TelegramWallpaper, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, limitsConfiguration: LimitsConfiguration, fontSize: PresentationFontSize, accountPeerId: PeerId, mode: ChatControllerPresentationMode, hasScheduledMessages: Bool, isScheduledMessages: Bool) { + init(interfaceState: ChatInterfaceState, chatLocation: ChatLocation, renderedPeer: RenderedPeer?, isNotAccessible: Bool, explicitelyCanPinMessages: Bool, contactStatus: ChatContactStatus?, hasBots: Bool, isArchived: Bool, inputTextPanelState: ChatTextInputPanelState, editMessageState: ChatEditInterfaceMessageState?, recordedMediaPreview: ChatRecordedMediaPreview?, inputQueryResults: [ChatPresentationInputQueryKind: ChatPresentationInputQueryResult], inputMode: ChatInputMode, titlePanelContexts: [ChatTitlePanelContext], keyboardButtonsMessage: Message?, pinnedMessageId: MessageId?, pinnedMessage: Message?, peerIsBlocked: Bool, peerIsMuted: Bool, peerDiscussionId: PeerId?, peerGeoLocation: PeerGeoLocation?, callsAvailable: Bool, callsPrivate: Bool, slowmodeState: ChatSlowmodeState?, chatHistoryState: ChatHistoryNodeHistoryState?, botStartPayload: String?, urlPreview: (String, TelegramMediaWebpage)?, editingUrlPreview: (String, TelegramMediaWebpage)?, search: ChatSearchData?, searchQuerySuggestionResult: ChatPresentationInputQueryResult?, chatWallpaper: TelegramWallpaper, theme: PresentationTheme, strings: PresentationStrings, dateTimeFormat: PresentationDateTimeFormat, nameDisplayOrder: PresentationPersonNameOrder, limitsConfiguration: LimitsConfiguration, fontSize: PresentationFontSize, bubbleCorners: PresentationChatBubbleCorners, accountPeerId: PeerId, mode: ChatControllerPresentationMode, hasScheduledMessages: Bool, isScheduledMessages: Bool) { self.interfaceState = interfaceState self.chatLocation = chatLocation self.renderedPeer = renderedPeer @@ -393,6 +395,7 @@ final class ChatPresentationInterfaceState: Equatable { self.nameDisplayOrder = nameDisplayOrder self.limitsConfiguration = limitsConfiguration self.fontSize = fontSize + self.bubbleCorners = bubbleCorners self.accountPeerId = accountPeerId self.mode = mode self.hasScheduledMessages = hasScheduledMessages @@ -530,6 +533,9 @@ final class ChatPresentationInterfaceState: Equatable { if lhs.fontSize != rhs.fontSize { return false } + if lhs.bubbleCorners != rhs.bubbleCorners { + return false + } if lhs.accountPeerId != rhs.accountPeerId { return false } @@ -546,31 +552,31 @@ final class ChatPresentationInterfaceState: Equatable { } func updatedInterfaceState(_ f: (ChatInterfaceState) -> ChatInterfaceState) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: f(self.interfaceState), chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: f(self.interfaceState), chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedPeer(_ f: (RenderedPeer?) -> RenderedPeer?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: f(self.renderedPeer), isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: f(self.renderedPeer), isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedIsNotAccessible(_ isNotAccessible: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedExplicitelyCanPinMessages(_ explicitelyCanPinMessages: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedContactStatus(_ contactStatus: ChatContactStatus?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedHasBots(_ hasBots: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedIsArchived(_ isArchived: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedInputQueryResult(queryKind: ChatPresentationInputQueryKind, _ f: (ChatPresentationInputQueryResult?) -> ChatPresentationInputQueryResult?) -> ChatPresentationInterfaceState { @@ -581,115 +587,119 @@ final class ChatPresentationInterfaceState: Equatable { } else { inputQueryResults.removeValue(forKey: queryKind) } - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedInputTextPanelState(_ f: (ChatTextInputPanelState) -> ChatTextInputPanelState) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: f(self.inputTextPanelState), editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: f(self.inputTextPanelState), editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedEditMessageState(_ editMessageState: ChatEditInterfaceMessageState?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedRecordedMediaPreview(_ recordedMediaPreview: ChatRecordedMediaPreview?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedInputMode(_ f: (ChatInputMode) -> ChatInputMode) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: f(self.inputMode), titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: f(self.inputMode), titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedTitlePanelContext(_ f: ([ChatTitlePanelContext]) -> [ChatTitlePanelContext]) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: f(self.titlePanelContexts), keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: f(self.titlePanelContexts), keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedKeyboardButtonsMessage(_ message: Message?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: message, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: message, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedPinnedMessageId(_ pinnedMessageId: MessageId?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedPinnedMessage(_ pinnedMessage: Message?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedPeerIsBlocked(_ peerIsBlocked: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedPeerIsMuted(_ peerIsMuted: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedPeerDiscussionId(_ peerDiscussionId: PeerId?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedPeerGeoLocation(_ peerGeoLocation: PeerGeoLocation?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedCallsAvailable(_ callsAvailable: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedCallsPrivate(_ callsPrivate: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedSlowmodeState(_ slowmodeState: ChatSlowmodeState?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedBotStartPayload(_ botStartPayload: String?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedChatHistoryState(_ chatHistoryState: ChatHistoryNodeHistoryState?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedUrlPreview(_ urlPreview: (String, TelegramMediaWebpage)?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedEditingUrlPreview(_ editingUrlPreview: (String, TelegramMediaWebpage)?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedSearch(_ search: ChatSearchData?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedSearchQuerySuggestionResult(_ f: (ChatPresentationInputQueryResult?) -> ChatPresentationInputQueryResult?) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: f(self.searchQuerySuggestionResult), chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: f(self.searchQuerySuggestionResult), chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedMode(_ mode: ChatControllerPresentationMode) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedTheme(_ theme: PresentationTheme) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedStrings(_ strings: PresentationStrings) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedDateTimeFormat(_ dateTimeFormat: PresentationDateTimeFormat) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedChatWallpaper(_ chatWallpaper: TelegramWallpaper) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + } + + func updatedBubbleCorners(_ bubbleCorners: PresentationChatBubbleCorners) -> ChatPresentationInterfaceState { + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: self.hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } func updatedHasScheduledMessages(_ hasScheduledMessages: Bool) -> ChatPresentationInterfaceState { - return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) + return ChatPresentationInterfaceState(interfaceState: self.interfaceState, chatLocation: self.chatLocation, renderedPeer: self.renderedPeer, isNotAccessible: self.isNotAccessible, explicitelyCanPinMessages: self.explicitelyCanPinMessages, contactStatus: self.contactStatus, hasBots: self.hasBots, isArchived: self.isArchived, inputTextPanelState: self.inputTextPanelState, editMessageState: self.editMessageState, recordedMediaPreview: self.recordedMediaPreview, inputQueryResults: self.inputQueryResults, inputMode: self.inputMode, titlePanelContexts: self.titlePanelContexts, keyboardButtonsMessage: self.keyboardButtonsMessage, pinnedMessageId: self.pinnedMessageId, pinnedMessage: self.pinnedMessage, peerIsBlocked: self.peerIsBlocked, peerIsMuted: self.peerIsMuted, peerDiscussionId: self.peerDiscussionId, peerGeoLocation: self.peerGeoLocation, callsAvailable: self.callsAvailable, callsPrivate: self.callsPrivate, slowmodeState: self.slowmodeState, chatHistoryState: self.chatHistoryState, botStartPayload: self.botStartPayload, urlPreview: self.urlPreview, editingUrlPreview: self.editingUrlPreview, search: self.search, searchQuerySuggestionResult: self.searchQuerySuggestionResult, chatWallpaper: self.chatWallpaper, theme: self.theme, strings: self.strings, dateTimeFormat: self.dateTimeFormat, nameDisplayOrder: self.nameDisplayOrder, limitsConfiguration: self.limitsConfiguration, fontSize: self.fontSize, bubbleCorners: self.bubbleCorners, accountPeerId: self.accountPeerId, mode: self.mode, hasScheduledMessages: hasScheduledMessages, isScheduledMessages: self.isScheduledMessages) } } diff --git a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift index 2a2b602ab9..271975abbe 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift @@ -107,8 +107,8 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode { self.listNode = ListView() self.listNode.dynamicBounceEnabled = !self.presentationData.disableAnimations self.listNode.transform = CATransform3DMakeRotation(CGFloat(Double.pi), 0.0, 0.0, 1.0) - self.loadingNode = ChatLoadingNode(theme: self.presentationData.theme, chatWallpaper: self.presentationData.chatWallpaper) - self.emptyNode = ChatRecentActionsEmptyNode(theme: self.presentationData.theme, chatWallpaper: self.presentationData.chatWallpaper) + self.loadingNode = ChatLoadingNode(theme: self.presentationData.theme, chatWallpaper: self.presentationData.chatWallpaper, bubbleCorners: self.presentationData.chatBubbleCorners) + self.emptyNode = ChatRecentActionsEmptyNode(theme: self.presentationData.theme, chatWallpaper: self.presentationData.chatWallpaper, chatBubbleCorners: self.presentationData.chatBubbleCorners) self.emptyNode.alpha = 0.0 self.state = ChatRecentActionsControllerState(chatWallpaper: self.presentationData.chatWallpaper, theme: self.presentationData.theme, strings: self.presentationData.strings, fontSize: self.presentationData.chatFontSize) diff --git a/submodules/TelegramUI/TelegramUI/ChatRecentActionsEmptyNode.swift b/submodules/TelegramUI/TelegramUI/ChatRecentActionsEmptyNode.swift index 3d45cd250d..8b4dfd82d5 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecentActionsEmptyNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecentActionsEmptyNode.swift @@ -22,7 +22,7 @@ final class ChatRecentActionsEmptyNode: ASDisplayNode { private var title: String = "" private var text: String = "" - init(theme: PresentationTheme, chatWallpaper: TelegramWallpaper) { + init(theme: PresentationTheme, chatWallpaper: TelegramWallpaper, chatBubbleCorners: PresentationChatBubbleCorners) { self.theme = theme self.chatWallpaper = chatWallpaper @@ -37,7 +37,7 @@ final class ChatRecentActionsEmptyNode: ASDisplayNode { super.init() - let graphics = PresentationResourcesChat.additionalGraphics(theme, wallpaper: chatWallpaper) + let graphics = PresentationResourcesChat.additionalGraphics(theme, wallpaper: chatWallpaper, bubbleCorners: chatBubbleCorners) self.backgroundNode.image = graphics.chatEmptyItemBackgroundImage self.addSubnode(self.backgroundNode) diff --git a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionControllerNode.swift b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionControllerNode.swift index 43b2d14d1d..cae95a602a 100644 --- a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionControllerNode.swift @@ -155,7 +155,7 @@ class PeerMediaCollectionControllerNode: ASDisplayNode { self.historyEmptyNode = PeerMediaCollectionEmptyNode(mode: self.mediaCollectionInterfaceState.mode, theme: self.presentationData.theme, strings: self.presentationData.strings) self.historyEmptyNode.isHidden = true - self.chatPresentationInterfaceState = ChatPresentationInterfaceState(chatWallpaper: self.presentationData.chatWallpaper, theme: self.presentationData.theme, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameDisplayOrder: self.presentationData.nameDisplayOrder, limitsConfiguration: .defaultValue, fontSize: self.presentationData.listsFontSize, accountPeerId: context.account.peerId, mode: .standard(previewing: false), chatLocation: .peer(self.peerId), isScheduledMessages: false) + self.chatPresentationInterfaceState = ChatPresentationInterfaceState(chatWallpaper: self.presentationData.chatWallpaper, theme: self.presentationData.theme, strings: self.presentationData.strings, dateTimeFormat: self.presentationData.dateTimeFormat, nameDisplayOrder: self.presentationData.nameDisplayOrder, limitsConfiguration: .defaultValue, fontSize: self.presentationData.listsFontSize, bubbleCorners: self.presentationData.chatBubbleCorners, accountPeerId: context.account.peerId, mode: .standard(previewing: false), chatLocation: .peer(self.peerId), isScheduledMessages: false) super.init() From 6a4224e67cf03b8549f519224ca2fa232ff08cc5 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 21 Jan 2020 23:12:19 +0400 Subject: [PATCH 54/63] Fix poll results update --- submodules/SyncCore/Sources/TelegramMediaPoll.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/submodules/SyncCore/Sources/TelegramMediaPoll.swift b/submodules/SyncCore/Sources/TelegramMediaPoll.swift index 942f1ba8fd..f01ba73c87 100644 --- a/submodules/SyncCore/Sources/TelegramMediaPoll.swift +++ b/submodules/SyncCore/Sources/TelegramMediaPoll.swift @@ -229,6 +229,8 @@ public final class TelegramMediaPoll: Media, Equatable { updatedResults = TelegramMediaPollResults(voters: updatedVoters.map({ voters in return TelegramMediaPollOptionVoters(selected: selectedOpaqueIdentifiers.contains(voters.opaqueIdentifier), opaqueIdentifier: voters.opaqueIdentifier, count: voters.count, isCorrect: correctOpaqueIdentifiers.contains(voters.opaqueIdentifier)) }), totalVoters: results.totalVoters, recentVoters: results.recentVoters) + } else if let updatedVoters = results.voters { + updatedResults = TelegramMediaPollResults(voters: updatedVoters, totalVoters: results.totalVoters, recentVoters: results.recentVoters) } else { updatedResults = TelegramMediaPollResults(voters: self.results.voters, totalVoters: results.totalVoters, recentVoters: results.recentVoters) } From 48ce3a34573ec54c8a9ddbb687f288724de4e959 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 21 Jan 2020 23:13:31 +0400 Subject: [PATCH 55/63] Disable View Results in Scheduled Messages --- .../ChatMessagePollBubbleContentNode.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index bdca4308d6..c1ba412885 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -891,7 +891,9 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } } if !hasSelection { - item.controllerInteraction.requestOpenMessagePollResults(item.message.id, pollId) + if !Namespaces.Message.allScheduled.contains(item.message.id.namespace) { + item.controllerInteraction.requestOpenMessagePollResults(item.message.id, pollId) + } } else if !selectedOpaqueIdentifiers.isEmpty { item.controllerInteraction.requestSelectMessagePollOptions(item.message.id, selectedOpaqueIdentifiers) } @@ -1391,15 +1393,23 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { self.buttonSubmitInactiveTextNode.isHidden = hasSelectedOptions self.buttonSubmitActiveTextNode.isHidden = !hasSelectedOptions self.buttonNode.isHidden = !hasSelectedOptions + self.buttonNode.isUserInteractionEnabled = true } else { if case .public = poll.publicity, hasResults, !disableAllActions { self.votersNode.isHidden = true self.buttonViewResultsTextNode.isHidden = false self.buttonNode.isHidden = false + + if Namespaces.Message.allScheduled.contains(item.message.id.namespace) { + self.buttonNode.isUserInteractionEnabled = false + } else { + self.buttonNode.isUserInteractionEnabled = true + } } else { self.votersNode.isHidden = false self.buttonViewResultsTextNode.isHidden = true self.buttonNode.isHidden = true + self.buttonNode.isUserInteractionEnabled = true } self.buttonSubmitInactiveTextNode.isHidden = true self.buttonSubmitActiveTextNode.isHidden = true From 0a33b7f55a9e3dbf1e4401f2d09309c2f7436355 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 21 Jan 2020 23:28:36 +0400 Subject: [PATCH 56/63] Make rlottie use a relative url path --- .gitmodules | 2 +- submodules/rlottie/rlottie | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index f931b28d97..c319a7c828 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +1,4 @@ [submodule "submodules/rlottie/rlottie"] path = submodules/rlottie/rlottie - url = https://github.com/laktyushin/rlottie.git +url=../rlottie.git diff --git a/submodules/rlottie/rlottie b/submodules/rlottie/rlottie index a09896b3e7..0ee2e9c584 160000 --- a/submodules/rlottie/rlottie +++ b/submodules/rlottie/rlottie @@ -1 +1 @@ -Subproject commit a09896b3e72e76681c12e80572a7d570108cf885 +Subproject commit 0ee2e9c5843257ccd11672611829b9bb5d02aa98 From b30af2272dab2a6e4d0d62825ae62aedd21efe41 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 21 Jan 2020 23:28:56 +0400 Subject: [PATCH 57/63] Bubble layout improvements --- .../Sources/BubbleSettings/BubbleSettingsController.swift | 2 +- submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/submodules/SettingsUI/Sources/BubbleSettings/BubbleSettingsController.swift b/submodules/SettingsUI/Sources/BubbleSettings/BubbleSettingsController.swift index 780335a936..daa01db3bb 100644 --- a/submodules/SettingsUI/Sources/BubbleSettings/BubbleSettingsController.swift +++ b/submodules/SettingsUI/Sources/BubbleSettings/BubbleSettingsController.swift @@ -190,7 +190,7 @@ private final class BubbleSettingsControllerNode: ASDisplayNode, UIScrollViewDel let width: CGFloat if case .regular = layout.metrics.widthClass { - width = layout.size.width / 2.0 + width = layout.size.width } else { width = layout.size.width } diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift b/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift index 1d61b59968..96066bb31d 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift @@ -96,9 +96,9 @@ struct ChatMessageItemLayoutConstants { } fileprivate static var regular: ChatMessageItemLayoutConstants { - let bubble = ChatMessageItemBubbleLayoutConstants(edgeInset: 4.0, defaultSpacing: 2.0 + UIScreenPixel, mergedSpacing: 1.0, maximumWidthFill: ChatMessageItemWidthFill(compactInset: 36.0, compactWidthBoundary: 500.0, freeMaximumFillFactor: 0.65), minimumSize: CGSize(width: 40.0, height: 35.0), contentInsets: UIEdgeInsets(top: 0.0, left: 6.0, bottom: 0.0, right: 0.0), borderInset: UIScreenPixel, strokeInsets: UIEdgeInsets(top: 1.0 - UIScreenPixel, left: 1.0 - UIScreenPixel, bottom: 1.0 - UIScreenPixel, right: 1.0 - UIScreenPixel)) + let bubble = ChatMessageItemBubbleLayoutConstants(edgeInset: 4.0, defaultSpacing: 2.0 + UIScreenPixel, mergedSpacing: 1.0, maximumWidthFill: ChatMessageItemWidthFill(compactInset: 36.0, compactWidthBoundary: 500.0, freeMaximumFillFactor: 0.65), minimumSize: CGSize(width: 40.0, height: 35.0), contentInsets: UIEdgeInsets(top: 0.0, left: 6.0, bottom: 0.0, right: 0.0), borderInset: UIScreenPixel, strokeInsets: UIEdgeInsets(top: 1.0, left: 1.0, bottom: 1.0, right: 1.0)) let text = ChatMessageItemTextLayoutConstants(bubbleInsets: UIEdgeInsets(top: 6.0 + UIScreenPixel, left: 12.0, bottom: 6.0 - UIScreenPixel, right: 12.0)) - let image = ChatMessageItemImageLayoutConstants(bubbleInsets: UIEdgeInsets(top: 1.0, left: 1.0, bottom: 1.0, right: 1.0), statusInsets: UIEdgeInsets(top: 0.0, left: 0.0, bottom: 6.0, right: 6.0), defaultCornerRadius: 17.0, mergedCornerRadius: 5.0, contentMergedCornerRadius: 5.0, maxDimensions: CGSize(width: 440.0, height: 440.0), minDimensions: CGSize(width: 170.0, height: 74.0)) + let image = ChatMessageItemImageLayoutConstants(bubbleInsets: UIEdgeInsets(top: 2.0, left: 2.0, bottom: 2.0, right: 2.0), statusInsets: UIEdgeInsets(top: 0.0, left: 0.0, bottom: 6.0, right: 6.0), defaultCornerRadius: 16.0, mergedCornerRadius: 8.0, contentMergedCornerRadius: 5.0, maxDimensions: CGSize(width: 440.0, height: 440.0), minDimensions: CGSize(width: 170.0, height: 74.0)) let video = ChatMessageItemVideoLayoutConstants(maxHorizontalHeight: 250.0, maxVerticalHeight: 360.0) let file = ChatMessageItemFileLayoutConstants(bubbleInsets: UIEdgeInsets(top: 15.0, left: 9.0, bottom: 15.0, right: 12.0)) let instantVideo = ChatMessageItemInstantVideoConstants(insets: UIEdgeInsets(top: 4.0, left: 0.0, bottom: 4.0, right: 0.0), dimensions: CGSize(width: 212.0, height: 212.0)) From 5ad48ef7d428717a1b1be78834f4d215b588ef98 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 21 Jan 2020 23:58:49 +0400 Subject: [PATCH 58/63] Fix topPresentationContext overlay focus handling --- submodules/AppLock/Sources/AppLock.swift | 1 + submodules/Display/Display/WindowContent.swift | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/submodules/AppLock/Sources/AppLock.swift b/submodules/AppLock/Sources/AppLock.swift index fdb2016360..e339ed19ad 100644 --- a/submodules/AppLock/Sources/AppLock.swift +++ b/submodules/AppLock/Sources/AppLock.swift @@ -201,6 +201,7 @@ public final class AppLockContextImpl: AppLockContext { } } passcodeController.presentedOverCoveringView = true + passcodeController.isOpaqueWhenInOverlay = true strongSelf.passcodeController = passcodeController if let rootViewController = strongSelf.rootController { if let presentedViewController = rootViewController.presentedViewController as? UIActivityViewController { diff --git a/submodules/Display/Display/WindowContent.swift b/submodules/Display/Display/WindowContent.swift index 19514e85ee..cbf67d23e9 100644 --- a/submodules/Display/Display/WindowContent.swift +++ b/submodules/Display/Display/WindowContent.swift @@ -337,8 +337,17 @@ public class Window1 { self?.isInteractionBlocked = value } + let updateOpaqueOverlays: () -> Void = { [weak self] in + guard let strongSelf = self else { + return + } + strongSelf._rootController?.displayNode.accessibilityElementsHidden = strongSelf.presentationContext.hasOpaqueOverlay || strongSelf.topPresentationContext.hasOpaqueOverlay + } self.presentationContext.updateHasOpaqueOverlay = { [weak self] value in - self?._rootController?.displayNode.accessibilityElementsHidden = value + updateOpaqueOverlays() + } + self.topPresentationContext.updateHasOpaqueOverlay = { [weak self] value in + updateOpaqueOverlays() } self.hostView.present = { [weak self] controller, level, blockInteraction, completion in From 9073516dbd74cd6e7b2c900cfcbe65a02a54fcd6 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 22 Jan 2020 00:16:42 +0400 Subject: [PATCH 59/63] Move screenshot detection activation to a later stage --- .../SecretMediaPreviewController.swift | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift b/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift index 4a2df1e638..3c36aeaa18 100644 --- a/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift +++ b/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift @@ -122,6 +122,7 @@ private final class SecretMediaPreviewControllerNode: GalleryControllerNode { public final class SecretMediaPreviewController: ViewController { private let context: AccountContext + private let messageId: MessageId private let _ready = Promise() override public var ready: Promise { @@ -150,6 +151,7 @@ public final class SecretMediaPreviewController: ViewController { public init(context: AccountContext, messageId: MessageId) { self.context = context + self.messageId = messageId self.presentationData = context.sharedContext.currentPresentationData.with { $0 } super.init(navigationBarPresentationData: NavigationBarPresentationData(theme: GalleryController.darkNavigationTheme, strings: NavigationBarStrings(presentationStrings: self.presentationData.strings))) @@ -159,8 +161,6 @@ public final class SecretMediaPreviewController: ViewController { self.statusBar.statusBarStyle = .White - - self.disposable.set((context.account.postbox.messageView(messageId) |> deliverOnMainQueue).start(next: { [weak self] view in if let strongSelf = self { strongSelf.messageView = view @@ -178,17 +178,6 @@ public final class SecretMediaPreviewController: ViewController { return nil } }) - - self.screenCaptureEventsDisposable = (screenCaptureEvents() - |> deliverOnMainQueue).start(next: { [weak self] _ in - if let strongSelf = self, strongSelf.traceVisibility() { - if messageId.peerId.namespace == Namespaces.Peer.CloudUser { - let _ = enqueueMessages(account: context.account, peerId: messageId.peerId, messages: [.message(text: "", attributes: [], mediaReference: .standalone(media: TelegramMediaAction(action: TelegramMediaActionType.historyScreenshot)), replyToMessageId: nil, localGroupingKey: nil)]).start() - } else if messageId.peerId.namespace == Namespaces.Peer.SecretChat { - let _ = addSecretChatMessageScreenshot(account: context.account, peerId: messageId.peerId).start() - } - } - }) } required public init(coder aDecoder: NSCoder) { @@ -348,6 +337,19 @@ public final class SecretMediaPreviewController: ViewController { override public func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) + if self.screenCaptureEventsDisposable == nil { + self.screenCaptureEventsDisposable = (screenCaptureEvents() + |> deliverOnMainQueue).start(next: { [weak self] _ in + if let strongSelf = self, strongSelf.traceVisibility() { + if strongSelf.messageId.peerId.namespace == Namespaces.Peer.CloudUser { + let _ = enqueueMessages(account: strongSelf.context.account, peerId: strongSelf.messageId.peerId, messages: [.message(text: "", attributes: [], mediaReference: .standalone(media: TelegramMediaAction(action: TelegramMediaActionType.historyScreenshot)), replyToMessageId: nil, localGroupingKey: nil)]).start() + } else if strongSelf.messageId.peerId.namespace == Namespaces.Peer.SecretChat { + let _ = addSecretChatMessageScreenshot(account: strongSelf.context.account, peerId: strongSelf.messageId.peerId).start() + } + } + }) + } + var nodeAnimatesItself = false if let centralItemNode = self.controllerNode.pager.centralItemNode(), let message = self.messageView?.message { From d2fb7f07e535a3a3bd7aa5e8656b9e45faf97163 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 22 Jan 2020 00:26:44 +0400 Subject: [PATCH 60/63] Use 0.5pt borders on @2x displays --- .../Sources/ChatMessageBubbleImages.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/submodules/TelegramPresentationData/Sources/ChatMessageBubbleImages.swift b/submodules/TelegramPresentationData/Sources/ChatMessageBubbleImages.swift index a33deb89cc..d09c06ccc4 100644 --- a/submodules/TelegramPresentationData/Sources/ChatMessageBubbleImages.swift +++ b/submodules/TelegramPresentationData/Sources/ChatMessageBubbleImages.swift @@ -176,7 +176,12 @@ public func messageBubbleImage(maxCornerRadius: CGFloat, minCornerRadius: CGFloa context.translateBy(x: additionalInset + strokeInset, y: additionalInset + strokeInset) context.setStrokeColor(UIColor.black.cgColor) - let borderWidth: CGFloat = UIScreenPixel * 2.0 + let borderWidth: CGFloat + if abs(UIScreenPixel - 0.5) < CGFloat.ulpOfOne { + borderWidth = UIScreenPixel + } else { + borderWidth = UIScreenPixel * 2.0 + } context.setLineWidth(borderWidth) let borderOffset: CGFloat = borderWidth / 2.0 From 9db6a8551b905d11640956a4c786f9f16e97fee8 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 22 Jan 2020 01:44:29 +0400 Subject: [PATCH 61/63] Fix media corners --- submodules/Display/Display/ImageCorners.swift | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/submodules/Display/Display/ImageCorners.swift b/submodules/Display/Display/ImageCorners.swift index 6930a5bcf4..948a4d385d 100644 --- a/submodules/Display/Display/ImageCorners.swift +++ b/submodules/Display/Display/ImageCorners.swift @@ -121,20 +121,22 @@ private func cornerContext(_ corner: Corner) -> DrawingContext { let context = DrawingContext(size: CGSize(width: CGFloat(corner.radius), height: CGFloat(corner.radius)), clear: true) context.withContext { c in - c.setBlendMode(.copy) + c.clear(CGRect(origin: CGPoint(), size: CGSize(width: CGFloat(corner.radius), height: CGFloat(corner.radius)))) c.setFillColor(UIColor.black.cgColor) - let rect: CGRect switch corner { - case let .TopLeft(radius): - rect = CGRect(origin: CGPoint(), size: CGSize(width: CGFloat(radius << 1), height: CGFloat(radius << 1))) - case let .TopRight(radius): - rect = CGRect(origin: CGPoint(x: -CGFloat(radius), y: 0.0), size: CGSize(width: CGFloat(radius << 1), height: CGFloat(radius << 1))) - case let .BottomLeft(radius): - rect = CGRect(origin: CGPoint(x: 0.0, y: -CGFloat(radius)), size: CGSize(width: CGFloat(radius << 1), height: CGFloat(radius << 1))) - case let .BottomRight(radius): - rect = CGRect(origin: CGPoint(x: -CGFloat(radius), y: -CGFloat(radius)), size: CGSize(width: CGFloat(radius << 1), height: CGFloat(radius << 1))) + case let .TopLeft(radius): + let rect = CGRect(origin: CGPoint(), size: CGSize(width: CGFloat(radius * 2), height: CGFloat(radius * 2))) + c.fillEllipse(in: rect) + case let .TopRight(radius): + let rect = CGRect(origin: CGPoint(x: -CGFloat(radius), y: 0.0), size: CGSize(width: CGFloat(radius * 2), height: CGFloat(radius * 2))) + c.fillEllipse(in: rect) + case let .BottomLeft(radius): + let rect = CGRect(origin: CGPoint(x: 0.0, y: -CGFloat(radius)), size: CGSize(width: CGFloat(radius * 2), height: CGFloat(radius * 2))) + c.fillEllipse(in: rect) + case let .BottomRight(radius): + let rect = CGRect(origin: CGPoint(x: -CGFloat(radius), y: -CGFloat(radius)), size: CGSize(width: CGFloat(radius * 2), height: CGFloat(radius * 2))) + c.fillEllipse(in: rect) } - c.fillEllipse(in: rect) } let _ = cachedCorners.modify { current in @@ -172,7 +174,7 @@ public func addCorners(_ context: DrawingContext, arguments: TransformImageArgum context.withContext { c in c.clear(CGRect(x: drawingRect.minX - 4.0, y: 0.0, width: 4.0, height: drawingRect.maxY - 6.0)) c.setFillColor(color.cgColor) - c.fill(CGRect(x: 0.0, y: drawingRect.maxY - 6.0, width: 4.0, height: 6.0)) + c.fill(CGRect(x: 0.0, y: drawingRect.maxY - 7.0, width: 4.0, height: 7.0)) c.setBlendMode(.destinationIn) let cornerRect = CGRect(origin: CGPoint(x: drawingRect.minX - 6.0, y: drawingRect.maxY - image.size.height), size: image.size) c.translateBy(x: cornerRect.midX, y: cornerRect.midY) @@ -198,7 +200,7 @@ public func addCorners(_ context: DrawingContext, arguments: TransformImageArgum context.withContext { c in c.clear(CGRect(x: drawingRect.maxX, y: 0.0, width: 4.0, height: drawingRect.maxY - image.size.height)) c.setFillColor(color.cgColor) - c.fill(CGRect(x: drawingRect.maxX, y: drawingRect.maxY - 6.0, width: 4.0, height: 6.0)) + c.fill(CGRect(x: drawingRect.maxX, y: drawingRect.maxY - 7.0, width: 5.0, height: 7.0)) c.setBlendMode(.destinationIn) let cornerRect = CGRect(origin: CGPoint(x: drawingRect.maxX - image.size.width + 6.0, y: drawingRect.maxY - image.size.height), size: image.size) c.translateBy(x: cornerRect.midX, y: cornerRect.midY) From 4047d83584775bfa41802816421d2e321f61d24c Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 22 Jan 2020 01:44:56 +0400 Subject: [PATCH 62/63] Fix for message text component while editing caption --- .../TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift index f6be80912a..88a19d0bdb 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageBubbleItemNode.swift @@ -76,7 +76,12 @@ private func contentNodeMessagesAndClassesForItem(_ item: ChatMessageItem) -> [( } } - if !message.text.isEmpty || isUnsupportedMedia { + var messageText = message.text + if let updatingMedia = itemAttributes.updatingMedia { + messageText = updatingMedia.text + } + + if !messageText.isEmpty || isUnsupportedMedia { if !skipText { if case .group = item.content { messageWithCaptionToAdd = (message, itemAttributes) From 1f5eaceb805abde2adc4218b11adc01a636eba3c Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 22 Jan 2020 02:23:57 +0400 Subject: [PATCH 63/63] improve screen capture detection --- .../Sources/ScreenCaptureDetection.swift | 47 +++++++++++++++++++ .../TelegramUI/ChatController.swift | 10 ++-- 2 files changed, 53 insertions(+), 4 deletions(-) diff --git a/submodules/ScreenCaptureDetection/Sources/ScreenCaptureDetection.swift b/submodules/ScreenCaptureDetection/Sources/ScreenCaptureDetection.swift index 0c35661804..26f6bfba5b 100644 --- a/submodules/ScreenCaptureDetection/Sources/ScreenCaptureDetection.swift +++ b/submodules/ScreenCaptureDetection/Sources/ScreenCaptureDetection.swift @@ -75,3 +75,50 @@ public func screenCaptureEvents() -> Signal { } |> runOn(Queue.mainQueue()) } + +public final class ScreenCaptureDetectionManager { + private var observer: NSObjectProtocol? + private var screenRecordingDisposable: Disposable? + private var screenRecordingCheckTimer: SwiftSignalKit.Timer? + + public init(check: @escaping () -> Bool) { + self.observer = NotificationCenter.default.addObserver(forName: UIApplication.userDidTakeScreenshotNotification, object: nil, queue: .main, using: { [weak self] _ in + guard let strongSelf = self else { + return + } + check() + }) + + self.screenRecordingDisposable = screenRecordingActive().start(next: { [weak self] value in + Queue.mainQueue().async { + guard let strongSelf = self else { + return + } + if value { + if strongSelf.screenRecordingCheckTimer == nil { + strongSelf.screenRecordingCheckTimer = SwiftSignalKit.Timer(timeout: 0.5, repeat: true, completion: { + guard let strongSelf = self else { + return + } + if check() { + strongSelf.screenRecordingCheckTimer?.invalidate() + strongSelf.screenRecordingCheckTimer = nil + } + }, queue: Queue.mainQueue()) + strongSelf.screenRecordingCheckTimer?.start() + } + } else if strongSelf.screenRecordingCheckTimer != nil { + strongSelf.screenRecordingCheckTimer?.invalidate() + strongSelf.screenRecordingCheckTimer = nil + } + } + }) + } + + deinit { + NotificationCenter.default.removeObserver(self.observer) + self.screenRecordingDisposable?.dispose() + self.screenRecordingCheckTimer?.invalidate() + self.screenRecordingCheckTimer = nil + } +} diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 80b1f3f7ad..8e92f38297 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -289,7 +289,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G private weak var sendMessageActionsController: ChatSendMessageActionSheetController? private var searchResultsController: ChatSearchResultsController? - private var screenCaptureEventsDisposable: Disposable? + private var screenCaptureManager: ScreenCaptureDetectionManager? private let chatAdditionalDataDisposable = MetaDisposable() private var reportIrrelvantGeoNoticePromise = Promise() @@ -2496,7 +2496,6 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G self.applicationInForegroundDisposable?.dispose() self.canReadHistoryDisposable?.dispose() self.networkStateDisposable?.dispose() - self.screenCaptureEventsDisposable?.dispose() self.chatAdditionalDataDisposable.dispose() self.shareStatusDisposable?.dispose() self.context.sharedContext.mediaManager.galleryHiddenMediaManager.removeTarget(self) @@ -4639,10 +4638,13 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G if !self.checkedPeerChatServiceActions { self.checkedPeerChatServiceActions = true - if case let .peer(peerId) = self.chatLocation, peerId.namespace == Namespaces.Peer.SecretChat { - self.screenCaptureEventsDisposable = screenCaptureEvents().start(next: { [weak self] _ in + if case let .peer(peerId) = self.chatLocation, peerId.namespace == Namespaces.Peer.SecretChat, self.screenCaptureManager == nil { + self.screenCaptureManager = ScreenCaptureDetectionManager(check: { [weak self] in if let strongSelf = self, strongSelf.canReadHistoryValue, strongSelf.traceVisibility() { let _ = addSecretChatMessageScreenshot(account: strongSelf.context.account, peerId: peerId).start() + return true + } else { + return false } }) }

kn!vzuH?<^Q)5X7bks%bg4_y2b-dx9cg#PW?i<)l|CV+lh^D zpul_!Tf$lwBN!RjjIw0@wHicv@`wAQ*67f?d@$ryd6^!<<}#)}x9CRMS{I;klT2vH zHESWm^KG?$K3AKcRx-1WUE1Jg2GNtO`>lhUm1<4FKaNVP!DW3b2DXs~`5dcTJF2ODpX=7U+jQ+9 zAJ%5iJIcjUJJZ#P)@mU|=8_`Y9bu-^S)MKc&vlW-4S3<5@<0(^(^b0E;i;R9EoMKu zOKFi^oOKtyb=!=7#)-h-+?Bg2bV6u7QUGoAFTG+});*Jpxa9Xz=a-Tc+|J6%%s$*l zNuugr30-=vi)GIW|bO^;|Z{{3UZ_kgwrK1!)$buR}?;CvO;CQrW8N{C{o z&}sE|?nz|lww=0l>RK+nOW-ytXp|+TrFKSy`MLoBd0! nDEJn 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 String { + public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = walletStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = walletStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) From d56ec6c1f2cb561eed126cb11e9c8277e4e8c3b6 Mon Sep 17 00:00:00 2001 From: overtake <> Date: Tue, 14 Jan 2020 16:25:56 +0400 Subject: [PATCH 18/63] mtproto memory leak bug fix [skip ci] --- submodules/MtProtoKit/MTProtoKit/MTContext.m | 2 +- submodules/MtProtoKit/MTProtoKit/MTProto.m | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/submodules/MtProtoKit/MTProtoKit/MTContext.m b/submodules/MtProtoKit/MTProtoKit/MTContext.m index e38d403363..6abb56c6a0 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTContext.m +++ b/submodules/MtProtoKit/MTProtoKit/MTContext.m @@ -1394,7 +1394,7 @@ static int32_t fixedTimeDifferenceValue = 0; NSArray *currentListeners = [[NSArray alloc] initWithArray:strongSelf->_changeListeners]; for (id listener in currentListeners) { if ([listener respondsToSelector:@selector(contextLoggedOut:)]) - [listener contextLoggedOut:self]; + [listener contextLoggedOut:strongSelf]; } } }]; diff --git a/submodules/MtProtoKit/MTProtoKit/MTProto.m b/submodules/MtProtoKit/MTProtoKit/MTProto.m index 67d8160f7d..6b4f2ce316 100644 --- a/submodules/MtProtoKit/MTProtoKit/MTProto.m +++ b/submodules/MtProtoKit/MTProtoKit/MTProto.m @@ -235,7 +235,7 @@ static const NSUInteger MTMaxUnacknowledgedMessageCount = 64; if ((_mtState & MTProtoStateStopped) == 0) { [self setMtState:_mtState | MTProtoStateStopped]; - + [_context removeChangeListener:self]; if (_transport != nil) { _transport.delegate = nil; @@ -2098,6 +2098,9 @@ static NSString *dumpHexString(NSData *data, int maxLength) { int64_t dataMessageId = 0; bool parseError = false; NSArray *parsedMessages = [self _parseIncomingMessages:decryptedData dataMessageId:&dataMessageId parseError:&parseError]; + + + for (MTIncomingMessage *message in parsedMessages) { if ([message.body isKindOfClass:[MTRpcResultMessage class]]) { MTRpcResultMessage *rpcResultMessage = message.body; @@ -2111,7 +2114,7 @@ static NSString *dumpHexString(NSData *data, int maxLength) { MTShortLog(@"[MTProto#%p@%p received AUTH_KEY_PERM_EMPTY]", self, _context); [self handleMissingKey:scheme.address]; [self requestSecureTransportReset]; - + return; } } From 66358399e5018bc491bf1e6579cfbde11f9500e0 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Tue, 14 Jan 2020 18:08:46 +0400 Subject: [PATCH 19/63] UI fixes --- Telegram-iOS/en.lproj/Localizable.strings | 8 ++++---- submodules/AvatarNode/Sources/AvatarNode.swift | 6 +++++- .../DirectionalPanGestureRecognizer.swift | 10 +++++++++- .../Sources/LegacyAttachmentMenu.swift | 8 +++++++- submodules/TelegramCore/Sources/Polls.swift | 2 +- .../ChatMessagePollBubbleContentNode.swift | 3 ++- .../OverlayPlayerControllerNode.swift | 17 +++++++++++++++-- .../TelegramUI/PollResultsController.swift | 6 +++++- 8 files changed, 48 insertions(+), 12 deletions(-) diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index 9dd93aa449..2d7372d412 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -5268,13 +5268,13 @@ Any member of this group will be able to see messages in the channel."; "PollResults.Title" = "Poll Results"; "PollResults.Collapse" = "COLLAPSE"; -"PollResults.ShowMore_1" = "Show %@ More Person"; -"PollResults.ShowMore_any" = "Show %@ More People"; +"PollResults.ShowMore_1" = "Show %@ More"; +"PollResults.ShowMore_any" = "Show %@ More"; "Conversation.StopQuiz" = "Stop Quiz"; "Conversation.StopQuizConfirmationTitle" = "If you stop this quiz now, nobody will be able to submit answers. This action cannot be undone."; "Conversation.StopQuizConfirmation" = "Stop Quiz"; "Forward.ErrorDisabledForChat" = "Sorry, you can't forward messages to this chat."; -"Forward.ErrorPublicPollDisabledInChannels" = "Sorry, you can't forward public poll to the channel."; -"Forward.ErrorPublicQuizDisabledInChannels" = "Sorry, you can't forward public quiz to the channel."; +"Forward.ErrorPublicPollDisabledInChannels" = "Sorry, public polls can’t be forwarded to channels."; +"Forward.ErrorPublicQuizDisabledInChannels" = "Sorry, public polls can’t be forwarded to channels."; diff --git a/submodules/AvatarNode/Sources/AvatarNode.swift b/submodules/AvatarNode/Sources/AvatarNode.swift index 0aa47ea55a..18f61800f6 100644 --- a/submodules/AvatarNode/Sources/AvatarNode.swift +++ b/submodules/AvatarNode/Sources/AvatarNode.swift @@ -416,7 +416,7 @@ public final class AvatarNode: ASDisplayNode { if peerId.namespace == -1 { colorIndex = -1 } else { - colorIndex = abs(Int(clamping: accountPeerId.id &+ peerId.id)) + colorIndex = abs(Int(clamping: peerId.id)) } } else { colorIndex = -1 @@ -582,6 +582,8 @@ public func drawPeerAvatarLetters(context: CGContext, size: CGSize, font: UIFont context.drawLinearGradient(gradient, start: CGPoint(), end: CGPoint(x: 0.0, y: size.height), options: CGGradientDrawingOptions()) + context.resetClip() + context.setBlendMode(.normal) let string = letters.count == 0 ? "" : (letters[0] + (letters.count == 1 ? "" : letters[1])) @@ -597,7 +599,9 @@ public func drawPeerAvatarLetters(context: CGContext, size: CGSize, font: UIFont context.scaleBy(x: 1.0, y: -1.0) context.translateBy(x: -size.width / 2.0, y: -size.height / 2.0) + let textPosition = context.textPosition context.translateBy(x: lineOrigin.x, y: lineOrigin.y) CTLineDraw(line, context) context.translateBy(x: -lineOrigin.x, y: -lineOrigin.y) + context.textPosition = textPosition } diff --git a/submodules/DirectionalPanGesture/Sources/DirectionalPanGestureRecognizer.swift b/submodules/DirectionalPanGesture/Sources/DirectionalPanGestureRecognizer.swift index 74ec8d23ca..ce7a0fc69b 100644 --- a/submodules/DirectionalPanGesture/Sources/DirectionalPanGestureRecognizer.swift +++ b/submodules/DirectionalPanGesture/Sources/DirectionalPanGestureRecognizer.swift @@ -5,6 +5,8 @@ public class DirectionalPanGestureRecognizer: UIPanGestureRecognizer { private var validatedGesture = false private var firstLocation: CGPoint = CGPoint() + public var shouldBegin: ((CGPoint) -> Bool)? + override public init(target: Any?, action: Selector?) { super.init(target: target, action: action) @@ -21,7 +23,13 @@ public class DirectionalPanGestureRecognizer: UIPanGestureRecognizer { super.touchesBegan(touches, with: event) let touch = touches.first! - self.firstLocation = touch.location(in: self.view) + let point = touch.location(in: self.view) + if let shouldBegin = self.shouldBegin, !shouldBegin(point) { + self.state = .failed + return + } + + self.firstLocation = point if let target = self.view?.hitTest(self.firstLocation, with: event) { if target == self.view { diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift index ea41559ece..f55097b4a2 100644 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift @@ -296,7 +296,13 @@ public func legacyAttachmentMenu(context: AccountContext, peer: Peer, editMediaO })! itemViews.append(locationItem) - if (peer is TelegramGroup || peer is TelegramChannel) && canSendMessagesToPeer(peer) && canSendPolls { + var peerSupportsPolls = false + if peer is TelegramGroup || peer is TelegramChannel { + peerSupportsPolls = true + } else if let user = peer as? TelegramUser, let _ = user.botInfo { + peerSupportsPolls = true + } + if peerSupportsPolls && canSendMessagesToPeer(peer) && canSendPolls { let pollItem = TGMenuSheetButtonItemView(title: presentationData.strings.AttachmentMenu_Poll, type: TGMenuSheetButtonTypeDefault, fontSize: fontSize, action: { [weak controller] in controller?.dismiss(animated: true) openPoll() diff --git a/submodules/TelegramCore/Sources/Polls.swift b/submodules/TelegramCore/Sources/Polls.swift index 81d99f3cf4..57ec6751b9 100644 --- a/submodules/TelegramCore/Sources/Polls.swift +++ b/submodules/TelegramCore/Sources/Polls.swift @@ -229,7 +229,7 @@ private final class PollResultsOptionContext { } |> mapToSignal { inputPeer -> Signal<([RenderedPeer], Int, String?), NoError> in if let inputPeer = inputPeer { - let signal = account.network.request(Api.functions.messages.getPollVotes(flags: 1 << 0, peer: inputPeer, id: messageId.id, option: Buffer(data: opaqueIdentifier), offset: nextOffset, limit: nextOffset == nil ? 10 : 50)) + let signal = account.network.request(Api.functions.messages.getPollVotes(flags: 1 << 0, peer: inputPeer, id: messageId.id, option: Buffer(data: opaqueIdentifier), offset: nextOffset, limit: nextOffset == nil ? 15 : 50)) |> map(Optional.init) |> `catch` { _ -> Signal in return .single(nil) diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index f6ede984b1..945a5f7427 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -1351,7 +1351,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { if optionNode.frame.contains(point), case .tap = gesture { if optionNode.isUserInteractionEnabled { return .ignore - } else if let result = optionNode.currentResult, let item = self.item, let option = optionNode.option { + } else if let result = optionNode.currentResult, let item = self.item, let poll = self.poll, case .public = poll.publicity, let option = optionNode.option { if !isEstimating { item.controllerInteraction.openMessagePollResults(item.message.id, option.opaqueIdentifier) return .ignore @@ -1543,6 +1543,7 @@ private final class MergedAvatarsNode: ASDisplayNode { case let .letters(peerId, letters): context.translateBy(x: currentX, y: 0.0) drawPeerAvatarLetters(context: context, size: CGSize(width: mergedImageSize, height: mergedImageSize), font: avatarFont, letters: letters, peerId: peerId) + context.translateBy(x: -currentX, y: 0.0) case let .image(reference): if let image = parameters.images[parameters.peers[i].peerId] { context.translateBy(x: imageRect.midX, y: imageRect.midY) diff --git a/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift b/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift index fb21839166..339f1da827 100644 --- a/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift @@ -259,7 +259,18 @@ final class OverlayAudioPlayerControllerNode: ViewControllerTracingNode, UIGestu panRecognizer.delegate = self panRecognizer.delaysTouchesBegan = false panRecognizer.cancelsTouchesInView = true - //self.view.addGestureRecognizer(panRecognizer) + panRecognizer.shouldBegin = { [weak self] point in + guard let strongSelf = self else { + return false + } + if strongSelf.controlsNode.bounds.contains(strongSelf.view.convert(point, to: strongSelf.controlsNode.view)) { + if strongSelf.controlsNode.frame.maxY <= strongSelf.historyNode.frame.minY { + return true + } + } + return false + } + self.view.addGestureRecognizer(panRecognizer) } func updatePresentationData(_ presentationData: PresentationData) { @@ -325,7 +336,9 @@ final class OverlayAudioPlayerControllerNode: ViewControllerTracingNode, UIGestu if self.controlsNode.bounds.contains(self.view.convert(point, to: self.controlsNode.view)) { let controlsHitTest = self.controlsNode.view.hitTest(self.view.convert(point, to: self.controlsNode.view), with: event) if controlsHitTest == nil { - return self.historyNode.view + if self.controlsNode.frame.maxY > self.historyNode.frame.minY { + return self.historyNode.view + } } } diff --git a/submodules/TelegramUI/TelegramUI/PollResultsController.swift b/submodules/TelegramUI/TelegramUI/PollResultsController.swift index 3036a9833d..55c3729a44 100644 --- a/submodules/TelegramUI/TelegramUI/PollResultsController.swift +++ b/submodules/TelegramUI/TelegramUI/PollResultsController.swift @@ -322,13 +322,17 @@ public func pollResultsController(context: AccountContext, messageId: MessageId, var initialScrollToItem: ListViewScrollToItem? if let focusOnOptionWithOpaqueIdentifier = focusOnOptionWithOpaqueIdentifier, previousWasEmptyValue == nil { + var isFirstOption = true loop: for i in 0 ..< entries.count { switch entries[i] { case let .optionPeer(optionPeer): if optionPeer.opaqueIdentifier == focusOnOptionWithOpaqueIdentifier { - initialScrollToItem = ListViewScrollToItem(index: i, position: .top(0.0), animated: false, curve: .Default(duration: nil), directionHint: .Down) + if !isFirstOption { + initialScrollToItem = ListViewScrollToItem(index: i, position: .top(0.0), animated: false, curve: .Default(duration: nil), directionHint: .Down) + } break loop } + isFirstOption = false default: break } From aeb0ded0cdccd661339ba342a39667877e2ef214 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Tue, 14 Jan 2020 19:09:40 +0300 Subject: [PATCH 20/63] Fixes --- .../PrivacyAndSecurityController.swift | 9 ++++++- .../Sources/SettingsController.swift | 2 +- .../Themes/ThemeAccentColorController.swift | 3 +-- .../Sources/PresentationThemeCodable.swift | 1 - .../Sources/WallpaperResources.swift | 27 ++++++++++--------- 5 files changed, 24 insertions(+), 18 deletions(-) diff --git a/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift b/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift index 99a2f3dbd2..6e741d6517 100644 --- a/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift +++ b/submodules/SettingsUI/Sources/Privacy and Security/PrivacyAndSecurityController.swift @@ -482,12 +482,19 @@ public func privacyAndSecurityController(context: AccountContext, initialSetting let updateHasTwoStepAuth: () -> Void = { let signal = twoStepVerificationConfiguration(account: context.account) |> map { value -> TwoStepVerificationAccessConfiguration? in - return TwoStepVerificationAccessConfiguration(configuration: value, password: nil) + return TwoStepVerificationAccessConfiguration(configuration: value, password: nil) } |> deliverOnMainQueue updateTwoStepAuthDisposable.set( signal.start(next: { value in twoStepAuthDataValue.set(.single(value)) + if let value = value { + if case .set = value { + updatedHasTwoStepAuth?(true) + } else { + updatedHasTwoStepAuth?(false) + } + } }) ) } diff --git a/submodules/SettingsUI/Sources/SettingsController.swift b/submodules/SettingsUI/Sources/SettingsController.swift index b7997b90cd..280b6055f8 100644 --- a/submodules/SettingsUI/Sources/SettingsController.swift +++ b/submodules/SettingsUI/Sources/SettingsController.swift @@ -945,7 +945,7 @@ public func settingsController(context: AccountContext, accountManager: AccountM blockedPeers.set(.single(blockedPeersContext)) }, updatedHasTwoStepAuth: { hasTwoStepAuthValue in hasTwoStepAuthPromise.set(.single(hasTwoStepAuthValue)) - }, activeSessionsContext: activeSessionsContext, webSessionsContext: webSessionsContext, blockedPeersContext: blockedPeersContext)) + }, activeSessionsContext: activeSessionsContext, webSessionsContext: webSessionsContext, blockedPeersContext: blockedPeersContext, hasTwoStepAuth: hasTwoStepAuth)) }) }) }, openDataAndStorage: { diff --git a/submodules/SettingsUI/Sources/Themes/ThemeAccentColorController.swift b/submodules/SettingsUI/Sources/Themes/ThemeAccentColorController.swift index af8fd96d9f..503d9005d3 100644 --- a/submodules/SettingsUI/Sources/Themes/ThemeAccentColorController.swift +++ b/submodules/SettingsUI/Sources/Themes/ThemeAccentColorController.swift @@ -443,8 +443,7 @@ final class ThemeAccentColorController: ViewController { var defaultPatternWallpaper: TelegramWallpaper? for wallpaper in wallpapers { - //JqSUrO0-mFIBAAAAWwTvLzoWGQI, 25 - if case let .file(file) = wallpaper, file.slug == "-Xc-np9y2VMCAAAARKr0yNNPYW0" { + if case let .file(file) = wallpaper, file.slug == "JqSUrO0-mFIBAAAAWwTvLzoWGQI" { defaultPatternWallpaper = wallpaper break } diff --git a/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift b/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift index d470ce403f..d1417a3398 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationThemeCodable.swift @@ -55,7 +55,6 @@ extension TelegramWallpaper: Codable { } if components.count >= 2 && components.count <= 5 && [6, 8].contains(components[0].count) && !optionKeys.contains(components[0]) && [6, 8].contains(components[1].count) && !optionKeys.contains(components[1]), let topColor = UIColor(hexString: components[0]), let bottomColor = UIColor(hexString: components[1]) { - var rotation: Int32? if components.count > 2, components[2].count <= 3, let value = Int32(components[2]) { if value >= 0 && value < 360 { diff --git a/submodules/WallpaperResources/Sources/WallpaperResources.swift b/submodules/WallpaperResources/Sources/WallpaperResources.swift index fda30d573b..0c39b08129 100644 --- a/submodules/WallpaperResources/Sources/WallpaperResources.swift +++ b/submodules/WallpaperResources/Sources/WallpaperResources.swift @@ -429,17 +429,7 @@ public func patternWallpaperImageInternal(thumbnailData: Data?, fullSizeData: Da var scale = scale let drawingRect = arguments.drawingRect - var fittedSize = arguments.imageSize - if abs(fittedSize.width - arguments.boundingSize.width).isLessThanOrEqualTo(CGFloat(1.0)) { - fittedSize.width = arguments.boundingSize.width - } - if abs(fittedSize.height - arguments.boundingSize.height).isLessThanOrEqualTo(CGFloat(1.0)) { - fittedSize.height = arguments.boundingSize.height - } - fittedSize = fittedSize.aspectFilled(arguments.drawingRect.size) - - let fittedRect = CGRect(origin: CGPoint(x: drawingRect.origin.x + (drawingRect.size.width - fittedSize.width) / 2.0, y: drawingRect.origin.y + (drawingRect.size.height - fittedSize.height) / 2.0), size: fittedSize) - + if let customArguments = arguments.custom as? PatternWallpaperArguments, let combinedColor = customArguments.colors.first { if customArguments.preview { scale = max(1.0, UIScreenScale - 1.0) @@ -479,6 +469,17 @@ public func patternWallpaperImageInternal(thumbnailData: Data?, fullSizeData: Da let image = customArguments.preview ? (scaledSizeImage ?? fullSizeImage) : fullSizeImage if let image = image { + var fittedSize = CGSize(width: image.width, height: image.height) + if abs(fittedSize.width - arguments.boundingSize.width).isLessThanOrEqualTo(CGFloat(1.0)) { + fittedSize.width = arguments.boundingSize.width + } + if abs(fittedSize.height - arguments.boundingSize.height).isLessThanOrEqualTo(CGFloat(1.0)) { + fittedSize.height = arguments.boundingSize.height + } + fittedSize = fittedSize.aspectFilled(arguments.drawingRect.size) + + let fittedRect = CGRect(origin: CGPoint(x: drawingRect.origin.x + (drawingRect.size.width - fittedSize.width) / 2.0, y: drawingRect.origin.y + (drawingRect.size.height - fittedSize.height) / 2.0), size: fittedSize) + c.setBlendMode(.normal) c.interpolationQuality = customArguments.preview ? .low : .medium c.clip(to: fittedRect, mask: image) @@ -538,7 +539,7 @@ public func solidColorImage(_ color: UIColor) -> Signal<(TransformImageArguments let context = DrawingContext(size: arguments.drawingSize, clear: true) context.withFlippedContext { c in - c.setFillColor(color.cgColor) + c.setFillColor(color.withAlphaComponent(1.0).cgColor) c.fill(arguments.drawingRect) } @@ -563,7 +564,7 @@ public func gradientImage(_ colors: [UIColor], rotation: Int32? = nil) -> Signal let context = DrawingContext(size: arguments.drawingSize, clear: !arguments.corners.isEmpty) context.withContext { c in - let gradientColors = colors.map { $0.cgColor } as CFArray + let gradientColors = colors.map { $0.withAlphaComponent(1.0).cgColor } as CFArray let delta: CGFloat = 1.0 / (CGFloat(colors.count) - 1.0) var locations: [CGFloat] = [] From 64b59feaea02c0aa5fd77106ae5f4a7b34b7517c Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 15 Jan 2020 00:09:14 +0400 Subject: [PATCH 21/63] Animation test --- .../TelegramUI/TelegramUI/ChatController.swift | 2 +- .../TelegramUI/TelegramUI/ConfettiView.swift | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index a3e2fb0e5f..3eee682636 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -1559,7 +1559,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } return; } - if false { + if true { if strongSelf.selectPollOptionFeedback == nil { strongSelf.selectPollOptionFeedback = HapticFeedback() } diff --git a/submodules/TelegramUI/TelegramUI/ConfettiView.swift b/submodules/TelegramUI/TelegramUI/ConfettiView.swift index ed26b4d618..2e23c6cd28 100644 --- a/submodules/TelegramUI/TelegramUI/ConfettiView.swift +++ b/submodules/TelegramUI/TelegramUI/ConfettiView.swift @@ -80,7 +80,7 @@ final class ConfettiView: UIView { let originXRange = 0 ..< Int(frame.width) let originYRange = Int(-frame.height) ..< Int(0) - let topMassRange: Range = 20.0 ..< 30.0 + let topMassRange: Range = 40.0 ..< 50.0 let velocityYRange = Float(3.0) ..< Float(5.0) let angularVelocityRange = Float(1.0) ..< Float(6.0) let sizeVariation = Float(0.8) ..< Float(1.6) @@ -93,15 +93,15 @@ final class ConfettiView: UIView { self.layer.addSublayer(particle) } - let sideMassRange: Range = 80.0 ..< 90.0 + let sideMassRange: Range = 100.0 ..< 110.0 let sideOriginYBase: Float = Float(frame.size.height * 8.5 / 10.0) let sideOriginYVariation: Float = Float(frame.size.height / 12.0) let sideOriginYRange = Float(sideOriginYBase - sideOriginYVariation) ..< Float(sideOriginYBase + sideOriginYVariation) let sideOriginXRange = Float(0.0) ..< Float(100.0) let sideOriginVelocityValueRange = Float(1.1) ..< Float(1.6) - let sideOriginVelocityValueScaling: Float = 900.0 - let sideOriginVelocityBase: Float = Float.pi / 2.0 + atanf(Float(CGFloat(sideOriginYBase) / (frame.size.width * 0.5))) - let sideOriginVelocityVariation: Float = 0.25 + let sideOriginVelocityValueScaling: Float = 1200.0 + let sideOriginVelocityBase: Float = Float.pi / 2.0 + atanf(Float(CGFloat(sideOriginYBase) / (frame.size.width * 0.8))) + let sideOriginVelocityVariation: Float = 0.2 let sideOriginVelocityAngleRange = Float(sideOriginVelocityBase - sideOriginVelocityVariation) ..< Float(sideOriginVelocityBase + sideOriginVelocityVariation) for sideIndex in 0 ..< 2 { @@ -142,14 +142,14 @@ final class ConfettiView: UIView { let currentTime = self.localTime let dt: Float = 1.0 / 60.0 let slowdownDt: Float - let slowdownStart: Float = 0.2 - let slowdownDuration: Float = 1.0 + let slowdownStart: Float = 0.27 + let slowdownDuration: Float = 0.9 let damping: Float if currentTime >= slowdownStart && currentTime <= slowdownStart + slowdownDuration { let slowdownTimestamp: Float = currentTime - slowdownStart let slowdownRampInDuration: Float = 0.15 - let slowdownRampOutDuration: Float = 0.6 + let slowdownRampOutDuration: Float = 0.5 let slowdownTransition: Float if slowdownTimestamp < slowdownRampInDuration { slowdownTransition = slowdownTimestamp / slowdownRampInDuration @@ -162,7 +162,7 @@ final class ConfettiView: UIView { let slowdownFactor: Float = 0.3 * slowdownTransition + 1.0 * (1.0 - slowdownTransition) slowdownDt = dt * slowdownFactor - let dampingFactor: Float = 0.97 * slowdownTransition + 1.0 * (1.0 - slowdownTransition) + let dampingFactor: Float = 0.94 * slowdownTransition + 1.0 * (1.0 - slowdownTransition) damping = dampingFactor } else { slowdownDt = dt From ddb4ce5cf21ca4c55942930828a74b8aa0d535ff Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 15 Jan 2020 00:39:41 +0400 Subject: [PATCH 22/63] Support poll creation button --- .../Sources/CreatePollController.swift | 26 ++++--- .../Sources/ReplyMarkupMessageAttribute.swift | 58 ++++++++------- submodules/TelegramApi/Sources/Api0.swift | 1 + submodules/TelegramApi/Sources/Api1.swift | 30 ++++++++ .../Sources/ReplyMarkupMessageAttribute.swift | 9 +++ .../ChatButtonKeyboardInputNode.swift | 2 + .../TelegramUI/ChatController.swift | 9 ++- .../ChatControllerInteraction.swift | 5 +- .../TelegramUI/ChatMessageItemView.swift | 2 + .../ChatRecentActionsControllerNode.swift | 1 + .../OverlayPlayerControllerNode.swift | 1 + .../PeerMediaCollectionController.swift | 1 + .../TelegramUI/SharedAccountContext.swift | 71 ++++++++++--------- 13 files changed, 146 insertions(+), 70 deletions(-) diff --git a/submodules/ComposePollUI/Sources/CreatePollController.swift b/submodules/ComposePollUI/Sources/CreatePollController.swift index 73e9e6a5c4..31489d4a22 100644 --- a/submodules/ComposePollUI/Sources/CreatePollController.swift +++ b/submodules/ComposePollUI/Sources/CreatePollController.swift @@ -372,7 +372,7 @@ private struct CreatePollControllerState: Equatable { var isQuiz: Bool = false } -private func createPollControllerEntries(presentationData: PresentationData, peer: Peer, state: CreatePollControllerState, limitsConfiguration: LimitsConfiguration) -> [CreatePollEntry] { +private func createPollControllerEntries(presentationData: PresentationData, peer: Peer, state: CreatePollControllerState, limitsConfiguration: LimitsConfiguration, defaultIsQuiz: Bool?) -> [CreatePollEntry] { var entries: [CreatePollEntry] = [] var textLimitText = ItemListSectionHeaderAccessoryText(value: "", color: .generic) @@ -403,16 +403,26 @@ private func createPollControllerEntries(presentationData: PresentationData, pee if canBePublic { entries.append(.anonymousVotes(presentationData.strings.CreatePoll_Anonymous, state.isAnonymous)) } - entries.append(.multipleChoice(presentationData.strings.CreatePoll_MultipleChoice, state.isMultipleChoice && !state.isQuiz, !state.isQuiz)) - entries.append(.quiz(presentationData.strings.CreatePoll_Quiz, state.isQuiz)) - entries.append(.quizInfo(presentationData.strings.CreatePoll_QuizInfo)) + if let defaultIsQuiz = defaultIsQuiz { + if !defaultIsQuiz { + entries.append(.multipleChoice(presentationData.strings.CreatePoll_MultipleChoice, state.isMultipleChoice && !state.isQuiz, !state.isQuiz)) + } + } else { + entries.append(.multipleChoice(presentationData.strings.CreatePoll_MultipleChoice, state.isMultipleChoice && !state.isQuiz, !state.isQuiz)) + entries.append(.quiz(presentationData.strings.CreatePoll_Quiz, state.isQuiz)) + entries.append(.quizInfo(presentationData.strings.CreatePoll_QuizInfo)) + } return entries } -public func createPollController(context: AccountContext, peer: Peer, completion: @escaping (EnqueueMessage) -> Void) -> ViewController { - let statePromise = ValuePromise(CreatePollControllerState(), ignoreRepeated: true) - let stateValue = Atomic(value: CreatePollControllerState()) +public func createPollController(context: AccountContext, peer: Peer, isQuiz: Bool? = nil, completion: @escaping (EnqueueMessage) -> Void) -> ViewController { + var initialState = CreatePollControllerState() + if let isQuiz = isQuiz { + initialState.isQuiz = isQuiz + } + let statePromise = ValuePromise(initialState, ignoreRepeated: true) + let stateValue = Atomic(value: initialState) let updateState: ((CreatePollControllerState) -> CreatePollControllerState) -> Void = { f in statePromise.set(stateValue.modify { f($0) }) } @@ -739,7 +749,7 @@ public func createPollController(context: AccountContext, peer: Peer, completion } let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(presentationData.strings.CreatePoll_Title), leftNavigationButton: leftNavigationButton, rightNavigationButton: rightNavigationButton, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) - let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: createPollControllerEntries(presentationData: presentationData, peer: peer, state: state, limitsConfiguration: limitsConfiguration), style: .blocks, focusItemTag: focusItemTag, ensureVisibleItemTag: ensureVisibleItemTag, animateChanges: previousIds != nil) + let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: createPollControllerEntries(presentationData: presentationData, peer: peer, state: state, limitsConfiguration: limitsConfiguration, defaultIsQuiz: isQuiz), style: .blocks, focusItemTag: focusItemTag, ensureVisibleItemTag: ensureVisibleItemTag, animateChanges: previousIds != nil) return (controllerState, (listState, arguments)) } diff --git a/submodules/SyncCore/Sources/ReplyMarkupMessageAttribute.swift b/submodules/SyncCore/Sources/ReplyMarkupMessageAttribute.swift index 6cebd304fc..c72fdced40 100644 --- a/submodules/SyncCore/Sources/ReplyMarkupMessageAttribute.swift +++ b/submodules/SyncCore/Sources/ReplyMarkupMessageAttribute.swift @@ -10,6 +10,7 @@ public enum ReplyMarkupButtonAction: PostboxCoding, Equatable { case openWebApp case payment case urlAuth(url: String, buttonId: Int32) + case setupPoll(isQuiz: Bool?) public init(decoder: PostboxDecoder) { switch decoder.decodeInt32ForKey("v", orElse: 0) { @@ -31,6 +32,8 @@ public enum ReplyMarkupButtonAction: PostboxCoding, Equatable { self = .payment case 8: self = .urlAuth(url: decoder.decodeStringForKey("u", orElse: ""), buttonId: decoder.decodeInt32ForKey("b", orElse: 0)) + case 9: + self = .setupPoll(isQuiz: decoder.decodeOptionalInt32ForKey("isq").flatMap { $0 != 0 }) default: self = .text } @@ -38,30 +41,37 @@ public enum ReplyMarkupButtonAction: PostboxCoding, Equatable { public func encode(_ encoder: PostboxEncoder) { switch self { - case .text: - encoder.encodeInt32(0, forKey: "v") - case let .url(url): - encoder.encodeInt32(1, forKey: "v") - encoder.encodeString(url, forKey: "u") - case let .callback(data): - encoder.encodeInt32(2, forKey: "v") - encoder.encodeBytes(data, forKey: "d") - case .requestPhone: - encoder.encodeInt32(3, forKey: "v") - case .requestMap: - encoder.encodeInt32(4, forKey: "v") - case let .switchInline(samePeer, query): - encoder.encodeInt32(5, forKey: "v") - encoder.encodeInt32(samePeer ? 1 : 0, forKey: "s") - encoder.encodeString(query, forKey: "q") - case .openWebApp: - encoder.encodeInt32(6, forKey: "v") - case .payment: - encoder.encodeInt32(7, forKey: "v") - case let .urlAuth(url, buttonId): - encoder.encodeInt32(8, forKey: "v") - encoder.encodeString(url, forKey: "u") - encoder.encodeInt32(buttonId, forKey: "b") + case .text: + encoder.encodeInt32(0, forKey: "v") + case let .url(url): + encoder.encodeInt32(1, forKey: "v") + encoder.encodeString(url, forKey: "u") + case let .callback(data): + encoder.encodeInt32(2, forKey: "v") + encoder.encodeBytes(data, forKey: "d") + case .requestPhone: + encoder.encodeInt32(3, forKey: "v") + case .requestMap: + encoder.encodeInt32(4, forKey: "v") + case let .switchInline(samePeer, query): + encoder.encodeInt32(5, forKey: "v") + encoder.encodeInt32(samePeer ? 1 : 0, forKey: "s") + encoder.encodeString(query, forKey: "q") + case .openWebApp: + encoder.encodeInt32(6, forKey: "v") + case .payment: + encoder.encodeInt32(7, forKey: "v") + case let .urlAuth(url, buttonId): + encoder.encodeInt32(8, forKey: "v") + encoder.encodeString(url, forKey: "u") + encoder.encodeInt32(buttonId, forKey: "b") + case let .setupPoll(isQuiz): + encoder.encodeInt32(9, forKey: "v") + if let isQuiz = isQuiz { + encoder.encodeInt32(isQuiz ? 1 : 0, forKey: "isq") + } else { + encoder.encodeNil(forKey: "isq") + } } } } diff --git a/submodules/TelegramApi/Sources/Api0.swift b/submodules/TelegramApi/Sources/Api0.swift index 2108ef81ca..ab2f4a7b7b 100644 --- a/submodules/TelegramApi/Sources/Api0.swift +++ b/submodules/TelegramApi/Sources/Api0.swift @@ -273,6 +273,7 @@ fileprivate let parsers: [Int32 : (BufferReader) -> Any?] = { dict[-1344716869] = { return Api.KeyboardButton.parse_keyboardButtonBuy($0) } dict[280464681] = { return Api.KeyboardButton.parse_keyboardButtonUrlAuth($0) } dict[-802258988] = { return Api.KeyboardButton.parse_inputKeyboardButtonUrlAuth($0) } + dict[-1144565411] = { return Api.KeyboardButton.parse_keyboardButtonRequestPoll($0) } dict[-748155807] = { return Api.ContactStatus.parse_contactStatus($0) } dict[1679398724] = { return Api.SecureFile.parse_secureFileEmpty($0) } dict[-534283678] = { return Api.SecureFile.parse_secureFile($0) } diff --git a/submodules/TelegramApi/Sources/Api1.swift b/submodules/TelegramApi/Sources/Api1.swift index 835d0f96dc..9e6d38f6d1 100644 --- a/submodules/TelegramApi/Sources/Api1.swift +++ b/submodules/TelegramApi/Sources/Api1.swift @@ -8428,6 +8428,7 @@ public extension Api { case keyboardButtonBuy(text: String) case keyboardButtonUrlAuth(flags: Int32, text: String, fwdText: String?, url: String, buttonId: Int32) case inputKeyboardButtonUrlAuth(flags: Int32, text: String, fwdText: String?, url: String, bot: Api.InputUser) + case keyboardButtonRequestPoll(flags: Int32, quiz: Api.Bool?, text: String) public func serialize(_ buffer: Buffer, _ boxed: Swift.Bool) { switch self { @@ -8503,6 +8504,14 @@ public extension Api { serializeString(url, buffer: buffer, boxed: false) bot.serialize(buffer, true) break + case .keyboardButtonRequestPoll(let flags, let quiz, let text): + if boxed { + buffer.appendInt32(-1144565411) + } + serializeInt32(flags, buffer: buffer, boxed: false) + if Int(flags) & Int(1 << 0) != 0 {quiz!.serialize(buffer, true)} + serializeString(text, buffer: buffer, boxed: false) + break } } @@ -8528,6 +8537,8 @@ public extension Api { return ("keyboardButtonUrlAuth", [("flags", flags), ("text", text), ("fwdText", fwdText), ("url", url), ("buttonId", buttonId)]) case .inputKeyboardButtonUrlAuth(let flags, let text, let fwdText, let url, let bot): return ("inputKeyboardButtonUrlAuth", [("flags", flags), ("text", text), ("fwdText", fwdText), ("url", url), ("bot", bot)]) + case .keyboardButtonRequestPoll(let flags, let quiz, let text): + return ("keyboardButtonRequestPoll", [("flags", flags), ("quiz", quiz), ("text", text)]) } } @@ -8679,6 +8690,25 @@ public extension Api { return nil } } + public static func parse_keyboardButtonRequestPoll(_ reader: BufferReader) -> KeyboardButton? { + var _1: Int32? + _1 = reader.readInt32() + var _2: Api.Bool? + if Int(_1!) & Int(1 << 0) != 0 {if let signature = reader.readInt32() { + _2 = Api.parse(reader, signature: signature) as? Api.Bool + } } + var _3: String? + _3 = parseString(reader) + let _c1 = _1 != nil + let _c2 = (Int(_1!) & Int(1 << 0) == 0) || _2 != nil + let _c3 = _3 != nil + if _c1 && _c2 && _c3 { + return Api.KeyboardButton.keyboardButtonRequestPoll(flags: _1!, quiz: _2, text: _3!) + } + else { + return nil + } + } } public enum ContactStatus: TypeConstructorDescription { diff --git a/submodules/TelegramCore/Sources/ReplyMarkupMessageAttribute.swift b/submodules/TelegramCore/Sources/ReplyMarkupMessageAttribute.swift index cf364c8429..587ee1be42 100644 --- a/submodules/TelegramCore/Sources/ReplyMarkupMessageAttribute.swift +++ b/submodules/TelegramCore/Sources/ReplyMarkupMessageAttribute.swift @@ -30,6 +30,15 @@ extension ReplyMarkupButton { self.init(title: text, titleWhenForwarded: fwdText, action: .urlAuth(url: url, buttonId: buttonId)) case let .inputKeyboardButtonUrlAuth(_, text, fwdText, url, _): self.init(title: text, titleWhenForwarded: fwdText, action: .urlAuth(url: url, buttonId: 0)) + case let .keyboardButtonRequestPoll(_, quiz, text): + var isQuiz: Bool? = quiz.flatMap { quiz in + if case .boolTrue = quiz { + return true + } else { + return false + } + } + self.init(title: text, titleWhenForwarded: nil, action: .setupPoll(isQuiz: isQuiz)) } } } diff --git a/submodules/TelegramUI/TelegramUI/ChatButtonKeyboardInputNode.swift b/submodules/TelegramUI/TelegramUI/ChatButtonKeyboardInputNode.swift index 7fac23527b..d5ae6da4f6 100644 --- a/submodules/TelegramUI/TelegramUI/ChatButtonKeyboardInputNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatButtonKeyboardInputNode.swift @@ -211,6 +211,8 @@ final class ChatButtonKeyboardInputNode: ChatInputNode { if let message = self.message { self.controllerInteraction.requestMessageActionUrlAuth(url, message.id, buttonId) } + case let .setupPoll(isQuiz): + self.controllerInteraction.openPollCreation(isQuiz) } if dismissIfOnce { if let message = self.message { diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 3eee682636..87d803c0f3 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -1852,6 +1852,11 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } } }) + }, openPollCreation: { [weak self] isQuiz in + guard let strongSelf = self else { + return + } + strongSelf.presentPollCreation(isQuiz: isQuiz) }, requestMessageUpdate: { [weak self] id in if let strongSelf = self { strongSelf.chatDisplayNode.historyNode.requestMessageUpdate(id) @@ -6115,9 +6120,9 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G })) } - private func presentPollCreation() { + private func presentPollCreation(isQuiz: Bool? = nil) { if case .peer = self.chatLocation, let peer = self.presentationInterfaceState.renderedPeer?.peer { - self.effectiveNavigationController?.pushViewController(createPollController(context: self.context, peer: peer, completion: { [weak self] message in + self.effectiveNavigationController?.pushViewController(createPollController(context: self.context, peer: peer, isQuiz: isQuiz, completion: { [weak self] message in guard let strongSelf = self else { return } diff --git a/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift b/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift index 4200538cf5..fdae414c0a 100644 --- a/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift +++ b/submodules/TelegramUI/TelegramUI/ChatControllerInteraction.swift @@ -105,6 +105,7 @@ public final class ChatControllerInteraction { let displaySwipeToReplyHint: () -> Void let dismissReplyMarkupMessage: (Message) -> Void let openMessagePollResults: (MessageId, Data) -> Void + let openPollCreation: (Bool?) -> Void let requestMessageUpdate: (MessageId) -> Void let cancelInteractiveKeyboardGestures: () -> Void @@ -119,7 +120,7 @@ public final class ChatControllerInteraction { var searchTextHighightState: (String, [MessageIndex])? var seenOneTimeAnimatedMedia = Set() - init(openMessage: @escaping (Message, ChatControllerInteractionOpenMessageMode) -> Bool, openPeer: @escaping (PeerId?, ChatControllerInteractionNavigateToPeer, Message?) -> Void, openPeerMention: @escaping (String) -> Void, openMessageContextMenu: @escaping (Message, Bool, ASDisplayNode, CGRect, TapLongTapOrDoubleTapGestureRecognizer?) -> Void, openMessageContextActions: @escaping (Message, ASDisplayNode, CGRect, ContextGesture?) -> Void, navigateToMessage: @escaping (MessageId, MessageId) -> Void, tapMessage: ((Message) -> Void)?, clickThroughMessage: @escaping () -> Void, toggleMessagesSelection: @escaping ([MessageId], Bool) -> Void, sendCurrentMessage: @escaping (Bool) -> Void, sendMessage: @escaping (String) -> Void, sendSticker: @escaping (FileMediaReference, Bool, ASDisplayNode, CGRect) -> Bool, sendGif: @escaping (FileMediaReference, ASDisplayNode, CGRect) -> Bool, requestMessageActionCallback: @escaping (MessageId, MemoryBuffer?, Bool) -> Void, requestMessageActionUrlAuth: @escaping (String, MessageId, Int32) -> Void, activateSwitchInline: @escaping (PeerId?, String) -> Void, openUrl: @escaping (String, Bool, Bool?, Message?) -> Void, shareCurrentLocation: @escaping () -> Void, shareAccountContact: @escaping () -> Void, sendBotCommand: @escaping (MessageId?, String) -> Void, openInstantPage: @escaping (Message, ChatMessageItemAssociatedData?) -> Void, openWallpaper: @escaping (Message) -> Void, openTheme: @escaping (Message) -> Void, openHashtag: @escaping (String?, String) -> Void, updateInputState: @escaping ((ChatTextInputState) -> ChatTextInputState) -> Void, updateInputMode: @escaping ((ChatInputMode) -> ChatInputMode) -> Void, openMessageShareMenu: @escaping (MessageId) -> Void, presentController: @escaping (ViewController, Any?) -> Void, navigationController: @escaping () -> NavigationController?, chatControllerNode: @escaping () -> ASDisplayNode?, reactionContainerNode: @escaping () -> ReactionSelectionParentNode?, presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void, callPeer: @escaping (PeerId) -> Void, longTap: @escaping (ChatControllerInteractionLongTapAction, Message?) -> Void, openCheckoutOrReceipt: @escaping (MessageId) -> Void, openSearch: @escaping () -> Void, setupReply: @escaping (MessageId) -> Void, canSetupReply: @escaping (Message) -> Bool, navigateToFirstDateMessage: @escaping(Int32) ->Void, requestRedeliveryOfFailedMessages: @escaping (MessageId) -> Void, addContact: @escaping (String) -> Void, rateCall: @escaping (Message, CallId) -> Void, requestSelectMessagePollOptions: @escaping (MessageId, [Data]) -> Void, requestOpenMessagePollResults: @escaping (MessageId, MediaId) -> Void, openAppStorePage: @escaping () -> Void, displayMessageTooltip: @escaping (MessageId, String, ASDisplayNode?, CGRect?) -> Void, seekToTimecode: @escaping (Message, Double, Bool) -> Void, scheduleCurrentMessage: @escaping () -> Void, sendScheduledMessagesNow: @escaping ([MessageId]) -> Void, editScheduledMessagesTime: @escaping ([MessageId]) -> Void, performTextSelectionAction: @escaping (UInt32, String, TextSelectionAction) -> Void, updateMessageReaction: @escaping (MessageId, String?) -> Void, openMessageReactions: @escaping (MessageId) -> Void, displaySwipeToReplyHint: @escaping () -> Void, dismissReplyMarkupMessage: @escaping (Message) -> Void, openMessagePollResults: @escaping (MessageId, Data) -> Void, requestMessageUpdate: @escaping (MessageId) -> Void, cancelInteractiveKeyboardGestures: @escaping () -> Void, automaticMediaDownloadSettings: MediaAutoDownloadSettings, pollActionState: ChatInterfacePollActionState, stickerSettings: ChatInterfaceStickerSettings) { + init(openMessage: @escaping (Message, ChatControllerInteractionOpenMessageMode) -> Bool, openPeer: @escaping (PeerId?, ChatControllerInteractionNavigateToPeer, Message?) -> Void, openPeerMention: @escaping (String) -> Void, openMessageContextMenu: @escaping (Message, Bool, ASDisplayNode, CGRect, TapLongTapOrDoubleTapGestureRecognizer?) -> Void, openMessageContextActions: @escaping (Message, ASDisplayNode, CGRect, ContextGesture?) -> Void, navigateToMessage: @escaping (MessageId, MessageId) -> Void, tapMessage: ((Message) -> Void)?, clickThroughMessage: @escaping () -> Void, toggleMessagesSelection: @escaping ([MessageId], Bool) -> Void, sendCurrentMessage: @escaping (Bool) -> Void, sendMessage: @escaping (String) -> Void, sendSticker: @escaping (FileMediaReference, Bool, ASDisplayNode, CGRect) -> Bool, sendGif: @escaping (FileMediaReference, ASDisplayNode, CGRect) -> Bool, requestMessageActionCallback: @escaping (MessageId, MemoryBuffer?, Bool) -> Void, requestMessageActionUrlAuth: @escaping (String, MessageId, Int32) -> Void, activateSwitchInline: @escaping (PeerId?, String) -> Void, openUrl: @escaping (String, Bool, Bool?, Message?) -> Void, shareCurrentLocation: @escaping () -> Void, shareAccountContact: @escaping () -> Void, sendBotCommand: @escaping (MessageId?, String) -> Void, openInstantPage: @escaping (Message, ChatMessageItemAssociatedData?) -> Void, openWallpaper: @escaping (Message) -> Void, openTheme: @escaping (Message) -> Void, openHashtag: @escaping (String?, String) -> Void, updateInputState: @escaping ((ChatTextInputState) -> ChatTextInputState) -> Void, updateInputMode: @escaping ((ChatInputMode) -> ChatInputMode) -> Void, openMessageShareMenu: @escaping (MessageId) -> Void, presentController: @escaping (ViewController, Any?) -> Void, navigationController: @escaping () -> NavigationController?, chatControllerNode: @escaping () -> ASDisplayNode?, reactionContainerNode: @escaping () -> ReactionSelectionParentNode?, presentGlobalOverlayController: @escaping (ViewController, Any?) -> Void, callPeer: @escaping (PeerId) -> Void, longTap: @escaping (ChatControllerInteractionLongTapAction, Message?) -> Void, openCheckoutOrReceipt: @escaping (MessageId) -> Void, openSearch: @escaping () -> Void, setupReply: @escaping (MessageId) -> Void, canSetupReply: @escaping (Message) -> Bool, navigateToFirstDateMessage: @escaping(Int32) ->Void, requestRedeliveryOfFailedMessages: @escaping (MessageId) -> Void, addContact: @escaping (String) -> Void, rateCall: @escaping (Message, CallId) -> Void, requestSelectMessagePollOptions: @escaping (MessageId, [Data]) -> Void, requestOpenMessagePollResults: @escaping (MessageId, MediaId) -> Void, openAppStorePage: @escaping () -> Void, displayMessageTooltip: @escaping (MessageId, String, ASDisplayNode?, CGRect?) -> Void, seekToTimecode: @escaping (Message, Double, Bool) -> Void, scheduleCurrentMessage: @escaping () -> Void, sendScheduledMessagesNow: @escaping ([MessageId]) -> Void, editScheduledMessagesTime: @escaping ([MessageId]) -> Void, performTextSelectionAction: @escaping (UInt32, String, TextSelectionAction) -> Void, updateMessageReaction: @escaping (MessageId, String?) -> Void, openMessageReactions: @escaping (MessageId) -> Void, displaySwipeToReplyHint: @escaping () -> Void, dismissReplyMarkupMessage: @escaping (Message) -> Void, openMessagePollResults: @escaping (MessageId, Data) -> Void, openPollCreation: @escaping (Bool?) -> Void, requestMessageUpdate: @escaping (MessageId) -> Void, cancelInteractiveKeyboardGestures: @escaping () -> Void, automaticMediaDownloadSettings: MediaAutoDownloadSettings, pollActionState: ChatInterfacePollActionState, stickerSettings: ChatInterfaceStickerSettings) { self.openMessage = openMessage self.openPeer = openPeer self.openPeerMention = openPeerMention @@ -164,6 +165,7 @@ public final class ChatControllerInteraction { self.rateCall = rateCall self.requestSelectMessagePollOptions = requestSelectMessagePollOptions self.requestOpenMessagePollResults = requestOpenMessagePollResults + self.openPollCreation = openPollCreation self.openAppStorePage = openAppStorePage self.displayMessageTooltip = displayMessageTooltip self.seekToTimecode = seekToTimecode @@ -216,6 +218,7 @@ public final class ChatControllerInteraction { }, displaySwipeToReplyHint: { }, dismissReplyMarkupMessage: { _ in }, openMessagePollResults: { _, _ in + }, openPollCreation: { _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, diff --git a/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift b/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift index 8f84499aa4..11450a6aa4 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessageItemView.swift @@ -799,6 +799,8 @@ public class ChatMessageItemView: ListViewItemNode { item.controllerInteraction.openCheckoutOrReceipt(item.message.id) case let .urlAuth(url, buttonId): item.controllerInteraction.requestMessageActionUrlAuth(url, item.message.id, buttonId) + case let .setupPoll(isQuiz): + break } } } diff --git a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift index 3e319b622d..cf5344ad57 100644 --- a/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatRecentActionsControllerNode.swift @@ -420,6 +420,7 @@ final class ChatRecentActionsControllerNode: ViewControllerTracingNode { }, displaySwipeToReplyHint: { }, dismissReplyMarkupMessage: { _ in }, openMessagePollResults: { _, _ in + }, openPollCreation: { _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: self.automaticMediaDownloadSettings, diff --git a/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift b/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift index 339f1da827..b7645e5646 100644 --- a/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift +++ b/submodules/TelegramUI/TelegramUI/OverlayPlayerControllerNode.swift @@ -121,6 +121,7 @@ final class OverlayAudioPlayerControllerNode: ViewControllerTracingNode, UIGestu }, displaySwipeToReplyHint: { }, dismissReplyMarkupMessage: { _ in }, openMessagePollResults: { _, _ in + }, openPollCreation: { _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, pollActionState: ChatInterfacePollActionState(), stickerSettings: ChatInterfaceStickerSettings(loopAnimatedStickers: false)) diff --git a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift index a693f9cdc5..6863ff66a1 100644 --- a/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift +++ b/submodules/TelegramUI/TelegramUI/PeerMediaCollectionController.swift @@ -426,6 +426,7 @@ public class PeerMediaCollectionController: TelegramBaseController { }, displaySwipeToReplyHint: { }, dismissReplyMarkupMessage: { _ in }, openMessagePollResults: { _, _ in + }, openPollCreation: { _ in }, requestMessageUpdate: { _ in }, cancelInteractiveKeyboardGestures: { }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, diff --git a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift index d3867bde60..a934012199 100644 --- a/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift +++ b/submodules/TelegramUI/TelegramUI/SharedAccountContext.swift @@ -1099,41 +1099,42 @@ public final class SharedAccountContextImpl: SharedAccountContext { if tapMessage != nil || clickThroughMessage != nil { controllerInteraction = ChatControllerInteraction(openMessage: { _, _ in return false }, openPeer: { _, _, _ in }, openPeerMention: { _ in }, openMessageContextMenu: { _, _, _, _, _ in }, openMessageContextActions: { _, _, _, _ in }, navigateToMessage: { _, _ in }, tapMessage: { message in - tapMessage?(message) - }, clickThroughMessage: { - clickThroughMessage?() - }, toggleMessagesSelection: { _, _ in }, sendCurrentMessage: { _ in }, sendMessage: { _ in }, sendSticker: { _, _, _, _ in return false }, sendGif: { _, _, _ in return false }, requestMessageActionCallback: { _, _, _ in }, requestMessageActionUrlAuth: { _, _, _ in }, activateSwitchInline: { _, _ in }, openUrl: { _, _, _, _ in }, shareCurrentLocation: {}, shareAccountContact: {}, sendBotCommand: { _, _ in }, openInstantPage: { _, _ in }, openWallpaper: { _ in }, openTheme: { _ in }, openHashtag: { _, _ in }, updateInputState: { _ in }, updateInputMode: { _ in }, openMessageShareMenu: { _ in - }, presentController: { _, _ in }, navigationController: { - return nil - }, chatControllerNode: { - return nil - }, reactionContainerNode: { - return nil - }, presentGlobalOverlayController: { _, _ in }, callPeer: { _ in }, longTap: { _, _ in }, openCheckoutOrReceipt: { _ in }, openSearch: { }, setupReply: { _ in - }, canSetupReply: { _ in - return false - }, navigateToFirstDateMessage: { _ in - }, requestRedeliveryOfFailedMessages: { _ in - }, addContact: { _ in - }, rateCall: { _, _ in - }, requestSelectMessagePollOptions: { _, _ in - }, requestOpenMessagePollResults: { _, _ in - }, openAppStorePage: { - }, displayMessageTooltip: { _, _, _, _ in - }, seekToTimecode: { _, _, _ in - }, scheduleCurrentMessage: { - }, sendScheduledMessagesNow: { _ in - }, editScheduledMessagesTime: { _ in - }, performTextSelectionAction: { _, _, _ in - }, updateMessageReaction: { _, _ in - }, openMessageReactions: { _ in - }, displaySwipeToReplyHint: { - }, dismissReplyMarkupMessage: { _ in - }, openMessagePollResults: { _, _ in - }, requestMessageUpdate: { _ in - }, cancelInteractiveKeyboardGestures: { - }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, - pollActionState: ChatInterfacePollActionState(), stickerSettings: ChatInterfaceStickerSettings(loopAnimatedStickers: false)) + tapMessage?(message) + }, clickThroughMessage: { + clickThroughMessage?() + }, toggleMessagesSelection: { _, _ in }, sendCurrentMessage: { _ in }, sendMessage: { _ in }, sendSticker: { _, _, _, _ in return false }, sendGif: { _, _, _ in return false }, requestMessageActionCallback: { _, _, _ in }, requestMessageActionUrlAuth: { _, _, _ in }, activateSwitchInline: { _, _ in }, openUrl: { _, _, _, _ in }, shareCurrentLocation: {}, shareAccountContact: {}, sendBotCommand: { _, _ in }, openInstantPage: { _, _ in }, openWallpaper: { _ in }, openTheme: { _ in }, openHashtag: { _, _ in }, updateInputState: { _ in }, updateInputMode: { _ in }, openMessageShareMenu: { _ in + }, presentController: { _, _ in }, navigationController: { + return nil + }, chatControllerNode: { + return nil + }, reactionContainerNode: { + return nil + }, presentGlobalOverlayController: { _, _ in }, callPeer: { _ in }, longTap: { _, _ in }, openCheckoutOrReceipt: { _ in }, openSearch: { }, setupReply: { _ in + }, canSetupReply: { _ in + return false + }, navigateToFirstDateMessage: { _ in + }, requestRedeliveryOfFailedMessages: { _ in + }, addContact: { _ in + }, rateCall: { _, _ in + }, requestSelectMessagePollOptions: { _, _ in + }, requestOpenMessagePollResults: { _, _ in + }, openAppStorePage: { + }, displayMessageTooltip: { _, _, _, _ in + }, seekToTimecode: { _, _, _ in + }, scheduleCurrentMessage: { + }, sendScheduledMessagesNow: { _ in + }, editScheduledMessagesTime: { _ in + }, performTextSelectionAction: { _, _, _ in + }, updateMessageReaction: { _, _ in + }, openMessageReactions: { _ in + }, displaySwipeToReplyHint: { + }, dismissReplyMarkupMessage: { _ in + }, openMessagePollResults: { _, _ in + }, openPollCreation: { _ in + }, requestMessageUpdate: { _ in + }, cancelInteractiveKeyboardGestures: { + }, automaticMediaDownloadSettings: MediaAutoDownloadSettings.defaultSettings, + pollActionState: ChatInterfacePollActionState(), stickerSettings: ChatInterfaceStickerSettings(loopAnimatedStickers: false)) } else { controllerInteraction = defaultChatControllerInteraction } From 479689bc1a910937df7f99ff260f72ace4e05958 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 12:39:58 +0400 Subject: [PATCH 23/63] Poll improvements --- .../Telegram-iOS-AppStoreLLC.entitlements | 1 + Telegram-iOS/en.lproj/Localizable.strings | 2 + .../Sources/CreatePollController.swift | 17 +- .../Sources/CreatePollOptionItem.swift | 1 + .../TGVideoCameraMovieRecorder.h | 2 +- .../TGVideoCameraMovieRecorder.m | 42 +- .../LegacyComponents/TGVideoCameraPipeline.h | 2 +- .../LegacyComponents/TGVideoCameraPipeline.m | 34 +- .../TGVideoMessageCaptureController.m | 15 +- .../Sources/LegacyAttachmentMenu.swift | 2 + .../SearchBarNode/Sources/SearchBarNode.swift | 5 +- .../Sources/PresentationStrings.swift | 4694 +++++++++-------- .../TelegramUI/ChatController.swift | 10 +- .../ChatMessagePollBubbleContentNode.swift | 59 +- .../TelegramUI/TelegramUI/ConfettiView.swift | 137 +- .../LegacyInstantVideoController.swift | 7 +- .../TelegramUI/PollResultsController.swift | 8 +- .../Resources/PresentationStrings.mapping | Bin 144067 -> 144139 bytes .../WalletUI/Resources/WalletStrings.mapping | Bin 8384 -> 8384 bytes .../WalletUI/Sources/WalletStrings.swift | 4 +- 20 files changed, 2600 insertions(+), 2442 deletions(-) diff --git a/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements b/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements index a710d1b1fb..042b86f4cf 100644 --- a/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements +++ b/Telegram-iOS/Telegram-iOS-AppStoreLLC.entitlements @@ -32,6 +32,7 @@ merchant.sberbank.test.ph.telegra.Telegraph merchant.privatbank.test.telergramios merchant.privatbank.prod.telergram + merchant.telegram.tranzzo.test com.apple.developer.pushkit.unrestricted-voip diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings index 2d7372d412..1dac51b662 100644 --- a/Telegram-iOS/en.lproj/Localizable.strings +++ b/Telegram-iOS/en.lproj/Localizable.strings @@ -5246,6 +5246,8 @@ Any member of this group will be able to see messages in the channel."; "Map.NoPlacesNearby" = "There are no known places nearby.\nTry a different location."; +"CreatePoll.QuizTitle" = "New Quiz"; +"CreatePoll.QuizOptionsHeader" = "QUIZ OPTIONS"; "CreatePoll.Anonymous" = "Anonymous Voting"; "CreatePoll.MultipleChoice" = "Multiple Choice"; "CreatePoll.MultipleChoiceQuizAlert" = "A quiz has one correct answer."; diff --git a/submodules/ComposePollUI/Sources/CreatePollController.swift b/submodules/ComposePollUI/Sources/CreatePollController.swift index 31489d4a22..2ddf3336ac 100644 --- a/submodules/ComposePollUI/Sources/CreatePollController.swift +++ b/submodules/ComposePollUI/Sources/CreatePollController.swift @@ -382,7 +382,13 @@ private func createPollControllerEntries(presentationData: PresentationData, pee } entries.append(.textHeader(presentationData.strings.CreatePoll_TextHeader, textLimitText)) entries.append(.text(presentationData.strings.CreatePoll_TextPlaceholder, state.text, Int(limitsConfiguration.maxMediaCaptionLength))) - entries.append(.optionsHeader(presentationData.strings.CreatePoll_OptionsHeader)) + let optionsHeaderTitle: String + if let defaultIsQuiz = defaultIsQuiz, defaultIsQuiz { + optionsHeaderTitle = presentationData.strings.CreatePoll_QuizOptionsHeader + } else { + optionsHeaderTitle = presentationData.strings.CreatePoll_OptionsHeader + } + entries.append(.optionsHeader(optionsHeaderTitle)) for i in 0 ..< state.options.count { let isSecondLast = state.options.count == 2 && i == 0 let isLast = i == state.options.count - 1 @@ -748,7 +754,14 @@ public func createPollController(context: AccountContext, peer: Peer, isQuiz: Bo ensureVisibleItemTag = focusItemTag } - let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(presentationData.strings.CreatePoll_Title), leftNavigationButton: leftNavigationButton, rightNavigationButton: rightNavigationButton, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) + let title: String + if let isQuiz = isQuiz, isQuiz { + title = presentationData.strings.CreatePoll_QuizTitle + } else { + title = presentationData.strings.CreatePoll_Title + } + + let controllerState = ItemListControllerState(presentationData: ItemListPresentationData(presentationData), title: .text(title), leftNavigationButton: leftNavigationButton, rightNavigationButton: rightNavigationButton, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: false) let listState = ItemListNodeState(presentationData: ItemListPresentationData(presentationData), entries: createPollControllerEntries(presentationData: presentationData, peer: peer, state: state, limitsConfiguration: limitsConfiguration, defaultIsQuiz: isQuiz), style: .blocks, focusItemTag: focusItemTag, ensureVisibleItemTag: ensureVisibleItemTag, animateChanges: previousIds != nil) return (controllerState, (listState, arguments)) diff --git a/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift b/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift index 8661a2da7d..ad5046f164 100644 --- a/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift +++ b/submodules/ComposePollUI/Sources/CreatePollOptionItem.swift @@ -182,6 +182,7 @@ class CreatePollOptionItemNode: ItemListRevealOptionsItemNode, ItemListItemNode, } func editableTextNodeDidFinishEditing(_ editableTextNode: ASEditableTextNode) { + self.editableTextNodeDidUpdateText(editableTextNode) self.item?.focused(false) } diff --git a/submodules/LegacyComponents/LegacyComponents/TGVideoCameraMovieRecorder.h b/submodules/LegacyComponents/LegacyComponents/TGVideoCameraMovieRecorder.h index a78b7baae3..19f9f1a4b5 100644 --- a/submodules/LegacyComponents/LegacyComponents/TGVideoCameraMovieRecorder.h +++ b/submodules/LegacyComponents/LegacyComponents/TGVideoCameraMovieRecorder.h @@ -18,7 +18,7 @@ - (void)appendVideoPixelBuffer:(CVPixelBufferRef)pixelBuffer withPresentationTime:(CMTime)presentationTime; - (void)appendAudioSampleBuffer:(CMSampleBufferRef)sampleBuffer; -- (void)finishRecording; +- (void)finishRecording:(void(^)())completed; - (NSTimeInterval)videoDuration; diff --git a/submodules/LegacyComponents/LegacyComponents/TGVideoCameraMovieRecorder.m b/submodules/LegacyComponents/LegacyComponents/TGVideoCameraMovieRecorder.m index 0be65e1b85..e236e9ae00 100644 --- a/submodules/LegacyComponents/LegacyComponents/TGVideoCameraMovieRecorder.m +++ b/submodules/LegacyComponents/LegacyComponents/TGVideoCameraMovieRecorder.m @@ -105,7 +105,7 @@ typedef enum { if (_status != TGMovieRecorderStatusIdle) return; - [self transitionToStatus:TGMovieRecorderStatusPreparingToRecord error:nil]; + [self transitionToStatus:TGMovieRecorderStatusPreparingToRecord error:nil completed:nil]; } dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^ @@ -138,9 +138,9 @@ typedef enum { @synchronized (self) { if (error || !succeed) - [self transitionToStatus:TGMovieRecorderStatusFailed error:error]; + [self transitionToStatus:TGMovieRecorderStatusFailed error:error completed:nil]; else - [self transitionToStatus:TGMovieRecorderStatusRecording error:nil]; + [self transitionToStatus:TGMovieRecorderStatusRecording error:nil completed:nil]; } } } ); @@ -169,8 +169,9 @@ typedef enum { [self appendSampleBuffer:sampleBuffer ofMediaType:AVMediaTypeAudio]; } -- (void)finishRecording +- (void)finishRecording:(void(^)())completed { + printf("finishRecording %d\n", _status); @synchronized (self) { bool shouldFinishRecording = false; @@ -190,9 +191,10 @@ typedef enum { } if (shouldFinishRecording) - [self transitionToStatus:TGMovieRecorderStatusFinishingWaiting error:nil]; - else + [self transitionToStatus:TGMovieRecorderStatusFinishingWaiting error:nil completed:completed]; + else { return; + } } dispatch_async(_writingQueue, ^ @@ -201,10 +203,14 @@ typedef enum { { @synchronized (self) { - if (_status != TGMovieRecorderStatusFinishingWaiting) + if (_status != TGMovieRecorderStatusFinishingWaiting) { + if (completed) { + completed(); + } return; + } - [self transitionToStatus:TGMovieRecorderStatusFinishingCommiting error:nil]; + [self transitionToStatus:TGMovieRecorderStatusFinishingCommiting error:nil completed:nil]; } [_assetWriter finishWritingWithCompletionHandler:^ @@ -213,9 +219,9 @@ typedef enum { { NSError *error = _assetWriter.error; if (error) - [self transitionToStatus:TGMovieRecorderStatusFailed error:error]; + [self transitionToStatus:TGMovieRecorderStatusFailed error:error completed:completed]; else - [self transitionToStatus:TGMovieRecorderStatusFinished error:nil]; + [self transitionToStatus:TGMovieRecorderStatusFinished error:nil completed:completed]; } }]; } @@ -340,7 +346,7 @@ typedef enum { NSError *error = _assetWriter.error; @synchronized (self) { - [self transitionToStatus:TGMovieRecorderStatusFailed error:error]; + [self transitionToStatus:TGMovieRecorderStatusFailed error:error completed:nil]; } } } @@ -349,8 +355,10 @@ typedef enum { }); } -- (void)transitionToStatus:(TGMovieRecorderStatus)newStatus error:(NSError *)error +- (void)transitionToStatus:(TGMovieRecorderStatus)newStatus error:(NSError *)error completed:(void(^)())completed { + printf("recorder transitionToStatus %d\n", newStatus); + bool shouldNotifyDelegate = false; if (newStatus != _status) @@ -389,6 +397,7 @@ typedef enum { break; case TGMovieRecorderStatusFinished: + printf("TGMovieRecorderStatusFinished _delegate == nil = %d\n", (int)(_delegate == nil)); [_delegate movieRecorderDidFinishRecording:self]; break; @@ -399,9 +408,16 @@ typedef enum { default: break; } + if (completed) { + completed(); + } } }); - } + } else { + if (completed) { + completed(); + } + } } - (bool)setupAssetWriterAudioInputWithSourceFormatDescription:(CMFormatDescriptionRef)audioFormatDescription settings:(NSDictionary *)audioSettings diff --git a/submodules/LegacyComponents/LegacyComponents/TGVideoCameraPipeline.h b/submodules/LegacyComponents/LegacyComponents/TGVideoCameraPipeline.h index 46cbde9207..6d79b12348 100644 --- a/submodules/LegacyComponents/LegacyComponents/TGVideoCameraPipeline.h +++ b/submodules/LegacyComponents/LegacyComponents/TGVideoCameraPipeline.h @@ -21,7 +21,7 @@ - (void)stopRunning; - (void)startRecording:(NSURL *)url preset:(TGMediaVideoConversionPreset)preset liveUpload:(bool)liveUpload; -- (void)stopRecording; +- (void)stopRecording:(void (^)())completed; - (CGAffineTransform)transformForOrientation:(AVCaptureVideoOrientation)orientation; diff --git a/submodules/LegacyComponents/LegacyComponents/TGVideoCameraPipeline.m b/submodules/LegacyComponents/LegacyComponents/TGVideoCameraPipeline.m index cf69baa75e..b788f7d53c 100644 --- a/submodules/LegacyComponents/LegacyComponents/TGVideoCameraPipeline.m +++ b/submodules/LegacyComponents/LegacyComponents/TGVideoCameraPipeline.m @@ -111,6 +111,7 @@ const NSInteger TGVideoCameraRetainedBufferCount = 16; - (void)dealloc { + printf("Camera pipeline dealloc\n"); [self destroyCaptureSession]; } @@ -134,7 +135,7 @@ const NSInteger TGVideoCameraRetainedBufferCount = 16; { _running = false; - [self stopRecording]; + [self stopRecording:^{}]; [_captureSession stopRunning]; [self captureSessionDidStopRunning]; @@ -285,7 +286,7 @@ const NSInteger TGVideoCameraRetainedBufferCount = 16; - (void)captureSessionDidStopRunning { - [self stopRecording]; + [self stopRecording:^{}]; [self destroyVideoPipeline]; } @@ -684,20 +685,29 @@ const NSInteger TGVideoCameraRetainedBufferCount = 16; [recorder prepareToRecord]; } -- (void)stopRecording +- (void)stopRecording:(void (^)())completed { [[TGVideoCameraPipeline cameraQueue] dispatch:^ { @synchronized (self) { - if (_recordingStatus != TGVideoCameraRecordingStatusRecording) + if (_recordingStatus != TGVideoCameraRecordingStatusRecording) { + if (completed) { + completed(); + } return; + } [self transitionToRecordingStatus:TGVideoCameraRecordingStatusStoppingRecording error:nil]; } _resultDuration = _recorder.videoDuration; - [_recorder finishRecording]; + [_recorder finishRecording:^{ + __unused __auto_type description = [self description]; + if (completed) { + completed(); + } + }]; }]; } @@ -734,6 +744,8 @@ const NSInteger TGVideoCameraRetainedBufferCount = 16; - (void)movieRecorderDidFinishRecording:(TGVideoCameraMovieRecorder *)__unused recorder { + printf("movieRecorderDidFinishRecording\n"); + @synchronized (self) { if (_recordingStatus != TGVideoCameraRecordingStatusStoppingRecording) @@ -750,6 +762,8 @@ const NSInteger TGVideoCameraRetainedBufferCount = 16; - (void)transitionToRecordingStatus:(TGVideoCameraRecordingStatus)newStatus error:(NSError *)error { + printf("transitionToRecordingStatus %d\n", newStatus); + TGVideoCameraRecordingStatus oldStatus = _recordingStatus; _recordingStatus = newStatus; @@ -763,12 +777,16 @@ const NSInteger TGVideoCameraRetainedBufferCount = 16; } else { + __strong id delegate = _delegate; if ((oldStatus == TGVideoCameraRecordingStatusStartingRecording) && (newStatus == TGVideoCameraRecordingStatusRecording)) - delegateCallbackBlock = ^{ [_delegate capturePipelineRecordingDidStart:self]; }; + delegateCallbackBlock = ^{ [delegate capturePipelineRecordingDidStart:self]; }; else if ((oldStatus == TGVideoCameraRecordingStatusRecording) && (newStatus == TGVideoCameraRecordingStatusStoppingRecording)) - delegateCallbackBlock = ^{ [_delegate capturePipelineRecordingWillStop:self]; }; + delegateCallbackBlock = ^{ [delegate capturePipelineRecordingWillStop:self]; }; else if ((oldStatus == TGVideoCameraRecordingStatusStoppingRecording) && (newStatus == TGVideoCameraRecordingStatusIdle)) - delegateCallbackBlock = ^{ [_delegate capturePipelineRecordingDidStop:self duration:_resultDuration liveUploadData:_liveUploadData thumbnailImage:_recordingThumbnail thumbnails:_thumbnails]; }; + delegateCallbackBlock = ^{ + printf("transitionToRecordingStatus delegateCallbackBlock _delegate == nil = %d\n", (int)(delegate == nil)); + [delegate capturePipelineRecordingDidStop:self duration:_resultDuration liveUploadData:_liveUploadData thumbnailImage:_recordingThumbnail thumbnails:_thumbnails]; + }; } if (delegateCallbackBlock != nil) diff --git a/submodules/LegacyComponents/LegacyComponents/TGVideoMessageCaptureController.m b/submodules/LegacyComponents/LegacyComponents/TGVideoMessageCaptureController.m index 045fbca31d..0fbca0c6f4 100644 --- a/submodules/LegacyComponents/LegacyComponents/TGVideoMessageCaptureController.m +++ b/submodules/LegacyComponents/LegacyComponents/TGVideoMessageCaptureController.m @@ -201,6 +201,7 @@ typedef enum - (void)dealloc { + printf("Video controller dealloc\n"); [_thumbnailsDisposable dispose]; [[NSNotificationCenter defaultCenter] removeObserver:_didEnterBackgroundObserver]; [_activityDisposable dispose]; @@ -649,9 +650,11 @@ typedef enum return; [_activityDisposable dispose]; - [self stopRecording]; - - [self dismiss:false]; + [self stopRecording:^{ + TGDispatchOnMainThread(^{ + [self dismiss:false]; + }); + }]; } - (void)buttonInteractionUpdate:(CGPoint)value @@ -684,7 +687,7 @@ typedef enum _switchButton.userInteractionEnabled = false; [_activityDisposable dispose]; - [self stopRecording]; + [self stopRecording:^{}]; return true; } @@ -939,9 +942,9 @@ typedef enum [self startRecordingTimer]; } -- (void)stopRecording +- (void)stopRecording:(void (^)())completed { - [_capturePipeline stopRecording]; + [_capturePipeline stopRecording:completed]; [_buttonHandler ignoreEventsFor:1.0f andDisable:true]; } diff --git a/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift b/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift index f55097b4a2..536ad692a0 100644 --- a/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift +++ b/submodules/LegacyMediaPickerUI/Sources/LegacyAttachmentMenu.swift @@ -301,6 +301,8 @@ public func legacyAttachmentMenu(context: AccountContext, peer: Peer, editMediaO peerSupportsPolls = true } else if let user = peer as? TelegramUser, let _ = user.botInfo { peerSupportsPolls = true + } else if peer.id == context.account.peerId { + peerSupportsPolls = true } if peerSupportsPolls && canSendMessagesToPeer(peer) && canSendPolls { let pollItem = TGMenuSheetButtonItemView(title: presentationData.strings.AttachmentMenu_Poll, type: TGMenuSheetButtonTypeDefault, fontSize: fontSize, action: { [weak controller] in diff --git a/submodules/SearchBarNode/Sources/SearchBarNode.swift b/submodules/SearchBarNode/Sources/SearchBarNode.swift index 7c381d91a9..16b8215467 100644 --- a/submodules/SearchBarNode/Sources/SearchBarNode.swift +++ b/submodules/SearchBarNode/Sources/SearchBarNode.swift @@ -87,12 +87,13 @@ private class SearchBarTextField: UITextField { } var rect = bounds.insetBy(dx: 4.0, dy: 4.0) - let prefixSize = self.prefixLabel.measure(bounds.size) + let prefixSize = self.prefixLabel.measure(CGSize(width: floor(bounds.size.width * 0.7), height: bounds.size.height)) if !prefixSize.width.isZero { let prefixOffset = prefixSize.width rect.origin.x += prefixOffset rect.size.width -= prefixOffset } + rect.size.width = max(rect.size.width, 10.0) return rect } @@ -117,7 +118,7 @@ private class SearchBarTextField: UITextField { let labelSize = self.placeholderLabel.measure(textRect.size) self.placeholderLabel.frame = CGRect(origin: CGPoint(x: textRect.minX, y: textRect.minY + textOffset), size: labelSize) - let prefixSize = self.prefixLabel.measure(bounds.size) + let prefixSize = self.prefixLabel.measure(CGSize(width: floor(bounds.size.width * 0.7), height: bounds.size.height)) let prefixBounds = bounds.insetBy(dx: 4.0, dy: 4.0) self.prefixLabel.frame = CGRect(origin: CGPoint(x: prefixBounds.minX, y: prefixBounds.minY + textOffset), size: prefixSize) } diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift index 007f01cc43..14d6d0145a 100644 --- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift +++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift @@ -2415,2886 +2415,2888 @@ public final class PresentationStrings: Equatable { } public var ContactInfo_PhoneLabelMobile: String { return self._s[2070]! } public var IntentsSettings_SuggestedChatsInfo: String { return self._s[2071]! } + public var CreatePoll_QuizOptionsHeader: String { return self._s[2072]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2072]!, self._r[2072]!, [_0]) + return formatWithArgumentRanges(self._s[2073]!, self._r[2073]!, [_0]) } - public var TextFormat_Bold: String { return self._s[2073]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[2074]! } - public var StickerPackActionInfo_AddedTitle: String { return self._s[2075]! } - public var Notifications_Title: String { return self._s[2076]! } - public var Group_Username_InvalidTooShort: String { return self._s[2077]! } - public var Channel_ErrorAddTooMuch: String { return self._s[2078]! } + public var TextFormat_Bold: String { return self._s[2074]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[2075]! } + public var StickerPackActionInfo_AddedTitle: String { return self._s[2076]! } + public var Notifications_Title: String { return self._s[2077]! } + public var Group_Username_InvalidTooShort: String { return self._s[2078]! } + public var Channel_ErrorAddTooMuch: String { return self._s[2079]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2079]!, self._r[2079]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2080]!, self._r[2080]!, ["\(_0)"]) } - public var VoiceOver_DiscardPreparedContent: String { return self._s[2081]! } - public var Stickers_SuggestAdded: String { return self._s[2082]! } - public var Login_CountryCode: String { return self._s[2083]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[2084]! } - public var Map_GetDirections: String { return self._s[2085]! } - public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2086]! } - public var Login_PhoneFloodError: String { return self._s[2087]! } + public var VoiceOver_DiscardPreparedContent: String { return self._s[2082]! } + public var Stickers_SuggestAdded: String { return self._s[2083]! } + public var Login_CountryCode: String { return self._s[2084]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[2085]! } + public var Map_GetDirections: String { return self._s[2086]! } + public var Wallet_Receive_ShareInvoiceUrl: String { return self._s[2087]! } + public var Login_PhoneFloodError: String { return self._s[2088]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2088]!, self._r[2088]!, [_0]) + return formatWithArgumentRanges(self._s[2089]!, self._r[2089]!, [_0]) } public func Wallet_Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2089]!, self._r[2089]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2090]!, self._r[2090]!, [_1, _2, _3]) } - public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2090]! } - public var Settings_SetUsername: String { return self._s[2092]! } - public var Group_Location_ChangeLocation: String { return self._s[2093]! } - public var Notification_GroupInviterSelf: String { return self._s[2094]! } - public var InstantPage_TapToOpenLink: String { return self._s[2095]! } + public var IntentsSettings_SuggestedChatsPrivateChats: String { return self._s[2091]! } + public var Settings_SetUsername: String { return self._s[2093]! } + public var Group_Location_ChangeLocation: String { return self._s[2094]! } + public var Notification_GroupInviterSelf: String { return self._s[2095]! } + public var InstantPage_TapToOpenLink: String { return self._s[2096]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2096]!, self._r[2096]!, [_0]) + return formatWithArgumentRanges(self._s[2097]!, self._r[2097]!, [_0]) } - public var Watch_Suggestion_TalkLater: String { return self._s[2097]! } - public var SecretChat_Title: String { return self._s[2098]! } - public var Group_UpgradeNoticeText1: String { return self._s[2099]! } - public var AuthSessions_Title: String { return self._s[2100]! } + public var Watch_Suggestion_TalkLater: String { return self._s[2098]! } + public var SecretChat_Title: String { return self._s[2099]! } + public var Group_UpgradeNoticeText1: String { return self._s[2100]! } + public var AuthSessions_Title: String { return self._s[2101]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2101]!, self._r[2101]!, [_0]) + return formatWithArgumentRanges(self._s[2102]!, self._r[2102]!, [_0]) } - public var PhotoEditor_CropAuto: String { return self._s[2102]! } - public var Channel_About_Title: String { return self._s[2103]! } - public var Theme_ThemeChanged: String { return self._s[2104]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[2105]! } + public var PhotoEditor_CropAuto: String { return self._s[2103]! } + public var Channel_About_Title: String { return self._s[2104]! } + public var Theme_ThemeChanged: String { return self._s[2105]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[2106]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2107]!, self._r[2107]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2108]!, self._r[2108]!, ["\(_0)"]) } - public var VoiceOver_MessageContextReport: String { return self._s[2108]! } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2110]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[2111]! } + public var VoiceOver_MessageContextReport: String { return self._s[2109]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[2111]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[2112]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2112]!, self._r[2112]!, [_1]) + return formatWithArgumentRanges(self._s[2113]!, self._r[2113]!, [_1]) } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2114]!, self._r[2114]!, [_0]) - } - public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2115]!, self._r[2115]!, [_0]) } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[2116]! } - public var Presence_online: String { return self._s[2119]! } - public var PasscodeSettings_Title: String { return self._s[2120]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2121]! } - public var Web_OpenExternal: String { return self._s[2122]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[2124]! } - public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2125]! } - public var LocalGroup_Title: String { return self._s[2126]! } + public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2116]!, self._r[2116]!, [_0]) + } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[2117]! } + public var Presence_online: String { return self._s[2120]! } + public var PasscodeSettings_Title: String { return self._s[2121]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[2122]! } + public var Web_OpenExternal: String { return self._s[2123]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[2125]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[2126]! } + public var LocalGroup_Title: String { return self._s[2127]! } public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2127]!, self._r[2127]!, [_0]) + return formatWithArgumentRanges(self._s[2128]!, self._r[2128]!, [_0]) } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2128]! } - public var Conversation_StopQuizConfirmation: String { return self._s[2129]! } - public var Map_YouAreHere: String { return self._s[2130]! } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[2129]! } + public var Conversation_StopQuizConfirmation: String { return self._s[2130]! } + public var Map_YouAreHere: String { return self._s[2131]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2131]!, self._r[2131]!, [_0]) - } - public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2132]!, self._r[2132]!, [_0]) } - public var Theme_Context_ChangeColors: String { return self._s[2133]! } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2134]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2135]! } - public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2136]!, self._r[2136]!, [_0]) + public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2133]!, self._r[2133]!, [_0]) } - public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { + public var Theme_Context_ChangeColors: String { return self._s[2134]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[2135]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[2136]! } + public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2137]!, self._r[2137]!, [_0]) } - public var SocksProxySetup_Username: String { return self._s[2138]! } - public var Bot_Start: String { return self._s[2139]! } - public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2140]!, self._r[2140]!, [_0]) + public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2138]!, self._r[2138]!, [_0]) } - public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { + public var SocksProxySetup_Username: String { return self._s[2139]! } + public var Bot_Start: String { return self._s[2140]! } + public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2141]!, self._r[2141]!, [_0]) } - public var Contacts_SortByPresence: String { return self._s[2142]! } - public var AccentColor_Title: String { return self._s[2144]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2145]! } + public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2142]!, self._r[2142]!, [_0]) + } + public var Contacts_SortByPresence: String { return self._s[2143]! } + public var AccentColor_Title: String { return self._s[2145]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[2146]! } public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2146]!, self._r[2146]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2147]!, self._r[2147]!, [_1, _2]) } public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2147]!, self._r[2147]!, [_0]) + return formatWithArgumentRanges(self._s[2148]!, self._r[2148]!, [_0]) } public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2148]!, self._r[2148]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2149]!, self._r[2149]!, [_1, _2]) } - public var Passport_Email_EnterOtherEmail: String { return self._s[2149]! } - public var Login_InfoAvatarPhoto: String { return self._s[2150]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2151]! } - public var Tour_Title4: String { return self._s[2152]! } - public var Passport_Identity_Translation: String { return self._s[2153]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2154]! } - public var Login_TermsOfServiceLabel: String { return self._s[2156]! } - public var Passport_Language_it: String { return self._s[2157]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2158]! } - public var Passport_Identity_SelfieHelp: String { return self._s[2159]! } - public var Conversation_ClearAll: String { return self._s[2161]! } - public var Wallet_Send_UninitializedText: String { return self._s[2163]! } - public var Channel_OwnershipTransfer_Title: String { return self._s[2164]! } - public var TwoStepAuth_FloodError: String { return self._s[2165]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[2150]! } + public var Login_InfoAvatarPhoto: String { return self._s[2151]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[2152]! } + public var Tour_Title4: String { return self._s[2153]! } + public var Passport_Identity_Translation: String { return self._s[2154]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[2155]! } + public var Login_TermsOfServiceLabel: String { return self._s[2157]! } + public var Passport_Language_it: String { return self._s[2158]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[2159]! } + public var Passport_Identity_SelfieHelp: String { return self._s[2160]! } + public var Conversation_ClearAll: String { return self._s[2162]! } + public var Wallet_Send_UninitializedText: String { return self._s[2164]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[2165]! } + public var TwoStepAuth_FloodError: String { return self._s[2166]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2166]!, self._r[2166]!, [_1]) + return formatWithArgumentRanges(self._s[2167]!, self._r[2167]!, [_1]) } - public var Paint_Delete: String { return self._s[2167]! } + public var Paint_Delete: String { return self._s[2168]! } public func Wallet_Sent_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2168]!, self._r[2168]!, [_0]) + return formatWithArgumentRanges(self._s[2169]!, self._r[2169]!, [_0]) } - public var Privacy_AddNewPeer: String { return self._s[2169]! } + public var Privacy_AddNewPeer: String { return self._s[2170]! } public func Channel_AdminLog_MessageRank(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2170]!, self._r[2170]!, [_1]) + return formatWithArgumentRanges(self._s[2171]!, self._r[2171]!, [_1]) } - public var LogoutOptions_SetPasscodeText: String { return self._s[2171]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[2172]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2172]!, self._r[2172]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2173]!, self._r[2173]!, [_1, _2]) } - public var Message_PinnedAudioMessage: String { return self._s[2173]! } + public var Message_PinnedAudioMessage: String { return self._s[2174]! } public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2174]!, self._r[2174]!, [_0]) + return formatWithArgumentRanges(self._s[2175]!, self._r[2175]!, [_0]) } - public var Notification_Mute1hMin: String { return self._s[2175]! } - public var Notifications_GroupNotificationsSound: String { return self._s[2176]! } - public var Wallet_Month_GenNovember: String { return self._s[2177]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[2178]! } - public var Conversation_MessageEditedLabel: String { return self._s[2179]! } + public var Notification_Mute1hMin: String { return self._s[2176]! } + public var Notifications_GroupNotificationsSound: String { return self._s[2177]! } + public var Wallet_Month_GenNovember: String { return self._s[2178]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[2179]! } + public var Conversation_MessageEditedLabel: String { return self._s[2180]! } public func ClearCache_Success(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2180]!, self._r[2180]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2181]!, self._r[2181]!, [_0, _1]) } - public var Notification_Exceptions_AlwaysOff: String { return self._s[2181]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2182]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[2182]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[2183]! } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2183]!, self._r[2183]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[2184]!, self._r[2184]!, [_0, _1, _2]) } - public var NetworkUsageSettings_ResetStats: String { return self._s[2184]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[2185]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2185]!, self._r[2185]!, [_1]) + return formatWithArgumentRanges(self._s[2186]!, self._r[2186]!, [_1]) } - public var AccessDenied_LocationTracking: String { return self._s[2186]! } - public var Month_GenOctober: String { return self._s[2187]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2188]! } - public var EnterPasscode_EnterPasscode: String { return self._s[2189]! } - public var MediaPicker_TimerTooltip: String { return self._s[2191]! } - public var SharedMedia_TitleAll: String { return self._s[2192]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2195]! } - public var Conversation_RestrictedMedia: String { return self._s[2196]! } - public var AccessDenied_PhotosRestricted: String { return self._s[2197]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[2199]! } - public var ChangePhoneNumberCode_Called: String { return self._s[2200]! } + public var AccessDenied_LocationTracking: String { return self._s[2187]! } + public var Month_GenOctober: String { return self._s[2188]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[2189]! } + public var EnterPasscode_EnterPasscode: String { return self._s[2190]! } + public var MediaPicker_TimerTooltip: String { return self._s[2192]! } + public var SharedMedia_TitleAll: String { return self._s[2193]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[2196]! } + public var Conversation_RestrictedMedia: String { return self._s[2197]! } + public var AccessDenied_PhotosRestricted: String { return self._s[2198]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[2200]! } + public var ChangePhoneNumberCode_Called: String { return self._s[2201]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2201]!, self._r[2201]!, [_0]) + return formatWithArgumentRanges(self._s[2202]!, self._r[2202]!, [_0]) } - public var Conversation_SavedMessages: String { return self._s[2204]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[2206]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2207]! } + public var Conversation_SavedMessages: String { return self._s[2205]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[2207]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[2208]! } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2209]!, self._r[2209]!, [_0]) + return formatWithArgumentRanges(self._s[2210]!, self._r[2210]!, [_0]) } - public var VoiceOver_Chat_YourMessage: String { return self._s[2210]! } + public var VoiceOver_Chat_YourMessage: String { return self._s[2211]! } public func VoiceOver_Chat_Title(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2211]!, self._r[2211]!, [_0]) + return formatWithArgumentRanges(self._s[2212]!, self._r[2212]!, [_0]) } - public var ReportPeer_AlertSuccess: String { return self._s[2212]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2213]! } + public var ReportPeer_AlertSuccess: String { return self._s[2213]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[2214]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2214]!, self._r[2214]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2215]!, self._r[2215]!, [_1, _2]) } - public var Checkout_PasswordEntry_Title: String { return self._s[2215]! } - public var PhotoEditor_FadeTool: String { return self._s[2216]! } - public var Privacy_ContactsReset: String { return self._s[2217]! } + public var Checkout_PasswordEntry_Title: String { return self._s[2216]! } + public var PhotoEditor_FadeTool: String { return self._s[2217]! } + public var Privacy_ContactsReset: String { return self._s[2218]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2219]!, self._r[2219]!, [_0]) + return formatWithArgumentRanges(self._s[2220]!, self._r[2220]!, [_0]) } - public var Message_PinnedVideoMessage: String { return self._s[2220]! } - public var ChatList_Mute: String { return self._s[2221]! } + public var Message_PinnedVideoMessage: String { return self._s[2221]! } + public var ChatList_Mute: String { return self._s[2222]! } public func Wallet_Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2222]!, self._r[2222]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2223]!, self._r[2223]!, [_1, _2, _3]) } - public var Permissions_CellularDataText_v0: String { return self._s[2223]! } - public var ShareMenu_SelectChats: String { return self._s[2226]! } - public var ChatList_Context_Unarchive: String { return self._s[2227]! } - public var MusicPlayer_VoiceNote: String { return self._s[2228]! } - public var Conversation_RestrictedText: String { return self._s[2229]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2230]! } - public var Wallet_Month_GenApril: String { return self._s[2231]! } - public var Wallet_Month_ShortMarch: String { return self._s[2232]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[2233]! } - public var Cache_Videos: String { return self._s[2234]! } - public var PrivacySettings_PhoneNumber: String { return self._s[2235]! } - public var Wallet_Month_GenFebruary: String { return self._s[2236]! } - public var FeatureDisabled_Oops: String { return self._s[2238]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[2239]! } + public var Permissions_CellularDataText_v0: String { return self._s[2224]! } + public var ShareMenu_SelectChats: String { return self._s[2227]! } + public var ChatList_Context_Unarchive: String { return self._s[2228]! } + public var MusicPlayer_VoiceNote: String { return self._s[2229]! } + public var Conversation_RestrictedText: String { return self._s[2230]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[2231]! } + public var Wallet_Month_GenApril: String { return self._s[2232]! } + public var Wallet_Month_ShortMarch: String { return self._s[2233]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[2234]! } + public var Cache_Videos: String { return self._s[2235]! } + public var PrivacySettings_PhoneNumber: String { return self._s[2236]! } + public var Wallet_Month_GenFebruary: String { return self._s[2237]! } + public var FeatureDisabled_Oops: String { return self._s[2239]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[2240]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2240]!, self._r[2240]!, [_0]) + return formatWithArgumentRanges(self._s[2241]!, self._r[2241]!, [_0]) } - public var Stickers_GroupStickersHelp: String { return self._s[2241]! } - public var GroupPermission_NoSendPolls: String { return self._s[2242]! } - public var Wallet_Qr_ScanCode: String { return self._s[2243]! } - public var Message_VideoExpired: String { return self._s[2245]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[2246]! } - public var Notifications_Badge: String { return self._s[2247]! } - public var Wallet_Receive_AddressCopied: String { return self._s[2248]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[2249]! } - public var Username_InvalidTooShort: String { return self._s[2250]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2251]! } - public var Channel_AdminLog_PinMessages: String { return self._s[2252]! } - public var ArchivedChats_IntroTitle3: String { return self._s[2253]! } + public var Stickers_GroupStickersHelp: String { return self._s[2242]! } + public var GroupPermission_NoSendPolls: String { return self._s[2243]! } + public var Wallet_Qr_ScanCode: String { return self._s[2244]! } + public var Message_VideoExpired: String { return self._s[2246]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[2247]! } + public var Notifications_Badge: String { return self._s[2248]! } + public var Wallet_Receive_AddressCopied: String { return self._s[2249]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[2250]! } + public var Username_InvalidTooShort: String { return self._s[2251]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[2252]! } + public var Channel_AdminLog_PinMessages: String { return self._s[2253]! } + public var ArchivedChats_IntroTitle3: String { return self._s[2254]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2254]!, self._r[2254]!, [_1]) + return formatWithArgumentRanges(self._s[2255]!, self._r[2255]!, [_1]) } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[2255]! } - public var Conversation_DefaultRestrictedText: String { return self._s[2256]! } - public var SharedMedia_CategoryDocs: String { return self._s[2259]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[2256]! } + public var Conversation_DefaultRestrictedText: String { return self._s[2257]! } + public var SharedMedia_CategoryDocs: String { return self._s[2260]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2260]!, self._r[2260]!, [_1]) + return formatWithArgumentRanges(self._s[2261]!, self._r[2261]!, [_1]) } - public var Wallet_Send_UninitializedTitle: String { return self._s[2261]! } - public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2262]! } - public var Privacy_Forwards_NeverLink: String { return self._s[2264]! } + public var Wallet_Send_UninitializedTitle: String { return self._s[2262]! } + public var StickerPackActionInfo_ArchivedTitle: String { return self._s[2263]! } + public var Privacy_Forwards_NeverLink: String { return self._s[2265]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2265]!, self._r[2265]!, [_1]) + return formatWithArgumentRanges(self._s[2266]!, self._r[2266]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2266]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[2267]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2267]!, self._r[2267]!, [_0]) + return formatWithArgumentRanges(self._s[2268]!, self._r[2268]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[2268]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2269]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[2270]! } - public var Channel_UpdatePhotoItem: String { return self._s[2271]! } - public var GroupInfo_LeftStatus: String { return self._s[2272]! } - public var Watch_MessageView_Forward: String { return self._s[2274]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[2275]! } - public var Cache_ClearEmpty: String { return self._s[2277]! } - public var Localization_LanguageName: String { return self._s[2278]! } - public var Wallet_AccessDenied_Title: String { return self._s[2279]! } - public var WebSearch_GIFs: String { return self._s[2280]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2281]! } - public var Wallet_AccessDenied_Settings: String { return self._s[2282]! } - public var Username_InvalidStartsWithNumber: String { return self._s[2283]! } - public var Common_Back: String { return self._s[2284]! } - public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2285]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2286]! } - public var Wallet_Send_Send: String { return self._s[2287]! } + public var ChatSettings_PrivateChats: String { return self._s[2269]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[2270]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[2271]! } + public var Channel_UpdatePhotoItem: String { return self._s[2272]! } + public var GroupInfo_LeftStatus: String { return self._s[2273]! } + public var Watch_MessageView_Forward: String { return self._s[2275]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[2276]! } + public var Cache_ClearEmpty: String { return self._s[2278]! } + public var Localization_LanguageName: String { return self._s[2279]! } + public var Wallet_AccessDenied_Title: String { return self._s[2280]! } + public var WebSearch_GIFs: String { return self._s[2281]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[2282]! } + public var Wallet_AccessDenied_Settings: String { return self._s[2283]! } + public var Username_InvalidStartsWithNumber: String { return self._s[2284]! } + public var Common_Back: String { return self._s[2285]! } + public var GroupInfo_Permissions_EditingDisabled: String { return self._s[2286]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[2287]! } + public var Wallet_Send_Send: String { return self._s[2288]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2289]!, self._r[2289]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2290]!, self._r[2290]!, [_1, _2]) } - public var Wallet_Info_RefreshErrorTitle: String { return self._s[2290]! } - public var Wallet_Month_GenJune: String { return self._s[2291]! } - public var Passport_Email_Help: String { return self._s[2292]! } - public var Watch_Conversation_Reply: String { return self._s[2294]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[2297]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2298]! } - public var Channel_BanUser_Unban: String { return self._s[2300]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2301]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[2302]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2304]! } - public var Wallet_Send_AddressHeader: String { return self._s[2305]! } - public var Passport_Identity_Name: String { return self._s[2306]! } + public var Wallet_Info_RefreshErrorTitle: String { return self._s[2291]! } + public var Wallet_Month_GenJune: String { return self._s[2292]! } + public var Passport_Email_Help: String { return self._s[2293]! } + public var Watch_Conversation_Reply: String { return self._s[2295]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[2298]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[2299]! } + public var Channel_BanUser_Unban: String { return self._s[2301]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[2302]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[2303]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[2305]! } + public var Wallet_Send_AddressHeader: String { return self._s[2306]! } + public var Passport_Identity_Name: String { return self._s[2307]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2307]!, self._r[2307]!, [_0]) + return formatWithArgumentRanges(self._s[2308]!, self._r[2308]!, [_0]) } - public var GroupRemoved_ViewUserInfo: String { return self._s[2308]! } - public var Conversation_BlockUser: String { return self._s[2309]! } - public var Month_GenJanuary: String { return self._s[2310]! } - public var ChatSettings_TextSize: String { return self._s[2311]! } - public var Notification_PassportValuePhone: String { return self._s[2312]! } - public var MediaPlayer_UnknownArtist: String { return self._s[2313]! } - public var Passport_Language_ne: String { return self._s[2314]! } - public var Notification_CallBack: String { return self._s[2315]! } - public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2316]! } - public var TwoStepAuth_EmailHelp: String { return self._s[2317]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[2309]! } + public var Conversation_BlockUser: String { return self._s[2310]! } + public var Month_GenJanuary: String { return self._s[2311]! } + public var ChatSettings_TextSize: String { return self._s[2312]! } + public var Notification_PassportValuePhone: String { return self._s[2313]! } + public var MediaPlayer_UnknownArtist: String { return self._s[2314]! } + public var Passport_Language_ne: String { return self._s[2315]! } + public var Notification_CallBack: String { return self._s[2316]! } + public var Wallet_SecureStorageReset_BiometryTouchId: String { return self._s[2317]! } + public var TwoStepAuth_EmailHelp: String { return self._s[2318]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2318]!, self._r[2318]!, [_0]) + return formatWithArgumentRanges(self._s[2319]!, self._r[2319]!, [_0]) } - public var Channel_Info_Management: String { return self._s[2319]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[2320]! } - public var Stickers_FrequentlyUsed: String { return self._s[2321]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[2322]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2324]! } + public var Channel_Info_Management: String { return self._s[2320]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[2321]! } + public var Stickers_FrequentlyUsed: String { return self._s[2322]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[2323]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[2325]! } public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2325]!, self._r[2325]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[2326]!, self._r[2326]!, [_1, "\(_2)"]) } - public var TwoFactorSetup_Password_Title: String { return self._s[2326]! } - public var Passport_Address_EditResidentialAddress: String { return self._s[2327]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[2328]! } - public var CreatePoll_TextHeader: String { return self._s[2329]! } + public var TwoFactorSetup_Password_Title: String { return self._s[2327]! } + public var Passport_Address_EditResidentialAddress: String { return self._s[2328]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[2329]! } + public var CreatePoll_TextHeader: String { return self._s[2330]! } public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2330]!, self._r[2330]!, [_0]) + return formatWithArgumentRanges(self._s[2331]!, self._r[2331]!, [_0]) } - public var PhotoEditor_QualityMedium: String { return self._s[2331]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2332]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[2334]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[2335]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[2336]! } + public var PhotoEditor_QualityMedium: String { return self._s[2332]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[2333]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[2335]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[2336]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[2337]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2337]!, self._r[2337]!, [_0]) + return formatWithArgumentRanges(self._s[2338]!, self._r[2338]!, [_0]) } public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2338]!, self._r[2338]!, [_1]) + return formatWithArgumentRanges(self._s[2339]!, self._r[2339]!, [_1]) } - public var LogoutOptions_LogOutWalletInfo: String { return self._s[2339]! } - public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2340]! } - public var Conversation_LinkDialogOpen: String { return self._s[2342]! } - public var TwoFactorSetup_Hint_Title: String { return self._s[2343]! } - public var VoiceOver_Chat_PollNoVotes: String { return self._s[2344]! } - public var Settings_Username: String { return self._s[2346]! } - public var Conversation_Block: String { return self._s[2348]! } - public var Wallpaper_Wallpaper: String { return self._s[2349]! } - public var SocksProxySetup_UseProxy: String { return self._s[2351]! } - public var Wallet_Send_Confirmation: String { return self._s[2352]! } - public var EditTheme_UploadEditedTheme: String { return self._s[2353]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[2354]! } - public var MessageTimer_Forever: String { return self._s[2355]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[2356]! } - public var PhotoEditor_DiscardChanges: String { return self._s[2357]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2358]! } - public var Passport_Language_da: String { return self._s[2359]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[2360]! } + public var LogoutOptions_LogOutWalletInfo: String { return self._s[2340]! } + public var TwoFactorSetup_Email_SkipConfirmationTitle: String { return self._s[2341]! } + public var Conversation_LinkDialogOpen: String { return self._s[2343]! } + public var TwoFactorSetup_Hint_Title: String { return self._s[2344]! } + public var VoiceOver_Chat_PollNoVotes: String { return self._s[2345]! } + public var Settings_Username: String { return self._s[2347]! } + public var Conversation_Block: String { return self._s[2349]! } + public var Wallpaper_Wallpaper: String { return self._s[2350]! } + public var SocksProxySetup_UseProxy: String { return self._s[2352]! } + public var Wallet_Send_Confirmation: String { return self._s[2353]! } + public var EditTheme_UploadEditedTheme: String { return self._s[2354]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[2355]! } + public var MessageTimer_Forever: String { return self._s[2356]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[2357]! } + public var PhotoEditor_DiscardChanges: String { return self._s[2358]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[2359]! } + public var Passport_Language_da: String { return self._s[2360]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[2361]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2361]!, self._r[2361]!, [_0]) + return formatWithArgumentRanges(self._s[2362]!, self._r[2362]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[2362]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[2363]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2364]!, self._r[2364]!, [_0]) + return formatWithArgumentRanges(self._s[2365]!, self._r[2365]!, [_0]) } - public var Settings_AddDevice: String { return self._s[2365]! } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2367]! } - public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2368]! } - public var Conversation_SearchByName_Prefix: String { return self._s[2369]! } - public var Conversation_PinnedPoll: String { return self._s[2370]! } - public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2371]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2372]! } - public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2373]! } + public var Settings_AddDevice: String { return self._s[2366]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[2368]! } + public var AuthSessions_AddDeviceIntro_Text1: String { return self._s[2369]! } + public var Conversation_SearchByName_Prefix: String { return self._s[2370]! } + public var Conversation_PinnedPoll: String { return self._s[2371]! } + public var AuthSessions_AddDeviceIntro_Text2: String { return self._s[2372]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[2373]! } + public var AuthSessions_AddDeviceIntro_Text3: String { return self._s[2374]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2374]!, self._r[2374]!, [_1]) + return formatWithArgumentRanges(self._s[2375]!, self._r[2375]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[2375]! } - public var Cache_ByPeerHeader: String { return self._s[2376]! } + public var WallpaperSearch_ColorPurple: String { return self._s[2376]! } + public var Cache_ByPeerHeader: String { return self._s[2377]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2377]!, self._r[2377]!, [_0]) + return formatWithArgumentRanges(self._s[2378]!, self._r[2378]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[2378]! } - public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2381]! } - public var Wallet_Completed_Title: String { return self._s[2382]! } - public var Notification_PinnedMessage: String { return self._s[2383]! } - public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2384]! } - public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2386]! } - public var Contacts_SortBy: String { return self._s[2387]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[2379]! } + public var Appearance_ThemePreview_Chat_3_Text: String { return self._s[2382]! } + public var Wallet_Completed_Title: String { return self._s[2383]! } + public var Notification_PinnedMessage: String { return self._s[2384]! } + public var TwoFactorSetup_EmailVerification_Placeholder: String { return self._s[2385]! } + public var VoiceOver_Chat_RecordModeVideoMessage: String { return self._s[2387]! } + public var Contacts_SortBy: String { return self._s[2388]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2388]!, self._r[2388]!, [_1]) + return formatWithArgumentRanges(self._s[2389]!, self._r[2389]!, [_1]) } - public var Appearance_ColorThemeNight: String { return self._s[2390]! } + public var Appearance_ColorThemeNight: String { return self._s[2391]! } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2391]!, self._r[2391]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2392]!, self._r[2392]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[2392]! } - public var Watch_UserInfo_Service: String { return self._s[2393]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2395]! } - public var Conversation_Unpin: String { return self._s[2397]! } - public var CancelResetAccount_Title: String { return self._s[2398]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[2399]! } + public var Call_EncryptionKey_Title: String { return self._s[2393]! } + public var Watch_UserInfo_Service: String { return self._s[2394]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[2396]! } + public var Conversation_Unpin: String { return self._s[2398]! } + public var CancelResetAccount_Title: String { return self._s[2399]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[2400]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2401]!, self._r[2401]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2402]!, self._r[2402]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2402]! } - public var CallSettings_Title: String { return self._s[2403]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2404]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[2406]! } - public var AutoDownloadSettings_Contacts: String { return self._s[2407]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[2403]! } + public var CallSettings_Title: String { return self._s[2404]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2405]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[2407]! } + public var AutoDownloadSettings_Contacts: String { return self._s[2408]! } public func Channel_AdminLog_MessageRankName(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2408]!, self._r[2408]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2409]!, self._r[2409]!, [_1, _2]) } - public var Passport_Identity_DocumentDetails: String { return self._s[2409]! } - public var LoginPassword_PasswordHelp: String { return self._s[2410]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2411]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2412]! } - public var ChatContextMenu_TextSelectionTip: String { return self._s[2413]! } - public var Checkout_TotalPaidAmount: String { return self._s[2414]! } + public var Passport_Identity_DocumentDetails: String { return self._s[2410]! } + public var LoginPassword_PasswordHelp: String { return self._s[2411]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2412]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2413]! } + public var ChatContextMenu_TextSelectionTip: String { return self._s[2414]! } + public var Checkout_TotalPaidAmount: String { return self._s[2415]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2415]!, self._r[2415]!, [_0]) + return formatWithArgumentRanges(self._s[2416]!, self._r[2416]!, [_0]) } - public var PasscodeSettings_ChangePasscode: String { return self._s[2416]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[2418]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[2419]! } + public var PasscodeSettings_ChangePasscode: String { return self._s[2417]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[2419]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[2420]! } public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2420]!, self._r[2420]!, [_1]) + return formatWithArgumentRanges(self._s[2421]!, self._r[2421]!, [_1]) } - public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2421]! } - public var Contacts_InviteFriends: String { return self._s[2423]! } - public var Map_ChooseLocationTitle: String { return self._s[2424]! } - public var Conversation_StopPoll: String { return self._s[2426]! } + public var VoiceOver_Chat_ReplyToYourMessage: String { return self._s[2422]! } + public var Contacts_InviteFriends: String { return self._s[2424]! } + public var Map_ChooseLocationTitle: String { return self._s[2425]! } + public var Conversation_StopPoll: String { return self._s[2427]! } public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2427]!, self._r[2427]!, [_0]) + return formatWithArgumentRanges(self._s[2428]!, self._r[2428]!, [_0]) } - public var Call_Camera: String { return self._s[2428]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2429]! } - public var AppWallet_Intro_Text: String { return self._s[2430]! } - public var Calls_RatingFeedback: String { return self._s[2431]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2433]! } - public var Wallet_Alert_OK: String { return self._s[2434]! } - public var NotificationsSound_Pulse: String { return self._s[2435]! } - public var Watch_LastSeen_Lately: String { return self._s[2436]! } - public var ReportGroupLocation_Report: String { return self._s[2439]! } - public var Widget_NoUsers: String { return self._s[2440]! } - public var Conversation_UnvotePoll: String { return self._s[2441]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2443]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2444]! } - public var NotificationsSound_Circles: String { return self._s[2445]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2448]! } - public var Wallet_Settings_DeleteWallet: String { return self._s[2449]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2450]! } - public var Proxy_TooltipUnavailable: String { return self._s[2451]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2453]! } - public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2455]! } - public var Conversation_FileDropbox: String { return self._s[2456]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[2457]! } - public var Tour_Text3: String { return self._s[2459]! } - public var Login_ResetAccountProtected_Title: String { return self._s[2461]! } - public var GroupPermission_NoSendMessages: String { return self._s[2462]! } - public var WallpaperSearch_ColorTitle: String { return self._s[2463]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2464]! } + public var Call_Camera: String { return self._s[2429]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2430]! } + public var AppWallet_Intro_Text: String { return self._s[2431]! } + public var Calls_RatingFeedback: String { return self._s[2432]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2434]! } + public var Wallet_Alert_OK: String { return self._s[2435]! } + public var NotificationsSound_Pulse: String { return self._s[2436]! } + public var Watch_LastSeen_Lately: String { return self._s[2437]! } + public var ReportGroupLocation_Report: String { return self._s[2440]! } + public var Widget_NoUsers: String { return self._s[2441]! } + public var Conversation_UnvotePoll: String { return self._s[2442]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2444]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2445]! } + public var NotificationsSound_Circles: String { return self._s[2446]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2449]! } + public var Wallet_Settings_DeleteWallet: String { return self._s[2450]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2451]! } + public var Proxy_TooltipUnavailable: String { return self._s[2452]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2454]! } + public var GroupInfo_Permissions_SlowmodeInfo: String { return self._s[2456]! } + public var Conversation_FileDropbox: String { return self._s[2457]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[2458]! } + public var Tour_Text3: String { return self._s[2460]! } + public var Login_ResetAccountProtected_Title: String { return self._s[2462]! } + public var GroupPermission_NoSendMessages: String { return self._s[2463]! } + public var WallpaperSearch_ColorTitle: String { return self._s[2464]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2465]! } public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2466]!, self._r[2466]!, [_0]) + return formatWithArgumentRanges(self._s[2467]!, self._r[2467]!, [_0]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[2467]! } - public var Checkout_ShippingOption_Title: String { return self._s[2468]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2469]! } + public var GroupInfo_AddParticipantTitle: String { return self._s[2468]! } + public var Checkout_ShippingOption_Title: String { return self._s[2469]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2470]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2470]!, self._r[2470]!, [_0]) - } - public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2471]!, self._r[2471]!, [_0]) } - public var Channel_Management_LabelAdministrator: String { return self._s[2472]! } - public var EditTheme_FileReadError: String { return self._s[2473]! } - public var OwnershipTransfer_ComeBackLater: String { return self._s[2474]! } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2475]! } - public var AutoDownloadSettings_Photos: String { return self._s[2477]! } - public var Appearance_PreviewIncomingText: String { return self._s[2478]! } - public var ChatList_Context_MarkAllAsRead: String { return self._s[2479]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[2480]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2481]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2482]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2483]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2484]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2485]! } - public var Notification_SecretChatScreenshot: String { return self._s[2486]! } - public var AccessDenied_Wallpapers: String { return self._s[2487]! } - public var ChatList_Context_Mute: String { return self._s[2489]! } - public var Passport_Address_City: String { return self._s[2490]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2491]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[2492]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2493]! } - public var AccessDenied_LocationDisabled: String { return self._s[2494]! } - public var Group_Location_Title: String { return self._s[2495]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2497]! } - public var GroupInfo_Sound: String { return self._s[2498]! } - public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2499]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[2500]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2501]! } - public var Contacts_Title: String { return self._s[2502]! } - public var EditTheme_ThemeTemplateAlertText: String { return self._s[2503]! } - public var Passport_Language_fr: String { return self._s[2504]! } - public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2505]! } - public var Notifications_ResetAllNotifications: String { return self._s[2506]! } - public var IntentsSettings_SuggestedChats: String { return self._s[2508]! } - public var PrivacySettings_SecurityTitle: String { return self._s[2510]! } - public var Checkout_NewCard_Title: String { return self._s[2511]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[2512]! } - public var Conversation_ForwardChats: String { return self._s[2513]! } - public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2515]! } - public var PasscodeSettings_4DigitCode: String { return self._s[2516]! } - public var Settings_FAQ: String { return self._s[2518]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2519]! } - public var Conversation_ContextMenuForward: String { return self._s[2520]! } - public var VoiceOver_Chat_YourPhoto: String { return self._s[2523]! } - public var PrivacyPolicy_Title: String { return self._s[2526]! } - public var Notifications_TextTone: String { return self._s[2527]! } - public var Profile_CreateNewContact: String { return self._s[2528]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2529]! } - public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2531]! } - public var Call_Speaker: String { return self._s[2532]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2533]! } - public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2535]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2536]! } + public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2472]!, self._r[2472]!, [_0]) + } + public var Channel_Management_LabelAdministrator: String { return self._s[2473]! } + public var EditTheme_FileReadError: String { return self._s[2474]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[2475]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2476]! } + public var AutoDownloadSettings_Photos: String { return self._s[2478]! } + public var Appearance_PreviewIncomingText: String { return self._s[2479]! } + public var ChatList_Context_MarkAllAsRead: String { return self._s[2480]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[2481]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2482]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2483]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2484]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2485]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2486]! } + public var Notification_SecretChatScreenshot: String { return self._s[2487]! } + public var AccessDenied_Wallpapers: String { return self._s[2488]! } + public var ChatList_Context_Mute: String { return self._s[2490]! } + public var Passport_Address_City: String { return self._s[2491]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2492]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[2493]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2494]! } + public var AccessDenied_LocationDisabled: String { return self._s[2495]! } + public var Group_Location_Title: String { return self._s[2496]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2498]! } + public var GroupInfo_Sound: String { return self._s[2499]! } + public var SettingsSearch_Synonyms_ChatSettings_OpenLinksIn: String { return self._s[2500]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[2501]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2502]! } + public var Contacts_Title: String { return self._s[2503]! } + public var EditTheme_ThemeTemplateAlertText: String { return self._s[2504]! } + public var Passport_Language_fr: String { return self._s[2505]! } + public var TwoFactorSetup_EmailVerification_Action: String { return self._s[2506]! } + public var Notifications_ResetAllNotifications: String { return self._s[2507]! } + public var IntentsSettings_SuggestedChats: String { return self._s[2509]! } + public var PrivacySettings_SecurityTitle: String { return self._s[2511]! } + public var Checkout_NewCard_Title: String { return self._s[2512]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[2513]! } + public var Conversation_ForwardChats: String { return self._s[2514]! } + public var Wallet_SecureStorageReset_PasscodeText: String { return self._s[2516]! } + public var PasscodeSettings_4DigitCode: String { return self._s[2517]! } + public var Settings_FAQ: String { return self._s[2519]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2520]! } + public var Conversation_ContextMenuForward: String { return self._s[2521]! } + public var VoiceOver_Chat_YourPhoto: String { return self._s[2524]! } + public var PrivacyPolicy_Title: String { return self._s[2527]! } + public var Notifications_TextTone: String { return self._s[2528]! } + public var Profile_CreateNewContact: String { return self._s[2529]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2530]! } + public var TwoFactorSetup_EmailVerification_Title: String { return self._s[2532]! } + public var Call_Speaker: String { return self._s[2533]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2534]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2536]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2537]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2537]!, self._r[2537]!, [_0]) + return formatWithArgumentRanges(self._s[2538]!, self._r[2538]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2538]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2539]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2540]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2541]! } - public var OwnershipTransfer_SecurityCheck: String { return self._s[2542]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2543]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2544]! } - public var Bot_Unblock: String { return self._s[2545]! } - public var TextFormat_Italic: String { return self._s[2546]! } - public var WallpaperSearch_ColorPink: String { return self._s[2547]! } - public var Settings_About_Help: String { return self._s[2549]! } - public var SearchImages_Title: String { return self._s[2550]! } - public var Weekday_Wednesday: String { return self._s[2551]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2552]! } - public var ExplicitContent_AlertTitle: String { return self._s[2553]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2539]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2540]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2541]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2542]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[2543]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2544]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2545]! } + public var Bot_Unblock: String { return self._s[2546]! } + public var TextFormat_Italic: String { return self._s[2547]! } + public var WallpaperSearch_ColorPink: String { return self._s[2548]! } + public var Settings_About_Help: String { return self._s[2550]! } + public var SearchImages_Title: String { return self._s[2551]! } + public var Weekday_Wednesday: String { return self._s[2552]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2553]! } + public var ExplicitContent_AlertTitle: String { return self._s[2554]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2554]!, self._r[2554]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2555]!, self._r[2555]!, [_1, _2, _3]) } - public var Channel_DiscussionGroup_Create: String { return self._s[2555]! } - public var Weekday_Thursday: String { return self._s[2556]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2557]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2558]! } + public var Channel_DiscussionGroup_Create: String { return self._s[2556]! } + public var Weekday_Thursday: String { return self._s[2557]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2558]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2559]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2559]!, self._r[2559]!, [_0]) + return formatWithArgumentRanges(self._s[2560]!, self._r[2560]!, [_0]) } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2560]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2561]! } - public var Passport_RequestedInformation: String { return self._s[2562]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2563]! } - public var Conversation_EncryptionProcessing: String { return self._s[2565]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2566]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2568]! } - public var Channel_Setup_Title: String { return self._s[2569]! } - public var Conversation_SearchPlaceholder: String { return self._s[2570]! } - public var OldChannels_GroupEmptyFormat: String { return self._s[2571]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2572]! } - public var Checkout_ErrorGeneric: String { return self._s[2573]! } - public var Passport_Language_hu: String { return self._s[2574]! } - public var GroupPermission_EditingDisabled: String { return self._s[2575]! } - public var Wallet_Month_ShortSeptember: String { return self._s[2577]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2561]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2562]! } + public var Passport_RequestedInformation: String { return self._s[2563]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2564]! } + public var Conversation_EncryptionProcessing: String { return self._s[2566]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2567]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2569]! } + public var Channel_Setup_Title: String { return self._s[2570]! } + public var Conversation_SearchPlaceholder: String { return self._s[2571]! } + public var OldChannels_GroupEmptyFormat: String { return self._s[2572]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2573]! } + public var Checkout_ErrorGeneric: String { return self._s[2574]! } + public var Passport_Language_hu: String { return self._s[2575]! } + public var GroupPermission_EditingDisabled: String { return self._s[2576]! } + public var Wallet_Month_ShortSeptember: String { return self._s[2578]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2578]!, self._r[2578]!, [_0]) + return formatWithArgumentRanges(self._s[2579]!, self._r[2579]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2581]!, self._r[2581]!, [_1]) + return formatWithArgumentRanges(self._s[2582]!, self._r[2582]!, [_1]) } - public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2582]! } + public var ChatList_DeleteSavedMessagesConfirmationTitle: String { return self._s[2583]! } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2583]!, self._r[2583]!, [_0]) + return formatWithArgumentRanges(self._s[2584]!, self._r[2584]!, [_0]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2584]! } - public var Group_Location_Info: String { return self._s[2585]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2586]! } - public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2587]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2585]! } + public var Group_Location_Info: String { return self._s[2586]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2587]! } + public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2588]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2588]!, self._r[2588]!, [_0]) + return formatWithArgumentRanges(self._s[2589]!, self._r[2589]!, [_0]) } - public var Conversation_ClearPrivateHistory: String { return self._s[2589]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2590]! } - public var Appearance_RemoveThemeConfirmation: String { return self._s[2591]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2592]! } + public var Conversation_ClearPrivateHistory: String { return self._s[2590]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2591]! } + public var Appearance_RemoveThemeConfirmation: String { return self._s[2592]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2593]! } public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2593]!, self._r[2593]!, [_0]) + return formatWithArgumentRanges(self._s[2594]!, self._r[2594]!, [_0]) } - public var Passport_Language_cs: String { return self._s[2594]! } - public var Message_PinnedAnimationMessage: String { return self._s[2596]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2598]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2599]! } - public var Wallet_Info_TransactionTo: String { return self._s[2601]! } - public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2602]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2603]! } - public var Embed_PlayingInPIP: String { return self._s[2604]! } - public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2605]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2606]! } + public var Passport_Language_cs: String { return self._s[2595]! } + public var Message_PinnedAnimationMessage: String { return self._s[2597]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2599]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2600]! } + public var Wallet_Info_TransactionTo: String { return self._s[2602]! } + public var ChatList_DeleteForEveryoneConfirmationText: String { return self._s[2603]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2604]! } + public var Embed_PlayingInPIP: String { return self._s[2605]! } + public var Appearance_ThemePreview_Chat_3_TextWithLink: String { return self._s[2606]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2607]! } public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2607]!, self._r[2607]!, [_0]) + return formatWithArgumentRanges(self._s[2608]!, self._r[2608]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2608]! } + public var MediaPicker_LivePhotoDescription: String { return self._s[2609]! } public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2609]!, self._r[2609]!, [_1]) + return formatWithArgumentRanges(self._s[2610]!, self._r[2610]!, [_1]) } - public var Notification_PaymentSent: String { return self._s[2610]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2611]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2612]! } - public var AutoNightTheme_System: String { return self._s[2613]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2614]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2615]! } - public var VoiceOver_Chat_PagePreview: String { return self._s[2616]! } + public var Notification_PaymentSent: String { return self._s[2611]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2612]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2613]! } + public var AutoNightTheme_System: String { return self._s[2614]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2615]! } + public var CreatePoll_QuizTitle: String { return self._s[2616]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2617]! } + public var VoiceOver_Chat_PagePreview: String { return self._s[2618]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2619]!, self._r[2619]!, [_1]) - } - public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2620]!, self._r[2620]!, [_1]) - } - public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2621]!, self._r[2621]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2623]! } - public var PasscodeSettings_HelpTop: String { return self._s[2624]! } - public var Conversation_WalletRequiredTitle: String { return self._s[2625]! } - public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2626]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2627]! } - public var EditTheme_ShortLink: String { return self._s[2628]! } - public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2629]! } - public var ProxyServer_VoiceOver_Active: String { return self._s[2630]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2631]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2632]! } - public var Call_Accept: String { return self._s[2634]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2635]! } - public var Month_GenMarch: String { return self._s[2637]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2638]! } - public var LoginPassword_Title: String { return self._s[2639]! } - public var Call_End: String { return self._s[2640]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2641]! } - public var VoiceOver_Chat_Contact: String { return self._s[2642]! } - public var EditTheme_Create_Preview_IncomingText: String { return self._s[2643]! } - public var CallSettings_Always: String { return self._s[2644]! } - public var CallFeedback_Success: String { return self._s[2645]! } - public var TwoStepAuth_SetupHint: String { return self._s[2646]! } + public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2622]!, self._r[2622]!, [_1]) + } + public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2623]!, self._r[2623]!, [_1]) + } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2625]! } + public var PasscodeSettings_HelpTop: String { return self._s[2626]! } + public var Conversation_WalletRequiredTitle: String { return self._s[2627]! } + public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2628]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2629]! } + public var EditTheme_ShortLink: String { return self._s[2630]! } + public var Theme_Colors_ColorWallpaperWarning: String { return self._s[2631]! } + public var ProxyServer_VoiceOver_Active: String { return self._s[2632]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2633]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2634]! } + public var Call_Accept: String { return self._s[2636]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2637]! } + public var Month_GenMarch: String { return self._s[2639]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2640]! } + public var LoginPassword_Title: String { return self._s[2641]! } + public var Call_End: String { return self._s[2642]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2643]! } + public var VoiceOver_Chat_Contact: String { return self._s[2644]! } + public var EditTheme_Create_Preview_IncomingText: String { return self._s[2645]! } + public var CallSettings_Always: String { return self._s[2646]! } + public var CallFeedback_Success: String { return self._s[2647]! } + public var TwoStepAuth_SetupHint: String { return self._s[2648]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2647]!, self._r[2647]!, [_1]) + return formatWithArgumentRanges(self._s[2649]!, self._r[2649]!, [_1]) } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2648]! } - public var Login_PhoneTitle: String { return self._s[2649]! } - public var Passport_FieldPhoneHelp: String { return self._s[2650]! } - public var Weekday_ShortSunday: String { return self._s[2651]! } - public var Passport_InfoFAQ_URL: String { return self._s[2652]! } - public var ContactInfo_Job: String { return self._s[2654]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2655]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[2656]! } - public var CreatePoll_QuizTip: String { return self._s[2657]! } - public var TwoFactorSetup_Email_Text: String { return self._s[2658]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2659]! } - public var Invite_ChannelsTooMuch: String { return self._s[2660]! } - public var Wallet_Send_ConfirmationConfirm: String { return self._s[2661]! } - public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2662]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2663]! } - public var Wallet_Receive_AmountText: String { return self._s[2664]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2665]! } - public var CallFeedback_ReasonNoise: String { return self._s[2666]! } - public var Appearance_AppIconDefault: String { return self._s[2668]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2669]! } - public var MediaPicker_AddCaption: String { return self._s[2670]! } - public var CallSettings_TabIconDescription: String { return self._s[2671]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2650]! } + public var Login_PhoneTitle: String { return self._s[2651]! } + public var Passport_FieldPhoneHelp: String { return self._s[2652]! } + public var Weekday_ShortSunday: String { return self._s[2653]! } + public var Passport_InfoFAQ_URL: String { return self._s[2654]! } + public var ContactInfo_Job: String { return self._s[2656]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2657]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[2658]! } + public var CreatePoll_QuizTip: String { return self._s[2659]! } + public var TwoFactorSetup_Email_Text: String { return self._s[2660]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2661]! } + public var Invite_ChannelsTooMuch: String { return self._s[2662]! } + public var Wallet_Send_ConfirmationConfirm: String { return self._s[2663]! } + public var Wallet_TransactionInfo_OtherFeeInfo: String { return self._s[2664]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2665]! } + public var Wallet_Receive_AmountText: String { return self._s[2666]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2667]! } + public var CallFeedback_ReasonNoise: String { return self._s[2668]! } + public var Appearance_AppIconDefault: String { return self._s[2670]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2671]! } + public var MediaPicker_AddCaption: String { return self._s[2672]! } + public var CallSettings_TabIconDescription: String { return self._s[2673]! } public func VoiceOver_Chat_Caption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2672]!, self._r[2672]!, [_0]) - } - public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2673]! } - public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2674]!, self._r[2674]!, [_0]) } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2675]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2676]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2677]! } - public var DialogList_SearchSectionRecent: String { return self._s[2678]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2679]! } - public var CreatePoll_Anonymous: String { return self._s[2680]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2683]! } - public var LastSeen_WithinAWeek: String { return self._s[2684]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2685]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2687]! } - public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2688]! } + public var IntentsSettings_SuggestedChatsGroups: String { return self._s[2675]! } + public func Map_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2676]!, self._r[2676]!, [_0]) + } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2677]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2678]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2679]! } + public var DialogList_SearchSectionRecent: String { return self._s[2680]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2681]! } + public var CreatePoll_Anonymous: String { return self._s[2682]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2685]! } + public var LastSeen_WithinAWeek: String { return self._s[2686]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2687]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2689]! } + public var VoiceOver_Media_PlaybackRateNormal: String { return self._s[2690]! } public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2689]!, self._r[2689]!, [_0]) + return formatWithArgumentRanges(self._s[2691]!, self._r[2691]!, [_0]) } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2690]! } - public var Conversation_StatusLeftGroup: String { return self._s[2691]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2692]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2694]! } - public var GroupPermission_AddSuccess: String { return self._s[2695]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2697]! } - public var Conversation_ContextMenuCopy: String { return self._s[2698]! } - public var AccessDenied_CallMicrophone: String { return self._s[2699]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2692]! } + public var Conversation_StatusLeftGroup: String { return self._s[2693]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2694]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2696]! } + public var GroupPermission_AddSuccess: String { return self._s[2697]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2699]! } + public var Conversation_ContextMenuCopy: String { return self._s[2700]! } + public var AccessDenied_CallMicrophone: String { return self._s[2701]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2700]!, self._r[2700]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2702]!, self._r[2702]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2701]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2702]! } - public var Checkout_PaymentMethod_New: String { return self._s[2703]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2704]! } - public var PhotoEditor_QualityTool: String { return self._s[2705]! } - public var Login_SendCodeViaSms: String { return self._s[2706]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2707]! } - public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2708]! } - public var Wallet_Receive_CopyAddress: String { return self._s[2709]! } - public var Login_EmailNotConfiguredError: String { return self._s[2710]! } - public var SocksProxySetup_Status: String { return self._s[2711]! } - public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2712]! } - public var PrivacyPolicy_Accept: String { return self._s[2713]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2714]! } - public var Appearance_AppIconClassicX: String { return self._s[2715]! } + public var Login_InvalidFirstNameError: String { return self._s[2703]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2704]! } + public var Checkout_PaymentMethod_New: String { return self._s[2705]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2706]! } + public var PhotoEditor_QualityTool: String { return self._s[2707]! } + public var Login_SendCodeViaSms: String { return self._s[2708]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2709]! } + public var Chat_SlowmodeAttachmentLimitReached: String { return self._s[2710]! } + public var Wallet_Receive_CopyAddress: String { return self._s[2711]! } + public var Login_EmailNotConfiguredError: String { return self._s[2712]! } + public var SocksProxySetup_Status: String { return self._s[2713]! } + public var Conversation_ScheduleMessage_SendWhenOnline: String { return self._s[2714]! } + public var PrivacyPolicy_Accept: String { return self._s[2715]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2716]! } + public var Appearance_AppIconClassicX: String { return self._s[2717]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2716]!, self._r[2716]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2718]!, self._r[2718]!, [_1, _2, _3]) } - public var OwnershipTransfer_SecurityRequirements: String { return self._s[2717]! } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2719]! } - public var AutoNightTheme_Automatic: String { return self._s[2720]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2721]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2722]! } - public var Cache_Help: String { return self._s[2723]! } - public var Group_ErrorAccessDenied: String { return self._s[2724]! } - public var Passport_Language_fa: String { return self._s[2725]! } - public var Wallet_Intro_Text: String { return self._s[2726]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2727]! } - public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2728]! } - public var PrivacySettings_LastSeen: String { return self._s[2729]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[2719]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2721]! } + public var AutoNightTheme_Automatic: String { return self._s[2722]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2723]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2724]! } + public var Cache_Help: String { return self._s[2725]! } + public var Group_ErrorAccessDenied: String { return self._s[2726]! } + public var Passport_Language_fa: String { return self._s[2727]! } + public var Wallet_Intro_Text: String { return self._s[2728]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2729]! } + public var VoiceOver_Chat_YourVideoMessage: String { return self._s[2730]! } + public var PrivacySettings_LastSeen: String { return self._s[2731]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2730]!, self._r[2730]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2732]!, self._r[2732]!, [_0, _1]) } - public var Wallet_Configuration_Apply: String { return self._s[2734]! } - public var Preview_SaveGif: String { return self._s[2735]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2736]! } - public var Profile_About: String { return self._s[2737]! } - public var Channel_About_Placeholder: String { return self._s[2738]! } - public var Login_InfoTitle: String { return self._s[2739]! } + public var Wallet_Configuration_Apply: String { return self._s[2736]! } + public var Preview_SaveGif: String { return self._s[2737]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2738]! } + public var Profile_About: String { return self._s[2739]! } + public var Channel_About_Placeholder: String { return self._s[2740]! } + public var Login_InfoTitle: String { return self._s[2741]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2740]!, self._r[2740]!, [_0]) + return formatWithArgumentRanges(self._s[2742]!, self._r[2742]!, [_0]) } - public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2741]! } - public var Watch_Suggestion_CantTalk: String { return self._s[2743]! } - public var ContactInfo_Title: String { return self._s[2744]! } - public var Media_ShareThisVideo: String { return self._s[2745]! } - public var Weekday_ShortFriday: String { return self._s[2746]! } - public var AccessDenied_Contacts: String { return self._s[2748]! } - public var Notification_CallIncomingShort: String { return self._s[2749]! } - public var Group_Setup_TypePublic: String { return self._s[2750]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2751]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2752]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2755]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2756]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2757]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2758]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2759]! } + public var EditTheme_Expand_Preview_IncomingReplyText: String { return self._s[2743]! } + public var Watch_Suggestion_CantTalk: String { return self._s[2745]! } + public var ContactInfo_Title: String { return self._s[2746]! } + public var Media_ShareThisVideo: String { return self._s[2747]! } + public var Weekday_ShortFriday: String { return self._s[2748]! } + public var AccessDenied_Contacts: String { return self._s[2750]! } + public var Notification_CallIncomingShort: String { return self._s[2751]! } + public var Group_Setup_TypePublic: String { return self._s[2752]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2753]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[2754]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[2757]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2758]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2759]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2760]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2761]! } public func Wallet_SecureStorageChanged_BiometryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2760]!, self._r[2760]!, [_0]) + return formatWithArgumentRanges(self._s[2762]!, self._r[2762]!, [_0]) } - public var DialogList_Typing: String { return self._s[2761]! } - public var CallFeedback_IncludeLogs: String { return self._s[2763]! } - public var Checkout_Phone: String { return self._s[2765]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[2768]! } - public var Privacy_Calls_Integration: String { return self._s[2769]! } - public var Notifications_PermissionsAllow: String { return self._s[2770]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[2774]! } - public var Settings_ChatSettings: String { return self._s[2775]! } - public var Conversation_SendingOptionsTooltip: String { return self._s[2776]! } + public var DialogList_Typing: String { return self._s[2763]! } + public var CallFeedback_IncludeLogs: String { return self._s[2765]! } + public var Checkout_Phone: String { return self._s[2767]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[2770]! } + public var Privacy_Calls_Integration: String { return self._s[2771]! } + public var Notifications_PermissionsAllow: String { return self._s[2772]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[2776]! } + public var Settings_ChatSettings: String { return self._s[2777]! } + public var Conversation_SendingOptionsTooltip: String { return self._s[2778]! } public func UserInfo_StartSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2778]!, self._r[2778]!, [_0]) + return formatWithArgumentRanges(self._s[2780]!, self._r[2780]!, [_0]) } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2779]!, self._r[2779]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2781]!, self._r[2781]!, [_1, _2]) } - public var GroupRemoved_DeleteUser: String { return self._s[2781]! } + public var GroupRemoved_DeleteUser: String { return self._s[2783]! } public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2782]!, self._r[2782]!, [_0]) + return formatWithArgumentRanges(self._s[2784]!, self._r[2784]!, [_0]) } public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2783]!, self._r[2783]!, [_1]) + return formatWithArgumentRanges(self._s[2785]!, self._r[2785]!, [_1]) } - public var Login_ContinueWithLocalization: String { return self._s[2784]! } - public var Watch_Message_ForwardedFrom: String { return self._s[2785]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[2787]! } - public var Conversation_Unblock: String { return self._s[2788]! } - public var PrivacySettings_DataSettings: String { return self._s[2789]! } - public var WallpaperPreview_PatternPaternApply: String { return self._s[2790]! } - public var Group_PublicLink_Info: String { return self._s[2791]! } + public var Login_ContinueWithLocalization: String { return self._s[2786]! } + public var Watch_Message_ForwardedFrom: String { return self._s[2787]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[2789]! } + public var Conversation_Unblock: String { return self._s[2790]! } + public var PrivacySettings_DataSettings: String { return self._s[2791]! } + public var WallpaperPreview_PatternPaternApply: String { return self._s[2792]! } + public var Group_PublicLink_Info: String { return self._s[2793]! } public func Wallet_Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2792]!, self._r[2792]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2794]!, self._r[2794]!, [_1, _2, _3]) } - public var Notifications_InAppNotificationsVibrate: String { return self._s[2793]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[2795]! } public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2794]!, self._r[2794]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2796]!, self._r[2796]!, [_0, _1]) } - public var OldChannels_ChannelsHeader: String { return self._s[2796]! } - public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2797]! } - public var PrivacySettings_Passcode: String { return self._s[2799]! } - public var Call_Mute: String { return self._s[2800]! } - public var Wallet_Weekday_Yesterday: String { return self._s[2801]! } - public var Passport_Language_dz: String { return self._s[2802]! } - public var Wallet_Receive_AmountHeader: String { return self._s[2803]! } - public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2804]! } - public var Passport_Language_tk: String { return self._s[2805]! } + public var OldChannels_ChannelsHeader: String { return self._s[2798]! } + public var Wallet_RestoreFailed_CreateWallet: String { return self._s[2799]! } + public var PrivacySettings_Passcode: String { return self._s[2801]! } + public var Call_Mute: String { return self._s[2802]! } + public var Wallet_Weekday_Yesterday: String { return self._s[2803]! } + public var Passport_Language_dz: String { return self._s[2804]! } + public var Wallet_Receive_AmountHeader: String { return self._s[2805]! } + public var Wallet_TransactionInfo_OtherFeeInfoUrl: String { return self._s[2806]! } + public var Passport_Language_tk: String { return self._s[2807]! } public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2806]!, self._r[2806]!, [_0]) + return formatWithArgumentRanges(self._s[2808]!, self._r[2808]!, [_0]) } - public var Settings_Search: String { return self._s[2807]! } - public var Wallet_Month_ShortFebruary: String { return self._s[2808]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2809]! } - public var Wallet_Configuration_SourceJSON: String { return self._s[2810]! } - public var Conversation_ContextMenuReply: String { return self._s[2811]! } - public var WallpaperSearch_ColorBrown: String { return self._s[2812]! } - public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2813]! } - public var Tour_Title1: String { return self._s[2814]! } - public var Wallet_Alert_Cancel: String { return self._s[2815]! } - public var Conversation_ClearGroupHistory: String { return self._s[2817]! } - public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2818]! } - public var WallpaperPreview_Motion: String { return self._s[2819]! } + public var Settings_Search: String { return self._s[2809]! } + public var Wallet_Month_ShortFebruary: String { return self._s[2810]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2811]! } + public var Wallet_Configuration_SourceJSON: String { return self._s[2812]! } + public var Conversation_ContextMenuReply: String { return self._s[2813]! } + public var WallpaperSearch_ColorBrown: String { return self._s[2814]! } + public var Chat_AttachmentMultipleForwardDisabled: String { return self._s[2815]! } + public var Tour_Title1: String { return self._s[2816]! } + public var Wallet_Alert_Cancel: String { return self._s[2817]! } + public var Conversation_ClearGroupHistory: String { return self._s[2819]! } + public var Wallet_TransactionInfo_RecipientHeader: String { return self._s[2820]! } + public var WallpaperPreview_Motion: String { return self._s[2821]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2820]!, self._r[2820]!, [_0]) + return formatWithArgumentRanges(self._s[2822]!, self._r[2822]!, [_0]) } - public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2821]! } - public var Call_RateCall: String { return self._s[2822]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2823]! } - public var Passport_PasswordCompleteSetup: String { return self._s[2824]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2825]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[2827]! } + public var Wallet_Configuration_ApplyErrorTextJSONInvalidData: String { return self._s[2823]! } + public var Call_RateCall: String { return self._s[2824]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2825]! } + public var Passport_PasswordCompleteSetup: String { return self._s[2826]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2827]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[2829]! } public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2829]!, self._r[2829]!, [_0]) + return formatWithArgumentRanges(self._s[2831]!, self._r[2831]!, [_0]) } - public var Compose_Create: String { return self._s[2830]! } - public var Contacts_InviteToTelegram: String { return self._s[2831]! } - public var GroupInfo_Notifications: String { return self._s[2832]! } - public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2834]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[2835]! } - public var Month_GenApril: String { return self._s[2836]! } - public var Appearance_AutoNightTheme: String { return self._s[2837]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[2839]! } - public var Login_CodeSentSms: String { return self._s[2841]! } + public var Compose_Create: String { return self._s[2832]! } + public var Contacts_InviteToTelegram: String { return self._s[2833]! } + public var GroupInfo_Notifications: String { return self._s[2834]! } + public var ChatList_DeleteSavedMessagesConfirmationAction: String { return self._s[2836]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[2837]! } + public var Month_GenApril: String { return self._s[2838]! } + public var Appearance_AutoNightTheme: String { return self._s[2839]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[2841]! } + public var Login_CodeSentSms: String { return self._s[2843]! } public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2842]!, self._r[2842]!, [_0]) + return formatWithArgumentRanges(self._s[2844]!, self._r[2844]!, [_0]) } - public var EmptyGroupInfo_Line3: String { return self._s[2843]! } - public var LogoutOptions_ContactSupportText: String { return self._s[2844]! } - public var Passport_Language_hr: String { return self._s[2845]! } - public var Common_ActionNotAllowedError: String { return self._s[2846]! } + public var EmptyGroupInfo_Line3: String { return self._s[2845]! } + public var LogoutOptions_ContactSupportText: String { return self._s[2846]! } + public var Passport_Language_hr: String { return self._s[2847]! } + public var Common_ActionNotAllowedError: String { return self._s[2848]! } public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2847]!, self._r[2847]!, [_0]) + return formatWithArgumentRanges(self._s[2849]!, self._r[2849]!, [_0]) } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[2848]! } - public var Wallet_Info_TransactionFrom: String { return self._s[2849]! } - public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2850]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2851]! } - public var Privacy_SecretChatsTitle: String { return self._s[2852]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2854]! } - public var GroupInfo_AddUserLeftError: String { return self._s[2855]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2856]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[2857]! } - public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2858]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[2859]! } - public var Preview_DeleteGif: String { return self._s[2860]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2861]! } - public var Group_ErrorNotMutualContact: String { return self._s[2862]! } - public var Notification_MessageLifetime5s: String { return self._s[2863]! } - public var Wallet_Send_OwnAddressAlertText: String { return self._s[2864]! } - public var OldChannels_ChannelFormat: String { return self._s[2865]! } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[2850]! } + public var Wallet_Info_TransactionFrom: String { return self._s[2851]! } + public var Wallet_Send_ErrorDecryptionFailed: String { return self._s[2852]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2853]! } + public var Privacy_SecretChatsTitle: String { return self._s[2854]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2856]! } + public var GroupInfo_AddUserLeftError: String { return self._s[2857]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2858]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[2859]! } + public var Appearance_ThemePreview_Chat_7_Text: String { return self._s[2860]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[2861]! } + public var Preview_DeleteGif: String { return self._s[2862]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2863]! } + public var Group_ErrorNotMutualContact: String { return self._s[2864]! } + public var Notification_MessageLifetime5s: String { return self._s[2865]! } + public var Wallet_Send_OwnAddressAlertText: String { return self._s[2866]! } + public var OldChannels_ChannelFormat: String { return self._s[2867]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2866]!, self._r[2866]!, [_0]) + return formatWithArgumentRanges(self._s[2868]!, self._r[2868]!, [_0]) } - public var VoiceOver_Chat_Video: String { return self._s[2867]! } - public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2869]! } - public var ReportSpam_DeleteThisChat: String { return self._s[2870]! } - public var Passport_Address_AddBankStatement: String { return self._s[2871]! } - public var Notification_CallIncoming: String { return self._s[2872]! } - public var Wallet_Words_NotDoneTitle: String { return self._s[2873]! } - public var Compose_NewGroupTitle: String { return self._s[2874]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2876]! } - public var Passport_Address_Postcode: String { return self._s[2878]! } + public var VoiceOver_Chat_Video: String { return self._s[2869]! } + public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2871]! } + public var ReportSpam_DeleteThisChat: String { return self._s[2872]! } + public var Passport_Address_AddBankStatement: String { return self._s[2873]! } + public var Notification_CallIncoming: String { return self._s[2874]! } + public var Wallet_Words_NotDoneTitle: String { return self._s[2875]! } + public var Compose_NewGroupTitle: String { return self._s[2876]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2878]! } + public var Passport_Address_Postcode: String { return self._s[2880]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2879]!, self._r[2879]!, [_0]) + return formatWithArgumentRanges(self._s[2881]!, self._r[2881]!, [_0]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2880]! } - public var Wallet_Month_ShortOctober: String { return self._s[2881]! } - public var VoiceOver_Chat_YourMusic: String { return self._s[2882]! } - public var WallpaperColors_Title: String { return self._s[2883]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2884]! } - public var VoiceOver_MessageContextForward: String { return self._s[2885]! } - public var GroupPermission_Duration: String { return self._s[2886]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2882]! } + public var Wallet_Month_ShortOctober: String { return self._s[2883]! } + public var VoiceOver_Chat_YourMusic: String { return self._s[2884]! } + public var WallpaperColors_Title: String { return self._s[2885]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2886]! } + public var VoiceOver_MessageContextForward: String { return self._s[2887]! } + public var GroupPermission_Duration: String { return self._s[2888]! } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2887]!, self._r[2887]!, [_0]) + return formatWithArgumentRanges(self._s[2889]!, self._r[2889]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2888]! } - public var Username_Placeholder: String { return self._s[2889]! } - public var CallFeedback_WhatWentWrong: String { return self._s[2890]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2891]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2892]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2890]! } + public var Username_Placeholder: String { return self._s[2891]! } + public var CallFeedback_WhatWentWrong: String { return self._s[2892]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2893]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2894]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2894]!, self._r[2894]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2896]!, self._r[2896]!, [_1, _2]) } - public var Passport_PasswordDescription: String { return self._s[2895]! } - public var Channel_MessagePhotoUpdated: String { return self._s[2896]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[2897]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2898]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[2899]! } - public var Conversation_ContextMenuMore: String { return self._s[2900]! } - public var Privacy_PaymentsClearInfo: String { return self._s[2901]! } - public var CallSettings_TabIcon: String { return self._s[2902]! } - public var KeyCommand_Find: String { return self._s[2903]! } - public var ClearCache_FreeSpaceDescription: String { return self._s[2904]! } - public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2905]! } - public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2906]! } - public var Message_PinnedGame: String { return self._s[2907]! } - public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2908]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2910]! } - public var Login_CallRequestState2: String { return self._s[2912]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2914]! } + public var Passport_PasswordDescription: String { return self._s[2897]! } + public var Channel_MessagePhotoUpdated: String { return self._s[2898]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[2899]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2900]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[2901]! } + public var Conversation_ContextMenuMore: String { return self._s[2902]! } + public var Privacy_PaymentsClearInfo: String { return self._s[2903]! } + public var CallSettings_TabIcon: String { return self._s[2904]! } + public var KeyCommand_Find: String { return self._s[2905]! } + public var ClearCache_FreeSpaceDescription: String { return self._s[2906]! } + public var Appearance_ThemePreview_ChatList_7_Text: String { return self._s[2907]! } + public var EditTheme_Edit_Preview_IncomingText: String { return self._s[2908]! } + public var Message_PinnedGame: String { return self._s[2909]! } + public var VoiceOver_Chat_ForwardedFromYou: String { return self._s[2910]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2912]! } + public var Login_CallRequestState2: String { return self._s[2914]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2916]! } public func VoiceOver_Chat_PhotoFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2915]!, self._r[2915]!, [_0]) - } - public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2917]!, self._r[2917]!, [_0]) } - public var AuthSessions_AddDevice: String { return self._s[2918]! } - public var WallpaperPreview_Blurred: String { return self._s[2919]! } - public var Conversation_InstantPagePreview: String { return self._s[2920]! } + public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2919]!, self._r[2919]!, [_0]) + } + public var AuthSessions_AddDevice: String { return self._s[2920]! } + public var WallpaperPreview_Blurred: String { return self._s[2921]! } + public var Conversation_InstantPagePreview: String { return self._s[2922]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2921]!, self._r[2921]!, [_0]) + return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_0]) } - public var SecretTimer_VideoDescription: String { return self._s[2924]! } - public var WallpaperSearch_ColorRed: String { return self._s[2925]! } - public var GroupPermission_NoPinMessages: String { return self._s[2926]! } - public var Passport_Language_es: String { return self._s[2927]! } - public var Permissions_ContactsAllow_v0: String { return self._s[2929]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2930]! } + public var SecretTimer_VideoDescription: String { return self._s[2926]! } + public var WallpaperSearch_ColorRed: String { return self._s[2927]! } + public var GroupPermission_NoPinMessages: String { return self._s[2928]! } + public var Passport_Language_es: String { return self._s[2929]! } + public var Permissions_ContactsAllow_v0: String { return self._s[2931]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2932]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2931]!, self._r[2931]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2933]!, self._r[2933]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[2932]! } - public var WebPreview_GettingLinkInfo: String { return self._s[2933]! } - public var Watch_UserInfo_Unmute: String { return self._s[2934]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2935]! } - public var AccessDenied_CameraRestricted: String { return self._s[2937]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[2934]! } + public var WebPreview_GettingLinkInfo: String { return self._s[2935]! } + public var Watch_UserInfo_Unmute: String { return self._s[2936]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2937]! } + public var AccessDenied_CameraRestricted: String { return self._s[2939]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2938]!, self._r[2938]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2940]!, self._r[2940]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[2940]! } - public var Settings_CopyUsername: String { return self._s[2941]! } - public var Contacts_SearchLabel: String { return self._s[2942]! } - public var Map_OpenInYandexNavigator: String { return self._s[2944]! } - public var PasscodeSettings_EncryptData: String { return self._s[2945]! } - public var Settings_Wallet: String { return self._s[2946]! } - public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2947]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[2948]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[2949]! } - public var DialogList_AdNoticeAlert: String { return self._s[2950]! } - public var Wallet_Month_GenMay: String { return self._s[2952]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2953]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2954]! } - public var Localization_LanguageCustom: String { return self._s[2955]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2956]! } - public var CallFeedback_Title: String { return self._s[2957]! } - public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2960]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2961]! } - public var Wallet_Intro_CreateErrorTitle: String { return self._s[2962]! } - public var Conversation_InfoGroup: String { return self._s[2963]! } - public var Compose_NewMessage: String { return self._s[2964]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2965]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2966]! } - public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2967]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2968]! } + public var ChatList_ReadAll: String { return self._s[2942]! } + public var Settings_CopyUsername: String { return self._s[2943]! } + public var Contacts_SearchLabel: String { return self._s[2944]! } + public var Map_OpenInYandexNavigator: String { return self._s[2946]! } + public var PasscodeSettings_EncryptData: String { return self._s[2947]! } + public var Settings_Wallet: String { return self._s[2948]! } + public var Group_ErrorSupergroupConversionNotPossible: String { return self._s[2949]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2950]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[2951]! } + public var DialogList_AdNoticeAlert: String { return self._s[2952]! } + public var Wallet_Month_GenMay: String { return self._s[2954]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2955]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2956]! } + public var Localization_LanguageCustom: String { return self._s[2957]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2958]! } + public var CallFeedback_Title: String { return self._s[2959]! } + public var VoiceOver_Chat_RecordPreviewVoiceMessage: String { return self._s[2962]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2963]! } + public var Wallet_Intro_CreateErrorTitle: String { return self._s[2964]! } + public var Conversation_InfoGroup: String { return self._s[2965]! } + public var Compose_NewMessage: String { return self._s[2966]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2967]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2968]! } + public var Wallet_SecureStorageReset_BiometryFaceId: String { return self._s[2969]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2970]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2969]!, self._r[2969]!, [_0]) + return formatWithArgumentRanges(self._s[2971]!, self._r[2971]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2970]! } - public var Login_CancelSignUpConfirmation: String { return self._s[2971]! } - public var ChangePhoneNumberCode_Help: String { return self._s[2972]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[2973]! } - public var Channel_BlackList_Title: String { return self._s[2974]! } - public var UserInfo_PhoneCall: String { return self._s[2975]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2977]! } - public var Wallet_Month_ShortJanuary: String { return self._s[2978]! } - public var State_connecting: String { return self._s[2979]! } - public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2980]! } - public var Wallet_Month_GenMarch: String { return self._s[2981]! } - public var EditTheme_Expand_BottomInfo: String { return self._s[2982]! } - public var AuthSessions_AddedDeviceTerminate: String { return self._s[2983]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2972]! } + public var Login_CancelSignUpConfirmation: String { return self._s[2973]! } + public var ChangePhoneNumberCode_Help: String { return self._s[2974]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[2975]! } + public var Channel_BlackList_Title: String { return self._s[2976]! } + public var UserInfo_PhoneCall: String { return self._s[2977]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2979]! } + public var Wallet_Month_ShortJanuary: String { return self._s[2980]! } + public var State_connecting: String { return self._s[2981]! } + public var Appearance_ThemePreview_ChatList_6_Text: String { return self._s[2982]! } + public var Wallet_Month_GenMarch: String { return self._s[2983]! } + public var EditTheme_Expand_BottomInfo: String { return self._s[2984]! } + public var AuthSessions_AddedDeviceTerminate: String { return self._s[2985]! } public func LastSeen_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2984]!, self._r[2984]!, [_0]) + return formatWithArgumentRanges(self._s[2986]!, self._r[2986]!, [_0]) } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2985]!, self._r[2985]!, [_0]) + return formatWithArgumentRanges(self._s[2987]!, self._r[2987]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[2986]! } - public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2987]! } - public var Passport_Identity_EditPassport: String { return self._s[2988]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2990]! } - public var Localization_EnglishLanguageName: String { return self._s[2991]! } - public var Share_AuthDescription: String { return self._s[2992]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2993]! } - public var Passport_Identity_Surname: String { return self._s[2994]! } - public var Compose_TokenListPlaceholder: String { return self._s[2995]! } - public var Wallet_AccessDenied_Camera: String { return self._s[2996]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[2997]! } - public var Settings_AboutEmpty: String { return self._s[2998]! } - public var Conversation_Unmute: String { return self._s[2999]! } - public var CreateGroup_ChannelsTooMuch: String { return self._s[3001]! } - public var Wallet_Sending_Text: String { return self._s[3002]! } + public var Notifications_GroupNotifications: String { return self._s[2988]! } + public var Conversation_SendMessageErrorTooMuchScheduled: String { return self._s[2989]! } + public var Passport_Identity_EditPassport: String { return self._s[2990]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2992]! } + public var Localization_EnglishLanguageName: String { return self._s[2993]! } + public var Share_AuthDescription: String { return self._s[2994]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2995]! } + public var Passport_Identity_Surname: String { return self._s[2996]! } + public var Compose_TokenListPlaceholder: String { return self._s[2997]! } + public var Wallet_AccessDenied_Camera: String { return self._s[2998]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[2999]! } + public var Settings_AboutEmpty: String { return self._s[3000]! } + public var Conversation_Unmute: String { return self._s[3001]! } + public var CreateGroup_ChannelsTooMuch: String { return self._s[3003]! } + public var Wallet_Sending_Text: String { return self._s[3004]! } public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3003]!, self._r[3003]!, [_1]) + return formatWithArgumentRanges(self._s[3005]!, self._r[3005]!, [_1]) } - public var Login_CodeSentCall: String { return self._s[3004]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3006]! } - public var ChatSettings_Appearance: String { return self._s[3007]! } - public var ClearCache_StorageUsage: String { return self._s[3008]! } - public var Appearance_PickAccentColor: String { return self._s[3009]! } + public var Login_CodeSentCall: String { return self._s[3006]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[3008]! } + public var ChatSettings_Appearance: String { return self._s[3009]! } + public var ClearCache_StorageUsage: String { return self._s[3010]! } + public var Appearance_PickAccentColor: String { return self._s[3011]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3010]!, self._r[3010]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3012]!, self._r[3012]!, [_1, _2]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3011]!, self._r[3011]!, [_1]) + return formatWithArgumentRanges(self._s[3013]!, self._r[3013]!, [_1]) } - public var Notification_CallMissed: String { return self._s[3012]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3013]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3014]! } - public var Wallet_Month_GenOctober: String { return self._s[3016]! } - public var ChatAdmins_AdminLabel: String { return self._s[3017]! } - public var KeyCommand_JumpToNextChat: String { return self._s[3018]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[3020]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3021]! } - public var Month_GenJune: String { return self._s[3022]! } - public var IntentsSettings_MainAccountInfo: String { return self._s[3023]! } - public var Watch_Location_Current: String { return self._s[3024]! } - public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3025]! } - public var Conversation_TitleMute: String { return self._s[3026]! } + public var Notification_CallMissed: String { return self._s[3014]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[3015]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[3016]! } + public var Wallet_Month_GenOctober: String { return self._s[3018]! } + public var ChatAdmins_AdminLabel: String { return self._s[3019]! } + public var KeyCommand_JumpToNextChat: String { return self._s[3020]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[3022]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[3023]! } + public var Month_GenJune: String { return self._s[3024]! } + public var IntentsSettings_MainAccountInfo: String { return self._s[3025]! } + public var Watch_Location_Current: String { return self._s[3026]! } + public var Wallet_Receive_CopyInvoiceUrl: String { return self._s[3027]! } + public var Conversation_TitleMute: String { return self._s[3028]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3027]!, self._r[3027]!, [_1]) + return formatWithArgumentRanges(self._s[3029]!, self._r[3029]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[3028]! } + public var GroupInfo_DeleteAndExit: String { return self._s[3030]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3029]!, self._r[3029]!, [_0]) + return formatWithArgumentRanges(self._s[3031]!, self._r[3031]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[3030]! } - public var Chat_SlowmodeSendError: String { return self._s[3031]! } - public var MaskStickerSettings_Info: String { return self._s[3032]! } - public var EditTheme_Expand_TopInfo: String { return self._s[3033]! } + public var Call_ReportPlaceholder: String { return self._s[3032]! } + public var Chat_SlowmodeSendError: String { return self._s[3033]! } + public var MaskStickerSettings_Info: String { return self._s[3034]! } + public var EditTheme_Expand_TopInfo: String { return self._s[3035]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3034]!, self._r[3034]!, [_0]) + return formatWithArgumentRanges(self._s[3036]!, self._r[3036]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[3035]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[3037]! } - public var Contacts_ShareTelegram: String { return self._s[3038]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3039]! } - public var Map_AddressOnMap: String { return self._s[3040]! } - public var Channel_ErrorAccessDenied: String { return self._s[3041]! } - public var UserInfo_ScamBotWarning: String { return self._s[3043]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[3044]! } - public var Call_ConnectionErrorTitle: String { return self._s[3045]! } - public var UserInfo_NotificationsEnable: String { return self._s[3046]! } - public var ArchivedChats_IntroText1: String { return self._s[3047]! } - public var Tour_Text4: String { return self._s[3050]! } - public var WallpaperSearch_Recent: String { return self._s[3051]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[3052]! } - public var Profile_MessageLifetime2s: String { return self._s[3054]! } - public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3055]! } - public var Notification_MessageLifetime2s: String { return self._s[3056]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[3037]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[3039]! } + public var Contacts_ShareTelegram: String { return self._s[3040]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[3041]! } + public var Map_AddressOnMap: String { return self._s[3042]! } + public var Channel_ErrorAccessDenied: String { return self._s[3043]! } + public var UserInfo_ScamBotWarning: String { return self._s[3045]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[3046]! } + public var Call_ConnectionErrorTitle: String { return self._s[3047]! } + public var UserInfo_NotificationsEnable: String { return self._s[3048]! } + public var ArchivedChats_IntroText1: String { return self._s[3049]! } + public var Tour_Text4: String { return self._s[3052]! } + public var WallpaperSearch_Recent: String { return self._s[3053]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[3054]! } + public var Profile_MessageLifetime2s: String { return self._s[3056]! } + public var Appearance_ThemePreview_ChatList_5_Text: String { return self._s[3057]! } + public var Notification_MessageLifetime2s: String { return self._s[3058]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3057]!, self._r[3057]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3059]!, self._r[3059]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[3058]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[3059]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3060]! } + public var Cache_ClearCache: String { return self._s[3060]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[3061]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[3062]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3064]!, self._r[3064]!, [_0]) - } - public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3066]!, self._r[3066]!, [_0]) } - public var LocalGroup_Text: String { return self._s[3067]! } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3068]! } - public var SocksProxySetup_TypeSocks: String { return self._s[3069]! } - public var ChatList_UnarchiveAction: String { return self._s[3070]! } - public var AutoNightTheme_Title: String { return self._s[3071]! } - public var InstantPage_FeedbackButton: String { return self._s[3072]! } - public var Passport_FieldAddress: String { return self._s[3073]! } - public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3074]!, self._r[3074]!, [_1, _2]) + public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3068]!, self._r[3068]!, [_0]) } - public var Month_ShortMarch: String { return self._s[3075]! } - public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + public var LocalGroup_Text: String { return self._s[3069]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[3070]! } + public var SocksProxySetup_TypeSocks: String { return self._s[3071]! } + public var ChatList_UnarchiveAction: String { return self._s[3072]! } + public var AutoNightTheme_Title: String { return self._s[3073]! } + public var InstantPage_FeedbackButton: String { return self._s[3074]! } + public var Passport_FieldAddress: String { return self._s[3075]! } + public func Channel_AdminLog_SetSlowmode(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3076]!, self._r[3076]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3077]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3078]! } - public var Passport_FloodError: String { return self._s[3079]! } - public var SecretGif_Title: String { return self._s[3080]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3081]! } - public var ChatList_Context_UnhideArchive: String { return self._s[3082]! } - public var Passport_Language_th: String { return self._s[3084]! } - public var Passport_Address_Address: String { return self._s[3085]! } - public var Login_InvalidLastNameError: String { return self._s[3086]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[3087]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[3088]! } - public var ChatList_Context_Archive: String { return self._s[3089]! } - public var SettingsSearch_FAQ: String { return self._s[3090]! } - public var ShareMenu_Send: String { return self._s[3091]! } - public var WallpaperSearch_ColorYellow: String { return self._s[3093]! } - public var Month_GenNovember: String { return self._s[3095]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3097]! } + public var Month_ShortMarch: String { return self._s[3077]! } + public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3078]!, self._r[3078]!, [_1, _2]) + } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[3079]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[3080]! } + public var Passport_FloodError: String { return self._s[3081]! } + public var SecretGif_Title: String { return self._s[3082]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[3083]! } + public var ChatList_Context_UnhideArchive: String { return self._s[3084]! } + public var Passport_Language_th: String { return self._s[3086]! } + public var Passport_Address_Address: String { return self._s[3087]! } + public var Login_InvalidLastNameError: String { return self._s[3088]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[3089]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[3090]! } + public var ChatList_Context_Archive: String { return self._s[3091]! } + public var SettingsSearch_FAQ: String { return self._s[3092]! } + public var ShareMenu_Send: String { return self._s[3093]! } + public var WallpaperSearch_ColorYellow: String { return self._s[3095]! } + public var Month_GenNovember: String { return self._s[3097]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[3099]! } public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3098]!, self._r[3098]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3100]!, self._r[3100]!, [_1, _2]) } - public var Conversation_SwipeToReplyHintText: String { return self._s[3099]! } - public var Checkout_Email: String { return self._s[3100]! } - public var NotificationsSound_Tritone: String { return self._s[3101]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[3103]! } - public var Wallet_ContextMenuCopy: String { return self._s[3105]! } + public var Conversation_SwipeToReplyHintText: String { return self._s[3101]! } + public var Checkout_Email: String { return self._s[3102]! } + public var NotificationsSound_Tritone: String { return self._s[3103]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[3105]! } + public var Wallet_ContextMenuCopy: String { return self._s[3107]! } public func Wallet_Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3107]!, self._r[3107]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3109]!, self._r[3109]!, [_1, _2, _3]) } - public var Appearance_TextSize_Automatic: String { return self._s[3108]! } + public var Appearance_TextSize_Automatic: String { return self._s[3110]! } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3109]!, self._r[3109]!, [_1]) + return formatWithArgumentRanges(self._s[3111]!, self._r[3111]!, [_1]) } public func StickerPackActionInfo_AddedText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3110]!, self._r[3110]!, [_0]) + return formatWithArgumentRanges(self._s[3112]!, self._r[3112]!, [_0]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[3111]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[3113]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3112]!, self._r[3112]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[3114]!, self._r[3114]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[3113]! } - public var Notification_Exceptions_Add: String { return self._s[3114]! } - public var DialogList_You: String { return self._s[3115]! } - public var MediaPicker_Send: String { return self._s[3118]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3119]! } - public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3120]! } - public var Call_AudioRouteSpeaker: String { return self._s[3121]! } - public var Watch_UserInfo_Title: String { return self._s[3122]! } - public var VoiceOver_Chat_PollFinalResults: String { return self._s[3123]! } - public var Appearance_AccentColor: String { return self._s[3125]! } + public var ChatList_UndoArchiveTitle: String { return self._s[3115]! } + public var Notification_Exceptions_Add: String { return self._s[3116]! } + public var DialogList_You: String { return self._s[3117]! } + public var MediaPicker_Send: String { return self._s[3120]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[3121]! } + public var Appearance_ThemePreview_ChatList_4_Text: String { return self._s[3122]! } + public var Call_AudioRouteSpeaker: String { return self._s[3123]! } + public var Watch_UserInfo_Title: String { return self._s[3124]! } + public var VoiceOver_Chat_PollFinalResults: String { return self._s[3125]! } + public var Appearance_AccentColor: String { return self._s[3127]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3126]!, self._r[3126]!, [_0]) + return formatWithArgumentRanges(self._s[3128]!, self._r[3128]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3127]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[3129]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3128]!, self._r[3128]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3130]!, self._r[3130]!, [_1, _2]) } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[3129]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[3130]! } - public var Notification_CallOutgoing: String { return self._s[3131]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3132]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3133]! } - public var Call_RecordingDisabledMessage: String { return self._s[3134]! } - public var Message_Game: String { return self._s[3135]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[3136]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3137]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3138]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3139]! } - public var Date_DialogDateFormat: String { return self._s[3141]! } - public var WallpaperColors_SetCustomColor: String { return self._s[3142]! } - public var Notifications_InAppNotifications: String { return self._s[3143]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[3131]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[3132]! } + public var Notification_CallOutgoing: String { return self._s[3133]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[3134]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[3135]! } + public var Call_RecordingDisabledMessage: String { return self._s[3136]! } + public var Message_Game: String { return self._s[3137]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[3138]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[3139]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[3140]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[3141]! } + public var Date_DialogDateFormat: String { return self._s[3143]! } + public var WallpaperColors_SetCustomColor: String { return self._s[3144]! } + public var Notifications_InAppNotifications: String { return self._s[3145]! } public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3144]!, self._r[3144]!, [_0]) + return formatWithArgumentRanges(self._s[3146]!, self._r[3146]!, [_0]) } public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3145]!, self._r[3145]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3147]!, self._r[3147]!, [_1, _2]) } - public var NewContact_Title: String { return self._s[3146]! } + public var NewContact_Title: String { return self._s[3148]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3147]!, self._r[3147]!, [_0]) + return formatWithArgumentRanges(self._s[3149]!, self._r[3149]!, [_0]) } - public var Conversation_ViewContactDetails: String { return self._s[3148]! } + public var Conversation_ViewContactDetails: String { return self._s[3150]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3150]!, self._r[3150]!, [_1]) + return formatWithArgumentRanges(self._s[3152]!, self._r[3152]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3151]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[3152]! } - public var PrivacySettings_Title: String { return self._s[3153]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3156]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[3157]! } - public var VoiceOver_Chat_ContactEmail: String { return self._s[3158]! } - public var Contacts_PhoneNumber: String { return self._s[3159]! } - public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3161]! } - public var Map_ShowPlaces: String { return self._s[3162]! } - public var ChatAdmins_Title: String { return self._s[3163]! } - public var InstantPage_Reference: String { return self._s[3165]! } - public var Wallet_Info_Updating: String { return self._s[3166]! } - public var ReportGroupLocation_Text: String { return self._s[3167]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[3153]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[3154]! } + public var PrivacySettings_Title: String { return self._s[3155]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[3158]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[3159]! } + public var VoiceOver_Chat_ContactEmail: String { return self._s[3160]! } + public var Contacts_PhoneNumber: String { return self._s[3161]! } + public var TwoFactorSetup_Password_PlaceholderConfirmPassword: String { return self._s[3163]! } + public var Map_ShowPlaces: String { return self._s[3164]! } + public var ChatAdmins_Title: String { return self._s[3165]! } + public var InstantPage_Reference: String { return self._s[3167]! } + public var Wallet_Info_Updating: String { return self._s[3168]! } + public var ReportGroupLocation_Text: String { return self._s[3169]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3168]!, self._r[3168]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3170]!, self._r[3170]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[3169]! } - public var Watch_UserInfo_Block: String { return self._s[3170]! } - public var ChatSettings_Stickers: String { return self._s[3171]! } - public var ChatSettings_DownloadInBackground: String { return self._s[3172]! } - public var Appearance_ThemeCarouselTintedNight: String { return self._s[3173]! } + public var Camera_FlashOff: String { return self._s[3171]! } + public var Watch_UserInfo_Block: String { return self._s[3172]! } + public var ChatSettings_Stickers: String { return self._s[3173]! } + public var ChatSettings_DownloadInBackground: String { return self._s[3174]! } + public var Appearance_ThemeCarouselTintedNight: String { return self._s[3175]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3174]!, self._r[3174]!, [_0]) + return formatWithArgumentRanges(self._s[3176]!, self._r[3176]!, [_0]) } - public var Settings_ViewPhoto: String { return self._s[3175]! } - public var Login_CheckOtherSessionMessages: String { return self._s[3176]! } - public var AutoDownloadSettings_Cellular: String { return self._s[3177]! } - public var Wallet_Created_ExportErrorTitle: String { return self._s[3178]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3179]! } - public var VoiceOver_MessageContextShare: String { return self._s[3180]! } + public var Settings_ViewPhoto: String { return self._s[3177]! } + public var Login_CheckOtherSessionMessages: String { return self._s[3178]! } + public var AutoDownloadSettings_Cellular: String { return self._s[3179]! } + public var Wallet_Created_ExportErrorTitle: String { return self._s[3180]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[3181]! } + public var VoiceOver_MessageContextShare: String { return self._s[3182]! } public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3182]!, self._r[3182]!, [_0]) + return formatWithArgumentRanges(self._s[3184]!, self._r[3184]!, [_0]) } - public var Privacy_DeleteDrafts: String { return self._s[3183]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3184]! } + public var Privacy_DeleteDrafts: String { return self._s[3185]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[3186]! } public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3185]!, self._r[3185]!, [_0]) + return formatWithArgumentRanges(self._s[3187]!, self._r[3187]!, [_0]) } - public var DialogList_SavedMessagesHelp: String { return self._s[3186]! } - public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3187]! } - public var DialogList_SavedMessages: String { return self._s[3188]! } - public var GroupInfo_UpgradeButton: String { return self._s[3189]! } - public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3191]! } - public var DialogList_Pin: String { return self._s[3192]! } + public var DialogList_SavedMessagesHelp: String { return self._s[3188]! } + public var Wallet_SecureStorageNotAvailable_Title: String { return self._s[3189]! } + public var DialogList_SavedMessages: String { return self._s[3190]! } + public var GroupInfo_UpgradeButton: String { return self._s[3191]! } + public var Appearance_ThemePreview_ChatList_3_Text: String { return self._s[3193]! } + public var DialogList_Pin: String { return self._s[3194]! } public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3193]!, self._r[3193]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3195]!, self._r[3195]!, [_0, _1]) } public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3194]!, self._r[3194]!, [_0]) + return formatWithArgumentRanges(self._s[3196]!, self._r[3196]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[3195]! } - public var UserInfo_NotificationsDisable: String { return self._s[3196]! } - public var Conversation_ContextMenuCancelEditing: String { return self._s[3197]! } - public var Paint_Outlined: String { return self._s[3198]! } - public var Activity_PlayingGame: String { return self._s[3199]! } - public var SearchImages_NoImagesFound: String { return self._s[3200]! } - public var SocksProxySetup_ProxyType: String { return self._s[3201]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[3203]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[3204]! } - public var Settings_AppLanguage: String { return self._s[3205]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[3206]! } - public var Common_ChoosePhoto: String { return self._s[3207]! } - public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3208]! } - public var CallFeedback_ReasonEcho: String { return self._s[3209]! } + public var Notification_Exceptions_AlwaysOn: String { return self._s[3197]! } + public var UserInfo_NotificationsDisable: String { return self._s[3198]! } + public var Conversation_ContextMenuCancelEditing: String { return self._s[3199]! } + public var Paint_Outlined: String { return self._s[3200]! } + public var Activity_PlayingGame: String { return self._s[3201]! } + public var SearchImages_NoImagesFound: String { return self._s[3202]! } + public var SocksProxySetup_ProxyType: String { return self._s[3203]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[3205]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[3206]! } + public var Settings_AppLanguage: String { return self._s[3207]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[3208]! } + public var Common_ChoosePhoto: String { return self._s[3209]! } + public var AuthSessions_AddDevice_InvalidQRCode: String { return self._s[3210]! } + public var CallFeedback_ReasonEcho: String { return self._s[3211]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3210]!, self._r[3210]!, [_1]) + return formatWithArgumentRanges(self._s[3212]!, self._r[3212]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[3211]! } - public var PollResults_Collapse: String { return self._s[3212]! } - public var Activity_UploadingVideo: String { return self._s[3213]! } - public var Conversation_WalletRequiredNotNow: String { return self._s[3214]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3215]! } - public var NetworkUsageSettings_Wifi: String { return self._s[3216]! } - public var VoiceOver_Editing_ClearText: String { return self._s[3217]! } - public var PUSH_SENDER_YOU: String { return self._s[3218]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[3219]! } - public var Checkout_PayWithTouchId: String { return self._s[3220]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3221]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[3213]! } + public var PollResults_Collapse: String { return self._s[3214]! } + public var Activity_UploadingVideo: String { return self._s[3215]! } + public var Conversation_WalletRequiredNotNow: String { return self._s[3216]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[3217]! } + public var NetworkUsageSettings_Wifi: String { return self._s[3218]! } + public var VoiceOver_Editing_ClearText: String { return self._s[3219]! } + public var PUSH_SENDER_YOU: String { return self._s[3220]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[3221]! } + public var Checkout_PayWithTouchId: String { return self._s[3222]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[3223]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3223]!, self._r[3223]!, [_1]) + return formatWithArgumentRanges(self._s[3225]!, self._r[3225]!, [_1]) } - public var Notifications_ExceptionsNone: String { return self._s[3224]! } + public var Notifications_ExceptionsNone: String { return self._s[3226]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3225]!, self._r[3225]!, [_0]) + return formatWithArgumentRanges(self._s[3227]!, self._r[3227]!, [_0]) } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3226]!, self._r[3226]!, [_1]) + return formatWithArgumentRanges(self._s[3228]!, self._r[3228]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[3228]! } - public var Passport_Address_Region: String { return self._s[3231]! } - public var ChatList_DeleteChat: String { return self._s[3232]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[3233]! } - public var PhotoEditor_TiltShift: String { return self._s[3234]! } - public var Settings_FAQ_URL: String { return self._s[3235]! } - public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3236]! } - public var Passport_Language_sl: String { return self._s[3237]! } - public var Settings_PrivacySettings: String { return self._s[3239]! } - public var SharedMedia_TitleLink: String { return self._s[3240]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[3241]! } - public var Settings_SetProfilePhoto: String { return self._s[3242]! } - public var Channel_About_Help: String { return self._s[3243]! } - public var Contacts_PermissionsEnable: String { return self._s[3244]! } - public var Wallet_Sending_Title: String { return self._s[3245]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3246]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[3247]! } - public var CallFeedback_ReasonInterruption: String { return self._s[3249]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[3250]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3251]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3252]! } - public var OldChannels_Title: String { return self._s[3253]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[3254]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[3256]! } - public var Map_OpenInYandexMaps: String { return self._s[3258]! } - public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3259]! } - public var VoiceOver_MessageContextReply: String { return self._s[3260]! } - public var PhotoEditor_SaturationTool: String { return self._s[3262]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[3230]! } + public var Passport_Address_Region: String { return self._s[3233]! } + public var ChatList_DeleteChat: String { return self._s[3234]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[3235]! } + public var PhotoEditor_TiltShift: String { return self._s[3236]! } + public var Settings_FAQ_URL: String { return self._s[3237]! } + public var TwoFactorSetup_EmailVerification_ChangeAction: String { return self._s[3238]! } + public var Passport_Language_sl: String { return self._s[3239]! } + public var Settings_PrivacySettings: String { return self._s[3241]! } + public var SharedMedia_TitleLink: String { return self._s[3242]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[3243]! } + public var Settings_SetProfilePhoto: String { return self._s[3244]! } + public var Channel_About_Help: String { return self._s[3245]! } + public var Contacts_PermissionsEnable: String { return self._s[3246]! } + public var Wallet_Sending_Title: String { return self._s[3247]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[3248]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[3249]! } + public var CallFeedback_ReasonInterruption: String { return self._s[3251]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[3252]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[3253]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[3254]! } + public var OldChannels_Title: String { return self._s[3255]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[3256]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[3258]! } + public var Map_OpenInYandexMaps: String { return self._s[3260]! } + public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[3261]! } + public var VoiceOver_MessageContextReply: String { return self._s[3262]! } + public var PhotoEditor_SaturationTool: String { return self._s[3264]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3263]!, self._r[3263]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3265]!, self._r[3265]!, [_1, _2]) } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3264]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3265]! } - public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3266]! } + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[3266]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[3267]! } + public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[3268]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3267]!, self._r[3267]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_1, "\(_2)"]) } - public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3268]! } - public var Channel_Username_InvalidTooShort: String { return self._s[3270]! } - public var SettingsSearch_Synonyms_Wallet: String { return self._s[3271]! } + public var Appearance_ThemePreview_ChatList_2_Text: String { return self._s[3270]! } + public var Channel_Username_InvalidTooShort: String { return self._s[3272]! } + public var SettingsSearch_Synonyms_Wallet: String { return self._s[3273]! } public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3272]!, self._r[3272]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_1, _2]) } - public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3273]! } + public var Forward_ErrorPublicPollDisabledInChannels: String { return self._s[3275]! } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3276]!, self._r[3276]!, [_1, _2, _3]) } - public var WallpaperPreview_PatternTitle: String { return self._s[3275]! } - public var GroupInfo_PublicLinkAdd: String { return self._s[3276]! } - public var Passport_PassportInformation: String { return self._s[3279]! } - public var Theme_Unsupported: String { return self._s[3280]! } - public var WatchRemote_AlertTitle: String { return self._s[3281]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3282]! } - public var ConvertToSupergroup_HelpText: String { return self._s[3284]! } + public var WallpaperPreview_PatternTitle: String { return self._s[3277]! } + public var GroupInfo_PublicLinkAdd: String { return self._s[3278]! } + public var Passport_PassportInformation: String { return self._s[3281]! } + public var Theme_Unsupported: String { return self._s[3282]! } + public var WatchRemote_AlertTitle: String { return self._s[3283]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[3284]! } + public var ConvertToSupergroup_HelpText: String { return self._s[3286]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3285]!, self._r[3285]!, [_0]) + return formatWithArgumentRanges(self._s[3287]!, self._r[3287]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3286]!, self._r[3286]!, [_1]) + return formatWithArgumentRanges(self._s[3288]!, self._r[3288]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3287]! } - public var Wallet_Navigation_Done: String { return self._s[3289]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3290]! } - public var AccessDenied_CameraDisabled: String { return self._s[3291]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[3289]! } + public var Wallet_Navigation_Done: String { return self._s[3291]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[3292]! } + public var AccessDenied_CameraDisabled: String { return self._s[3293]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3292]!, self._r[3292]!, [_0]) + return formatWithArgumentRanges(self._s[3294]!, self._r[3294]!, [_0]) } - public var ClearCache_Forever: String { return self._s[3293]! } - public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3294]! } - public var CreatePoll_Quiz: String { return self._s[3295]! } - public var PhotoEditor_ContrastTool: String { return self._s[3298]! } + public var ClearCache_Forever: String { return self._s[3295]! } + public var AuthSessions_AddDeviceIntro_Title: String { return self._s[3296]! } + public var CreatePoll_Quiz: String { return self._s[3297]! } + public var PhotoEditor_ContrastTool: String { return self._s[3300]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3299]!, self._r[3299]!, [_1]) + return formatWithArgumentRanges(self._s[3301]!, self._r[3301]!, [_1]) } - public var DialogList_Draft: String { return self._s[3300]! } - public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3301]! } - public var Privacy_TopPeersDelete: String { return self._s[3303]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[3304]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3305]! } - public var WebSearch_RecentSectionClear: String { return self._s[3306]! } - public var EditTheme_ErrorInvalidCharacters: String { return self._s[3307]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[3309]! } - public var Common_Done: String { return self._s[3311]! } - public var Shortcut_SwitchAccount: String { return self._s[3312]! } - public var AuthSessions_EmptyText: String { return self._s[3313]! } - public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3314]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[3315]! } - public var Tour_Title5: String { return self._s[3316]! } - public var Wallet_Settings_Title: String { return self._s[3317]! } + public var DialogList_Draft: String { return self._s[3302]! } + public var Wallet_Configuration_BlockchainIdInfo: String { return self._s[3303]! } + public var Privacy_TopPeersDelete: String { return self._s[3305]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[3306]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[3307]! } + public var WebSearch_RecentSectionClear: String { return self._s[3308]! } + public var EditTheme_ErrorInvalidCharacters: String { return self._s[3309]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[3311]! } + public var Common_Done: String { return self._s[3313]! } + public var Shortcut_SwitchAccount: String { return self._s[3314]! } + public var AuthSessions_EmptyText: String { return self._s[3315]! } + public var Wallet_Configuration_BlockchainNameChangedTitle: String { return self._s[3316]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[3317]! } + public var Tour_Title5: String { return self._s[3318]! } + public var Wallet_Settings_Title: String { return self._s[3319]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3318]!, self._r[3318]!, [_0]) + return formatWithArgumentRanges(self._s[3320]!, self._r[3320]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3319]! } - public var Conversation_LinkDialogSave: String { return self._s[3320]! } - public var GroupInfo_ActionRestrict: String { return self._s[3321]! } - public var Checkout_Title: String { return self._s[3322]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3324]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[3326]! } - public var Notification_RenamedGroup: String { return self._s[3327]! } - public var PeopleNearby_Groups: String { return self._s[3328]! } - public var Checkout_PayWithFaceId: String { return self._s[3329]! } - public var Channel_BanList_BlockedTitle: String { return self._s[3330]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3332]! } - public var Checkout_WebConfirmation_Title: String { return self._s[3333]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[3334]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[3321]! } + public var Conversation_LinkDialogSave: String { return self._s[3322]! } + public var GroupInfo_ActionRestrict: String { return self._s[3323]! } + public var Checkout_Title: String { return self._s[3324]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[3326]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[3328]! } + public var Notification_RenamedGroup: String { return self._s[3329]! } + public var PeopleNearby_Groups: String { return self._s[3330]! } + public var Checkout_PayWithFaceId: String { return self._s[3331]! } + public var Channel_BanList_BlockedTitle: String { return self._s[3332]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[3334]! } + public var Checkout_WebConfirmation_Title: String { return self._s[3335]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[3336]! } public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3335]!, self._r[3335]!, [_0]) + return formatWithArgumentRanges(self._s[3337]!, self._r[3337]!, [_0]) } - public var Profile_AddToExisting: String { return self._s[3337]! } + public var Profile_AddToExisting: String { return self._s[3339]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3338]!, self._r[3338]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3340]!, self._r[3340]!, [_0, _1]) } - public var Cache_Files: String { return self._s[3340]! } - public var Permissions_PrivacyPolicy: String { return self._s[3341]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[3342]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3343]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[3345]! } - public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3347]! } - public var Calls_NoCallsPlaceholder: String { return self._s[3348]! } + public var Cache_Files: String { return self._s[3342]! } + public var Permissions_PrivacyPolicy: String { return self._s[3343]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[3344]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[3345]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[3347]! } + public var Appearance_ThemePreview_ChatList_1_Text: String { return self._s[3349]! } + public var Calls_NoCallsPlaceholder: String { return self._s[3350]! } public func Wallet_Receive_ShareInvoiceUrlInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3349]!, self._r[3349]!, [_0]) + return formatWithArgumentRanges(self._s[3351]!, self._r[3351]!, [_0]) } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3350]! } - public var VoiceOver_AttachMedia: String { return self._s[3353]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3354]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[3352]! } + public var VoiceOver_AttachMedia: String { return self._s[3355]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[3356]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3355]!, self._r[3355]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3357]!, self._r[3357]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3356]! } - public var Conversation_SetReminder_Title: String { return self._s[3357]! } - public var Passport_FieldAddressHelp: String { return self._s[3358]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3359]! } - public var PUSH_REMINDER_TITLE: String { return self._s[3360]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[3358]! } + public var Conversation_SetReminder_Title: String { return self._s[3359]! } + public var Passport_FieldAddressHelp: String { return self._s[3360]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[3361]! } + public var PUSH_REMINDER_TITLE: String { return self._s[3362]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3361]!, self._r[3361]!, [_0]) + return formatWithArgumentRanges(self._s[3363]!, self._r[3363]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[3362]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[3363]! } - public var Login_UnknownError: String { return self._s[3364]! } - public var Group_UpgradeNoticeText2: String { return self._s[3367]! } - public var Watch_Compose_AddContact: String { return self._s[3368]! } - public var ClearCache_StorageServiceFiles: String { return self._s[3369]! } - public var Web_Error: String { return self._s[3370]! } - public var Gif_Search: String { return self._s[3371]! } - public var Profile_MessageLifetime1h: String { return self._s[3372]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3373]! } - public var Channel_Username_CheckingUsername: String { return self._s[3374]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[3375]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[3376]! } - public var Channel_AboutItem: String { return self._s[3377]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3379]! } - public var VoiceOver_Chat_VoiceMessage: String { return self._s[3380]! } - public var GroupInfo_SharedMedia: String { return self._s[3381]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[3364]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[3365]! } + public var Login_UnknownError: String { return self._s[3366]! } + public var Group_UpgradeNoticeText2: String { return self._s[3369]! } + public var Watch_Compose_AddContact: String { return self._s[3370]! } + public var ClearCache_StorageServiceFiles: String { return self._s[3371]! } + public var Web_Error: String { return self._s[3372]! } + public var Gif_Search: String { return self._s[3373]! } + public var Profile_MessageLifetime1h: String { return self._s[3374]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[3375]! } + public var Channel_Username_CheckingUsername: String { return self._s[3376]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[3377]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[3378]! } + public var Channel_AboutItem: String { return self._s[3379]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[3381]! } + public var VoiceOver_Chat_VoiceMessage: String { return self._s[3382]! } + public var GroupInfo_SharedMedia: String { return self._s[3383]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3382]!, self._r[3382]!, [_1]) - } - public var Call_PhoneCallInProgressMessage: String { return self._s[3383]! } - public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3384]!, self._r[3384]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[3385]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3386]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[3387]! } - public var CreatePoll_AddOption: String { return self._s[3388]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3389]! } - public var Group_UpgradeNoticeHeader: String { return self._s[3390]! } - public var Channel_Management_AddModerator: String { return self._s[3391]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[3392]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[3393]! } - public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3394]! } - public var Theme_Colors_Background: String { return self._s[3395]! } - public var NotificationsSound_Hello: String { return self._s[3397]! } - public var SocksProxySetup_SavedProxies: String { return self._s[3398]! } - public var Channel_Stickers_Placeholder: String { return self._s[3400]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[3385]! } + public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3386]!, self._r[3386]!, [_1]) + } + public var ChatList_UndoArchiveRevealedText: String { return self._s[3387]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[3388]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[3389]! } + public var CreatePoll_AddOption: String { return self._s[3390]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[3391]! } + public var Group_UpgradeNoticeHeader: String { return self._s[3392]! } + public var Channel_Management_AddModerator: String { return self._s[3393]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[3394]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[3395]! } + public var Wallet_Info_RefreshErrorNetworkText: String { return self._s[3396]! } + public var Theme_Colors_Background: String { return self._s[3397]! } + public var NotificationsSound_Hello: String { return self._s[3399]! } + public var SocksProxySetup_SavedProxies: String { return self._s[3400]! } + public var Channel_Stickers_Placeholder: String { return self._s[3402]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3401]!, self._r[3401]!, [_0]) + return formatWithArgumentRanges(self._s[3403]!, self._r[3403]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3402]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[3403]! } - public var ContactInfo_BirthdayLabel: String { return self._s[3404]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3405]! } - public var AutoDownloadSettings_Channels: String { return self._s[3406]! } - public var Passport_Language_mn: String { return self._s[3407]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[3410]! } - public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3411]! } - public var Passport_Language_ja: String { return self._s[3413]! } - public var Settings_About_Title: String { return self._s[3414]! } - public var Settings_NotificationsAndSounds: String { return self._s[3415]! } - public var ChannelInfo_DeleteGroup: String { return self._s[3416]! } - public var Settings_BlockedUsers: String { return self._s[3417]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[3404]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[3405]! } + public var ContactInfo_BirthdayLabel: String { return self._s[3406]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[3407]! } + public var AutoDownloadSettings_Channels: String { return self._s[3408]! } + public var Passport_Language_mn: String { return self._s[3409]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[3412]! } + public var GroupInfo_Permissions_SlowmodeValue_Off: String { return self._s[3413]! } + public var Passport_Language_ja: String { return self._s[3415]! } + public var Settings_About_Title: String { return self._s[3416]! } + public var Settings_NotificationsAndSounds: String { return self._s[3417]! } + public var ChannelInfo_DeleteGroup: String { return self._s[3418]! } + public var Settings_BlockedUsers: String { return self._s[3419]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3418]!, self._r[3418]!, [_0]) + return formatWithArgumentRanges(self._s[3420]!, self._r[3420]!, [_0]) } - public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3419]! } - public var Wallet_Weekday_Today: String { return self._s[3420]! } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[3421]! } - public var Widget_ApplicationLocked: String { return self._s[3422]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[3423]! } - public var Channel_Username_Title: String { return self._s[3424]! } + public var EditTheme_Create_Preview_OutgoingText: String { return self._s[3421]! } + public var Wallet_Weekday_Today: String { return self._s[3422]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[3423]! } + public var Widget_ApplicationLocked: String { return self._s[3424]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[3425]! } + public var Channel_Username_Title: String { return self._s[3426]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3425]!, self._r[3425]!, [_0]) + return formatWithArgumentRanges(self._s[3427]!, self._r[3427]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[3427]! } - public var AppleWatch_Title: String { return self._s[3428]! } - public var Activity_RecordingVideoMessage: String { return self._s[3429]! } + public var AttachmentMenu_File: String { return self._s[3429]! } + public var AppleWatch_Title: String { return self._s[3430]! } + public var Activity_RecordingVideoMessage: String { return self._s[3431]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3430]!, self._r[3430]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3432]!, self._r[3432]!, [_1, _2]) } - public var Theme_Colors_Messages: String { return self._s[3431]! } - public var Weekday_Saturday: String { return self._s[3432]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3433]! } - public var Profile_CreateEncryptedChatError: String { return self._s[3434]! } - public var Common_Next: String { return self._s[3436]! } - public var Channel_Stickers_YourStickers: String { return self._s[3438]! } - public var Message_Theme: String { return self._s[3439]! } - public var Call_AudioRouteHeadphones: String { return self._s[3440]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3442]! } - public var Watch_Contacts_NoResults: String { return self._s[3444]! } - public var PhotoEditor_TintTool: String { return self._s[3447]! } - public var LoginPassword_ResetAccount: String { return self._s[3449]! } - public var Settings_SavedMessages: String { return self._s[3450]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3451]! } - public var Bot_GenericSupportStatus: String { return self._s[3452]! } - public var StickerPack_Add: String { return self._s[3453]! } - public var Checkout_TotalAmount: String { return self._s[3454]! } - public var Your_cards_number_is_invalid: String { return self._s[3455]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3456]! } - public var VoiceOver_Chat_VideoMessage: String { return self._s[3457]! } + public var Theme_Colors_Messages: String { return self._s[3433]! } + public var Weekday_Saturday: String { return self._s[3434]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[3435]! } + public var Profile_CreateEncryptedChatError: String { return self._s[3436]! } + public var Common_Next: String { return self._s[3438]! } + public var Channel_Stickers_YourStickers: String { return self._s[3440]! } + public var Message_Theme: String { return self._s[3441]! } + public var Call_AudioRouteHeadphones: String { return self._s[3442]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[3444]! } + public var Watch_Contacts_NoResults: String { return self._s[3446]! } + public var PhotoEditor_TintTool: String { return self._s[3449]! } + public var LoginPassword_ResetAccount: String { return self._s[3451]! } + public var Settings_SavedMessages: String { return self._s[3452]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[3453]! } + public var Bot_GenericSupportStatus: String { return self._s[3454]! } + public var StickerPack_Add: String { return self._s[3455]! } + public var Checkout_TotalAmount: String { return self._s[3456]! } + public var Your_cards_number_is_invalid: String { return self._s[3457]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[3458]! } + public var VoiceOver_Chat_VideoMessage: String { return self._s[3459]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3458]!, self._r[3458]!, [_0]) + return formatWithArgumentRanges(self._s[3460]!, self._r[3460]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3459]!, self._r[3459]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3461]!, self._r[3461]!, [_1, _2]) } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3460]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[3462]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3462]!, self._r[3462]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3464]!, self._r[3464]!, [_1, _2]) } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3463]!, self._r[3463]!, [_0]) + return formatWithArgumentRanges(self._s[3465]!, self._r[3465]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[3464]! } - public var StickerPack_Share: String { return self._s[3465]! } - public var Passport_DeleteAddress: String { return self._s[3466]! } - public var Settings_Passport: String { return self._s[3467]! } - public var SharedMedia_EmptyFilesText: String { return self._s[3468]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[3469]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3470]! } - public var Contacts_PermissionsText: String { return self._s[3471]! } - public var Group_Setup_HistoryVisible: String { return self._s[3472]! } - public var Wallet_Month_ShortDecember: String { return self._s[3474]! } - public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3475]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[3476]! } - public var SocksProxySetup_Title: String { return self._s[3477]! } - public var Notification_Mute1h: String { return self._s[3478]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[3466]! } + public var StickerPack_Share: String { return self._s[3467]! } + public var Passport_DeleteAddress: String { return self._s[3468]! } + public var Settings_Passport: String { return self._s[3469]! } + public var SharedMedia_EmptyFilesText: String { return self._s[3470]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[3471]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[3472]! } + public var Contacts_PermissionsText: String { return self._s[3473]! } + public var Group_Setup_HistoryVisible: String { return self._s[3474]! } + public var Wallet_Month_ShortDecember: String { return self._s[3476]! } + public var Channel_EditAdmin_PermissionEnabledByDefault: String { return self._s[3477]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[3478]! } + public var SocksProxySetup_Title: String { return self._s[3479]! } + public var Notification_Mute1h: String { return self._s[3480]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3479]!, self._r[3479]!, [_0]) + return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3480]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[3482]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3481]!, self._r[3481]!, [_1]) + return formatWithArgumentRanges(self._s[3483]!, self._r[3483]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[3482]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3485]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3487]! } - public var DialogList_NoMessagesText: String { return self._s[3488]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[3489]! } - public var Privacy_Calls_P2PHelp: String { return self._s[3490]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3492]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[3493]! } - public var Common_TakePhotoOrVideo: String { return self._s[3494]! } - public var Wallet_Words_Text: String { return self._s[3495]! } - public var Call_StatusBusy: String { return self._s[3496]! } - public var Conversation_PinnedMessage: String { return self._s[3497]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3498]! } - public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3499]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3500]! } - public var Undo_ChatCleared: String { return self._s[3501]! } - public var AppleWatch_ReplyPresets: String { return self._s[3502]! } - public var Passport_DiscardMessageDescription: String { return self._s[3504]! } - public var Login_NetworkError: String { return self._s[3505]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[3484]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[3487]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[3489]! } + public var DialogList_NoMessagesText: String { return self._s[3490]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[3491]! } + public var Privacy_Calls_P2PHelp: String { return self._s[3492]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[3494]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[3495]! } + public var Common_TakePhotoOrVideo: String { return self._s[3496]! } + public var Wallet_Words_Text: String { return self._s[3497]! } + public var Call_StatusBusy: String { return self._s[3498]! } + public var Conversation_PinnedMessage: String { return self._s[3499]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[3500]! } + public var Wallet_Configuration_BlockchainNameChangedProceed: String { return self._s[3501]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[3502]! } + public var Undo_ChatCleared: String { return self._s[3503]! } + public var AppleWatch_ReplyPresets: String { return self._s[3504]! } + public var Passport_DiscardMessageDescription: String { return self._s[3506]! } + public var Login_NetworkError: String { return self._s[3507]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3506]!, self._r[3506]!, [_0]) + return formatWithArgumentRanges(self._s[3508]!, self._r[3508]!, [_0]) } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3507]!, self._r[3507]!, [_0]) + return formatWithArgumentRanges(self._s[3509]!, self._r[3509]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3508]! } - public var Wallet_WordCheck_ViewWords: String { return self._s[3510]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3511]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[3510]! } + public var Wallet_WordCheck_ViewWords: String { return self._s[3512]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[3513]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3513]!, self._r[3513]!, [_0]) + return formatWithArgumentRanges(self._s[3515]!, self._r[3515]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[3514]! } - public var VoiceOver_Chat_Music: String { return self._s[3515]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3516]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[3518]! } - public var ConversationMedia_Title: String { return self._s[3519]! } - public var EncryptionKey_Title: String { return self._s[3521]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3522]! } - public var Notification_Exceptions_AddException: String { return self._s[3523]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3524]! } - public var Profile_MessageLifetime1m: String { return self._s[3525]! } + public var Call_ConnectionErrorMessage: String { return self._s[3516]! } + public var VoiceOver_Chat_Music: String { return self._s[3517]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[3518]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[3520]! } + public var ConversationMedia_Title: String { return self._s[3521]! } + public var EncryptionKey_Title: String { return self._s[3523]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[3524]! } + public var Notification_Exceptions_AddException: String { return self._s[3525]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[3526]! } + public var Profile_MessageLifetime1m: String { return self._s[3527]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3526]!, self._r[3526]!, [_1]) + return formatWithArgumentRanges(self._s[3528]!, self._r[3528]!, [_1]) } - public var Month_GenMay: String { return self._s[3527]! } + public var Month_GenMay: String { return self._s[3529]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3528]!, self._r[3528]!, [_0]) + return formatWithArgumentRanges(self._s[3530]!, self._r[3530]!, [_0]) } - public var PeopleNearby_Users: String { return self._s[3529]! } - public var Wallet_Send_AddressInfo: String { return self._s[3530]! } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3531]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[3532]! } + public var PeopleNearby_Users: String { return self._s[3531]! } + public var Wallet_Send_AddressInfo: String { return self._s[3532]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[3533]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[3534]! } public func Wallet_Updated_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3534]!, self._r[3534]!, [_0]) + return formatWithArgumentRanges(self._s[3536]!, self._r[3536]!, [_0]) } - public var Conversation_EmptyPlaceholder: String { return self._s[3535]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[3536]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[3537]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3538]! } - public var Camera_TapAndHoldForVideo: String { return self._s[3539]! } - public var Channel_JoinChannel: String { return self._s[3541]! } - public var Appearance_Animations: String { return self._s[3544]! } + public var Conversation_EmptyPlaceholder: String { return self._s[3537]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[3538]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[3539]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[3540]! } + public var Camera_TapAndHoldForVideo: String { return self._s[3541]! } + public var Channel_JoinChannel: String { return self._s[3543]! } + public var Appearance_Animations: String { return self._s[3546]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3545]!, self._r[3545]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3547]!, self._r[3547]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[3547]! } - public var Appearance_ShareTheme: String { return self._s[3548]! } - public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3549]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[3551]! } - public var StickerPackActionInfo_RemovedTitle: String { return self._s[3552]! } - public var Passport_Address_Street: String { return self._s[3553]! } - public var Conversation_AddContact: String { return self._s[3554]! } - public var Login_PhonePlaceholder: String { return self._s[3555]! } - public var Channel_Members_InviteLink: String { return self._s[3557]! } - public var Bot_Stop: String { return self._s[3558]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3560]! } - public var Notification_PassportValueAddress: String { return self._s[3561]! } - public var Month_ShortJuly: String { return self._s[3562]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3563]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[3564]! } - public var Passport_Identity_ReverseSide: String { return self._s[3565]! } - public var Watch_Stickers_Recents: String { return self._s[3568]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3570]! } - public var Map_SendThisLocation: String { return self._s[3571]! } + public var Stickers_GroupStickers: String { return self._s[3549]! } + public var Appearance_ShareTheme: String { return self._s[3550]! } + public var TwoFactorSetup_Hint_Placeholder: String { return self._s[3551]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[3553]! } + public var StickerPackActionInfo_RemovedTitle: String { return self._s[3554]! } + public var Passport_Address_Street: String { return self._s[3555]! } + public var Conversation_AddContact: String { return self._s[3556]! } + public var Login_PhonePlaceholder: String { return self._s[3557]! } + public var Channel_Members_InviteLink: String { return self._s[3559]! } + public var Bot_Stop: String { return self._s[3560]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[3562]! } + public var Notification_PassportValueAddress: String { return self._s[3563]! } + public var Month_ShortJuly: String { return self._s[3564]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[3565]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[3566]! } + public var Passport_Identity_ReverseSide: String { return self._s[3567]! } + public var Watch_Stickers_Recents: String { return self._s[3570]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[3572]! } + public var Map_SendThisLocation: String { return self._s[3573]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3572]!, self._r[3572]!, [_0]) + return formatWithArgumentRanges(self._s[3574]!, self._r[3574]!, [_0]) } public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3573]!, self._r[3573]!, [_0]) + return formatWithArgumentRanges(self._s[3575]!, self._r[3575]!, [_0]) } - public var ConvertToSupergroup_Note: String { return self._s[3574]! } - public var Wallet_Intro_NotNow: String { return self._s[3575]! } + public var ConvertToSupergroup_Note: String { return self._s[3576]! } + public var Wallet_Intro_NotNow: String { return self._s[3577]! } public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3576]!, self._r[3576]!, [_0]) + return formatWithArgumentRanges(self._s[3578]!, self._r[3578]!, [_0]) } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3577]! } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[3579]! } public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3578]!, self._r[3578]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3580]!, self._r[3580]!, [_0, _1]) } - public var Login_CallRequestState3: String { return self._s[3580]! } - public var Wallpaper_SearchShort: String { return self._s[3581]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3583]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3584]! } - public var Channel_BotDoesntSupportGroups: String { return self._s[3585]! } + public var Login_CallRequestState3: String { return self._s[3582]! } + public var Wallpaper_SearchShort: String { return self._s[3583]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[3585]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[3586]! } + public var Channel_BotDoesntSupportGroups: String { return self._s[3587]! } public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3586]!, self._r[3586]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3588]!, self._r[3588]!, [_1, _2]) } - public var Channel_AdminLogFilter_Title: String { return self._s[3587]! } - public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3589]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[3592]! } + public var Channel_AdminLogFilter_Title: String { return self._s[3589]! } + public var Appearance_ThemePreview_Chat_4_Text: String { return self._s[3591]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[3594]! } public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3593]!, self._r[3593]!, [_0]) + return formatWithArgumentRanges(self._s[3595]!, self._r[3595]!, [_0]) } - public var Passport_CorrectErrors: String { return self._s[3594]! } - public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3595]! } + public var Passport_CorrectErrors: String { return self._s[3596]! } + public var VoiceOver_Chat_YourAnonymousPoll: String { return self._s[3597]! } public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3596]!, self._r[3596]!, [_0]) + return formatWithArgumentRanges(self._s[3598]!, self._r[3598]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[3597]! } - public var Channel_DiscussionGroup: String { return self._s[3598]! } - public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3599]! } + public var Map_SendMyCurrentLocation: String { return self._s[3599]! } + public var Channel_DiscussionGroup: String { return self._s[3600]! } + public var TwoFactorSetup_Email_SkipConfirmationSkip: String { return self._s[3601]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3600]!, self._r[3600]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3602]!, self._r[3602]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[3601]! } - public var Permissions_NotificationsText_v0: String { return self._s[3602]! } - public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3603]! } - public var Appearance_AppIcon: String { return self._s[3604]! } - public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3605]! } - public var LoginPassword_FloodError: String { return self._s[3606]! } - public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3608]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[3609]! } + public var SharedMedia_SearchNoResults: String { return self._s[3603]! } + public var Permissions_NotificationsText_v0: String { return self._s[3604]! } + public var Channel_EditAdmin_PermissionDeleteMessagesOfOthers: String { return self._s[3605]! } + public var Appearance_AppIcon: String { return self._s[3606]! } + public var Appearance_ThemePreview_ChatList_3_AuthorName: String { return self._s[3607]! } + public var LoginPassword_FloodError: String { return self._s[3608]! } + public var Wallet_Send_OwnAddressAlertProceed: String { return self._s[3610]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[3611]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3610]!, self._r[3610]!, [_0]) - } - public var Passport_Language_bn: String { return self._s[3611]! } - public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3612]!, self._r[3612]!, [_0]) } - public var ChatList_Context_Pin: String { return self._s[3613]! } - public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + public var Passport_Language_bn: String { return self._s[3613]! } + public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3614]!, self._r[3614]!, [_0]) } + public var ChatList_Context_Pin: String { return self._s[3615]! } + public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3616]!, self._r[3616]!, [_0]) + } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3615]!, self._r[3615]!, [_0]) + return formatWithArgumentRanges(self._s[3617]!, self._r[3617]!, [_0]) } - public var Wallet_Navigation_Close: String { return self._s[3616]! } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3620]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3622]! } - public var Wallet_Month_GenDecember: String { return self._s[3623]! } - public var Contacts_PermissionsAllow: String { return self._s[3624]! } - public var ReportPeer_ReasonCopyright: String { return self._s[3625]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3626]! } - public var WallpaperPreview_Pattern: String { return self._s[3627]! } - public var Paint_Duplicate: String { return self._s[3628]! } - public var Passport_Address_Country: String { return self._s[3629]! } - public var Notification_RenamedChannel: String { return self._s[3631]! } - public var ChatList_Context_Unmute: String { return self._s[3632]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3633]! } - public var Group_MessagePhotoUpdated: String { return self._s[3634]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[3635]! } - public var Conversation_ContextMenuBan: String { return self._s[3636]! } - public var TwoStepAuth_EmailSent: String { return self._s[3637]! } - public var MessagePoll_NoVotes: String { return self._s[3638]! } - public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3639]! } - public var Passport_Language_is: String { return self._s[3641]! } - public var PeopleNearby_UsersEmpty: String { return self._s[3643]! } - public var Tour_Text5: String { return self._s[3644]! } + public var Wallet_Navigation_Close: String { return self._s[3618]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3622]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3624]! } + public var Wallet_Month_GenDecember: String { return self._s[3625]! } + public var Contacts_PermissionsAllow: String { return self._s[3626]! } + public var ReportPeer_ReasonCopyright: String { return self._s[3627]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3628]! } + public var WallpaperPreview_Pattern: String { return self._s[3629]! } + public var Paint_Duplicate: String { return self._s[3630]! } + public var Passport_Address_Country: String { return self._s[3631]! } + public var Notification_RenamedChannel: String { return self._s[3633]! } + public var ChatList_Context_Unmute: String { return self._s[3634]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3635]! } + public var Group_MessagePhotoUpdated: String { return self._s[3636]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[3637]! } + public var Conversation_ContextMenuBan: String { return self._s[3638]! } + public var TwoStepAuth_EmailSent: String { return self._s[3639]! } + public var MessagePoll_NoVotes: String { return self._s[3640]! } + public var Wallet_Send_ErrorNotEnoughFundsTitle: String { return self._s[3641]! } + public var Passport_Language_is: String { return self._s[3643]! } + public var PeopleNearby_UsersEmpty: String { return self._s[3645]! } + public var Tour_Text5: String { return self._s[3646]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3647]!, self._r[3647]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3649]!, self._r[3649]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[3648]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[3649]! } + public var Undo_SecretChatDeleted: String { return self._s[3650]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3651]! } public func VoiceOver_Chat_Size(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3650]!, self._r[3650]!, [_0]) + return formatWithArgumentRanges(self._s[3652]!, self._r[3652]!, [_0]) } - public var Forward_ErrorDisabledForChat: String { return self._s[3651]! } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3652]! } - public var Paint_Edit: String { return self._s[3654]! } - public var ScheduledMessages_ReminderNotification: String { return self._s[3656]! } - public var Undo_DeletedGroup: String { return self._s[3658]! } - public var LoginPassword_ForgotPassword: String { return self._s[3659]! } - public var Wallet_WordImport_IncorrectTitle: String { return self._s[3660]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[3661]! } + public var Forward_ErrorDisabledForChat: String { return self._s[3653]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3654]! } + public var Paint_Edit: String { return self._s[3656]! } + public var ScheduledMessages_ReminderNotification: String { return self._s[3658]! } + public var Undo_DeletedGroup: String { return self._s[3660]! } + public var LoginPassword_ForgotPassword: String { return self._s[3661]! } + public var Wallet_WordImport_IncorrectTitle: String { return self._s[3662]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3663]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3662]!, self._r[3662]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3664]!, self._r[3664]!, [_0, _1]) } - public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3663]! } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3664]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3665]! } - public var Passport_Language_uz: String { return self._s[3666]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[3667]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3668]! } - public var Map_StopLiveLocation: String { return self._s[3670]! } - public var VoiceOver_MessageContextSend: String { return self._s[3672]! } - public var PasscodeSettings_Help: String { return self._s[3673]! } - public var NotificationsSound_Input: String { return self._s[3674]! } - public var Share_Title: String { return self._s[3677]! } - public var LogoutOptions_Title: String { return self._s[3678]! } - public var Wallet_Send_AddressText: String { return self._s[3679]! } - public var Login_TermsOfServiceAgree: String { return self._s[3680]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3681]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3682]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3683]! } - public var EnterPasscode_EnterTitle: String { return self._s[3684]! } + public var AppWallet_TransactionInfo_FeeInfoURL: String { return self._s[3665]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3666]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3667]! } + public var Passport_Language_uz: String { return self._s[3668]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3669]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3670]! } + public var Map_StopLiveLocation: String { return self._s[3672]! } + public var VoiceOver_MessageContextSend: String { return self._s[3674]! } + public var PasscodeSettings_Help: String { return self._s[3675]! } + public var NotificationsSound_Input: String { return self._s[3676]! } + public var Share_Title: String { return self._s[3679]! } + public var LogoutOptions_Title: String { return self._s[3680]! } + public var Wallet_Send_AddressText: String { return self._s[3681]! } + public var Login_TermsOfServiceAgree: String { return self._s[3682]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3683]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3684]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3685]! } + public var EnterPasscode_EnterTitle: String { return self._s[3686]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3685]!, self._r[3685]!, [_0]) + return formatWithArgumentRanges(self._s[3687]!, self._r[3687]!, [_0]) } - public var Settings_CopyPhoneNumber: String { return self._s[3686]! } - public var Conversation_AddToContacts: String { return self._s[3687]! } + public var Settings_CopyPhoneNumber: String { return self._s[3688]! } + public var Conversation_AddToContacts: String { return self._s[3689]! } public func VoiceOver_Chat_ReplyFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3688]!, self._r[3688]!, [_0]) - } - public var NotificationsSound_Keys: String { return self._s[3689]! } - public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3690]!, self._r[3690]!, [_0]) } - public var Notification_MessageLifetime1w: String { return self._s[3691]! } - public var Message_Video: String { return self._s[3692]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3693]! } - public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3694]!, self._r[3694]!, [_1]) + public var NotificationsSound_Keys: String { return self._s[3691]! } + public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3692]!, self._r[3692]!, [_0]) } - public var Wallet_Receive_AmountInfo: String { return self._s[3697]! } + public var Notification_MessageLifetime1w: String { return self._s[3693]! } + public var Message_Video: String { return self._s[3694]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3695]! } + public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3696]!, self._r[3696]!, [_1]) + } + public var Wallet_Receive_AmountInfo: String { return self._s[3699]! } public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3698]!, self._r[3698]!, [_0]) + return formatWithArgumentRanges(self._s[3700]!, self._r[3700]!, [_0]) } public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3699]!, self._r[3699]!, [_0]) + return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_0]) } - public var Passport_Language_mk: String { return self._s[3700]! } + public var Passport_Language_mk: String { return self._s[3702]! } public func Wallet_Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3701]!, self._r[3701]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3703]!, self._r[3703]!, [_1, _2, _3]) } - public var CreatePoll_CancelConfirmation: String { return self._s[3702]! } - public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3703]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3705]! } - public var PrivacyPolicy_Decline: String { return self._s[3706]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3707]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3708]! } - public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3709]! } - public var Permissions_SiriAllow_v0: String { return self._s[3711]! } - public var Wallet_Month_ShortAugust: String { return self._s[3712]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3713]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3704]! } + public var MessagePoll_LabelAnonymousQuiz: String { return self._s[3705]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3707]! } + public var PrivacyPolicy_Decline: String { return self._s[3708]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3709]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3710]! } + public var AuthSessions_AddDeviceIntro_Action: String { return self._s[3711]! } + public var Permissions_SiriAllow_v0: String { return self._s[3713]! } + public var Wallet_Month_ShortAugust: String { return self._s[3714]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3715]! } public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3714]!, self._r[3714]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[3716]!, self._r[3716]!, [_1, "\(_2)"]) } public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3715]!, self._r[3715]!, [_0]) + return formatWithArgumentRanges(self._s[3717]!, self._r[3717]!, [_0]) } - public var Paint_Regular: String { return self._s[3716]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3717]! } - public var SocksProxySetup_ShareLink: String { return self._s[3718]! } - public var Wallet_Qr_Title: String { return self._s[3719]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3720]! } - public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3722]! } - public var Wallet_Settings_Configuration: String { return self._s[3723]! } - public var GroupInfo_InviteByLink: String { return self._s[3724]! } - public var MessageTimer_Custom: String { return self._s[3725]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3726]! } - public var Conversation_StopQuizConfirmationTitle: String { return self._s[3727]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3729]! } - public var Conversation_SendMessage_SetReminder: String { return self._s[3730]! } - public var VoiceOver_Chat_Selected: String { return self._s[3731]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3732]! } - public var Channel_Username_InvalidTaken: String { return self._s[3733]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3734]! } - public var Wallet_WordCheck_TryAgain: String { return self._s[3735]! } - public var Wallet_Info_TransactionPendingHeader: String { return self._s[3736]! } - public var Settings_ChatBackground: String { return self._s[3737]! } - public var Channel_Subscribers_Title: String { return self._s[3738]! } - public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3739]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3740]! } - public var Watch_ConnectionDescription: String { return self._s[3741]! } - public var OldChannels_NoticeText: String { return self._s[3744]! } - public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3745]! } - public var IntentsSettings_SuggestBy: String { return self._s[3747]! } - public var Theme_ThemeChangedText: String { return self._s[3748]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[3749]! } - public var Wallpaper_ResetWallpapers: String { return self._s[3750]! } - public var Wallet_Send_TransactionInProgress: String { return self._s[3751]! } - public var EditProfile_Title: String { return self._s[3752]! } - public var NotificationsSound_Bamboo: String { return self._s[3754]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3756]! } - public var Login_SmsRequestState2: String { return self._s[3757]! } - public var Passport_Language_ar: String { return self._s[3758]! } + public var Paint_Regular: String { return self._s[3718]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3719]! } + public var SocksProxySetup_ShareLink: String { return self._s[3720]! } + public var Wallet_Qr_Title: String { return self._s[3721]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3722]! } + public var VoiceOver_Chat_RecordModeVoiceMessage: String { return self._s[3724]! } + public var Wallet_Settings_Configuration: String { return self._s[3725]! } + public var GroupInfo_InviteByLink: String { return self._s[3726]! } + public var MessageTimer_Custom: String { return self._s[3727]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3728]! } + public var Conversation_StopQuizConfirmationTitle: String { return self._s[3729]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3731]! } + public var Conversation_SendMessage_SetReminder: String { return self._s[3732]! } + public var VoiceOver_Chat_Selected: String { return self._s[3733]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3734]! } + public var Channel_Username_InvalidTaken: String { return self._s[3735]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3736]! } + public var Wallet_WordCheck_TryAgain: String { return self._s[3737]! } + public var Wallet_Info_TransactionPendingHeader: String { return self._s[3738]! } + public var Settings_ChatBackground: String { return self._s[3739]! } + public var Channel_Subscribers_Title: String { return self._s[3740]! } + public var Wallet_Receive_InvoiceUrlHeader: String { return self._s[3741]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3742]! } + public var Watch_ConnectionDescription: String { return self._s[3743]! } + public var OldChannels_NoticeText: String { return self._s[3746]! } + public var Wallet_Configuration_ApplyErrorTitle: String { return self._s[3747]! } + public var IntentsSettings_SuggestBy: String { return self._s[3749]! } + public var Theme_ThemeChangedText: String { return self._s[3750]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[3751]! } + public var Wallpaper_ResetWallpapers: String { return self._s[3752]! } + public var Wallet_Send_TransactionInProgress: String { return self._s[3753]! } + public var EditProfile_Title: String { return self._s[3754]! } + public var NotificationsSound_Bamboo: String { return self._s[3756]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3758]! } + public var Login_SmsRequestState2: String { return self._s[3759]! } + public var Passport_Language_ar: String { return self._s[3760]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3759]!, self._r[3759]!, [_0]) + return formatWithArgumentRanges(self._s[3761]!, self._r[3761]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3760]! } - public var Wallet_Created_Text: String { return self._s[3761]! } - public var Conversation_MessageDialogEdit: String { return self._s[3763]! } - public var Wallet_Created_Proceed: String { return self._s[3764]! } - public var Wallet_Words_Done: String { return self._s[3765]! } - public var VoiceOver_Media_PlaybackPause: String { return self._s[3766]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3762]! } + public var Wallet_Created_Text: String { return self._s[3763]! } + public var Conversation_MessageDialogEdit: String { return self._s[3765]! } + public var Wallet_Created_Proceed: String { return self._s[3766]! } + public var Wallet_Words_Done: String { return self._s[3767]! } + public var VoiceOver_Media_PlaybackPause: String { return self._s[3768]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3767]!, self._r[3767]!, [_1]) + return formatWithArgumentRanges(self._s[3769]!, self._r[3769]!, [_1]) } - public var Common_Close: String { return self._s[3768]! } - public var GroupInfo_PublicLink: String { return self._s[3769]! } - public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3770]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3771]! } + public var Common_Close: String { return self._s[3770]! } + public var GroupInfo_PublicLink: String { return self._s[3771]! } + public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3772]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3773]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3775]!, self._r[3775]!, [_0]) - } - public var UserInfo_About_Placeholder: String { return self._s[3776]! } - public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3777]!, self._r[3777]!, [_0]) } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[3778]! } - public var Channel_Info_Banned: String { return self._s[3780]! } + public var UserInfo_About_Placeholder: String { return self._s[3778]! } + public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3779]!, self._r[3779]!, [_0]) + } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[3780]! } + public var Channel_Info_Banned: String { return self._s[3782]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3781]!, self._r[3781]!, [_0]) + return formatWithArgumentRanges(self._s[3783]!, self._r[3783]!, [_0]) } - public var Appearance_Other: String { return self._s[3782]! } - public var Passport_Language_my: String { return self._s[3783]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3784]! } + public var Appearance_Other: String { return self._s[3784]! } + public var Passport_Language_my: String { return self._s[3785]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3786]! } public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3785]!, self._r[3785]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3787]!, self._r[3787]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3786]! } - public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3787]! } - public var Preview_CopyAddress: String { return self._s[3788]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3788]! } + public var IntentsSettings_SuggestedAndSpotlightChatsInfo: String { return self._s[3789]! } + public var Preview_CopyAddress: String { return self._s[3790]! } public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3789]!, self._r[3789]!, [_0]) + return formatWithArgumentRanges(self._s[3791]!, self._r[3791]!, [_0]) } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3790]! } - public var UserInfo_BotSettings: String { return self._s[3791]! } - public var LiveLocation_MenuStopAll: String { return self._s[3793]! } - public var Passport_PasswordCreate: String { return self._s[3794]! } - public var StickerSettings_MaskContextInfo: String { return self._s[3795]! } - public var Message_PinnedLocationMessage: String { return self._s[3796]! } - public var Map_Satellite: String { return self._s[3797]! } - public var Watch_Message_Unsupported: String { return self._s[3798]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[3799]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3800]! } + public var KeyCommand_JumpToPreviousChat: String { return self._s[3792]! } + public var UserInfo_BotSettings: String { return self._s[3793]! } + public var LiveLocation_MenuStopAll: String { return self._s[3795]! } + public var Passport_PasswordCreate: String { return self._s[3796]! } + public var StickerSettings_MaskContextInfo: String { return self._s[3797]! } + public var Message_PinnedLocationMessage: String { return self._s[3798]! } + public var Map_Satellite: String { return self._s[3799]! } + public var Watch_Message_Unsupported: String { return self._s[3800]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[3801]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3802]! } public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3801]!, self._r[3801]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3803]!, self._r[3803]!, [_0, _1]) } public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3802]!, self._r[3802]!, [_0]) - } - public var Wallet_WordImport_Continue: String { return self._s[3803]! } - public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3804]!, self._r[3804]!, [_0]) } - public var Notifications_ChannelNotificationsHelp: String { return self._s[3805]! } - public var Privacy_Calls_P2PContacts: String { return self._s[3806]! } - public var NotificationsSound_None: String { return self._s[3807]! } - public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3808]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3810]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[3811]! } + public var Wallet_WordImport_Continue: String { return self._s[3805]! } + public func TwoFactorSetup_EmailVerification_Text(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3806]!, self._r[3806]!, [_0]) + } + public var Notifications_ChannelNotificationsHelp: String { return self._s[3807]! } + public var Privacy_Calls_P2PContacts: String { return self._s[3808]! } + public var NotificationsSound_None: String { return self._s[3809]! } + public var Wallet_TransactionInfo_StorageFeeHeader: String { return self._s[3810]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3812]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[3813]! } public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3812]!, self._r[3812]!, [_1]) + return formatWithArgumentRanges(self._s[3814]!, self._r[3814]!, [_1]) } - public var Cache_Indexing: String { return self._s[3813]! } - public var DialogList_RecentTitlePeople: String { return self._s[3815]! } - public var DialogList_EncryptionRejected: String { return self._s[3816]! } - public var GroupInfo_Administrators: String { return self._s[3817]! } - public var Passport_ScanPassportHelp: String { return self._s[3818]! } - public var Application_Name: String { return self._s[3819]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3820]! } - public var Appearance_ThemeCarouselDay: String { return self._s[3822]! } - public var Passport_Identity_TranslationHelp: String { return self._s[3823]! } + public var Cache_Indexing: String { return self._s[3815]! } + public var DialogList_RecentTitlePeople: String { return self._s[3817]! } + public var DialogList_EncryptionRejected: String { return self._s[3818]! } + public var GroupInfo_Administrators: String { return self._s[3819]! } + public var Passport_ScanPassportHelp: String { return self._s[3820]! } + public var Application_Name: String { return self._s[3821]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3822]! } + public var Appearance_ThemeCarouselDay: String { return self._s[3824]! } + public var Passport_Identity_TranslationHelp: String { return self._s[3825]! } public func VoiceOver_Chat_VideoMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3824]!, self._r[3824]!, [_0]) - } - public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3825]!, self._r[3825]!, [_0]) - } - public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3826]!, self._r[3826]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3827]! } - public var Privacy_ChatsTitle: String { return self._s[3828]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[3829]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3830]! } - public var Watch_Suggestion_HoldOn: String { return self._s[3831]! } - public var Group_EditAdmin_TransferOwnership: String { return self._s[3832]! } - public var WebBrowser_Title: String { return self._s[3833]! } - public var Group_LinkedChannel: String { return self._s[3834]! } - public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3835]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[3836]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3837]! } - public var Appearance_TextSize_UseSystem: String { return self._s[3838]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[3839]! } - public var ScheduledMessages_RemindersTitle: String { return self._s[3841]! } - public var Channel_Setup_TypePublic: String { return self._s[3843]! } + public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3827]!, self._r[3827]!, [_0]) + } + public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3828]!, self._r[3828]!, [_0]) + } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3829]! } + public var Privacy_ChatsTitle: String { return self._s[3830]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[3831]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3832]! } + public var Watch_Suggestion_HoldOn: String { return self._s[3833]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3834]! } + public var WebBrowser_Title: String { return self._s[3835]! } + public var Group_LinkedChannel: String { return self._s[3836]! } + public var VoiceOver_Chat_SeenByRecipient: String { return self._s[3837]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[3838]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3839]! } + public var Appearance_TextSize_UseSystem: String { return self._s[3840]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[3841]! } + public var ScheduledMessages_RemindersTitle: String { return self._s[3843]! } + public var Channel_Setup_TypePublic: String { return self._s[3845]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3844]!, self._r[3844]!, [_0]) + return formatWithArgumentRanges(self._s[3846]!, self._r[3846]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[3846]! } - public var MessagePoll_ViewResults: String { return self._s[3847]! } - public var Map_OpenInMaps: String { return self._s[3849]! } + public var Channel_TypeSetup_Title: String { return self._s[3848]! } + public var MessagePoll_ViewResults: String { return self._s[3849]! } + public var Map_OpenInMaps: String { return self._s[3851]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3850]!, self._r[3850]!, [_1]) + return formatWithArgumentRanges(self._s[3852]!, self._r[3852]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[3852]! } + public var NotificationsSound_Tremolo: String { return self._s[3854]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3853]!, self._r[3853]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3855]!, self._r[3855]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3854]! } - public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3855]! } - public var Passport_PasswordHelp: String { return self._s[3856]! } - public var Login_CodeExpiredError: String { return self._s[3857]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3858]! } - public var Conversation_TitleUnmute: String { return self._s[3859]! } - public var Passport_Identity_ScansHelp: String { return self._s[3860]! } - public var Passport_Language_lo: String { return self._s[3861]! } - public var Camera_FlashAuto: String { return self._s[3862]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3863]! } - public var Common_Cancel: String { return self._s[3864]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[3865]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3866]! } - public var Appearance_TintAllColors: String { return self._s[3867]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3856]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3857]! } + public var Passport_PasswordHelp: String { return self._s[3858]! } + public var Login_CodeExpiredError: String { return self._s[3859]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3860]! } + public var Conversation_TitleUnmute: String { return self._s[3861]! } + public var Passport_Identity_ScansHelp: String { return self._s[3862]! } + public var Passport_Language_lo: String { return self._s[3863]! } + public var Camera_FlashAuto: String { return self._s[3864]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3865]! } + public var Common_Cancel: String { return self._s[3866]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[3867]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3868]! } + public var Appearance_TintAllColors: String { return self._s[3869]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3868]!, self._r[3868]!, [_1]) + return formatWithArgumentRanges(self._s[3870]!, self._r[3870]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[3869]! } - public var ChatSettings_Title: String { return self._s[3871]! } - public var Passport_PasswordReset: String { return self._s[3872]! } - public var SocksProxySetup_TypeNone: String { return self._s[3873]! } - public var EditTheme_Title: String { return self._s[3876]! } - public var PhoneNumberHelp_Help: String { return self._s[3877]! } - public var Checkout_EnterPassword: String { return self._s[3878]! } - public var Share_AuthTitle: String { return self._s[3880]! } - public var Activity_UploadingDocument: String { return self._s[3881]! } - public var State_Connecting: String { return self._s[3882]! } - public var Profile_MessageLifetime1w: String { return self._s[3883]! } - public var Conversation_ContextMenuReport: String { return self._s[3884]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3885]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3886]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[3871]! } + public var ChatSettings_Title: String { return self._s[3873]! } + public var Passport_PasswordReset: String { return self._s[3874]! } + public var SocksProxySetup_TypeNone: String { return self._s[3875]! } + public var EditTheme_Title: String { return self._s[3878]! } + public var PhoneNumberHelp_Help: String { return self._s[3879]! } + public var Checkout_EnterPassword: String { return self._s[3880]! } + public var Share_AuthTitle: String { return self._s[3882]! } + public var Activity_UploadingDocument: String { return self._s[3883]! } + public var State_Connecting: String { return self._s[3884]! } + public var Profile_MessageLifetime1w: String { return self._s[3885]! } + public var Conversation_ContextMenuReport: String { return self._s[3886]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3887]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3888]! } public func VoiceOver_Chat_AnonymousPollFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3887]!, self._r[3887]!, [_0]) + return formatWithArgumentRanges(self._s[3889]!, self._r[3889]!, [_0]) } - public var AuthSessions_Terminate: String { return self._s[3888]! } - public var Wallet_WordImport_CanNotRemember: String { return self._s[3889]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3891]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3892]! } - public var PhotoEditor_Set: String { return self._s[3893]! } - public var EmptyGroupInfo_Title: String { return self._s[3894]! } - public var Login_PadPhoneHelp: String { return self._s[3895]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3897]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3899]! } - public var NotificationsSound_Complete: String { return self._s[3900]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3901]! } - public var Group_Info_AdminLog: String { return self._s[3902]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3903]! } + public var AuthSessions_Terminate: String { return self._s[3890]! } + public var Wallet_WordImport_CanNotRemember: String { return self._s[3891]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3893]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3894]! } + public var PhotoEditor_Set: String { return self._s[3895]! } + public var EmptyGroupInfo_Title: String { return self._s[3896]! } + public var Login_PadPhoneHelp: String { return self._s[3897]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3899]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3901]! } + public var NotificationsSound_Complete: String { return self._s[3902]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3903]! } + public var Group_Info_AdminLog: String { return self._s[3904]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3905]! } public func Wallet_Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3904]!, self._r[3904]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3906]!, self._r[3906]!, [_1, _2, _3]) } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3905]! } - public var Group_Location_CreateInThisPlace: String { return self._s[3907]! } - public var Conversation_Admin: String { return self._s[3908]! } - public var Conversation_GifTooltip: String { return self._s[3909]! } - public var Passport_NotLoggedInMessage: String { return self._s[3910]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3907]! } + public var Group_Location_CreateInThisPlace: String { return self._s[3909]! } + public var Conversation_Admin: String { return self._s[3910]! } + public var Conversation_GifTooltip: String { return self._s[3911]! } + public var Passport_NotLoggedInMessage: String { return self._s[3912]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3912]!, self._r[3912]!, [_0]) + return formatWithArgumentRanges(self._s[3914]!, self._r[3914]!, [_0]) } - public var Profile_MessageLifetimeForever: String { return self._s[3913]! } - public var SharedMedia_EmptyTitle: String { return self._s[3915]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3917]! } - public var Username_Help: String { return self._s[3918]! } - public var DialogList_LanguageTooltip: String { return self._s[3920]! } - public var Map_LoadError: String { return self._s[3921]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3922]! } - public var Channel_AdminLog_AddMembers: String { return self._s[3923]! } - public var ArchivedChats_IntroTitle2: String { return self._s[3924]! } - public var Notification_Exceptions_NewException: String { return self._s[3925]! } - public var TwoStepAuth_EmailTitle: String { return self._s[3926]! } - public var WatchRemote_AlertText: String { return self._s[3927]! } + public var Profile_MessageLifetimeForever: String { return self._s[3915]! } + public var SharedMedia_EmptyTitle: String { return self._s[3917]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3919]! } + public var Username_Help: String { return self._s[3920]! } + public var DialogList_LanguageTooltip: String { return self._s[3922]! } + public var Map_LoadError: String { return self._s[3923]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3924]! } + public var Channel_AdminLog_AddMembers: String { return self._s[3925]! } + public var ArchivedChats_IntroTitle2: String { return self._s[3926]! } + public var Notification_Exceptions_NewException: String { return self._s[3927]! } + public var TwoStepAuth_EmailTitle: String { return self._s[3928]! } + public var WatchRemote_AlertText: String { return self._s[3929]! } public func Wallet_Send_ConfirmationText(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3928]!, self._r[3928]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3930]!, self._r[3930]!, [_1, _2, _3]) } - public var ChatSettings_ConnectionType_Title: String { return self._s[3932]! } - public var WebBrowser_DefaultBrowser: String { return self._s[3933]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[3934]! } + public var WebBrowser_DefaultBrowser: String { return self._s[3935]! } public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3934]!, self._r[3934]!, [_0]) + return formatWithArgumentRanges(self._s[3936]!, self._r[3936]!, [_0]) } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3935]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[3936]! } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3937]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[3938]! } public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3937]!, self._r[3937]!, [_0]) + return formatWithArgumentRanges(self._s[3939]!, self._r[3939]!, [_0]) } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3938]!, self._r[3938]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3940]!, self._r[3940]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[3939]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3940]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[3942]! } - public var Wallet_Created_ExportErrorText: String { return self._s[3943]! } - public var ChatList_UndoArchiveText1: String { return self._s[3944]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3945]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3946]! } - public var Cache_ClearNone: String { return self._s[3947]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3948]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3949]! } + public var Group_AdminLog_EmptyText: String { return self._s[3941]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3942]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3944]! } + public var Wallet_Created_ExportErrorText: String { return self._s[3945]! } + public var ChatList_UndoArchiveText1: String { return self._s[3946]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3947]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3948]! } + public var Cache_ClearNone: String { return self._s[3949]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3950]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3951]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3950]!, self._r[3950]!, [_0]) - } - public var Passport_Identity_Country: String { return self._s[3951]! } - public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3952]!, self._r[3952]!, [_0]) } + public var Passport_Identity_Country: String { return self._s[3953]! } + public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3954]!, self._r[3954]!, [_0]) + } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3953]!, self._r[3953]!, [_0]) + return formatWithArgumentRanges(self._s[3955]!, self._r[3955]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[3954]! } - public var AccessDenied_Settings: String { return self._s[3955]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3956]! } - public var Month_ShortMay: String { return self._s[3957]! } - public var Compose_NewGroup: String { return self._s[3959]! } - public var Group_Setup_TypePrivate: String { return self._s[3961]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3963]! } - public var Appearance_ThemeDayClassic: String { return self._s[3964]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3965]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3966]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3967]! } - public var Conversation_typing: String { return self._s[3969]! } - public var Undo_ScheduledMessagesCleared: String { return self._s[3970]! } - public var Paint_Masks: String { return self._s[3971]! } - public var Contacts_DeselectAll: String { return self._s[3972]! } + public var Exceptions_AddToExceptions: String { return self._s[3956]! } + public var AccessDenied_Settings: String { return self._s[3957]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3958]! } + public var Month_ShortMay: String { return self._s[3959]! } + public var Compose_NewGroup: String { return self._s[3961]! } + public var Group_Setup_TypePrivate: String { return self._s[3963]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3965]! } + public var Appearance_ThemeDayClassic: String { return self._s[3966]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3967]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3968]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3969]! } + public var Conversation_typing: String { return self._s[3971]! } + public var Undo_ScheduledMessagesCleared: String { return self._s[3972]! } + public var Paint_Masks: String { return self._s[3973]! } + public var Contacts_DeselectAll: String { return self._s[3974]! } public func Wallet_Updated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3973]!, self._r[3973]!, [_0]) + return formatWithArgumentRanges(self._s[3975]!, self._r[3975]!, [_0]) } - public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3974]! } - public var Username_InvalidTaken: String { return self._s[3975]! } - public var Call_StatusNoAnswer: String { return self._s[3976]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3977]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3978]! } - public var Passport_Identity_Selfie: String { return self._s[3979]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3980]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3981]! } - public var Conversation_ClearSecretHistory: String { return self._s[3982]! } - public var PeopleNearby_Description: String { return self._s[3984]! } - public var NetworkUsageSettings_Title: String { return self._s[3985]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3987]! } + public var CreatePoll_MultipleChoiceQuizAlert: String { return self._s[3976]! } + public var Username_InvalidTaken: String { return self._s[3977]! } + public var Call_StatusNoAnswer: String { return self._s[3978]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3979]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3980]! } + public var Passport_Identity_Selfie: String { return self._s[3981]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3982]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3983]! } + public var Conversation_ClearSecretHistory: String { return self._s[3984]! } + public var PeopleNearby_Description: String { return self._s[3986]! } + public var NetworkUsageSettings_Title: String { return self._s[3987]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3989]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3989]!, self._r[3989]!, [_0]) + return formatWithArgumentRanges(self._s[3991]!, self._r[3991]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3990]!, self._r[3990]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3992]!, self._r[3992]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[3992]! } - public var VoiceOver_Navigation_Search: String { return self._s[3993]! } - public var Map_LiveLocationTitle: String { return self._s[3994]! } - public var Login_InfoAvatarAdd: String { return self._s[3995]! } - public var Passport_Identity_FilesView: String { return self._s[3996]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3997]! } - public var Privacy_Calls_NeverAllow: String { return self._s[3998]! } - public var VoiceOver_Chat_File: String { return self._s[3999]! } - public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4000]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[3994]! } + public var VoiceOver_Navigation_Search: String { return self._s[3995]! } + public var Map_LiveLocationTitle: String { return self._s[3996]! } + public var Login_InfoAvatarAdd: String { return self._s[3997]! } + public var Passport_Identity_FilesView: String { return self._s[3998]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3999]! } + public var Privacy_Calls_NeverAllow: String { return self._s[4000]! } + public var VoiceOver_Chat_File: String { return self._s[4001]! } + public var Wallet_Settings_DeleteWalletInfo: String { return self._s[4002]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4001]!, self._r[4001]!, [_0]) + return formatWithArgumentRanges(self._s[4003]!, self._r[4003]!, [_0]) } - public var ContactInfo_PhoneNumberHidden: String { return self._s[4002]! } - public var TwoStepAuth_ConfirmationText: String { return self._s[4003]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4004]! } + public var ContactInfo_PhoneNumberHidden: String { return self._s[4004]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[4005]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[4006]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4005]!, self._r[4005]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4007]!, self._r[4007]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4006]! } - public var Wallet_Intro_CreateErrorText: String { return self._s[4007]! } - public var Tour_Title2: String { return self._s[4008]! } - public var Wallet_Sent_ViewWallet: String { return self._s[4009]! } - public var Conversation_FileOpenIn: String { return self._s[4010]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4011]! } - public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4012]! } - public var Wallpaper_Set: String { return self._s[4013]! } - public var Passport_Identity_Translations: String { return self._s[4015]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[4008]! } + public var Wallet_Intro_CreateErrorText: String { return self._s[4009]! } + public var Tour_Title2: String { return self._s[4010]! } + public var Wallet_Sent_ViewWallet: String { return self._s[4011]! } + public var Conversation_FileOpenIn: String { return self._s[4012]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[4013]! } + public var Wallet_Send_ErrorInvalidAddress: String { return self._s[4014]! } + public var Wallpaper_Set: String { return self._s[4015]! } + public var Passport_Identity_Translations: String { return self._s[4017]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4016]!, self._r[4016]!, [_0]) + return formatWithArgumentRanges(self._s[4018]!, self._r[4018]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[4017]! } + public var Channel_LeaveChannel: String { return self._s[4019]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4018]!, self._r[4018]!, [_1]) + return formatWithArgumentRanges(self._s[4020]!, self._r[4020]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4020]! } - public var PhotoEditor_HighlightsTint: String { return self._s[4021]! } - public var MessagePoll_LabelPoll: String { return self._s[4022]! } - public var Passport_Email_Delete: String { return self._s[4023]! } - public var Conversation_Mute: String { return self._s[4025]! } - public var Channel_AddBotAsAdmin: String { return self._s[4026]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[4028]! } - public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4029]! } - public var ChatSettings_IntentsSettings: String { return self._s[4031]! } - public var Channel_Management_LabelOwner: String { return self._s[4032]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[4022]! } + public var PhotoEditor_HighlightsTint: String { return self._s[4023]! } + public var MessagePoll_LabelPoll: String { return self._s[4024]! } + public var Passport_Email_Delete: String { return self._s[4025]! } + public var Conversation_Mute: String { return self._s[4027]! } + public var Channel_AddBotAsAdmin: String { return self._s[4028]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[4030]! } + public var Wallet_Configuration_BlockchainNameChangedText: String { return self._s[4031]! } + public var ChatSettings_IntentsSettings: String { return self._s[4033]! } + public var Channel_Management_LabelOwner: String { return self._s[4034]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4033]!, self._r[4033]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4035]!, self._r[4035]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[4034]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[4035]! } - public var Common_No: String { return self._s[4036]! } - public var Weekday_Sunday: String { return self._s[4037]! } - public var Notification_Reply: String { return self._s[4038]! } - public var Conversation_ViewMessage: String { return self._s[4039]! } + public var Calls_CallTabDescription: String { return self._s[4036]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[4037]! } + public var Common_No: String { return self._s[4038]! } + public var Weekday_Sunday: String { return self._s[4039]! } + public var Notification_Reply: String { return self._s[4040]! } + public var Conversation_ViewMessage: String { return self._s[4041]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4040]!, self._r[4040]!, [_0]) + return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_0]) } public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4041]!, self._r[4041]!, [_0]) + return formatWithArgumentRanges(self._s[4043]!, self._r[4043]!, [_0]) } public func Wallet_Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4042]!, self._r[4042]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4044]!, self._r[4044]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4043]! } - public var Wallet_Send_Title: String { return self._s[4044]! } - public var Message_PinnedDocumentMessage: String { return self._s[4045]! } - public var Wallet_Info_RefreshErrorText: String { return self._s[4046]! } - public var DialogList_TabTitle: String { return self._s[4048]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[4049]! } - public var Passport_FieldEmail: String { return self._s[4050]! } - public var Conversation_UnpinMessageAlert: String { return self._s[4051]! } - public var Passport_Address_TypeBankStatement: String { return self._s[4052]! } - public var Wallet_SecureStorageReset_Title: String { return self._s[4053]! } - public var Passport_Identity_ExpiryDate: String { return self._s[4054]! } - public var Privacy_Calls_P2P: String { return self._s[4055]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[4045]! } + public var Wallet_Send_Title: String { return self._s[4046]! } + public var Message_PinnedDocumentMessage: String { return self._s[4047]! } + public var Wallet_Info_RefreshErrorText: String { return self._s[4048]! } + public var DialogList_TabTitle: String { return self._s[4050]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[4051]! } + public var Passport_FieldEmail: String { return self._s[4052]! } + public var Conversation_UnpinMessageAlert: String { return self._s[4053]! } + public var Passport_Address_TypeBankStatement: String { return self._s[4054]! } + public var Wallet_SecureStorageReset_Title: String { return self._s[4055]! } + public var Passport_Identity_ExpiryDate: String { return self._s[4056]! } + public var Privacy_Calls_P2P: String { return self._s[4057]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4057]!, self._r[4057]!, [_0]) + return formatWithArgumentRanges(self._s[4059]!, self._r[4059]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[4058]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[4060]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4059]!, self._r[4059]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4061]!, self._r[4061]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[4060]! } - public var EnterPasscode_ChangeTitle: String { return self._s[4061]! } - public var TwoFactorSetup_Email_Title: String { return self._s[4062]! } - public var Passport_InfoText: String { return self._s[4063]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4064]! } + public var Stickers_ClearRecent: String { return self._s[4062]! } + public var EnterPasscode_ChangeTitle: String { return self._s[4063]! } + public var TwoFactorSetup_Email_Title: String { return self._s[4064]! } + public var Passport_InfoText: String { return self._s[4065]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[4066]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4065]!, self._r[4065]!, [_0]) + return formatWithArgumentRanges(self._s[4067]!, self._r[4067]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4066]!, self._r[4066]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[4068]!, self._r[4068]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4067]! } - public var ScheduledMessages_PollUnavailable: String { return self._s[4068]! } - public var VoiceOver_Navigation_Compose: String { return self._s[4069]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[4070]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[4072]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4073]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[4069]! } + public var ScheduledMessages_PollUnavailable: String { return self._s[4070]! } + public var VoiceOver_Navigation_Compose: String { return self._s[4071]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[4072]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[4074]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[4075]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4074]!, self._r[4074]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4076]!, self._r[4076]!, [_1, _2]) } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4076]! } - public var ChatSettings_OpenLinksIn: String { return self._s[4077]! } - public var Map_HomeAndWorkTitle: String { return self._s[4078]! } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[4078]! } + public var ChatSettings_OpenLinksIn: String { return self._s[4079]! } + public var Map_HomeAndWorkTitle: String { return self._s[4080]! } public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4080]!, self._r[4080]!, [_0]) + return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_0]) } - public var DialogList_Unread: String { return self._s[4081]! } + public var DialogList_Unread: String { return self._s[4083]! } public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4082]!, self._r[4082]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4084]!, self._r[4084]!, [_1, _2]) } - public var User_DeletedAccount: String { return self._s[4083]! } - public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4084]! } + public var User_DeletedAccount: String { return self._s[4085]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[4086]! } public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4085]!, self._r[4085]!, [_0]) + return formatWithArgumentRanges(self._s[4087]!, self._r[4087]!, [_0]) } - public var UserInfo_NotificationsDefault: String { return self._s[4086]! } - public var SharedMedia_CategoryMedia: String { return self._s[4087]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4088]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4089]! } - public var Watch_ChatList_Compose: String { return self._s[4090]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4091]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[4092]! } - public var Watch_Microphone_Access: String { return self._s[4093]! } - public var Group_Setup_HistoryHeader: String { return self._s[4094]! } - public var Map_SetThisLocation: String { return self._s[4095]! } - public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4096]! } - public var Activity_UploadingPhoto: String { return self._s[4097]! } - public var Conversation_Edit: String { return self._s[4099]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[4100]! } - public var Login_TermsOfServiceDecline: String { return self._s[4101]! } - public var Message_PinnedContactMessage: String { return self._s[4102]! } + public var UserInfo_NotificationsDefault: String { return self._s[4088]! } + public var SharedMedia_CategoryMedia: String { return self._s[4089]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[4090]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[4091]! } + public var Watch_ChatList_Compose: String { return self._s[4092]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[4093]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[4094]! } + public var Watch_Microphone_Access: String { return self._s[4095]! } + public var Group_Setup_HistoryHeader: String { return self._s[4096]! } + public var Map_SetThisLocation: String { return self._s[4097]! } + public var Appearance_ThemePreview_Chat_2_ReplyName: String { return self._s[4098]! } + public var Activity_UploadingPhoto: String { return self._s[4099]! } + public var Conversation_Edit: String { return self._s[4101]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[4102]! } + public var Login_TermsOfServiceDecline: String { return self._s[4103]! } + public var Message_PinnedContactMessage: String { return self._s[4104]! } public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4103]!, self._r[4103]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4105]!, self._r[4105]!, [_1, _2]) } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4104]!, self._r[4104]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[4106]!, self._r[4106]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[4105]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[4107]! } - public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4108]! } + public var Appearance_LargeEmoji: String { return self._s[4107]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[4109]! } + public var EditTheme_Edit_Preview_IncomingReplyText: String { return self._s[4110]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4109]!, self._r[4109]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4111]!, self._r[4111]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[4110]! } - public var Message_PinnedPhotoMessage: String { return self._s[4111]! } - public var Passport_FieldPhone: String { return self._s[4112]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4113]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[4114]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[4116]! } - public var Conversation_Call: String { return self._s[4117]! } - public var Common_TakePhoto: String { return self._s[4119]! } - public var Group_EditAdmin_RankTitle: String { return self._s[4120]! } - public var Wallet_Receive_CommentHeader: String { return self._s[4121]! } - public var Channel_NotificationLoading: String { return self._s[4122]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[4112]! } + public var Message_PinnedPhotoMessage: String { return self._s[4113]! } + public var Passport_FieldPhone: String { return self._s[4114]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[4115]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[4116]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[4118]! } + public var Conversation_Call: String { return self._s[4119]! } + public var Common_TakePhoto: String { return self._s[4121]! } + public var Group_EditAdmin_RankTitle: String { return self._s[4122]! } + public var Wallet_Receive_CommentHeader: String { return self._s[4123]! } + public var Channel_NotificationLoading: String { return self._s[4124]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4123]!, self._r[4123]!, [_0]) + return formatWithArgumentRanges(self._s[4125]!, self._r[4125]!, [_0]) } public func ScheduledMessages_ScheduledDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4124]!, self._r[4124]!, [_0]) + return formatWithArgumentRanges(self._s[4126]!, self._r[4126]!, [_0]) } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4125]!, self._r[4125]!, [_1]) + return formatWithArgumentRanges(self._s[4127]!, self._r[4127]!, [_1]) } - public var Permissions_SiriTitle_v0: String { return self._s[4126]! } + public var Permissions_SiriTitle_v0: String { return self._s[4128]! } public func VoiceOver_Chat_VoiceMessageFrom(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4127]!, self._r[4127]!, [_0]) + return formatWithArgumentRanges(self._s[4129]!, self._r[4129]!, [_0]) } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4128]!, self._r[4128]!, [_0]) + return formatWithArgumentRanges(self._s[4130]!, self._r[4130]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[4129]! } - public var Wallet_Info_ReceiveGrams: String { return self._s[4130]! } - public var ClearCache_FreeSpace: String { return self._s[4131]! } - public var Common_edit: String { return self._s[4132]! } - public var PrivacySettings_AuthSessions: String { return self._s[4133]! } - public var Month_ShortJune: String { return self._s[4134]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4135]! } - public var Call_ReportSend: String { return self._s[4136]! } - public var Watch_LastSeen_JustNow: String { return self._s[4137]! } - public var Notifications_MessageNotifications: String { return self._s[4138]! } - public var WallpaperSearch_ColorGreen: String { return self._s[4139]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[4141]! } - public var Group_Status: String { return self._s[4142]! } + public var Channel_MessagePhotoRemoved: String { return self._s[4131]! } + public var Wallet_Info_ReceiveGrams: String { return self._s[4132]! } + public var ClearCache_FreeSpace: String { return self._s[4133]! } + public var Common_edit: String { return self._s[4134]! } + public var PrivacySettings_AuthSessions: String { return self._s[4135]! } + public var Month_ShortJune: String { return self._s[4136]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[4137]! } + public var Call_ReportSend: String { return self._s[4138]! } + public var Watch_LastSeen_JustNow: String { return self._s[4139]! } + public var Notifications_MessageNotifications: String { return self._s[4140]! } + public var WallpaperSearch_ColorGreen: String { return self._s[4141]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[4143]! } + public var Group_Status: String { return self._s[4144]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4143]!, self._r[4143]!, [_0, _1]) + return formatWithArgumentRanges(self._s[4145]!, self._r[4145]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[4144]! } - public var ShareMenu_ShareTo: String { return self._s[4145]! } - public var Conversation_Moderate_Ban: String { return self._s[4146]! } + public var TextFormat_AddLinkTitle: String { return self._s[4146]! } + public var ShareMenu_ShareTo: String { return self._s[4147]! } + public var Conversation_Moderate_Ban: String { return self._s[4148]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4147]!, self._r[4147]!, [_0]) + return formatWithArgumentRanges(self._s[4149]!, self._r[4149]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[4148]! } - public var Map_LiveLocationFor8Hours: String { return self._s[4149]! } + public var SharedMedia_ViewInChat: String { return self._s[4150]! } + public var Map_LiveLocationFor8Hours: String { return self._s[4151]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4150]!, self._r[4150]!, [_1]) + return formatWithArgumentRanges(self._s[4152]!, self._r[4152]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4151]!, self._r[4151]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4153]!, self._r[4153]!, [_0]) + return formatWithArgumentRanges(self._s[4155]!, self._r[4155]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[4154]! } - public var Appearance_ReduceMotion: String { return self._s[4155]! } + public var Map_OpenInHereMaps: String { return self._s[4156]! } + public var Appearance_ReduceMotion: String { return self._s[4157]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[4156]!, self._r[4156]!, [_1, _2]) + return formatWithArgumentRanges(self._s[4158]!, self._r[4158]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[4157]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[4158]! } - public var PhotoEditor_Skip: String { return self._s[4159]! } - public func VoiceOver_Chat_PollVotes(_ value: Int32) -> String { + public var Channel_Setup_TypePublicHelp: String { return self._s[4159]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[4160]! } + public var PhotoEditor_Skip: String { return self._s[4161]! } + public func OldChannels_InactiveWeek(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Conversation_StatusOnline(_ 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_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func OldChannels_InactiveMonth(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[4 * 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[5 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ForwardedLocations(_ 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 SharedMedia_File(_ 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 OldChannels_InactiveWeek(_ 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 Notification_GameScoreExtended(_ 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 LastSeen_HoursAgo(_ 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 LiveLocationUpdated_MinutesAgo(_ 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 Media_ShareItem(_ 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 Conversation_LiveLocationMembersCount(_ 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 Map_ETAMinutes(_ 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 PollResults_ShowMore(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_SelectedChats(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortHours(_ 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_Seconds(_ 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 MessageTimer_Hours(_ 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 MessagePoll_VotedCount(_ 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_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 Wallpaper_DeleteConfirmation(_ 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 GroupInfo_ShowMoreMembers(_ 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 Forward_ConfirmMultipleFiles(_ 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 ForwardedPhotos(_ 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 Watch_UserInfo_Mute(_ 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 UserCount(_ 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 StickerPack_StickerCount(_ 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 CreatePoll_AddMoreOptions(_ 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 ForwardedPolls(_ 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 Wallet_Updated_MinutesAgo(_ 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 Media_SharePhoto(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusSubscribers(_ 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 DialogList_LiveLocationChatsCount(_ 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 StickerPack_AddStickerCount(_ 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 ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func SharedMedia_Video(_ 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 Conversation_StatusMembers(_ 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 MuteExpires_Minutes(_ 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 Map_ETAHours(_ 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 ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func Notification_GameScoreSelfExtended(_ 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 Notification_GameScoreSelfSimple(_ 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 OldChannels_Leave(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func GroupInfo_ParticipantCount(_ 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 Wallet_Updated_HoursAgo(_ 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 VoiceOver_Chat_PollOptionCount(_ 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 StickerPack_AddMaskCount(_ 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 Media_ShareVideo(_ 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 Theme_UsersCount(_ 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 Notifications_Exceptions(_ 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 Passport_Scans(_ 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 MuteFor_Days(_ 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 AttachmentMenu_SendItem(_ 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 MessageTimer_Days(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Months(_ 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 ChatList_DeletedChats(_ 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 QuickSend_Photos(_ 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 MuteExpires_Days(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 MuteFor_Hours(_ 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 ForwardedAudios(_ 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 InviteText_ContactsCountText(_ 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 StickerPack_RemoveStickerCount(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Photo(_ 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 AttachmentMenu_SendVideo(_ 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 Contacts_ImportersCount(_ 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 Watch_LastSeen_HoursAgo(_ 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 SharedMedia_Generic(_ 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 ForwardedGifs(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func StickerPack_RemoveMaskCount(_ 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 ForwardedVideoMessages(_ 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 Notifications_ExceptionMuteExpires_Hours(_ 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 Conversation_SelectedMessages(_ 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 MuteExpires_Hours(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[1 * 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[82 * 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[83 * 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[84 * 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[85 * 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[86 * 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[87 * 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[88 * 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[89 * 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[90 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + 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[91 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func Call_Minutes(_ 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 AttachmentMenu_SendGif(_ 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 MessageTimer_ShortMinutes(_ 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 Notification_GameScoreSimple(_ 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 Contacts_InviteContacts(_ 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 MessageTimer_ShortSeconds(_ 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 ForwardedFiles(_ 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 Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[3 * 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[100 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[4 * 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[101 * 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[102 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, _1, _2) } - public func Invitation_Members(_ value: Int32) -> String { + public func MessageTimer_Days(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) } - public func VoiceOver_Chat_ContactEmailCount(_ value: Int32) -> String { + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Years(_ value: Int32) -> String { + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[106 * 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[107 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func OldChannels_GroupFormat(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func ChatList_DeleteConfirmation(_ 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 ServiceMessage_GameScoreSimple(_ 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 PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[112 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func SharedMedia_DeleteItemsConfirmation(_ 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 Call_Seconds(_ value: Int32) -> String { - let form = getPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[114 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[115 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Call_ShortMinutes(_ 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 OldChannels_InactiveYear(_ 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 ServiceMessage_GameScoreExtended(_ 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 ForwardedVideos(_ 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) + return String(format: self._ps[8 * 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[120 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[9 * 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[10 * 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[11 * 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[12 * 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[13 * 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[121 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[122 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MessagePoll_QuizCount(_ 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 Passport_Scans(_ 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 Wallet_Updated_HoursAgo(_ 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 ForwardedStickers(_ 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 AttachmentMenu_SendPhoto(_ 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 VoiceOver_Chat_ContactEmailCount(_ 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 Call_Minutes(_ 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 LiveLocation_MenuChatsCount(_ 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) + return String(format: self._ps[23 * 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[24 * 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[25 * 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[26 * 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[27 * 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[28 * 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[29 * 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[30 * 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[31 * 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[32 * 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[33 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPhotos(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusSubscribers(_ 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 MessageTimer_Years(_ 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 Call_ShortSeconds(_ 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 SharedMedia_Video(_ 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 OldChannels_InactiveYear(_ 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 Watch_LastSeen_HoursAgo(_ 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 ServiceMessage_GameScoreExtended(_ 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 LastSeen_HoursAgo(_ 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 ForwardedLocations(_ 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 Notification_GameScoreExtended(_ 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 Contacts_InviteContacts(_ 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 StickerPack_StickerCount(_ 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 MessageTimer_Hours(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ShowMoreMembers(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) } public func MessageTimer_Minutes(_ 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) + return String(format: self._ps[51 * 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[52 * 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[53 * 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[54 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func OldChannels_InactiveMonth(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[55 * 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[56 * 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[57 * 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[58 * 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[59 * 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[60 * 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[61 * 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[62 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Theme_UsersCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, _0, _1) + } + 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[65 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Media_ShareVideo(_ 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 PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[67 * 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[68 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Seconds(_ 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 GroupInfo_ParticipantCount(_ 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 ServiceMessage_GameScoreSelfExtended(_ 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_LastSeen_MinutesAgo(_ 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 Conversation_StatusOnline(_ 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 Contacts_ImportersCount(_ 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 VoiceOver_Chat_ContactPhoneNumberCount(_ 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 InviteText_ContactsCountText(_ 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 ForwardedFiles(_ 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 PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func MessageTimer_ShortMinutes(_ 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_Exceptions(_ 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 Call_ShortMinutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func VoiceOver_Chat_PollVotes(_ 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_StatusMembers(_ 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 MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MuteExpires_Minutes(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 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[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 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[89 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func OldChannels_GroupFormat(_ 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 MuteExpires_Days(_ 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 MuteFor_Days(_ 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 ForwardedVideos(_ 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 ForwardedMessages(_ 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 SharedMedia_Generic(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, _1, _2) } public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = getPluralizationForm(self.lc, selector) - return String(format: self._ps[125 * 6 + Int(form.rawValue)]!, _1, _2) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func AttachmentMenu_SendGif(_ 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 ForwardedGifs(_ 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 MessageTimer_ShortWeeks(_ 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 MuteFor_Hours(_ 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 CreatePoll_AddMoreOptions(_ 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 DialogList_LiveLocationChatsCount(_ 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 UserCount(_ 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 Map_ETAMinutes(_ 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 SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ 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 Wallet_Updated_MinutesAgo(_ value: Int32) -> String { + let form = getPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[108 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[109 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func QuickSend_Photos(_ 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 AttachmentMenu_SendVideo(_ 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 SharedMedia_File(_ 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 Notifications_ExceptionMuteExpires_Minutes(_ 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 SharedMedia_Photo(_ 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 Notifications_ExceptionMuteExpires_Days(_ 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 PollResults_ShowMore(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = getPluralizationForm(self.lc, selector) + return String(format: self._ps[117 * 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[118 * 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[119 * 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[120 * 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[121 * 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[122 * 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[123 * 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[124 * 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[125 * 6 + Int(form.rawValue)]!, stringValue) } public init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?, groupingSeparator: String) { diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift index 87d803c0f3..b7253dfc69 100644 --- a/submodules/TelegramUI/TelegramUI/ChatController.swift +++ b/submodules/TelegramUI/TelegramUI/ChatController.swift @@ -1559,7 +1559,7 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } return; } - if true { + if false { if strongSelf.selectPollOptionFeedback == nil { strongSelf.selectPollOptionFeedback = HapticFeedback() } @@ -6708,7 +6708,13 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G } public func navigateToMessage(messageLocation: NavigateToMessageLocation, animated: Bool, forceInCurrentChat: Bool = false, completion: (() -> Void)? = nil, customPresentProgress: ((ViewController, Any?) -> Void)? = nil) { - self.navigateToMessage(from: nil, to: messageLocation, rememberInStack: false, forceInCurrentChat: forceInCurrentChat, animated: animated, completion: completion, customPresentProgress: customPresentProgress) + let scrollPosition: ListViewScrollPosition + if case .upperBound = messageLocation { + scrollPosition = .top(0.0) + } else { + scrollPosition = .center(.bottom) + } + self.navigateToMessage(from: nil, to: messageLocation, scrollPosition: scrollPosition, rememberInStack: false, forceInCurrentChat: forceInCurrentChat, animated: animated, completion: completion, customPresentProgress: customPresentProgress) } private func navigateToMessage(from fromId: MessageId?, to messageLocation: NavigateToMessageLocation, scrollPosition: ListViewScrollPosition = .center(.bottom), rememberInStack: Bool = true, forceInCurrentChat: Bool = false, animated: Bool = true, completion: (() -> Void)? = nil, customPresentProgress: ((ViewController, Any?) -> Void)? = nil) { diff --git a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift index 945a5f7427..e2e39ecf99 100644 --- a/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift +++ b/submodules/TelegramUI/TelegramUI/ChatMessagePollBubbleContentNode.swift @@ -11,6 +11,7 @@ import CheckNode import SwiftSignalKit import AccountContext import AvatarNode +import TelegramPresentationData private struct PercentCounterItem: Comparable { var index: Int = 0 @@ -373,6 +374,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { private(set) var currentSelection: ChatMessagePollOptionSelection? var pressed: (() -> Void)? var selectionUpdated: (() -> Void)? + private var theme: PresentationTheme? override init() { self.highlightedBackgroundNode = ASDisplayNode() @@ -430,6 +432,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { let makeTitleLayout = TextNode.asyncLayout(maybeNode?.titleNode) let currentResult = maybeNode?.currentResult let currentSelection = maybeNode?.currentSelection + let currentTheme = maybeNode?.theme return { accountPeerId, presentationData, message, poll, option, optionResult, constrainedWidth in let leftInset: CGFloat = 50.0 @@ -449,8 +452,10 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { isSelectable = false } + let themeUpdated = presentationData.theme.theme !== currentTheme + var updatedPercentageImage: UIImage? - if currentResult != optionResult { + if currentResult != optionResult || themeUpdated { let value = optionResult?.percent ?? 0 updatedPercentageImage = generatePercentageImage(presentationData: presentationData, incoming: incoming, value: value, targetValue: value) } @@ -471,7 +476,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { } } } - if selection != currentSelection { + if selection != currentSelection || themeUpdated { updatedResultIcon = true if let selection = selection { var isQuiz = false @@ -537,6 +542,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { let previousResult = node.currentResult node.currentResult = optionResult node.currentSelection = selection + node.theme = presentationData.theme.theme node.highlightedBackgroundNode.backgroundColor = incoming ? presentationData.theme.theme.chat.message.incoming.polls.highlight : presentationData.theme.theme.chat.message.outgoing.polls.highlight @@ -568,7 +574,7 @@ private final class ChatMessagePollOptionNode: ASDisplayNode { } let radioSize: CGFloat = 22.0 radioNode.frame = CGRect(origin: CGPoint(x: 12.0, y: 12.0), size: CGSize(width: radioSize, height: radioSize)) - radioNode.update(staticColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.radioButton : presentationData.theme.theme.chat.message.outgoing.polls.radioButton, animatedColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.radioProgress : presentationData.theme.theme.chat.message.outgoing.polls.radioProgress, foregroundColor: presentationData.theme.theme.list.itemCheckColors.foregroundColor, isSelectable: isSelectable, isAnimating: inProgress) + radioNode.update(staticColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.radioButton : presentationData.theme.theme.chat.message.outgoing.polls.radioButton, animatedColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.radioProgress : presentationData.theme.theme.chat.message.outgoing.polls.radioProgress, foregroundColor: incoming ? presentationData.theme.theme.chat.message.incoming.polls.barIconForeground : presentationData.theme.theme.chat.message.outgoing.polls.barIconForeground, isSelectable: isSelectable, isAnimating: inProgress) } else if let radioNode = node.radioNode { node.radioNode = nil if animated { @@ -1071,7 +1077,7 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { } } if Namespaces.Message.allScheduled.contains(item.message.id.namespace) { - canVote = true + canVote = false } return (boundingSize.width, { boundingWidth in @@ -1275,6 +1281,10 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { var hasResults = false if poll.isClosed { hasResults = true + hasSelection = false + if let totalVoters = poll.results.totalVoters, totalVoters == 0 { + hasResults = false + } } else { if let totalVoters = poll.results.totalVoters, totalVoters != 0 { if let voters = poll.results.voters { @@ -1351,12 +1361,43 @@ class ChatMessagePollBubbleContentNode: ChatMessageBubbleContentNode { if optionNode.frame.contains(point), case .tap = gesture { if optionNode.isUserInteractionEnabled { return .ignore - } else if let result = optionNode.currentResult, let item = self.item, let poll = self.poll, case .public = poll.publicity, let option = optionNode.option { - if !isEstimating { - item.controllerInteraction.openMessagePollResults(item.message.id, option.opaqueIdentifier) - return .ignore + } else if let result = optionNode.currentResult, let item = self.item, let poll = self.poll, let option = optionNode.option { + switch poll.publicity { + case .anonymous: + let string: String + switch poll.kind { + case .poll: + if result.count == 0 { + string = item.presentationData.strings.MessagePoll_NoVotes + } else { + string = item.presentationData.strings.MessagePoll_VotedCount(result.count) + } + case .quiz: + if result.count == 0 { + string = item.presentationData.strings.MessagePoll_QuizNoUsers + } else { + string = item.presentationData.strings.MessagePoll_QuizCount(result.count) + } + } + return .tooltip(string, optionNode, optionNode.bounds.offsetBy(dx: 0.0, dy: 10.0)) + case .public: + var hasNonZeroVoters = false + if let voters = poll.results.voters { + for voter in voters { + if voter.count != 0 { + hasNonZeroVoters = true + break + } + } + } + if hasNonZeroVoters { + if !isEstimating { + item.controllerInteraction.openMessagePollResults(item.message.id, option.opaqueIdentifier) + return .ignore + } + return .openMessage + } } - return .openMessage } } } diff --git a/submodules/TelegramUI/TelegramUI/ConfettiView.swift b/submodules/TelegramUI/TelegramUI/ConfettiView.swift index 2e23c6cd28..c17a9f32a4 100644 --- a/submodules/TelegramUI/TelegramUI/ConfettiView.swift +++ b/submodules/TelegramUI/TelegramUI/ConfettiView.swift @@ -19,11 +19,14 @@ private final class ParticleLayer: CALayer { var velocity: Vector2 var angularVelocity: Float var rotationAngle: Float = 0.0 + var localTime: Float = 0.0 + var type: Int - init(image: CGImage, size: CGSize, position: CGPoint, mass: Float, velocity: Vector2, angularVelocity: Float) { + init(image: CGImage, size: CGSize, position: CGPoint, mass: Float, velocity: Vector2, angularVelocity: Float, type: Int) { self.mass = mass self.velocity = velocity self.angularVelocity = angularVelocity + self.type = type super.init() @@ -84,38 +87,49 @@ final class ConfettiView: UIView { let velocityYRange = Float(3.0) ..< Float(5.0) let angularVelocityRange = Float(1.0) ..< Float(6.0) let sizeVariation = Float(0.8) ..< Float(1.6) + let topDelayRange = Float(0.0) ..< Float(0.0) for i in 0 ..< 70 { let (image, size) = images[i % imageCount] let sizeScale = CGFloat(Float.random(in: sizeVariation)) - let particle = ParticleLayer(image: image, size: CGSize(width: size.width * sizeScale, height: size.height * sizeScale), position: CGPoint(x: CGFloat(Int.random(in: originXRange)), y: CGFloat(Int.random(in: originYRange))), mass: Float.random(in: topMassRange), velocity: Vector2(x: 0.0, y: Float.random(in: velocityYRange)), angularVelocity: Float.random(in: angularVelocityRange)) + let particle = ParticleLayer(image: image, size: CGSize(width: size.width * sizeScale, height: size.height * sizeScale), position: CGPoint(x: CGFloat(Int.random(in: originXRange)), y: CGFloat(Int.random(in: originYRange))), mass: Float.random(in: topMassRange), velocity: Vector2(x: 0.0, y: Float.random(in: velocityYRange)), angularVelocity: Float.random(in: angularVelocityRange), type: 0) self.particles.append(particle) self.layer.addSublayer(particle) } - let sideMassRange: Range = 100.0 ..< 110.0 - let sideOriginYBase: Float = Float(frame.size.height * 8.5 / 10.0) + let sideMassRange: Range = 110.0 ..< 120.0 + let sideOriginYBase: Float = Float(frame.size.height * 9.0 / 10.0) let sideOriginYVariation: Float = Float(frame.size.height / 12.0) let sideOriginYRange = Float(sideOriginYBase - sideOriginYVariation) ..< Float(sideOriginYBase + sideOriginYVariation) let sideOriginXRange = Float(0.0) ..< Float(100.0) - let sideOriginVelocityValueRange = Float(1.1) ..< Float(1.6) - let sideOriginVelocityValueScaling: Float = 1200.0 + let sideOriginVelocityValueRange = Float(1.1) ..< Float(1.3) + let sideOriginVelocityValueScaling: Float = 2400.0 * Float(frame.height) / 896.0 let sideOriginVelocityBase: Float = Float.pi / 2.0 + atanf(Float(CGFloat(sideOriginYBase) / (frame.size.width * 0.8))) - let sideOriginVelocityVariation: Float = 0.2 + let sideOriginVelocityVariation: Float = 0.09 let sideOriginVelocityAngleRange = Float(sideOriginVelocityBase - sideOriginVelocityVariation) ..< Float(sideOriginVelocityBase + sideOriginVelocityVariation) + let originAngleRange = Float(0.0) ..< (Float.pi * 2.0) + let originAmplitudeDiameter: CGFloat = 230.0 + let originAmplitudeRange = Float(0.0) ..< Float(originAmplitudeDiameter / 2.0) + + let sideTypes: [Int] = [0, 1, 2] for sideIndex in 0 ..< 2 { let sideSign: Float = sideIndex == 0 ? 1.0 : -1.0 - let originX: CGFloat = sideIndex == 0 ? -5.0 : (frame.width + 5.0) + let baseOriginX: CGFloat = sideIndex == 0 ? -originAmplitudeDiameter / 2.0 : (frame.width + originAmplitudeDiameter / 2.0) + for i in 0 ..< 40 { - let offsetX = CGFloat(Float.random(in: sideOriginXRange) * (-sideSign)) + let originAngle = Float.random(in: originAngleRange) + let originAmplitude = Float.random(in: originAmplitudeRange) + let originX = baseOriginX + CGFloat(cosf(originAngle) * originAmplitude) + let originY = CGFloat(sideOriginYBase + sinf(originAngle) * originAmplitude) + let velocityValue = Float.random(in: sideOriginVelocityValueRange) * sideOriginVelocityValueScaling let velocityAngle = Float.random(in: sideOriginVelocityAngleRange) let velocityX = sideSign * velocityValue * sinf(velocityAngle) let velocityY = velocityValue * cosf(velocityAngle) let (image, size) = images[i % imageCount] let sizeScale = CGFloat(Float.random(in: sizeVariation)) - let particle = ParticleLayer(image: image, size: CGSize(width: size.width * sizeScale, height: size.height * sizeScale), position: CGPoint(x: originX + offsetX, y: CGFloat(Float.random(in: sideOriginYRange))), mass: Float.random(in: sideMassRange), velocity: Vector2(x: velocityX, y: velocityY), angularVelocity: Float.random(in: angularVelocityRange)) + let particle = ParticleLayer(image: image, size: CGSize(width: size.width * sizeScale, height: size.height * sizeScale), position: CGPoint(x: originX, y: originY), mass: Float.random(in: sideMassRange), velocity: Vector2(x: velocityX, y: velocityY), angularVelocity: Float.random(in: angularVelocityRange), type: sideTypes[i % 3]) self.particles.append(particle) self.layer.addSublayer(particle) } @@ -132,57 +146,89 @@ final class ConfettiView: UIView { fatalError("init(coder:) has not been implemented") } + private var slowdownStartTimestamps: [Float?] = [nil, nil, nil] + private func step() { + self.slowdownStartTimestamps[0] = 0.33 + var haveParticlesAboveGround = false let minPositionY: CGFloat = 0.0 let maxPositionY = self.bounds.height + 30.0 let minDampingX: CGFloat = 40.0 let maxDampingX: CGFloat = self.bounds.width - 40.0 let centerX: CGFloat = self.bounds.width / 2.0 - let currentTime = self.localTime - let dt: Float = 1.0 / 60.0 - let slowdownDt: Float - let slowdownStart: Float = 0.27 - let slowdownDuration: Float = 0.9 - let damping: Float - if currentTime >= slowdownStart && currentTime <= slowdownStart + slowdownDuration { - let slowdownTimestamp: Float = currentTime - slowdownStart - - let slowdownRampInDuration: Float = 0.15 - let slowdownRampOutDuration: Float = 0.5 - let slowdownTransition: Float - if slowdownTimestamp < slowdownRampInDuration { - slowdownTransition = slowdownTimestamp / slowdownRampInDuration - } else if slowdownTimestamp >= slowdownDuration - slowdownRampOutDuration { - let reverseTransition = (slowdownTimestamp - (slowdownDuration - slowdownRampOutDuration)) / slowdownRampOutDuration - slowdownTransition = 1.0 - reverseTransition + let dt: Float = 1.0 * 1.0 / 60.0 + + let typeDelays: [Float] = [0.0, 0.01, 0.08] + var dtAndDamping: [(Float, Float)] = [] + + for i in 0 ..< 3 { + let typeDelay = typeDelays[i] + let currentTime = self.localTime - typeDelay + if currentTime < 0.0 { + dtAndDamping.append((0.0, 1.0)) + } else if let slowdownStart = self.slowdownStartTimestamps[i] { + let slowdownDt: Float + let slowdownDuration: Float = 0.5 + let damping: Float + if currentTime >= slowdownStart && currentTime <= slowdownStart + slowdownDuration { + let slowdownTimestamp: Float = currentTime - slowdownStart + + let slowdownRampInDuration: Float = 0.05 + let slowdownRampOutDuration: Float = 0.2 + let rawSlowdownT: Float + if slowdownTimestamp < slowdownRampInDuration { + rawSlowdownT = slowdownTimestamp / slowdownRampInDuration + } else if slowdownTimestamp >= slowdownDuration - slowdownRampOutDuration { + let reverseTransition = (slowdownTimestamp - (slowdownDuration - slowdownRampOutDuration)) / slowdownRampOutDuration + rawSlowdownT = 1.0 - reverseTransition + } else { + rawSlowdownT = 1.0 + } + + let slowdownTransition = rawSlowdownT * rawSlowdownT + + let slowdownFactor: Float = 0.8 * slowdownTransition + 1.0 * (1.0 - slowdownTransition) + slowdownDt = dt * slowdownFactor + let dampingFactor: Float = 0.937 * slowdownTransition + 1.0 * (1.0 - slowdownTransition) + + damping = dampingFactor + } else { + slowdownDt = dt + damping = 1.0 + } + if i == 1 { + //print("type 1 dt = \(slowdownDt), slowdownStart = \(slowdownStart), currentTime = \(currentTime)") + } + dtAndDamping.append((slowdownDt, damping)) } else { - slowdownTransition = 1.0 + dtAndDamping.append((dt, 1.0)) } - - let slowdownFactor: Float = 0.3 * slowdownTransition + 1.0 * (1.0 - slowdownTransition) - slowdownDt = dt * slowdownFactor - let dampingFactor: Float = 0.94 * slowdownTransition + 1.0 * (1.0 - slowdownTransition) - damping = dampingFactor - } else { - slowdownDt = dt - damping = 1.0 } - self.localTime += 1.0 / 60.0 + self.localTime += dt let g: Vector2 = Vector2(x: 0.0, y: 9.8) CATransaction.begin() CATransaction.setDisableActions(true) var turbulenceVariation: [Float] = [] for _ in 0 ..< 20 { - turbulenceVariation.append(Float.random(in: -9.0 ..< 9.0)) + turbulenceVariation.append(Float.random(in: -16.0 ..< 16.0) * 60.0) } let turbulenceVariationCount = turbulenceVariation.count var index = 0 + + var typesWithPositiveVelocity: [Bool] = [false, false, false] + for particle in self.particles { - var position = particle.position + let (localDt, damping_) = dtAndDamping[particle.type] + if localDt.isZero { + continue + } + let damping: Float = 0.93 - let localDt: Float = slowdownDt + particle.localTime += localDt + + var position = particle.position position.x += CGFloat(particle.velocity.x * localDt) position.y += CGFloat(particle.velocity.y * localDt) @@ -196,10 +242,12 @@ final class ConfettiView: UIView { var velocity = particle.velocity velocity.x += acceleration.x * particle.mass * localDt velocity.y += acceleration.y * particle.mass * localDt - velocity.x += turbulenceVariation[index % turbulenceVariationCount] - if position.y > minPositionY { + if velocity.y < 0.0 { velocity.x *= damping velocity.y *= damping + } else { + velocity.x += turbulenceVariation[index % turbulenceVariationCount] * localDt + typesWithPositiveVelocity[particle.type] = true } particle.velocity = velocity @@ -209,6 +257,11 @@ final class ConfettiView: UIView { haveParticlesAboveGround = true } } + for i in 0 ..< 3 { + if typesWithPositiveVelocity[i] && self.slowdownStartTimestamps[i] == nil { + self.slowdownStartTimestamps[i] = max(0.0, self.localTime - typeDelays[i]) + } + } CATransaction.commit() if !haveParticlesAboveGround { self.displayLink?.isPaused = true diff --git a/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift b/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift index ed05896e1f..39da4e104f 100644 --- a/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift +++ b/submodules/TelegramUI/TelegramUI/LegacyInstantVideoController.swift @@ -135,16 +135,11 @@ func legacyInstantVideoController(theme: PresentationTheme, panelFrame: CGRect, done?(time) } } - controller.finishedWithVideo = { [weak controller] videoUrl, previewImage, _, duration, dimensions, liveUploadData, adjustments, isSilent, scheduleTimestamp in + controller.finishedWithVideo = { videoUrl, previewImage, _, duration, dimensions, liveUploadData, adjustments, isSilent, scheduleTimestamp in guard let videoUrl = videoUrl else { return } - let strongController = controller - Queue.mainQueue().after(4.0, { - strongController?.resignFirstResponder() - }) - var finalDimensions: CGSize = dimensions var finalDuration: Double = duration diff --git a/submodules/TelegramUI/TelegramUI/PollResultsController.swift b/submodules/TelegramUI/TelegramUI/PollResultsController.swift index 55c3729a44..002987d290 100644 --- a/submodules/TelegramUI/TelegramUI/PollResultsController.swift +++ b/submodules/TelegramUI/TelegramUI/PollResultsController.swift @@ -224,7 +224,11 @@ private func pollResultsControllerEntries(presentationData: PresentationData, po if peers.count > collapsedInitialLimit { displayCount = collapsedResultCount } else { - displayCount = peers.count + if optionState.isLoadingMore && peers.count <= collapsedInitialLimit + 1 { + displayCount = collapsedResultCount + } else { + displayCount = peers.count + } } var peerIndex = 0 @@ -278,7 +282,7 @@ public func pollResultsController(context: AccountContext, messageId: MessageId, |> take(1) |> deliverOnMainQueue).start(next: { [weak resultsContext] state in if let optionState = state.options[optionId] { - if optionState.canLoadMore && optionState.peers.count <= collapsedResultCount { + if optionState.canLoadMore { resultsContext?.loadMore(optionOpaqueIdentifier: optionId) } } diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping index 12bd4f1e86d456673378b46a18828fac22567097..4eb8d44bfdb9706e8e292817c708795ea3cf0534 100644 GIT binary patch delta 23903 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�AmQLp-R zVjVx?&@~~aGyf$oqB-+kS?OI^qqfNt;1#)hGY_>ZZqL@73EkKvPthN2kl}P+`%M8T zI8FI>yp0w}noY{k?CpCHP|nXZwDQT4ugMp}4c_{m{`wnFSk6(vdimDehKE{f(XD#1 zC}~E5$z`bHE@Z`jaIv7VqS9O68$DVPZ~Ne-R31ZLtZL0e>?dh2OHQmVx<9+d^S|bV z=K<6v>iE4P->D41*-Xu8A4mv!{Wr1&e(TRuS6O~DPUUGahCyugr3M=4Tqqrk_hhU74v_3?taYT=C=>Txp|)@v{?umg7_&XiMfyjm8tLNOxoKoFx6RSeV5D%h29UN*zbY|4^#rkoD!* znXRR_m$4LO^)$Vwy3Y2b^(D94OyNz3J|0`itPS#MSCmYzjL}LbVs;L#;!0K}$`thw zf7TI=)k%t7nMN|ST`xlrz6Sy7*sE~HP5xHxqq86%`{G9_(s&nMB<2zgYAGJ String { + public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = walletStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallet_Updated_HoursAgo(_ value: Int32) -> String { + public func Wallet_Updated_MinutesAgo(_ value: Int32) -> String { let form = getPluralizationForm(self.lc, value) let stringValue = walletStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) From 0f52ed4a6c027783055835c5a3c6e93e818766d4 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 17 Jan 2020 11:58:53 +0300 Subject: [PATCH 24/63] Disable camera in split view --- submodules/LegacyUI/Sources/LegacyController.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/submodules/LegacyUI/Sources/LegacyController.swift b/submodules/LegacyUI/Sources/LegacyController.swift index c2c41c8c21..df58f2cbe3 100644 --- a/submodules/LegacyUI/Sources/LegacyController.swift +++ b/submodules/LegacyUI/Sources/LegacyController.swift @@ -173,6 +173,9 @@ public final class LegacyControllerContext: NSObject, LegacyComponentsContext { } public func currentlyInSplitView() -> Bool { + if let controller = self.controller as? LegacyController, let validLayout = controller.validLayout { + return validLayout.isNonExclusive + } return false } From df058226d6f7f3c7f6f56360933728137e93a58c Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 17 Jan 2020 12:02:11 +0300 Subject: [PATCH 25/63] Fix two auth setup content top inset on small screens --- .../Sources/SetupTwoStepVerificationContentNode.swift | 2 +- .../Sources/SetupTwoStepVerificationControllerNode.swift | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationContentNode.swift b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationContentNode.swift index f2a564d5b7..80a45ac163 100644 --- a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationContentNode.swift +++ b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationContentNode.swift @@ -160,7 +160,7 @@ final class SetupTwoStepVerificationContentNode: ASDisplayNode, UITextFieldDeleg let minContentHeight = textHeight + inputHeight let contentHeight = min(215.0, max(size.height - insets.top - insets.bottom - 40.0, minContentHeight)) - let contentOrigin = insets.top + floor((size.height - insets.top - insets.bottom - contentHeight) / 2.0) + let contentOrigin = max(56.0, insets.top + floor((size.height - insets.top - insets.bottom - contentHeight) / 2.0)) let titleFrame = CGRect(origin: CGPoint(x: floor((size.width - titleSize.width) / 2.0), y: contentOrigin), size: titleSize) transition.updateFrame(node: self.titleNode, frame: titleFrame) transition.updateFrame(node: self.subtitleNode, frame: CGRect(origin: CGPoint(x: floor((size.width - subtitleSize.width) / 2.0), y: titleFrame.maxY + titleSubtitleSpacing), size: subtitleSize)) diff --git a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift index b1eb0635ea..550b0f781c 100644 --- a/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift +++ b/submodules/PasswordSetupUI/Sources/SetupTwoStepVerificationControllerNode.swift @@ -698,7 +698,6 @@ final class SetupTwoStepVerificationControllerNode: ViewControllerTracingNode { }, transition: .animated(duration: 0.5, curve: .spring)) } if case let .enterEmail(enterEmail)? = self.innerState.data.state, case .create = enterEmail.state, enterEmail.email.isEmpty { - self.present(textAlertController(context: self.context, title: nil, text: self.presentationData.strings.TwoStepAuth_EmailSkipAlert, actions: [TextAlertAction(type: .defaultAction, title: self.presentationData.strings.Common_Cancel, action: {}), TextAlertAction(type: .destructiveAction, title: self.presentationData.strings.TwoStepAuth_EmailSkip, action: { continueImpl() })]), nil) From 466dfdcd5ad2e231656231571c0e6d8a78f3becd Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 17 Jan 2020 12:14:37 +0300 Subject: [PATCH 26/63] Fix 2x rate button flashing on track change --- .../TelegramUI/TelegramUI/OverlayPlayerControlsNode.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/OverlayPlayerControlsNode.swift b/submodules/TelegramUI/TelegramUI/OverlayPlayerControlsNode.swift index 443ca664c0..e866e57ec7 100644 --- a/submodules/TelegramUI/TelegramUI/OverlayPlayerControlsNode.swift +++ b/submodules/TelegramUI/TelegramUI/OverlayPlayerControlsNode.swift @@ -349,14 +349,14 @@ final class OverlayPlayerControlsNode: ASDisplayNode { } let duration = value.status.duration - if duration != strongSelf.currentDuration { + if duration != strongSelf.currentDuration && !duration.isZero { strongSelf.currentDuration = duration if let layout = strongSelf.validLayout { strongSelf.updateLayout(width: layout.0, leftInset: layout.1, rightInset: layout.2, maxHeight: layout.3, transition: .immediate) } } - strongSelf.rateButton.isHidden = rateButtonIsHidden || strongSelf.currentDuration.isZero + strongSelf.rateButton.isHidden = rateButtonIsHidden } else { strongSelf.playPauseButton.isEnabled = false strongSelf.backwardButton.isEnabled = false From f788a5a0c197e6ddaea5f1f4288bcb170f79c463 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Fri, 17 Jan 2020 13:20:58 +0400 Subject: [PATCH 27/63] Improve poll results expansion --- .../TelegramUI/PollResultsController.swift | 45 ++++++++++++------- 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/PollResultsController.swift b/submodules/TelegramUI/TelegramUI/PollResultsController.swift index 002987d290..ca3c1156d4 100644 --- a/submodules/TelegramUI/TelegramUI/PollResultsController.swift +++ b/submodules/TelegramUI/TelegramUI/PollResultsController.swift @@ -155,7 +155,7 @@ private enum PollResultsEntry: ItemListNodeEntry { } private struct PollResultsControllerState: Equatable { - var expandedOptions = Set() + var expandedOptions: [Data: Int] = [:] } private func pollResultsControllerEntries(presentationData: PresentationData, poll: TelegramMediaPoll, state: PollResultsControllerState, resultsState: PollResultsState) -> [PollResultsEntry] { @@ -215,28 +215,40 @@ private func pollResultsControllerEntries(presentationData: PresentationData, po } else { if let optionState = resultsState.options[option.opaqueIdentifier], !optionState.peers.isEmpty { var hasMore = false - let optionExpanded = state.expandedOptions.contains(option.opaqueIdentifier) + let optionExpandedAtCount = state.expandedOptions[option.opaqueIdentifier] let peers = optionState.peers let count = optionState.count let displayCount: Int - if peers.count > collapsedInitialLimit { - displayCount = collapsedResultCount - } else { - if optionState.isLoadingMore && peers.count <= collapsedInitialLimit + 1 { - displayCount = collapsedResultCount - } else { + if peers.count > collapsedInitialLimit + 1 { + if optionExpandedAtCount != nil { displayCount = peers.count + } else { + displayCount = collapsedResultCount + } + } else { + if let optionExpandedAtCount = optionExpandedAtCount { + if optionExpandedAtCount == collapsedInitialLimit + 1 && optionState.canLoadMore { + displayCount = collapsedResultCount + } else { + displayCount = peers.count + } + } else { + if !optionState.canLoadMore { + displayCount = peers.count + } else { + displayCount = collapsedResultCount + } } } var peerIndex = 0 inner: for peer in peers { - if !optionExpanded && peerIndex >= displayCount { + if peerIndex >= displayCount { break inner } - entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: optionTextHeader, optionCount: Int32(count), optionExpanded: optionExpanded, opaqueIdentifier: option.opaqueIdentifier, shimmeringAlternation: nil, isFirstInOption: peerIndex == 0)) + entries.append(.optionPeer(optionId: i, index: peerIndex, peer: peer, optionText: optionTextHeader, optionCount: Int32(count), optionExpanded: optionExpandedAtCount != nil, opaqueIdentifier: option.opaqueIdentifier, shimmeringAlternation: nil, isFirstInOption: peerIndex == 0)) peerIndex += 1 } @@ -269,19 +281,20 @@ public func pollResultsController(context: AccountContext, messageId: MessageId, collapseOption: { optionId in updateState { state in var state = state - state.expandedOptions.remove(optionId) + state.expandedOptions.removeValue(forKey: optionId) return state } }, expandOption: { optionId in - updateState { state in - var state = state - state.expandedOptions.insert(optionId) - return state - } let _ = (resultsContext.state |> take(1) |> deliverOnMainQueue).start(next: { [weak resultsContext] state in if let optionState = state.options[optionId] { + updateState { state in + var state = state + state.expandedOptions[optionId] = optionState.peers.count + return state + } + if optionState.canLoadMore { resultsContext?.loadMore(optionOpaqueIdentifier: optionId) } From 1d97295f363f18991cbfe6aa2f50b14c59f1a3bc Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 17 Jan 2020 12:40:45 +0300 Subject: [PATCH 28/63] Fix default show calls tab value and calls tab suggestion alert --- submodules/TelegramCallsUI/Sources/CallController.swift | 8 +++++--- submodules/TelegramNotices/Sources/Notices.swift | 2 +- submodules/TelegramUI/TelegramUI/ApplicationContext.swift | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/submodules/TelegramCallsUI/Sources/CallController.swift b/submodules/TelegramCallsUI/Sources/CallController.swift index 3644129160..1181b67ea5 100644 --- a/submodules/TelegramCallsUI/Sources/CallController.swift +++ b/submodules/TelegramCallsUI/Sources/CallController.swift @@ -216,11 +216,13 @@ public final class CallController: ViewController { } |> deliverOnMainQueue).start(next: { [weak self] callsTabTip in if let strongSelf = self { if callsTabTip == 2 { - let controller = callSuggestTabController(sharedContext: strongSelf.sharedContext) - strongSelf.present(controller, in: .window(.root)) + Queue.mainQueue().after(1.0) { + let controller = callSuggestTabController(sharedContext: strongSelf.sharedContext) + strongSelf.present(controller, in: .window(.root)) + } } if callsTabTip < 3 { - let _ = ApplicationSpecificNotice.incrementCallsTabTips(accountManager: strongSelf.sharedContext.accountManager, count: 4).start() + let _ = ApplicationSpecificNotice.incrementCallsTabTips(accountManager: strongSelf.sharedContext.accountManager).start() } } }) diff --git a/submodules/TelegramNotices/Sources/Notices.swift b/submodules/TelegramNotices/Sources/Notices.swift index 01c3c17b33..f74f864b5c 100644 --- a/submodules/TelegramNotices/Sources/Notices.swift +++ b/submodules/TelegramNotices/Sources/Notices.swift @@ -129,12 +129,12 @@ private enum ApplicationSpecificGlobalNotice: Int32 { case volumeButtonToUnmuteTip = 9 case archiveChatTips = 10 case archiveIntroDismissed = 11 - case callsTabTip = 12 case cellularDataPermissionWarning = 13 case chatMessageSearchResultsTip = 14 case chatMessageOptionsTip = 15 case chatTextSelectionTip = 16 case themeChangeTip = 17 + case callsTabTip = 18 var key: ValueBoxKey { let v = ValueBoxKey(length: 4) diff --git a/submodules/TelegramUI/TelegramUI/ApplicationContext.swift b/submodules/TelegramUI/TelegramUI/ApplicationContext.swift index 5754ef44da..c28bc4b733 100644 --- a/submodules/TelegramUI/TelegramUI/ApplicationContext.swift +++ b/submodules/TelegramUI/TelegramUI/ApplicationContext.swift @@ -659,7 +659,7 @@ final class AuthorizedApplicationContext { let showCallsTabSignal = context.sharedContext.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.callListSettings]) |> map { sharedData -> Bool in - var value = true + var value = false if let settings = sharedData.entries[ApplicationSpecificSharedDataKeys.callListSettings] as? CallListSettings { value = settings.showTab } From b8670e23529332ea438a135c2db9178b8f88fe9e Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 17 Jan 2020 13:06:05 +0300 Subject: [PATCH 29/63] Revert default wallpaper back to cats & dogs --- .../Resources/ChatWallpaperBuiltin0.jpg | Bin 469305 -> 509626 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/submodules/TelegramUI/TelegramUI/Resources/ChatWallpaperBuiltin0.jpg b/submodules/TelegramUI/TelegramUI/Resources/ChatWallpaperBuiltin0.jpg index 688289d25e64519f5a0bef9557a906b09570dcbb..44f7cf5262cb857140f54e2530709f78f1e0b4ee 100644 GIT binary patch literal 509626 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