From bc96107da16ed613aa32c42c80f0afcc1b4593ae Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Sat, 8 Jun 2019 00:10:27 +0200 Subject: [PATCH] Support of channel/group ownership transfer People Nearby initial implementation Ghost Icons for deleted users --- .../Avatar/DeletedIcon.imageset/Contents.json | 22 + .../Avatar/DeletedIcon.imageset/Ghost@2x.png | Bin 0 -> 1200 bytes .../Avatar/DeletedIcon.imageset/Ghost@3x.png | Bin 0 -> 1948 bytes .../PeopleNearbyIcon.imageset/Contents.json | 22 + .../locationcontacts@2x.png | Bin 0 -> 619 bytes .../locationcontacts@3x.png | Bin 0 -> 736 bytes TelegramUI.xcodeproj/project.pbxproj | 28 + TelegramUI/AvatarNode.swift | 21 +- .../CachedResourceRepresentations.swift | 2 +- TelegramUI/CallRatingController.swift | 77 +- TelegramUI/CallSuggestTabController.swift | 139 +- TelegramUI/ChannelAdminController.swift | 117 +- TelegramUI/ChannelAdminsController.swift | 26 +- TelegramUI/ChannelMembersController.swift | 2 +- .../ChannelMembersSearchContainerNode.swift | 32 +- .../ChannelMembersSearchControllerNode.swift | 4 +- .../ChannelOwnershipTransferController.swift | 481 ++ TelegramUI/ChatController.swift | 2 +- TelegramUI/ChatListItem.swift | 2 + .../ChatMessageActionUrlAuthController.swift | 77 +- .../ChatRecentActionsFilterController.swift | 2 +- TelegramUI/ChatTextLinkEditController.swift | 98 +- TelegramUI/ComponentsThemes.swift | 2 +- TelegramUI/ContactsController.swift | 4 +- TelegramUI/ContactsControllerNode.swift | 7 +- TelegramUI/ContactsPeerItem.swift | 2 + TelegramUI/DefaultPresentationTheme.swift | 2 +- .../DeleteChatPeerActionSheetItem.swift | 6 +- TelegramUI/GroupInfoController.swift | 2 +- TelegramUI/ItemListAvatarAndNameItem.swift | 2 + TelegramUI/ItemListPeerItem.swift | 6 +- TelegramUI/PeopleNearbyController.swift | 328 + TelegramUI/PeopleNearbyHeaderItem.swift | 123 + TelegramUI/PeopleNearbyIconNode.swift | 204 + TelegramUI/PresentationStrings.swift | 6315 +++++++++-------- .../Resources/Animations/anim_success.json | 1 + .../Resources/PresentationStrings.mapping | Bin 114791 -> 115877 bytes TelegramUI/SelectablePeerNode.swift | 3 + TelegramUI/ThemedTextAlertController.swift | 25 + TelegramUI/UndoOverlayController.swift | 1 + TelegramUI/UndoOverlayControllerNode.swift | 27 +- 41 files changed, 4650 insertions(+), 3564 deletions(-) create mode 100644 Images.xcassets/Avatar/DeletedIcon.imageset/Contents.json create mode 100644 Images.xcassets/Avatar/DeletedIcon.imageset/Ghost@2x.png create mode 100644 Images.xcassets/Avatar/DeletedIcon.imageset/Ghost@3x.png create mode 100644 Images.xcassets/Contact List/PeopleNearbyIcon.imageset/Contents.json create mode 100644 Images.xcassets/Contact List/PeopleNearbyIcon.imageset/locationcontacts@2x.png create mode 100644 Images.xcassets/Contact List/PeopleNearbyIcon.imageset/locationcontacts@3x.png create mode 100644 TelegramUI/ChannelOwnershipTransferController.swift create mode 100644 TelegramUI/PeopleNearbyController.swift create mode 100644 TelegramUI/PeopleNearbyHeaderItem.swift create mode 100644 TelegramUI/PeopleNearbyIconNode.swift create mode 100644 TelegramUI/Resources/Animations/anim_success.json diff --git a/Images.xcassets/Avatar/DeletedIcon.imageset/Contents.json b/Images.xcassets/Avatar/DeletedIcon.imageset/Contents.json new file mode 100644 index 0000000000..aff63e7b34 --- /dev/null +++ b/Images.xcassets/Avatar/DeletedIcon.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "Ghost@2x.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "filename" : "Ghost@3x.png", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/Images.xcassets/Avatar/DeletedIcon.imageset/Ghost@2x.png b/Images.xcassets/Avatar/DeletedIcon.imageset/Ghost@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..4a037179431eed4a7f90c54a3493dd07369d4b71 GIT binary patch literal 1200 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 literal 0 HcmV?d00001 diff --git a/Images.xcassets/Contact List/PeopleNearbyIcon.imageset/locationcontacts@3x.png b/Images.xcassets/Contact List/PeopleNearbyIcon.imageset/locationcontacts@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..478fe6ef664e382cae79f5ec425a95b5ef2a9f46 GIT binary patch literal 736 zcmeAS@N?(olHy`uVBq!ia0vp^t{}|83?#LKZ%YHIoB*E?kRU_Ve})(IGViBLZ(F+c?CE)Rn^QDdihn+onk@AA$dY_sHx5N3 zSqA3XrJI>JJPm~{9X#VRWODu#sUBo8`nfU0&MeRO|1*vk9_Qw$3oz|o8q2su`=rEG z4yO#hEsISj)+{{8qj=<%OSr0l_Z#nQc7aQO{>jJ(yjXGT=&{w;+V3|OSXoTFbo^N6 zi;3J4$BzZgIhIuVWeICjW5wb+scyqd+-3=atIe4?HX7}n7sXJ*Zf<+_UhgFqnY_z; zYjwVy6Jg?wci@;a?OrhBeEkI%-q_#MWYgN#uw|m%sm7G2+%GnpvKDP?un-kE>%;ib z#vzrf<2u8`6CwiV8GV*DRNM{bv$n3dRno_LqePqg9aqQp=NtB(&fOqBfrq)^sMcPtc1Dp)U?bV2jTf{+f!l>*Ivifl`rc&u6_rf?a)5J?KqvS~*Wl2=?V&>Zwo zSp}-)2Z!WRXP&ONlaH27;*m-_@49dHT N)zj6_Wt~$(69B#fH`D+C literal 0 HcmV?d00001 diff --git a/TelegramUI.xcodeproj/project.pbxproj b/TelegramUI.xcodeproj/project.pbxproj index e1af74d603..4218efbd3d 100644 --- a/TelegramUI.xcodeproj/project.pbxproj +++ b/TelegramUI.xcodeproj/project.pbxproj @@ -16,6 +16,11 @@ 090E63E62195880F00E3C035 /* ContactAddItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E63E52195880F00E3C035 /* ContactAddItem.swift */; }; 090E63EE2196FE3A00E3C035 /* OpenAddContact.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E63ED2196FE3A00E3C035 /* OpenAddContact.swift */; }; 090E777922A6A32E00CD99F5 /* ThemeSettingsThemeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E777822A6A32E00CD99F5 /* ThemeSettingsThemeItem.swift */; }; + 090E778622A9B95A00CD99F5 /* PeopleNearbyController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778522A9B95A00CD99F5 /* PeopleNearbyController.swift */; }; + 090E778822A9B96100CD99F5 /* PeopleNearbyHeaderItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778722A9B96000CD99F5 /* PeopleNearbyHeaderItem.swift */; }; + 090E778A22A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778922A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift */; }; + 090E778C22AA842300CD99F5 /* anim_success.json in Resources */ = {isa = PBXBuildFile; fileRef = 090E778B22AA842200CD99F5 /* anim_success.json */; }; + 090E778E22AA863A00CD99F5 /* PeopleNearbyIconNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 090E778D22AA863A00CD99F5 /* PeopleNearbyIconNode.swift */; }; 0910B0ED21FA178C00F8F87D /* WallpaperPreviewMedia.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0910B0EC21FA178C00F8F87D /* WallpaperPreviewMedia.swift */; }; 0910B0EF21FA532D00F8F87D /* WallpaperResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0910B0EE21FA532D00F8F87D /* WallpaperResources.swift */; }; 0910B0F121FB3DE100F8F87D /* WallpaperPatternPanelNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0910B0F021FB3DE100F8F87D /* WallpaperPatternPanelNode.swift */; }; @@ -1218,6 +1223,11 @@ 090E63E52195880F00E3C035 /* ContactAddItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContactAddItem.swift; sourceTree = ""; }; 090E63ED2196FE3A00E3C035 /* OpenAddContact.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenAddContact.swift; sourceTree = ""; }; 090E777822A6A32E00CD99F5 /* ThemeSettingsThemeItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeSettingsThemeItem.swift; sourceTree = ""; }; + 090E778522A9B95A00CD99F5 /* PeopleNearbyController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeopleNearbyController.swift; sourceTree = ""; }; + 090E778722A9B96000CD99F5 /* PeopleNearbyHeaderItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PeopleNearbyHeaderItem.swift; sourceTree = ""; }; + 090E778922A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChannelOwnershipTransferController.swift; sourceTree = ""; }; + 090E778B22AA842200CD99F5 /* anim_success.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = anim_success.json; sourceTree = ""; }; + 090E778D22AA863A00CD99F5 /* PeopleNearbyIconNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PeopleNearbyIconNode.swift; sourceTree = ""; }; 0910B0EC21FA178C00F8F87D /* WallpaperPreviewMedia.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperPreviewMedia.swift; sourceTree = ""; }; 0910B0EE21FA532D00F8F87D /* WallpaperResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperResources.swift; sourceTree = ""; }; 0910B0F021FB3DE100F8F87D /* WallpaperPatternPanelNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WallpaperPatternPanelNode.swift; sourceTree = ""; }; @@ -2544,6 +2554,16 @@ name = "Language Suggestion"; sourceTree = ""; }; + 090E778422A9B94700CD99F5 /* People Nearby */ = { + isa = PBXGroup; + children = ( + 090E778522A9B95A00CD99F5 /* PeopleNearbyController.swift */, + 090E778722A9B96000CD99F5 /* PeopleNearbyHeaderItem.swift */, + 090E778D22AA863A00CD99F5 /* PeopleNearbyIconNode.swift */, + ); + name = "People Nearby"; + sourceTree = ""; + }; 0919546D229458E900E11046 /* Animated Stickers */ = { isa = PBXGroup; children = ( @@ -2568,6 +2588,7 @@ 09310D13213BC5DE0020033A /* Animations */ = { isa = PBXGroup; children = ( + 090E778B22AA842200CD99F5 /* anim_success.json */, 09FFBCCF227B7F9000C33B4B /* anim_archiveswipe.json */, 094735182277483B00EA2312 /* anim_infotip.json */, 094735072275D72000EA2312 /* anim_archive.json */, @@ -4482,6 +4503,7 @@ D0E1199D229809B6008CAE3A /* ChannelDiscussionGroupActionSheetItem.swift */, D050A463229C052A0044F11A /* ChannelDiscussionGroupSetupSearchItem.swift */, D050A465229C06460044F11A /* ChannelDiscussionGroupSearchContainerNode.swift */, + 090E778922A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift */, ); name = "Peer Info"; sourceTree = ""; @@ -4669,6 +4691,7 @@ 0941A99E210B053300EBE194 /* Open In */, 09F215982263E61400AEDF6D /* Passcode */, 09B4EE5721A82F5900847FA6 /* Permissions */, + 090E778422A9B94700CD99F5 /* People Nearby */, ); name = Controllers; sourceTree = ""; @@ -5284,6 +5307,7 @@ 09874E5721078FA100E190B8 /* YoutubeUserScript.js in Resources */, 094735172275D72100EA2312 /* anim_pin.json in Resources */, 094735112275D72100EA2312 /* anim_archive.json in Resources */, + 090E778C22AA842300CD99F5 /* anim_success.json in Resources */, D0EB42051F3143AB00838FE6 /* LegacyComponentsResources.bundle in Resources */, D0E9BAA21F056F4C00F079A4 /* stp_card_discover@3x.png in Resources */, D0E9BAB01F056F4C00F079A4 /* stp_card_mastercard@3x.png in Resources */, @@ -5380,6 +5404,7 @@ D0E1199A2297F9C6008CAE3A /* ChannelDiscussionGroupSetupController.swift in Sources */, D083491C209361DC008CFD52 /* AvatarGalleryItemFooterContentNode.swift in Sources */, D0EC6CB31EB9F58800EBF1C3 /* shader.c in Sources */, + 090E778A22A9F23C00CD99F5 /* ChannelOwnershipTransferController.swift in Sources */, D06E4C352134AE3C00088087 /* ThemeAutoNightSettingsController.swift in Sources */, D0F0AAE21EC20EF8005EE2A5 /* CallControllerStatusNode.swift in Sources */, D0EC6CB41EB9F58800EBF1C3 /* timing.c in Sources */, @@ -5528,6 +5553,7 @@ D0EC6CF31EB9F58800EBF1C3 /* PresentationThemeSettings.swift in Sources */, D067B4AD211C916300796039 /* TGChannelIntroController.m in Sources */, D0BE303220601FFC00FBE6D8 /* LocationBroadcastActionSheetItem.swift in Sources */, + 090E778E22AA863A00CD99F5 /* PeopleNearbyIconNode.swift in Sources */, D0EC6CF41EB9F58800EBF1C3 /* ManagedMediaId.swift in Sources */, 09D968A3221F800A00B1458A /* ChatUploadingActivityContentNode.swift in Sources */, D0CFBB971FD8B0F700B65C0D /* ChatBubbleInstantVideoDecoration.swift in Sources */, @@ -5536,6 +5562,7 @@ D0E9BA521F0559DA00F079A4 /* STPImageLibrary.m in Sources */, D0EC6CF61EB9F58800EBF1C3 /* ChatContextResultManagedMediaId.swift in Sources */, D048B33B203C777500038D05 /* RenderedTotalUnreadCount.swift in Sources */, + 090E778622A9B95A00CD99F5 /* PeopleNearbyController.swift in Sources */, D04ECD721FFBF22B00DE9029 /* OpenUrl.swift in Sources */, D04B4D661EEA993A00711AF6 /* LegacyLocationController.swift in Sources */, D056CD7A1FF3CC2A00880D28 /* ListMessagePlaybackOverlayNode.swift in Sources */, @@ -6387,6 +6414,7 @@ D0EC6E801EB9F58900EBF1C3 /* ChangePhoneNumberCodeController.swift in Sources */, D09E637C1F0E7C28003444CD /* SharedMediaPlayer.swift in Sources */, D0EC6E811EB9F58900EBF1C3 /* NotificationContainerController.swift in Sources */, + 090E778822A9B96100CD99F5 /* PeopleNearbyHeaderItem.swift in Sources */, D0754D271EEE10C800884F6E /* BotCheckoutController.swift in Sources */, D053DADA201A4C4400993D32 /* ChatTextInputAttributes.swift in Sources */, 0952D1752176DEB500194860 /* NotificationMuteSettingsController.swift in Sources */, diff --git a/TelegramUI/AvatarNode.swift b/TelegramUI/AvatarNode.swift index 6e5f14a187..88a4e557d1 100644 --- a/TelegramUI/AvatarNode.swift +++ b/TelegramUI/AvatarNode.swift @@ -6,6 +6,7 @@ import Display import TelegramCore import SwiftSignalKit +private let deletedIcon = UIImage(bundleImageName: "Avatar/DeletedIcon")?.precomposed() private let savedMessagesIcon = UIImage(bundleImageName: "Avatar/SavedMessagesIcon")?.precomposed() private let archivedChatsIcon = UIImage(bundleImageName: "Avatar/ArchiveAvatarIcon")?.precomposed() @@ -101,6 +102,7 @@ private enum AvatarNodeIcon: Equatable { case savedMessagesIcon case archivedChatsIcon(hiddenByDefault: Bool) case editAvatarIcon + case deletedIcon } public enum AvatarNodeImageOverride: Equatable { @@ -109,6 +111,7 @@ public enum AvatarNodeImageOverride: Equatable { case savedMessagesIcon case archivedChatsIcon(hiddenByDefault: Bool) case editAvatarIcon + case deletedIcon } public enum AvatarNodeColorOverride { @@ -291,6 +294,9 @@ public final class AvatarNode: ASDisplayNode { case .editAvatarIcon: representation = peer?.smallProfileImage icon = .editAvatarIcon + case .deletedIcon: + representation = nil + icon = .deletedIcon } } else if peer?.restrictionText == nil { representation = peer?.smallProfileImage @@ -411,7 +417,9 @@ public final class AvatarNode: ASDisplayNode { let colorsArray: NSArray var iconColor = UIColor.white if let parameters = parameters as? AvatarNodeParameters, parameters.icon != .none { - if case .savedMessagesIcon = parameters.icon { + if case .deletedIcon = parameters.icon { + colorsArray = grayscaleColors + } else if case .savedMessagesIcon = parameters.icon { colorsArray = savedMessagesColors } else if case .editAvatarIcon = parameters.icon, let theme = parameters.theme { colorsArray = [theme.list.blocksBackgroundColor.cgColor, theme.list.blocksBackgroundColor.cgColor] @@ -444,7 +452,16 @@ public final class AvatarNode: ASDisplayNode { context.setBlendMode(.normal) if let parameters = parameters as? AvatarNodeParameters { - if case .savedMessagesIcon = parameters.icon { + if case .deletedIcon = parameters.icon { + let factor = bounds.size.width / 60.0 + context.translateBy(x: bounds.size.width / 2.0, y: bounds.size.height / 2.0) + context.scaleBy(x: factor, y: -factor) + context.translateBy(x: -bounds.size.width / 2.0, y: -bounds.size.height / 2.0) + + if let deletedIcon = deletedIcon { + context.draw(deletedIcon.cgImage!, in: CGRect(origin: CGPoint(x: floor((bounds.size.width - deletedIcon.size.width) / 2.0), y: floor((bounds.size.height - deletedIcon.size.height) / 2.0)), size: deletedIcon.size)) + } + } else if case .savedMessagesIcon = parameters.icon { let factor = bounds.size.width / 60.0 context.translateBy(x: bounds.size.width / 2.0, y: bounds.size.height / 2.0) context.scaleBy(x: factor, y: -factor) diff --git a/TelegramUI/CachedResourceRepresentations.swift b/TelegramUI/CachedResourceRepresentations.swift index b374dd9f64..088b37097f 100644 --- a/TelegramUI/CachedResourceRepresentations.swift +++ b/TelegramUI/CachedResourceRepresentations.swift @@ -217,7 +217,7 @@ final class CachedEmojiRepresentation: CachedMediaResourceRepresentation { final class CachedAnimatedStickerRepresentation: CachedMediaResourceRepresentation { var uniqueId: String { - return "animated-sticker" + return "animated-sticker-v1" } func isEqual(to: CachedMediaResourceRepresentation) -> Bool { diff --git a/TelegramUI/CallRatingController.swift b/TelegramUI/CallRatingController.swift index ae209351b5..ed6310a125 100644 --- a/TelegramUI/CallRatingController.swift +++ b/TelegramUI/CallRatingController.swift @@ -6,77 +6,6 @@ import Display import Postbox import TelegramCore -private final class CallRatingContentActionNode: HighlightableButtonNode { - private let backgroundNode: ASDisplayNode - - let action: TextAlertAction - - init(theme: AlertControllerTheme, action: TextAlertAction) { - self.backgroundNode = ASDisplayNode() - self.backgroundNode.isLayerBacked = true - self.backgroundNode.alpha = 0.0 - - self.action = action - - super.init() - - self.titleNode.maximumNumberOfLines = 2 - - self.highligthedChanged = { [weak self] value in - if let strongSelf = self { - if value { - if strongSelf.backgroundNode.supernode == nil { - strongSelf.insertSubnode(strongSelf.backgroundNode, at: 0) - } - strongSelf.backgroundNode.layer.removeAnimation(forKey: "opacity") - strongSelf.backgroundNode.alpha = 1.0 - } else if !strongSelf.backgroundNode.alpha.isZero { - strongSelf.backgroundNode.alpha = 0.0 - strongSelf.backgroundNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.25) - } - } - } - - self.updateTheme(theme) - } - - func updateTheme(_ theme: AlertControllerTheme) { - self.backgroundNode.backgroundColor = theme.highlightedItemColor - - var font = Font.regular(17.0) - var color = theme.accentColor - switch self.action.type { - case .defaultAction, .genericAction: - break - case .destructiveAction: - color = theme.destructiveColor - } - switch self.action.type { - case .defaultAction: - font = Font.semibold(17.0) - case .destructiveAction, .genericAction: - break - } - self.setAttributedTitle(NSAttributedString(string: self.action.title, font: font, textColor: color, paragraphAlignment: .center), for: []) - } - - override func didLoad() { - super.didLoad() - - self.addTarget(self, action: #selector(self.pressed), forControlEvents: .touchUpInside) - } - - @objc func pressed() { - self.action.action() - } - - override func layout() { - super.layout() - - self.backgroundNode.frame = self.bounds - } -} - private final class CallRatingAlertContentNode: AlertContentNode { private let strings: PresentationStrings private let apply: (Int) -> Void @@ -87,7 +16,7 @@ private final class CallRatingAlertContentNode: AlertContentNode { private let starNodes: [ASButtonNode] private let actionNodesSeparator: ASDisplayNode - private let actionNodes: [CallRatingContentActionNode] + private let actionNodes: [TextAlertContentActionNode] private let actionVerticalSeparators: [ASDisplayNode] private let disposable = MetaDisposable() @@ -114,8 +43,8 @@ private final class CallRatingAlertContentNode: AlertContentNode { self.actionNodesSeparator = ASDisplayNode() self.actionNodesSeparator.isLayerBacked = true - self.actionNodes = actions.map { action -> CallRatingContentActionNode in - return CallRatingContentActionNode(theme: theme, action: action) + self.actionNodes = actions.map { action -> TextAlertContentActionNode in + return TextAlertContentActionNode(theme: theme, action: action) } var actionVerticalSeparators: [ASDisplayNode] = [] diff --git a/TelegramUI/CallSuggestTabController.swift b/TelegramUI/CallSuggestTabController.swift index 4a82dbad24..800bdb7c30 100644 --- a/TelegramUI/CallSuggestTabController.swift +++ b/TelegramUI/CallSuggestTabController.swift @@ -8,139 +8,6 @@ import TelegramCore private func generateIconImage(theme: AlertControllerTheme) -> UIImage? { return UIImage(bundleImageName: "Call List/AlertIcon") -// return generateImage(frame.size, contextGenerator: { size, context in -// let bounds = CGRect(origin: CGPoint(), size: size) -// context.clear(bounds) -// -// let relativeFrame = CGRect(x: -frame.minX, y: frame.minY - background.size.height + frame.size.height -// , width: background.size.width, height: background.size.height) -// -// context.beginPath() -// context.addEllipse(in: bounds) -// context.clip() -// -// context.setAlpha(0.8) -// context.draw(background.foregroundImage.cgImage!, in: relativeFrame) -// -// if highlighted { -// context.setFillColor(UIColor(white: 1.0, alpha: 0.65).cgColor) -// context.fillEllipse(in: bounds) -// } -// -// context.setAlpha(1.0) -// context.textMatrix = .identity -// -// let titleFont: UIFont -// let subtitleFont: UIFont -// let titleOffset: CGFloat -// let subtitleOffset: CGFloat -// if size.width > 80.0 { -// titleFont = largeTitleFont -// subtitleFont = largeSubtitleFont -// if subtitle.isEmpty { -// titleOffset = -18.0 -// } else { -// titleOffset = -11.0 -// } -// subtitleOffset = -54.0 -// } else { -// titleFont = regularTitleFont -// subtitleFont = regularSubtitleFont -// if subtitle.isEmpty { -// titleOffset = -17.0 -// } else { -// titleOffset = -10.0 -// } -// subtitleOffset = -48.0 -// } -// -// let titlePath = CGMutablePath() -// titlePath.addRect(bounds.offsetBy(dx: 0.0, dy: titleOffset)) -// let titleString = NSAttributedString(string: title, font: titleFont, textColor: .white, paragraphAlignment: .center) -// let titleFramesetter = CTFramesetterCreateWithAttributedString(titleString as CFAttributedString) -// let titleFrame = CTFramesetterCreateFrame(titleFramesetter, CFRangeMake(0, titleString.length), titlePath, nil) -// CTFrameDraw(titleFrame, context) -// -// if !subtitle.isEmpty { -// let subtitlePath = CGMutablePath() -// subtitlePath.addRect(bounds.offsetBy(dx: 0.0, dy: subtitleOffset)) -// let subtitleString = NSAttributedString(string: subtitle, font: subtitleFont, textColor: .white, paragraphAlignment: .center) -// let subtitleFramesetter = CTFramesetterCreateWithAttributedString(subtitleString as CFAttributedString) -// let subtitleFrame = CTFramesetterCreateFrame(subtitleFramesetter, CFRangeMake(0, subtitleString.length), subtitlePath, nil) -// CTFrameDraw(subtitleFrame, context) -// } -// }) -} - -private final class CallSuggestTabContentActionNode: HighlightableButtonNode { - private let backgroundNode: ASDisplayNode - - let action: TextAlertAction - - init(theme: AlertControllerTheme, action: TextAlertAction) { - self.backgroundNode = ASDisplayNode() - self.backgroundNode.isLayerBacked = true - self.backgroundNode.alpha = 0.0 - - self.action = action - - super.init() - - self.titleNode.maximumNumberOfLines = 2 - - self.highligthedChanged = { [weak self] value in - if let strongSelf = self { - if value { - if strongSelf.backgroundNode.supernode == nil { - strongSelf.insertSubnode(strongSelf.backgroundNode, at: 0) - } - strongSelf.backgroundNode.layer.removeAnimation(forKey: "opacity") - strongSelf.backgroundNode.alpha = 1.0 - } else if !strongSelf.backgroundNode.alpha.isZero { - strongSelf.backgroundNode.alpha = 0.0 - strongSelf.backgroundNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.25) - } - } - } - - self.updateTheme(theme) - } - - func updateTheme(_ theme: AlertControllerTheme) { - self.backgroundNode.backgroundColor = theme.highlightedItemColor - - var font = Font.regular(17.0) - var color = theme.accentColor - switch self.action.type { - case .defaultAction, .genericAction: - break - case .destructiveAction: - color = theme.destructiveColor - } - switch self.action.type { - case .defaultAction: - font = Font.semibold(17.0) - case .destructiveAction, .genericAction: - break - } - self.setAttributedTitle(NSAttributedString(string: self.action.title, font: font, textColor: color, paragraphAlignment: .center), for: []) - } - - override func didLoad() { - super.didLoad() - - self.addTarget(self, action: #selector(self.pressed), forControlEvents: .touchUpInside) - } - - @objc func pressed() { - self.action.action() - } - - override func layout() { - super.layout() - - self.backgroundNode.frame = self.bounds - } } private final class CallSuggestTabAlertContentNode: AlertContentNode { @@ -151,7 +18,7 @@ private final class CallSuggestTabAlertContentNode: AlertContentNode { private let iconNode: ASImageNode private let actionNodesSeparator: ASDisplayNode - private let actionNodes: [CallSuggestTabContentActionNode] + private let actionNodes: [TextAlertContentActionNode] private let actionVerticalSeparators: [ASDisplayNode] private var validLayout: CGSize? @@ -174,8 +41,8 @@ private final class CallSuggestTabAlertContentNode: AlertContentNode { self.actionNodesSeparator = ASDisplayNode() self.actionNodesSeparator.isLayerBacked = true - self.actionNodes = actions.map { action -> CallSuggestTabContentActionNode in - return CallSuggestTabContentActionNode(theme: theme, action: action) + self.actionNodes = actions.map { action -> TextAlertContentActionNode in + return TextAlertContentActionNode(theme: theme, action: action) } var actionVerticalSeparators: [ASDisplayNode] = [] diff --git a/TelegramUI/ChannelAdminController.swift b/TelegramUI/ChannelAdminController.swift index 4e65f52d80..6a958d6e83 100644 --- a/TelegramUI/ChannelAdminController.swift +++ b/TelegramUI/ChannelAdminController.swift @@ -8,11 +8,13 @@ import TelegramCore private final class ChannelAdminControllerArguments { let account: Account let toggleRight: (TelegramChatAdminRightsFlags, TelegramChatAdminRightsFlags) -> Void + let transferOwnership: () -> Void let dismissAdmin: () -> Void - init(account: Account, toggleRight: @escaping (TelegramChatAdminRightsFlags, TelegramChatAdminRightsFlags) -> Void, dismissAdmin: @escaping () -> Void) { + init(account: Account, toggleRight: @escaping (TelegramChatAdminRightsFlags, TelegramChatAdminRightsFlags) -> Void, transferOwnership: @escaping () -> Void, dismissAdmin: @escaping () -> Void) { self.account = account self.toggleRight = toggleRight + self.transferOwnership = transferOwnership self.dismissAdmin = dismissAdmin } } @@ -20,6 +22,7 @@ private final class ChannelAdminControllerArguments { private enum ChannelAdminSection: Int32 { case info case rights + case transfer case dismiss } @@ -28,6 +31,7 @@ private enum ChannelAdminEntryStableId: Hashable { case rightsTitle case right(TelegramChatAdminRightsFlags) case addAdminsInfo + case transfer case dismiss var hashValue: Int { @@ -40,6 +44,8 @@ private enum ChannelAdminEntryStableId: Hashable { return 2 case .dismiss: return 3 + case .transfer: + return 4 case let .right(flags): return flags.rawValue.hashValue } @@ -71,6 +77,12 @@ private enum ChannelAdminEntryStableId: Hashable { } else { return false } + case .transfer: + if case .transfer = rhs { + return true + } else { + return false + } case .dismiss: if case .dismiss = rhs { return true @@ -86,6 +98,7 @@ private enum ChannelAdminEntry: ItemListNodeEntry { case rightsTitle(PresentationTheme, String) case rightItem(PresentationTheme, Int, String, TelegramChatAdminRightsFlags, TelegramChatAdminRightsFlags, Bool, Bool) case addAdminsInfo(PresentationTheme, String) + case transfer(PresentationTheme, String) case dismiss(PresentationTheme, String) var section: ItemListSectionId { @@ -94,6 +107,8 @@ private enum ChannelAdminEntry: ItemListNodeEntry { return ChannelAdminSection.info.rawValue case .rightsTitle, .rightItem, .addAdminsInfo: return ChannelAdminSection.rights.rawValue + case .transfer: + return ChannelAdminSection.transfer.rawValue case .dismiss: return ChannelAdminSection.dismiss.rawValue } @@ -109,6 +124,8 @@ private enum ChannelAdminEntry: ItemListNodeEntry { return .right(right) case .addAdminsInfo: return .addAdminsInfo + case .transfer: + return .transfer case .dismiss: return .dismiss } @@ -177,6 +194,12 @@ private enum ChannelAdminEntry: ItemListNodeEntry { } else { return false } + case let .transfer(lhsTheme, lhsText): + if case let .transfer(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { + return true + } else { + return false + } case let .dismiss(lhsTheme, lhsText): if case let .dismiss(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { return true @@ -218,6 +241,13 @@ private enum ChannelAdminEntry: ItemListNodeEntry { default: return true } + case .transfer: + switch rhs { + case .info, .rightsTitle, .rightItem, .addAdminsInfo, .transfer: + return false + default: + return true + } case .dismiss: return false } @@ -237,8 +267,12 @@ private enum ChannelAdminEntry: ItemListNodeEntry { }) case let .addAdminsInfo(theme, text): return ItemListTextItem(theme: theme, text: .plain(text), sectionId: self.section) + case let .transfer(theme, text): + return ItemListActionItem(theme: theme, title: text, kind: .generic, alignment: .center, sectionId: self.section, style: .blocks, action: { + arguments.transferOwnership() + }, tag: nil) case let .dismiss(theme, text): - return ItemListActionItem(theme: theme, title: text, kind: .destructive, alignment: .natural, sectionId: self.section, style: .blocks, action: { + return ItemListActionItem(theme: theme, title: text, kind: .destructive, alignment: .center, sectionId: self.section, style: .blocks, action: { arguments.dismissAdmin() }, tag: nil) } @@ -421,6 +455,10 @@ private func channelAdminControllerEntries(presentationData: PresentationData, s if accountUserRightsFlags.contains(.canAddAdmins) { entries.append(.addAdminsInfo(presentationData.theme, currentRightsFlags.contains(.canAddAdmins) ? presentationData.strings.Channel_EditAdmin_PermissinAddAdminOn : presentationData.strings.Channel_EditAdmin_PermissinAddAdminOff)) } + + if channel.flags.contains(.isCreator) && currentRightsFlags.contains(.canAddAdmins) { + entries.append(.transfer(presentationData.theme, isGroup ? presentationData.strings.Group_EditAdmin_TransferOwnership : presentationData.strings.Channel_EditAdmin_TransferOwnership)) + } if let initialParticipant = initialParticipant, case let .member(participant) = initialParticipant, let adminInfo = participant.adminInfo, !adminInfo.rights.flags.isEmpty { var canDismiss = false @@ -488,8 +526,11 @@ private func channelAdminControllerEntries(presentationData: PresentationData, s entries.append(.addAdminsInfo(presentationData.theme, currentRightsFlags.contains(.canAddAdmins) ? presentationData.strings.Channel_EditAdmin_PermissinAddAdminOn : presentationData.strings.Channel_EditAdmin_PermissinAddAdminOff)) } + if group.role == .creator && currentRightsFlags.contains(.canAddAdmins) { + entries.append(.transfer(presentationData.theme, presentationData.strings.Group_EditAdmin_TransferOwnership)) + } + if let initialParticipant = initialParticipant, case let .member(participant) = initialParticipant, let adminInfo = participant.adminInfo, !adminInfo.rights.flags.isEmpty { - let canDismiss = true entries.append(.dismiss(presentationData.theme, presentationData.strings.Channel_Moderator_AccessLevelRevoke)) } } @@ -497,7 +538,7 @@ private func channelAdminControllerEntries(presentationData: PresentationData, s return entries } -public func channelAdminController(context: AccountContext, peerId: PeerId, adminId: PeerId, initialParticipant: ChannelParticipant?, updated: @escaping (TelegramChatAdminRights) -> Void, upgradedToSupergroup: @escaping (PeerId, @escaping () -> Void) -> Void) -> ViewController { +public func channelAdminController(context: AccountContext, peerId: PeerId, adminId: PeerId, initialParticipant: ChannelParticipant?, updated: @escaping (TelegramChatAdminRights) -> Void, upgradedToSupergroup: @escaping (PeerId, @escaping () -> Void) -> Void, transferedOwnership: @escaping (PeerId) -> Void) -> ViewController { let statePromise = ValuePromise(ChannelAdminControllerState(), ignoreRepeated: true) let stateValue = Atomic(value: ChannelAdminControllerState()) let updateState: ((ChannelAdminControllerState) -> ChannelAdminControllerState) -> Void = { f in @@ -509,9 +550,18 @@ public func channelAdminController(context: AccountContext, peerId: PeerId, admi let updateRightsDisposable = MetaDisposable() actionsDisposable.add(updateRightsDisposable) + let transferOwnershipDisposable = MetaDisposable() + actionsDisposable.add(transferOwnershipDisposable) + var dismissImpl: (() -> Void)? var presentControllerImpl: ((ViewController, Any?) -> Void)? + let actualPeerId = Atomic(value: peerId) + let upgradedToSupergroupImpl: (PeerId, @escaping () -> Void) -> Void = { peerId, completion in + let _ = actualPeerId.swap(peerId) + upgradedToSupergroup(peerId, completion) + } + let arguments = ChannelAdminControllerArguments(account: context.account, toggleRight: { right, flags in updateState { current in var updated = flags @@ -522,6 +572,65 @@ public func channelAdminController(context: AccountContext, peerId: PeerId, admi } return current.withUpdatedUpdatedFlags(updated) } + }, transferOwnership: { + updateState { current in + return current.withUpdatedUpdating(true) + } + + let _ = (context.account.postbox.transaction { transaction -> (peer: Peer?, member: Peer?) in + return (peer: transaction.getPeer(peerId), member: transaction.getPeer(adminId)) + } |> deliverOnMainQueue).start(next: { peer, member in + guard let peer = peer, let member = member as? TelegramUser else { + return + } + + var signal: Signal = .complete() + if let channel = peer as? TelegramChannel { + signal = updateChannelOwnership(postbox: context.account.postbox, network: context.account.network, accountStateManager: context.account.stateManager, channelId: channel.id, memberId: adminId, password: nil) + } else if let _ = peer as? TelegramGroup { + signal = convertGroupToSupergroup(account: context.account, peerId: peerId) + |> map(Optional.init) + |> mapError { _ in ChannelOwnershipTransferError.generic } + |> mapToSignal { upgradedPeerId -> Signal in + guard let upgradedPeerId = upgradedPeerId else { + return .fail(.generic) + } + upgradedToSupergroupImpl(upgradedPeerId, {}) + + return updateChannelOwnership(postbox: context.account.postbox, network: context.account.network, accountStateManager: context.account.stateManager, channelId: upgradedPeerId, memberId: adminId, password: nil) + } + } + + transferOwnershipDisposable.set((signal |> deliverOnMainQueue).start(error: { error in + updateState { current in + return current.withUpdatedUpdating(false) + } + + let currentPeerId = actualPeerId.with { $0 } + let channel: Signal + if currentPeerId == peerId { + channel = .single(peer) + } else { + channel = context.account.postbox.transaction { transaction -> Peer? in + return transaction.getPeer(currentPeerId) + } + } + + let _ = (channel |> deliverOnMainQueue).start(next: { channel in + guard let channel = channel as? TelegramChannel else { + return + } + + let controller = channelOwnershipTransferController(context: context, channel: channel, member: member, initialError: error, present: { c, a in + presentControllerImpl?(c, a) + }, completion: { + dismissImpl?() + transferedOwnership(member.id) + }) + presentControllerImpl?(controller, nil) + }) + })) + }) }, dismissAdmin: { let presentationData = context.sharedContext.currentPresentationData.with { $0 } let actionSheet = ActionSheetController(presentationTheme: presentationData.theme) diff --git a/TelegramUI/ChannelAdminsController.swift b/TelegramUI/ChannelAdminsController.swift index 99636582a5..ccc3c04a8c 100644 --- a/TelegramUI/ChannelAdminsController.swift +++ b/TelegramUI/ChannelAdminsController.swift @@ -199,12 +199,16 @@ private enum ChannelAdminsEntry: ItemListNodeEntry { let action: (() -> Void)? switch participant.participant { case .creator: - peerText = strings.Channel_Management_LabelCreator + peerText = strings.Channel_Management_LabelOwner action = nil case let .member(_, _, adminInfo, _): if let adminInfo = adminInfo { if let peer = participant.peers[adminInfo.promotedBy] { - peerText = strings.Channel_Management_PromotedBy(peer.displayTitle).0 + if peer.id == participant.peer.id { + peerText = strings.Channel_Management_LabelAdministrator + } else { + peerText = strings.Channel_Management_PromotedBy(peer.displayTitle).0 + } } else { peerText = "" } @@ -491,6 +495,18 @@ public func channelAdminsController(context: AccountContext, peerId: PeerId, loa upgradedToSupergroupImpl?(upgradedPeerId, f) } + let transferedOwnership: (PeerId) -> Void = { memberId in + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + let _ = (context.account.postbox.transaction { transaction -> (channel: Peer?, user: Peer?) in + return (channel: transaction.getPeer(peerId), user: transaction.getPeer(memberId)) + } |> deliverOnMainQueue).start(next: { peer, user in + guard let peer = peer, let user = user else { + return + } + presentControllerImpl?(UndoOverlayController(context: context, content: .succeed(text: presentationData.strings.Channel_OwnershipTransfer_TransferCompleted(peer.displayTitle, user.displayTitle).0), elevatedLayout: false, action: { _ in }), nil) + }) + } + let peerView = Promise() peerView.set(context.account.viewTracker.peerView(peerId)) @@ -564,7 +580,7 @@ public func channelAdminsController(context: AccountContext, peerId: PeerId, loa } } presentControllerImpl?(channelAdminController(context: context, peerId: peerId, adminId: peer.id, initialParticipant: participant?.participant, updated: { _ in - }, upgradedToSupergroup: upgradedToSupergroup), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + }, upgradedToSupergroup: upgradedToSupergroup, transferedOwnership: transferedOwnership), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }) dismissController = { [weak controller] in controller?.dismiss() @@ -576,7 +592,7 @@ public func channelAdminsController(context: AccountContext, peerId: PeerId, loa }) }, openAdmin: { participant in presentControllerImpl?(channelAdminController(context: context, peerId: peerId, adminId: participant.peerId, initialParticipant: participant, updated: { _ in - }, upgradedToSupergroup: upgradedToSupergroup), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + }, upgradedToSupergroup: upgradedToSupergroup, transferedOwnership: transferedOwnership), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }) let membersAndLoadMoreControl: (Disposable, PeerChannelMemberCategoryControl?) @@ -701,7 +717,7 @@ public func channelAdminsController(context: AccountContext, peerId: PeerId, loa updateState { state in return state.withUpdatedSearchingMembers(false) } - }, upgradedToSupergroup: upgradedToSupergroup), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + }, upgradedToSupergroup: upgradedToSupergroup, transferedOwnership: transferedOwnership), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) } }, present: { c, a in presentControllerImpl?(c, a) diff --git a/TelegramUI/ChannelMembersController.swift b/TelegramUI/ChannelMembersController.swift index aaa7fdfe0d..58e5cf66fa 100644 --- a/TelegramUI/ChannelMembersController.swift +++ b/TelegramUI/ChannelMembersController.swift @@ -396,7 +396,7 @@ public func channelMembersController(context: AccountContext, peerId: PeerId) -> contactsController?.dismiss() presentControllerImpl?(channelAdminController(context: context, peerId: peerId, adminId: memberId, initialParticipant: nil, updated: { _ in - }, upgradedToSupergroup: { _, f in f () }), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + }, upgradedToSupergroup: { _, f in f () }, transferedOwnership: { _ in }), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) })]), nil) } else { presentControllerImpl?(textAlertController(context: context, title: nil, text: presentationData.strings.Channel_AddBotErrorHaveRights, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]), nil) diff --git a/TelegramUI/ChannelMembersSearchContainerNode.swift b/TelegramUI/ChannelMembersSearchContainerNode.swift index 5b7db1821f..56c44de464 100644 --- a/TelegramUI/ChannelMembersSearchContainerNode.swift +++ b/TelegramUI/ChannelMembersSearchContainerNode.swift @@ -332,7 +332,7 @@ final class ChannelMembersSearchContainerNode: SearchDisplayControllerContentNod return state } present(channelAdminController(context: context, peerId: peerId, adminId: participant.peer.id, initialParticipant: participant.participant, updated: { _ in - }, upgradedToSupergroup: { _, f in f() }), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + }, upgradedToSupergroup: { _, f in f() }, transferedOwnership: { _ in }), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }, restrictPeer: { participant in updateState { state in var state = state @@ -469,7 +469,7 @@ final class ChannelMembersSearchContainerNode: SearchDisplayControllerContentNod if case .searchMembers = mode { switch participant.participant { case .creator: - label = themeAndStrings.1.Channel_Management_LabelCreator + label = themeAndStrings.1.Channel_Management_LabelOwner default: break } @@ -675,13 +675,13 @@ final class ChannelMembersSearchContainerNode: SearchDisplayControllerContentNod var enabled = true if case .banAndPromoteActions = mode { if case .creator = participant.participant { - label = themeAndStrings.1.Channel_Management_LabelCreator + label = themeAndStrings.1.Channel_Management_LabelOwner enabled = false } } else if case .searchMembers = mode { switch participant.participant { case .creator: - label = themeAndStrings.1.Channel_Management_LabelCreator + label = themeAndStrings.1.Channel_Management_LabelOwner case let .member(member): if member.adminInfo != nil { label = themeAndStrings.1.Channel_Management_LabelEditor @@ -712,11 +712,15 @@ final class ChannelMembersSearchContainerNode: SearchDisplayControllerContentNod case .searchAdmins: switch participant.participant { case .creator: - label = themeAndStrings.1.Channel_Management_LabelCreator + label = themeAndStrings.1.Channel_Management_LabelOwner case let .member(_, _, adminInfo, _): if let adminInfo = adminInfo { if let peer = participant.peers[adminInfo.promotedBy] { - label = themeAndStrings.1.Channel_Management_PromotedBy(peer.displayTitle).0 + if peer.id == participant.peer.id { + label = themeAndStrings.1.Channel_Management_LabelAdministrator + } else { + label = themeAndStrings.1.Channel_Management_PromotedBy(peer.displayTitle).0 + } } } } @@ -774,7 +778,7 @@ final class ChannelMembersSearchContainerNode: SearchDisplayControllerContentNod var enabled = true if case .banAndPromoteActions = mode { if case .creator = participant.participant { - label = themeAndStrings.1.Channel_Management_LabelCreator + label = themeAndStrings.1.Channel_Management_LabelOwner enabled = false } } @@ -947,13 +951,13 @@ final class ChannelMembersSearchContainerNode: SearchDisplayControllerContentNod var enabled = true if case .banAndPromoteActions = mode { if case .creator = participant.participant { - label = themeAndStrings.1.Channel_Management_LabelCreator + label = themeAndStrings.1.Channel_Management_LabelOwner enabled = false } } else if case .searchMembers = mode { switch participant.participant { case .creator: - label = themeAndStrings.1.Channel_Management_LabelCreator + label = themeAndStrings.1.Channel_Management_LabelOwner case let .member(member): if member.adminInfo != nil { label = themeAndStrings.1.Channel_Management_LabelEditor @@ -980,11 +984,15 @@ final class ChannelMembersSearchContainerNode: SearchDisplayControllerContentNod case .searchAdmins: switch participant.participant { case .creator: - label = themeAndStrings.1.Channel_Management_LabelCreator + label = themeAndStrings.1.Channel_Management_LabelOwner case let .member(_, _, adminInfo, _): if let adminInfo = adminInfo { if let peer = participant.peers[adminInfo.promotedBy] { - label = themeAndStrings.1.Channel_Management_PromotedBy(peer.displayTitle).0 + if peer.id == participant.peer.id { + label = themeAndStrings.1.Channel_Management_LabelAdministrator + } else { + label = themeAndStrings.1.Channel_Management_PromotedBy(peer.displayTitle).0 + } } } } @@ -1042,7 +1050,7 @@ final class ChannelMembersSearchContainerNode: SearchDisplayControllerContentNod var enabled = true if case .banAndPromoteActions = mode { if case .creator = participant.participant { - label = themeAndStrings.1.Channel_Management_LabelCreator + label = themeAndStrings.1.Channel_Management_LabelOwner enabled = false } } diff --git a/TelegramUI/ChannelMembersSearchControllerNode.swift b/TelegramUI/ChannelMembersSearchControllerNode.swift index 925fc48559..e1ef1204f2 100644 --- a/TelegramUI/ChannelMembersSearchControllerNode.swift +++ b/TelegramUI/ChannelMembersSearchControllerNode.swift @@ -195,7 +195,7 @@ class ChannelMembersSearchControllerNode: ASDisplayNode { } } if case .creator = participant { - label = strongSelf.presentationData.strings.Channel_Management_LabelCreator + label = strongSelf.presentationData.strings.Channel_Management_LabelOwner enabled = false } } @@ -263,7 +263,7 @@ class ChannelMembersSearchControllerNode: ASDisplayNode { } } if case .creator = participant.participant { - label = strongSelf.presentationData.strings.Channel_Management_LabelCreator + label = strongSelf.presentationData.strings.Channel_Management_LabelOwner enabled = false } } diff --git a/TelegramUI/ChannelOwnershipTransferController.swift b/TelegramUI/ChannelOwnershipTransferController.swift new file mode 100644 index 0000000000..d3f0385556 --- /dev/null +++ b/TelegramUI/ChannelOwnershipTransferController.swift @@ -0,0 +1,481 @@ +import Foundation +import UIKit +import AsyncDisplayKit +import Display +import SwiftSignalKit +import Postbox +import TelegramCore + +private final class ChannelOwnershipTransferPasswordFieldNode: ASDisplayNode, UITextFieldDelegate { + private var theme: PresentationTheme + private let backgroundNode: ASImageNode + private let textInputNode: TextFieldNode + private let placeholderNode: ASTextNode + + var complete: (() -> Void)? + var textChanged: ((String) -> Void)? + + private let backgroundInsets = UIEdgeInsets(top: 8.0, left: 22.0, bottom: 15.0, right: 22.0) + private let inputInsets = UIEdgeInsets(top: 5.0, left: 11.0, bottom: 5.0, right: 11.0) + + var password: String { + get { + return self.textInputNode.textField.text ?? "" + } + set { + self.textInputNode.textField.text = newValue + self.placeholderNode.isHidden = !newValue.isEmpty + } + } + + var placeholder: String = "" { + didSet { + self.placeholderNode.attributedText = NSAttributedString(string: self.placeholder, font: Font.regular(17.0), textColor: self.theme.actionSheet.inputPlaceholderColor) + } + } + + init(theme: PresentationTheme, placeholder: String) { + self.theme = theme + + self.backgroundNode = ASImageNode() + self.backgroundNode.isLayerBacked = true + self.backgroundNode.displaysAsynchronously = false + self.backgroundNode.displayWithoutProcessing = true + self.backgroundNode.image = generateStretchableFilledCircleImage(diameter: 16.0, color: theme.actionSheet.inputHollowBackgroundColor, strokeColor: theme.actionSheet.inputBorderColor, strokeWidth: UIScreenPixel) + + self.textInputNode = TextFieldNode() + + self.placeholderNode = ASTextNode() + self.placeholderNode.isUserInteractionEnabled = false + self.placeholderNode.displaysAsynchronously = false + self.placeholderNode.attributedText = NSAttributedString(string: placeholder, font: Font.regular(14.0), textColor: self.theme.actionSheet.inputPlaceholderColor) + + super.init() + + self.addSubnode(self.backgroundNode) + self.addSubnode(self.textInputNode) + self.addSubnode(self.placeholderNode) + } + + override func didLoad() { + super.didLoad() + + self.textInputNode.textField.typingAttributes = [NSAttributedStringKey.font.rawValue: Font.regular(14.0), NSAttributedStringKey.foregroundColor.rawValue: self.theme.actionSheet.inputTextColor] + self.textInputNode.textField.font = Font.regular(14.0) + self.textInputNode.textField.textColor = self.theme.list.itemPrimaryTextColor + self.textInputNode.textField.isSecureTextEntry = true + self.textInputNode.textField.returnKeyType = .done + self.textInputNode.textField.keyboardAppearance = theme.chatList.searchBarKeyboardColor.keyboardAppearance + self.textInputNode.clipsToBounds = true + self.textInputNode.textField.delegate = self + self.textInputNode.textField.addTarget(self, action: #selector(self.textFieldTextChanged(_:)), for: .editingChanged) + self.textInputNode.hitTestSlop = UIEdgeInsets(top: -5.0, left: -5.0, bottom: -5.0, right: -5.0) + } + + func updateTheme(_ theme: PresentationTheme) { + self.theme = theme + + self.backgroundNode.image = generateStretchableFilledCircleImage(diameter: 16.0, color: theme.actionSheet.inputHollowBackgroundColor, strokeColor: theme.actionSheet.inputBorderColor, strokeWidth: UIScreenPixel) + self.textInputNode.textField.keyboardAppearance = theme.chatList.searchBarKeyboardColor.keyboardAppearance + self.textInputNode.textField.textColor = theme.list.itemPrimaryTextColor + self.textInputNode.textField.typingAttributes = [NSAttributedStringKey.font.rawValue: Font.regular(14.0), NSAttributedStringKey.foregroundColor.rawValue: theme.actionSheet.inputTextColor] + self.placeholderNode.attributedText = NSAttributedString(string: self.placeholderNode.attributedText?.string ?? "", font: Font.regular(14.0), textColor: theme.actionSheet.inputPlaceholderColor) + } + + func updateLayout(width: CGFloat, transition: ContainedViewLayoutTransition) -> CGFloat { + let backgroundInsets = self.backgroundInsets + let inputInsets = self.inputInsets + + let textFieldHeight: CGFloat = 30.0 + let panelHeight = textFieldHeight + backgroundInsets.top + backgroundInsets.bottom + + let backgroundFrame = CGRect(origin: CGPoint(x: backgroundInsets.left, y: backgroundInsets.top), size: CGSize(width: width - backgroundInsets.left - backgroundInsets.right, height: panelHeight - backgroundInsets.top - backgroundInsets.bottom)) + transition.updateFrame(node: self.backgroundNode, frame: backgroundFrame) + + let placeholderSize = self.placeholderNode.measure(backgroundFrame.size) + transition.updateFrame(node: self.placeholderNode, frame: CGRect(origin: CGPoint(x: backgroundFrame.minX + inputInsets.left, y: backgroundFrame.minY + floor((backgroundFrame.size.height - placeholderSize.height) / 2.0)), size: placeholderSize)) + + transition.updateFrame(node: self.textInputNode, frame: CGRect(origin: CGPoint(x: backgroundFrame.minX + inputInsets.left, y: backgroundFrame.minY), size: CGSize(width: backgroundFrame.size.width - inputInsets.left - inputInsets.right, height: backgroundFrame.size.height))) + + return panelHeight + } + + func activateInput() { + self.textInputNode.becomeFirstResponder() + } + + func deactivateInput() { + self.textInputNode.resignFirstResponder() + } + + @objc func editableTextNodeDidUpdateText(_ editableTextNode: ASEditableTextNode) { + self.textChanged?(editableTextNode.textView.text) + self.placeholderNode.isHidden = !(editableTextNode.textView.text ?? "").isEmpty + } + + @objc func textFieldTextChanged(_ textField: UITextField) { + let text = textField.text ?? "" + self.textChanged?(text) + self.placeholderNode.isHidden = !text.isEmpty + } + + func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool { + if string == "\n" { + self.complete?() + return false + } + return true + } +} + +private final class ChannelOwnershipTransferAlertContentNode: AlertContentNode { + private let strings: PresentationStrings + + private let titleNode: ASTextNode + private let textNode: ASTextNode + let inputFieldNode: ChannelOwnershipTransferPasswordFieldNode + + private let actionNodesSeparator: ASDisplayNode + private let actionNodes: [TextAlertContentActionNode] + private let actionVerticalSeparators: [ASDisplayNode] + + private let disposable = MetaDisposable() + + private var validLayout: CGSize? + + private let hapticFeedback = HapticFeedback() + + var complete: (() -> Void)? { + didSet { + self.inputFieldNode.complete = self.complete + } + } + + override var dismissOnOutsideTap: Bool { + return self.isUserInteractionEnabled + } + + init(theme: AlertControllerTheme, ptheme: PresentationTheme, strings: PresentationStrings, actions: [TextAlertAction]) { + self.strings = strings + + self.titleNode = ASTextNode() + self.titleNode.maximumNumberOfLines = 2 + self.textNode = ASTextNode() + self.textNode.maximumNumberOfLines = 2 + + self.inputFieldNode = ChannelOwnershipTransferPasswordFieldNode(theme: ptheme, placeholder: strings.Channel_OwnershipTransfer_PasswordPlaceholder) + + 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.titleNode) + self.addSubnode(self.textNode) + + self.addSubnode(self.inputFieldNode) + + 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.inputFieldNode.textChanged = { [weak self] text in + if let strongSelf = self, let lastNode = strongSelf.actionNodes.last { + lastNode.actionEnabled = !text.isEmpty + } + } + + self.updateTheme(theme) + } + + deinit { + self.disposable.dispose() + } + + func dismissInput() { + self.inputFieldNode.deactivateInput() + } + + var password: String { + return self.inputFieldNode.password + } + + override func updateTheme(_ theme: AlertControllerTheme) { + self.titleNode.attributedText = NSAttributedString(string: self.strings.Channel_OwnershipTransfer_EnterPassword, font: Font.bold(17.0), textColor: theme.primaryColor, paragraphAlignment: .center) + self.textNode.attributedText = NSAttributedString(string: self.strings.Channel_OwnershipTransfer_EnterPasswordText, 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 titleSize = self.titleNode.measure(measureSize) + transition.updateFrame(node: self.titleNode, frame: CGRect(origin: CGPoint(x: floorToScreenPixels((size.width - titleSize.width) / 2.0), y: origin.y), size: titleSize)) + origin.y += titleSize.height + 4.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 + 6.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(titleSize.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 inputFieldWidth = resultWidth + let inputFieldHeight = self.inputFieldNode.updateLayout(width: inputFieldWidth, transition: transition) + let inputHeight = inputFieldHeight + transition.updateFrame(node: self.inputFieldNode, frame: CGRect(x: 0.0, y: origin.y, width: resultWidth, height: inputFieldHeight)) + transition.updateAlpha(node: self.inputFieldNode, alpha: inputHeight > 0.0 ? 1.0 : 0.0) + + let resultSize = CGSize(width: resultWidth, height: titleSize.height + textSize.height + actionsHeight + inputHeight + 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 { + self.inputFieldNode.activateInput() + } + + return resultSize + } + + func animateError() { + self.inputFieldNode.layer.addShakeAnimation() + self.hapticFeedback.error() + } +} + +private func commitChannelOwnershipTransferController(context: AccountContext, channel: TelegramChannel, member: TelegramUser, completion: @escaping () -> Void) -> ViewController { + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + + var dismissImpl: (() -> Void)? + var proceedImpl: (() -> Void)? + + let disposable = MetaDisposable() + + let contentNode = ChannelOwnershipTransferAlertContentNode(theme: AlertControllerTheme(presentationTheme: presentationData.theme), ptheme: presentationData.theme, strings: presentationData.strings, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Common_Cancel, action: { + dismissImpl?() + }), TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_Done, action: { + proceedImpl?() + })]) + + let controller = AlertController(theme: AlertControllerTheme(presentationTheme: presentationData.theme), contentNode: contentNode) + let presentationDataDisposable = context.sharedContext.presentationData.start(next: { [weak controller, weak contentNode] presentationData in + controller?.theme = AlertControllerTheme(presentationTheme: presentationData.theme) + contentNode?.inputFieldNode.updateTheme(presentationData.theme) + }) + controller.dismissed = { + presentationDataDisposable.dispose() + disposable.dispose() + } + dismissImpl = { [weak controller, weak contentNode] in + contentNode?.dismissInput() + controller?.dismissAnimated() + } + proceedImpl = { [weak contentNode] in + guard let contentNode = contentNode else { + return + } + disposable.set((updateChannelOwnership(postbox: context.account.postbox, network: context.account.network, accountStateManager: context.account.stateManager, channelId: channel.id, memberId: member.id, password: contentNode.password) |> deliverOnMainQueue).start(error: { [weak contentNode] error in + contentNode?.animateError() + }, completed: { + dismissImpl?() + completion() + })) + } + return controller +} + +private func confirmChannelOwnershipTransferController(context: AccountContext, channel: TelegramChannel, member: TelegramUser, present: @escaping (ViewController, Any?) -> Void, completion: @escaping () -> Void) -> ViewController { + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + let theme = AlertControllerTheme(presentationTheme: presentationData.theme) + + var title: String + var text: String + if case .group = channel.info { + title = presentationData.strings.Group_OwnershipTransfer_Title + text = presentationData.strings.Group_OwnershipTransfer_DescriptionInfo(channel.displayTitle, member.displayTitle).0 + } else { + title = presentationData.strings.Channel_OwnershipTransfer_Title + text = presentationData.strings.Channel_OwnershipTransfer_DescriptionInfo(channel.displayTitle, member.displayTitle).0 + } + + let attributedTitle = NSAttributedString(string: title, font: Font.medium(17.0), textColor: theme.primaryColor, paragraphAlignment: .center) + let body = MarkdownAttributeSet(font: Font.regular(13.0), textColor: theme.primaryColor) + let bold = MarkdownAttributeSet(font: Font.semibold(13.0), textColor: theme.primaryColor) + let attributedText = parseMarkdownIntoAttributedString(text, attributes: MarkdownAttributes(body: body, bold: bold, link: body, linkAttribute: { _ in return nil }), textAlignment: .center) + + var dismissImpl: (() -> Void)? + + let controller = richTextAlertController(context: context, title: attributedTitle, text: attributedText, actions: [TextAlertAction(type: .genericAction, title: presentationData.strings.Channel_OwnershipTransfer_ChangeOwner, action: { + dismissImpl?() + present(commitChannelOwnershipTransferController(context: context, channel: channel, member: member, completion: completion), nil) + }), TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_Cancel, action: { + dismissImpl?() + })], actionLayout: .vertical) + dismissImpl = { [weak controller] in + controller?.dismissAnimated() + } + return controller +} + +func channelOwnershipTransferController(context: AccountContext, channel: TelegramChannel, member: TelegramUser, initialError: ChannelOwnershipTransferError, present: @escaping (ViewController, Any?) -> Void, completion: @escaping () -> Void) -> ViewController { + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + let theme = AlertControllerTheme(presentationTheme: presentationData.theme) + + var title: NSAttributedString? = NSAttributedString(string: presentationData.strings.OwnershipTransfer_SecurityCheck, font: Font.medium(17.0), textColor: theme.primaryColor, paragraphAlignment: .center) + + var text = presentationData.strings.OwnershipTransfer_SecurityRequirements + + var dismissImpl: (() -> Void)? + var actions: [TextAlertAction] = [] + + switch initialError { + case .requestPassword: + return confirmChannelOwnershipTransferController(context: context, channel: channel, member: member, present: present, completion: completion) + case .twoStepAuthTooFresh, .authSessionTooFresh: + text = text + presentationData.strings.OwnershipTransfer_ComeBackLater + actions = [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: { + dismissImpl?() + })] + case .twoStepAuthMissing: + actions = [TextAlertAction(type: .genericAction, title: presentationData.strings.OwnershipTransfer_SetupTwoStepAuth, action: { + let controller = SetupTwoStepVerificationController(context: context, initialState: .automatic, stateUpdated: { update, shouldDismiss, controller in + if shouldDismiss { + controller.dismiss() + } + }) + present(controller, ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + }), TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_Cancel, action: { + dismissImpl?() + })] + default: + title = nil + text = presentationData.strings.Login_UnknownError + actions = [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: { + dismissImpl?() + })] + } + + let body = MarkdownAttributeSet(font: Font.regular(13.0), textColor: theme.primaryColor) + let bold = MarkdownAttributeSet(font: Font.semibold(13.0), textColor: theme.primaryColor) + let attributedText = parseMarkdownIntoAttributedString(text, attributes: MarkdownAttributes(body: body, bold: bold, link: body, linkAttribute: { _ in return nil }), textAlignment: .center) + + let controller = richTextAlertController(context: context, title: title, text: attributedText, actions: actions) + dismissImpl = { [weak controller] in + controller?.dismissAnimated() + } + return controller +} diff --git a/TelegramUI/ChatController.swift b/TelegramUI/ChatController.swift index 3f613ff677..d47c164d14 100644 --- a/TelegramUI/ChatController.swift +++ b/TelegramUI/ChatController.swift @@ -1449,7 +1449,7 @@ public final class ChatController: TelegramController, KeyShortcutResponder, Gal if let strongSelf = self { if let peer = peerViewMainPeer(peerView) { strongSelf.chatTitleView?.titleContent = .peer(peerView: peerView, onlineMemberCount: onlineMemberCount) - (strongSelf.chatInfoNavigationButton?.buttonItem.customDisplayNode as? ChatAvatarNavigationNode)?.avatarNode.setPeer(account: strongSelf.context.account, theme: strongSelf.presentationData.theme, peer: peer) + (strongSelf.chatInfoNavigationButton?.buttonItem.customDisplayNode as? ChatAvatarNavigationNode)?.avatarNode.setPeer(account: strongSelf.context.account, theme: strongSelf.presentationData.theme, peer: peer, overrideImage: peer.isDeleted ? .deletedIcon : .none) } if strongSelf.peerView === peerView { return diff --git a/TelegramUI/ChatListItem.swift b/TelegramUI/ChatListItem.swift index 815fdc660c..c7a13c8892 100644 --- a/TelegramUI/ChatListItem.swift +++ b/TelegramUI/ChatListItem.swift @@ -476,6 +476,8 @@ class ChatListItemNode: ItemListRevealOptionsItemNode { var overrideImage: AvatarNodeImageOverride? if peer.id == item.context.account.peerId { overrideImage = .savedMessagesIcon + } else if peer.isDeleted { + overrideImage = .deletedIcon } self.avatarNode.setPeer(account: item.context.account, theme: item.presentationData.theme, peer: peer, overrideImage: overrideImage, emptyColor: item.presentationData.theme.list.mediaPlaceholderColor, synchronousLoad: synchronousLoads) } diff --git a/TelegramUI/ChatMessageActionUrlAuthController.swift b/TelegramUI/ChatMessageActionUrlAuthController.swift index 4bf661eb0d..62ec5c593f 100644 --- a/TelegramUI/ChatMessageActionUrlAuthController.swift +++ b/TelegramUI/ChatMessageActionUrlAuthController.swift @@ -6,77 +6,6 @@ import Display import Postbox import TelegramCore -private final class ChatMessageActionUrlAuthContentActionNode: HighlightableButtonNode { - private let backgroundNode: ASDisplayNode - - let action: TextAlertAction - - init(theme: AlertControllerTheme, action: TextAlertAction) { - self.backgroundNode = ASDisplayNode() - self.backgroundNode.isLayerBacked = true - self.backgroundNode.alpha = 0.0 - - self.action = action - - super.init() - - self.titleNode.maximumNumberOfLines = 2 - - self.highligthedChanged = { [weak self] value in - if let strongSelf = self { - if value { - if strongSelf.backgroundNode.supernode == nil { - strongSelf.insertSubnode(strongSelf.backgroundNode, at: 0) - } - strongSelf.backgroundNode.layer.removeAnimation(forKey: "opacity") - strongSelf.backgroundNode.alpha = 1.0 - } else if !strongSelf.backgroundNode.alpha.isZero { - strongSelf.backgroundNode.alpha = 0.0 - strongSelf.backgroundNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.25) - } - } - } - - self.updateTheme(theme) - } - - func updateTheme(_ theme: AlertControllerTheme) { - self.backgroundNode.backgroundColor = theme.highlightedItemColor - - var font = Font.regular(17.0) - var color = theme.accentColor - switch self.action.type { - case .defaultAction, .genericAction: - break - case .destructiveAction: - color = theme.destructiveColor - } - switch self.action.type { - case .defaultAction: - font = Font.semibold(17.0) - case .destructiveAction, .genericAction: - break - } - self.setAttributedTitle(NSAttributedString(string: self.action.title, font: font, textColor: color, paragraphAlignment: .center), for: []) - } - - override func didLoad() { - super.didLoad() - - self.addTarget(self, action: #selector(self.pressed), forControlEvents: .touchUpInside) - } - - @objc func pressed() { - self.action.action() - } - - override func layout() { - super.layout() - - self.backgroundNode.frame = self.bounds - } -} - private let textFont = Font.regular(13.0) private let boldTextFont = Font.semibold(13.0) @@ -99,7 +28,7 @@ private final class ChatMessageActionUrlAuthAlertContentNode: AlertContentNode { private let allowWriteLabelNode: ASTextNode private let actionNodesSeparator: ASDisplayNode - private let actionNodes: [ChatMessageActionUrlAuthContentActionNode] + private let actionNodes: [TextAlertContentActionNode] private let actionVerticalSeparators: [ASDisplayNode] private var validLayout: CGSize? @@ -154,8 +83,8 @@ private final class ChatMessageActionUrlAuthAlertContentNode: AlertContentNode { self.actionNodesSeparator = ASDisplayNode() self.actionNodesSeparator.isLayerBacked = true - self.actionNodes = actions.map { action -> ChatMessageActionUrlAuthContentActionNode in - return ChatMessageActionUrlAuthContentActionNode(theme: theme, action: action) + self.actionNodes = actions.map { action -> TextAlertContentActionNode in + return TextAlertContentActionNode(theme: theme, action: action) } var actionVerticalSeparators: [ASDisplayNode] = [] diff --git a/TelegramUI/ChatRecentActionsFilterController.swift b/TelegramUI/ChatRecentActionsFilterController.swift index 4d97dcc57e..1ef44476dc 100644 --- a/TelegramUI/ChatRecentActionsFilterController.swift +++ b/TelegramUI/ChatRecentActionsFilterController.swift @@ -221,7 +221,7 @@ private enum ChatRecentActionsFilterEntry: ItemListNodeEntry { let peerText: String switch participant.participant { case .creator: - peerText = strings.Channel_Management_LabelCreator + peerText = strings.Channel_Management_LabelOwner case .member: peerText = strings.ChatAdmins_AdminLabel.capitalized } diff --git a/TelegramUI/ChatTextLinkEditController.swift b/TelegramUI/ChatTextLinkEditController.swift index 4935d7d59b..f622c9f2c1 100644 --- a/TelegramUI/ChatTextLinkEditController.swift +++ b/TelegramUI/ChatTextLinkEditController.swift @@ -18,7 +18,6 @@ private final class ChatTextLinkEditInputFieldNode: ASDisplayNode, ASEditableTex private let backgroundInsets = UIEdgeInsets(top: 8.0, left: 16.0, bottom: 15.0, right: 16.0) private let inputInsets = UIEdgeInsets(top: 5.0, left: 12.0, bottom: 5.0, right: 12.0) - private let accessoryButtonsWidth: CGFloat = 10.0 var text: String { get { @@ -81,7 +80,6 @@ private final class ChatTextLinkEditInputFieldNode: ASDisplayNode, ASEditableTex func updateLayout(width: CGFloat, transition: ContainedViewLayoutTransition) -> CGFloat { let backgroundInsets = self.backgroundInsets let inputInsets = self.inputInsets - let accessoryButtonsWidth = self.accessoryButtonsWidth let textFieldHeight = self.calculateTextFieldMetrics(width: width) let panelHeight = textFieldHeight + backgroundInsets.top + backgroundInsets.bottom @@ -92,7 +90,7 @@ private final class ChatTextLinkEditInputFieldNode: ASDisplayNode, ASEditableTex let placeholderSize = self.placeholderNode.measure(backgroundFrame.size) transition.updateFrame(node: self.placeholderNode, frame: CGRect(origin: CGPoint(x: backgroundFrame.minX + inputInsets.left, y: backgroundFrame.minY + floor((backgroundFrame.size.height - placeholderSize.height) / 2.0)), size: placeholderSize)) - transition.updateFrame(node: self.textInputNode, frame: CGRect(origin: CGPoint(x: backgroundFrame.minX + inputInsets.left, y: backgroundFrame.minY), size: CGSize(width: backgroundFrame.size.width - inputInsets.left - inputInsets.right - accessoryButtonsWidth, height: backgroundFrame.size.height))) + transition.updateFrame(node: self.textInputNode, frame: CGRect(origin: CGPoint(x: backgroundFrame.minX + inputInsets.left, y: backgroundFrame.minY), size: CGSize(width: backgroundFrame.size.width - inputInsets.left - inputInsets.right, height: backgroundFrame.size.height))) return panelHeight } @@ -122,9 +120,8 @@ private final class ChatTextLinkEditInputFieldNode: ASDisplayNode, ASEditableTex private func calculateTextFieldMetrics(width: CGFloat) -> CGFloat { let backgroundInsets = self.backgroundInsets let inputInsets = self.inputInsets - let accessoryButtonsWidth = self.accessoryButtonsWidth - let unboundTextFieldHeight = max(33.0, ceil(self.textInputNode.measure(CGSize(width: width - backgroundInsets.left - backgroundInsets.right - inputInsets.left - inputInsets.right - accessoryButtonsWidth, height: CGFloat.greatestFiniteMagnitude)).height)) + let unboundTextFieldHeight = max(33.0, ceil(self.textInputNode.measure(CGSize(width: width - backgroundInsets.left - backgroundInsets.right - inputInsets.left - inputInsets.right, height: CGFloat.greatestFiniteMagnitude)).height)) return min(61.0, max(33.0, unboundTextFieldHeight)) } @@ -146,91 +143,6 @@ private final class ChatTextLinkEditInputFieldNode: ASDisplayNode, ASEditableTex } } - -private final class ChatTextLinkEditContentActionNode: HighlightableButtonNode { - private var theme: AlertControllerTheme - let action: TextAlertAction - - private let backgroundNode: ASDisplayNode - - init(theme: AlertControllerTheme, action: TextAlertAction) { - self.theme = theme - self.action = action - - self.backgroundNode = ASDisplayNode() - self.backgroundNode.isLayerBacked = true - self.backgroundNode.alpha = 0.0 - - super.init() - - self.titleNode.maximumNumberOfLines = 2 - - self.highligthedChanged = { [weak self] value in - if let strongSelf = self { - if value { - if strongSelf.backgroundNode.supernode == nil { - strongSelf.insertSubnode(strongSelf.backgroundNode, at: 0) - } - strongSelf.backgroundNode.layer.removeAnimation(forKey: "opacity") - strongSelf.backgroundNode.alpha = 1.0 - } else if !strongSelf.backgroundNode.alpha.isZero { - strongSelf.backgroundNode.alpha = 0.0 - strongSelf.backgroundNode.layer.animateAlpha(from: 1.0, to: 0.0, duration: 0.25) - } - } - } - - self.updateTheme(theme) - } - - var actionEnabled: Bool = true { - didSet { - self.isUserInteractionEnabled = self.actionEnabled - self.updateTitle() - } - } - - func updateTheme(_ theme: AlertControllerTheme) { - self.theme = theme - self.backgroundNode.backgroundColor = theme.highlightedItemColor - self.updateTitle() - } - - private func updateTitle() { - var font = Font.regular(17.0) - var color: UIColor - switch self.action.type { - case .defaultAction, .genericAction: - color = self.actionEnabled ? self.theme.accentColor : self.theme.disabledColor - case .destructiveAction: - color = self.actionEnabled ? self.theme.destructiveColor : self.theme.disabledColor - } - switch self.action.type { - case .defaultAction: - font = Font.semibold(17.0) - case .destructiveAction, .genericAction: - break - } - self.setAttributedTitle(NSAttributedString(string: self.action.title, font: font, textColor: color, paragraphAlignment: .center), for: []) - } - - override func didLoad() { - super.didLoad() - - self.addTarget(self, action: #selector(self.pressed), forControlEvents: .touchUpInside) - } - - @objc func pressed() { - self.action.action() - } - - override func layout() { - super.layout() - - self.backgroundNode.frame = self.bounds - } -} - private final class ChatTextLinkEditAlertContentNode: AlertContentNode { private let strings: PresentationStrings private let text: String @@ -240,7 +152,7 @@ private final class ChatTextLinkEditAlertContentNode: AlertContentNode { let inputFieldNode: ChatTextLinkEditInputFieldNode private let actionNodesSeparator: ASDisplayNode - private let actionNodes: [ChatTextLinkEditContentActionNode] + private let actionNodes: [TextAlertContentActionNode] private let actionVerticalSeparators: [ASDisplayNode] private let disposable = MetaDisposable() @@ -274,8 +186,8 @@ private final class ChatTextLinkEditAlertContentNode: AlertContentNode { self.actionNodesSeparator = ASDisplayNode() self.actionNodesSeparator.isLayerBacked = true - self.actionNodes = actions.map { action -> ChatTextLinkEditContentActionNode in - return ChatTextLinkEditContentActionNode(theme: theme, action: action) + self.actionNodes = actions.map { action -> TextAlertContentActionNode in + return TextAlertContentActionNode(theme: theme, action: action) } var actionVerticalSeparators: [ASDisplayNode] = [] diff --git a/TelegramUI/ComponentsThemes.swift b/TelegramUI/ComponentsThemes.swift index 885e17c612..87014b2691 100644 --- a/TelegramUI/ComponentsThemes.swift +++ b/TelegramUI/ComponentsThemes.swift @@ -44,7 +44,7 @@ extension ActionSheetController { public extension AlertControllerTheme { convenience init(presentationTheme: PresentationTheme) { let actionSheet = presentationTheme.actionSheet - self.init(backgroundColor: actionSheet.opaqueItemBackgroundColor, separatorColor: actionSheet.opaqueItemSeparatorColor, highlightedItemColor: actionSheet.opaqueItemHighlightedBackgroundColor, primaryColor: actionSheet.primaryTextColor, secondaryColor: actionSheet.secondaryTextColor, accentColor: actionSheet.controlAccentColor, destructiveColor: actionSheet.destructiveActionTextColor, disabledColor: actionSheet.disabledActionTextColor) + self.init(backgroundType: actionSheet.backgroundType == .light ? .light : .dark, backgroundColor: actionSheet.itemBackgroundColor, separatorColor: actionSheet.itemHighlightedBackgroundColor, highlightedItemColor: actionSheet.itemHighlightedBackgroundColor, primaryColor: actionSheet.primaryTextColor, secondaryColor: actionSheet.secondaryTextColor, accentColor: actionSheet.controlAccentColor, destructiveColor: actionSheet.destructiveActionTextColor, disabledColor: actionSheet.disabledActionTextColor) } } diff --git a/TelegramUI/ContactsController.swift b/TelegramUI/ContactsController.swift index de3b8e77b9..2cf2f7bd65 100644 --- a/TelegramUI/ContactsController.swift +++ b/TelegramUI/ContactsController.swift @@ -248,8 +248,8 @@ public class ContactsController: ViewController { self.contactsNode.openPeopleNearby = { [weak self] in if let strongSelf = self { - //let controller = peopleNearbyController(context: strongSelf.context) - //(strongSelf.navigationController as? NavigationController)?.pushViewController(controller) + let controller = peopleNearbyController(context: strongSelf.context) + (strongSelf.navigationController as? NavigationController)?.pushViewController(controller) } } diff --git a/TelegramUI/ContactsControllerNode.swift b/TelegramUI/ContactsControllerNode.swift index fb2049c279..a8438f6b98 100644 --- a/TelegramUI/ContactsControllerNode.swift +++ b/TelegramUI/ContactsControllerNode.swift @@ -31,10 +31,9 @@ final class ContactsControllerNode: ASDisplayNode { var addNearbyImpl: (() -> Void)? var inviteImpl: (() -> Void)? - //ContactListAdditionalOption(title: presentationData.strings.Contacts_AddPeopleNearby, icon: .generic(UIImage(bundleImageName: "Contact List/PeopleNearbyIcon")!), action: { - // addNearbyImpl?() - //}), - let options = [ContactListAdditionalOption(title: presentationData.strings.Contacts_InviteFriends, icon: .generic(UIImage(bundleImageName: "Contact List/AddMemberIcon")!), action: { + let options = [ContactListAdditionalOption(title: presentationData.strings.Contacts_AddPeopleNearby, icon: .generic(UIImage(bundleImageName: "Contact List/PeopleNearbyIcon")!), action: { + addNearbyImpl?() + }), ContactListAdditionalOption(title: presentationData.strings.Contacts_InviteFriends, icon: .generic(UIImage(bundleImageName: "Contact List/AddMemberIcon")!), action: { inviteImpl?() })] diff --git a/TelegramUI/ContactsPeerItem.swift b/TelegramUI/ContactsPeerItem.swift index 2d390ca6b6..5cfec4e96b 100644 --- a/TelegramUI/ContactsPeerItem.swift +++ b/TelegramUI/ContactsPeerItem.swift @@ -625,6 +625,8 @@ class ContactsPeerItemNode: ItemListRevealOptionsItemNode { var overrideImage: AvatarNodeImageOverride? if peer.id == item.account.peerId, case .generalSearch = item.peerMode { overrideImage = .savedMessagesIcon + } else if peer.isDeleted { + overrideImage = .deletedIcon } strongSelf.avatarNode.setPeer(account: item.account, theme: item.theme, peer: peer, overrideImage: overrideImage, emptyColor: item.theme.list.mediaPlaceholderColor, synchronousLoad: synchronousLoads) } diff --git a/TelegramUI/DefaultPresentationTheme.swift b/TelegramUI/DefaultPresentationTheme.swift index bae6fe78cc..f7cc1f51cc 100644 --- a/TelegramUI/DefaultPresentationTheme.swift +++ b/TelegramUI/DefaultPresentationTheme.swift @@ -408,7 +408,7 @@ private func makeDefaultPresentationTheme(accentColor: UIColor, serviceBackgroun dimColor: UIColor(white: 0.0, alpha: 0.4), backgroundType: .light, opaqueItemBackgroundColor: .white, - itemBackgroundColor: UIColor(white: 1.0, alpha: 0.8), + itemBackgroundColor: UIColor(white: 1.0, alpha: 0.87), opaqueItemHighlightedBackgroundColor: UIColor(white: 0.9, alpha: 1.0), itemHighlightedBackgroundColor: UIColor(white: 0.9, alpha: 0.7), standardActionTextColor: accentColor, diff --git a/TelegramUI/DeleteChatPeerActionSheetItem.swift b/TelegramUI/DeleteChatPeerActionSheetItem.swift index 83e311cf17..488fb3be21 100644 --- a/TelegramUI/DeleteChatPeerActionSheetItem.swift +++ b/TelegramUI/DeleteChatPeerActionSheetItem.swift @@ -59,7 +59,11 @@ private final class DeleteChatPeerActionSheetItemNode: ActionSheetItemNode { if chatPeer.id == context.account.peerId { self.avatarNode.setPeer(account: context.account, theme: (context.sharedContext.currentPresentationData.with { $0 }).theme, peer: peer, overrideImage: .savedMessagesIcon) } else { - self.avatarNode.setPeer(account: context.account, theme: (context.sharedContext.currentPresentationData.with { $0 }).theme, peer: peer) + var overrideImage: AvatarNodeImageOverride? + if chatPeer.isDeleted { + overrideImage = .deletedIcon + } + self.avatarNode.setPeer(account: context.account, theme: (context.sharedContext.currentPresentationData.with { $0 }).theme, peer: peer, overrideImage: overrideImage) } let text: (String, [(Int, NSRange)]) diff --git a/TelegramUI/GroupInfoController.swift b/TelegramUI/GroupInfoController.swift index f4d37ef42d..f40ad66029 100644 --- a/TelegramUI/GroupInfoController.swift +++ b/TelegramUI/GroupInfoController.swift @@ -1777,7 +1777,7 @@ public func groupInfoController(context: AccountContext, peerId originalPeerId: presentControllerImpl?(channelAdminController(context: context, peerId: peerView.peerId, adminId: participant.peer.id, initialParticipant: participant.participant, updated: { _ in }, upgradedToSupergroup: { upgradedPeerId, f in upgradedToSupergroupImpl?(upgradedPeerId, f) - }), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) + }, transferedOwnership: { _ in }), ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) }) }, restrictPeer: { participant in let _ = (peerView.get() diff --git a/TelegramUI/ItemListAvatarAndNameItem.swift b/TelegramUI/ItemListAvatarAndNameItem.swift index dfa855f0c8..ef451d0188 100644 --- a/TelegramUI/ItemListAvatarAndNameItem.swift +++ b/TelegramUI/ItemListAvatarAndNameItem.swift @@ -644,6 +644,8 @@ class ItemListAvatarAndNameInfoItemNode: ListViewItemNode, ItemListItemNode, Ite } } else if case .editSettings = item.mode { overrideImage = AvatarNodeImageOverride.editAvatarIcon + } else if peer.isDeleted { + overrideImage = .deletedIcon } strongSelf.avatarNode.setPeer(account: item.account, theme: item.theme, peer: peer, overrideImage: overrideImage, emptyColor: ignoreEmpty ? nil : item.theme.list.mediaPlaceholderColor, synchronousLoad: synchronousLoads) diff --git a/TelegramUI/ItemListPeerItem.swift b/TelegramUI/ItemListPeerItem.swift index a68196e6cc..ebb91f4be8 100644 --- a/TelegramUI/ItemListPeerItem.swift +++ b/TelegramUI/ItemListPeerItem.swift @@ -709,7 +709,11 @@ class ItemListPeerItemNode: ItemListRevealOptionsItemNode, ItemListItemNode { if item.peer.id == item.account.peerId, case .threatSelfAsSaved = item.aliasHandling { strongSelf.avatarNode.setPeer(account: item.account, theme: item.theme, peer: item.peer, overrideImage: .savedMessagesIcon, emptyColor: item.theme.list.mediaPlaceholderColor, synchronousLoad: synchronousLoad) } else { - strongSelf.avatarNode.setPeer(account: item.account, theme: item.theme, peer: item.peer, emptyColor: item.theme.list.mediaPlaceholderColor, synchronousLoad: synchronousLoad) + var overrideImage: AvatarNodeImageOverride? + if item.peer.isDeleted { + overrideImage = .deletedIcon + } + strongSelf.avatarNode.setPeer(account: item.account, theme: item.theme, peer: item.peer, overrideImage: overrideImage, emptyColor: item.theme.list.mediaPlaceholderColor, synchronousLoad: synchronousLoad) } strongSelf.highlightedBackgroundNode.frame = CGRect(origin: CGPoint(x: 0.0, y: -UIScreenPixel), size: CGSize(width: params.width, height: 50.0 + UIScreenPixel + UIScreenPixel)) diff --git a/TelegramUI/PeopleNearbyController.swift b/TelegramUI/PeopleNearbyController.swift new file mode 100644 index 0000000000..ec3488b73b --- /dev/null +++ b/TelegramUI/PeopleNearbyController.swift @@ -0,0 +1,328 @@ +import Foundation +import UIKit +import Display +import SwiftSignalKit +import Postbox +import TelegramCore +import MapKit + +private struct PeerNearbyEntry { + let peer: Peer + let expires: Int32 + let distance: Int32 +} + +private func arePeersNearbyEqual(_ lhs: PeerNearbyEntry?, _ rhs: PeerNearbyEntry?) -> Bool { + if let lhs = lhs, let rhs = rhs { + return lhs.peer.isEqual(rhs.peer) && lhs.expires == rhs.expires && lhs.distance == rhs.distance + } else { + return (lhs != nil) == (rhs != nil) + } +} + +private func arePeerNearbyArraysEqual(_ lhs: [PeerNearbyEntry], _ rhs: [PeerNearbyEntry]) -> Bool { + if lhs.count != rhs.count { + return false + } + for i in 0 ..< lhs.count { + if !lhs[i].peer.isEqual(rhs[i].peer) || lhs[i].expires != rhs[i].expires || lhs[i].distance != rhs[i].distance { + return false + } + } + return true +} + +private final class PeopleNearbyControllerArguments { + let context: AccountContext + let openChat: (Peer) -> Void + let openCreateGroup: () -> Void + + init(context: AccountContext, openChat: @escaping (Peer) -> Void, openCreateGroup: @escaping () -> Void) { + self.context = context + self.openChat = openChat + self.openCreateGroup = openCreateGroup + } +} + +private enum PeopleNearbySection: Int32 { + case header + case users + case groups + case channels +} + +private enum PeopleNearbyEntry: ItemListNodeEntry { + case header(PresentationTheme, String) + + case usersHeader(PresentationTheme, String) + case empty(PresentationTheme, String) + case user(Int32, PresentationTheme, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, PeerNearbyEntry) + + case groupsHeader(PresentationTheme, String) + case createGroup(PresentationTheme, String) + case group(Int32, PresentationTheme, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, PeerNearbyEntry) + + case channelsHeader(PresentationTheme, String) + case channel(Int32, PresentationTheme, PresentationStrings, PresentationDateTimeFormat, PresentationPersonNameOrder, PeerNearbyEntry) + + var section: ItemListSectionId { + switch self { + case .header: + return PeopleNearbySection.header.rawValue + case .usersHeader, .empty, .user: + return PeopleNearbySection.users.rawValue + case .groupsHeader, .createGroup, .group: + return PeopleNearbySection.groups.rawValue + case .channelsHeader, .channel: + return PeopleNearbySection.channels.rawValue + } + } + + var stableId: Int32 { + switch self { + case .header: + return 0 + case .usersHeader: + return 1 + case .empty: + return 2 + case let .user(index, _, _, _, _, _): + return 3 + index + case .groupsHeader: + return 1000 + case .createGroup: + return 1001 + case let .group(index, _, _, _, _, _): + return 1002 + index + case .channelsHeader: + return 2000 + case let .channel(index, _, _, _, _, _): + return 2001 + index + } + } + + static func ==(lhs: PeopleNearbyEntry, rhs: PeopleNearbyEntry) -> Bool { + switch lhs { + case let .header(lhsTheme, lhsText): + if case let .header(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { + return true + } else { + return false + } + case let .usersHeader(lhsTheme, lhsText): + if case let .usersHeader(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { + return true + } else { + return false + } + case let .empty(lhsTheme, lhsText): + if case let .empty(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { + return true + } else { + return false + } + case let .user(lhsIndex, lhsTheme, lhsStrings, lhsDateTimeFormat, lhsDisplayOrder, lhsPeer): + if case let .user(rhsIndex, rhsTheme, rhsStrings, rhsDateTimeFormat, rhsDisplayOrder, rhsPeer) = rhs, lhsIndex == rhsIndex, lhsTheme === rhsTheme, lhsStrings === rhsStrings, lhsDateTimeFormat == rhsDateTimeFormat, lhsDisplayOrder == rhsDisplayOrder, arePeersNearbyEqual(lhsPeer, rhsPeer) { + return true + } else { + return false + } + case let .groupsHeader(lhsTheme, lhsText): + if case let .groupsHeader(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { + return true + } else { + return false + } + case let .createGroup(lhsTheme, lhsText): + if case let .createGroup(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { + return true + } else { + return false + } + case let .group(lhsIndex, lhsTheme, lhsStrings, lhsDateTimeFormat, lhsDisplayOrder, lhsPeer): + if case let .group(rhsIndex, rhsTheme, rhsStrings, rhsDateTimeFormat, rhsDisplayOrder, rhsPeer) = rhs, lhsIndex == rhsIndex, lhsTheme === rhsTheme, lhsStrings === rhsStrings, lhsDateTimeFormat == rhsDateTimeFormat, lhsDisplayOrder == rhsDisplayOrder, arePeersNearbyEqual(lhsPeer, rhsPeer) { + return true + } else { + return false + } + case let .channelsHeader(lhsTheme, lhsText): + if case let .channelsHeader(rhsTheme, rhsText) = rhs, lhsTheme === rhsTheme, lhsText == rhsText { + return true + } else { + return false + } + case let .channel(lhsIndex, lhsTheme, lhsStrings, lhsDateTimeFormat, lhsDisplayOrder, lhsPeer): + if case let .channel(rhsIndex, rhsTheme, rhsStrings, rhsDateTimeFormat, rhsDisplayOrder, rhsPeer) = rhs, lhsIndex == rhsIndex, lhsTheme === rhsTheme, lhsStrings === rhsStrings, lhsDateTimeFormat == rhsDateTimeFormat, lhsDisplayOrder == rhsDisplayOrder, arePeersNearbyEqual(lhsPeer, rhsPeer) { + return true + } else { + return false + } + } + } + + static func <(lhs: PeopleNearbyEntry, rhs: PeopleNearbyEntry) -> Bool { + return lhs.stableId < rhs.stableId + } + + func item(_ arguments: PeopleNearbyControllerArguments) -> ListViewItem { + switch self { + case let .header(theme, text): + return PeopleNearbyHeaderItem(theme: theme, text: text, sectionId: self.section) + case let .usersHeader(theme, text): + return ItemListSectionHeaderItem(theme: theme, text: text, sectionId: self.section) + case let .empty(theme, text): + return ItemListPlaceholderItem(theme: theme, text: text, sectionId: self.section, style: .blocks) + case let .user(_, theme, strings, dateTimeFormat, nameDisplayOrder, peer): + func distance(_ distance: Int32) -> String { + let formatter = MKDistanceFormatter() + formatter.unitStyle = .abbreviated + return formatter.string(fromDistance: Double(distance)) + } + + return ItemListPeerItem(theme: theme, strings: strings, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, account: arguments.context.account, peer: peer.peer, aliasHandling: .standard, nameColor: .primary, nameStyle: .distinctBold, presence: nil, text: .text(distance(peer.distance)), label: .none, editing: ItemListPeerItemEditing(editable: false, editing: false, revealed: false), revealOptions: nil, switchValue: nil, enabled: true, selectable: true, sectionId: self.section, action: { + arguments.openChat(peer.peer) + }, setPeerIdWithRevealedOptions: { _, _ in }, removePeer: { _ in }, toggleUpdated: nil, hasTopStripe: false, hasTopGroupInset: false, tag: nil) + case let .groupsHeader(theme, text): + return ItemListSectionHeaderItem(theme: theme, text: text, sectionId: self.section) + case let .createGroup(theme, title): + return ContactListActionItem(theme: theme, title: title, icon: .generic(UIImage(bundleImageName: "Contact List/CreateGroupActionIcon")!), header: nil, action: { + arguments.openCreateGroup() + }) + case let .group(_, theme, strings, dateTimeFormat, nameDisplayOrder, peer): + return ItemListPeerItem(theme: theme, strings: strings, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, account: arguments.context.account, peer: peer.peer, aliasHandling: .standard, nameColor: .primary, nameStyle: .distinctBold, presence: nil, text: .text("10 members"), label: .none, editing: ItemListPeerItemEditing(editable: false, editing: false, revealed: false), revealOptions: nil, switchValue: nil, enabled: true, selectable: true, sectionId: self.section, action: { + arguments.openChat(peer.peer) + }, setPeerIdWithRevealedOptions: { _, _ in }, removePeer: { _ in }, toggleUpdated: nil, hasTopStripe: false, hasTopGroupInset: false, tag: nil) + case let .channelsHeader(theme, text): + return ItemListSectionHeaderItem(theme: theme, text: text, sectionId: self.section) + case let .channel(_, theme, strings, dateTimeFormat, nameDisplayOrder, peer): + return ItemListPeerItem(theme: theme, strings: strings, dateTimeFormat: dateTimeFormat, nameDisplayOrder: nameDisplayOrder, account: arguments.context.account, peer: peer.peer, aliasHandling: .standard, nameColor: .primary, nameStyle: .distinctBold, presence: nil, text: .text("10 members"), label: .none, editing: ItemListPeerItemEditing(editable: false, editing: false, revealed: false), revealOptions: nil, switchValue: nil, enabled: true, selectable: true, sectionId: self.section, action: { + arguments.openChat(peer.peer) + }, setPeerIdWithRevealedOptions: { _, _ in }, removePeer: { _ in }, toggleUpdated: nil, hasTopStripe: false, hasTopGroupInset: false, tag: nil) + } + } +} + +private struct PeopleNearbyControllerState: Equatable { + static func ==(lhs: PeopleNearbyControllerState, rhs: PeopleNearbyControllerState) -> Bool { + return true + } +} + +private struct PeopleNearbyData: Equatable { + let users: [PeerNearbyEntry] + let groups: [PeerNearbyEntry] + let channels: [PeerNearbyEntry] + + init(users: [PeerNearbyEntry], groups: [PeerNearbyEntry], channels: [PeerNearbyEntry]) { + self.users = users + self.groups = groups + self.channels = channels + } + + static func ==(lhs: PeopleNearbyData, rhs: PeopleNearbyData) -> Bool { + return arePeerNearbyArraysEqual(lhs.users, rhs.users) && arePeerNearbyArraysEqual(lhs.groups, rhs.groups) && arePeerNearbyArraysEqual(lhs.channels, rhs.channels) + } +} + +private func peopleNearbyControllerEntries(state: PeopleNearbyControllerState, data: PeopleNearbyData?, presentationData: PresentationData) -> [PeopleNearbyEntry] { + var entries: [PeopleNearbyEntry] = [] + + entries.append(.header(presentationData.theme, presentationData.strings.PeopleNearby_Description)) + entries.append(.usersHeader(presentationData.theme, presentationData.strings.PeopleNearby_Users.uppercased())) + if let data = data, !data.users.isEmpty { + var i: Int32 = 0 + for user in data.users { + entries.append(.user(i, presentationData.theme, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, user)) + i += 1 + } + } else { + entries.append(.empty(presentationData.theme, presentationData.strings.PeopleNearby_UsersEmpty)) + } + + entries.append(.groupsHeader(presentationData.theme, presentationData.strings.PeopleNearby_Groups.uppercased())) + entries.append(.createGroup(presentationData.theme, presentationData.strings.PeopleNearby_CreateGroup)) + if let data = data, !data.groups.isEmpty { + var i: Int32 = 0 + for group in data.groups { + entries.append(.group(i, presentationData.theme, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, group)) + i += 1 + } + } + + if let data = data, !data.channels.isEmpty { + var i: Int32 = 0 + for channel in data.channels { + entries.append(.channel(i, presentationData.theme, presentationData.strings, presentationData.dateTimeFormat, presentationData.nameDisplayOrder, channel)) + i += 1 + } + } + + return entries +} + +public func peopleNearbyController(context: AccountContext) -> ViewController { + let statePromise = ValuePromise(PeopleNearbyControllerState(), ignoreRepeated: true) + let stateValue = Atomic(value: PeopleNearbyControllerState()) + let updateState: ((PeopleNearbyControllerState) -> PeopleNearbyControllerState) -> Void = { f in + statePromise.set(stateValue.modify { f($0) }) + } + + var presentControllerImpl: ((ViewController, ViewControllerPresentationArguments?) -> Void)? + var navigateToChatImpl: ((Peer) -> Void)? + + let actionsDisposable = DisposableSet() + + let dataPromise = Promise(nil) + + let arguments = PeopleNearbyControllerArguments(context: context, openChat: { peer in + navigateToChatImpl?(peer) + }, openCreateGroup: { + + }) + + let dataSignal: Signal = currentLocationManagerCoordinate(manager: context.sharedContext.locationManager!, timeout: 5.0) + |> mapToSignal { coordinate -> Signal in + guard let coordinate = coordinate else { + return .single(nil) + } + return peersNearby(network: context.account.network, accountStateManager: context.account.stateManager, coordinate: (latitude: coordinate.latitude, longitude: coordinate.longitude), radius: 200) + |> mapToSignal { peersNearby -> Signal in + return context.account.postbox.transaction { transaction -> PeopleNearbyData? in + var result: [PeerNearbyEntry] = [] + for peerNearby in peersNearby { + if peerNearby.id != context.account.peerId, let peer = transaction.getPeer(peerNearby.id) { + result.append(PeerNearbyEntry(peer: peer, expires: peerNearby.expires, distance: peerNearby.distance)) + } + } + return PeopleNearbyData(users: result, groups: [], channels: []) + } + } + } + + dataPromise.set(dataSignal) + + let signal = combineLatest(context.sharedContext.presentationData, statePromise.get(), dataPromise.get()) + |> deliverOnMainQueue + |> map { presentationData, state, data -> (ItemListControllerState, (ItemListNodeState, PeopleNearbyEntry.ItemGenerationArguments)) in + let controllerState = ItemListControllerState(theme: presentationData.theme, title: .text(presentationData.strings.PeopleNearby_Title), leftNavigationButton: nil, rightNavigationButton: nil, backNavigationButton: ItemListBackButton(title: presentationData.strings.Common_Back), animateChanges: true) + let listState = ItemListNodeState(entries: peopleNearbyControllerEntries(state: state, data: data, presentationData: presentationData), style: .blocks, emptyStateItem: nil, crossfadeState: false, animateChanges: true, userInteractionEnabled: true) + + return (controllerState, (listState, arguments)) + } |> afterDisposed { + actionsDisposable.dispose() + } + + let controller = ItemListController(context: context, state: signal) + navigateToChatImpl = { [weak controller] peer in + if let navigationController = controller?.navigationController as? NavigationController { + navigateToChatController(navigationController: navigationController, context: context, chatLocation: .peer(peer.id)) + } + } + presentControllerImpl = { [weak controller] c, p in + if let controller = controller { + controller.present(c, in: .window(.root), with: p) + } + } + + return controller +} diff --git a/TelegramUI/PeopleNearbyHeaderItem.swift b/TelegramUI/PeopleNearbyHeaderItem.swift new file mode 100644 index 0000000000..8813823b2a --- /dev/null +++ b/TelegramUI/PeopleNearbyHeaderItem.swift @@ -0,0 +1,123 @@ +import Foundation +import UIKit +import Display +import AsyncDisplayKit +import SwiftSignalKit + +class PeopleNearbyHeaderItem: ListViewItem, ItemListItem { + let theme: PresentationTheme + let text: String + let sectionId: ItemListSectionId + + init(theme: PresentationTheme, text: String, sectionId: ItemListSectionId) { + self.theme = theme + self.text = text + self.sectionId = sectionId + } + + 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 = PeopleNearbyHeaderItemNode() + 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 { + guard let nodeValue = node() as? PeopleNearbyHeaderItemNode else { + assertionFailure() + return + } + + 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 let titleFont = Font.regular(13.0) + +class PeopleNearbyHeaderItemNode: ListViewItemNode { + private let titleNode: TextNode + private var iconNode: PeopleNearbyIconNode? + + private var item: PeopleNearbyHeaderItem? + + init() { + self.titleNode = TextNode() + self.titleNode.isUserInteractionEnabled = false + self.titleNode.contentMode = .left + self.titleNode.contentsScale = UIScreen.main.scale + + super.init(layerBacked: false, dynamicBounce: false) + + self.addSubnode(self.titleNode) + } + + func asyncLayout() -> (_ item: PeopleNearbyHeaderItem, _ params: ListViewItemLayoutParams, _ neighbors: ItemListNeighbors) -> (ListViewItemNodeLayout, () -> Void) { + let makeTitleLayout = TextNode.asyncLayout(self.titleNode) + + return { item, params, neighbors in + let leftInset: CGFloat = 54.0 + params.leftInset + let topInset: CGFloat = 92.0 + + let attributedText = NSAttributedString(string: item.text, font: titleFont, textColor: item.theme.list.freeTextColor) + let (titleLayout, titleApply) = makeTitleLayout(TextNodeLayoutArguments(attributedString: attributedText, backgroundColor: nil, maximumNumberOfLines: 0, truncationType: .end, constrainedSize: CGSize(width: params.width - params.rightInset - leftInset * 2.0, height: CGFloat.greatestFiniteMagnitude), alignment: .center, cutout: nil, insets: UIEdgeInsets())) + + let contentSize: CGSize + + contentSize = CGSize(width: params.width, height: topInset + titleLayout.size.height) + let insets = itemListNeighborsGroupedInsets(neighbors) + + let layout = ListViewItemNodeLayout(contentSize: contentSize, insets: insets) + + return (layout, { [weak self] in + if let strongSelf = self { + strongSelf.item = item + strongSelf.accessibilityLabel = attributedText.string + + let iconNode: PeopleNearbyIconNode + if let node = strongSelf.iconNode { + iconNode = node + iconNode.updateTheme(item.theme) + } else { + iconNode = PeopleNearbyIconNode(theme: item.theme) + strongSelf.iconNode = iconNode + strongSelf.addSubnode(iconNode) + } + + let iconSize = CGSize(width: 60.0, height: 60.0) + iconNode.frame = CGRect(origin: CGPoint(x: floor((layout.size.width - iconSize.width) / 2.0), y: 5.0), size: iconSize) + + let _ = titleApply() + strongSelf.titleNode.frame = CGRect(origin: CGPoint(x: floor((layout.size.width - titleLayout.size.width) / 2.0), y: topInset), size: titleLayout.size) + } + }) + } + } + + 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) + } +} diff --git a/TelegramUI/PeopleNearbyIconNode.swift b/TelegramUI/PeopleNearbyIconNode.swift new file mode 100644 index 0000000000..ce9e3c9559 --- /dev/null +++ b/TelegramUI/PeopleNearbyIconNode.swift @@ -0,0 +1,204 @@ +import Foundation +import UIKit +import Display +import AsyncDisplayKit + +import LegacyComponents + +private final class PeopleNearbyIconWavesNodeParams: NSObject { + let color: UIColor + let progress: CGFloat + + init(color: UIColor, progress: CGFloat) { + self.color = color + self.progress = progress + + super.init() + } +} + +private func degToRad(_ degrees: CGFloat) -> CGFloat { + return degrees * CGFloat.pi / 180.0 +} + +final class PeopleNearbyIconWavesNode: ASDisplayNode { + var color: UIColor { + didSet { + self.setNeedsDisplay() + } + } + + private var effectiveProgress: CGFloat = 0.0 { + didSet { + self.setNeedsDisplay() + } + } + + init(color: UIColor) { + self.color = color + + super.init() + + self.isLayerBacked = true + self.isOpaque = false + } + + override func willEnterHierarchy() { + super.willEnterHierarchy() + + self.pop_removeAnimation(forKey: "indefiniteProgress") + + let animation = POPBasicAnimation() + animation.property = (POPAnimatableProperty.property(withName: "progress", initializer: { property in + property?.readBlock = { node, values in + values?.pointee = (node as! PeopleNearbyIconWavesNode).effectiveProgress + } + property?.writeBlock = { node, values in + (node as! PeopleNearbyIconWavesNode).effectiveProgress = values!.pointee + } + property?.threshold = 0.01 + }) as! POPAnimatableProperty) + animation.fromValue = CGFloat(0.0) as NSNumber + animation.toValue = CGFloat(1.0) as NSNumber + animation.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionLinear) + animation.duration = 3.5 + animation.repeatForever = true + self.pop_add(animation, forKey: "indefiniteProgress") + } + + override func didExitHierarchy() { + super.didExitHierarchy() + + self.pop_removeAnimation(forKey: "indefiniteProgress") + } + + override func drawParameters(forAsyncLayer layer: _ASDisplayLayer) -> NSObjectProtocol? { + let t = CACurrentMediaTime() + let value: CGFloat = CGFloat(t.truncatingRemainder(dividingBy: 2.0)) / 2.0 + return PeopleNearbyIconWavesNodeParams(color: self.color, progress: value) + } + + @objc override class func draw(_ bounds: CGRect, withParameters parameters: Any?, isCancelled: () -> Bool, isRasterizing: Bool) { + let context = UIGraphicsGetCurrentContext()! + + if !isRasterizing { + context.setBlendMode(.copy) + context.setFillColor(UIColor.clear.cgColor) + context.fill(bounds) + } + + if let parameters = parameters as? PeopleNearbyIconWavesNodeParams { + let center = CGPoint(x: bounds.width / 2.0, y: bounds.height / 2.0) + let radius: CGFloat = bounds.width * 0.3333 + let range: CGFloat = (bounds.width - radius * 2.0) / 2.0 + + context.setFillColor(parameters.color.cgColor) + + let draw: (CGContext, CGFloat) -> Void = { context, pos in + let path = CGMutablePath() + + let pathRadius: CGFloat = bounds.width * 0.3333 + range * pos + path.addEllipse(in: CGRect(x: center.x - pathRadius, y: center.y - pathRadius, width: pathRadius * 2.0, height: pathRadius * 2.0)) + + let strokedPath = path.copy(strokingWithWidth: 1.0, lineCap: .round, lineJoin: .miter, miterLimit: 10.0) + context.addPath(strokedPath) + context.fillPath() + } + + let position = parameters.progress + var alpha = position / 0.5 + if alpha > 1.0 { + alpha = 2.0 - alpha + } + context.setAlpha(alpha * 0.7) + + draw(context, position) + + var progress = parameters.progress + 0.3333 + if progress > 1.0 { + progress = progress - 1.0 + } + + var largerPos = progress + var largerAlpha = largerPos / 0.5 + if largerAlpha > 1.0 { + largerAlpha = 2.0 - largerAlpha + } + context.setAlpha(largerAlpha * 0.7) + + draw(context, largerPos) + + progress = parameters.progress + 0.6666 + if progress > 1.0 { + progress = progress - 1.0 + } + + largerPos = progress + largerAlpha = largerPos / 0.5 + if largerAlpha > 1.0 { + largerAlpha = 2.0 - largerAlpha + } + context.setAlpha(largerAlpha * 0.7) + + draw(context, largerPos) + } + } +} + +private func generateIcon(size: CGSize, color: UIColor, contentColor: UIColor) -> UIImage { + return generateImage(size, rotatedContext: { size, context in + let bounds = CGRect(origin: CGPoint(), size: size) + context.clear(bounds) + + context.setFillColor(color.cgColor) + context.fillEllipse(in: bounds) + + context.translateBy(x: size.width / 2.0, y: size.height / 2.0) + context.scaleBy(x: size.width / 120.0, y: size.height / 120.0) + context.translateBy(x: -size.width / 2.0, y: -size.height / 2.0) + context.translateBy(x: 0.0, y: 6.0) + context.setFillColor(contentColor.cgColor) + let _ = try? drawSvgPath(context, path: "M27.8628211,52.2347452 L27.8628211,27.1373017 L2.76505663,27.1373017 C1.55217431,27.1373017 0.568938916,26.1540663 0.568938916,24.941184 C0.568938916,24.0832172 1.06857435,23.3038117 1.84819149,22.9456161 L51.2643819,0.241311309 C52.586928,-0.366333451 54.1516568,0.213208572 54.7593016,1.53575465 C55.0801868,2.23416513 55.080181,3.03785964 54.7592857,3.7362655 L32.0544935,53.1516391 C31.548107,54.2537536 30.2441593,54.7366865 29.1420449,54.2302999 C28.3624433,53.8720978 27.8628211,53.0927006 27.8628211,52.2347452 Z ") + })! +} + +final class PeopleNearbyIconNode: ASDisplayNode { + private var theme: PresentationTheme + + private var iconNode: ASImageNode + private var wavesNode: PeopleNearbyIconWavesNode + + init(theme: PresentationTheme) { + self.theme = theme + + self.iconNode = ASImageNode() + self.iconNode.isOpaque = false + self.wavesNode = PeopleNearbyIconWavesNode(color: theme.list.itemAccentColor) + + super.init() + + self.addSubnode(self.iconNode) + self.addSubnode(self.wavesNode) + } + + func updateTheme(_ theme: PresentationTheme) { + guard self.theme !== theme else { + return + } + self.theme = theme + + self.iconNode.image = generateIcon(size: self.bounds.size, color: self.theme.list.itemAccentColor, contentColor: self.theme.list.itemCheckColors.foregroundColor) + self.wavesNode.color = theme.list.itemAccentColor + } + + override func layout() { + super.layout() + + if let image = self.iconNode.image, image.size.width == self.bounds.width { + } else { + self.iconNode.image = generateIcon(size: self.bounds.size, color: self.theme.list.itemAccentColor, contentColor: self.theme.list.itemCheckColors.foregroundColor) + } + self.iconNode.frame = self.bounds + self.wavesNode.frame = self.bounds.insetBy(dx: -self.bounds.width * 0.3, dy: -self.bounds.height * 0.3) + } +} diff --git a/TelegramUI/PresentationStrings.swift b/TelegramUI/PresentationStrings.swift index 70de562a9f..84ae3adcfd 100644 --- a/TelegramUI/PresentationStrings.swift +++ b/TelegramUI/PresentationStrings.swift @@ -413,3459 +413,3492 @@ public final class PresentationStrings { public var Passport_Phone_Help: String { return self._s[212]! } public var Passport_Language_az: String { return self._s[214]! } public var CreatePoll_TextPlaceholder: String { return self._s[216]! } - public var Passport_Identity_DocumentNumber: String { return self._s[217]! } - public var PhotoEditor_CurvesRed: String { return self._s[218]! } - public var PhoneNumberHelp_Alert: String { return self._s[220]! } - public var SocksProxySetup_Port: String { return self._s[221]! } - public var Checkout_PayNone: String { return self._s[222]! } - public var AutoDownloadSettings_WiFi: String { return self._s[223]! } - public var GroupInfo_GroupType: String { return self._s[224]! } - public var StickerSettings_ContextHide: String { return self._s[225]! } - public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[226]! } - public var Group_Setup_HistoryTitle: String { return self._s[228]! } - public var Passport_Identity_FilesUploadNew: String { return self._s[229]! } - public var PasscodeSettings_AutoLock: String { return self._s[230]! } - public var Passport_Title: String { return self._s[231]! } - public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[232]! } - public var GroupPermission_NoSendGifs: String { return self._s[233]! } - public var PrivacySettings_PasscodeOn: String { return self._s[234]! } - public var State_WaitingForNetwork: String { return self._s[236]! } + public var PeopleNearby_Channels: String { return self._s[217]! } + public var Passport_Identity_DocumentNumber: String { return self._s[218]! } + public var PhotoEditor_CurvesRed: String { return self._s[219]! } + public var PhoneNumberHelp_Alert: String { return self._s[221]! } + public var SocksProxySetup_Port: String { return self._s[222]! } + public var Checkout_PayNone: String { return self._s[223]! } + public var AutoDownloadSettings_WiFi: String { return self._s[224]! } + public var GroupInfo_GroupType: String { return self._s[225]! } + public var StickerSettings_ContextHide: String { return self._s[226]! } + public var Passport_Address_OneOfTypeTemporaryRegistration: String { return self._s[227]! } + public var Group_Setup_HistoryTitle: String { return self._s[229]! } + public var Passport_Identity_FilesUploadNew: String { return self._s[230]! } + public var PasscodeSettings_AutoLock: String { return self._s[231]! } + public var Passport_Title: String { return self._s[232]! } + public var Channel_AdminLogFilter_EventsNewSubscribers: String { return self._s[233]! } + public var GroupPermission_NoSendGifs: String { return self._s[234]! } + public var PrivacySettings_PasscodeOn: String { return self._s[235]! } + public var State_WaitingForNetwork: String { return self._s[237]! } public func Notification_Invited(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[237]!, self._r[237]!, [_0, _1]) + return formatWithArgumentRanges(self._s[238]!, self._r[238]!, [_0, _1]) } - public var Calls_NotNow: String { return self._s[239]! } + public var Calls_NotNow: String { return self._s[240]! } public func Channel_DiscussionGroup_HeaderSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[240]!, self._r[240]!, [_0]) + return formatWithArgumentRanges(self._s[241]!, self._r[241]!, [_0]) } - public var UserInfo_SendMessage: String { return self._s[241]! } - public var TwoStepAuth_PasswordSet: String { return self._s[242]! } - public var Passport_DeleteDocument: String { return self._s[243]! } - public var SocksProxySetup_AddProxyTitle: String { return self._s[244]! } + public var UserInfo_SendMessage: String { return self._s[242]! } + public var TwoStepAuth_PasswordSet: String { return self._s[243]! } + public var Passport_DeleteDocument: String { return self._s[244]! } + public var SocksProxySetup_AddProxyTitle: String { return self._s[245]! } public func PUSH_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[245]!, self._r[245]!, [_1]) + return formatWithArgumentRanges(self._s[246]!, self._r[246]!, [_1]) } - public var GroupRemoved_Remove: String { return self._s[246]! } - public var Passport_FieldIdentity: String { return self._s[247]! } - public var Group_Setup_TypePrivateHelp: String { return self._s[248]! } - public var Conversation_Processing: String { return self._s[250]! } - public var ChatSettings_AutoPlayAnimations: String { return self._s[252]! } - public var AuthSessions_LogOutApplicationsHelp: String { return self._s[255]! } - public var Month_GenFebruary: String { return self._s[256]! } + public var GroupRemoved_Remove: String { return self._s[247]! } + public var Passport_FieldIdentity: String { return self._s[248]! } + public var Group_Setup_TypePrivateHelp: String { return self._s[249]! } + public var Conversation_Processing: String { return self._s[251]! } + public var ChatSettings_AutoPlayAnimations: String { return self._s[253]! } + public var AuthSessions_LogOutApplicationsHelp: String { return self._s[256]! } + public var Month_GenFebruary: String { return self._s[257]! } public func Login_InvalidPhoneEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[258]!, self._r[258]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[259]!, self._r[259]!, [_1, _2, _3, _4, _5]) } - public var Passport_Identity_TypeIdentityCard: String { return self._s[259]! } - public var AutoDownloadSettings_DataUsageMedium: String { return self._s[261]! } - public var GroupInfo_AddParticipant: String { return self._s[262]! } - public var KeyCommand_SendMessage: String { return self._s[263]! } - public var Map_LiveLocationShowAll: String { return self._s[265]! } - public var WallpaperSearch_ColorOrange: String { return self._s[267]! } - public var Appearance_AppIconDefaultX: String { return self._s[268]! } - public var Checkout_Receipt_Title: String { return self._s[269]! } - public var WallpaperPreview_PreviewTopText: String { return self._s[270]! } - public var Message_Contact: String { return self._s[271]! } - public var Call_StatusIncoming: String { return self._s[272]! } + public var Passport_Identity_TypeIdentityCard: String { return self._s[260]! } + public var AutoDownloadSettings_DataUsageMedium: String { return self._s[262]! } + public var GroupInfo_AddParticipant: String { return self._s[263]! } + public var KeyCommand_SendMessage: String { return self._s[264]! } + public var Map_LiveLocationShowAll: String { return self._s[266]! } + public var WallpaperSearch_ColorOrange: String { return self._s[268]! } + public var Appearance_AppIconDefaultX: String { return self._s[269]! } + public var Checkout_Receipt_Title: String { return self._s[270]! } + public var WallpaperPreview_PreviewTopText: String { return self._s[271]! } + public var Message_Contact: String { return self._s[272]! } + public var Call_StatusIncoming: String { return self._s[273]! } public func Channel_AdminLog_MessageKickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[273]!, self._r[273]!, [_1]) + return formatWithArgumentRanges(self._s[274]!, self._r[274]!, [_1]) } public func PUSH_ENCRYPTED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[275]!, self._r[275]!, [_1]) + return formatWithArgumentRanges(self._s[276]!, self._r[276]!, [_1]) } - public var Passport_FieldIdentityDetailsHelp: String { return self._s[276]! } - public var Conversation_ViewChannel: String { return self._s[277]! } + public var Passport_FieldIdentityDetailsHelp: String { return self._s[277]! } + public var Conversation_ViewChannel: String { return self._s[278]! } public func Time_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[278]!, self._r[278]!, [_0]) + return formatWithArgumentRanges(self._s[279]!, self._r[279]!, [_0]) } - public var Passport_Language_nl: String { return self._s[280]! } - public var Camera_Retake: String { return self._s[281]! } + public var Passport_Language_nl: String { return self._s[281]! } + public var Camera_Retake: String { return self._s[282]! } public func UserInfo_BlockActionTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[282]!, self._r[282]!, [_0]) + return formatWithArgumentRanges(self._s[283]!, self._r[283]!, [_0]) } - public var AuthSessions_LogOutApplications: String { return self._s[283]! } - public var ApplyLanguage_ApplySuccess: String { return self._s[284]! } - public var Tour_Title6: String { return self._s[285]! } - public var Map_ChooseAPlace: String { return self._s[286]! } - public var CallSettings_Never: String { return self._s[288]! } + public var AuthSessions_LogOutApplications: String { return self._s[284]! } + public var ApplyLanguage_ApplySuccess: String { return self._s[285]! } + public var Tour_Title6: String { return self._s[286]! } + public var Map_ChooseAPlace: String { return self._s[287]! } + public var CallSettings_Never: String { return self._s[289]! } public func Notification_ChangedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[289]!, self._r[289]!, [_0]) + return formatWithArgumentRanges(self._s[290]!, self._r[290]!, [_0]) } - public var ChannelRemoved_RemoveInfo: String { return self._s[290]! } + public var ChannelRemoved_RemoveInfo: String { return self._s[291]! } public func AutoDownloadSettings_PreloadVideoInfo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[291]!, self._r[291]!, [_0]) + return formatWithArgumentRanges(self._s[292]!, self._r[292]!, [_0]) } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[292]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsExceptions: String { return self._s[293]! } public func Conversation_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[293]!, self._r[293]!, [_0]) + return formatWithArgumentRanges(self._s[294]!, self._r[294]!, [_0]) } - public var GroupInfo_InviteLink_Title: String { return self._s[294]! } + public var GroupInfo_InviteLink_Title: String { return self._s[295]! } public func Channel_AdminLog_MessageUnkickedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[295]!, self._r[295]!, [_1, _2]) + return formatWithArgumentRanges(self._s[296]!, self._r[296]!, [_1, _2]) } - public var KeyCommand_ScrollUp: String { return self._s[296]! } - public var ContactInfo_URLLabelHomepage: String { return self._s[297]! } + public var KeyCommand_ScrollUp: String { return self._s[297]! } + public var ContactInfo_URLLabelHomepage: String { return self._s[298]! } + public var Channel_OwnershipTransfer_ChangeOwner: String { return self._s[299]! } public func Conversation_EncryptedPlaceholderTitleOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[298]!, self._r[298]!, [_0]) + return formatWithArgumentRanges(self._s[300]!, self._r[300]!, [_0]) } - public var CallFeedback_ReasonDistortedSpeech: String { return self._s[299]! } - public var Watch_LastSeen_WithinAWeek: String { return self._s[300]! } - public var Weekday_Tuesday: String { return self._s[302]! } - public var UserInfo_StartSecretChat: String { return self._s[304]! } - public var Passport_Identity_FilesTitle: String { return self._s[305]! } - public var Permissions_NotificationsAllow_v0: String { return self._s[306]! } - public var DialogList_DeleteConversationConfirmation: String { return self._s[308]! } - public var ChatList_UndoArchiveRevealedTitle: String { return self._s[309]! } - public var AuthSessions_Sessions: String { return self._s[310]! } + public var CallFeedback_ReasonDistortedSpeech: String { return self._s[301]! } + public var Watch_LastSeen_WithinAWeek: String { return self._s[302]! } + public var Weekday_Tuesday: String { return self._s[304]! } + public var UserInfo_StartSecretChat: String { return self._s[306]! } + public var Passport_Identity_FilesTitle: String { return self._s[307]! } + public var Permissions_NotificationsAllow_v0: String { return self._s[308]! } + public var DialogList_DeleteConversationConfirmation: String { return self._s[310]! } + public var ChatList_UndoArchiveRevealedTitle: String { return self._s[311]! } + public var AuthSessions_Sessions: String { return self._s[312]! } public func Settings_KeepPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[312]!, self._r[312]!, [_0]) + return formatWithArgumentRanges(self._s[314]!, self._r[314]!, [_0]) } - public var TwoStepAuth_RecoveryEmailChangeDescription: String { return self._s[313]! } - public var Call_StatusWaiting: String { return self._s[314]! } - public var CreateGroup_SoftUserLimitAlert: String { return self._s[315]! } - public var FastTwoStepSetup_HintHelp: String { return self._s[316]! } - public var WallpaperPreview_CustomColorBottomText: String { return self._s[317]! } - public var LogoutOptions_AddAccountText: String { return self._s[318]! } - public var PasscodeSettings_6DigitCode: String { return self._s[319]! } - public var Settings_LogoutConfirmationText: String { return self._s[320]! } - public var Passport_Identity_TypePassport: String { return self._s[322]! } + public var TwoStepAuth_RecoveryEmailChangeDescription: String { return self._s[315]! } + public var Call_StatusWaiting: String { return self._s[316]! } + public var CreateGroup_SoftUserLimitAlert: String { return self._s[317]! } + public var FastTwoStepSetup_HintHelp: String { return self._s[318]! } + public var WallpaperPreview_CustomColorBottomText: String { return self._s[319]! } + public var LogoutOptions_AddAccountText: String { return self._s[320]! } + public var PasscodeSettings_6DigitCode: String { return self._s[321]! } + public var Settings_LogoutConfirmationText: String { return self._s[322]! } + public var Passport_Identity_TypePassport: String { return self._s[324]! } public func PUSH_MESSAGE_VIDEOS(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[325]!, self._r[325]!, [_1, _2]) + return formatWithArgumentRanges(self._s[327]!, self._r[327]!, [_1, _2]) } - public var SocksProxySetup_SaveProxy: String { return self._s[326]! } - public var AccessDenied_SaveMedia: String { return self._s[327]! } - public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[329]! } - public var Settings_Title: String { return self._s[331]! } - public var Contacts_InviteSearchLabel: String { return self._s[333]! } - public var ConvertToSupergroup_Title: String { return self._s[334]! } + public var SocksProxySetup_SaveProxy: String { return self._s[328]! } + public var AccessDenied_SaveMedia: String { return self._s[329]! } + public var Checkout_ErrorInvoiceAlreadyPaid: String { return self._s[331]! } + public var Settings_Title: String { return self._s[333]! } + public var Contacts_InviteSearchLabel: String { return self._s[335]! } + public var ConvertToSupergroup_Title: String { return self._s[336]! } public func Channel_AdminLog_CaptionEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[335]!, self._r[335]!, [_0]) + return formatWithArgumentRanges(self._s[337]!, self._r[337]!, [_0]) } - public var InfoPlist_NSSiriUsageDescription: String { return self._s[336]! } + public var InfoPlist_NSSiriUsageDescription: String { return self._s[338]! } public func PUSH_MESSAGE_CHANNEL_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[337]!, self._r[337]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[339]!, self._r[339]!, [_1, _2, _3]) } - public var ChatSettings_AutomaticPhotoDownload: String { return self._s[338]! } - public var UserInfo_BotHelp: String { return self._s[339]! } - public var PrivacySettings_LastSeenEverybody: String { return self._s[340]! } - public var Checkout_Name: String { return self._s[341]! } - public var AutoDownloadSettings_DataUsage: String { return self._s[342]! } - public var Channel_BanUser_BlockFor: String { return self._s[343]! } - public var Checkout_ShippingAddress: String { return self._s[344]! } - public var AutoDownloadSettings_MaxVideoSize: String { return self._s[345]! } - public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[346]! } - public var Privacy_Forwards: String { return self._s[347]! } - public var Channel_BanUser_PermissionSendPolls: String { return self._s[348]! } + public var ChatSettings_AutomaticPhotoDownload: String { return self._s[340]! } + public var UserInfo_BotHelp: String { return self._s[341]! } + public var PrivacySettings_LastSeenEverybody: String { return self._s[342]! } + public var Checkout_Name: String { return self._s[343]! } + public var AutoDownloadSettings_DataUsage: String { return self._s[344]! } + public var Channel_BanUser_BlockFor: String { return self._s[345]! } + public var Checkout_ShippingAddress: String { return self._s[346]! } + public var AutoDownloadSettings_MaxVideoSize: String { return self._s[347]! } + public var Privacy_PaymentsClearInfoDoneHelp: String { return self._s[348]! } + public var Privacy_Forwards: String { return self._s[349]! } + public var Channel_BanUser_PermissionSendPolls: String { return self._s[350]! } public func SecretVideo_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[351]!, self._r[351]!, [_0]) + return formatWithArgumentRanges(self._s[353]!, self._r[353]!, [_0]) } - public var Contacts_SortedByName: String { return self._s[352]! } - public var Group_LeaveGroup: String { return self._s[353]! } - public var Settings_UsernameEmpty: String { return self._s[354]! } + public var Contacts_SortedByName: String { return self._s[354]! } + public var Group_OwnershipTransfer_Title: String { return self._s[355]! } + public var Group_LeaveGroup: String { return self._s[356]! } + public var Settings_UsernameEmpty: String { return self._s[357]! } public func Notification_PinnedPollMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[355]!, self._r[355]!, [_0]) + return formatWithArgumentRanges(self._s[358]!, self._r[358]!, [_0]) } public func TwoStepAuth_ConfirmEmailDescription(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[356]!, self._r[356]!, [_1]) + return formatWithArgumentRanges(self._s[359]!, self._r[359]!, [_1]) } - public var Message_ImageExpired: String { return self._s[357]! } - public var TwoStepAuth_RecoveryFailed: String { return self._s[359]! } - public var UserInfo_AddToExisting: String { return self._s[360]! } - public var TwoStepAuth_EnabledSuccess: String { return self._s[361]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[362]! } + public func Channel_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[360]!, self._r[360]!, [_1, _2]) + } + public var Message_ImageExpired: String { return self._s[361]! } + public var TwoStepAuth_RecoveryFailed: String { return self._s[363]! } + public var UserInfo_AddToExisting: String { return self._s[364]! } + public var TwoStepAuth_EnabledSuccess: String { return self._s[365]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_SetColor: String { return self._s[366]! } public func PUSH_CHANNEL_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[363]!, self._r[363]!, [_1]) + return formatWithArgumentRanges(self._s[367]!, self._r[367]!, [_1]) } - public var Notifications_GroupNotificationsAlert: String { return self._s[364]! } - public var Passport_Language_km: String { return self._s[365]! } - public var SocksProxySetup_AdNoticeHelp: String { return self._s[367]! } - public var Notification_CallMissedShort: String { return self._s[368]! } - public var ReportPeer_ReasonOther_Send: String { return self._s[369]! } - public var Watch_Compose_Send: String { return self._s[370]! } - public var Passport_Identity_TypeInternalPassportUploadScan: String { return self._s[373]! } - public var Conversation_HoldForVideo: String { return self._s[374]! } - public var CheckoutInfo_ErrorCityInvalid: String { return self._s[376]! } - public var Appearance_AutoNightThemeDisabled: String { return self._s[378]! } - public var Channel_LinkItem: String { return self._s[379]! } + public var Notifications_GroupNotificationsAlert: String { return self._s[368]! } + public var Passport_Language_km: String { return self._s[369]! } + public var SocksProxySetup_AdNoticeHelp: String { return self._s[371]! } + public var Notification_CallMissedShort: String { return self._s[372]! } + public var ReportPeer_ReasonOther_Send: String { return self._s[373]! } + public var Watch_Compose_Send: String { return self._s[374]! } + public var Passport_Identity_TypeInternalPassportUploadScan: String { return self._s[377]! } + public var Conversation_HoldForVideo: String { return self._s[378]! } + public var CheckoutInfo_ErrorCityInvalid: String { return self._s[380]! } + public var Appearance_AutoNightThemeDisabled: String { return self._s[382]! } + public var Channel_LinkItem: String { return self._s[383]! } public func PrivacySettings_LastSeenContactsMinusPlus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[380]!, self._r[380]!, [_0, _1]) + return formatWithArgumentRanges(self._s[384]!, self._r[384]!, [_0, _1]) } public func Passport_Identity_NativeNameTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[383]!, self._r[383]!, [_0]) + return formatWithArgumentRanges(self._s[387]!, self._r[387]!, [_0]) } - public var Passport_Language_dv: String { return self._s[384]! } - public var Undo_LeftChannel: String { return self._s[385]! } - public var Notifications_ExceptionsMuted: String { return self._s[386]! } - public var ChatList_UnhideAction: String { return self._s[387]! } - public var Conversation_ContextMenuShare: String { return self._s[388]! } - public var Conversation_ContextMenuStickerPackInfo: String { return self._s[389]! } - public var ShareFileTip_Title: String { return self._s[390]! } - public var NotificationsSound_Chord: String { return self._s[391]! } + public var Passport_Language_dv: String { return self._s[388]! } + public var Undo_LeftChannel: String { return self._s[389]! } + public var Notifications_ExceptionsMuted: String { return self._s[390]! } + public var ChatList_UnhideAction: String { return self._s[391]! } + public var Conversation_ContextMenuShare: String { return self._s[392]! } + public var Conversation_ContextMenuStickerPackInfo: String { return self._s[393]! } + public var ShareFileTip_Title: String { return self._s[394]! } + public var NotificationsSound_Chord: String { return self._s[395]! } public func PUSH_CHAT_RETURNED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[392]!, self._r[392]!, [_1, _2]) + return formatWithArgumentRanges(self._s[396]!, self._r[396]!, [_1, _2]) } - public var Passport_Address_EditTemporaryRegistration: String { return self._s[393]! } + public var Passport_Address_EditTemporaryRegistration: String { return self._s[397]! } public func Notification_Joined(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[394]!, self._r[394]!, [_0]) + return formatWithArgumentRanges(self._s[398]!, self._r[398]!, [_0]) } - public var Notification_CallOutgoingShort: String { return self._s[396]! } + public var Notification_CallOutgoingShort: String { return self._s[400]! } public func Watch_Time_ShortFullAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[397]!, self._r[397]!, [_1, _2]) + return formatWithArgumentRanges(self._s[401]!, self._r[401]!, [_1, _2]) } - public var Passport_Address_TypeUtilityBill: String { return self._s[398]! } - public var Privacy_Forwards_LinkIfAllowed: String { return self._s[399]! } - public var ReportPeer_Report: String { return self._s[400]! } - public var SettingsSearch_Synonyms_Proxy_Title: String { return self._s[401]! } - public var GroupInfo_DeactivatedStatus: String { return self._s[402]! } - public var StickerPack_Send: String { return self._s[403]! } - public var Login_CodeSentInternal: String { return self._s[404]! } - public var GroupInfo_InviteLink_LinkSection: String { return self._s[405]! } + public var Passport_Address_TypeUtilityBill: String { return self._s[402]! } + public var Privacy_Forwards_LinkIfAllowed: String { return self._s[403]! } + public var ReportPeer_Report: String { return self._s[404]! } + public var SettingsSearch_Synonyms_Proxy_Title: String { return self._s[405]! } + public var GroupInfo_DeactivatedStatus: String { return self._s[406]! } + public var StickerPack_Send: String { return self._s[407]! } + public var Login_CodeSentInternal: String { return self._s[408]! } + public var GroupInfo_InviteLink_LinkSection: String { return self._s[409]! } public func Channel_AdminLog_MessageDeleted(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[406]!, self._r[406]!, [_0]) + return formatWithArgumentRanges(self._s[410]!, self._r[410]!, [_0]) } public func Conversation_EncryptionWaiting(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[408]!, self._r[408]!, [_0]) + return formatWithArgumentRanges(self._s[412]!, self._r[412]!, [_0]) } - public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[409]! } + public var Channel_BanUser_PermissionSendStickersAndGifs: String { return self._s[413]! } public func PUSH_PINNED_GAME(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[410]!, self._r[410]!, [_1]) + return formatWithArgumentRanges(self._s[414]!, self._r[414]!, [_1]) } - public var ReportPeer_ReasonViolence: String { return self._s[412]! } - public var Map_Locating: String { return self._s[413]! } - public var AutoDownloadSettings_GroupChats: String { return self._s[415]! } - public var CheckoutInfo_SaveInfo: String { return self._s[416]! } - public var SharedMedia_EmptyLinksText: String { return self._s[418]! } - public var Passport_Address_CityPlaceholder: String { return self._s[419]! } - public var CheckoutInfo_ErrorStateInvalid: String { return self._s[420]! } - public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[421]! } - public var Channel_AdminLog_CanAddAdmins: String { return self._s[423]! } + public var ReportPeer_ReasonViolence: String { return self._s[416]! } + public var Map_Locating: String { return self._s[417]! } + public var AutoDownloadSettings_GroupChats: String { return self._s[419]! } + public var CheckoutInfo_SaveInfo: String { return self._s[420]! } + public var SharedMedia_EmptyLinksText: String { return self._s[422]! } + public var Passport_Address_CityPlaceholder: String { return self._s[423]! } + public var CheckoutInfo_ErrorStateInvalid: String { return self._s[424]! } + public var Privacy_ProfilePhoto_CustomHelp: String { return self._s[425]! } + public var Channel_AdminLog_CanAddAdmins: String { return self._s[427]! } public func PUSH_CHANNEL_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[424]!, self._r[424]!, [_1]) + return formatWithArgumentRanges(self._s[428]!, self._r[428]!, [_1]) } public func Time_MonthOfYear_m8(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[425]!, self._r[425]!, [_0]) - } - public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[426]! } - public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[427]! } - public var ChangePhoneNumberCode_Code: String { return self._s[428]! } - public func UserInfo_NotificationsDefaultSound(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[429]!, self._r[429]!, [_0]) } - public var TwoStepAuth_SetupEmail: String { return self._s[430]! } - public var HashtagSearch_AllChats: String { return self._s[431]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[433]! } + public var InfoPlist_NSLocationWhenInUseUsageDescription: String { return self._s[430]! } + public var GroupInfo_InviteLink_RevokeAlert_Success: String { return self._s[431]! } + public var ChangePhoneNumberCode_Code: String { return self._s[432]! } + public func UserInfo_NotificationsDefaultSound(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[433]!, self._r[433]!, [_0]) + } + public var TwoStepAuth_SetupEmail: String { return self._s[434]! } + public var HashtagSearch_AllChats: String { return self._s[435]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingCellular: String { return self._s[437]! } public func ChatList_DeleteForEveryone(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[434]!, self._r[434]!, [_0]) + return formatWithArgumentRanges(self._s[438]!, self._r[438]!, [_0]) } - public var PhotoEditor_QualityHigh: String { return self._s[436]! } + public var PhotoEditor_QualityHigh: String { return self._s[440]! } public func Passport_Phone_UseTelegramNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[437]!, self._r[437]!, [_0]) + return formatWithArgumentRanges(self._s[441]!, self._r[441]!, [_0]) } - public var ApplyLanguage_ApplyLanguageAction: String { return self._s[438]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[439]! } - public var Message_LiveLocation: String { return self._s[440]! } - public var Cache_LowDiskSpaceText: String { return self._s[441]! } - public var Conversation_SendMessage: String { return self._s[442]! } - public var AuthSessions_EmptyTitle: String { return self._s[443]! } - public var Privacy_PhoneNumber: String { return self._s[444]! } - public var CallSettings_UseLessData: String { return self._s[445]! } - public var NetworkUsageSettings_MediaDocumentDataSection: String { return self._s[446]! } - public var Stickers_AddToFavorites: String { return self._s[447]! } - public var PhotoEditor_QualityLow: String { return self._s[448]! } - public var Watch_UserInfo_Unblock: String { return self._s[449]! } - public var Settings_Logout: String { return self._s[450]! } + public var ApplyLanguage_ApplyLanguageAction: String { return self._s[442]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsPreview: String { return self._s[443]! } + public var Message_LiveLocation: String { return self._s[444]! } + public var Cache_LowDiskSpaceText: String { return self._s[445]! } + public var Conversation_SendMessage: String { return self._s[446]! } + public var AuthSessions_EmptyTitle: String { return self._s[447]! } + public var Privacy_PhoneNumber: String { return self._s[448]! } + public var PeopleNearby_CreateGroup: String { return self._s[449]! } + public var CallSettings_UseLessData: String { return self._s[450]! } + public var NetworkUsageSettings_MediaDocumentDataSection: String { return self._s[451]! } + public var Stickers_AddToFavorites: String { return self._s[452]! } + public var PhotoEditor_QualityLow: String { return self._s[453]! } + public var Watch_UserInfo_Unblock: String { return self._s[454]! } + public var Settings_Logout: String { return self._s[455]! } public func PUSH_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[451]!, self._r[451]!, [_1]) + return formatWithArgumentRanges(self._s[456]!, self._r[456]!, [_1]) } - public var ContactInfo_PhoneLabelWork: String { return self._s[452]! } - public var ChannelInfo_Stats: String { return self._s[453]! } - public var TextFormat_Link: String { return self._s[454]! } + public var ContactInfo_PhoneLabelWork: String { return self._s[457]! } + public var ChannelInfo_Stats: String { return self._s[458]! } + public var TextFormat_Link: String { return self._s[459]! } public func Date_ChatDateHeader(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[455]!, self._r[455]!, [_1, _2]) + return formatWithArgumentRanges(self._s[460]!, self._r[460]!, [_1, _2]) } public func Message_ForwardedMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[456]!, self._r[456]!, [_0]) + return formatWithArgumentRanges(self._s[461]!, self._r[461]!, [_0]) } - public var Watch_Notification_Joined: String { return self._s[457]! } - public var Group_Setup_TypePublicHelp: String { return self._s[458]! } - public var Passport_Scans_UploadNew: String { return self._s[459]! } - public var Checkout_LiabilityAlertTitle: String { return self._s[460]! } - public var DialogList_Title: String { return self._s[463]! } - public var NotificationSettings_ContactJoined: String { return self._s[464]! } - public var GroupInfo_LabelAdmin: String { return self._s[465]! } - public var KeyCommand_ChatInfo: String { return self._s[466]! } - public var Conversation_EditingCaptionPanelTitle: String { return self._s[467]! } - public var Call_ReportIncludeLog: String { return self._s[468]! } + public var Watch_Notification_Joined: String { return self._s[462]! } + public var Group_Setup_TypePublicHelp: String { return self._s[463]! } + public var Passport_Scans_UploadNew: String { return self._s[464]! } + public var Checkout_LiabilityAlertTitle: String { return self._s[465]! } + public var DialogList_Title: String { return self._s[468]! } + public var NotificationSettings_ContactJoined: String { return self._s[469]! } + public var GroupInfo_LabelAdmin: String { return self._s[470]! } + public var KeyCommand_ChatInfo: String { return self._s[471]! } + public var Conversation_EditingCaptionPanelTitle: String { return self._s[472]! } + public var Call_ReportIncludeLog: String { return self._s[473]! } public func Notifications_ExceptionsChangeSound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[471]!, self._r[471]!, [_0]) + return formatWithArgumentRanges(self._s[476]!, self._r[476]!, [_0]) } - public var ChatAdmins_AllMembersAreAdmins: String { return self._s[472]! } - public var Conversation_DefaultRestrictedInline: String { return self._s[473]! } - public var Message_Sticker: String { return self._s[474]! } - public var LastSeen_JustNow: String { return self._s[476]! } - public var Passport_Email_EmailPlaceholder: String { return self._s[478]! } - public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[479]! } - public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[480]! } - public var Channel_EditAdmin_PermissionsHeader: String { return self._s[481]! } - public var TwoStepAuth_Email: String { return self._s[482]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsSound: String { return self._s[483]! } - public var PhotoEditor_BlurToolOff: String { return self._s[484]! } - public var Message_PinnedStickerMessage: String { return self._s[485]! } - public var ContactInfo_PhoneLabelPager: String { return self._s[486]! } - public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[487]! } - public var Passport_DiscardMessageTitle: String { return self._s[488]! } - public var Privacy_PaymentsTitle: String { return self._s[489]! } - public var Channel_DiscussionGroup_Header: String { return self._s[491]! } - public var Appearance_ColorTheme: String { return self._s[492]! } - public var UserInfo_ShareContact: String { return self._s[493]! } - public var Passport_Address_TypePassportRegistration: String { return self._s[494]! } - public var Common_More: String { return self._s[495]! } - public var Watch_Message_Call: String { return self._s[496]! } - public var Profile_EncryptionKey: String { return self._s[499]! } - public var Privacy_TopPeers: String { return self._s[500]! } - public var Conversation_StopPollConfirmation: String { return self._s[501]! } - public var Privacy_TopPeersWarning: String { return self._s[503]! } - public var SettingsSearch_Synonyms_Data_DownloadInBackground: String { return self._s[504]! } - public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[505]! } - public var DialogList_SearchSectionMessages: String { return self._s[508]! } - public var Notifications_ChannelNotifications: String { return self._s[509]! } - public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[510]! } - public var Passport_Language_sk: String { return self._s[511]! } - public var Notification_MessageLifetime1h: String { return self._s[512]! } - public var Wallpaper_ResetWallpapersInfo: String { return self._s[513]! } - public var Call_ReportSkip: String { return self._s[515]! } - public var Cache_ServiceFiles: String { return self._s[516]! } - public var Group_ErrorAddTooMuchAdmins: String { return self._s[517]! } - public var Map_Hybrid: String { return self._s[518]! } - public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[520]! } - public var ChatSettings_AutoDownloadVideos: String { return self._s[522]! } - public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[523]! } - public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[524]! } - public var SocksProxySetup_ProxyTelegram: String { return self._s[527]! } + public var ChatAdmins_AllMembersAreAdmins: String { return self._s[477]! } + public var Conversation_DefaultRestrictedInline: String { return self._s[478]! } + public var Message_Sticker: String { return self._s[479]! } + public var LastSeen_JustNow: String { return self._s[481]! } + public var Passport_Email_EmailPlaceholder: String { return self._s[483]! } + public var SettingsSearch_Synonyms_AppLanguage: String { return self._s[484]! } + public var Channel_AdminLogFilter_EventsEditedMessages: String { return self._s[485]! } + public var Channel_EditAdmin_PermissionsHeader: String { return self._s[486]! } + public var TwoStepAuth_Email: String { return self._s[487]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsSound: String { return self._s[488]! } + public var PhotoEditor_BlurToolOff: String { return self._s[489]! } + public var Message_PinnedStickerMessage: String { return self._s[490]! } + public var ContactInfo_PhoneLabelPager: String { return self._s[491]! } + public var SettingsSearch_Synonyms_Appearance_TextSize: String { return self._s[492]! } + public var Passport_DiscardMessageTitle: String { return self._s[493]! } + public var Privacy_PaymentsTitle: String { return self._s[494]! } + public var Channel_DiscussionGroup_Header: String { return self._s[496]! } + public var Appearance_ColorTheme: String { return self._s[497]! } + public var UserInfo_ShareContact: String { return self._s[498]! } + public var Passport_Address_TypePassportRegistration: String { return self._s[499]! } + public var Common_More: String { return self._s[500]! } + public var Watch_Message_Call: String { return self._s[501]! } + public var Profile_EncryptionKey: String { return self._s[504]! } + public var Privacy_TopPeers: String { return self._s[505]! } + public var Conversation_StopPollConfirmation: String { return self._s[506]! } + public var Privacy_TopPeersWarning: String { return self._s[508]! } + public var SettingsSearch_Synonyms_Data_DownloadInBackground: String { return self._s[509]! } + public var SettingsSearch_Synonyms_Data_Storage_KeepMedia: String { return self._s[510]! } + public var DialogList_SearchSectionMessages: String { return self._s[513]! } + public var Notifications_ChannelNotifications: String { return self._s[514]! } + public var CheckoutInfo_ShippingInfoAddress1Placeholder: String { return self._s[515]! } + public var Passport_Language_sk: String { return self._s[516]! } + public var Notification_MessageLifetime1h: String { return self._s[517]! } + public var Wallpaper_ResetWallpapersInfo: String { return self._s[518]! } + public var Call_ReportSkip: String { return self._s[520]! } + public var Cache_ServiceFiles: String { return self._s[521]! } + public var Group_ErrorAddTooMuchAdmins: String { return self._s[522]! } + public var Map_Hybrid: String { return self._s[523]! } + public var Contacts_SearchUsersAndGroupsLabel: String { return self._s[525]! } + public var ChatSettings_AutoDownloadVideos: String { return self._s[527]! } + public var Channel_BanUser_PermissionEmbedLinks: String { return self._s[528]! } + public var InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription: String { return self._s[529]! } + public var SocksProxySetup_ProxyTelegram: String { return self._s[532]! } public func PUSH_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[528]!, self._r[528]!, [_1]) + return formatWithArgumentRanges(self._s[533]!, self._r[533]!, [_1]) } - public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[530]! } + public var Channel_Username_CreatePrivateLinkHelp: String { return self._s[535]! } public func PUSH_CHAT_TITLE_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[531]!, self._r[531]!, [_1, _2]) + return formatWithArgumentRanges(self._s[536]!, self._r[536]!, [_1, _2]) } - public var Conversation_LiveLocationYou: String { return self._s[532]! } - public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[533]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[534]! } - public var UserInfo_ShareBot: String { return self._s[537]! } + public var Conversation_LiveLocationYou: String { return self._s[537]! } + public var SettingsSearch_Synonyms_Privacy_Calls: String { return self._s[538]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsPreview: String { return self._s[539]! } + public var UserInfo_ShareBot: String { return self._s[542]! } public func PUSH_AUTH_REGION(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[538]!, self._r[538]!, [_1, _2]) + return formatWithArgumentRanges(self._s[543]!, self._r[543]!, [_1, _2]) } - public var PhotoEditor_ShadowsTint: String { return self._s[539]! } - public var Message_Audio: String { return self._s[540]! } - public var Passport_Language_lt: String { return self._s[541]! } + public var PhotoEditor_ShadowsTint: String { return self._s[544]! } + public var Message_Audio: String { return self._s[545]! } + public var Passport_Language_lt: String { return self._s[546]! } public func Message_PinnedTextMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[542]!, self._r[542]!, [_0]) + return formatWithArgumentRanges(self._s[547]!, self._r[547]!, [_0]) } - public var Permissions_SiriText_v0: String { return self._s[543]! } - public var Conversation_FileICloudDrive: String { return self._s[544]! } - public var Notifications_Badge_IncludeMutedChats: String { return self._s[545]! } + public var Permissions_SiriText_v0: String { return self._s[548]! } + public var Conversation_FileICloudDrive: String { return self._s[549]! } + public var Notifications_Badge_IncludeMutedChats: String { return self._s[550]! } public func Notification_NewAuthDetected(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[546]!, self._r[546]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[551]!, self._r[551]!, [_1, _2, _3, _4, _5, _6]) } - public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[547]! } + public var DialogList_ProxyConnectionIssuesTooltip: String { return self._s[552]! } public func Time_MonthOfYear_m5(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[548]!, self._r[548]!, [_0]) + return formatWithArgumentRanges(self._s[553]!, self._r[553]!, [_0]) } - public var Channel_SignMessages: String { return self._s[549]! } + public var Channel_SignMessages: String { return self._s[554]! } public func PUSH_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[550]!, self._r[550]!, [_1]) + return formatWithArgumentRanges(self._s[555]!, self._r[555]!, [_1]) } - public var Compose_ChannelTokenListPlaceholder: String { return self._s[551]! } - public var Passport_ScanPassport: String { return self._s[552]! } - public var Watch_Suggestion_Thanks: String { return self._s[553]! } - public var BlockedUsers_AddNew: String { return self._s[554]! } + public var Compose_ChannelTokenListPlaceholder: String { return self._s[556]! } + public var Passport_ScanPassport: String { return self._s[557]! } + public var Watch_Suggestion_Thanks: String { return self._s[558]! } + public var BlockedUsers_AddNew: String { return self._s[559]! } public func PUSH_CHAT_MESSAGE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[555]!, self._r[555]!, [_1, _2]) + return formatWithArgumentRanges(self._s[560]!, self._r[560]!, [_1, _2]) } - public var Watch_Message_Invoice: String { return self._s[556]! } - public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[557]! } - public var Month_GenJuly: String { return self._s[558]! } - public var SocksProxySetup_ProxySocks5: String { return self._s[559]! } - public var Notification_ChannelInviterSelf: String { return self._s[561]! } - public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[562]! } + public var Watch_Message_Invoice: String { return self._s[561]! } + public var SettingsSearch_Synonyms_Privacy_LastSeen: String { return self._s[562]! } + public var Month_GenJuly: String { return self._s[563]! } + public var SocksProxySetup_ProxySocks5: String { return self._s[564]! } + public var Notification_ChannelInviterSelf: String { return self._s[566]! } + public var CheckoutInfo_ReceiverInfoEmail: String { return self._s[567]! } public func ApplyLanguage_ChangeLanguageUnofficialText(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[563]!, self._r[563]!, [_1, _2]) + return formatWithArgumentRanges(self._s[568]!, self._r[568]!, [_1, _2]) } - public var CheckoutInfo_Title: String { return self._s[564]! } - public var Watch_Stickers_RecentPlaceholder: String { return self._s[565]! } + public var CheckoutInfo_Title: String { return self._s[569]! } + public var Watch_Stickers_RecentPlaceholder: String { return self._s[570]! } public func Map_DistanceAway(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[566]!, self._r[566]!, [_0]) + return formatWithArgumentRanges(self._s[571]!, self._r[571]!, [_0]) } - public var Passport_Identity_MainPage: String { return self._s[567]! } - public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[568]! } - public var Passport_Language_de: String { return self._s[569]! } - public var Update_Title: String { return self._s[570]! } - public var ContactInfo_PhoneLabelWorkFax: String { return self._s[571]! } - public var Channel_AdminLog_BanEmbedLinks: String { return self._s[572]! } - public var Passport_Email_UseTelegramEmailHelp: String { return self._s[573]! } - public var Notifications_ChannelNotificationsPreview: String { return self._s[574]! } - public var NotificationsSound_Telegraph: String { return self._s[575]! } - public var Watch_LastSeen_ALongTimeAgo: String { return self._s[576]! } - public var ChannelMembers_WhoCanAddMembers: String { return self._s[577]! } + public var Passport_Identity_MainPage: String { return self._s[572]! } + public var TwoStepAuth_ConfirmEmailResendCode: String { return self._s[573]! } + public var Passport_Language_de: String { return self._s[574]! } + public var Update_Title: String { return self._s[575]! } + public var ContactInfo_PhoneLabelWorkFax: String { return self._s[576]! } + public var Channel_AdminLog_BanEmbedLinks: String { return self._s[577]! } + public var Passport_Email_UseTelegramEmailHelp: String { return self._s[578]! } + public var Notifications_ChannelNotificationsPreview: String { return self._s[579]! } + public var NotificationsSound_Telegraph: String { return self._s[580]! } + public var Watch_LastSeen_ALongTimeAgo: String { return self._s[581]! } + public var ChannelMembers_WhoCanAddMembers: String { return self._s[582]! } public func AutoDownloadSettings_UpTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[578]!, self._r[578]!, [_0]) + return formatWithArgumentRanges(self._s[583]!, self._r[583]!, [_0]) } - public var Stickers_SuggestAll: String { return self._s[579]! } - public var Conversation_ForwardTitle: String { return self._s[580]! } + public var Stickers_SuggestAll: String { return self._s[584]! } + public var Conversation_ForwardTitle: String { return self._s[585]! } public func Notification_JoinedChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[581]!, self._r[581]!, [_0]) + return formatWithArgumentRanges(self._s[586]!, self._r[586]!, [_0]) } - public var Calls_NewCall: String { return self._s[582]! } - public var Call_StatusEnded: String { return self._s[583]! } - public var AutoDownloadSettings_DataUsageLow: String { return self._s[584]! } - public var Settings_ProxyConnected: String { return self._s[585]! } - public var Channel_AdminLogFilter_EventsPinned: String { return self._s[586]! } - public var PhotoEditor_QualityVeryLow: String { return self._s[587]! } - public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[588]! } - public var Passport_PasswordPlaceholder: String { return self._s[589]! } - public var Message_PinnedInvoice: String { return self._s[590]! } - public var Passport_Identity_IssueDate: String { return self._s[591]! } - public var Passport_Language_pl: String { return self._s[592]! } + public var Calls_NewCall: String { return self._s[587]! } + public var Call_StatusEnded: String { return self._s[588]! } + public var AutoDownloadSettings_DataUsageLow: String { return self._s[589]! } + public var Settings_ProxyConnected: String { return self._s[590]! } + public var Channel_AdminLogFilter_EventsPinned: String { return self._s[591]! } + public var PhotoEditor_QualityVeryLow: String { return self._s[592]! } + public var Channel_AdminLogFilter_EventsDeletedMessages: String { return self._s[593]! } + public var Passport_PasswordPlaceholder: String { return self._s[594]! } + public var Message_PinnedInvoice: String { return self._s[595]! } + public var Passport_Identity_IssueDate: String { return self._s[596]! } + public var Passport_Language_pl: String { return self._s[597]! } public func ChannelInfo_ChannelForbidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[593]!, self._r[593]!, [_0]) + return formatWithArgumentRanges(self._s[598]!, self._r[598]!, [_0]) } - public var SocksProxySetup_PasteFromClipboard: String { return self._s[594]! } - public var Call_StatusConnecting: String { return self._s[595]! } + public var SocksProxySetup_PasteFromClipboard: String { return self._s[599]! } + public var Call_StatusConnecting: String { return self._s[600]! } public func Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[596]!, self._r[596]!, [_0]) - } - public var ChatSettings_ConnectionType_UseProxy: String { return self._s[598]! } - public var Common_Edit: String { return self._s[599]! } - public var PrivacySettings_LastSeenNobody: String { return self._s[600]! } - public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[601]!, self._r[601]!, [_0]) } - public var GroupInfo_ChatAdmins: String { return self._s[602]! } - public var PrivateDataSettings_Title: String { return self._s[603]! } - public var Login_CancelPhoneVerificationStop: String { return self._s[604]! } - public var ChatList_Read: String { return self._s[605]! } - public var Undo_ChatClearedForBothSides: String { return self._s[606]! } - public var GroupPermission_SectionTitle: String { return self._s[607]! } + public var ChatSettings_ConnectionType_UseProxy: String { return self._s[603]! } + public var Common_Edit: String { return self._s[604]! } + public var PrivacySettings_LastSeenNobody: String { return self._s[605]! } + public func Notification_LeftChat(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[606]!, self._r[606]!, [_0]) + } + public var GroupInfo_ChatAdmins: String { return self._s[607]! } + public var PrivateDataSettings_Title: String { return self._s[608]! } + public var Login_CancelPhoneVerificationStop: String { return self._s[609]! } + public var ChatList_Read: String { return self._s[610]! } + public var Undo_ChatClearedForBothSides: String { return self._s[611]! } + public var GroupPermission_SectionTitle: String { return self._s[612]! } public func PUSH_CHAT_LEFT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[609]!, self._r[609]!, [_1, _2]) + return formatWithArgumentRanges(self._s[614]!, self._r[614]!, [_1, _2]) } - public var Checkout_ErrorPaymentFailed: String { return self._s[610]! } - public var Update_UpdateApp: String { return self._s[611]! } - public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[612]! } - public var Settings_Appearance: String { return self._s[613]! } - public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[615]! } - public var Watch_Location_Access: String { return self._s[616]! } - public var ShareMenu_CopyShareLink: String { return self._s[618]! } - public var TwoStepAuth_SetupHintTitle: String { return self._s[619]! } + public var Checkout_ErrorPaymentFailed: String { return self._s[615]! } + public var Update_UpdateApp: String { return self._s[616]! } + public var Group_Username_RevokeExistingUsernamesInfo: String { return self._s[617]! } + public var Settings_Appearance: String { return self._s[618]! } + public var SettingsSearch_Synonyms_Stickers_SuggestStickers: String { return self._s[620]! } + public var Watch_Location_Access: String { return self._s[621]! } + public var ShareMenu_CopyShareLink: String { return self._s[623]! } + public var TwoStepAuth_SetupHintTitle: String { return self._s[624]! } public func DialogList_SingleRecordingVideoMessageSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[621]!, self._r[621]!, [_0]) + return formatWithArgumentRanges(self._s[626]!, self._r[626]!, [_0]) } - public var Notifications_ClassicTones: String { return self._s[622]! } - public var Weekday_ShortWednesday: String { return self._s[623]! } - public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[624]! } - public var Undo_LeftGroup: String { return self._s[627]! } - public var Conversation_LinkDialogCopy: String { return self._s[628]! } - public var KeyCommand_FocusOnInputField: String { return self._s[630]! } - public var Contacts_SelectAll: String { return self._s[631]! } - public var Preview_SaveToCameraRoll: String { return self._s[632]! } - public var PrivacySettings_PasscodeOff: String { return self._s[633]! } - public var Wallpaper_Title: String { return self._s[634]! } - public var Conversation_FilePhotoOrVideo: String { return self._s[635]! } - public var AccessDenied_Camera: String { return self._s[636]! } - public var Watch_Compose_CurrentLocation: String { return self._s[637]! } - public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[639]! } + public var Notifications_ClassicTones: String { return self._s[627]! } + public var Weekday_ShortWednesday: String { return self._s[628]! } + public var WallpaperPreview_SwipeColorsBottomText: String { return self._s[629]! } + public var Undo_LeftGroup: String { return self._s[632]! } + public var Conversation_LinkDialogCopy: String { return self._s[633]! } + public var KeyCommand_FocusOnInputField: String { return self._s[635]! } + public var Contacts_SelectAll: String { return self._s[636]! } + public var Preview_SaveToCameraRoll: String { return self._s[637]! } + public var PrivacySettings_PasscodeOff: String { return self._s[638]! } + public var Wallpaper_Title: String { return self._s[639]! } + public var Conversation_FilePhotoOrVideo: String { return self._s[640]! } + public var AccessDenied_Camera: String { return self._s[641]! } + public var Watch_Compose_CurrentLocation: String { return self._s[642]! } + public var Channel_DiscussionGroup_MakeHistoryPublicProceed: String { return self._s[644]! } public func SecretImage_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[640]!, self._r[640]!, [_0]) + return formatWithArgumentRanges(self._s[645]!, self._r[645]!, [_0]) } - public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[641]! } - public var Passport_Language_ro: String { return self._s[642]! } - public var CheckoutInfo_SaveInfoHelp: String { return self._s[643]! } + public var GroupInfo_InvitationLinkDoesNotExist: String { return self._s[646]! } + public var Passport_Language_ro: String { return self._s[647]! } + public var CheckoutInfo_SaveInfoHelp: String { return self._s[648]! } public func Notification_SecretChatMessageScreenshot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[644]!, self._r[644]!, [_0]) + return formatWithArgumentRanges(self._s[649]!, self._r[649]!, [_0]) } - public var Login_CancelPhoneVerification: String { return self._s[645]! } - public var State_ConnectingToProxy: String { return self._s[646]! } - public var Calls_RatingTitle: String { return self._s[647]! } - public var Generic_ErrorMoreInfo: String { return self._s[648]! } - public var Appearance_PreviewReplyText: String { return self._s[649]! } - public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[650]! } - public var SharedMedia_CategoryLinks: String { return self._s[651]! } - public var Calls_Missed: String { return self._s[652]! } - public var Cache_Photos: String { return self._s[656]! } - public var GroupPermission_NoAddMembers: String { return self._s[657]! } + public var Login_CancelPhoneVerification: String { return self._s[650]! } + public var State_ConnectingToProxy: String { return self._s[651]! } + public var Calls_RatingTitle: String { return self._s[652]! } + public var Generic_ErrorMoreInfo: String { return self._s[653]! } + public var Appearance_PreviewReplyText: String { return self._s[654]! } + public var CheckoutInfo_ShippingInfoPostcodePlaceholder: String { return self._s[655]! } + public var SharedMedia_CategoryLinks: String { return self._s[656]! } + public var Calls_Missed: String { return self._s[657]! } + public var Cache_Photos: String { return self._s[661]! } + public var GroupPermission_NoAddMembers: String { return self._s[662]! } public func Channel_AdminLog_MessageUnpinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[658]!, self._r[658]!, [_0]) + return formatWithArgumentRanges(self._s[663]!, self._r[663]!, [_0]) } - public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[659]! } - public var Settings_ProxyDisabled: String { return self._s[660]! } + public var Conversation_ShareBotLocationConfirmationTitle: String { return self._s[664]! } + public var Settings_ProxyDisabled: String { return self._s[665]! } public func Settings_ApplyProxyAlertCredentials(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[661]!, self._r[661]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[666]!, self._r[666]!, [_1, _2, _3, _4]) } public func Conversation_RestrictedMediaTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[662]!, self._r[662]!, [_0]) + return formatWithArgumentRanges(self._s[667]!, self._r[667]!, [_0]) } - public var Appearance_Title: String { return self._s[663]! } + public var Appearance_Title: String { return self._s[668]! } public func Time_MonthOfYear_m2(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[665]!, self._r[665]!, [_0]) + return formatWithArgumentRanges(self._s[670]!, self._r[670]!, [_0]) } - public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[666]! } - public var Channel_EditMessageErrorGeneric: String { return self._s[667]! } - public var Privacy_Calls_IntegrationHelp: String { return self._s[668]! } - public var Preview_DeletePhoto: String { return self._s[669]! } - public var Appearance_AppIconFilledX: String { return self._s[670]! } - public var PrivacySettings_PrivacyTitle: String { return self._s[671]! } + public var StickerPacksSettings_ShowStickersButtonHelp: String { return self._s[671]! } + public var Channel_EditMessageErrorGeneric: String { return self._s[672]! } + public var Privacy_Calls_IntegrationHelp: String { return self._s[673]! } + public var Preview_DeletePhoto: String { return self._s[674]! } + public var Appearance_AppIconFilledX: String { return self._s[675]! } + public var PrivacySettings_PrivacyTitle: String { return self._s[676]! } public func Conversation_BotInteractiveUrlAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[672]!, self._r[672]!, [_0]) + return formatWithArgumentRanges(self._s[677]!, self._r[677]!, [_0]) } - public var Coub_TapForSound: String { return self._s[674]! } - public var Map_LocatingError: String { return self._s[675]! } - public var TwoStepAuth_EmailChangeSuccess: String { return self._s[677]! } - public var Passport_ForgottenPassword: String { return self._s[678]! } - public var GroupInfo_InviteLink_RevokeLink: String { return self._s[679]! } - public var StickerPacksSettings_ArchivedPacks: String { return self._s[680]! } - public var Login_TermsOfServiceSignupDecline: String { return self._s[682]! } - public var Channel_Moderator_AccessLevelRevoke: String { return self._s[683]! } - public var Message_Location: String { return self._s[684]! } - public var Passport_Identity_NamePlaceholder: String { return self._s[685]! } - public var Channel_Management_Title: String { return self._s[686]! } - public var DialogList_SearchSectionDialogs: String { return self._s[688]! } - public var Compose_NewChannel_Members: String { return self._s[689]! } + public var Coub_TapForSound: String { return self._s[679]! } + public var Map_LocatingError: String { return self._s[680]! } + public var TwoStepAuth_EmailChangeSuccess: String { return self._s[682]! } + public var Passport_ForgottenPassword: String { return self._s[683]! } + public var GroupInfo_InviteLink_RevokeLink: String { return self._s[684]! } + public var StickerPacksSettings_ArchivedPacks: String { return self._s[685]! } + public var Login_TermsOfServiceSignupDecline: String { return self._s[687]! } + public var Channel_Moderator_AccessLevelRevoke: String { return self._s[688]! } + public var Message_Location: String { return self._s[689]! } + public var Passport_Identity_NamePlaceholder: String { return self._s[690]! } + public var Channel_Management_Title: String { return self._s[691]! } + public var DialogList_SearchSectionDialogs: String { return self._s[693]! } + public var Compose_NewChannel_Members: String { return self._s[694]! } public func DialogList_SingleUploadingFileSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[690]!, self._r[690]!, [_0]) + return formatWithArgumentRanges(self._s[695]!, self._r[695]!, [_0]) } - public var AutoNightTheme_ScheduledFrom: String { return self._s[691]! } - public var PhotoEditor_WarmthTool: String { return self._s[692]! } - public var Passport_Language_tr: String { return self._s[693]! } + public var AutoNightTheme_ScheduledFrom: String { return self._s[696]! } + public var PhotoEditor_WarmthTool: String { return self._s[697]! } + public var Passport_Language_tr: String { return self._s[698]! } public func PUSH_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[694]!, self._r[694]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[699]!, self._r[699]!, [_1, _2, _3]) } - public var Login_ResetAccountProtected_Reset: String { return self._s[696]! } - public var Watch_PhotoView_Title: String { return self._s[697]! } - public var Passport_Phone_Delete: String { return self._s[698]! } - public var Undo_ChatDeletedForBothSides: String { return self._s[699]! } - public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[700]! } - public var GroupInfo_Permissions: String { return self._s[701]! } - public var PasscodeSettings_TurnPasscodeOff: String { return self._s[702]! } - public var Profile_ShareContactButton: String { return self._s[703]! } - public var ChatSettings_Other: String { return self._s[704]! } - public var UserInfo_NotificationsDisabled: String { return self._s[705]! } - public var CheckoutInfo_ShippingInfoCity: String { return self._s[706]! } - public var LastSeen_WithinAMonth: String { return self._s[707]! } - public var Conversation_EncryptionCanceled: String { return self._s[708]! } - public var MediaPicker_GroupDescription: String { return self._s[709]! } - public var WebSearch_Images: String { return self._s[710]! } + public var Login_ResetAccountProtected_Reset: String { return self._s[701]! } + public var Watch_PhotoView_Title: String { return self._s[702]! } + public var Passport_Phone_Delete: String { return self._s[703]! } + public var Undo_ChatDeletedForBothSides: String { return self._s[704]! } + public var Conversation_EditingMessageMediaEditCurrentPhoto: String { return self._s[705]! } + public var GroupInfo_Permissions: String { return self._s[706]! } + public var PasscodeSettings_TurnPasscodeOff: String { return self._s[707]! } + public var Profile_ShareContactButton: String { return self._s[708]! } + public var ChatSettings_Other: String { return self._s[709]! } + public var UserInfo_NotificationsDisabled: String { return self._s[710]! } + public var CheckoutInfo_ShippingInfoCity: String { return self._s[711]! } + public var LastSeen_WithinAMonth: String { return self._s[712]! } + public var Conversation_EncryptionCanceled: String { return self._s[713]! } + public var MediaPicker_GroupDescription: String { return self._s[714]! } + public var WebSearch_Images: String { return self._s[715]! } public func Channel_Management_PromotedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[711]!, self._r[711]!, [_0]) + return formatWithArgumentRanges(self._s[716]!, self._r[716]!, [_0]) } - public var Message_Photo: String { return self._s[712]! } - public var PasscodeSettings_HelpBottom: String { return self._s[713]! } - public var AutoDownloadSettings_VideosTitle: String { return self._s[714]! } - public var Passport_Identity_AddDriversLicense: String { return self._s[715]! } - public var TwoStepAuth_EnterPasswordPassword: String { return self._s[716]! } - public var NotificationsSound_Calypso: String { return self._s[717]! } - public var Map_Map: String { return self._s[718]! } - public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[720]! } - public var ChatSettings_TextSizeUnits: String { return self._s[721]! } - public var Common_of: String { return self._s[722]! } - public var Conversation_ForwardContacts: String { return self._s[724]! } + public var Message_Photo: String { return self._s[717]! } + public var PasscodeSettings_HelpBottom: String { return self._s[718]! } + public var AutoDownloadSettings_VideosTitle: String { return self._s[719]! } + public var Passport_Identity_AddDriversLicense: String { return self._s[720]! } + public var TwoStepAuth_EnterPasswordPassword: String { return self._s[721]! } + public var NotificationsSound_Calypso: String { return self._s[722]! } + public var Map_Map: String { return self._s[723]! } + public var CheckoutInfo_ReceiverInfoTitle: String { return self._s[725]! } + public var ChatSettings_TextSizeUnits: String { return self._s[726]! } + public var Common_of: String { return self._s[727]! } + public var Conversation_ForwardContacts: String { return self._s[729]! } public func Call_AnsweringWithAccount(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[726]!, self._r[726]!, [_0]) + return formatWithArgumentRanges(self._s[731]!, self._r[731]!, [_0]) } - public var Passport_Language_hy: String { return self._s[727]! } - public var Notifications_MessageNotificationsHelp: String { return self._s[728]! } - public var AutoDownloadSettings_Reset: String { return self._s[729]! } - public var Paint_ClearConfirm: String { return self._s[730]! } - public var Camera_VideoMode: String { return self._s[731]! } + public var Passport_Language_hy: String { return self._s[732]! } + public var Notifications_MessageNotificationsHelp: String { return self._s[733]! } + public var AutoDownloadSettings_Reset: String { return self._s[734]! } + public var Paint_ClearConfirm: String { return self._s[735]! } + public var Camera_VideoMode: String { return self._s[736]! } public func Conversation_RestrictedStickersTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[732]!, self._r[732]!, [_0]) + return formatWithArgumentRanges(self._s[737]!, self._r[737]!, [_0]) } - public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[733]! } - public var Conversation_ViewBackground: String { return self._s[734]! } - public var Passport_Language_el: String { return self._s[735]! } - public var PhotoEditor_Original: String { return self._s[736]! } - public var Settings_FAQ_Button: String { return self._s[738]! } - public var Channel_Setup_PublicNoLink: String { return self._s[740]! } - public var Conversation_UnsupportedMedia: String { return self._s[741]! } - public var Conversation_SlideToCancel: String { return self._s[742]! } - public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[743]! } - public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[744]! } - public var AutoNightTheme_NotAvailable: String { return self._s[745]! } - public var Common_Create: String { return self._s[746]! } - public var Settings_ApplyProxyAlertEnable: String { return self._s[747]! } - public var Localization_ChooseLanguage: String { return self._s[749]! } - public var Settings_Proxy: String { return self._s[752]! } - public var Privacy_TopPeersHelp: String { return self._s[753]! } - public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[754]! } - public var Chat_UnsendMyMessages: String { return self._s[755]! } - public var TwoStepAuth_ConfirmationAbort: String { return self._s[756]! } + public var Privacy_Calls_AlwaysAllow_Placeholder: String { return self._s[738]! } + public var Conversation_ViewBackground: String { return self._s[739]! } + public var Passport_Language_el: String { return self._s[740]! } + public var PhotoEditor_Original: String { return self._s[741]! } + public var Settings_FAQ_Button: String { return self._s[743]! } + public var Channel_Setup_PublicNoLink: String { return self._s[745]! } + public var Conversation_UnsupportedMedia: String { return self._s[746]! } + public var Conversation_SlideToCancel: String { return self._s[747]! } + public var Passport_Identity_OneOfTypeInternalPassport: String { return self._s[748]! } + public var CheckoutInfo_ShippingInfoPostcode: String { return self._s[749]! } + public var AutoNightTheme_NotAvailable: String { return self._s[750]! } + public var Common_Create: String { return self._s[751]! } + public var Settings_ApplyProxyAlertEnable: String { return self._s[752]! } + public var Localization_ChooseLanguage: String { return self._s[754]! } + public var Settings_Proxy: String { return self._s[757]! } + public var Privacy_TopPeersHelp: String { return self._s[758]! } + public var CheckoutInfo_ShippingInfoCountryPlaceholder: String { return self._s[759]! } + public var Chat_UnsendMyMessages: String { return self._s[760]! } + public var TwoStepAuth_ConfirmationAbort: String { return self._s[761]! } public func Contacts_AccessDeniedHelpPortrait(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[758]!, self._r[758]!, [_0]) + return formatWithArgumentRanges(self._s[763]!, self._r[763]!, [_0]) } - public var Contacts_SortedByPresence: String { return self._s[759]! } - public var Passport_Identity_SurnamePlaceholder: String { return self._s[760]! } - public var Cache_Title: String { return self._s[761]! } + public var Contacts_SortedByPresence: String { return self._s[764]! } + public var Passport_Identity_SurnamePlaceholder: String { return self._s[765]! } + public var Cache_Title: String { return self._s[766]! } public func Login_PhoneBannedEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[762]!, self._r[762]!, [_0]) + return formatWithArgumentRanges(self._s[767]!, self._r[767]!, [_0]) } - public var TwoStepAuth_EmailCodeExpired: String { return self._s[763]! } - public var Channel_Moderator_Title: String { return self._s[764]! } - public var InstantPage_AutoNightTheme: String { return self._s[766]! } + public var TwoStepAuth_EmailCodeExpired: String { return self._s[768]! } + public var Channel_Moderator_Title: String { return self._s[769]! } + public var InstantPage_AutoNightTheme: String { return self._s[771]! } public func PUSH_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[769]!, self._r[769]!, [_1]) + return formatWithArgumentRanges(self._s[774]!, self._r[774]!, [_1]) } - public var Passport_Scans_Upload: String { return self._s[770]! } - public var Undo_Undo: String { return self._s[772]! } - public var Contacts_AccessDeniedHelpON: String { return self._s[773]! } - public var TwoStepAuth_RemovePassword: String { return self._s[774]! } - public var Common_Delete: String { return self._s[775]! } - public var Conversation_ContextMenuDelete: String { return self._s[777]! } - public var SocksProxySetup_Credentials: String { return self._s[778]! } - public var PasscodeSettings_AutoLock_Disabled: String { return self._s[780]! } - public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[783]! } - public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[784]! } - public var Passport_Language_id: String { return self._s[786]! } - public var WallpaperSearch_ColorTeal: String { return self._s[787]! } - public var ChannelIntro_Title: String { return self._s[788]! } + public var Passport_Scans_Upload: String { return self._s[775]! } + public var Undo_Undo: String { return self._s[777]! } + public var Contacts_AccessDeniedHelpON: String { return self._s[778]! } + public var TwoStepAuth_RemovePassword: String { return self._s[779]! } + public var Common_Delete: String { return self._s[780]! } + public var Contacts_AddPeopleNearby: String { return self._s[782]! } + public var Conversation_ContextMenuDelete: String { return self._s[783]! } + public var SocksProxySetup_Credentials: String { return self._s[784]! } + public var PasscodeSettings_AutoLock_Disabled: String { return self._s[786]! } + public var Passport_Address_OneOfTypeRentalAgreement: String { return self._s[789]! } + public var Conversation_ShareBotContactConfirmationTitle: String { return self._s[790]! } + public var Passport_Language_id: String { return self._s[792]! } + public var WallpaperSearch_ColorTeal: String { return self._s[793]! } + public var ChannelIntro_Title: String { return self._s[794]! } public func Channel_AdminLog_MessageToggleSignaturesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[789]!, self._r[789]!, [_0]) + return formatWithArgumentRanges(self._s[795]!, self._r[795]!, [_0]) } - public var Channel_Info_Description: String { return self._s[791]! } - public var Stickers_FavoriteStickers: String { return self._s[792]! } - public var Channel_BanUser_PermissionAddMembers: String { return self._s[793]! } - public var Notifications_DisplayNamesOnLockScreen: String { return self._s[794]! } - public var Calls_NoMissedCallsPlacehoder: String { return self._s[795]! } - public var Notifications_ExceptionsDefaultSound: String { return self._s[796]! } + public var Channel_Info_Description: String { return self._s[797]! } + public var Stickers_FavoriteStickers: String { return self._s[798]! } + public var Channel_BanUser_PermissionAddMembers: String { return self._s[799]! } + public var Notifications_DisplayNamesOnLockScreen: String { return self._s[800]! } + public var Calls_NoMissedCallsPlacehoder: String { return self._s[801]! } + public var Notifications_ExceptionsDefaultSound: String { return self._s[802]! } public func PUSH_CHANNEL_MESSAGE_POLL(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[797]!, self._r[797]!, [_1]) + return formatWithArgumentRanges(self._s[803]!, self._r[803]!, [_1]) } public func DialogList_SearchSubtitleFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[798]!, self._r[798]!, [_1, _2]) + return formatWithArgumentRanges(self._s[804]!, self._r[804]!, [_1, _2]) } public func Channel_AdminLog_MessageRemovedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[799]!, self._r[799]!, [_0]) + return formatWithArgumentRanges(self._s[805]!, self._r[805]!, [_0]) } - public var GroupPermission_Delete: String { return self._s[800]! } - public var Passport_Language_uk: String { return self._s[801]! } - public var StickerPack_HideStickers: String { return self._s[803]! } - public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[804]! } + public func Channel_OwnershipTransfer_TransferCompleted(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[806]!, self._r[806]!, [_1, _2]) + } + public var GroupPermission_Delete: String { return self._s[807]! } + public var Passport_Language_uk: String { return self._s[808]! } + public var StickerPack_HideStickers: String { return self._s[810]! } + public var ChangePhoneNumberNumber_NumberPlaceholder: String { return self._s[811]! } public func PUSH_CHAT_MESSAGE_PHOTO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[805]!, self._r[805]!, [_1, _2]) + return formatWithArgumentRanges(self._s[812]!, self._r[812]!, [_1, _2]) } - public var Activity_UploadingVideoMessage: String { return self._s[806]! } + public var Activity_UploadingVideoMessage: String { return self._s[813]! } public func GroupPermission_ApplyAlertText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[807]!, self._r[807]!, [_0]) + return formatWithArgumentRanges(self._s[814]!, self._r[814]!, [_0]) } - public var Channel_TitleInfo: String { return self._s[808]! } - public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[809]! } - public var Settings_CallSettings: String { return self._s[810]! } - public var Camera_SquareMode: String { return self._s[811]! } - public var GroupInfo_SharedMediaNone: String { return self._s[812]! } + public var Channel_TitleInfo: String { return self._s[815]! } + public var StickerPacksSettings_ArchivedPacks_Info: String { return self._s[816]! } + public var Settings_CallSettings: String { return self._s[817]! } + public var Camera_SquareMode: String { return self._s[818]! } + public var GroupInfo_SharedMediaNone: String { return self._s[819]! } public func PUSH_MESSAGE_VIDEO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[813]!, self._r[813]!, [_1]) + return formatWithArgumentRanges(self._s[820]!, self._r[820]!, [_1]) } - public var Bot_GenericBotStatus: String { return self._s[814]! } - public var Application_Update: String { return self._s[816]! } - public var Month_ShortJanuary: String { return self._s[817]! } - public var Contacts_PermissionsKeepDisabled: String { return self._s[818]! } - public var Channel_AdminLog_BanReadMessages: String { return self._s[819]! } - public var Settings_AppLanguage_Unofficial: String { return self._s[820]! } - public var Passport_Address_Street2Placeholder: String { return self._s[821]! } + public var Bot_GenericBotStatus: String { return self._s[821]! } + public var Application_Update: String { return self._s[823]! } + public var Month_ShortJanuary: String { return self._s[824]! } + public var Contacts_PermissionsKeepDisabled: String { return self._s[825]! } + public var Channel_AdminLog_BanReadMessages: String { return self._s[826]! } + public var Settings_AppLanguage_Unofficial: String { return self._s[827]! } + public var Passport_Address_Street2Placeholder: String { return self._s[828]! } public func Map_LiveLocationShortHour(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[822]!, self._r[822]!, [_0]) + return formatWithArgumentRanges(self._s[829]!, self._r[829]!, [_0]) } - public var NetworkUsageSettings_Cellular: String { return self._s[823]! } - public var Appearance_PreviewOutgoingText: String { return self._s[824]! } - public var Notifications_PermissionsAllowInSettings: String { return self._s[825]! } - public var AutoDownloadSettings_OnForAll: String { return self._s[827]! } - public var Map_Directions: String { return self._s[828]! } - public var Passport_FieldIdentityTranslationHelp: String { return self._s[830]! } - public var Appearance_ThemeDay: String { return self._s[831]! } - public var LogoutOptions_LogOut: String { return self._s[832]! } - public var Channel_AddBotErrorNoRights: String { return self._s[834]! } - public var Passport_Identity_AddPassport: String { return self._s[835]! } - public var Call_Message: String { return self._s[836]! } - public var PhotoEditor_ExposureTool: String { return self._s[837]! } - public var Passport_FieldOneOf_Delimeter: String { return self._s[839]! } - public var Channel_AdminLog_CanBanUsers: String { return self._s[841]! } - public var Appearance_Preview: String { return self._s[842]! } - public var Compose_ChannelMembers: String { return self._s[843]! } - public var Conversation_DeleteManyMessages: String { return self._s[844]! } - public var ReportPeer_ReasonOther_Title: String { return self._s[845]! } - public var Checkout_ErrorProviderAccountTimeout: String { return self._s[846]! } - public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[847]! } - public var Channel_Stickers_CreateYourOwn: String { return self._s[850]! } - public var Conversation_UpdateTelegram: String { return self._s[851]! } + public var NetworkUsageSettings_Cellular: String { return self._s[830]! } + public var Appearance_PreviewOutgoingText: String { return self._s[831]! } + public var Notifications_PermissionsAllowInSettings: String { return self._s[832]! } + public var AutoDownloadSettings_OnForAll: String { return self._s[834]! } + public var Map_Directions: String { return self._s[835]! } + public var Passport_FieldIdentityTranslationHelp: String { return self._s[837]! } + public var Appearance_ThemeDay: String { return self._s[838]! } + public var LogoutOptions_LogOut: String { return self._s[839]! } + public var Channel_AddBotErrorNoRights: String { return self._s[841]! } + public var Passport_Identity_AddPassport: String { return self._s[842]! } + public var Call_Message: String { return self._s[843]! } + public var PhotoEditor_ExposureTool: String { return self._s[844]! } + public var Passport_FieldOneOf_Delimeter: String { return self._s[846]! } + public var Channel_AdminLog_CanBanUsers: String { return self._s[848]! } + public var Appearance_Preview: String { return self._s[849]! } + public var Compose_ChannelMembers: String { return self._s[850]! } + public var Conversation_DeleteManyMessages: String { return self._s[851]! } + public var ReportPeer_ReasonOther_Title: String { return self._s[852]! } + public var Checkout_ErrorProviderAccountTimeout: String { return self._s[853]! } + public var TwoStepAuth_ResetAccountConfirmation: String { return self._s[854]! } + public var Channel_Stickers_CreateYourOwn: String { return self._s[857]! } + public var Conversation_UpdateTelegram: String { return self._s[858]! } public func Notification_PinnedPhotoMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[852]!, self._r[852]!, [_0]) + return formatWithArgumentRanges(self._s[859]!, self._r[859]!, [_0]) } public func PUSH_PINNED_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[853]!, self._r[853]!, [_1]) + return formatWithArgumentRanges(self._s[860]!, self._r[860]!, [_1]) } - public var GroupInfo_Administrators_Title: String { return self._s[854]! } - public var Privacy_Forwards_PreviewMessageText: String { return self._s[855]! } + public var GroupInfo_Administrators_Title: String { return self._s[861]! } + public var Privacy_Forwards_PreviewMessageText: String { return self._s[862]! } public func PrivacySettings_LastSeenNobodyPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[856]!, self._r[856]!, [_0]) + return formatWithArgumentRanges(self._s[863]!, self._r[863]!, [_0]) } - public var Tour_Title3: String { return self._s[857]! } - public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[858]! } - public var Clipboard_SendPhoto: String { return self._s[862]! } - public var MediaPicker_Videos: String { return self._s[863]! } - public var Passport_Email_Title: String { return self._s[864]! } + public var Tour_Title3: String { return self._s[864]! } + public var Channel_EditAdmin_PermissionInviteSubscribers: String { return self._s[865]! } + public var Clipboard_SendPhoto: String { return self._s[869]! } + public var MediaPicker_Videos: String { return self._s[870]! } + public var Passport_Email_Title: String { return self._s[871]! } public func PrivacySettings_LastSeenEverybodyMinus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[865]!, self._r[865]!, [_0]) + return formatWithArgumentRanges(self._s[872]!, self._r[872]!, [_0]) } - public var StickerPacksSettings_Title: String { return self._s[866]! } - public var Conversation_MessageDialogDelete: String { return self._s[867]! } - public var Privacy_Calls_CustomHelp: String { return self._s[869]! } - public var Message_Wallpaper: String { return self._s[870]! } - public var MemberSearch_BotSection: String { return self._s[871]! } - public var GroupInfo_SetSound: String { return self._s[872]! } - public var Core_ServiceUserStatus: String { return self._s[873]! } - public var LiveLocationUpdated_JustNow: String { return self._s[874]! } - public var Call_StatusFailed: String { return self._s[875]! } - public var TwoStepAuth_SetupPasswordDescription: String { return self._s[876]! } - public var TwoStepAuth_SetPassword: String { return self._s[877]! } + public var StickerPacksSettings_Title: String { return self._s[873]! } + public var Conversation_MessageDialogDelete: String { return self._s[874]! } + public var Privacy_Calls_CustomHelp: String { return self._s[876]! } + public var Message_Wallpaper: String { return self._s[877]! } + public var MemberSearch_BotSection: String { return self._s[878]! } + public var GroupInfo_SetSound: String { return self._s[879]! } + public var Core_ServiceUserStatus: String { return self._s[880]! } + public var LiveLocationUpdated_JustNow: String { return self._s[881]! } + public var Call_StatusFailed: String { return self._s[882]! } + public var TwoStepAuth_SetupPasswordDescription: String { return self._s[883]! } + public var TwoStepAuth_SetPassword: String { return self._s[884]! } public func SocksProxySetup_ProxyStatusPing(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[879]!, self._r[879]!, [_0]) + return formatWithArgumentRanges(self._s[886]!, self._r[886]!, [_0]) } - public var Calls_SubmitRating: String { return self._s[880]! } - public var Profile_Username: String { return self._s[881]! } - public var Bot_DescriptionTitle: String { return self._s[882]! } - public var MaskStickerSettings_Title: String { return self._s[883]! } - public var SharedMedia_CategoryOther: String { return self._s[884]! } - public var GroupInfo_SetGroupPhoto: String { return self._s[885]! } - public var Common_NotNow: String { return self._s[886]! } - public var CallFeedback_IncludeLogsInfo: String { return self._s[887]! } - public var Conversation_ShareMyPhoneNumber: String { return self._s[888]! } - public var Map_Location: String { return self._s[889]! } - public var Invitation_JoinGroup: String { return self._s[890]! } - public var AutoDownloadSettings_Title: String { return self._s[892]! } - public var Conversation_DiscardVoiceMessageDescription: String { return self._s[893]! } - public var Channel_ErrorAddBlocked: String { return self._s[894]! } - public var Conversation_UnblockUser: String { return self._s[895]! } - public var Watch_Bot_Restart: String { return self._s[896]! } - public var TwoStepAuth_Title: String { return self._s[897]! } - public var Channel_AdminLog_BanSendMessages: String { return self._s[898]! } - public var Checkout_ShippingMethod: String { return self._s[899]! } - public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[900]! } + public var Calls_SubmitRating: String { return self._s[887]! } + public var Profile_Username: String { return self._s[888]! } + public var Bot_DescriptionTitle: String { return self._s[889]! } + public var MaskStickerSettings_Title: String { return self._s[890]! } + public var SharedMedia_CategoryOther: String { return self._s[891]! } + public var GroupInfo_SetGroupPhoto: String { return self._s[892]! } + public var Common_NotNow: String { return self._s[893]! } + public var CallFeedback_IncludeLogsInfo: String { return self._s[894]! } + public var Conversation_ShareMyPhoneNumber: String { return self._s[895]! } + public var Map_Location: String { return self._s[896]! } + public var Invitation_JoinGroup: String { return self._s[897]! } + public var AutoDownloadSettings_Title: String { return self._s[899]! } + public var Conversation_DiscardVoiceMessageDescription: String { return self._s[900]! } + public var Channel_ErrorAddBlocked: String { return self._s[901]! } + public var Conversation_UnblockUser: String { return self._s[902]! } + public var Watch_Bot_Restart: String { return self._s[903]! } + public var TwoStepAuth_Title: String { return self._s[904]! } + public var Channel_AdminLog_BanSendMessages: String { return self._s[905]! } + public var Checkout_ShippingMethod: String { return self._s[906]! } + public var Passport_Identity_OneOfTypeIdentityCard: String { return self._s[907]! } public func PUSH_CHAT_MESSAGE_STICKER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[901]!, self._r[901]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[908]!, self._r[908]!, [_1, _2, _3]) } public func Chat_UnsendMyMessagesAlertTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[903]!, self._r[903]!, [_0]) + return formatWithArgumentRanges(self._s[910]!, self._r[910]!, [_0]) } public func Channel_Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[904]!, self._r[904]!, [_0]) + return formatWithArgumentRanges(self._s[911]!, self._r[911]!, [_0]) } - public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[905]! } - public var AuthSessions_TerminateOtherSessions: String { return self._s[906]! } - public var Contacts_FailedToSendInvitesMessage: String { return self._s[907]! } - public var PrivacySettings_TwoStepAuth: String { return self._s[908]! } - public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[909]! } - public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[910]! } - public var Conversation_EditingMessagePanelMedia: String { return self._s[911]! } - public var Checkout_PaymentMethod_Title: String { return self._s[912]! } - public var SocksProxySetup_Connection: String { return self._s[913]! } - public var Group_MessagePhotoRemoved: String { return self._s[914]! } - public var Channel_Stickers_NotFound: String { return self._s[916]! } - public var Group_About_Help: String { return self._s[917]! } - public var Notification_PassportValueProofOfIdentity: String { return self._s[918]! } + public var SettingsSearch_Synonyms_Data_AutoplayGifs: String { return self._s[912]! } + public var AuthSessions_TerminateOtherSessions: String { return self._s[913]! } + public var Contacts_FailedToSendInvitesMessage: String { return self._s[914]! } + public var PrivacySettings_TwoStepAuth: String { return self._s[915]! } + public var Notification_Exceptions_PreviewAlwaysOn: String { return self._s[916]! } + public var SettingsSearch_Synonyms_Privacy_Passcode: String { return self._s[917]! } + public var Conversation_EditingMessagePanelMedia: String { return self._s[918]! } + public var Checkout_PaymentMethod_Title: String { return self._s[919]! } + public var SocksProxySetup_Connection: String { return self._s[920]! } + public var Group_MessagePhotoRemoved: String { return self._s[921]! } + public var Channel_Stickers_NotFound: String { return self._s[923]! } + public var Group_About_Help: String { return self._s[924]! } + public var Notification_PassportValueProofOfIdentity: String { return self._s[925]! } + public var PeopleNearby_Title: String { return self._s[927]! } public func ApplyLanguage_ChangeLanguageOfficialText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[920]!, self._r[920]!, [_1]) - } - public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[922]! } - public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[923]! } - public var SocksProxySetup_Password: String { return self._s[924]! } - public var Notifications_PermissionsEnable: String { return self._s[925]! } - public var TwoStepAuth_ChangeEmail: String { return self._s[927]! } - public func Channel_AdminLog_MessageInvitedName(_ _1: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[928]!, self._r[928]!, [_1]) } + public var CheckoutInfo_ShippingInfoStatePlaceholder: String { return self._s[930]! } + public var Notifications_GroupNotificationsExceptionsHelp: String { return self._s[931]! } + public var SocksProxySetup_Password: String { return self._s[932]! } + public var Notifications_PermissionsEnable: String { return self._s[933]! } + public var TwoStepAuth_ChangeEmail: String { return self._s[935]! } + public func Channel_AdminLog_MessageInvitedName(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[936]!, self._r[936]!, [_1]) + } public func Time_MonthOfYear_m10(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[930]!, self._r[930]!, [_0]) + return formatWithArgumentRanges(self._s[938]!, self._r[938]!, [_0]) } - public var Passport_Identity_TypeDriversLicense: String { return self._s[931]! } - public var ArchivedPacksAlert_Title: String { return self._s[932]! } + public var Passport_Identity_TypeDriversLicense: String { return self._s[939]! } + public var ArchivedPacksAlert_Title: String { return self._s[940]! } public func Time_PreciseDate_m7(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[933]!, self._r[933]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[941]!, self._r[941]!, [_1, _2, _3]) } - public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[934]! } - public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[936]! } - public var Conversation_StatusTyping: String { return self._s[937]! } - public var Broadcast_AdminLog_EmptyText: String { return self._s[938]! } - public var Notification_PassportValueProofOfAddress: String { return self._s[939]! } - public var UserInfo_CreateNewContact: String { return self._s[940]! } - public var Passport_Identity_FrontSide: String { return self._s[941]! } - public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[942]! } - public var Calls_CallTabTitle: String { return self._s[943]! } - public var Channel_AdminLog_ChannelEmptyText: String { return self._s[944]! } + public var PrivacyLastSeenSettings_GroupsAndChannelsHelp: String { return self._s[942]! } + public var Privacy_Calls_NeverAllow_Placeholder: String { return self._s[944]! } + public var Conversation_StatusTyping: String { return self._s[945]! } + public var Broadcast_AdminLog_EmptyText: String { return self._s[946]! } + public var Notification_PassportValueProofOfAddress: String { return self._s[947]! } + public var UserInfo_CreateNewContact: String { return self._s[948]! } + public var Passport_Identity_FrontSide: String { return self._s[949]! } + public var Login_PhoneNumberAlreadyAuthorizedSwitch: String { return self._s[950]! } + public var Calls_CallTabTitle: String { return self._s[951]! } + public var Channel_AdminLog_ChannelEmptyText: String { return self._s[952]! } public func Login_BannedPhoneBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[945]!, self._r[945]!, [_0]) - } - public var Watch_UserInfo_MuteTitle: String { return self._s[946]! } - public var SharedMedia_EmptyMusicText: String { return self._s[947]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[948]! } - public var Paint_Stickers: String { return self._s[949]! } - public var Privacy_GroupsAndChannels: String { return self._s[950]! } - public var UserInfo_AddContact: String { return self._s[952]! } - public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[953]!, self._r[953]!, [_0]) } - public var PhoneNumberHelp_ChangeNumber: String { return self._s[955]! } + public var Watch_UserInfo_MuteTitle: String { return self._s[954]! } + public var SharedMedia_EmptyMusicText: String { return self._s[955]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1minute: String { return self._s[956]! } + public var Paint_Stickers: String { return self._s[957]! } + public var Privacy_GroupsAndChannels: String { return self._s[958]! } + public var UserInfo_AddContact: String { return self._s[960]! } + public func Conversation_MessageViaUser(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[961]!, self._r[961]!, [_0]) + } + public var PhoneNumberHelp_ChangeNumber: String { return self._s[963]! } public func ChatList_ClearChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[957]!, self._r[957]!, [_0]) + return formatWithArgumentRanges(self._s[965]!, self._r[965]!, [_0]) } - public var DialogList_NoMessagesTitle: String { return self._s[958]! } - public var EditProfile_NameAndPhotoHelp: String { return self._s[959]! } - public var BlockedUsers_BlockUser: String { return self._s[960]! } - public var Notifications_PermissionsOpenSettings: String { return self._s[961]! } - public var MediaPicker_UngroupDescription: String { return self._s[962]! } - public var Watch_NoConnection: String { return self._s[963]! } - public var Month_GenSeptember: String { return self._s[964]! } - public var Conversation_ViewGroup: String { return self._s[965]! } - public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[968]! } - public var Privacy_Forwards_AlwaysLink: String { return self._s[969]! } - public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[970]! } - public var MediaPicker_CameraRoll: String { return self._s[972]! } - public var Month_GenAugust: String { return self._s[973]! } - public var AccessDenied_VideoMessageMicrophone: String { return self._s[974]! } - public var SharedMedia_EmptyText: String { return self._s[975]! } - public var Map_ShareLiveLocation: String { return self._s[976]! } - public var Calls_All: String { return self._s[977]! } - public var Appearance_ThemeNight: String { return self._s[980]! } - public var Conversation_HoldForAudio: String { return self._s[981]! } - public var SettingsSearch_Synonyms_Support: String { return self._s[984]! } - public var GroupInfo_GroupHistoryHidden: String { return self._s[985]! } - public var SocksProxySetup_Secret: String { return self._s[986]! } - public var Channel_BanList_RestrictedTitle: String { return self._s[988]! } - public var Conversation_Location: String { return self._s[989]! } + public var DialogList_NoMessagesTitle: String { return self._s[966]! } + public var EditProfile_NameAndPhotoHelp: String { return self._s[967]! } + public var BlockedUsers_BlockUser: String { return self._s[968]! } + public var Notifications_PermissionsOpenSettings: String { return self._s[969]! } + public var MediaPicker_UngroupDescription: String { return self._s[970]! } + public var Watch_NoConnection: String { return self._s[971]! } + public var Month_GenSeptember: String { return self._s[972]! } + public var Conversation_ViewGroup: String { return self._s[973]! } + public var Channel_AdminLogFilter_EventsLeavingSubscribers: String { return self._s[976]! } + public var Privacy_Forwards_AlwaysLink: String { return self._s[977]! } + public var Passport_FieldOneOf_FinalDelimeter: String { return self._s[978]! } + public var MediaPicker_CameraRoll: String { return self._s[980]! } + public var Month_GenAugust: String { return self._s[981]! } + public var AccessDenied_VideoMessageMicrophone: String { return self._s[982]! } + public var SharedMedia_EmptyText: String { return self._s[983]! } + public var Map_ShareLiveLocation: String { return self._s[984]! } + public var Calls_All: String { return self._s[985]! } + public var Appearance_ThemeNight: String { return self._s[988]! } + public var Conversation_HoldForAudio: String { return self._s[989]! } + public var SettingsSearch_Synonyms_Support: String { return self._s[992]! } + public var GroupInfo_GroupHistoryHidden: String { return self._s[993]! } + public var SocksProxySetup_Secret: String { return self._s[994]! } + public var Channel_BanList_RestrictedTitle: String { return self._s[996]! } + public var Conversation_Location: String { return self._s[997]! } public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[990]!, self._r[990]!, [_1, _2]) + return formatWithArgumentRanges(self._s[998]!, self._r[998]!, [_1, _2]) } - public var ChatSettings_AutoDownloadPhotos: String { return self._s[992]! } - public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[993]! } - public var Notifications_PermissionsText: String { return self._s[994]! } - public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[995]! } - public var Call_Flip: String { return self._s[996]! } - public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[997]! } - public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[999]! } - public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1001]! } - public var Passport_DeletePassportConfirmation: String { return self._s[1003]! } - public var Login_InvalidCodeError: String { return self._s[1004]! } - public var StickerPacksSettings_FeaturedPacks: String { return self._s[1005]! } + public var ChatSettings_AutoDownloadPhotos: String { return self._s[1000]! } + public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1001]! } + public var Notifications_PermissionsText: String { return self._s[1002]! } + public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1003]! } + public var Call_Flip: String { return self._s[1004]! } + public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1005]! } + public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1007]! } + public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1009]! } + public var Passport_DeletePassportConfirmation: String { return self._s[1011]! } + public var Login_InvalidCodeError: String { return self._s[1012]! } + public var StickerPacksSettings_FeaturedPacks: String { return self._s[1013]! } public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1006]!, self._r[1006]!, [_0]) + return formatWithArgumentRanges(self._s[1014]!, self._r[1014]!, [_0]) } public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1007]!, self._r[1007]!, [_0]) + return formatWithArgumentRanges(self._s[1015]!, self._r[1015]!, [_0]) } - public var Call_CallInProgressTitle: String { return self._s[1008]! } - public var Month_ShortSeptember: String { return self._s[1009]! } - public var Watch_ChannelInfo_Title: String { return self._s[1010]! } - public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1013]! } - public var DialogList_PasscodeLockHelp: String { return self._s[1014]! } - public var Notifications_Badge_IncludePublicGroups: String { return self._s[1015]! } - public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1016]! } - public var PhotoEditor_CropReset: String { return self._s[1017]! } - public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1019]! } - public var Channel_Management_LabelEditor: String { return self._s[1020]! } - public var Passport_Identity_LatinNameHelp: String { return self._s[1022]! } - public var PhotoEditor_HighlightsTool: String { return self._s[1023]! } - public var UserInfo_Title: String { return self._s[1024]! } - public var ChatList_HideAction: String { return self._s[1025]! } - public var AccessDenied_Title: String { return self._s[1026]! } - public var DialogList_SearchLabel: String { return self._s[1027]! } - public var Group_Setup_HistoryHidden: String { return self._s[1028]! } - public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1029]! } - public var State_Updating: String { return self._s[1031]! } - public var Contacts_TabTitle: String { return self._s[1032]! } - public var Notifications_Badge_CountUnreadMessages: String { return self._s[1034]! } - public var GroupInfo_GroupHistory: String { return self._s[1035]! } - public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1036]! } - public var Wallpaper_SetColor: String { return self._s[1037]! } - public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1038]! } - public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1039]! } - public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1040]! } - public var Contacts_NotRegisteredSection: String { return self._s[1041]! } + public var Call_CallInProgressTitle: String { return self._s[1016]! } + public var Month_ShortSeptember: String { return self._s[1017]! } + public var Watch_ChannelInfo_Title: String { return self._s[1018]! } + public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1021]! } + public var DialogList_PasscodeLockHelp: String { return self._s[1022]! } + public var Notifications_Badge_IncludePublicGroups: String { return self._s[1023]! } + public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1024]! } + public var PhotoEditor_CropReset: String { return self._s[1025]! } + public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1027]! } + public var Channel_Management_LabelEditor: String { return self._s[1028]! } + public var Passport_Identity_LatinNameHelp: String { return self._s[1030]! } + public var PhotoEditor_HighlightsTool: String { return self._s[1031]! } + public var UserInfo_Title: String { return self._s[1032]! } + public var ChatList_HideAction: String { return self._s[1033]! } + public var AccessDenied_Title: String { return self._s[1034]! } + public var DialogList_SearchLabel: String { return self._s[1035]! } + public var Group_Setup_HistoryHidden: String { return self._s[1036]! } + public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1037]! } + public var State_Updating: String { return self._s[1039]! } + public var Contacts_TabTitle: String { return self._s[1040]! } + public var Notifications_Badge_CountUnreadMessages: String { return self._s[1042]! } + public var GroupInfo_GroupHistory: String { return self._s[1043]! } + public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1044]! } + public var Wallpaper_SetColor: String { return self._s[1045]! } + public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1046]! } + public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1047]! } + public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1048]! } + public var Contacts_NotRegisteredSection: String { return self._s[1049]! } public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1042]!, self._r[1042]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1050]!, self._r[1050]!, [_1, _2, _3]) } - public var Paint_Clear: String { return self._s[1043]! } - public var StickerPacksSettings_ArchivedMasks: String { return self._s[1044]! } - public var SocksProxySetup_Connecting: String { return self._s[1045]! } - public var ExplicitContent_AlertChannel: String { return self._s[1046]! } - public var CreatePoll_AllOptionsAdded: String { return self._s[1047]! } - public var Conversation_Contact: String { return self._s[1048]! } - public var Login_CodeExpired: String { return self._s[1049]! } - public var Passport_DiscardMessageAction: String { return self._s[1050]! } - public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1051]! } - public var Channel_AdminLog_EmptyMessageText: String { return self._s[1052]! } - public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1053]! } - public var Month_ShortApril: String { return self._s[1054]! } - public var AuthSessions_CurrentSession: String { return self._s[1055]! } - public var WallpaperPreview_CropTopText: String { return self._s[1059]! } - public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1060]! } - public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1061]! } - public var Channel_Setup_TypePrivate: String { return self._s[1063]! } - public var Forward_ChannelReadOnly: String { return self._s[1066]! } - public var PhotoEditor_CurvesBlue: String { return self._s[1067]! } - public var UserInfo_BotPrivacy: String { return self._s[1068]! } - public var Notification_PassportValueEmail: String { return self._s[1069]! } - public var EmptyGroupInfo_Subtitle: String { return self._s[1070]! } - public var GroupPermission_NewTitle: String { return self._s[1071]! } - public var CallFeedback_ReasonDropped: String { return self._s[1072]! } - public var GroupInfo_Permissions_AddException: String { return self._s[1073]! } - public var Channel_SignMessages_Help: String { return self._s[1075]! } - public var Undo_ChatDeleted: String { return self._s[1077]! } - public var Conversation_ChatBackground: String { return self._s[1078]! } - public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1079]! } - public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1080]! } - public var Passport_Language_pt: String { return self._s[1081]! } - public var NotificationsSound_Popcorn: String { return self._s[1084]! } - public var AutoNightTheme_Disabled: String { return self._s[1085]! } - public var BlockedUsers_LeavePrefix: String { return self._s[1086]! } - public var WallpaperPreview_CustomColorTopText: String { return self._s[1087]! } - public var Contacts_PermissionsSuppressWarningText: String { return self._s[1088]! } - public var WallpaperSearch_ColorBlue: String { return self._s[1089]! } + public var Paint_Clear: String { return self._s[1051]! } + public var StickerPacksSettings_ArchivedMasks: String { return self._s[1052]! } + public var SocksProxySetup_Connecting: String { return self._s[1053]! } + public var ExplicitContent_AlertChannel: String { return self._s[1054]! } + public var CreatePoll_AllOptionsAdded: String { return self._s[1055]! } + public var Conversation_Contact: String { return self._s[1056]! } + public var Login_CodeExpired: String { return self._s[1057]! } + public var Passport_DiscardMessageAction: String { return self._s[1058]! } + public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1059]! } + public var Channel_AdminLog_EmptyMessageText: String { return self._s[1060]! } + public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1061]! } + public var Month_ShortApril: String { return self._s[1062]! } + public var AuthSessions_CurrentSession: String { return self._s[1063]! } + public var WallpaperPreview_CropTopText: String { return self._s[1067]! } + public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1068]! } + public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1069]! } + public var Channel_Setup_TypePrivate: String { return self._s[1071]! } + public var Forward_ChannelReadOnly: String { return self._s[1074]! } + public var PhotoEditor_CurvesBlue: String { return self._s[1075]! } + public var UserInfo_BotPrivacy: String { return self._s[1076]! } + public var Notification_PassportValueEmail: String { return self._s[1077]! } + public var EmptyGroupInfo_Subtitle: String { return self._s[1078]! } + public var GroupPermission_NewTitle: String { return self._s[1079]! } + public var CallFeedback_ReasonDropped: String { return self._s[1080]! } + public var GroupInfo_Permissions_AddException: String { return self._s[1081]! } + public var Channel_SignMessages_Help: String { return self._s[1083]! } + public var Undo_ChatDeleted: String { return self._s[1085]! } + public var Conversation_ChatBackground: String { return self._s[1086]! } + public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1087]! } + public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1088]! } + public var Passport_Language_pt: String { return self._s[1089]! } + public var NotificationsSound_Popcorn: String { return self._s[1092]! } + public var AutoNightTheme_Disabled: String { return self._s[1093]! } + public var BlockedUsers_LeavePrefix: String { return self._s[1094]! } + public var WallpaperPreview_CustomColorTopText: String { return self._s[1095]! } + public var Contacts_PermissionsSuppressWarningText: String { return self._s[1096]! } + public var WallpaperSearch_ColorBlue: String { return self._s[1097]! } public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1090]!, self._r[1090]!, [_0]) + return formatWithArgumentRanges(self._s[1098]!, self._r[1098]!, [_0]) } - public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1091]! } - public var SocksProxySetup_UseForCalls: String { return self._s[1092]! } - public var Passport_DeleteDocumentConfirmation: String { return self._s[1094]! } + public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1099]! } + public var SocksProxySetup_UseForCalls: String { return self._s[1100]! } + public var Passport_DeleteDocumentConfirmation: String { return self._s[1102]! } public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1095]!, self._r[1095]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1103]!, self._r[1103]!, ["\(_0)"]) } - public var SocksProxySetup_Hostname: String { return self._s[1098]! } - public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1099]! } - public var Compose_NewEncryptedChat: String { return self._s[1100]! } - public var Login_CodeFloodError: String { return self._s[1101]! } - public var Calls_TabTitle: String { return self._s[1102]! } - public var Privacy_ProfilePhoto: String { return self._s[1103]! } - public var Passport_Language_he: String { return self._s[1104]! } - public var GroupPermission_Title: String { return self._s[1105]! } + public var SocksProxySetup_Hostname: String { return self._s[1106]! } + public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1107]! } + public var Compose_NewEncryptedChat: String { return self._s[1108]! } + public var Login_CodeFloodError: String { return self._s[1109]! } + public var Calls_TabTitle: String { return self._s[1110]! } + public var Privacy_ProfilePhoto: String { return self._s[1111]! } + public var Passport_Language_he: String { return self._s[1112]! } + public var GroupPermission_Title: String { return self._s[1113]! } public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1106]!, self._r[1106]!, [_0]) + return formatWithArgumentRanges(self._s[1114]!, self._r[1114]!, [_0]) } - public var GroupPermission_NoChangeInfo: String { return self._s[1107]! } - public var ChatList_DeleteForCurrentUser: String { return self._s[1108]! } - public var Tour_Text1: String { return self._s[1109]! } - public var Month_ShortFebruary: String { return self._s[1110]! } - public var TwoStepAuth_EmailSkip: String { return self._s[1111]! } - public var NotificationsSound_Glass: String { return self._s[1112]! } - public var Appearance_ThemeNightBlue: String { return self._s[1113]! } - public var CheckoutInfo_Pay: String { return self._s[1114]! } - public var Invite_LargeRecipientsCountWarning: String { return self._s[1116]! } - public var Call_CallAgain: String { return self._s[1118]! } - public var AttachmentMenu_SendAsFile: String { return self._s[1119]! } - public var AccessDenied_MicrophoneRestricted: String { return self._s[1120]! } - public var Passport_InvalidPasswordError: String { return self._s[1121]! } - public var Watch_Message_Game: String { return self._s[1122]! } - public var Stickers_Install: String { return self._s[1123]! } - public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1124]! } - public var Passport_Identity_ResidenceCountry: String { return self._s[1126]! } - public var Notifications_GroupNotificationsHelp: String { return self._s[1127]! } - public var AuthSessions_OtherSessions: String { return self._s[1128]! } - public var Channel_Username_Help: String { return self._s[1129]! } - public var Camera_Title: String { return self._s[1130]! } - public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1132]! } - public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1133]! } - public var Channel_AdminLog_SendPolls: String { return self._s[1134]! } - public var Channel_AdminLog_TitleAllEvents: String { return self._s[1135]! } - public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1136]! } - public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1137]! } - public var Conversation_RestrictedStickers: String { return self._s[1138]! } - public var Notifications_ExceptionsResetToDefaults: String { return self._s[1140]! } - public var UserInfo_TelegramCall: String { return self._s[1142]! } - public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1143]! } - public var CreatePoll_OptionsHeader: String { return self._s[1144]! } - public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1145]! } - public var ArchivedChats_IntroTitle1: String { return self._s[1146]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1147]! } - public var Passport_Identity_EditPersonalDetails: String { return self._s[1148]! } + public var GroupPermission_NoChangeInfo: String { return self._s[1115]! } + public var ChatList_DeleteForCurrentUser: String { return self._s[1116]! } + public var Tour_Text1: String { return self._s[1117]! } + public var Channel_EditAdmin_TransferOwnership: String { return self._s[1118]! } + public var Month_ShortFebruary: String { return self._s[1119]! } + public var TwoStepAuth_EmailSkip: String { return self._s[1120]! } + public var NotificationsSound_Glass: String { return self._s[1121]! } + public var Appearance_ThemeNightBlue: String { return self._s[1122]! } + public var CheckoutInfo_Pay: String { return self._s[1123]! } + public var Invite_LargeRecipientsCountWarning: String { return self._s[1125]! } + public var Call_CallAgain: String { return self._s[1127]! } + public var AttachmentMenu_SendAsFile: String { return self._s[1128]! } + public var AccessDenied_MicrophoneRestricted: String { return self._s[1129]! } + public var Passport_InvalidPasswordError: String { return self._s[1130]! } + public var Watch_Message_Game: String { return self._s[1131]! } + public var Stickers_Install: String { return self._s[1132]! } + public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1133]! } + public var Passport_Identity_ResidenceCountry: String { return self._s[1135]! } + public var Notifications_GroupNotificationsHelp: String { return self._s[1136]! } + public var AuthSessions_OtherSessions: String { return self._s[1137]! } + public var Channel_Username_Help: String { return self._s[1138]! } + public var Camera_Title: String { return self._s[1139]! } + public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1141]! } + public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1142]! } + public var Channel_AdminLog_SendPolls: String { return self._s[1143]! } + public var Channel_AdminLog_TitleAllEvents: String { return self._s[1144]! } + public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1145]! } + public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1146]! } + public var Conversation_RestrictedStickers: String { return self._s[1147]! } + public var Notifications_ExceptionsResetToDefaults: String { return self._s[1149]! } + public var UserInfo_TelegramCall: String { return self._s[1151]! } + public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1152]! } + public var CreatePoll_OptionsHeader: String { return self._s[1153]! } + public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1154]! } + public var ArchivedChats_IntroTitle1: String { return self._s[1155]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1156]! } + public var Passport_Identity_EditPersonalDetails: String { return self._s[1157]! } public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1149]!, self._r[1149]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1158]!, self._r[1158]!, [_1, _2, _3]) } - public var Settings_SaveEditedPhotos: String { return self._s[1150]! } - public var TwoStepAuth_ConfirmationTitle: String { return self._s[1151]! } - public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1152]! } - public var Conversation_MessageDialogRetry: String { return self._s[1153]! } - public var Conversation_DiscardVoiceMessageAction: String { return self._s[1154]! } - public var Group_Setup_TypeHeader: String { return self._s[1155]! } - public var Paint_RecentStickers: String { return self._s[1156]! } - public var PhotoEditor_GrainTool: String { return self._s[1157]! } - public var CheckoutInfo_ShippingInfoState: String { return self._s[1158]! } - public var EmptyGroupInfo_Line4: String { return self._s[1159]! } - public var Watch_AuthRequired: String { return self._s[1161]! } + public var Settings_SaveEditedPhotos: String { return self._s[1159]! } + public var TwoStepAuth_ConfirmationTitle: String { return self._s[1160]! } + public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1161]! } + public var Conversation_MessageDialogRetry: String { return self._s[1162]! } + public var Conversation_DiscardVoiceMessageAction: String { return self._s[1163]! } + public var Group_Setup_TypeHeader: String { return self._s[1164]! } + public var Paint_RecentStickers: String { return self._s[1165]! } + public var PhotoEditor_GrainTool: String { return self._s[1166]! } + public var CheckoutInfo_ShippingInfoState: String { return self._s[1167]! } + public var EmptyGroupInfo_Line4: String { return self._s[1168]! } + public var Watch_AuthRequired: String { return self._s[1170]! } public func Passport_Email_UseTelegramEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1162]!, self._r[1162]!, [_0]) + return formatWithArgumentRanges(self._s[1171]!, self._r[1171]!, [_0]) } - public var Conversation_EncryptedDescriptionTitle: String { return self._s[1163]! } - public var ChannelIntro_Text: String { return self._s[1164]! } - public var DialogList_DeleteBotConfirmation: String { return self._s[1165]! } - public var GroupPermission_NoSendMedia: String { return self._s[1166]! } - public var Calls_AddTab: String { return self._s[1167]! } - public var Message_ReplyActionButtonShowReceipt: String { return self._s[1168]! } - public var Channel_AdminLog_EmptyFilterText: String { return self._s[1169]! } - public var Notification_MessageLifetime1d: String { return self._s[1170]! } - public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1171]! } - public var Channel_BanUser_PermissionsHeader: String { return self._s[1172]! } - public var Passport_Identity_GenderFemale: String { return self._s[1173]! } - public var BlockedUsers_BlockTitle: String { return self._s[1174]! } + public var Conversation_EncryptedDescriptionTitle: String { return self._s[1172]! } + public var ChannelIntro_Text: String { return self._s[1173]! } + public var DialogList_DeleteBotConfirmation: String { return self._s[1174]! } + public var GroupPermission_NoSendMedia: String { return self._s[1175]! } + public var Calls_AddTab: String { return self._s[1176]! } + public var Message_ReplyActionButtonShowReceipt: String { return self._s[1177]! } + public var Channel_AdminLog_EmptyFilterText: String { return self._s[1178]! } + public var Notification_MessageLifetime1d: String { return self._s[1179]! } + public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1180]! } + public var Channel_BanUser_PermissionsHeader: String { return self._s[1181]! } + public var Passport_Identity_GenderFemale: String { return self._s[1182]! } + public var BlockedUsers_BlockTitle: String { return self._s[1183]! } public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1175]!, self._r[1175]!, [_1]) + return formatWithArgumentRanges(self._s[1184]!, self._r[1184]!, [_1]) } - public var Weekday_Yesterday: String { return self._s[1176]! } - public var WallpaperSearch_ColorBlack: String { return self._s[1177]! } - public var ChatList_ArchiveAction: String { return self._s[1178]! } - public var AutoNightTheme_Scheduled: String { return self._s[1179]! } + public var Weekday_Yesterday: String { return self._s[1185]! } + public var WallpaperSearch_ColorBlack: String { return self._s[1186]! } + public var ChatList_ArchiveAction: String { return self._s[1187]! } + public var AutoNightTheme_Scheduled: String { return self._s[1188]! } public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1180]!, self._r[1180]!, [_1, _2, _3, _4, _5, _6]) + return formatWithArgumentRanges(self._s[1189]!, self._r[1189]!, [_1, _2, _3, _4, _5, _6]) } - public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1181]! } + public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1190]! } public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1182]!, self._r[1182]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1191]!, self._r[1191]!, [_1, _2]) } - public var CreatePoll_Create: String { return self._s[1183]! } - public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1184]! } + public var CreatePoll_Create: String { return self._s[1192]! } + public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1193]! } public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1185]!, self._r[1185]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1194]!, self._r[1194]!, [_1, _2]) } - public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1186]! } - public var Notifications_InAppNotificationsSounds: String { return self._s[1188]! } + public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1195]! } + public var Notifications_InAppNotificationsSounds: String { return self._s[1197]! } public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1189]!, self._r[1189]!, [_1]) + return formatWithArgumentRanges(self._s[1198]!, self._r[1198]!, [_1]) } - public var Preview_OpenInInstagram: String { return self._s[1190]! } - public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1191]! } + public var Preview_OpenInInstagram: String { return self._s[1199]! } + public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1200]! } public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1192]!, self._r[1192]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1201]!, self._r[1201]!, [_1, _2, _3]) } public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1193]!, self._r[1193]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1202]!, self._r[1202]!, [_1, _2]) } - public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1194]! } - public var ArchivedChats_IntroText3: String { return self._s[1195]! } - public var ChatList_UndoArchiveHiddenText: String { return self._s[1196]! } - public var NetworkUsageSettings_TotalSection: String { return self._s[1197]! } - public var Channel_Setup_TypePrivateHelp: String { return self._s[1198]! } + public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1203]! } + public var ArchivedChats_IntroText3: String { return self._s[1204]! } + public var ChatList_UndoArchiveHiddenText: String { return self._s[1205]! } + public var NetworkUsageSettings_TotalSection: String { return self._s[1206]! } + public var Channel_Setup_TypePrivateHelp: String { return self._s[1207]! } public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1199]!, self._r[1199]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1208]!, self._r[1208]!, [_1, _2, _3]) } - public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1201]! } - public var FastTwoStepSetup_HintSection: String { return self._s[1202]! } - public var Wallpaper_PhotoLibrary: String { return self._s[1203]! } - public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1204]! } - public var Gif_NoGifsFound: String { return self._s[1205]! } - public var Watch_LastSeen_WithinAMonth: String { return self._s[1206]! } - public var GroupInfo_ActionPromote: String { return self._s[1207]! } - public var PasscodeSettings_SimplePasscode: String { return self._s[1208]! } - public var GroupInfo_Permissions_Title: String { return self._s[1209]! } - public var Permissions_ContactsText_v0: String { return self._s[1210]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1211]! } - public var PrivacySettings_DataSettingsHelp: String { return self._s[1214]! } - public var Passport_FieldEmailHelp: String { return self._s[1215]! } - public var Passport_Identity_GenderPlaceholder: String { return self._s[1216]! } - public var Weekday_ShortSaturday: String { return self._s[1217]! } - public var ContactInfo_PhoneLabelMain: String { return self._s[1218]! } - public var Watch_Conversation_UserInfo: String { return self._s[1219]! } - public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1220]! } - public var PrivacyLastSeenSettings_Title: String { return self._s[1221]! } - public var Conversation_ShareBotLocationConfirmation: String { return self._s[1222]! } - public var PhotoEditor_VignetteTool: String { return self._s[1223]! } - public var Passport_Address_Street1Placeholder: String { return self._s[1224]! } - public var Passport_Language_et: String { return self._s[1225]! } - public var AppUpgrade_Running: String { return self._s[1226]! } - public var Channel_DiscussionGroup_Info: String { return self._s[1228]! } - public var Passport_Language_bg: String { return self._s[1229]! } - public var Stickers_NoStickersFound: String { return self._s[1231]! } + public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1210]! } + public var FastTwoStepSetup_HintSection: String { return self._s[1211]! } + public var Wallpaper_PhotoLibrary: String { return self._s[1212]! } + public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1213]! } + public var Gif_NoGifsFound: String { return self._s[1214]! } + public var Watch_LastSeen_WithinAMonth: String { return self._s[1215]! } + public var GroupInfo_ActionPromote: String { return self._s[1216]! } + public var PasscodeSettings_SimplePasscode: String { return self._s[1217]! } + public var GroupInfo_Permissions_Title: String { return self._s[1218]! } + public var Permissions_ContactsText_v0: String { return self._s[1219]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1220]! } + public var PrivacySettings_DataSettingsHelp: String { return self._s[1223]! } + public var Passport_FieldEmailHelp: String { return self._s[1224]! } + public var Passport_Identity_GenderPlaceholder: String { return self._s[1225]! } + public var Weekday_ShortSaturday: String { return self._s[1226]! } + public var ContactInfo_PhoneLabelMain: String { return self._s[1227]! } + public var Watch_Conversation_UserInfo: String { return self._s[1228]! } + public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1229]! } + public var PrivacyLastSeenSettings_Title: String { return self._s[1230]! } + public var Conversation_ShareBotLocationConfirmation: String { return self._s[1231]! } + public var PhotoEditor_VignetteTool: String { return self._s[1232]! } + public var Passport_Address_Street1Placeholder: String { return self._s[1233]! } + public var Passport_Language_et: String { return self._s[1234]! } + public var AppUpgrade_Running: String { return self._s[1235]! } + public var Channel_DiscussionGroup_Info: String { return self._s[1237]! } + public var Passport_Language_bg: String { return self._s[1238]! } + public var Stickers_NoStickersFound: String { return self._s[1240]! } public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1233]!, self._r[1233]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1242]!, self._r[1242]!, [_1, _2]) } - public var Settings_About: String { return self._s[1234]! } + public var Settings_About: String { return self._s[1243]! } public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1235]!, self._r[1235]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1244]!, self._r[1244]!, [_0, _1, _2]) } - public var KeyCommand_NewMessage: String { return self._s[1237]! } - public var Group_ErrorAddBlocked: String { return self._s[1238]! } + public var KeyCommand_NewMessage: String { return self._s[1246]! } + public var Group_ErrorAddBlocked: String { return self._s[1247]! } public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1239]!, self._r[1239]!, [_0]) + return formatWithArgumentRanges(self._s[1248]!, self._r[1248]!, [_0]) } - public var Map_LocationTitle: String { return self._s[1240]! } - public var CallSettings_UseLessDataLongDescription: String { return self._s[1241]! } - public var Cache_ClearProgress: String { return self._s[1242]! } + public var Map_LocationTitle: String { return self._s[1249]! } + public var CallSettings_UseLessDataLongDescription: String { return self._s[1250]! } + public var Cache_ClearProgress: String { return self._s[1251]! } public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1243]!, self._r[1243]!, [_0]) + return formatWithArgumentRanges(self._s[1252]!, self._r[1252]!, [_0]) } - public var GroupRemoved_AddToGroup: String { return self._s[1244]! } - public var Passport_UpdateRequiredError: String { return self._s[1245]! } + public var GroupRemoved_AddToGroup: String { return self._s[1253]! } + public var Passport_UpdateRequiredError: String { return self._s[1254]! } public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1246]!, self._r[1246]!, [_1]) + return formatWithArgumentRanges(self._s[1255]!, self._r[1255]!, [_1]) } - public var Notifications_PermissionsSuppressWarningText: String { return self._s[1248]! } - public var Passport_Identity_MainPageHelp: String { return self._s[1249]! } - public var Conversation_StatusKickedFromGroup: String { return self._s[1250]! } - public var Passport_Language_ka: String { return self._s[1251]! } - public var Call_Decline: String { return self._s[1252]! } - public var SocksProxySetup_ProxyEnabled: String { return self._s[1253]! } + public var Notifications_PermissionsSuppressWarningText: String { return self._s[1257]! } + public var Passport_Identity_MainPageHelp: String { return self._s[1258]! } + public var Conversation_StatusKickedFromGroup: String { return self._s[1259]! } + public var Passport_Language_ka: String { return self._s[1260]! } + public var Call_Decline: String { return self._s[1261]! } + public var SocksProxySetup_ProxyEnabled: String { return self._s[1262]! } public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1256]!, self._r[1256]!, [_0]) + return formatWithArgumentRanges(self._s[1265]!, self._r[1265]!, [_0]) } - public var CallFeedback_Send: String { return self._s[1257]! } + public var CallFeedback_Send: String { return self._s[1266]! } public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1258]!, self._r[1258]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1267]!, self._r[1267]!, [_1, _2]) } - public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1259]! } - public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1261]! } - public var Passport_DeletePassport: String { return self._s[1262]! } - public var Appearance_AppIconFilled: String { return self._s[1263]! } - public var Privacy_Calls_P2PAlways: String { return self._s[1264]! } - public var Month_ShortDecember: String { return self._s[1265]! } - public var Channel_AdminLog_CanEditMessages: String { return self._s[1267]! } + public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1268]! } + public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1270]! } + public var Passport_DeletePassport: String { return self._s[1271]! } + public var Appearance_AppIconFilled: String { return self._s[1272]! } + public var Privacy_Calls_P2PAlways: String { return self._s[1273]! } + public var Month_ShortDecember: String { return self._s[1274]! } + public var Channel_AdminLog_CanEditMessages: String { return self._s[1276]! } public func Contacts_AccessDeniedHelpLandscape(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1268]!, self._r[1268]!, [_0]) + return formatWithArgumentRanges(self._s[1277]!, self._r[1277]!, [_0]) } - public var Channel_Stickers_Searching: String { return self._s[1269]! } - public var Conversation_EncryptedDescription1: String { return self._s[1270]! } - public var Conversation_EncryptedDescription2: String { return self._s[1271]! } - public var PasscodeSettings_PasscodeOptions: String { return self._s[1272]! } - public var Conversation_EncryptedDescription3: String { return self._s[1273]! } - public var PhotoEditor_SharpenTool: String { return self._s[1274]! } - public var Conversation_EncryptedDescription4: String { return self._s[1276]! } - public var Channel_Members_AddMembers: String { return self._s[1277]! } - public var Wallpaper_Search: String { return self._s[1278]! } - public var Weekday_Friday: String { return self._s[1279]! } - public var Privacy_ContactsSync: String { return self._s[1280]! } - public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1281]! } - public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1282]! } + public var Channel_Stickers_Searching: String { return self._s[1278]! } + public var Conversation_EncryptedDescription1: String { return self._s[1279]! } + public var Conversation_EncryptedDescription2: String { return self._s[1280]! } + public var PasscodeSettings_PasscodeOptions: String { return self._s[1281]! } + public var Conversation_EncryptedDescription3: String { return self._s[1282]! } + public var PhotoEditor_SharpenTool: String { return self._s[1283]! } + public var Conversation_EncryptedDescription4: String { return self._s[1285]! } + public var Channel_Members_AddMembers: String { return self._s[1286]! } + public var Wallpaper_Search: String { return self._s[1287]! } + public var Weekday_Friday: String { return self._s[1288]! } + public var Privacy_ContactsSync: String { return self._s[1289]! } + public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1290]! } + public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1291]! } public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1283]!, self._r[1283]!, [_0]) + return formatWithArgumentRanges(self._s[1292]!, self._r[1292]!, [_0]) } - public var GroupInfo_Permissions_Removed: String { return self._s[1284]! } - public var Passport_Identity_GenderMale: String { return self._s[1285]! } + public var GroupInfo_Permissions_Removed: String { return self._s[1293]! } + public var Passport_Identity_GenderMale: String { return self._s[1294]! } public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1286]!, self._r[1286]!, [_0]) + return formatWithArgumentRanges(self._s[1295]!, self._r[1295]!, [_0]) } - public var Notifications_PermissionsKeepDisabled: String { return self._s[1287]! } - public var Conversation_JumpToDate: String { return self._s[1288]! } - public var Contacts_GlobalSearch: String { return self._s[1289]! } - public var AutoDownloadSettings_ResetHelp: String { return self._s[1290]! } - public var SettingsSearch_Synonyms_FAQ: String { return self._s[1291]! } - public var Profile_MessageLifetime1d: String { return self._s[1292]! } + public var Notifications_PermissionsKeepDisabled: String { return self._s[1296]! } + public var Conversation_JumpToDate: String { return self._s[1297]! } + public var Contacts_GlobalSearch: String { return self._s[1298]! } + public var AutoDownloadSettings_ResetHelp: String { return self._s[1299]! } + public var SettingsSearch_Synonyms_FAQ: String { return self._s[1300]! } + public var Profile_MessageLifetime1d: String { return self._s[1301]! } public func MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1293]!, self._r[1293]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1302]!, self._r[1302]!, [_1, _2]) } - public var StickerPack_BuiltinPackName: String { return self._s[1296]! } + public var StickerPack_BuiltinPackName: String { return self._s[1305]! } public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1297]!, self._r[1297]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1306]!, self._r[1306]!, [_1, _2]) } - public var Passport_InfoTitle: String { return self._s[1299]! } - public var Notifications_PermissionsUnreachableText: String { return self._s[1300]! } + public var Passport_InfoTitle: String { return self._s[1308]! } + public var Notifications_PermissionsUnreachableText: String { return self._s[1309]! } public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1304]!, self._r[1304]!, [_0]) + return formatWithArgumentRanges(self._s[1313]!, self._r[1313]!, [_0]) } public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1305]!, self._r[1305]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1314]!, self._r[1314]!, [_1, _2]) } - public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1306]! } - public var Profile_BotInfo: String { return self._s[1307]! } - public var Watch_Compose_CreateMessage: String { return self._s[1308]! } - public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1309]! } - public var Month_ShortNovember: String { return self._s[1310]! } - public var Conversation_ScamWarning: String { return self._s[1311]! } - public var Wallpaper_SetCustomBackground: String { return self._s[1312]! } - public var Passport_Identity_TranslationsHelp: String { return self._s[1313]! } - public var NotificationsSound_Chime: String { return self._s[1314]! } - public var Passport_Language_ko: String { return self._s[1316]! } - public var InviteText_URL: String { return self._s[1317]! } - public var TextFormat_Monospace: String { return self._s[1318]! } + public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1315]! } + public var Profile_BotInfo: String { return self._s[1316]! } + public var Watch_Compose_CreateMessage: String { return self._s[1317]! } + public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1318]! } + public var Month_ShortNovember: String { return self._s[1319]! } + public var Conversation_ScamWarning: String { return self._s[1320]! } + public var Wallpaper_SetCustomBackground: String { return self._s[1321]! } + public var Passport_Identity_TranslationsHelp: String { return self._s[1322]! } + public var NotificationsSound_Chime: String { return self._s[1323]! } + public var Passport_Language_ko: String { return self._s[1325]! } + public var InviteText_URL: String { return self._s[1326]! } + public var TextFormat_Monospace: String { return self._s[1327]! } public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1319]!, self._r[1319]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1328]!, self._r[1328]!, [_1, _2, _3]) } public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1320]!, self._r[1320]!, [_0]) + return formatWithArgumentRanges(self._s[1329]!, self._r[1329]!, [_0]) } public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1321]!, self._r[1321]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1330]!, self._r[1330]!, [_1, _2]) } - public var Passport_InfoLearnMore: String { return self._s[1323]! } - public var TwoStepAuth_EmailPlaceholder: String { return self._s[1324]! } - public var Passport_Identity_AddIdentityCard: String { return self._s[1325]! } - public var Your_card_has_expired: String { return self._s[1326]! } - public var StickerPacksSettings_StickerPacksSection: String { return self._s[1327]! } - public var GroupInfo_InviteLink_Help: String { return self._s[1328]! } - public var Conversation_Report: String { return self._s[1332]! } - public var Notifications_MessageNotificationsSound: String { return self._s[1333]! } - public var Notification_MessageLifetime1m: String { return self._s[1334]! } - public var Privacy_ContactsTitle: String { return self._s[1335]! } - public var Conversation_ShareMyContactInfo: String { return self._s[1336]! } - public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1337]! } - public var Channel_Members_Title: String { return self._s[1338]! } - public var Map_OpenInWaze: String { return self._s[1339]! } - public var Login_PhoneBannedError: String { return self._s[1340]! } + public var Passport_InfoLearnMore: String { return self._s[1332]! } + public var TwoStepAuth_EmailPlaceholder: String { return self._s[1333]! } + public var Passport_Identity_AddIdentityCard: String { return self._s[1334]! } + public var Your_card_has_expired: String { return self._s[1335]! } + public var StickerPacksSettings_StickerPacksSection: String { return self._s[1336]! } + public var GroupInfo_InviteLink_Help: String { return self._s[1337]! } + public var Conversation_Report: String { return self._s[1341]! } + public var Notifications_MessageNotificationsSound: String { return self._s[1342]! } + public var Notification_MessageLifetime1m: String { return self._s[1343]! } + public var Privacy_ContactsTitle: String { return self._s[1344]! } + public var Conversation_ShareMyContactInfo: String { return self._s[1345]! } + public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1346]! } + public var Channel_Members_Title: String { return self._s[1347]! } + public var Map_OpenInWaze: String { return self._s[1348]! } + public var Login_PhoneBannedError: String { return self._s[1349]! } public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1341]!, self._r[1341]!, [_0]) + return formatWithArgumentRanges(self._s[1350]!, self._r[1350]!, [_0]) } - public var Group_Management_AddModeratorHelp: String { return self._s[1342]! } - public var AutoDownloadSettings_WifiTitle: String { return self._s[1343]! } - public var Common_OK: String { return self._s[1344]! } - public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1345]! } - public var Cache_Music: String { return self._s[1346]! } - public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1347]! } - public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1348]! } - public var TwoStepAuth_HintPlaceholder: String { return self._s[1349]! } + public var Group_Management_AddModeratorHelp: String { return self._s[1351]! } + public var AutoDownloadSettings_WifiTitle: String { return self._s[1352]! } + public var Common_OK: String { return self._s[1353]! } + public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1354]! } + public var Cache_Music: String { return self._s[1355]! } + public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1356]! } + public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1357]! } + public var TwoStepAuth_HintPlaceholder: String { return self._s[1358]! } public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1350]!, self._r[1350]!, [_1]) + return formatWithArgumentRanges(self._s[1359]!, self._r[1359]!, [_1]) } public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1351]!, self._r[1351]!, [_0]) + return formatWithArgumentRanges(self._s[1360]!, self._r[1360]!, [_0]) } - public var Watch_MessageView_ViewOnPhone: String { return self._s[1353]! } - public var Privacy_Calls_CustomShareHelp: String { return self._s[1354]! } - public var ChangePhoneNumberNumber_Title: String { return self._s[1356]! } - public var State_ConnectingToProxyInfo: String { return self._s[1357]! } - public var Message_VideoMessage: String { return self._s[1359]! } - public var ChannelInfo_DeleteChannel: String { return self._s[1360]! } - public var ContactInfo_PhoneLabelOther: String { return self._s[1361]! } - public var Channel_EditAdmin_CannotEdit: String { return self._s[1362]! } - public var Passport_DeleteAddressConfirmation: String { return self._s[1363]! } - public var WallpaperPreview_SwipeBottomText: String { return self._s[1364]! } - public var Activity_RecordingAudio: String { return self._s[1365]! } - public var SettingsSearch_Synonyms_Watch: String { return self._s[1366]! } - public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1367]! } + public var Watch_MessageView_ViewOnPhone: String { return self._s[1362]! } + public var Privacy_Calls_CustomShareHelp: String { return self._s[1363]! } + public var ChangePhoneNumberNumber_Title: String { return self._s[1365]! } + public var State_ConnectingToProxyInfo: String { return self._s[1366]! } + public var Message_VideoMessage: String { return self._s[1368]! } + public var ChannelInfo_DeleteChannel: String { return self._s[1369]! } + public var ContactInfo_PhoneLabelOther: String { return self._s[1370]! } + public var Channel_EditAdmin_CannotEdit: String { return self._s[1371]! } + public var Passport_DeleteAddressConfirmation: String { return self._s[1372]! } + public var WallpaperPreview_SwipeBottomText: String { return self._s[1373]! } + public var Activity_RecordingAudio: String { return self._s[1374]! } + public var SettingsSearch_Synonyms_Watch: String { return self._s[1375]! } + public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1376]! } public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1369]!, self._r[1369]!, [_0, _1]) + return formatWithArgumentRanges(self._s[1378]!, self._r[1378]!, [_0, _1]) } public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1373]!, self._r[1373]!, [_0]) + return formatWithArgumentRanges(self._s[1382]!, self._r[1382]!, [_0]) } - public var Conversation_ApplyLocalization: String { return self._s[1374]! } - public var UserInfo_AddPhone: String { return self._s[1375]! } - public var Map_ShareLiveLocationHelp: String { return self._s[1376]! } + public var Conversation_ApplyLocalization: String { return self._s[1383]! } + public var UserInfo_AddPhone: String { return self._s[1384]! } + public var Map_ShareLiveLocationHelp: String { return self._s[1385]! } public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1377]!, self._r[1377]!, [_0]) + return formatWithArgumentRanges(self._s[1386]!, self._r[1386]!, [_0]) } - public var Passport_Scans: String { return self._s[1379]! } - public var BlockedUsers_Unblock: String { return self._s[1380]! } + public var Passport_Scans: String { return self._s[1388]! } + public var BlockedUsers_Unblock: String { return self._s[1389]! } public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1381]!, self._r[1381]!, [_1]) + return formatWithArgumentRanges(self._s[1390]!, self._r[1390]!, [_1]) } - public var Channel_Management_LabelCreator: String { return self._s[1382]! } - public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1383]! } - public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1384]! } - public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1385]! } + public var Channel_Management_LabelCreator: String { return self._s[1391]! } + public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1392]! } + public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1393]! } + public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1394]! } public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1386]!, self._r[1386]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1395]!, self._r[1395]!, [_0, _1, _2]) } - public var Login_PhoneNumberHelp: String { return self._s[1387]! } - public var LastSeen_ALongTimeAgo: String { return self._s[1388]! } - public var Channel_AdminLog_CanPinMessages: String { return self._s[1389]! } - public var ChannelIntro_CreateChannel: String { return self._s[1390]! } - public var Conversation_UnreadMessages: String { return self._s[1391]! } - public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1392]! } - public var Channel_AdminLog_EmptyText: String { return self._s[1393]! } - public var Notification_GroupActivated: String { return self._s[1394]! } - public var NotificationSettings_ContactJoinedInfo: String { return self._s[1395]! } + public var Login_PhoneNumberHelp: String { return self._s[1396]! } + public var LastSeen_ALongTimeAgo: String { return self._s[1397]! } + public var Channel_AdminLog_CanPinMessages: String { return self._s[1398]! } + public var ChannelIntro_CreateChannel: String { return self._s[1399]! } + public var Conversation_UnreadMessages: String { return self._s[1400]! } + public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1401]! } + public var Channel_AdminLog_EmptyText: String { return self._s[1402]! } + public var Notification_GroupActivated: String { return self._s[1403]! } + public var NotificationSettings_ContactJoinedInfo: String { return self._s[1404]! } public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1396]!, self._r[1396]!, [_0]) - } - public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1397]!, self._r[1397]!, [_0, _1]) - } - public var GroupInfo_ConvertToSupergroup: String { return self._s[1399]! } - public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1400]!, self._r[1400]!, [_0]) - } - public var Undo_DeletedChannel: String { return self._s[1401]! } - public var CallFeedback_AddComment: String { return self._s[1402]! } - public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1403]!, self._r[1403]!, [_0]) - } - public var Document_TargetConfirmationFormat: String { return self._s[1404]! } - public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1405]!, self._r[1405]!, [_0]) } - public var LogoutOptions_SetPasscodeTitle: String { return self._s[1406]! } + public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1406]!, self._r[1406]!, [_0, _1]) + } + public var GroupInfo_ConvertToSupergroup: String { return self._s[1408]! } + public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1409]!, self._r[1409]!, [_0]) + } + public var Undo_DeletedChannel: String { return self._s[1410]! } + public var CallFeedback_AddComment: String { return self._s[1411]! } + public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1412]!, self._r[1412]!, [_0]) + } + public var Document_TargetConfirmationFormat: String { return self._s[1413]! } + public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1414]!, self._r[1414]!, [_0]) + } + public var LogoutOptions_SetPasscodeTitle: String { return self._s[1415]! } public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1407]!, self._r[1407]!, [_1, _2, _3, _4]) + return formatWithArgumentRanges(self._s[1416]!, self._r[1416]!, [_1, _2, _3, _4]) } - public var Contacts_SortByName: String { return self._s[1408]! } - public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1409]! } + public var Contacts_SortByName: String { return self._s[1417]! } + public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1418]! } public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1411]!, self._r[1411]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1420]!, self._r[1420]!, [_1, _2, _3]) } - public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1412]! } - public var Conversation_ClearSelfHistory: String { return self._s[1413]! } - public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1414]! } - public var PasscodeSettings_DoNotMatch: String { return self._s[1415]! } - public var Stickers_SuggestNone: String { return self._s[1416]! } - public var ChatSettings_Cache: String { return self._s[1417]! } - public var Settings_SaveIncomingPhotos: String { return self._s[1418]! } - public var Media_ShareThisPhoto: String { return self._s[1419]! } - public var InfoPlist_NSContactsUsageDescription: String { return self._s[1420]! } - public var Conversation_ContextMenuCopyLink: String { return self._s[1421]! } - public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1422]! } - public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1423]! } - public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1424]! } - public var Permissions_CellularDataTitle_v0: String { return self._s[1425]! } - public var WallpaperSearch_ColorWhite: String { return self._s[1427]! } - public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1428]! } - public var Conversation_ErrorInaccessibleMessage: String { return self._s[1429]! } - public var Map_OpenIn: String { return self._s[1430]! } + public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1421]! } + public var Conversation_ClearSelfHistory: String { return self._s[1422]! } + public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1423]! } + public var PasscodeSettings_DoNotMatch: String { return self._s[1424]! } + public var Stickers_SuggestNone: String { return self._s[1425]! } + public var ChatSettings_Cache: String { return self._s[1426]! } + public var Settings_SaveIncomingPhotos: String { return self._s[1427]! } + public var Media_ShareThisPhoto: String { return self._s[1428]! } + public var InfoPlist_NSContactsUsageDescription: String { return self._s[1429]! } + public var Conversation_ContextMenuCopyLink: String { return self._s[1430]! } + public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1431]! } + public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1432]! } + public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1433]! } + public var Permissions_CellularDataTitle_v0: String { return self._s[1434]! } + public var WallpaperSearch_ColorWhite: String { return self._s[1436]! } + public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1437]! } + public var Conversation_ErrorInaccessibleMessage: String { return self._s[1438]! } + public var Map_OpenIn: String { return self._s[1439]! } public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1433]!, self._r[1433]!, [_1]) + return formatWithArgumentRanges(self._s[1442]!, self._r[1442]!, [_1]) } public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1434]!, self._r[1434]!, [_0]) + return formatWithArgumentRanges(self._s[1443]!, self._r[1443]!, [_0]) } - public var MessagePoll_LabelClosed: String { return self._s[1435]! } - public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1437]! } - public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1438]! } - public var UserInfo_FirstNamePlaceholder: String { return self._s[1439]! } - public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1440]! } - public var Login_SelectCountry_Title: String { return self._s[1441]! } - public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1442]! } + public var MessagePoll_LabelClosed: String { return self._s[1444]! } + public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1446]! } + public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1447]! } + public var UserInfo_FirstNamePlaceholder: String { return self._s[1448]! } + public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1449]! } + public var Login_SelectCountry_Title: String { return self._s[1450]! } + public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1451]! } public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1443]!, self._r[1443]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1452]!, self._r[1452]!, [_1, _2]) } - public var Channel_AdminLog_ChangeInfo: String { return self._s[1444]! } - public var Watch_Suggestion_BRB: String { return self._s[1445]! } - public var Passport_Identity_EditIdentityCard: String { return self._s[1446]! } - public var Contacts_PermissionsTitle: String { return self._s[1447]! } - public var Conversation_RestrictedInline: String { return self._s[1448]! } - public var StickerPack_ViewPack: String { return self._s[1450]! } + public var Channel_AdminLog_ChangeInfo: String { return self._s[1453]! } + public var Watch_Suggestion_BRB: String { return self._s[1454]! } + public var Passport_Identity_EditIdentityCard: String { return self._s[1455]! } + public var Contacts_PermissionsTitle: String { return self._s[1456]! } + public var Conversation_RestrictedInline: String { return self._s[1457]! } + public var StickerPack_ViewPack: String { return self._s[1459]! } public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1451]!, self._r[1451]!, [_0]) + return formatWithArgumentRanges(self._s[1460]!, self._r[1460]!, [_0]) } - public var Compose_NewChannel: String { return self._s[1453]! } - public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1456]! } - public var Channel_Info_Stickers: String { return self._s[1458]! } - public var AutoNightTheme_PreferredTheme: String { return self._s[1459]! } - public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1460]! } - public var Passport_DeletePersonalDetails: String { return self._s[1461]! } - public var LogoutOptions_AddAccountTitle: String { return self._s[1462]! } - public var Channel_DiscussionGroupInfo: String { return self._s[1463]! } - public var Conversation_SearchNoResults: String { return self._s[1465]! } - public var MessagePoll_LabelAnonymous: String { return self._s[1466]! } - public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1467]! } - public var Login_Code: String { return self._s[1468]! } - public var Watch_Suggestion_WhatsUp: String { return self._s[1469]! } - public var Weekday_ShortThursday: String { return self._s[1470]! } - public var Resolve_ErrorNotFound: String { return self._s[1472]! } - public var LastSeen_Offline: String { return self._s[1473]! } - public var GroupPermission_AddMembersNotAvailable: String { return self._s[1474]! } - public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1475]! } - public var GroupInfo_Title: String { return self._s[1476]! } - public var NotificationsSound_Note: String { return self._s[1477]! } - public var Conversation_EditingMessagePanelTitle: String { return self._s[1478]! } - public var Watch_Message_Poll: String { return self._s[1479]! } - public var Privacy_Calls: String { return self._s[1480]! } - public var Month_ShortAugust: String { return self._s[1481]! } - public var TwoStepAuth_SetPasswordHelp: String { return self._s[1482]! } - public var Notifications_Reset: String { return self._s[1483]! } - public var Conversation_Pin: String { return self._s[1484]! } - public var Passport_Language_lv: String { return self._s[1485]! } - public var BlockedUsers_Info: String { return self._s[1486]! } - public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1488]! } - public var Watch_Conversation_Unblock: String { return self._s[1490]! } + public var Compose_NewChannel: String { return self._s[1462]! } + public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1465]! } + public var Channel_Info_Stickers: String { return self._s[1467]! } + public var AutoNightTheme_PreferredTheme: String { return self._s[1468]! } + public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1469]! } + public var Passport_DeletePersonalDetails: String { return self._s[1470]! } + public var LogoutOptions_AddAccountTitle: String { return self._s[1471]! } + public var Channel_DiscussionGroupInfo: String { return self._s[1472]! } + public var Conversation_SearchNoResults: String { return self._s[1474]! } + public var MessagePoll_LabelAnonymous: String { return self._s[1475]! } + public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1476]! } + public var Login_Code: String { return self._s[1477]! } + public var Watch_Suggestion_WhatsUp: String { return self._s[1478]! } + public var Weekday_ShortThursday: String { return self._s[1479]! } + public var Resolve_ErrorNotFound: String { return self._s[1481]! } + public var LastSeen_Offline: String { return self._s[1482]! } + public var GroupPermission_AddMembersNotAvailable: String { return self._s[1483]! } + public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1484]! } + public var GroupInfo_Title: String { return self._s[1485]! } + public var NotificationsSound_Note: String { return self._s[1486]! } + public var Conversation_EditingMessagePanelTitle: String { return self._s[1487]! } + public var Watch_Message_Poll: String { return self._s[1488]! } + public var Privacy_Calls: String { return self._s[1489]! } + public var Month_ShortAugust: String { return self._s[1490]! } + public var TwoStepAuth_SetPasswordHelp: String { return self._s[1491]! } + public var Notifications_Reset: String { return self._s[1492]! } + public var Conversation_Pin: String { return self._s[1493]! } + public var Passport_Language_lv: String { return self._s[1494]! } + public var BlockedUsers_Info: String { return self._s[1495]! } + public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1497]! } + public var Watch_Conversation_Unblock: String { return self._s[1499]! } public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1491]!, self._r[1491]!, [_0]) + return formatWithArgumentRanges(self._s[1500]!, self._r[1500]!, [_0]) } - public var CloudStorage_Title: String { return self._s[1492]! } - public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1493]! } + public var CloudStorage_Title: String { return self._s[1501]! } + public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1502]! } public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1494]!, self._r[1494]!, [_0]) + return formatWithArgumentRanges(self._s[1503]!, self._r[1503]!, [_0]) } - public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1495]! } - public var Watch_Suggestion_OnMyWay: String { return self._s[1496]! } - public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1497]! } - public var Passport_Address_EditBankStatement: String { return self._s[1498]! } + public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1504]! } + public var Watch_Suggestion_OnMyWay: String { return self._s[1505]! } + public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1506]! } + public var Passport_Address_EditBankStatement: String { return self._s[1507]! } public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1499]!, self._r[1499]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1508]!, self._r[1508]!, [_1, _2]) } - public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1500]! } - public var ShareMenu_Comment: String { return self._s[1501]! } - public var Permissions_ContactsTitle_v0: String { return self._s[1502]! } - public var Notifications_PermissionsTitle: String { return self._s[1503]! } - public var GroupPermission_NoSendLinks: String { return self._s[1504]! } - public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1505]! } - public var Settings_Support: String { return self._s[1506]! } - public var Notifications_ChannelNotificationsSound: String { return self._s[1507]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1508]! } - public var Privacy_Forwards_Preview: String { return self._s[1509]! } - public var GroupPermission_ApplyAlertAction: String { return self._s[1510]! } - public var Watch_Stickers_StickerPacks: String { return self._s[1511]! } - public var Common_Select: String { return self._s[1513]! } - public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1514]! } - public var WallpaperSearch_ColorGray: String { return self._s[1516]! } - public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1517]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1518]! } - public var Appearance_PreviewReplyAuthor: String { return self._s[1519]! } - public var TwoStepAuth_RecoveryTitle: String { return self._s[1520]! } - public var Widget_AuthRequired: String { return self._s[1521]! } - public var Camera_FlashOn: String { return self._s[1522]! } - public var Channel_Stickers_NotFoundHelp: String { return self._s[1523]! } - public var Watch_Suggestion_OK: String { return self._s[1524]! } + public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1509]! } + public var ShareMenu_Comment: String { return self._s[1510]! } + public var Permissions_ContactsTitle_v0: String { return self._s[1511]! } + public var Notifications_PermissionsTitle: String { return self._s[1512]! } + public var GroupPermission_NoSendLinks: String { return self._s[1513]! } + public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1514]! } + public var Settings_Support: String { return self._s[1515]! } + public var Notifications_ChannelNotificationsSound: String { return self._s[1516]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1517]! } + public var Privacy_Forwards_Preview: String { return self._s[1518]! } + public var GroupPermission_ApplyAlertAction: String { return self._s[1519]! } + public var Watch_Stickers_StickerPacks: String { return self._s[1520]! } + public var Common_Select: String { return self._s[1522]! } + public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1523]! } + public var WallpaperSearch_ColorGray: String { return self._s[1525]! } + public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1526]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1527]! } + public var Appearance_PreviewReplyAuthor: String { return self._s[1528]! } + public var TwoStepAuth_RecoveryTitle: String { return self._s[1529]! } + public var Widget_AuthRequired: String { return self._s[1530]! } + public var Camera_FlashOn: String { return self._s[1531]! } + public var Channel_Stickers_NotFoundHelp: String { return self._s[1532]! } + public var Watch_Suggestion_OK: String { return self._s[1533]! } public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1526]!, self._r[1526]!, [_0]) + return formatWithArgumentRanges(self._s[1535]!, self._r[1535]!, [_0]) } public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1528]!, self._r[1528]!, [_0]) + return formatWithArgumentRanges(self._s[1537]!, self._r[1537]!, [_0]) } - public var DialogList_AdLabel: String { return self._s[1529]! } - public var WatchRemote_NotificationText: String { return self._s[1530]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1531]! } - public var Conversation_ReportSpam: String { return self._s[1532]! } - public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1533]! } - public var Settings_LogoutConfirmationTitle: String { return self._s[1535]! } - public var PhoneLabel_Title: String { return self._s[1536]! } - public var Passport_Address_EditRentalAgreement: String { return self._s[1537]! } - public var Settings_ChangePhoneNumber: String { return self._s[1538]! } + public var DialogList_AdLabel: String { return self._s[1538]! } + public var WatchRemote_NotificationText: String { return self._s[1539]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1540]! } + public var Conversation_ReportSpam: String { return self._s[1541]! } + public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1542]! } + public var Settings_LogoutConfirmationTitle: String { return self._s[1544]! } + public var PhoneLabel_Title: String { return self._s[1545]! } + public var Passport_Address_EditRentalAgreement: String { return self._s[1546]! } + public var Settings_ChangePhoneNumber: String { return self._s[1547]! } public func AddContact_ContactWillBeSharedNow(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1539]!, self._r[1539]!, [_0]) + return formatWithArgumentRanges(self._s[1548]!, self._r[1548]!, [_0]) } - public var Notifications_ExceptionsTitle: String { return self._s[1540]! } - public var Notifications_AlertTones: String { return self._s[1541]! } - public var Call_ReportIncludeLogDescription: String { return self._s[1542]! } - public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1543]! } - public var AutoDownloadSettings_PrivateChats: String { return self._s[1544]! } - public var TwoStepAuth_AddHintTitle: String { return self._s[1546]! } - public var ReportPeer_ReasonOther: String { return self._s[1547]! } - public var KeyCommand_ScrollDown: String { return self._s[1549]! } + public var Notifications_ExceptionsTitle: String { return self._s[1549]! } + public var Notifications_AlertTones: String { return self._s[1550]! } + public var Call_ReportIncludeLogDescription: String { return self._s[1551]! } + public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1552]! } + public var AutoDownloadSettings_PrivateChats: String { return self._s[1553]! } + public var TwoStepAuth_AddHintTitle: String { return self._s[1555]! } + public var ReportPeer_ReasonOther: String { return self._s[1556]! } + public var KeyCommand_ScrollDown: String { return self._s[1558]! } public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1550]!, self._r[1550]!, [_0]) + return formatWithArgumentRanges(self._s[1559]!, self._r[1559]!, [_0]) } - public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1551]! } - public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1552]! } - public var AuthSessions_LogOut: String { return self._s[1553]! } - public var Passport_Identity_TypeInternalPassport: String { return self._s[1554]! } - public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1555]! } - public var Passport_Phone_Title: String { return self._s[1556]! } - public var Settings_PhoneNumber: String { return self._s[1557]! } - public var NotificationsSound_Alert: String { return self._s[1558]! } - public var WebSearch_SearchNoResults: String { return self._s[1559]! } - public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1561]! } - public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1562]! } - public var SettingsSearch_Synonyms_Passport: String { return self._s[1563]! } - public var PhotoEditor_CurvesTool: String { return self._s[1564]! } - public var Checkout_PaymentMethod: String { return self._s[1566]! } + public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1560]! } + public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1561]! } + public var AuthSessions_LogOut: String { return self._s[1562]! } + public var Passport_Identity_TypeInternalPassport: String { return self._s[1563]! } + public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1564]! } + public var Passport_Phone_Title: String { return self._s[1565]! } + public var Settings_PhoneNumber: String { return self._s[1566]! } + public var NotificationsSound_Alert: String { return self._s[1567]! } + public var WebSearch_SearchNoResults: String { return self._s[1568]! } + public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1570]! } + public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1571]! } + public var SettingsSearch_Synonyms_Passport: String { return self._s[1572]! } + public var PhotoEditor_CurvesTool: String { return self._s[1573]! } + public var Checkout_PaymentMethod: String { return self._s[1575]! } public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1567]!, self._r[1567]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1576]!, self._r[1576]!, [_1, _2]) } - public var Contacts_AccessDeniedError: String { return self._s[1568]! } - public var Camera_PhotoMode: String { return self._s[1571]! } - public var Passport_Address_AddUtilityBill: String { return self._s[1572]! } - public var CallSettings_OnMobile: String { return self._s[1573]! } - public var Tour_Text2: String { return self._s[1574]! } + public var Contacts_AccessDeniedError: String { return self._s[1577]! } + public var Camera_PhotoMode: String { return self._s[1580]! } + public var Passport_Address_AddUtilityBill: String { return self._s[1581]! } + public var CallSettings_OnMobile: String { return self._s[1582]! } + public var Tour_Text2: String { return self._s[1583]! } public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1575]!, self._r[1575]!, [_1, _2]) - } - public var DialogList_EncryptionProcessing: String { return self._s[1577]! } - public var Permissions_Skip: String { return self._s[1578]! } - public var SecretImage_Title: String { return self._s[1579]! } - public var Watch_MessageView_Title: String { return self._s[1580]! } - public var Channel_DiscussionGroupAdd: String { return self._s[1581]! } - public var AttachmentMenu_Poll: String { return self._s[1582]! } - public func Notification_GroupInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1583]!, self._r[1583]!, [_0]) - } - public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1584]!, self._r[1584]!, [_1, _2]) } - public var Notification_CallCanceled: String { return self._s[1585]! } - public var WallpaperPreview_Title: String { return self._s[1586]! } - public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1587]! } - public var Settings_ProxyConnecting: String { return self._s[1588]! } - public var Settings_CheckPhoneNumberText: String { return self._s[1590]! } - public var Profile_MessageLifetime5s: String { return self._s[1591]! } - public var Username_InvalidCharacters: String { return self._s[1592]! } - public var WallpaperPreview_CropBottomText: String { return self._s[1593]! } - public var AutoDownloadSettings_LimitBySize: String { return self._s[1594]! } - public var Settings_AddAccount: String { return self._s[1595]! } - public var Notification_CreatedChannel: String { return self._s[1598]! } + public var DialogList_EncryptionProcessing: String { return self._s[1586]! } + public var Permissions_Skip: String { return self._s[1587]! } + public var SecretImage_Title: String { return self._s[1588]! } + public var Watch_MessageView_Title: String { return self._s[1589]! } + public var Channel_DiscussionGroupAdd: String { return self._s[1590]! } + public var AttachmentMenu_Poll: String { return self._s[1591]! } + public func Notification_GroupInviter(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1592]!, self._r[1592]!, [_0]) + } + public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1593]!, self._r[1593]!, [_1, _2]) + } + public var Notification_CallCanceled: String { return self._s[1594]! } + public var WallpaperPreview_Title: String { return self._s[1595]! } + public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1596]! } + public var Settings_ProxyConnecting: String { return self._s[1597]! } + public var Settings_CheckPhoneNumberText: String { return self._s[1599]! } + public var Profile_MessageLifetime5s: String { return self._s[1600]! } + public var Username_InvalidCharacters: String { return self._s[1601]! } + public var WallpaperPreview_CropBottomText: String { return self._s[1602]! } + public var AutoDownloadSettings_LimitBySize: String { return self._s[1603]! } + public var Settings_AddAccount: String { return self._s[1604]! } + public var Notification_CreatedChannel: String { return self._s[1607]! } public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1599]!, self._r[1599]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1608]!, self._r[1608]!, [_1, _2, _3]) } - public var Passcode_AppLockedAlert: String { return self._s[1601]! } - public var Contacts_TopSection: String { return self._s[1602]! } + public var Passcode_AppLockedAlert: String { return self._s[1610]! } + public var Contacts_TopSection: String { return self._s[1611]! } public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1603]!, self._r[1603]!, [_0]) + return formatWithArgumentRanges(self._s[1612]!, self._r[1612]!, [_0]) } - public var ReportPeer_ReasonSpam: String { return self._s[1604]! } - public var UserInfo_TapToCall: String { return self._s[1605]! } - public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1607]! } - public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1608]! } - public var Common_Search: String { return self._s[1609]! } - public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1610]! } - public var Message_InvoiceLabel: String { return self._s[1611]! } - public var Conversation_InputTextPlaceholder: String { return self._s[1612]! } - public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1613]! } + public var ReportPeer_ReasonSpam: String { return self._s[1613]! } + public var UserInfo_TapToCall: String { return self._s[1614]! } + public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1616]! } + public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1617]! } + public var Common_Search: String { return self._s[1618]! } + public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1619]! } + public var Message_InvoiceLabel: String { return self._s[1620]! } + public var Conversation_InputTextPlaceholder: String { return self._s[1621]! } + public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1622]! } public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1614]!, self._r[1614]!, [_0]) + return formatWithArgumentRanges(self._s[1623]!, self._r[1623]!, [_0]) } - public var Conversation_Info: String { return self._s[1615]! } - public var Login_InfoDeletePhoto: String { return self._s[1616]! } - public var Passport_Language_vi: String { return self._s[1618]! } - public var UserInfo_ScamUserWarning: String { return self._s[1619]! } - public var Conversation_Search: String { return self._s[1620]! } - public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1621]! } - public var ReportPeer_ReasonPornography: String { return self._s[1622]! } - public var AutoDownloadSettings_PhotosTitle: String { return self._s[1623]! } - public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1624]! } - public var Map_LiveLocationGroupDescription: String { return self._s[1625]! } - public var Channel_Setup_TypeHeader: String { return self._s[1626]! } - public var AuthSessions_LoggedIn: String { return self._s[1627]! } - public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1628]! } - public var Login_SmsRequestState3: String { return self._s[1629]! } - public var Passport_Address_EditUtilityBill: String { return self._s[1630]! } - public var Appearance_ReduceMotionInfo: String { return self._s[1631]! } - public var Channel_Edit_LinkItem: String { return self._s[1632]! } - public var Privacy_Calls_P2PNever: String { return self._s[1633]! } - public var Conversation_AddToReadingList: String { return self._s[1635]! } - public var Message_Animation: String { return self._s[1636]! } - public var Conversation_DefaultRestrictedMedia: String { return self._s[1637]! } - public var Map_Unknown: String { return self._s[1638]! } - public var AutoDownloadSettings_LastDelimeter: String { return self._s[1639]! } + public var Conversation_Info: String { return self._s[1624]! } + public var Login_InfoDeletePhoto: String { return self._s[1625]! } + public var Passport_Language_vi: String { return self._s[1627]! } + public var UserInfo_ScamUserWarning: String { return self._s[1628]! } + public var Conversation_Search: String { return self._s[1629]! } + public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1630]! } + public var ReportPeer_ReasonPornography: String { return self._s[1631]! } + public var AutoDownloadSettings_PhotosTitle: String { return self._s[1632]! } + public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1633]! } + public var Map_LiveLocationGroupDescription: String { return self._s[1634]! } + public var Channel_Setup_TypeHeader: String { return self._s[1635]! } + public var AuthSessions_LoggedIn: String { return self._s[1636]! } + public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1637]! } + public var Login_SmsRequestState3: String { return self._s[1638]! } + public var Passport_Address_EditUtilityBill: String { return self._s[1639]! } + public var Appearance_ReduceMotionInfo: String { return self._s[1640]! } + public var Channel_Edit_LinkItem: String { return self._s[1641]! } + public var Privacy_Calls_P2PNever: String { return self._s[1642]! } + public var Conversation_AddToReadingList: String { return self._s[1644]! } + public var Message_Animation: String { return self._s[1645]! } + public var Conversation_DefaultRestrictedMedia: String { return self._s[1646]! } + public var Map_Unknown: String { return self._s[1647]! } + public var AutoDownloadSettings_LastDelimeter: String { return self._s[1648]! } public func PUSH_PINNED_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1640]!, self._r[1640]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1649]!, self._r[1649]!, [_1, _2]) } public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1641]!, self._r[1641]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1650]!, self._r[1650]!, [_1, _2]) } - public var Call_StatusRequesting: String { return self._s[1642]! } - public var Conversation_SecretChatContextBotAlert: String { return self._s[1643]! } - public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1644]! } + public var Call_StatusRequesting: String { return self._s[1651]! } + public var Conversation_SecretChatContextBotAlert: String { return self._s[1652]! } + public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1653]! } public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1645]!, self._r[1645]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1654]!, self._r[1654]!, [_1, _2]) } public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1646]!, self._r[1646]!, [_0]) + return formatWithArgumentRanges(self._s[1655]!, self._r[1655]!, [_0]) } - public var Update_Skip: String { return self._s[1647]! } - public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[1648]! } - public var Message_PinnedPollMessage: String { return self._s[1649]! } - public var BlockedUsers_Title: String { return self._s[1650]! } + public var Update_Skip: String { return self._s[1656]! } + public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[1657]! } + public var Message_PinnedPollMessage: String { return self._s[1658]! } + public var BlockedUsers_Title: String { return self._s[1659]! } public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1651]!, self._r[1651]!, [_1]) + return formatWithArgumentRanges(self._s[1660]!, self._r[1660]!, [_1]) } - public var Username_CheckingUsername: String { return self._s[1652]! } - public var NotificationsSound_Bell: String { return self._s[1653]! } - public var Conversation_SendMessageErrorFlood: String { return self._s[1654]! } - public var Weekday_Monday: String { return self._s[1655]! } - public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[1656]! } - public var ChannelMembers_ChannelAdminsTitle: String { return self._s[1657]! } - public var ChatSettings_Groups: String { return self._s[1658]! } - public var Your_card_was_declined: String { return self._s[1659]! } - public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1661]! } - public var ChatList_Unmute: String { return self._s[1662]! } - public var PhotoEditor_CurvesAll: String { return self._s[1663]! } - public var Weekday_ShortTuesday: String { return self._s[1664]! } - public var DialogList_Read: String { return self._s[1665]! } - public var Appearance_AppIconClassic: String { return self._s[1666]! } - public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[1667]! } - public var Passport_Identity_Gender: String { return self._s[1668]! } + public var Username_CheckingUsername: String { return self._s[1661]! } + public var NotificationsSound_Bell: String { return self._s[1662]! } + public var Conversation_SendMessageErrorFlood: String { return self._s[1663]! } + public var Weekday_Monday: String { return self._s[1664]! } + public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[1665]! } + public var ChannelMembers_ChannelAdminsTitle: String { return self._s[1666]! } + public var ChatSettings_Groups: String { return self._s[1667]! } + public var Your_card_was_declined: String { return self._s[1668]! } + public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1670]! } + public var ChatList_Unmute: String { return self._s[1671]! } + public var PhotoEditor_CurvesAll: String { return self._s[1672]! } + public var Weekday_ShortTuesday: String { return self._s[1673]! } + public var DialogList_Read: String { return self._s[1674]! } + public var Appearance_AppIconClassic: String { return self._s[1675]! } + public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[1676]! } + public var Passport_Identity_Gender: String { return self._s[1677]! } public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1669]!, self._r[1669]!, [_0]) + return formatWithArgumentRanges(self._s[1678]!, self._r[1678]!, [_0]) } - public var Target_SelectGroup: String { return self._s[1670]! } + public var Target_SelectGroup: String { return self._s[1679]! } public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1672]!, self._r[1672]!, [_0]) + return formatWithArgumentRanges(self._s[1681]!, self._r[1681]!, [_0]) } - public var Passport_Language_en: String { return self._s[1673]! } - public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[1674]! } - public var Channel_Username_CreatePublicLinkHelp: String { return self._s[1675]! } - public var Login_CancelPhoneVerificationContinue: String { return self._s[1676]! } - public var Checkout_NewCard_PaymentCard: String { return self._s[1678]! } - public var Login_InfoHelp: String { return self._s[1679]! } - public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1680]! } - public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[1681]! } + public var Passport_Language_en: String { return self._s[1682]! } + public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[1683]! } + public var Channel_Username_CreatePublicLinkHelp: String { return self._s[1684]! } + public var Login_CancelPhoneVerificationContinue: String { return self._s[1685]! } + public var Checkout_NewCard_PaymentCard: String { return self._s[1687]! } + public var Login_InfoHelp: String { return self._s[1688]! } + public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1689]! } + public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[1690]! } public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1682]!, self._r[1682]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1691]!, self._r[1691]!, [_1, _2]) } - public var SocksProxySetup_AddProxy: String { return self._s[1685]! } - public var CreatePoll_Title: String { return self._s[1686]! } - public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[1687]! } - public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[1688]! } - public var UserInfo_GroupsInCommon: String { return self._s[1689]! } - public var Call_AudioRouteHide: String { return self._s[1690]! } - public var ContactInfo_PhoneLabelMobile: String { return self._s[1692]! } + public var SocksProxySetup_AddProxy: String { return self._s[1694]! } + public var CreatePoll_Title: String { return self._s[1695]! } + public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[1696]! } + public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[1697]! } + public var UserInfo_GroupsInCommon: String { return self._s[1698]! } + public var Call_AudioRouteHide: String { return self._s[1699]! } + public var ContactInfo_PhoneLabelMobile: String { return self._s[1701]! } public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1693]!, self._r[1693]!, [_0]) + return formatWithArgumentRanges(self._s[1702]!, self._r[1702]!, [_0]) } - public var TextFormat_Bold: String { return self._s[1694]! } - public var FastTwoStepSetup_EmailSection: String { return self._s[1695]! } - public var Notifications_Title: String { return self._s[1696]! } - public var Group_Username_InvalidTooShort: String { return self._s[1697]! } - public var Channel_ErrorAddTooMuch: String { return self._s[1698]! } + public var TextFormat_Bold: String { return self._s[1703]! } + public var FastTwoStepSetup_EmailSection: String { return self._s[1704]! } + public var Notifications_Title: String { return self._s[1705]! } + public var Group_Username_InvalidTooShort: String { return self._s[1706]! } + public var Channel_ErrorAddTooMuch: String { return self._s[1707]! } public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1699]!, self._r[1699]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1708]!, self._r[1708]!, ["\(_0)"]) } - public var Stickers_SuggestAdded: String { return self._s[1701]! } - public var Login_CountryCode: String { return self._s[1702]! } - public var ChatSettings_AutoPlayVideos: String { return self._s[1703]! } - public var Map_GetDirections: String { return self._s[1704]! } - public var Login_PhoneFloodError: String { return self._s[1705]! } + public var Stickers_SuggestAdded: String { return self._s[1710]! } + public var Login_CountryCode: String { return self._s[1711]! } + public var ChatSettings_AutoPlayVideos: String { return self._s[1712]! } + public var Map_GetDirections: String { return self._s[1713]! } + public var Login_PhoneFloodError: String { return self._s[1714]! } public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1706]!, self._r[1706]!, [_0]) + return formatWithArgumentRanges(self._s[1715]!, self._r[1715]!, [_0]) } - public var Settings_SetUsername: String { return self._s[1708]! } - public var Notification_GroupInviterSelf: String { return self._s[1709]! } - public var InstantPage_TapToOpenLink: String { return self._s[1710]! } + public var Settings_SetUsername: String { return self._s[1717]! } + public var Notification_GroupInviterSelf: String { return self._s[1718]! } + public var InstantPage_TapToOpenLink: String { return self._s[1719]! } public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1711]!, self._r[1711]!, [_0]) + return formatWithArgumentRanges(self._s[1720]!, self._r[1720]!, [_0]) } - public var Watch_Suggestion_TalkLater: String { return self._s[1712]! } - public var SecretChat_Title: String { return self._s[1713]! } - public var Group_UpgradeNoticeText1: String { return self._s[1714]! } - public var AuthSessions_Title: String { return self._s[1715]! } + public var Watch_Suggestion_TalkLater: String { return self._s[1721]! } + public var SecretChat_Title: String { return self._s[1722]! } + public var Group_UpgradeNoticeText1: String { return self._s[1723]! } + public var AuthSessions_Title: String { return self._s[1724]! } public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1716]!, self._r[1716]!, [_0]) + return formatWithArgumentRanges(self._s[1725]!, self._r[1725]!, [_0]) } - public var PhotoEditor_CropAuto: String { return self._s[1717]! } - public var Channel_About_Title: String { return self._s[1718]! } - public var FastTwoStepSetup_EmailHelp: String { return self._s[1719]! } + public var PhotoEditor_CropAuto: String { return self._s[1726]! } + public var Channel_About_Title: String { return self._s[1727]! } + public var FastTwoStepSetup_EmailHelp: String { return self._s[1728]! } public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1721]!, self._r[1721]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[1730]!, self._r[1730]!, ["\(_0)"]) } - public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1723]! } - public var Group_Setup_HistoryVisibleHelp: String { return self._s[1724]! } + public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1732]! } + public var Group_Setup_HistoryVisibleHelp: String { return self._s[1733]! } public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1725]!, self._r[1725]!, [_1]) + return formatWithArgumentRanges(self._s[1734]!, self._r[1734]!, [_1]) } public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1727]!, self._r[1727]!, [_0]) + return formatWithArgumentRanges(self._s[1736]!, self._r[1736]!, [_0]) } public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1728]!, self._r[1728]!, [_0]) - } - public var Privacy_PaymentsClearInfoHelp: String { return self._s[1729]! } - public var Presence_online: String { return self._s[1731]! } - public var PasscodeSettings_Title: String { return self._s[1732]! } - public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1733]! } - public var Web_OpenExternal: String { return self._s[1734]! } - public var AutoDownloadSettings_AutoDownload: String { return self._s[1736]! } - public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1737]!, self._r[1737]!, [_0]) } - public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[1738]! } - public var Map_YouAreHere: String { return self._s[1739]! } + public var Privacy_PaymentsClearInfoHelp: String { return self._s[1738]! } + public var Presence_online: String { return self._s[1740]! } + public var PasscodeSettings_Title: String { return self._s[1741]! } + public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1742]! } + public var Web_OpenExternal: String { return self._s[1743]! } + public var AutoDownloadSettings_AutoDownload: String { return self._s[1745]! } + public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[1746]! } + public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1747]!, self._r[1747]!, [_0]) + } + public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[1748]! } + public var Map_YouAreHere: String { return self._s[1749]! } public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1740]!, self._r[1740]!, [_0]) + return formatWithArgumentRanges(self._s[1750]!, self._r[1750]!, [_0]) } public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1741]!, self._r[1741]!, [_0]) + return formatWithArgumentRanges(self._s[1751]!, self._r[1751]!, [_0]) } - public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[1742]! } - public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[1743]! } + public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[1752]! } + public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[1753]! } public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1744]!, self._r[1744]!, [_0]) - } - public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1745]!, self._r[1745]!, [_0]) - } - public var SocksProxySetup_Username: String { return self._s[1746]! } - public var Bot_Start: String { return self._s[1747]! } - public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1748]!, self._r[1748]!, [_0]) - } - public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1749]!, self._r[1749]!, [_0]) - } - public var Contacts_SortByPresence: String { return self._s[1750]! } - public var Conversation_DiscardVoiceMessageTitle: String { return self._s[1752]! } - public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1753]!, self._r[1753]!, [_1, _2]) - } - public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1754]!, self._r[1754]!, [_0]) } + public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1755]!, self._r[1755]!, [_0]) + } + public var SocksProxySetup_Username: String { return self._s[1756]! } + public var Bot_Start: String { return self._s[1757]! } + public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1758]!, self._r[1758]!, [_0]) + } + public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1759]!, self._r[1759]!, [_0]) + } + public var Contacts_SortByPresence: String { return self._s[1760]! } + public var Conversation_DiscardVoiceMessageTitle: String { return self._s[1762]! } + public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1763]!, self._r[1763]!, [_1, _2]) + } + public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1764]!, self._r[1764]!, [_0]) + } public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1755]!, self._r[1755]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1765]!, self._r[1765]!, [_1, _2]) } - public var Passport_Email_EnterOtherEmail: String { return self._s[1756]! } - public var Login_InfoAvatarPhoto: String { return self._s[1757]! } - public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[1758]! } - public var Tour_Title4: String { return self._s[1759]! } - public var Passport_Identity_Translation: String { return self._s[1760]! } - public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1761]! } - public var Login_TermsOfServiceLabel: String { return self._s[1763]! } - public var Passport_Language_it: String { return self._s[1764]! } - public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1765]! } - public var Passport_Identity_SelfieHelp: String { return self._s[1766]! } - public var Conversation_ClearAll: String { return self._s[1768]! } - public var TwoStepAuth_FloodError: String { return self._s[1770]! } + public var Passport_Email_EnterOtherEmail: String { return self._s[1766]! } + public var Login_InfoAvatarPhoto: String { return self._s[1767]! } + public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[1768]! } + public var Tour_Title4: String { return self._s[1769]! } + public var Passport_Identity_Translation: String { return self._s[1770]! } + public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1771]! } + public var Login_TermsOfServiceLabel: String { return self._s[1773]! } + public var Passport_Language_it: String { return self._s[1774]! } + public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1775]! } + public var Passport_Identity_SelfieHelp: String { return self._s[1776]! } + public var Conversation_ClearAll: String { return self._s[1778]! } + public var Channel_OwnershipTransfer_Title: String { return self._s[1780]! } + public var TwoStepAuth_FloodError: String { return self._s[1781]! } public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1771]!, self._r[1771]!, [_1]) + return formatWithArgumentRanges(self._s[1782]!, self._r[1782]!, [_1]) } - public var Paint_Delete: String { return self._s[1772]! } - public var Privacy_AddNewPeer: String { return self._s[1773]! } - public var LogoutOptions_SetPasscodeText: String { return self._s[1774]! } + public var Paint_Delete: String { return self._s[1783]! } + public var Privacy_AddNewPeer: String { return self._s[1784]! } + public var LogoutOptions_SetPasscodeText: String { return self._s[1785]! } public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1775]!, self._r[1775]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1786]!, self._r[1786]!, [_1, _2]) } - public var Message_PinnedAudioMessage: String { return self._s[1776]! } + public var Message_PinnedAudioMessage: String { return self._s[1787]! } public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1777]!, self._r[1777]!, [_0]) + return formatWithArgumentRanges(self._s[1788]!, self._r[1788]!, [_0]) } - public var Notification_Mute1hMin: String { return self._s[1778]! } - public var Notifications_GroupNotificationsSound: String { return self._s[1779]! } - public var SocksProxySetup_ShareProxyList: String { return self._s[1780]! } - public var Conversation_MessageEditedLabel: String { return self._s[1781]! } - public var Notification_Exceptions_AlwaysOff: String { return self._s[1782]! } - public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[1783]! } + public var Notification_Mute1hMin: String { return self._s[1789]! } + public var Notifications_GroupNotificationsSound: String { return self._s[1790]! } + public var SocksProxySetup_ShareProxyList: String { return self._s[1791]! } + public var Conversation_MessageEditedLabel: String { return self._s[1792]! } + public var Notification_Exceptions_AlwaysOff: String { return self._s[1793]! } + public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[1794]! } public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1784]!, self._r[1784]!, [_0, _1, _2]) + return formatWithArgumentRanges(self._s[1795]!, self._r[1795]!, [_0, _1, _2]) } - public var NetworkUsageSettings_ResetStats: String { return self._s[1785]! } + public var NetworkUsageSettings_ResetStats: String { return self._s[1796]! } public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1786]!, self._r[1786]!, [_1]) + return formatWithArgumentRanges(self._s[1797]!, self._r[1797]!, [_1]) } - public var AccessDenied_LocationTracking: String { return self._s[1787]! } - public var Month_GenOctober: String { return self._s[1788]! } - public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[1789]! } - public var EnterPasscode_EnterPasscode: String { return self._s[1790]! } - public var MediaPicker_TimerTooltip: String { return self._s[1792]! } - public var SharedMedia_TitleAll: String { return self._s[1793]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[1796]! } - public var Conversation_RestrictedMedia: String { return self._s[1797]! } - public var AccessDenied_PhotosRestricted: String { return self._s[1798]! } - public var Privacy_Forwards_WhoCanForward: String { return self._s[1800]! } - public var ChangePhoneNumberCode_Called: String { return self._s[1801]! } + public var AccessDenied_LocationTracking: String { return self._s[1798]! } + public var Month_GenOctober: String { return self._s[1799]! } + public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[1800]! } + public var EnterPasscode_EnterPasscode: String { return self._s[1801]! } + public var MediaPicker_TimerTooltip: String { return self._s[1803]! } + public var SharedMedia_TitleAll: String { return self._s[1804]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[1807]! } + public var Conversation_RestrictedMedia: String { return self._s[1808]! } + public var AccessDenied_PhotosRestricted: String { return self._s[1809]! } + public var Privacy_Forwards_WhoCanForward: String { return self._s[1811]! } + public var ChangePhoneNumberCode_Called: String { return self._s[1812]! } public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1802]!, self._r[1802]!, [_0]) + return formatWithArgumentRanges(self._s[1813]!, self._r[1813]!, [_0]) } - public var Conversation_SavedMessages: String { return self._s[1805]! } - public var Your_cards_expiration_month_is_invalid: String { return self._s[1807]! } - public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[1808]! } + public var Conversation_SavedMessages: String { return self._s[1816]! } + public var Your_cards_expiration_month_is_invalid: String { return self._s[1818]! } + public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[1819]! } public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1810]!, self._r[1810]!, [_0]) + return formatWithArgumentRanges(self._s[1821]!, self._r[1821]!, [_0]) } - public var ReportPeer_AlertSuccess: String { return self._s[1811]! } - public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[1812]! } + public var ReportPeer_AlertSuccess: String { return self._s[1822]! } + public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[1823]! } public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1813]!, self._r[1813]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1824]!, self._r[1824]!, [_1, _2]) } - public var Checkout_PasswordEntry_Title: String { return self._s[1814]! } - public var PhotoEditor_FadeTool: String { return self._s[1815]! } - public var Privacy_ContactsReset: String { return self._s[1816]! } + public var Checkout_PasswordEntry_Title: String { return self._s[1825]! } + public var PhotoEditor_FadeTool: String { return self._s[1826]! } + public var Privacy_ContactsReset: String { return self._s[1827]! } public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1818]!, self._r[1818]!, [_0]) + return formatWithArgumentRanges(self._s[1829]!, self._r[1829]!, [_0]) } - public var Message_PinnedVideoMessage: String { return self._s[1819]! } - public var ChatList_Mute: String { return self._s[1820]! } - public var Permissions_CellularDataText_v0: String { return self._s[1821]! } - public var ShareMenu_SelectChats: String { return self._s[1823]! } - public var MusicPlayer_VoiceNote: String { return self._s[1824]! } - public var Conversation_RestrictedText: String { return self._s[1825]! } - public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[1826]! } - public var TwoStepAuth_DisableSuccess: String { return self._s[1827]! } - public var Cache_Videos: String { return self._s[1828]! } - public var PrivacySettings_PhoneNumber: String { return self._s[1829]! } - public var FeatureDisabled_Oops: String { return self._s[1831]! } - public var Passport_Address_PostcodePlaceholder: String { return self._s[1832]! } + public var Message_PinnedVideoMessage: String { return self._s[1830]! } + public var ChatList_Mute: String { return self._s[1831]! } + public var Permissions_CellularDataText_v0: String { return self._s[1832]! } + public var ShareMenu_SelectChats: String { return self._s[1834]! } + public var MusicPlayer_VoiceNote: String { return self._s[1835]! } + public var Conversation_RestrictedText: String { return self._s[1836]! } + public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[1837]! } + public var TwoStepAuth_DisableSuccess: String { return self._s[1838]! } + public var Cache_Videos: String { return self._s[1839]! } + public var PrivacySettings_PhoneNumber: String { return self._s[1840]! } + public var FeatureDisabled_Oops: String { return self._s[1842]! } + public var Passport_Address_PostcodePlaceholder: String { return self._s[1843]! } public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1833]!, self._r[1833]!, [_0]) + return formatWithArgumentRanges(self._s[1844]!, self._r[1844]!, [_0]) } - public var Stickers_GroupStickersHelp: String { return self._s[1834]! } - public var GroupPermission_NoSendPolls: String { return self._s[1835]! } - public var Message_VideoExpired: String { return self._s[1837]! } - public var Notifications_Badge: String { return self._s[1838]! } - public var GroupInfo_GroupHistoryVisible: String { return self._s[1839]! } - public var CreatePoll_OptionPlaceholder: String { return self._s[1840]! } - public var Username_InvalidTooShort: String { return self._s[1841]! } - public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[1842]! } - public var Channel_AdminLog_PinMessages: String { return self._s[1843]! } - public var ArchivedChats_IntroTitle3: String { return self._s[1844]! } + public var Stickers_GroupStickersHelp: String { return self._s[1845]! } + public var GroupPermission_NoSendPolls: String { return self._s[1846]! } + public var Message_VideoExpired: String { return self._s[1848]! } + public var Notifications_Badge: String { return self._s[1849]! } + public var GroupInfo_GroupHistoryVisible: String { return self._s[1850]! } + public var CreatePoll_OptionPlaceholder: String { return self._s[1851]! } + public var Username_InvalidTooShort: String { return self._s[1852]! } + public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[1853]! } + public var Channel_AdminLog_PinMessages: String { return self._s[1854]! } + public var ArchivedChats_IntroTitle3: String { return self._s[1855]! } public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1845]!, self._r[1845]!, [_1]) + return formatWithArgumentRanges(self._s[1856]!, self._r[1856]!, [_1]) } - public var Permissions_SiriAllowInSettings_v0: String { return self._s[1846]! } - public var Conversation_DefaultRestrictedText: String { return self._s[1847]! } - public var SharedMedia_CategoryDocs: String { return self._s[1850]! } + public var Permissions_SiriAllowInSettings_v0: String { return self._s[1857]! } + public var Conversation_DefaultRestrictedText: String { return self._s[1858]! } + public var SharedMedia_CategoryDocs: String { return self._s[1861]! } public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1851]!, self._r[1851]!, [_1]) + return formatWithArgumentRanges(self._s[1862]!, self._r[1862]!, [_1]) } - public var Privacy_Forwards_NeverLink: String { return self._s[1853]! } + public var Privacy_Forwards_NeverLink: String { return self._s[1864]! } public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1854]!, self._r[1854]!, [_1]) + return formatWithArgumentRanges(self._s[1865]!, self._r[1865]!, [_1]) } - public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[1855]! } + public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[1866]! } public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1856]!, self._r[1856]!, [_0]) + return formatWithArgumentRanges(self._s[1867]!, self._r[1867]!, [_0]) } - public var ChatSettings_PrivateChats: String { return self._s[1857]! } - public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[1858]! } - public var Conversation_PrivateMessageLinkCopied: String { return self._s[1859]! } - public var Channel_UpdatePhotoItem: String { return self._s[1860]! } - public var GroupInfo_LeftStatus: String { return self._s[1861]! } - public var Watch_MessageView_Forward: String { return self._s[1863]! } - public var ReportPeer_ReasonChildAbuse: String { return self._s[1864]! } - public var Cache_ClearEmpty: String { return self._s[1866]! } - public var Localization_LanguageName: String { return self._s[1867]! } - public var WebSearch_GIFs: String { return self._s[1868]! } - public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1869]! } - public var Username_InvalidStartsWithNumber: String { return self._s[1870]! } - public var Common_Back: String { return self._s[1871]! } - public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[1872]! } + public var ChatSettings_PrivateChats: String { return self._s[1868]! } + public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[1869]! } + public var Conversation_PrivateMessageLinkCopied: String { return self._s[1870]! } + public var Channel_UpdatePhotoItem: String { return self._s[1871]! } + public var GroupInfo_LeftStatus: String { return self._s[1872]! } + public var Watch_MessageView_Forward: String { return self._s[1874]! } + public var ReportPeer_ReasonChildAbuse: String { return self._s[1875]! } + public var Cache_ClearEmpty: String { return self._s[1877]! } + public var Localization_LanguageName: String { return self._s[1878]! } + public var WebSearch_GIFs: String { return self._s[1879]! } + public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1880]! } + public var Username_InvalidStartsWithNumber: String { return self._s[1881]! } + public var Common_Back: String { return self._s[1882]! } + public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[1883]! } public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1873]!, self._r[1873]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1884]!, self._r[1884]!, [_1, _2]) } - public var Passport_Email_Help: String { return self._s[1874]! } - public var Watch_Conversation_Reply: String { return self._s[1876]! } - public var Conversation_EditingMessageMediaChange: String { return self._s[1878]! } - public var Passport_Identity_IssueDatePlaceholder: String { return self._s[1879]! } - public var Channel_BanUser_Unban: String { return self._s[1881]! } - public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[1882]! } - public var Group_Username_CreatePublicLinkHelp: String { return self._s[1883]! } - public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[1885]! } - public var Passport_Identity_Name: String { return self._s[1886]! } + public var Passport_Email_Help: String { return self._s[1885]! } + public var Watch_Conversation_Reply: String { return self._s[1887]! } + public var Conversation_EditingMessageMediaChange: String { return self._s[1889]! } + public var Passport_Identity_IssueDatePlaceholder: String { return self._s[1890]! } + public var Channel_BanUser_Unban: String { return self._s[1892]! } + public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[1893]! } + public var Group_Username_CreatePublicLinkHelp: String { return self._s[1894]! } + public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[1896]! } + public var Passport_Identity_Name: String { return self._s[1897]! } public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1887]!, self._r[1887]!, [_0]) + return formatWithArgumentRanges(self._s[1898]!, self._r[1898]!, [_0]) } - public var GroupRemoved_ViewUserInfo: String { return self._s[1888]! } - public var Conversation_BlockUser: String { return self._s[1889]! } - public var Month_GenJanuary: String { return self._s[1890]! } - public var ChatSettings_TextSize: String { return self._s[1891]! } - public var Notification_PassportValuePhone: String { return self._s[1892]! } - public var Passport_Language_ne: String { return self._s[1893]! } - public var Notification_CallBack: String { return self._s[1894]! } - public var TwoStepAuth_EmailHelp: String { return self._s[1895]! } + public var GroupRemoved_ViewUserInfo: String { return self._s[1899]! } + public var Conversation_BlockUser: String { return self._s[1900]! } + public var Month_GenJanuary: String { return self._s[1901]! } + public var ChatSettings_TextSize: String { return self._s[1902]! } + public var Notification_PassportValuePhone: String { return self._s[1903]! } + public var Passport_Language_ne: String { return self._s[1904]! } + public var Notification_CallBack: String { return self._s[1905]! } + public var TwoStepAuth_EmailHelp: String { return self._s[1906]! } public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1896]!, self._r[1896]!, [_0]) - } - public var Channel_Info_Management: String { return self._s[1897]! } - public var Passport_FieldIdentityUploadHelp: String { return self._s[1898]! } - public var Stickers_FrequentlyUsed: String { return self._s[1899]! } - public var Channel_BanUser_PermissionSendMessages: String { return self._s[1900]! } - public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1902]! } - public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1903]!, self._r[1903]!, [_1, "\(_2)"]) - } - public var Passport_Address_EditResidentialAddress: String { return self._s[1904]! } - public var PrivacyPolicy_DeclineTitle: String { return self._s[1905]! } - public var CreatePoll_TextHeader: String { return self._s[1906]! } - public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1907]!, self._r[1907]!, [_0]) } - public var PhotoEditor_QualityMedium: String { return self._s[1908]! } - public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[1909]! } - public var Conversation_StatusKickedFromChannel: String { return self._s[1911]! } - public var CheckoutInfo_ReceiverInfoName: String { return self._s[1912]! } - public var Group_ErrorSendRestrictedStickers: String { return self._s[1913]! } + public var Channel_Info_Management: String { return self._s[1908]! } + public var Passport_FieldIdentityUploadHelp: String { return self._s[1909]! } + public var Stickers_FrequentlyUsed: String { return self._s[1910]! } + public var Channel_BanUser_PermissionSendMessages: String { return self._s[1911]! } + public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1913]! } + public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1914]!, self._r[1914]!, [_1, "\(_2)"]) + } + public var Passport_Address_EditResidentialAddress: String { return self._s[1915]! } + public var PrivacyPolicy_DeclineTitle: String { return self._s[1916]! } + public var CreatePoll_TextHeader: String { return self._s[1917]! } + public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1918]!, self._r[1918]!, [_0]) + } + public var PhotoEditor_QualityMedium: String { return self._s[1919]! } + public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[1920]! } + public var Conversation_StatusKickedFromChannel: String { return self._s[1922]! } + public var CheckoutInfo_ReceiverInfoName: String { return self._s[1923]! } + public var Group_ErrorSendRestrictedStickers: String { return self._s[1924]! } public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1914]!, self._r[1914]!, [_0]) + return formatWithArgumentRanges(self._s[1925]!, self._r[1925]!, [_0]) } - public var Conversation_LinkDialogOpen: String { return self._s[1916]! } - public var Settings_Username: String { return self._s[1917]! } - public var Conversation_Block: String { return self._s[1919]! } - public var Wallpaper_Wallpaper: String { return self._s[1920]! } - public var SocksProxySetup_UseProxy: String { return self._s[1922]! } - public var UserInfo_ShareMyContactInfo: String { return self._s[1923]! } - public var MessageTimer_Forever: String { return self._s[1924]! } - public var Privacy_Calls_WhoCanCallMe: String { return self._s[1925]! } - public var PhotoEditor_DiscardChanges: String { return self._s[1926]! } - public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1927]! } - public var Passport_Language_da: String { return self._s[1928]! } - public var SocksProxySetup_PortPlaceholder: String { return self._s[1929]! } + public var Conversation_LinkDialogOpen: String { return self._s[1927]! } + public var Settings_Username: String { return self._s[1928]! } + public var Conversation_Block: String { return self._s[1930]! } + public var Wallpaper_Wallpaper: String { return self._s[1931]! } + public var SocksProxySetup_UseProxy: String { return self._s[1933]! } + public var UserInfo_ShareMyContactInfo: String { return self._s[1934]! } + public var MessageTimer_Forever: String { return self._s[1935]! } + public var Privacy_Calls_WhoCanCallMe: String { return self._s[1936]! } + public var PhotoEditor_DiscardChanges: String { return self._s[1937]! } + public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1938]! } + public var Passport_Language_da: String { return self._s[1939]! } + public var SocksProxySetup_PortPlaceholder: String { return self._s[1940]! } public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1930]!, self._r[1930]!, [_0]) + return formatWithArgumentRanges(self._s[1941]!, self._r[1941]!, [_0]) } - public var Passport_Address_EditPassportRegistration: String { return self._s[1931]! } + public var Passport_Address_EditPassportRegistration: String { return self._s[1942]! } public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1933]!, self._r[1933]!, [_0]) + return formatWithArgumentRanges(self._s[1944]!, self._r[1944]!, [_0]) } - public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[1935]! } - public var Conversation_SearchByName_Prefix: String { return self._s[1936]! } - public var Conversation_PinnedPoll: String { return self._s[1937]! } - public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[1938]! } + public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[1946]! } + public var Conversation_SearchByName_Prefix: String { return self._s[1947]! } + public var Conversation_PinnedPoll: String { return self._s[1948]! } + public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[1949]! } public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1939]!, self._r[1939]!, [_1]) + return formatWithArgumentRanges(self._s[1950]!, self._r[1950]!, [_1]) } - public var WallpaperSearch_ColorPurple: String { return self._s[1940]! } - public var Cache_ByPeerHeader: String { return self._s[1941]! } + public var WallpaperSearch_ColorPurple: String { return self._s[1951]! } + public var Cache_ByPeerHeader: String { return self._s[1952]! } public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1942]!, self._r[1942]!, [_0]) + return formatWithArgumentRanges(self._s[1953]!, self._r[1953]!, [_0]) } - public var ChatSettings_AutoDownloadDocuments: String { return self._s[1943]! } - public var Notification_PinnedMessage: String { return self._s[1946]! } - public var Contacts_SortBy: String { return self._s[1948]! } + public var ChatSettings_AutoDownloadDocuments: String { return self._s[1954]! } + public var Notification_PinnedMessage: String { return self._s[1957]! } + public var Contacts_SortBy: String { return self._s[1959]! } public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1949]!, self._r[1949]!, [_1]) + return formatWithArgumentRanges(self._s[1960]!, self._r[1960]!, [_1]) } public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1951]!, self._r[1951]!, [_1, _2]) + return formatWithArgumentRanges(self._s[1962]!, self._r[1962]!, [_1, _2]) } - public var Call_EncryptionKey_Title: String { return self._s[1952]! } - public var Watch_UserInfo_Service: String { return self._s[1953]! } - public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[1955]! } - public var Conversation_Unpin: String { return self._s[1957]! } - public var CancelResetAccount_Title: String { return self._s[1958]! } - public var Map_LiveLocationFor15Minutes: String { return self._s[1959]! } + public var Call_EncryptionKey_Title: String { return self._s[1963]! } + public var Watch_UserInfo_Service: String { return self._s[1964]! } + public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[1966]! } + public var Conversation_Unpin: String { return self._s[1968]! } + public var CancelResetAccount_Title: String { return self._s[1969]! } + public var Map_LiveLocationFor15Minutes: String { return self._s[1970]! } public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1961]!, self._r[1961]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[1972]!, self._r[1972]!, [_1, _2, _3]) } - public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[1962]! } - public var CallSettings_Title: String { return self._s[1963]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1964]! } - public var PasscodeSettings_EncryptDataHelp: String { return self._s[1966]! } - public var AutoDownloadSettings_Contacts: String { return self._s[1967]! } - public var Passport_Identity_DocumentDetails: String { return self._s[1968]! } - public var LoginPassword_PasswordHelp: String { return self._s[1969]! } - public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1970]! } - public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[1971]! } - public var Checkout_TotalPaidAmount: String { return self._s[1972]! } + public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[1973]! } + public var CallSettings_Title: String { return self._s[1974]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1975]! } + public var PasscodeSettings_EncryptDataHelp: String { return self._s[1977]! } + public var AutoDownloadSettings_Contacts: String { return self._s[1978]! } + public var Passport_Identity_DocumentDetails: String { return self._s[1979]! } + public var LoginPassword_PasswordHelp: String { return self._s[1980]! } + public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[1981]! } + public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[1982]! } + public var Checkout_TotalPaidAmount: String { return self._s[1983]! } public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1973]!, self._r[1973]!, [_0]) - } - public var PasscodeSettings_ChangePasscode: String { return self._s[1974]! } - public var Conversation_SecretLinkPreviewAlert: String { return self._s[1976]! } - public var Privacy_SecretChatsLinkPreviews: String { return self._s[1977]! } - public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[1978]!, self._r[1978]!, [_1]) - } - public var Contacts_InviteFriends: String { return self._s[1980]! } - public var Map_ChooseLocationTitle: String { return self._s[1981]! } - public var Conversation_StopPoll: String { return self._s[1983]! } - public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[1984]!, self._r[1984]!, [_0]) } - public var Call_Camera: String { return self._s[1985]! } - public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[1986]! } - public var Calls_RatingFeedback: String { return self._s[1987]! } - public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[1988]! } - public var NotificationsSound_Pulse: String { return self._s[1989]! } - public var Watch_LastSeen_Lately: String { return self._s[1990]! } - public var Widget_NoUsers: String { return self._s[1993]! } - public var Conversation_UnvotePoll: String { return self._s[1994]! } - public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[1996]! } - public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[1997]! } - public var NotificationsSound_Circles: String { return self._s[1998]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2000]! } - public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2001]! } - public var Proxy_TooltipUnavailable: String { return self._s[2002]! } - public var Passport_Identity_CountryPlaceholder: String { return self._s[2004]! } - public var Conversation_FileDropbox: String { return self._s[2006]! } - public var Notifications_ExceptionsUnmuted: String { return self._s[2007]! } - public var Tour_Text3: String { return self._s[2009]! } - public var Login_ResetAccountProtected_Title: String { return self._s[2011]! } - public var GroupPermission_NoSendMessages: String { return self._s[2012]! } - public var WallpaperSearch_ColorTitle: String { return self._s[2013]! } - public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2014]! } - public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2016]!, self._r[2016]!, [_0]) + public var PasscodeSettings_ChangePasscode: String { return self._s[1985]! } + public var Conversation_SecretLinkPreviewAlert: String { return self._s[1987]! } + public var Privacy_SecretChatsLinkPreviews: String { return self._s[1988]! } + public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1989]!, self._r[1989]!, [_1]) } - public var GroupInfo_AddParticipantTitle: String { return self._s[2017]! } - public var Checkout_ShippingOption_Title: String { return self._s[2018]! } - public var ChatSettings_AutoDownloadTitle: String { return self._s[2019]! } + public var Contacts_InviteFriends: String { return self._s[1991]! } + public var Map_ChooseLocationTitle: String { return self._s[1992]! } + public var Conversation_StopPoll: String { return self._s[1994]! } + public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[1995]!, self._r[1995]!, [_0]) + } + public var Call_Camera: String { return self._s[1996]! } + public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[1997]! } + public var Calls_RatingFeedback: String { return self._s[1998]! } + public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[1999]! } + public var NotificationsSound_Pulse: String { return self._s[2000]! } + public var Watch_LastSeen_Lately: String { return self._s[2001]! } + public var Widget_NoUsers: String { return self._s[2004]! } + public var Conversation_UnvotePoll: String { return self._s[2005]! } + public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2007]! } + public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2008]! } + public var NotificationsSound_Circles: String { return self._s[2009]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2011]! } + public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2012]! } + public var Proxy_TooltipUnavailable: String { return self._s[2013]! } + public var Passport_Identity_CountryPlaceholder: String { return self._s[2015]! } + public var Conversation_FileDropbox: String { return self._s[2017]! } + public var Notifications_ExceptionsUnmuted: String { return self._s[2018]! } + public var Tour_Text3: String { return self._s[2020]! } + public var Login_ResetAccountProtected_Title: String { return self._s[2022]! } + public var GroupPermission_NoSendMessages: String { return self._s[2023]! } + public var WallpaperSearch_ColorTitle: String { return self._s[2024]! } + public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2025]! } + public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2027]!, self._r[2027]!, [_0]) + } + public var GroupInfo_AddParticipantTitle: String { return self._s[2028]! } + public var Checkout_ShippingOption_Title: String { return self._s[2029]! } + public var ChatSettings_AutoDownloadTitle: String { return self._s[2030]! } public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2020]!, self._r[2020]!, [_0]) + return formatWithArgumentRanges(self._s[2031]!, self._r[2031]!, [_0]) } public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2021]!, self._r[2021]!, [_0]) + return formatWithArgumentRanges(self._s[2032]!, self._r[2032]!, [_0]) } - public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2022]! } - public var AutoDownloadSettings_Photos: String { return self._s[2024]! } - public var Appearance_PreviewIncomingText: String { return self._s[2025]! } - public var ChannelInfo_ConfirmLeave: String { return self._s[2026]! } - public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2027]! } - public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2028]! } - public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2029]! } - public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2030]! } - public var GroupInfo_SetGroupPhotoStop: String { return self._s[2031]! } - public var Notification_SecretChatScreenshot: String { return self._s[2032]! } - public var AccessDenied_Wallpapers: String { return self._s[2033]! } - public var Passport_Address_City: String { return self._s[2035]! } - public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2036]! } - public var Appearance_ThemeCarouselClassic: String { return self._s[2037]! } - public var SocksProxySetup_SecretPlaceholder: String { return self._s[2038]! } - public var AccessDenied_LocationDisabled: String { return self._s[2039]! } - public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2041]! } - public var GroupInfo_Sound: String { return self._s[2042]! } - public var ChannelInfo_ScamChannelWarning: String { return self._s[2043]! } - public var Stickers_RemoveFromFavorites: String { return self._s[2044]! } - public var Contacts_Title: String { return self._s[2045]! } - public var Passport_Language_fr: String { return self._s[2046]! } - public var Notifications_ResetAllNotifications: String { return self._s[2047]! } - public var PrivacySettings_SecurityTitle: String { return self._s[2050]! } - public var Checkout_NewCard_Title: String { return self._s[2051]! } - public var Login_HaveNotReceivedCodeInternal: String { return self._s[2052]! } - public var Conversation_ForwardChats: String { return self._s[2053]! } - public var PasscodeSettings_4DigitCode: String { return self._s[2055]! } - public var Settings_FAQ: String { return self._s[2057]! } - public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2058]! } - public var Conversation_ContextMenuForward: String { return self._s[2059]! } - public var PrivacyPolicy_Title: String { return self._s[2064]! } - public var Notifications_TextTone: String { return self._s[2065]! } - public var Profile_CreateNewContact: String { return self._s[2066]! } - public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2067]! } - public var Call_Speaker: String { return self._s[2069]! } - public var AutoNightTheme_AutomaticSection: String { return self._s[2070]! } - public var Channel_Username_InvalidCharacters: String { return self._s[2072]! } + public var Channel_Management_LabelAdministrator: String { return self._s[2033]! } + public var OwnershipTransfer_ComeBackLater: String { return self._s[2034]! } + public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2035]! } + public var AutoDownloadSettings_Photos: String { return self._s[2037]! } + public var Appearance_PreviewIncomingText: String { return self._s[2038]! } + public var ChannelInfo_ConfirmLeave: String { return self._s[2039]! } + public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2040]! } + public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2041]! } + public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2042]! } + public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2043]! } + public var GroupInfo_SetGroupPhotoStop: String { return self._s[2044]! } + public var Notification_SecretChatScreenshot: String { return self._s[2045]! } + public var AccessDenied_Wallpapers: String { return self._s[2046]! } + public var Passport_Address_City: String { return self._s[2048]! } + public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2049]! } + public var Appearance_ThemeCarouselClassic: String { return self._s[2050]! } + public var SocksProxySetup_SecretPlaceholder: String { return self._s[2051]! } + public var AccessDenied_LocationDisabled: String { return self._s[2052]! } + public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2054]! } + public var GroupInfo_Sound: String { return self._s[2055]! } + public var ChannelInfo_ScamChannelWarning: String { return self._s[2056]! } + public var Stickers_RemoveFromFavorites: String { return self._s[2057]! } + public var Contacts_Title: String { return self._s[2058]! } + public var Passport_Language_fr: String { return self._s[2059]! } + public var Notifications_ResetAllNotifications: String { return self._s[2060]! } + public var PrivacySettings_SecurityTitle: String { return self._s[2063]! } + public var Checkout_NewCard_Title: String { return self._s[2064]! } + public var Login_HaveNotReceivedCodeInternal: String { return self._s[2065]! } + public var Conversation_ForwardChats: String { return self._s[2066]! } + public var PasscodeSettings_4DigitCode: String { return self._s[2068]! } + public var Settings_FAQ: String { return self._s[2070]! } + public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2071]! } + public var Conversation_ContextMenuForward: String { return self._s[2072]! } + public var PrivacyPolicy_Title: String { return self._s[2077]! } + public var Notifications_TextTone: String { return self._s[2078]! } + public var Profile_CreateNewContact: String { return self._s[2079]! } + public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2080]! } + public var Call_Speaker: String { return self._s[2082]! } + public var AutoNightTheme_AutomaticSection: String { return self._s[2083]! } + public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2085]! } + public var Channel_Username_InvalidCharacters: String { return self._s[2086]! } public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2073]!, self._r[2073]!, [_0]) + return formatWithArgumentRanges(self._s[2087]!, self._r[2087]!, [_0]) } - public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2074]! } - public var PrivacySettings_LastSeenTitle: String { return self._s[2075]! } - public var Channel_AdminLog_CanInviteUsers: String { return self._s[2076]! } - public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2077]! } - public var Conversation_MessageDeliveryFailed: String { return self._s[2078]! } - public var Watch_ChatList_NoConversationsText: String { return self._s[2079]! } - public var Bot_Unblock: String { return self._s[2080]! } - public var TextFormat_Italic: String { return self._s[2081]! } - public var WallpaperSearch_ColorPink: String { return self._s[2082]! } - public var Settings_About_Help: String { return self._s[2083]! } - public var SearchImages_Title: String { return self._s[2084]! } - public var Weekday_Wednesday: String { return self._s[2085]! } - public var Conversation_ClousStorageInfo_Description1: String { return self._s[2086]! } - public var ExplicitContent_AlertTitle: String { return self._s[2087]! } + public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2088]! } + public var PrivacySettings_LastSeenTitle: String { return self._s[2089]! } + public var Channel_AdminLog_CanInviteUsers: String { return self._s[2090]! } + public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2091]! } + public var OwnershipTransfer_SecurityCheck: String { return self._s[2092]! } + public var Conversation_MessageDeliveryFailed: String { return self._s[2093]! } + public var Watch_ChatList_NoConversationsText: String { return self._s[2094]! } + public var Bot_Unblock: String { return self._s[2095]! } + public var TextFormat_Italic: String { return self._s[2096]! } + public var WallpaperSearch_ColorPink: String { return self._s[2097]! } + public var Settings_About_Help: String { return self._s[2098]! } + public var SearchImages_Title: String { return self._s[2099]! } + public var Weekday_Wednesday: String { return self._s[2100]! } + public var Conversation_ClousStorageInfo_Description1: String { return self._s[2101]! } + public var ExplicitContent_AlertTitle: String { return self._s[2102]! } public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2088]!, self._r[2088]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2103]!, self._r[2103]!, [_1, _2, _3]) } - public var Channel_DiscussionGroup_Create: String { return self._s[2089]! } - public var Weekday_Thursday: String { return self._s[2090]! } - public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2091]! } - public var Channel_Members_AddMembersHelp: String { return self._s[2092]! } + public var Channel_DiscussionGroup_Create: String { return self._s[2104]! } + public var Weekday_Thursday: String { return self._s[2105]! } + public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2106]! } + public var Channel_Members_AddMembersHelp: String { return self._s[2107]! } public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2093]!, self._r[2093]!, [_0]) + return formatWithArgumentRanges(self._s[2108]!, self._r[2108]!, [_0]) } - public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2094]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2095]! } - public var Passport_RequestedInformation: String { return self._s[2096]! } - public var Login_PhoneAndCountryHelp: String { return self._s[2097]! } - public var Conversation_EncryptionProcessing: String { return self._s[2099]! } - public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2100]! } - public var PhotoEditor_EnhanceTool: String { return self._s[2102]! } - public var Channel_Setup_Title: String { return self._s[2103]! } - public var Conversation_SearchPlaceholder: String { return self._s[2104]! } - public var AccessDenied_LocationAlwaysDenied: String { return self._s[2105]! } - public var Checkout_ErrorGeneric: String { return self._s[2106]! } - public var Passport_Language_hu: String { return self._s[2107]! } + public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2109]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2110]! } + public var Passport_RequestedInformation: String { return self._s[2111]! } + public var Login_PhoneAndCountryHelp: String { return self._s[2112]! } + public var Conversation_EncryptionProcessing: String { return self._s[2114]! } + public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2115]! } + public var PhotoEditor_EnhanceTool: String { return self._s[2117]! } + public var Channel_Setup_Title: String { return self._s[2118]! } + public var Conversation_SearchPlaceholder: String { return self._s[2119]! } + public var AccessDenied_LocationAlwaysDenied: String { return self._s[2120]! } + public var Checkout_ErrorGeneric: String { return self._s[2121]! } + public var Passport_Language_hu: String { return self._s[2122]! } public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2109]!, self._r[2109]!, [_0]) + return formatWithArgumentRanges(self._s[2124]!, self._r[2124]!, [_0]) } public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2112]!, self._r[2112]!, [_1]) + return formatWithArgumentRanges(self._s[2127]!, self._r[2127]!, [_1]) } public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2113]!, self._r[2113]!, [_0]) + return formatWithArgumentRanges(self._s[2128]!, self._r[2128]!, [_0]) } - public var Conversation_CloudStorageInfo_Title: String { return self._s[2114]! } - public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2115]! } + public var Conversation_CloudStorageInfo_Title: String { return self._s[2129]! } + public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2130]! } public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2116]!, self._r[2116]!, [_0]) - } - public var Conversation_ClearPrivateHistory: String { return self._s[2117]! } - public var ContactInfo_PhoneLabelHome: String { return self._s[2118]! } - public var PrivacySettings_LastSeenContacts: String { return self._s[2119]! } - public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2120]!, self._r[2120]!, [_0]) - } - public var Passport_Language_cs: String { return self._s[2121]! } - public var Message_PinnedAnimationMessage: String { return self._s[2123]! } - public var Passport_Identity_ReverseSideHelp: String { return self._s[2125]! } - public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2126]! } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2128]! } - public var Embed_PlayingInPIP: String { return self._s[2129]! } - public var AutoNightTheme_ScheduleSection: String { return self._s[2130]! } - public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2131]!, self._r[2131]!, [_0]) } - public var MediaPicker_LivePhotoDescription: String { return self._s[2132]! } - public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2133]!, self._r[2133]!, [_1]) + public var Conversation_ClearPrivateHistory: String { return self._s[2132]! } + public var ContactInfo_PhoneLabelHome: String { return self._s[2133]! } + public var PrivacySettings_LastSeenContacts: String { return self._s[2134]! } + public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_0]) } - public var Notification_PaymentSent: String { return self._s[2134]! } - public var PhotoEditor_CurvesGreen: String { return self._s[2135]! } - public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2136]! } - public var SaveIncomingPhotosSettings_Title: String { return self._s[2137]! } - public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2138]! } + public var Passport_Language_cs: String { return self._s[2136]! } + public var Message_PinnedAnimationMessage: String { return self._s[2138]! } + public var Passport_Identity_ReverseSideHelp: String { return self._s[2140]! } + public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2141]! } + public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2143]! } + public var Embed_PlayingInPIP: String { return self._s[2144]! } + public var AutoNightTheme_ScheduleSection: String { return self._s[2145]! } + public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2146]!, self._r[2146]!, [_0]) + } + public var MediaPicker_LivePhotoDescription: String { return self._s[2147]! } + public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2148]!, self._r[2148]!, [_1]) + } + public var Notification_PaymentSent: String { return self._s[2149]! } + public var PhotoEditor_CurvesGreen: String { return self._s[2150]! } + public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2151]! } + public var SaveIncomingPhotosSettings_Title: String { return self._s[2152]! } + public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2153]! } public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2141]!, self._r[2141]!, [_1]) + return formatWithArgumentRanges(self._s[2156]!, self._r[2156]!, [_1]) } public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2142]!, self._r[2142]!, [_1]) + return formatWithArgumentRanges(self._s[2157]!, self._r[2157]!, [_1]) } public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2143]!, self._r[2143]!, [_1]) + return formatWithArgumentRanges(self._s[2158]!, self._r[2158]!, [_1]) } - public var NetworkUsageSettings_CallDataSection: String { return self._s[2145]! } - public var PasscodeSettings_HelpTop: String { return self._s[2146]! } - public var Passport_Address_TypeRentalAgreement: String { return self._s[2147]! } - public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2148]! } - public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2149]! } - public var Call_Accept: String { return self._s[2151]! } - public var GroupRemoved_RemoveInfo: String { return self._s[2152]! } - public var Month_GenMarch: String { return self._s[2154]! } - public var PhotoEditor_ShadowsTool: String { return self._s[2155]! } - public var LoginPassword_Title: String { return self._s[2156]! } - public var Call_End: String { return self._s[2157]! } - public var Watch_Conversation_GroupInfo: String { return self._s[2158]! } - public var CallSettings_Always: String { return self._s[2159]! } - public var CallFeedback_Success: String { return self._s[2160]! } - public var TwoStepAuth_SetupHint: String { return self._s[2161]! } + public var NetworkUsageSettings_CallDataSection: String { return self._s[2160]! } + public var PasscodeSettings_HelpTop: String { return self._s[2161]! } + public var Passport_Address_TypeRentalAgreement: String { return self._s[2162]! } + public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2163]! } + public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2164]! } + public var Call_Accept: String { return self._s[2166]! } + public var GroupRemoved_RemoveInfo: String { return self._s[2167]! } + public var Month_GenMarch: String { return self._s[2169]! } + public var PhotoEditor_ShadowsTool: String { return self._s[2170]! } + public var LoginPassword_Title: String { return self._s[2171]! } + public var Call_End: String { return self._s[2172]! } + public var Watch_Conversation_GroupInfo: String { return self._s[2173]! } + public var CallSettings_Always: String { return self._s[2174]! } + public var CallFeedback_Success: String { return self._s[2175]! } + public var TwoStepAuth_SetupHint: String { return self._s[2176]! } public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2162]!, self._r[2162]!, [_1, _1]) + return formatWithArgumentRanges(self._s[2177]!, self._r[2177]!, [_1, _1]) } - public var ConversationProfile_UsersTooMuchError: String { return self._s[2163]! } - public var Login_PhoneTitle: String { return self._s[2164]! } - public var Passport_FieldPhoneHelp: String { return self._s[2165]! } - public var Weekday_ShortSunday: String { return self._s[2166]! } - public var Passport_InfoFAQ_URL: String { return self._s[2167]! } - public var ContactInfo_Job: String { return self._s[2169]! } - public var UserInfo_InviteBotToGroup: String { return self._s[2170]! } - public var Appearance_ThemeCarouselNightBlue: String { return self._s[2171]! } - public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2172]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2173]! } - public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2174]! } - public var CallFeedback_ReasonNoise: String { return self._s[2175]! } - public var Appearance_AppIconDefault: String { return self._s[2177]! } - public var Passport_Identity_AddInternalPassport: String { return self._s[2178]! } - public var MediaPicker_AddCaption: String { return self._s[2179]! } - public var CallSettings_TabIconDescription: String { return self._s[2180]! } - public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2181]! } - public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2182]! } - public var Passport_Identity_TypePersonalDetails: String { return self._s[2183]! } - public var DialogList_SearchSectionRecent: String { return self._s[2184]! } - public var PrivacyPolicy_DeclineMessage: String { return self._s[2185]! } - public var LogoutOptions_ClearCacheText: String { return self._s[2188]! } - public var LastSeen_WithinAWeek: String { return self._s[2189]! } - public var ChannelMembers_GroupAdminsTitle: String { return self._s[2190]! } - public var Conversation_CloudStorage_ChatStatus: String { return self._s[2192]! } - public var Passport_Address_TypeResidentialAddress: String { return self._s[2193]! } - public var Conversation_StatusLeftGroup: String { return self._s[2194]! } - public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2195]! } - public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2197]! } - public var GroupPermission_AddSuccess: String { return self._s[2198]! } - public var PhotoEditor_BlurToolRadial: String { return self._s[2200]! } - public var Conversation_ContextMenuCopy: String { return self._s[2201]! } - public var AccessDenied_CallMicrophone: String { return self._s[2202]! } + public var ConversationProfile_UsersTooMuchError: String { return self._s[2178]! } + public var Login_PhoneTitle: String { return self._s[2179]! } + public var Passport_FieldPhoneHelp: String { return self._s[2180]! } + public var Weekday_ShortSunday: String { return self._s[2181]! } + public var Passport_InfoFAQ_URL: String { return self._s[2182]! } + public var ContactInfo_Job: String { return self._s[2184]! } + public var UserInfo_InviteBotToGroup: String { return self._s[2185]! } + public var Appearance_ThemeCarouselNightBlue: String { return self._s[2186]! } + public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2187]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2188]! } + public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2189]! } + public var CallFeedback_ReasonNoise: String { return self._s[2190]! } + public var Appearance_AppIconDefault: String { return self._s[2192]! } + public var Passport_Identity_AddInternalPassport: String { return self._s[2193]! } + public var MediaPicker_AddCaption: String { return self._s[2194]! } + public var CallSettings_TabIconDescription: String { return self._s[2195]! } + public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2196]! } + public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2197]! } + public var Passport_Identity_TypePersonalDetails: String { return self._s[2198]! } + public var DialogList_SearchSectionRecent: String { return self._s[2199]! } + public var PrivacyPolicy_DeclineMessage: String { return self._s[2200]! } + public var LogoutOptions_ClearCacheText: String { return self._s[2203]! } + public var LastSeen_WithinAWeek: String { return self._s[2204]! } + public var ChannelMembers_GroupAdminsTitle: String { return self._s[2205]! } + public var Conversation_CloudStorage_ChatStatus: String { return self._s[2207]! } + public var Passport_Address_TypeResidentialAddress: String { return self._s[2208]! } + public var Conversation_StatusLeftGroup: String { return self._s[2209]! } + public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2210]! } + public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2212]! } + public var GroupPermission_AddSuccess: String { return self._s[2213]! } + public var PhotoEditor_BlurToolRadial: String { return self._s[2215]! } + public var Conversation_ContextMenuCopy: String { return self._s[2216]! } + public var AccessDenied_CallMicrophone: String { return self._s[2217]! } public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2203]!, self._r[2203]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2218]!, self._r[2218]!, [_1, _2, _3]) } - public var Login_InvalidFirstNameError: String { return self._s[2204]! } - public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2205]! } - public var Checkout_PaymentMethod_New: String { return self._s[2206]! } - public var ShareMenu_CopyShareLinkGame: String { return self._s[2207]! } - public var PhotoEditor_QualityTool: String { return self._s[2208]! } - public var Login_SendCodeViaSms: String { return self._s[2209]! } - public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2210]! } - public var Login_EmailNotConfiguredError: String { return self._s[2211]! } - public var SocksProxySetup_Status: String { return self._s[2212]! } - public var PrivacyPolicy_Accept: String { return self._s[2213]! } - public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2214]! } - public var Appearance_AppIconClassicX: String { return self._s[2215]! } + public var Login_InvalidFirstNameError: String { return self._s[2219]! } + public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2220]! } + public var Checkout_PaymentMethod_New: String { return self._s[2221]! } + public var ShareMenu_CopyShareLinkGame: String { return self._s[2222]! } + public var PhotoEditor_QualityTool: String { return self._s[2223]! } + public var Login_SendCodeViaSms: String { return self._s[2224]! } + public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2225]! } + public var Login_EmailNotConfiguredError: String { return self._s[2226]! } + public var SocksProxySetup_Status: String { return self._s[2227]! } + public var PrivacyPolicy_Accept: String { return self._s[2228]! } + public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2229]! } + public var Appearance_AppIconClassicX: String { return self._s[2230]! } public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2216]!, self._r[2216]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2231]!, self._r[2231]!, [_1, _2, _3]) } - public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2217]! } - public var AutoNightTheme_Automatic: String { return self._s[2218]! } - public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2219]! } - public var Privacy_ContactsSyncHelp: String { return self._s[2220]! } - public var Cache_Help: String { return self._s[2221]! } - public var Group_ErrorAccessDenied: String { return self._s[2222]! } - public var Passport_Language_fa: String { return self._s[2223]! } - public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2224]! } - public var PrivacySettings_LastSeen: String { return self._s[2225]! } + public var OwnershipTransfer_SecurityRequirements: String { return self._s[2232]! } + public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2233]! } + public var AutoNightTheme_Automatic: String { return self._s[2234]! } + public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2235]! } + public var Privacy_ContactsSyncHelp: String { return self._s[2236]! } + public var Cache_Help: String { return self._s[2237]! } + public var Group_ErrorAccessDenied: String { return self._s[2238]! } + public var Passport_Language_fa: String { return self._s[2239]! } + public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2240]! } + public var PrivacySettings_LastSeen: String { return self._s[2241]! } public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2226]!, self._r[2226]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2242]!, self._r[2242]!, [_0, _1]) } - public var Preview_SaveGif: String { return self._s[2230]! } - public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2231]! } - public var Profile_About: String { return self._s[2232]! } - public var Channel_About_Placeholder: String { return self._s[2233]! } - public var Login_InfoTitle: String { return self._s[2234]! } + public var Preview_SaveGif: String { return self._s[2246]! } + public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2247]! } + public var Profile_About: String { return self._s[2248]! } + public var Channel_About_Placeholder: String { return self._s[2249]! } + public var Login_InfoTitle: String { return self._s[2250]! } public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2235]!, self._r[2235]!, [_0]) + return formatWithArgumentRanges(self._s[2251]!, self._r[2251]!, [_0]) } - public var Watch_Suggestion_CantTalk: String { return self._s[2237]! } - public var ContactInfo_Title: String { return self._s[2238]! } - public var Media_ShareThisVideo: String { return self._s[2239]! } - public var Weekday_ShortFriday: String { return self._s[2240]! } - public var AccessDenied_Contacts: String { return self._s[2241]! } - public var Notification_CallIncomingShort: String { return self._s[2242]! } - public var Group_Setup_TypePublic: String { return self._s[2243]! } - public var Notifications_MessageNotificationsExceptions: String { return self._s[2244]! } - public var Notifications_Badge_IncludeChannels: String { return self._s[2245]! } - public var Notifications_MessageNotificationsPreview: String { return self._s[2248]! } - public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2249]! } - public var Group_ErrorAddTooMuchBots: String { return self._s[2250]! } - public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2251]! } - public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2252]! } - public var DialogList_Typing: String { return self._s[2253]! } - public var CallFeedback_IncludeLogs: String { return self._s[2255]! } - public var Checkout_Phone: String { return self._s[2257]! } - public var Login_InfoFirstNamePlaceholder: String { return self._s[2260]! } - public var Privacy_Calls_Integration: String { return self._s[2261]! } - public var Notifications_PermissionsAllow: String { return self._s[2262]! } - public var TwoStepAuth_AddHintDescription: String { return self._s[2266]! } - public var Settings_ChatSettings: String { return self._s[2267]! } + public var Watch_Suggestion_CantTalk: String { return self._s[2253]! } + public var ContactInfo_Title: String { return self._s[2254]! } + public var Media_ShareThisVideo: String { return self._s[2255]! } + public var Weekday_ShortFriday: String { return self._s[2256]! } + public var AccessDenied_Contacts: String { return self._s[2257]! } + public var Notification_CallIncomingShort: String { return self._s[2258]! } + public var Group_Setup_TypePublic: String { return self._s[2259]! } + public var Notifications_MessageNotificationsExceptions: String { return self._s[2260]! } + public var Notifications_Badge_IncludeChannels: String { return self._s[2261]! } + public var Notifications_MessageNotificationsPreview: String { return self._s[2264]! } + public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2265]! } + public var Group_ErrorAddTooMuchBots: String { return self._s[2266]! } + public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2267]! } + public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2268]! } + public var DialogList_Typing: String { return self._s[2269]! } + public var CallFeedback_IncludeLogs: String { return self._s[2271]! } + public var Checkout_Phone: String { return self._s[2273]! } + public var Login_InfoFirstNamePlaceholder: String { return self._s[2276]! } + public var Privacy_Calls_Integration: String { return self._s[2277]! } + public var Notifications_PermissionsAllow: String { return self._s[2278]! } + public var TwoStepAuth_AddHintDescription: String { return self._s[2282]! } + public var Settings_ChatSettings: String { return self._s[2283]! } public func PUSH_MESSAGE_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2268]!, self._r[2268]!, [_1]) + return formatWithArgumentRanges(self._s[2284]!, self._r[2284]!, [_1]) } public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2269]!, self._r[2269]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2285]!, self._r[2285]!, [_1, _2]) } - public var GroupRemoved_DeleteUser: String { return self._s[2271]! } + public var GroupRemoved_DeleteUser: String { return self._s[2287]! } public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2272]!, self._r[2272]!, [_0]) - } - public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2273]!, self._r[2273]!, [_1]) - } - public var Login_ContinueWithLocalization: String { return self._s[2274]! } - public var Watch_Message_ForwardedFrom: String { return self._s[2275]! } - public var TwoStepAuth_EnterEmailCode: String { return self._s[2277]! } - public var Conversation_Unblock: String { return self._s[2278]! } - public var PrivacySettings_DataSettings: String { return self._s[2279]! } - public var Notifications_InAppNotificationsVibrate: String { return self._s[2280]! } - public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2281]!, self._r[2281]!, [_0, _1]) - } - public var PrivacySettings_Passcode: String { return self._s[2284]! } - public var Call_Mute: String { return self._s[2285]! } - public var Passport_Language_dz: String { return self._s[2286]! } - public var Passport_Language_tk: String { return self._s[2287]! } - public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2288]!, self._r[2288]!, [_0]) } - public var Settings_Search: String { return self._s[2289]! } - public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2290]! } - public var Conversation_ContextMenuReply: String { return self._s[2291]! } - public var WallpaperSearch_ColorBrown: String { return self._s[2292]! } - public var Tour_Title1: String { return self._s[2293]! } - public var Conversation_ClearGroupHistory: String { return self._s[2295]! } - public var WallpaperPreview_Motion: String { return self._s[2296]! } + public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2289]!, self._r[2289]!, [_1]) + } + public var Login_ContinueWithLocalization: String { return self._s[2290]! } + public var Watch_Message_ForwardedFrom: String { return self._s[2291]! } + public var TwoStepAuth_EnterEmailCode: String { return self._s[2293]! } + public var Conversation_Unblock: String { return self._s[2294]! } + public var PrivacySettings_DataSettings: String { return self._s[2295]! } + public var Notifications_InAppNotificationsVibrate: String { return self._s[2296]! } + public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2297]!, self._r[2297]!, [_0, _1]) + } + public var PrivacySettings_Passcode: String { return self._s[2300]! } + public var Call_Mute: String { return self._s[2301]! } + public var Passport_Language_dz: String { return self._s[2302]! } + public var Passport_Language_tk: String { return self._s[2303]! } + public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2304]!, self._r[2304]!, [_0]) + } + public var Settings_Search: String { return self._s[2305]! } + public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2306]! } + public var Conversation_ContextMenuReply: String { return self._s[2307]! } + public var WallpaperSearch_ColorBrown: String { return self._s[2308]! } + public var Tour_Title1: String { return self._s[2309]! } + public var Conversation_ClearGroupHistory: String { return self._s[2311]! } + public var WallpaperPreview_Motion: String { return self._s[2312]! } public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2297]!, self._r[2297]!, [_0]) + return formatWithArgumentRanges(self._s[2313]!, self._r[2313]!, [_0]) } - public var Call_RateCall: String { return self._s[2298]! } - public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2299]! } - public var Passport_PasswordCompleteSetup: String { return self._s[2300]! } - public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2301]! } - public var UserInfo_LastNamePlaceholder: String { return self._s[2303]! } + public var Call_RateCall: String { return self._s[2314]! } + public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2315]! } + public var Passport_PasswordCompleteSetup: String { return self._s[2316]! } + public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2317]! } + public var UserInfo_LastNamePlaceholder: String { return self._s[2319]! } public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2305]!, self._r[2305]!, [_0]) - } - public var Compose_Create: String { return self._s[2306]! } - public var Contacts_InviteToTelegram: String { return self._s[2307]! } - public var GroupInfo_Notifications: String { return self._s[2308]! } - public var Message_PinnedLiveLocationMessage: String { return self._s[2310]! } - public var Month_GenApril: String { return self._s[2311]! } - public var Appearance_AutoNightTheme: String { return self._s[2312]! } - public var ChatSettings_AutomaticAudioDownload: String { return self._s[2314]! } - public var Login_CodeSentSms: String { return self._s[2316]! } - public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2317]!, self._r[2317]!, [_0]) - } - public var EmptyGroupInfo_Line3: String { return self._s[2318]! } - public var LogoutOptions_ContactSupportText: String { return self._s[2319]! } - public var Passport_Language_hr: String { return self._s[2320]! } - public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2321]!, self._r[2321]!, [_0]) } - public var GroupInfo_InviteLink_CopyLink: String { return self._s[2322]! } - public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2323]! } - public var Privacy_SecretChatsTitle: String { return self._s[2324]! } - public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2326]! } - public var GroupInfo_AddUserLeftError: String { return self._s[2327]! } - public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2328]! } - public var LogoutOptions_ContactSupportTitle: String { return self._s[2329]! } - public var Channel_AddBotErrorHaveRights: String { return self._s[2330]! } - public var Preview_DeleteGif: String { return self._s[2331]! } - public var GroupInfo_Permissions_Exceptions: String { return self._s[2332]! } - public var Group_ErrorNotMutualContact: String { return self._s[2333]! } - public var Notification_MessageLifetime5s: String { return self._s[2334]! } + public var Compose_Create: String { return self._s[2322]! } + public var Contacts_InviteToTelegram: String { return self._s[2323]! } + public var GroupInfo_Notifications: String { return self._s[2324]! } + public var Message_PinnedLiveLocationMessage: String { return self._s[2326]! } + public var Month_GenApril: String { return self._s[2327]! } + public var Appearance_AutoNightTheme: String { return self._s[2328]! } + public var ChatSettings_AutomaticAudioDownload: String { return self._s[2330]! } + public var Login_CodeSentSms: String { return self._s[2332]! } + public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2333]!, self._r[2333]!, [_0]) + } + public var EmptyGroupInfo_Line3: String { return self._s[2334]! } + public var LogoutOptions_ContactSupportText: String { return self._s[2335]! } + public var Passport_Language_hr: String { return self._s[2336]! } + public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2337]!, self._r[2337]!, [_0]) + } + public var GroupInfo_InviteLink_CopyLink: String { return self._s[2338]! } + public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2339]! } + public var Privacy_SecretChatsTitle: String { return self._s[2340]! } + public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2342]! } + public var GroupInfo_AddUserLeftError: String { return self._s[2343]! } + public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2344]! } + public var LogoutOptions_ContactSupportTitle: String { return self._s[2345]! } + public var Channel_AddBotErrorHaveRights: String { return self._s[2346]! } + public var Preview_DeleteGif: String { return self._s[2347]! } + public var GroupInfo_Permissions_Exceptions: String { return self._s[2348]! } + public var Group_ErrorNotMutualContact: String { return self._s[2349]! } + public var Notification_MessageLifetime5s: String { return self._s[2350]! } public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2335]!, self._r[2335]!, [_0]) + return formatWithArgumentRanges(self._s[2351]!, self._r[2351]!, [_0]) } - public var ReportSpam_DeleteThisChat: String { return self._s[2337]! } - public var Passport_Address_AddBankStatement: String { return self._s[2338]! } - public var Notification_CallIncoming: String { return self._s[2339]! } - public var Compose_NewGroupTitle: String { return self._s[2340]! } - public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2342]! } - public var Passport_Address_Postcode: String { return self._s[2344]! } + public var ReportSpam_DeleteThisChat: String { return self._s[2353]! } + public var Passport_Address_AddBankStatement: String { return self._s[2354]! } + public var Notification_CallIncoming: String { return self._s[2355]! } + public var Compose_NewGroupTitle: String { return self._s[2356]! } + public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2358]! } + public var Passport_Address_Postcode: String { return self._s[2360]! } public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2345]!, self._r[2345]!, [_0]) + return formatWithArgumentRanges(self._s[2361]!, self._r[2361]!, [_0]) } - public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2346]! } - public var WallpaperColors_Title: String { return self._s[2347]! } - public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2348]! } - public var GroupPermission_Duration: String { return self._s[2349]! } + public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2362]! } + public var WallpaperColors_Title: String { return self._s[2363]! } + public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2364]! } + public var GroupPermission_Duration: String { return self._s[2365]! } public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2350]!, self._r[2350]!, [_0]) + return formatWithArgumentRanges(self._s[2366]!, self._r[2366]!, [_0]) } - public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2351]! } - public var Username_Placeholder: String { return self._s[2352]! } - public var CallFeedback_WhatWentWrong: String { return self._s[2353]! } - public var Passport_FieldAddressUploadHelp: String { return self._s[2354]! } - public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2355]! } + public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2367]! } + public var Username_Placeholder: String { return self._s[2368]! } + public var CallFeedback_WhatWentWrong: String { return self._s[2369]! } + public var Passport_FieldAddressUploadHelp: String { return self._s[2370]! } + public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2371]! } public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2357]!, self._r[2357]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2373]!, self._r[2373]!, [_1, _2]) } - public var Passport_PasswordDescription: String { return self._s[2358]! } - public var Channel_MessagePhotoUpdated: String { return self._s[2359]! } - public var MediaPicker_TapToUngroupDescription: String { return self._s[2360]! } - public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2361]! } - public var AttachmentMenu_PhotoOrVideo: String { return self._s[2362]! } - public var Conversation_ContextMenuMore: String { return self._s[2363]! } - public var Privacy_PaymentsClearInfo: String { return self._s[2364]! } - public var CallSettings_TabIcon: String { return self._s[2365]! } - public var KeyCommand_Find: String { return self._s[2366]! } - public var Message_PinnedGame: String { return self._s[2367]! } - public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2369]! } - public var Login_CallRequestState2: String { return self._s[2371]! } - public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2373]! } + public var Passport_PasswordDescription: String { return self._s[2374]! } + public var Channel_MessagePhotoUpdated: String { return self._s[2375]! } + public var MediaPicker_TapToUngroupDescription: String { return self._s[2376]! } + public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2377]! } + public var AttachmentMenu_PhotoOrVideo: String { return self._s[2378]! } + public var Conversation_ContextMenuMore: String { return self._s[2379]! } + public var Privacy_PaymentsClearInfo: String { return self._s[2380]! } + public var CallSettings_TabIcon: String { return self._s[2381]! } + public var KeyCommand_Find: String { return self._s[2382]! } + public var Message_PinnedGame: String { return self._s[2383]! } + public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2385]! } + public var Login_CallRequestState2: String { return self._s[2387]! } + public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2389]! } public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2375]!, self._r[2375]!, [_0]) + return formatWithArgumentRanges(self._s[2391]!, self._r[2391]!, [_0]) } - public var WallpaperPreview_Blurred: String { return self._s[2376]! } - public var Conversation_InstantPagePreview: String { return self._s[2377]! } + public var WallpaperPreview_Blurred: String { return self._s[2392]! } + public var Conversation_InstantPagePreview: String { return self._s[2393]! } public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2378]!, self._r[2378]!, [_0]) + return formatWithArgumentRanges(self._s[2394]!, self._r[2394]!, [_0]) } - public var SecretTimer_VideoDescription: String { return self._s[2381]! } - public var WallpaperSearch_ColorRed: String { return self._s[2382]! } - public var GroupPermission_NoPinMessages: String { return self._s[2383]! } - public var Passport_Language_es: String { return self._s[2384]! } - public var Permissions_ContactsAllow_v0: String { return self._s[2386]! } - public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2387]! } + public var SecretTimer_VideoDescription: String { return self._s[2397]! } + public var WallpaperSearch_ColorRed: String { return self._s[2398]! } + public var GroupPermission_NoPinMessages: String { return self._s[2399]! } + public var Passport_Language_es: String { return self._s[2400]! } + public var Permissions_ContactsAllow_v0: String { return self._s[2402]! } + public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2403]! } public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2388]!, self._r[2388]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2404]!, self._r[2404]!, [_1, _2]) } - public var Privacy_Forwards_CustomHelp: String { return self._s[2389]! } - public var WebPreview_GettingLinkInfo: String { return self._s[2390]! } - public var Watch_UserInfo_Unmute: String { return self._s[2391]! } - public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2392]! } - public var AccessDenied_CameraRestricted: String { return self._s[2394]! } + public var Privacy_Forwards_CustomHelp: String { return self._s[2405]! } + public var WebPreview_GettingLinkInfo: String { return self._s[2406]! } + public var Watch_UserInfo_Unmute: String { return self._s[2407]! } + public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2408]! } + public var AccessDenied_CameraRestricted: String { return self._s[2410]! } public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2395]!, self._r[2395]!, ["\(_0)"]) + return formatWithArgumentRanges(self._s[2411]!, self._r[2411]!, ["\(_0)"]) } - public var ChatList_ReadAll: String { return self._s[2397]! } - public var Settings_CopyUsername: String { return self._s[2398]! } - public var Contacts_SearchLabel: String { return self._s[2399]! } - public var Map_OpenInYandexNavigator: String { return self._s[2401]! } - public var PasscodeSettings_EncryptData: String { return self._s[2402]! } - public var WallpaperSearch_ColorPrefix: String { return self._s[2403]! } - public var Notifications_GroupNotificationsPreview: String { return self._s[2404]! } - public var DialogList_AdNoticeAlert: String { return self._s[2405]! } - public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2407]! } - public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2408]! } - public var Localization_LanguageCustom: String { return self._s[2409]! } - public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2410]! } - public var CallFeedback_Title: String { return self._s[2411]! } - public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2414]! } - public var Conversation_InfoGroup: String { return self._s[2415]! } - public var Compose_NewMessage: String { return self._s[2416]! } - public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2417]! } - public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2418]! } - public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2419]! } + public var ChatList_ReadAll: String { return self._s[2413]! } + public var Settings_CopyUsername: String { return self._s[2414]! } + public var Contacts_SearchLabel: String { return self._s[2415]! } + public var Map_OpenInYandexNavigator: String { return self._s[2417]! } + public var PasscodeSettings_EncryptData: String { return self._s[2418]! } + public var WallpaperSearch_ColorPrefix: String { return self._s[2419]! } + public var Notifications_GroupNotificationsPreview: String { return self._s[2420]! } + public var DialogList_AdNoticeAlert: String { return self._s[2421]! } + public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2423]! } + public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2424]! } + public var Localization_LanguageCustom: String { return self._s[2425]! } + public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2426]! } + public var CallFeedback_Title: String { return self._s[2427]! } + public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2430]! } + public var Conversation_InfoGroup: String { return self._s[2431]! } + public var Compose_NewMessage: String { return self._s[2432]! } + public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2433]! } + public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2434]! } + public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2435]! } public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2420]!, self._r[2420]!, [_0]) + return formatWithArgumentRanges(self._s[2436]!, self._r[2436]!, [_0]) } - public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2421]! } - public var Login_CancelSignUpConfirmation: String { return self._s[2422]! } - public var ChangePhoneNumberCode_Help: String { return self._s[2423]! } - public var PrivacySettings_DeleteAccountHelp: String { return self._s[2424]! } - public var Channel_BlackList_Title: String { return self._s[2425]! } - public var UserInfo_PhoneCall: String { return self._s[2426]! } - public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2428]! } - public var State_connecting: String { return self._s[2429]! } + public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2437]! } + public var Login_CancelSignUpConfirmation: String { return self._s[2438]! } + public var ChangePhoneNumberCode_Help: String { return self._s[2439]! } + public var PrivacySettings_DeleteAccountHelp: String { return self._s[2440]! } + public var Channel_BlackList_Title: String { return self._s[2441]! } + public var UserInfo_PhoneCall: String { return self._s[2442]! } + public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2444]! } + public var State_connecting: String { return self._s[2445]! } public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2430]!, self._r[2430]!, [_0]) + return formatWithArgumentRanges(self._s[2446]!, self._r[2446]!, [_0]) } - public var Notifications_GroupNotifications: String { return self._s[2431]! } - public var Passport_Identity_EditPassport: String { return self._s[2432]! } - public var EnterPasscode_RepeatNewPasscode: String { return self._s[2434]! } - public var Localization_EnglishLanguageName: String { return self._s[2435]! } - public var Share_AuthDescription: String { return self._s[2436]! } - public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2437]! } - public var Passport_Identity_Surname: String { return self._s[2438]! } - public var Compose_TokenListPlaceholder: String { return self._s[2439]! } - public var Passport_Identity_OneOfTypePassport: String { return self._s[2440]! } - public var Settings_AboutEmpty: String { return self._s[2441]! } - public var Conversation_Unmute: String { return self._s[2442]! } + public var Notifications_GroupNotifications: String { return self._s[2447]! } + public var Passport_Identity_EditPassport: String { return self._s[2448]! } + public var EnterPasscode_RepeatNewPasscode: String { return self._s[2450]! } + public var Localization_EnglishLanguageName: String { return self._s[2451]! } + public var Share_AuthDescription: String { return self._s[2452]! } + public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2453]! } + public var Passport_Identity_Surname: String { return self._s[2454]! } + public var Compose_TokenListPlaceholder: String { return self._s[2455]! } + public var Passport_Identity_OneOfTypePassport: String { return self._s[2456]! } + public var Settings_AboutEmpty: String { return self._s[2457]! } + public var Conversation_Unmute: String { return self._s[2458]! } public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2444]!, self._r[2444]!, [_1]) + return formatWithArgumentRanges(self._s[2460]!, self._r[2460]!, [_1]) } - public var Login_CodeSentCall: String { return self._s[2445]! } - public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2447]! } - public var ChatSettings_Appearance: String { return self._s[2448]! } - public var Appearance_PickAccentColor: String { return self._s[2449]! } + public var Login_CodeSentCall: String { return self._s[2461]! } + public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2463]! } + public var ChatSettings_Appearance: String { return self._s[2464]! } + public var Appearance_PickAccentColor: String { return self._s[2465]! } public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2450]!, self._r[2450]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2466]!, self._r[2466]!, [_1, _2]) } public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2451]!, self._r[2451]!, [_1]) + return formatWithArgumentRanges(self._s[2467]!, self._r[2467]!, [_1]) } - public var Notification_CallMissed: String { return self._s[2452]! } - public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[2453]! } - public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2454]! } - public var ChatAdmins_AdminLabel: String { return self._s[2456]! } - public var KeyCommand_JumpToNextChat: String { return self._s[2457]! } - public var Conversation_StopPollConfirmationTitle: String { return self._s[2459]! } - public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[2460]! } - public var Month_GenJune: String { return self._s[2461]! } - public var Watch_Location_Current: String { return self._s[2462]! } - public var Conversation_TitleMute: String { return self._s[2463]! } + public var Notification_CallMissed: String { return self._s[2468]! } + public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[2469]! } + public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2470]! } + public var ChatAdmins_AdminLabel: String { return self._s[2472]! } + public var KeyCommand_JumpToNextChat: String { return self._s[2473]! } + public var Conversation_StopPollConfirmationTitle: String { return self._s[2475]! } + public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[2476]! } + public var Month_GenJune: String { return self._s[2477]! } + public var Watch_Location_Current: String { return self._s[2478]! } + public var Conversation_TitleMute: String { return self._s[2479]! } public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2464]!, self._r[2464]!, [_1]) + return formatWithArgumentRanges(self._s[2480]!, self._r[2480]!, [_1]) } - public var GroupInfo_DeleteAndExit: String { return self._s[2465]! } + public var GroupInfo_DeleteAndExit: String { return self._s[2481]! } public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2466]!, self._r[2466]!, [_0]) + return formatWithArgumentRanges(self._s[2482]!, self._r[2482]!, [_0]) } - public var Call_ReportPlaceholder: String { return self._s[2467]! } - public var MaskStickerSettings_Info: String { return self._s[2468]! } + public var Call_ReportPlaceholder: String { return self._s[2483]! } + public var MaskStickerSettings_Info: String { return self._s[2484]! } public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2469]!, self._r[2469]!, [_0]) + return formatWithArgumentRanges(self._s[2485]!, self._r[2485]!, [_0]) } - public var Checkout_NewCard_PostcodeTitle: String { return self._s[2470]! } - public var Passport_Address_RegionPlaceholder: String { return self._s[2472]! } - public var Contacts_ShareTelegram: String { return self._s[2473]! } - public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[2474]! } - public var Channel_ErrorAccessDenied: String { return self._s[2475]! } - public var UserInfo_ScamBotWarning: String { return self._s[2477]! } - public var Stickers_GroupChooseStickerPack: String { return self._s[2478]! } - public var Call_ConnectionErrorTitle: String { return self._s[2479]! } - public var UserInfo_NotificationsEnable: String { return self._s[2480]! } - public var ArchivedChats_IntroText1: String { return self._s[2481]! } - public var Tour_Text4: String { return self._s[2484]! } - public var WallpaperSearch_Recent: String { return self._s[2485]! } - public var GroupInfo_ScamGroupWarning: String { return self._s[2486]! } - public var Profile_MessageLifetime2s: String { return self._s[2488]! } - public var Notification_MessageLifetime2s: String { return self._s[2489]! } + public var Checkout_NewCard_PostcodeTitle: String { return self._s[2486]! } + public var Passport_Address_RegionPlaceholder: String { return self._s[2488]! } + public var Contacts_ShareTelegram: String { return self._s[2489]! } + public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[2490]! } + public var Channel_ErrorAccessDenied: String { return self._s[2491]! } + public var UserInfo_ScamBotWarning: String { return self._s[2493]! } + public var Stickers_GroupChooseStickerPack: String { return self._s[2494]! } + public var Call_ConnectionErrorTitle: String { return self._s[2495]! } + public var UserInfo_NotificationsEnable: String { return self._s[2496]! } + public var ArchivedChats_IntroText1: String { return self._s[2497]! } + public var Tour_Text4: String { return self._s[2500]! } + public var WallpaperSearch_Recent: String { return self._s[2501]! } + public var GroupInfo_ScamGroupWarning: String { return self._s[2502]! } + public var Profile_MessageLifetime2s: String { return self._s[2504]! } + public var Notification_MessageLifetime2s: String { return self._s[2505]! } public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2490]!, self._r[2490]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2506]!, self._r[2506]!, [_1, _2, _3]) } - public var Cache_ClearCache: String { return self._s[2491]! } - public var AutoNightTheme_UpdateLocation: String { return self._s[2492]! } - public var Permissions_NotificationsUnreachableText_v0: String { return self._s[2493]! } + public var Cache_ClearCache: String { return self._s[2507]! } + public var AutoNightTheme_UpdateLocation: String { return self._s[2508]! } + public var Permissions_NotificationsUnreachableText_v0: String { return self._s[2509]! } public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2497]!, self._r[2497]!, [_0]) + return formatWithArgumentRanges(self._s[2513]!, self._r[2513]!, [_0]) } public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2499]!, self._r[2499]!, [_0]) + return formatWithArgumentRanges(self._s[2515]!, self._r[2515]!, [_0]) } - public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[2500]! } - public var SocksProxySetup_TypeSocks: String { return self._s[2501]! } - public var ChatList_UnarchiveAction: String { return self._s[2502]! } - public var AutoNightTheme_Title: String { return self._s[2503]! } - public var InstantPage_FeedbackButton: String { return self._s[2504]! } - public var Passport_FieldAddress: String { return self._s[2505]! } - public var Month_ShortMarch: String { return self._s[2506]! } + public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[2516]! } + public var SocksProxySetup_TypeSocks: String { return self._s[2517]! } + public var ChatList_UnarchiveAction: String { return self._s[2518]! } + public var AutoNightTheme_Title: String { return self._s[2519]! } + public var InstantPage_FeedbackButton: String { return self._s[2520]! } + public var Passport_FieldAddress: String { return self._s[2521]! } + public var Month_ShortMarch: String { return self._s[2522]! } public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2507]!, self._r[2507]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2523]!, self._r[2523]!, [_1, _2]) } - public var SocksProxySetup_UsernamePlaceholder: String { return self._s[2508]! } - public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[2509]! } - public var Passport_FloodError: String { return self._s[2510]! } - public var SecretGif_Title: String { return self._s[2511]! } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2512]! } - public var Passport_Language_th: String { return self._s[2514]! } - public var Passport_Address_Address: String { return self._s[2515]! } - public var Login_InvalidLastNameError: String { return self._s[2516]! } - public var Notifications_InAppNotificationsPreview: String { return self._s[2517]! } - public var Notifications_PermissionsUnreachableTitle: String { return self._s[2518]! } - public var SettingsSearch_FAQ: String { return self._s[2519]! } - public var ShareMenu_Send: String { return self._s[2520]! } - public var WallpaperSearch_ColorYellow: String { return self._s[2522]! } - public var Month_GenNovember: String { return self._s[2524]! } - public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[2526]! } - public var Checkout_Email: String { return self._s[2527]! } - public var NotificationsSound_Tritone: String { return self._s[2528]! } - public var StickerPacksSettings_ManagingHelp: String { return self._s[2530]! } + public var SocksProxySetup_UsernamePlaceholder: String { return self._s[2524]! } + public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[2525]! } + public var Passport_FloodError: String { return self._s[2526]! } + public var SecretGif_Title: String { return self._s[2527]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2528]! } + public var Passport_Language_th: String { return self._s[2530]! } + public var Passport_Address_Address: String { return self._s[2531]! } + public var Login_InvalidLastNameError: String { return self._s[2532]! } + public var Notifications_InAppNotificationsPreview: String { return self._s[2533]! } + public var Notifications_PermissionsUnreachableTitle: String { return self._s[2534]! } + public var SettingsSearch_FAQ: String { return self._s[2535]! } + public var ShareMenu_Send: String { return self._s[2536]! } + public var WallpaperSearch_ColorYellow: String { return self._s[2538]! } + public var Month_GenNovember: String { return self._s[2540]! } + public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[2542]! } + public var Checkout_Email: String { return self._s[2543]! } + public var NotificationsSound_Tritone: String { return self._s[2544]! } + public var StickerPacksSettings_ManagingHelp: String { return self._s[2546]! } public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2533]!, self._r[2533]!, [_1]) + return formatWithArgumentRanges(self._s[2549]!, self._r[2549]!, [_1]) } - public var ChangePhoneNumberNumber_Help: String { return self._s[2534]! } + public var ChangePhoneNumberNumber_Help: String { return self._s[2550]! } public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2535]!, self._r[2535]!, [_1, _1, _1, _2]) + return formatWithArgumentRanges(self._s[2551]!, self._r[2551]!, [_1, _1, _1, _2]) } - public var ChatList_UndoArchiveTitle: String { return self._s[2536]! } - public var Notification_Exceptions_Add: String { return self._s[2537]! } - public var DialogList_You: String { return self._s[2538]! } - public var MediaPicker_Send: String { return self._s[2541]! } - public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2542]! } - public var Call_AudioRouteSpeaker: String { return self._s[2543]! } - public var Watch_UserInfo_Title: String { return self._s[2544]! } - public var Appearance_AccentColor: String { return self._s[2545]! } + public var ChatList_UndoArchiveTitle: String { return self._s[2552]! } + public var Notification_Exceptions_Add: String { return self._s[2553]! } + public var DialogList_You: String { return self._s[2554]! } + public var MediaPicker_Send: String { return self._s[2557]! } + public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2558]! } + public var Call_AudioRouteSpeaker: String { return self._s[2559]! } + public var Watch_UserInfo_Title: String { return self._s[2560]! } + public var Appearance_AccentColor: String { return self._s[2561]! } public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2546]!, self._r[2546]!, [_0]) + return formatWithArgumentRanges(self._s[2562]!, self._r[2562]!, [_0]) } - public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2547]! } + public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2563]! } public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2548]!, self._r[2548]!, [_1, _2]) - } - public var Conversation_ClousStorageInfo_Description2: String { return self._s[2549]! } - public var WebSearch_RecentClearConfirmation: String { return self._s[2550]! } - public var Notification_CallOutgoing: String { return self._s[2551]! } - public var PrivacySettings_PasscodeAndFaceId: String { return self._s[2552]! } - public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[2553]! } - public var Call_RecordingDisabledMessage: String { return self._s[2554]! } - public var Message_Game: String { return self._s[2555]! } - public var Conversation_PressVolumeButtonForSound: String { return self._s[2556]! } - public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[2557]! } - public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[2558]! } - public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[2559]! } - public var Date_DialogDateFormat: String { return self._s[2560]! } - public var WallpaperColors_SetCustomColor: String { return self._s[2561]! } - public var Notifications_InAppNotifications: String { return self._s[2562]! } - public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2563]!, self._r[2563]!, [_0]) - } - public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2564]!, self._r[2564]!, [_1, _2]) } - public var NewContact_Title: String { return self._s[2565]! } + public var Conversation_ClousStorageInfo_Description2: String { return self._s[2565]! } + public var WebSearch_RecentClearConfirmation: String { return self._s[2566]! } + public var Notification_CallOutgoing: String { return self._s[2567]! } + public var PrivacySettings_PasscodeAndFaceId: String { return self._s[2568]! } + public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[2569]! } + public var Call_RecordingDisabledMessage: String { return self._s[2570]! } + public var Message_Game: String { return self._s[2571]! } + public var Conversation_PressVolumeButtonForSound: String { return self._s[2572]! } + public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[2573]! } + public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[2574]! } + public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[2575]! } + public var Date_DialogDateFormat: String { return self._s[2576]! } + public var WallpaperColors_SetCustomColor: String { return self._s[2577]! } + public var Notifications_InAppNotifications: String { return self._s[2578]! } + public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2579]!, self._r[2579]!, [_0]) + } + public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2580]!, self._r[2580]!, [_1, _2]) + } + public var NewContact_Title: String { return self._s[2581]! } public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2566]!, self._r[2566]!, [_0]) + return formatWithArgumentRanges(self._s[2582]!, self._r[2582]!, [_0]) } - public var Conversation_ViewContactDetails: String { return self._s[2567]! } + public var Conversation_ViewContactDetails: String { return self._s[2583]! } public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2569]!, self._r[2569]!, [_1]) + return formatWithArgumentRanges(self._s[2585]!, self._r[2585]!, [_1]) } - public var Checkout_NewCard_CardholderNameTitle: String { return self._s[2570]! } - public var Passport_Identity_ExpiryDateNone: String { return self._s[2571]! } - public var PrivacySettings_Title: String { return self._s[2572]! } - public var Conversation_SilentBroadcastTooltipOff: String { return self._s[2575]! } - public var GroupRemoved_UsersSectionTitle: String { return self._s[2576]! } - public var Contacts_PhoneNumber: String { return self._s[2577]! } - public var Map_ShowPlaces: String { return self._s[2579]! } - public var ChatAdmins_Title: String { return self._s[2580]! } - public var InstantPage_Reference: String { return self._s[2582]! } + public var Checkout_NewCard_CardholderNameTitle: String { return self._s[2586]! } + public var Passport_Identity_ExpiryDateNone: String { return self._s[2587]! } + public var PrivacySettings_Title: String { return self._s[2588]! } + public var Conversation_SilentBroadcastTooltipOff: String { return self._s[2591]! } + public var GroupRemoved_UsersSectionTitle: String { return self._s[2592]! } + public var Contacts_PhoneNumber: String { return self._s[2593]! } + public var Map_ShowPlaces: String { return self._s[2595]! } + public var ChatAdmins_Title: String { return self._s[2596]! } + public var InstantPage_Reference: String { return self._s[2598]! } public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2583]!, self._r[2583]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2599]!, self._r[2599]!, [_1, _2]) } - public var Camera_FlashOff: String { return self._s[2584]! } - public var Watch_UserInfo_Block: String { return self._s[2585]! } - public var ChatSettings_Stickers: String { return self._s[2586]! } - public var ChatSettings_DownloadInBackground: String { return self._s[2587]! } + public var Camera_FlashOff: String { return self._s[2600]! } + public var Watch_UserInfo_Block: String { return self._s[2601]! } + public var ChatSettings_Stickers: String { return self._s[2602]! } + public var ChatSettings_DownloadInBackground: String { return self._s[2603]! } public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2588]!, self._r[2588]!, [_0]) - } - public var Settings_ViewPhoto: String { return self._s[2589]! } - public var Login_CheckOtherSessionMessages: String { return self._s[2590]! } - public var AutoDownloadSettings_Cellular: String { return self._s[2591]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2592]! } - public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2594]!, self._r[2594]!, [_0]) - } - public var Privacy_DeleteDrafts: String { return self._s[2595]! } - public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[2596]! } - public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2597]!, self._r[2597]!, [_0]) - } - public var DialogList_SavedMessagesHelp: String { return self._s[2598]! } - public var DialogList_SavedMessages: String { return self._s[2599]! } - public var GroupInfo_UpgradeButton: String { return self._s[2600]! } - public var DialogList_Pin: String { return self._s[2602]! } - public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2603]!, self._r[2603]!, [_0, _1]) - } - public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2604]!, self._r[2604]!, [_0]) } - public var Notification_Exceptions_AlwaysOn: String { return self._s[2605]! } - public var UserInfo_NotificationsDisable: String { return self._s[2606]! } - public var Paint_Outlined: String { return self._s[2607]! } - public var Activity_PlayingGame: String { return self._s[2608]! } - public var SearchImages_NoImagesFound: String { return self._s[2609]! } - public var SocksProxySetup_ProxyType: String { return self._s[2610]! } - public var AppleWatch_ReplyPresetsHelp: String { return self._s[2612]! } - public var Conversation_ContextMenuCancelSending: String { return self._s[2613]! } - public var Settings_AppLanguage: String { return self._s[2614]! } - public var TwoStepAuth_ResetAccountHelp: String { return self._s[2615]! } - public var Common_ChoosePhoto: String { return self._s[2616]! } - public var CallFeedback_ReasonEcho: String { return self._s[2617]! } + public var Settings_ViewPhoto: String { return self._s[2605]! } + public var Login_CheckOtherSessionMessages: String { return self._s[2606]! } + public var AutoDownloadSettings_Cellular: String { return self._s[2607]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2608]! } + public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2610]!, self._r[2610]!, [_0]) + } + public var Privacy_DeleteDrafts: String { return self._s[2611]! } + public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[2612]! } + public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2613]!, self._r[2613]!, [_0]) + } + public var DialogList_SavedMessagesHelp: String { return self._s[2614]! } + public var DialogList_SavedMessages: String { return self._s[2615]! } + public var GroupInfo_UpgradeButton: String { return self._s[2616]! } + public var DialogList_Pin: String { return self._s[2618]! } + public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2619]!, self._r[2619]!, [_0, _1]) + } + public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2620]!, self._r[2620]!, [_0]) + } + public var Notification_Exceptions_AlwaysOn: String { return self._s[2621]! } + public var UserInfo_NotificationsDisable: String { return self._s[2622]! } + public var Paint_Outlined: String { return self._s[2623]! } + public var Activity_PlayingGame: String { return self._s[2624]! } + public var SearchImages_NoImagesFound: String { return self._s[2625]! } + public var SocksProxySetup_ProxyType: String { return self._s[2626]! } + public var AppleWatch_ReplyPresetsHelp: String { return self._s[2628]! } + public var Conversation_ContextMenuCancelSending: String { return self._s[2629]! } + public var Settings_AppLanguage: String { return self._s[2630]! } + public var TwoStepAuth_ResetAccountHelp: String { return self._s[2631]! } + public var Common_ChoosePhoto: String { return self._s[2632]! } + public var CallFeedback_ReasonEcho: String { return self._s[2633]! } public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2618]!, self._r[2618]!, [_1]) + return formatWithArgumentRanges(self._s[2634]!, self._r[2634]!, [_1]) } - public var Privacy_Calls_AlwaysAllow: String { return self._s[2619]! } - public var Activity_UploadingVideo: String { return self._s[2620]! } - public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[2621]! } - public var NetworkUsageSettings_Wifi: String { return self._s[2622]! } - public var Channel_BanUser_PermissionReadMessages: String { return self._s[2623]! } - public var Checkout_PayWithTouchId: String { return self._s[2624]! } - public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2625]! } + public var Privacy_Calls_AlwaysAllow: String { return self._s[2635]! } + public var Activity_UploadingVideo: String { return self._s[2636]! } + public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[2637]! } + public var NetworkUsageSettings_Wifi: String { return self._s[2638]! } + public var Channel_BanUser_PermissionReadMessages: String { return self._s[2639]! } + public var Checkout_PayWithTouchId: String { return self._s[2640]! } + public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2641]! } public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2627]!, self._r[2627]!, [_1]) + return formatWithArgumentRanges(self._s[2643]!, self._r[2643]!, [_1]) } - public var Notifications_ExceptionsNone: String { return self._s[2628]! } + public var Notifications_ExceptionsNone: String { return self._s[2644]! } public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2629]!, self._r[2629]!, [_0]) + return formatWithArgumentRanges(self._s[2645]!, self._r[2645]!, [_0]) } public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2630]!, self._r[2630]!, [_1]) + return formatWithArgumentRanges(self._s[2646]!, self._r[2646]!, [_1]) } - public var AuthSessions_IncompleteAttempts: String { return self._s[2632]! } - public var Passport_Address_Region: String { return self._s[2635]! } - public var ChatList_DeleteChat: String { return self._s[2636]! } - public var LogoutOptions_ClearCacheTitle: String { return self._s[2637]! } - public var PhotoEditor_TiltShift: String { return self._s[2638]! } - public var Settings_FAQ_URL: String { return self._s[2639]! } - public var Passport_Language_sl: String { return self._s[2640]! } - public var Settings_PrivacySettings: String { return self._s[2642]! } - public var SharedMedia_TitleLink: String { return self._s[2643]! } - public var Passport_Identity_TypePassportUploadScan: String { return self._s[2644]! } - public var Settings_SetProfilePhoto: String { return self._s[2645]! } - public var Channel_About_Help: String { return self._s[2646]! } - public var Contacts_PermissionsEnable: String { return self._s[2647]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[2648]! } - public var AttachmentMenu_SendAsFiles: String { return self._s[2649]! } - public var CallFeedback_ReasonInterruption: String { return self._s[2651]! } - public var Passport_Address_AddTemporaryRegistration: String { return self._s[2652]! } - public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[2653]! } - public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[2654]! } - public var PrivacySettings_DeleteAccountTitle: String { return self._s[2655]! } - public var AccessDenied_VideoMessageCamera: String { return self._s[2657]! } - public var Map_OpenInYandexMaps: String { return self._s[2659]! } - public var PhotoEditor_SaturationTool: String { return self._s[2660]! } + public var AuthSessions_IncompleteAttempts: String { return self._s[2648]! } + public var Passport_Address_Region: String { return self._s[2651]! } + public var ChatList_DeleteChat: String { return self._s[2652]! } + public var LogoutOptions_ClearCacheTitle: String { return self._s[2653]! } + public var PhotoEditor_TiltShift: String { return self._s[2654]! } + public var Settings_FAQ_URL: String { return self._s[2655]! } + public var Passport_Language_sl: String { return self._s[2656]! } + public var Settings_PrivacySettings: String { return self._s[2658]! } + public var SharedMedia_TitleLink: String { return self._s[2659]! } + public var Passport_Identity_TypePassportUploadScan: String { return self._s[2660]! } + public var Settings_SetProfilePhoto: String { return self._s[2661]! } + public var Channel_About_Help: String { return self._s[2662]! } + public var Contacts_PermissionsEnable: String { return self._s[2663]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[2664]! } + public var AttachmentMenu_SendAsFiles: String { return self._s[2665]! } + public var CallFeedback_ReasonInterruption: String { return self._s[2667]! } + public var Passport_Address_AddTemporaryRegistration: String { return self._s[2668]! } + public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[2669]! } + public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[2670]! } + public var PrivacySettings_DeleteAccountTitle: String { return self._s[2671]! } + public var AccessDenied_VideoMessageCamera: String { return self._s[2673]! } + public var Map_OpenInYandexMaps: String { return self._s[2675]! } + public var PhotoEditor_SaturationTool: String { return self._s[2676]! } public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2661]!, self._r[2661]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2677]!, self._r[2677]!, [_1, _2]) } - public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[2662]! } - public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[2663]! } - public var Appearance_TextSize: String { return self._s[2664]! } + public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[2678]! } + public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[2679]! } + public var Appearance_TextSize: String { return self._s[2680]! } public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2665]!, self._r[2665]!, [_1, "\(_2)"]) + return formatWithArgumentRanges(self._s[2681]!, self._r[2681]!, [_1, "\(_2)"]) + } + public var Channel_Username_InvalidTooShort: String { return self._s[2683]! } + public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2684]!, self._r[2684]!, [_1, _2]) } - public var Channel_Username_InvalidTooShort: String { return self._s[2667]! } public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2668]!, self._r[2668]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2685]!, self._r[2685]!, [_1, _2, _3]) } - public var Passport_PassportInformation: String { return self._s[2671]! } - public var WatchRemote_AlertTitle: String { return self._s[2672]! } - public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2673]! } - public var ConvertToSupergroup_HelpText: String { return self._s[2675]! } + public var Passport_PassportInformation: String { return self._s[2688]! } + public var WatchRemote_AlertTitle: String { return self._s[2689]! } + public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2690]! } + public var ConvertToSupergroup_HelpText: String { return self._s[2692]! } public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2676]!, self._r[2676]!, [_0]) + return formatWithArgumentRanges(self._s[2693]!, self._r[2693]!, [_0]) } public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2677]!, self._r[2677]!, [_1]) + return formatWithArgumentRanges(self._s[2694]!, self._r[2694]!, [_1]) } - public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2678]! } - public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[2680]! } - public var AccessDenied_CameraDisabled: String { return self._s[2681]! } + public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2695]! } + public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[2697]! } + public var AccessDenied_CameraDisabled: String { return self._s[2698]! } public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2682]!, self._r[2682]!, [_0]) + return formatWithArgumentRanges(self._s[2699]!, self._r[2699]!, [_0]) } - public var PhotoEditor_ContrastTool: String { return self._s[2685]! } + public var PhotoEditor_ContrastTool: String { return self._s[2702]! } public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2686]!, self._r[2686]!, [_1]) + return formatWithArgumentRanges(self._s[2703]!, self._r[2703]!, [_1]) } - public var DialogList_Draft: String { return self._s[2687]! } - public var Privacy_TopPeersDelete: String { return self._s[2689]! } - public var LoginPassword_PasswordPlaceholder: String { return self._s[2690]! } - public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[2691]! } - public var WebSearch_RecentSectionClear: String { return self._s[2692]! } - public var Watch_ChatList_NoConversationsTitle: String { return self._s[2694]! } - public var Common_Done: String { return self._s[2696]! } - public var AuthSessions_EmptyText: String { return self._s[2697]! } - public var Conversation_ShareBotContactConfirmation: String { return self._s[2698]! } - public var Tour_Title5: String { return self._s[2699]! } + public var DialogList_Draft: String { return self._s[2704]! } + public var Privacy_TopPeersDelete: String { return self._s[2706]! } + public var LoginPassword_PasswordPlaceholder: String { return self._s[2707]! } + public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[2708]! } + public var WebSearch_RecentSectionClear: String { return self._s[2709]! } + public var Watch_ChatList_NoConversationsTitle: String { return self._s[2711]! } + public var Common_Done: String { return self._s[2713]! } + public var AuthSessions_EmptyText: String { return self._s[2714]! } + public var Conversation_ShareBotContactConfirmation: String { return self._s[2715]! } + public var Tour_Title5: String { return self._s[2716]! } public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2700]!, self._r[2700]!, [_0]) + return formatWithArgumentRanges(self._s[2717]!, self._r[2717]!, [_0]) } - public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[2701]! } - public var Conversation_LinkDialogSave: String { return self._s[2702]! } - public var GroupInfo_ActionRestrict: String { return self._s[2703]! } - public var Checkout_Title: String { return self._s[2704]! } - public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[2706]! } - public var Channel_AdminLog_CanChangeInfo: String { return self._s[2708]! } - public var Notification_RenamedGroup: String { return self._s[2709]! } - public var Checkout_PayWithFaceId: String { return self._s[2710]! } - public var Channel_BanList_BlockedTitle: String { return self._s[2711]! } - public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2713]! } - public var Checkout_WebConfirmation_Title: String { return self._s[2714]! } - public var Notifications_MessageNotificationsAlert: String { return self._s[2715]! } - public var Profile_AddToExisting: String { return self._s[2717]! } + public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[2718]! } + public var Conversation_LinkDialogSave: String { return self._s[2719]! } + public var GroupInfo_ActionRestrict: String { return self._s[2720]! } + public var Checkout_Title: String { return self._s[2721]! } + public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[2723]! } + public var Channel_AdminLog_CanChangeInfo: String { return self._s[2725]! } + public var Notification_RenamedGroup: String { return self._s[2726]! } + public var PeopleNearby_Groups: String { return self._s[2727]! } + public var Checkout_PayWithFaceId: String { return self._s[2728]! } + public var Channel_BanList_BlockedTitle: String { return self._s[2729]! } + public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2731]! } + public var Checkout_WebConfirmation_Title: String { return self._s[2732]! } + public var Notifications_MessageNotificationsAlert: String { return self._s[2733]! } + public var Profile_AddToExisting: String { return self._s[2735]! } public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2718]!, self._r[2718]!, [_0, _1]) + return formatWithArgumentRanges(self._s[2736]!, self._r[2736]!, [_0, _1]) } - public var Cache_Files: String { return self._s[2720]! } - public var Permissions_PrivacyPolicy: String { return self._s[2721]! } - public var SocksProxySetup_ConnectAndSave: String { return self._s[2722]! } - public var UserInfo_NotificationsDefaultDisabled: String { return self._s[2723]! } - public var AutoDownloadSettings_TypeContacts: String { return self._s[2725]! } - public var Calls_NoCallsPlaceholder: String { return self._s[2727]! } - public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2728]! } - public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[2730]! } + public var Cache_Files: String { return self._s[2738]! } + public var Permissions_PrivacyPolicy: String { return self._s[2739]! } + public var SocksProxySetup_ConnectAndSave: String { return self._s[2740]! } + public var UserInfo_NotificationsDefaultDisabled: String { return self._s[2741]! } + public var AutoDownloadSettings_TypeContacts: String { return self._s[2743]! } + public var Calls_NoCallsPlaceholder: String { return self._s[2745]! } + public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2746]! } + public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[2748]! } public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2731]!, self._r[2731]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[2749]!, self._r[2749]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2732]! } - public var Passport_FieldAddressHelp: String { return self._s[2733]! } - public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[2734]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2750]! } + public var Passport_FieldAddressHelp: String { return self._s[2751]! } + public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[2752]! } public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2735]!, self._r[2735]!, [_0]) + return formatWithArgumentRanges(self._s[2753]!, self._r[2753]!, [_0]) } - public var Channel_AdminLog_EmptyTitle: String { return self._s[2736]! } - public var Privacy_Calls_NeverAllow_Title: String { return self._s[2738]! } - public var Login_UnknownError: String { return self._s[2739]! } - public var Group_UpgradeNoticeText2: String { return self._s[2741]! } - public var Watch_Compose_AddContact: String { return self._s[2742]! } - public var Web_Error: String { return self._s[2743]! } - public var Gif_Search: String { return self._s[2744]! } - public var Profile_MessageLifetime1h: String { return self._s[2745]! } - public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2746]! } - public var Channel_Username_CheckingUsername: String { return self._s[2747]! } - public var CallFeedback_ReasonSilentRemote: String { return self._s[2748]! } - public var AutoDownloadSettings_TypeChannels: String { return self._s[2749]! } - public var Channel_AboutItem: String { return self._s[2750]! } - public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2752]! } - public var GroupInfo_SharedMedia: String { return self._s[2753]! } + public var Channel_AdminLog_EmptyTitle: String { return self._s[2754]! } + public var Privacy_Calls_NeverAllow_Title: String { return self._s[2756]! } + public var Login_UnknownError: String { return self._s[2757]! } + public var Group_UpgradeNoticeText2: String { return self._s[2759]! } + public var Watch_Compose_AddContact: String { return self._s[2760]! } + public var Web_Error: String { return self._s[2761]! } + public var Gif_Search: String { return self._s[2762]! } + public var Profile_MessageLifetime1h: String { return self._s[2763]! } + public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2764]! } + public var Channel_Username_CheckingUsername: String { return self._s[2765]! } + public var CallFeedback_ReasonSilentRemote: String { return self._s[2766]! } + public var AutoDownloadSettings_TypeChannels: String { return self._s[2767]! } + public var Channel_AboutItem: String { return self._s[2768]! } + public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2770]! } + public var GroupInfo_SharedMedia: String { return self._s[2771]! } public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2754]!, self._r[2754]!, [_1]) + return formatWithArgumentRanges(self._s[2772]!, self._r[2772]!, [_1]) } - public var Call_PhoneCallInProgressMessage: String { return self._s[2755]! } + public var Call_PhoneCallInProgressMessage: String { return self._s[2773]! } public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2756]!, self._r[2756]!, [_1]) + return formatWithArgumentRanges(self._s[2774]!, self._r[2774]!, [_1]) } - public var ChatList_UndoArchiveRevealedText: String { return self._s[2757]! } - public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2758]! } - public var Conversation_SearchByName_Placeholder: String { return self._s[2759]! } - public var CreatePoll_AddOption: String { return self._s[2760]! } - public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[2761]! } - public var Group_UpgradeNoticeHeader: String { return self._s[2762]! } - public var Channel_Management_AddModerator: String { return self._s[2763]! } - public var AutoDownloadSettings_MaxFileSize: String { return self._s[2764]! } - public var StickerPacksSettings_ShowStickersButton: String { return self._s[2765]! } - public var NotificationsSound_Hello: String { return self._s[2766]! } - public var SocksProxySetup_SavedProxies: String { return self._s[2767]! } - public var Channel_Stickers_Placeholder: String { return self._s[2769]! } + public var ChatList_UndoArchiveRevealedText: String { return self._s[2775]! } + public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2776]! } + public var Conversation_SearchByName_Placeholder: String { return self._s[2777]! } + public var CreatePoll_AddOption: String { return self._s[2778]! } + public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[2779]! } + public var Group_UpgradeNoticeHeader: String { return self._s[2780]! } + public var Channel_Management_AddModerator: String { return self._s[2781]! } + public var AutoDownloadSettings_MaxFileSize: String { return self._s[2782]! } + public var StickerPacksSettings_ShowStickersButton: String { return self._s[2783]! } + public var NotificationsSound_Hello: String { return self._s[2784]! } + public var SocksProxySetup_SavedProxies: String { return self._s[2785]! } + public var Channel_Stickers_Placeholder: String { return self._s[2787]! } public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2770]!, self._r[2770]!, [_0]) + return formatWithArgumentRanges(self._s[2788]!, self._r[2788]!, [_0]) } - public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[2771]! } - public var Channel_Management_AddModeratorHelp: String { return self._s[2772]! } - public var ContactInfo_BirthdayLabel: String { return self._s[2773]! } - public var ChangePhoneNumberCode_RequestingACall: String { return self._s[2774]! } - public var AutoDownloadSettings_Channels: String { return self._s[2775]! } - public var Passport_Language_mn: String { return self._s[2776]! } - public var Notifications_ResetAllNotificationsHelp: String { return self._s[2779]! } - public var Passport_Language_ja: String { return self._s[2781]! } - public var Settings_About_Title: String { return self._s[2782]! } - public var Settings_NotificationsAndSounds: String { return self._s[2783]! } - public var ChannelInfo_DeleteGroup: String { return self._s[2784]! } - public var Settings_BlockedUsers: String { return self._s[2785]! } + public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[2789]! } + public var Channel_Management_AddModeratorHelp: String { return self._s[2790]! } + public var ContactInfo_BirthdayLabel: String { return self._s[2791]! } + public var ChangePhoneNumberCode_RequestingACall: String { return self._s[2792]! } + public var AutoDownloadSettings_Channels: String { return self._s[2793]! } + public var Passport_Language_mn: String { return self._s[2794]! } + public var Notifications_ResetAllNotificationsHelp: String { return self._s[2797]! } + public var Passport_Language_ja: String { return self._s[2799]! } + public var Settings_About_Title: String { return self._s[2800]! } + public var Settings_NotificationsAndSounds: String { return self._s[2801]! } + public var ChannelInfo_DeleteGroup: String { return self._s[2802]! } + public var Settings_BlockedUsers: String { return self._s[2803]! } public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2786]!, self._r[2786]!, [_0]) + return formatWithArgumentRanges(self._s[2804]!, self._r[2804]!, [_0]) } - public var AutoDownloadSettings_PreloadVideo: String { return self._s[2787]! } - public var Passport_Address_AddResidentialAddress: String { return self._s[2788]! } - public var Channel_Username_Title: String { return self._s[2789]! } + public var AutoDownloadSettings_PreloadVideo: String { return self._s[2805]! } + public var Passport_Address_AddResidentialAddress: String { return self._s[2806]! } + public var Channel_Username_Title: String { return self._s[2807]! } public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2790]!, self._r[2790]!, [_0]) + return formatWithArgumentRanges(self._s[2808]!, self._r[2808]!, [_0]) } - public var AttachmentMenu_File: String { return self._s[2792]! } - public var AppleWatch_Title: String { return self._s[2793]! } - public var Activity_RecordingVideoMessage: String { return self._s[2794]! } + public var AttachmentMenu_File: String { return self._s[2810]! } + public var AppleWatch_Title: String { return self._s[2811]! } + public var Activity_RecordingVideoMessage: String { return self._s[2812]! } public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2795]!, self._r[2795]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2813]!, self._r[2813]!, [_1, _2]) } - public var Weekday_Saturday: String { return self._s[2796]! } - public var WallpaperPreview_SwipeColorsTopText: String { return self._s[2797]! } - public var Profile_CreateEncryptedChatError: String { return self._s[2798]! } - public var Common_Next: String { return self._s[2800]! } - public var Channel_Stickers_YourStickers: String { return self._s[2802]! } - public var Call_AudioRouteHeadphones: String { return self._s[2803]! } - public var TwoStepAuth_EnterPasswordForgot: String { return self._s[2805]! } - public var Watch_Contacts_NoResults: String { return self._s[2807]! } - public var PhotoEditor_TintTool: String { return self._s[2810]! } - public var LoginPassword_ResetAccount: String { return self._s[2812]! } - public var Settings_SavedMessages: String { return self._s[2813]! } - public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[2814]! } - public var Bot_GenericSupportStatus: String { return self._s[2815]! } - public var StickerPack_Add: String { return self._s[2816]! } - public var Checkout_TotalAmount: String { return self._s[2817]! } - public var Your_cards_number_is_invalid: String { return self._s[2818]! } - public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[2819]! } + public var Weekday_Saturday: String { return self._s[2814]! } + public var WallpaperPreview_SwipeColorsTopText: String { return self._s[2815]! } + public var Profile_CreateEncryptedChatError: String { return self._s[2816]! } + public var Common_Next: String { return self._s[2818]! } + public var Channel_Stickers_YourStickers: String { return self._s[2820]! } + public var Call_AudioRouteHeadphones: String { return self._s[2821]! } + public var TwoStepAuth_EnterPasswordForgot: String { return self._s[2823]! } + public var Watch_Contacts_NoResults: String { return self._s[2825]! } + public var PhotoEditor_TintTool: String { return self._s[2828]! } + public var LoginPassword_ResetAccount: String { return self._s[2830]! } + public var Settings_SavedMessages: String { return self._s[2831]! } + public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[2832]! } + public var Bot_GenericSupportStatus: String { return self._s[2833]! } + public var StickerPack_Add: String { return self._s[2834]! } + public var Checkout_TotalAmount: String { return self._s[2835]! } + public var Your_cards_number_is_invalid: String { return self._s[2836]! } + public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[2837]! } public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2820]!, self._r[2820]!, [_0]) + return formatWithArgumentRanges(self._s[2838]!, self._r[2838]!, [_0]) } public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2821]!, self._r[2821]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2839]!, self._r[2839]!, [_1, _2]) } - public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[2822]! } + public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[2840]! } public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2824]!, self._r[2824]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2842]!, self._r[2842]!, [_1, _2]) } public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2825]!, self._r[2825]!, [_0]) + return formatWithArgumentRanges(self._s[2843]!, self._r[2843]!, [_0]) } - public var GroupInfo_InviteLink_ShareLink: String { return self._s[2826]! } - public var StickerPack_Share: String { return self._s[2827]! } - public var Passport_DeleteAddress: String { return self._s[2828]! } - public var Settings_Passport: String { return self._s[2829]! } - public var SharedMedia_EmptyFilesText: String { return self._s[2830]! } - public var Conversation_DeleteMessagesForMe: String { return self._s[2831]! } - public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[2832]! } - public var Contacts_PermissionsText: String { return self._s[2833]! } - public var Group_Setup_HistoryVisible: String { return self._s[2834]! } - public var Passport_Address_AddRentalAgreement: String { return self._s[2836]! } - public var SocksProxySetup_Title: String { return self._s[2837]! } - public var Notification_Mute1h: String { return self._s[2838]! } + public var GroupInfo_InviteLink_ShareLink: String { return self._s[2844]! } + public var StickerPack_Share: String { return self._s[2845]! } + public var Passport_DeleteAddress: String { return self._s[2846]! } + public var Settings_Passport: String { return self._s[2847]! } + public var SharedMedia_EmptyFilesText: String { return self._s[2848]! } + public var Conversation_DeleteMessagesForMe: String { return self._s[2849]! } + public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[2850]! } + public var Contacts_PermissionsText: String { return self._s[2851]! } + public var Group_Setup_HistoryVisible: String { return self._s[2852]! } + public var Passport_Address_AddRentalAgreement: String { return self._s[2854]! } + public var SocksProxySetup_Title: String { return self._s[2855]! } + public var Notification_Mute1h: String { return self._s[2856]! } public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2839]!, self._r[2839]!, [_0]) + return formatWithArgumentRanges(self._s[2857]!, self._r[2857]!, [_0]) } - public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[2840]! } + public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[2858]! } public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2841]!, self._r[2841]!, [_1]) + return formatWithArgumentRanges(self._s[2859]!, self._r[2859]!, [_1]) } - public var FastTwoStepSetup_PasswordSection: String { return self._s[2842]! } - public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2845]! } - public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[2847]! } - public var DialogList_NoMessagesText: String { return self._s[2848]! } - public var Privacy_ContactsResetConfirmation: String { return self._s[2849]! } - public var Privacy_Calls_P2PHelp: String { return self._s[2850]! } - public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[2852]! } - public var Your_cards_expiration_year_is_invalid: String { return self._s[2853]! } - public var Common_TakePhotoOrVideo: String { return self._s[2854]! } - public var Call_StatusBusy: String { return self._s[2855]! } - public var Conversation_PinnedMessage: String { return self._s[2856]! } - public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[2857]! } - public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[2858]! } - public var Undo_ChatCleared: String { return self._s[2859]! } - public var AppleWatch_ReplyPresets: String { return self._s[2860]! } - public var Passport_DiscardMessageDescription: String { return self._s[2862]! } - public var Login_NetworkError: String { return self._s[2863]! } + public var FastTwoStepSetup_PasswordSection: String { return self._s[2860]! } + public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2863]! } + public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[2865]! } + public var DialogList_NoMessagesText: String { return self._s[2866]! } + public var Privacy_ContactsResetConfirmation: String { return self._s[2867]! } + public var Privacy_Calls_P2PHelp: String { return self._s[2868]! } + public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[2870]! } + public var Your_cards_expiration_year_is_invalid: String { return self._s[2871]! } + public var Common_TakePhotoOrVideo: String { return self._s[2872]! } + public var Call_StatusBusy: String { return self._s[2873]! } + public var Conversation_PinnedMessage: String { return self._s[2874]! } + public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[2875]! } + public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[2876]! } + public var Undo_ChatCleared: String { return self._s[2877]! } + public var AppleWatch_ReplyPresets: String { return self._s[2878]! } + public var Passport_DiscardMessageDescription: String { return self._s[2880]! } + public var Login_NetworkError: String { return self._s[2881]! } public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2864]!, self._r[2864]!, [_0]) + return formatWithArgumentRanges(self._s[2882]!, self._r[2882]!, [_0]) } public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2865]!, self._r[2865]!, [_0]) + return formatWithArgumentRanges(self._s[2883]!, self._r[2883]!, [_0]) } - public var SocksProxySetup_PasswordPlaceholder: String { return self._s[2866]! } - public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2868]! } + public var SocksProxySetup_PasswordPlaceholder: String { return self._s[2884]! } + public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2886]! } public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2870]!, self._r[2870]!, [_0]) + return formatWithArgumentRanges(self._s[2888]!, self._r[2888]!, [_0]) } - public var Call_ConnectionErrorMessage: String { return self._s[2871]! } - public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[2872]! } - public var Compose_GroupTokenListPlaceholder: String { return self._s[2874]! } - public var ConversationMedia_Title: String { return self._s[2875]! } - public var EncryptionKey_Title: String { return self._s[2877]! } - public var TwoStepAuth_EnterPasswordTitle: String { return self._s[2878]! } - public var Notification_Exceptions_AddException: String { return self._s[2879]! } - public var PrivacySettings_BlockedPeersEmpty: String { return self._s[2880]! } - public var Profile_MessageLifetime1m: String { return self._s[2881]! } + public var Call_ConnectionErrorMessage: String { return self._s[2889]! } + public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[2890]! } + public var Compose_GroupTokenListPlaceholder: String { return self._s[2892]! } + public var ConversationMedia_Title: String { return self._s[2893]! } + public var EncryptionKey_Title: String { return self._s[2895]! } + public var TwoStepAuth_EnterPasswordTitle: String { return self._s[2896]! } + public var Notification_Exceptions_AddException: String { return self._s[2897]! } + public var PrivacySettings_BlockedPeersEmpty: String { return self._s[2898]! } + public var Profile_MessageLifetime1m: String { return self._s[2899]! } public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2882]!, self._r[2882]!, [_1]) + return formatWithArgumentRanges(self._s[2900]!, self._r[2900]!, [_1]) } - public var Month_GenMay: String { return self._s[2883]! } + public var Month_GenMay: String { return self._s[2901]! } public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2884]!, self._r[2884]!, [_0]) + return formatWithArgumentRanges(self._s[2902]!, self._r[2902]!, [_0]) } - public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2885]! } - public var AutoDownloadSettings_ResetSettings: String { return self._s[2886]! } - public var Conversation_EmptyPlaceholder: String { return self._s[2888]! } - public var Passport_Address_AddPassportRegistration: String { return self._s[2889]! } - public var Notifications_ChannelNotificationsAlert: String { return self._s[2890]! } - public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2891]! } - public var Camera_TapAndHoldForVideo: String { return self._s[2892]! } - public var Channel_JoinChannel: String { return self._s[2894]! } - public var Appearance_Animations: String { return self._s[2897]! } + public var PeopleNearby_Users: String { return self._s[2903]! } + public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2904]! } + public var AutoDownloadSettings_ResetSettings: String { return self._s[2905]! } + public var Conversation_EmptyPlaceholder: String { return self._s[2907]! } + public var Passport_Address_AddPassportRegistration: String { return self._s[2908]! } + public var Notifications_ChannelNotificationsAlert: String { return self._s[2909]! } + public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2910]! } + public var Camera_TapAndHoldForVideo: String { return self._s[2911]! } + public var Channel_JoinChannel: String { return self._s[2913]! } + public var Appearance_Animations: String { return self._s[2916]! } public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2898]!, self._r[2898]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2917]!, self._r[2917]!, [_1, _2]) } - public var Stickers_GroupStickers: String { return self._s[2900]! } - public var ConvertToSupergroup_HelpTitle: String { return self._s[2902]! } - public var Passport_Address_Street: String { return self._s[2903]! } - public var Conversation_AddContact: String { return self._s[2904]! } - public var Login_PhonePlaceholder: String { return self._s[2905]! } - public var Channel_Members_InviteLink: String { return self._s[2907]! } - public var Bot_Stop: String { return self._s[2908]! } - public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[2910]! } - public var Notification_PassportValueAddress: String { return self._s[2911]! } - public var Month_ShortJuly: String { return self._s[2912]! } - public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[2913]! } - public var Channel_AdminLog_BanSendMedia: String { return self._s[2914]! } - public var Passport_Identity_ReverseSide: String { return self._s[2915]! } - public var Watch_Stickers_Recents: String { return self._s[2918]! } - public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[2920]! } - public var Map_SendThisLocation: String { return self._s[2921]! } + public var Stickers_GroupStickers: String { return self._s[2919]! } + public var ConvertToSupergroup_HelpTitle: String { return self._s[2921]! } + public var Passport_Address_Street: String { return self._s[2922]! } + public var Conversation_AddContact: String { return self._s[2923]! } + public var Login_PhonePlaceholder: String { return self._s[2924]! } + public var Channel_Members_InviteLink: String { return self._s[2926]! } + public var Bot_Stop: String { return self._s[2927]! } + public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[2929]! } + public var Notification_PassportValueAddress: String { return self._s[2930]! } + public var Month_ShortJuly: String { return self._s[2931]! } + public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[2932]! } + public var Channel_AdminLog_BanSendMedia: String { return self._s[2933]! } + public var Passport_Identity_ReverseSide: String { return self._s[2934]! } + public var Watch_Stickers_Recents: String { return self._s[2937]! } + public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[2939]! } + public var Map_SendThisLocation: String { return self._s[2940]! } public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2922]!, self._r[2922]!, [_0]) + return formatWithArgumentRanges(self._s[2941]!, self._r[2941]!, [_0]) } public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_0]) - } - public var ConvertToSupergroup_Note: String { return self._s[2924]! } - public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2925]!, self._r[2925]!, [_0]) - } - public var NetworkUsageSettings_GeneralDataSection: String { return self._s[2926]! } - public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2927]!, self._r[2927]!, [_0, _1]) - } - public var Login_CallRequestState3: String { return self._s[2929]! } - public var Wallpaper_SearchShort: String { return self._s[2930]! } - public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[2932]! } - public var PasscodeSettings_UnlockWithFaceId: String { return self._s[2933]! } - public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2934]!, self._r[2934]!, [_1, _2]) - } - public var Channel_AdminLogFilter_Title: String { return self._s[2935]! } - public var Notifications_GroupNotificationsExceptions: String { return self._s[2939]! } - public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2940]!, self._r[2940]!, [_0]) - } - public var Passport_CorrectErrors: String { return self._s[2941]! } - public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[2942]!, self._r[2942]!, [_0]) } - public var Map_SendMyCurrentLocation: String { return self._s[2943]! } - public var Channel_DiscussionGroup: String { return self._s[2944]! } + public var ConvertToSupergroup_Note: String { return self._s[2943]! } + public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2944]!, self._r[2944]!, [_0]) + } + public var NetworkUsageSettings_GeneralDataSection: String { return self._s[2945]! } + public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2946]!, self._r[2946]!, [_0, _1]) + } + public var Login_CallRequestState3: String { return self._s[2948]! } + public var Wallpaper_SearchShort: String { return self._s[2949]! } + public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[2951]! } + public var PasscodeSettings_UnlockWithFaceId: String { return self._s[2952]! } + public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2953]!, self._r[2953]!, [_1, _2]) + } + public var Channel_AdminLogFilter_Title: String { return self._s[2954]! } + public var Notifications_GroupNotificationsExceptions: String { return self._s[2958]! } + public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2959]!, self._r[2959]!, [_0]) + } + public var Passport_CorrectErrors: String { return self._s[2960]! } + public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[2961]!, self._r[2961]!, [_0]) + } + public var Map_SendMyCurrentLocation: String { return self._s[2962]! } + public var Channel_DiscussionGroup: String { return self._s[2963]! } public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2945]!, self._r[2945]!, [_1, _2]) + return formatWithArgumentRanges(self._s[2964]!, self._r[2964]!, [_1, _2]) } - public var SharedMedia_SearchNoResults: String { return self._s[2946]! } - public var Permissions_NotificationsText_v0: String { return self._s[2947]! } - public var Appearance_AppIcon: String { return self._s[2948]! } - public var LoginPassword_FloodError: String { return self._s[2949]! } - public var Group_Setup_HistoryHiddenHelp: String { return self._s[2951]! } + public var SharedMedia_SearchNoResults: String { return self._s[2965]! } + public var Permissions_NotificationsText_v0: String { return self._s[2966]! } + public var Appearance_AppIcon: String { return self._s[2967]! } + public var LoginPassword_FloodError: String { return self._s[2968]! } + public var Group_Setup_HistoryHiddenHelp: String { return self._s[2970]! } public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2952]!, self._r[2952]!, [_0]) + return formatWithArgumentRanges(self._s[2971]!, self._r[2971]!, [_0]) } - public var Passport_Language_bn: String { return self._s[2953]! } + public var Passport_Language_bn: String { return self._s[2972]! } public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2954]!, self._r[2954]!, [_0]) + return formatWithArgumentRanges(self._s[2973]!, self._r[2973]!, [_0]) } public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2955]!, self._r[2955]!, [_0]) + return formatWithArgumentRanges(self._s[2974]!, self._r[2974]!, [_0]) } public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2956]!, self._r[2956]!, [_0]) + return formatWithArgumentRanges(self._s[2975]!, self._r[2975]!, [_0]) } - public var GroupInfo_InvitationLinkGroupFull: String { return self._s[2959]! } - public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[2961]! } - public var Contacts_PermissionsAllow: String { return self._s[2962]! } - public var ReportPeer_ReasonCopyright: String { return self._s[2963]! } - public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[2964]! } - public var WallpaperPreview_Pattern: String { return self._s[2965]! } - public var Paint_Duplicate: String { return self._s[2966]! } - public var Passport_Address_Country: String { return self._s[2967]! } - public var Notification_RenamedChannel: String { return self._s[2969]! } - public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[2970]! } - public var Group_MessagePhotoUpdated: String { return self._s[2971]! } - public var Channel_BanUser_PermissionSendMedia: String { return self._s[2972]! } - public var Conversation_ContextMenuBan: String { return self._s[2973]! } - public var TwoStepAuth_EmailSent: String { return self._s[2974]! } - public var MessagePoll_NoVotes: String { return self._s[2975]! } - public var Passport_Language_is: String { return self._s[2976]! } - public var Tour_Text5: String { return self._s[2978]! } + public var GroupInfo_InvitationLinkGroupFull: String { return self._s[2978]! } + public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[2980]! } + public var Contacts_PermissionsAllow: String { return self._s[2981]! } + public var ReportPeer_ReasonCopyright: String { return self._s[2982]! } + public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[2983]! } + public var WallpaperPreview_Pattern: String { return self._s[2984]! } + public var Paint_Duplicate: String { return self._s[2985]! } + public var Passport_Address_Country: String { return self._s[2986]! } + public var Notification_RenamedChannel: String { return self._s[2988]! } + public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[2989]! } + public var Group_MessagePhotoUpdated: String { return self._s[2990]! } + public var Channel_BanUser_PermissionSendMedia: String { return self._s[2991]! } + public var Conversation_ContextMenuBan: String { return self._s[2992]! } + public var TwoStepAuth_EmailSent: String { return self._s[2993]! } + public var MessagePoll_NoVotes: String { return self._s[2994]! } + public var Passport_Language_is: String { return self._s[2995]! } + public var PeopleNearby_UsersEmpty: String { return self._s[2997]! } + public var Tour_Text5: String { return self._s[2998]! } public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2980]!, self._r[2980]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3000]!, self._r[3000]!, [_1, _2]) } - public var Undo_SecretChatDeleted: String { return self._s[2981]! } - public var SocksProxySetup_ShareQRCode: String { return self._s[2982]! } - public var LogoutOptions_ChangePhoneNumberText: String { return self._s[2983]! } - public var Paint_Edit: String { return self._s[2985]! } - public var Undo_DeletedGroup: String { return self._s[2988]! } - public var LoginPassword_ForgotPassword: String { return self._s[2989]! } - public var GroupInfo_GroupNamePlaceholder: String { return self._s[2990]! } + public var Undo_SecretChatDeleted: String { return self._s[3001]! } + public var SocksProxySetup_ShareQRCode: String { return self._s[3002]! } + public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3003]! } + public var Paint_Edit: String { return self._s[3005]! } + public var Undo_DeletedGroup: String { return self._s[3008]! } + public var LoginPassword_ForgotPassword: String { return self._s[3009]! } + public var GroupInfo_GroupNamePlaceholder: String { return self._s[3010]! } public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[2991]!, self._r[2991]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3011]!, self._r[3011]!, [_0, _1]) } - public var Conversation_InputTextCaptionPlaceholder: String { return self._s[2992]! } - public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[2993]! } - public var Passport_Language_uz: String { return self._s[2994]! } - public var Conversation_PinMessageAlertGroup: String { return self._s[2995]! } - public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[2996]! } - public var Map_StopLiveLocation: String { return self._s[2998]! } - public var PasscodeSettings_Help: String { return self._s[3000]! } - public var NotificationsSound_Input: String { return self._s[3001]! } - public var Share_Title: String { return self._s[3004]! } - public var LogoutOptions_Title: String { return self._s[3005]! } - public var Login_TermsOfServiceAgree: String { return self._s[3006]! } - public var Compose_NewEncryptedChatTitle: String { return self._s[3007]! } - public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3008]! } - public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3009]! } - public var EnterPasscode_EnterTitle: String { return self._s[3010]! } + public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3012]! } + public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3013]! } + public var Passport_Language_uz: String { return self._s[3014]! } + public var Conversation_PinMessageAlertGroup: String { return self._s[3015]! } + public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3016]! } + public var Map_StopLiveLocation: String { return self._s[3018]! } + public var PasscodeSettings_Help: String { return self._s[3020]! } + public var NotificationsSound_Input: String { return self._s[3021]! } + public var Share_Title: String { return self._s[3024]! } + public var LogoutOptions_Title: String { return self._s[3025]! } + public var Login_TermsOfServiceAgree: String { return self._s[3026]! } + public var Compose_NewEncryptedChatTitle: String { return self._s[3027]! } + public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3028]! } + public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3029]! } + public var EnterPasscode_EnterTitle: String { return self._s[3030]! } public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3011]!, self._r[3011]!, [_0]) + return formatWithArgumentRanges(self._s[3031]!, self._r[3031]!, [_0]) } - public var Settings_CopyPhoneNumber: String { return self._s[3012]! } - public var Conversation_AddToContacts: String { return self._s[3013]! } - public var NotificationsSound_Keys: String { return self._s[3014]! } + public var Settings_CopyPhoneNumber: String { return self._s[3032]! } + public var Conversation_AddToContacts: String { return self._s[3033]! } + public var NotificationsSound_Keys: String { return self._s[3034]! } public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3015]!, self._r[3015]!, [_0]) - } - public var Notification_MessageLifetime1w: String { return self._s[3016]! } - public var Message_Video: String { return self._s[3017]! } - public var AutoDownloadSettings_CellularTitle: String { return self._s[3018]! } - public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3019]!, self._r[3019]!, [_1]) - } - public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3022]!, self._r[3022]!, [_0]) - } - public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3023]!, self._r[3023]!, [_0]) - } - public var Passport_Language_mk: String { return self._s[3024]! } - public var CreatePoll_CancelConfirmation: String { return self._s[3025]! } - public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3027]! } - public var PrivacyPolicy_Decline: String { return self._s[3028]! } - public var Passport_Identity_DoesNotExpire: String { return self._s[3029]! } - public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3030]! } - public var Permissions_SiriAllow_v0: String { return self._s[3032]! } - public var Appearance_ThemeCarouselNight: String { return self._s[3033]! } - public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3034]!, self._r[3034]!, [_1, "\(_2)"]) - } - public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3035]!, self._r[3035]!, [_0]) } - public var Paint_Regular: String { return self._s[3036]! } - public var ChatSettings_AutoDownloadReset: String { return self._s[3037]! } - public var SocksProxySetup_ShareLink: String { return self._s[3038]! } - public var BlockedUsers_SelectUserTitle: String { return self._s[3039]! } - public var GroupInfo_InviteByLink: String { return self._s[3041]! } - public var MessageTimer_Custom: String { return self._s[3042]! } - public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3043]! } - public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3045]! } - public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3046]! } - public var Channel_Username_InvalidTaken: String { return self._s[3047]! } - public var Conversation_ClousStorageInfo_Description3: String { return self._s[3048]! } - public var Settings_ChatBackground: String { return self._s[3049]! } - public var Channel_Subscribers_Title: String { return self._s[3050]! } - public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3051]! } - public var Watch_ConnectionDescription: String { return self._s[3052]! } - public var ChatList_ArchivedChatsTitle: String { return self._s[3056]! } - public var Wallpaper_ResetWallpapers: String { return self._s[3057]! } - public var EditProfile_Title: String { return self._s[3058]! } - public var NotificationsSound_Bamboo: String { return self._s[3060]! } - public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3062]! } - public var Login_SmsRequestState2: String { return self._s[3063]! } - public var Passport_Language_ar: String { return self._s[3064]! } + public var Notification_MessageLifetime1w: String { return self._s[3036]! } + public var Message_Video: String { return self._s[3037]! } + public var AutoDownloadSettings_CellularTitle: String { return self._s[3038]! } + public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3039]!, self._r[3039]!, [_1]) + } + public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3042]!, self._r[3042]!, [_0]) + } + public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3043]!, self._r[3043]!, [_0]) + } + public var Passport_Language_mk: String { return self._s[3044]! } + public var CreatePoll_CancelConfirmation: String { return self._s[3045]! } + public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3047]! } + public var PrivacyPolicy_Decline: String { return self._s[3048]! } + public var Passport_Identity_DoesNotExpire: String { return self._s[3049]! } + public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3050]! } + public var Permissions_SiriAllow_v0: String { return self._s[3052]! } + public var Appearance_ThemeCarouselNight: String { return self._s[3053]! } + public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3054]!, self._r[3054]!, [_1, "\(_2)"]) + } + public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3055]!, self._r[3055]!, [_0]) + } + public var Paint_Regular: String { return self._s[3056]! } + public var ChatSettings_AutoDownloadReset: String { return self._s[3057]! } + public var SocksProxySetup_ShareLink: String { return self._s[3058]! } + public var BlockedUsers_SelectUserTitle: String { return self._s[3059]! } + public var GroupInfo_InviteByLink: String { return self._s[3061]! } + public var MessageTimer_Custom: String { return self._s[3062]! } + public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3063]! } + public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3065]! } + public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3066]! } + public var Channel_Username_InvalidTaken: String { return self._s[3067]! } + public var Conversation_ClousStorageInfo_Description3: String { return self._s[3068]! } + public var Settings_ChatBackground: String { return self._s[3069]! } + public var Channel_Subscribers_Title: String { return self._s[3070]! } + public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3071]! } + public var Watch_ConnectionDescription: String { return self._s[3072]! } + public var ChatList_ArchivedChatsTitle: String { return self._s[3076]! } + public var Wallpaper_ResetWallpapers: String { return self._s[3077]! } + public var EditProfile_Title: String { return self._s[3078]! } + public var NotificationsSound_Bamboo: String { return self._s[3080]! } + public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3082]! } + public var Login_SmsRequestState2: String { return self._s[3083]! } + public var Passport_Language_ar: String { return self._s[3084]! } public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3065]!, self._r[3065]!, [_0]) + return formatWithArgumentRanges(self._s[3085]!, self._r[3085]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3066]! } - public var Conversation_MessageDialogEdit: String { return self._s[3067]! } + public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3086]! } + public var Conversation_MessageDialogEdit: String { return self._s[3087]! } public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3068]!, self._r[3068]!, [_1]) + return formatWithArgumentRanges(self._s[3088]!, self._r[3088]!, [_1]) } - public var Common_Close: String { return self._s[3069]! } - public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3070]! } + public var Common_Close: String { return self._s[3089]! } + public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3090]! } public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3074]!, self._r[3074]!, [_0]) + return formatWithArgumentRanges(self._s[3094]!, self._r[3094]!, [_0]) } - public var UserInfo_About_Placeholder: String { return self._s[3075]! } + public var UserInfo_About_Placeholder: String { return self._s[3095]! } public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3076]!, self._r[3076]!, [_0]) + return formatWithArgumentRanges(self._s[3096]!, self._r[3096]!, [_0]) } - public var GroupInfo_Permissions_SectionTitle: String { return self._s[3077]! } - public var Channel_Info_Banned: String { return self._s[3079]! } + public var GroupInfo_Permissions_SectionTitle: String { return self._s[3097]! } + public var Channel_Info_Banned: String { return self._s[3099]! } public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3080]!, self._r[3080]!, [_0]) - } - public var Appearance_Other: String { return self._s[3081]! } - public var Passport_Language_my: String { return self._s[3082]! } - public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3083]! } - public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3084]!, self._r[3084]!, [_1, _2, _3]) - } - public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3085]! } - public var Preview_CopyAddress: String { return self._s[3086]! } - public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3087]!, self._r[3087]!, [_0]) - } - public var KeyCommand_JumpToPreviousChat: String { return self._s[3088]! } - public var UserInfo_BotSettings: String { return self._s[3089]! } - public var LiveLocation_MenuStopAll: String { return self._s[3091]! } - public var Passport_PasswordCreate: String { return self._s[3092]! } - public var StickerSettings_MaskContextInfo: String { return self._s[3093]! } - public var Message_PinnedLocationMessage: String { return self._s[3094]! } - public var Map_Satellite: String { return self._s[3095]! } - public var Watch_Message_Unsupported: String { return self._s[3096]! } - public var Username_TooManyPublicUsernamesError: String { return self._s[3097]! } - public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3098]! } - public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3099]!, self._r[3099]!, [_0, _1]) - } - public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3100]!, self._r[3100]!, [_0]) } - public var Notifications_ChannelNotificationsHelp: String { return self._s[3101]! } - public var Privacy_Calls_P2PContacts: String { return self._s[3102]! } - public var NotificationsSound_None: String { return self._s[3103]! } - public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3105]! } - public var AccessDenied_VoiceMicrophone: String { return self._s[3106]! } - public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3107]!, self._r[3107]!, [_1]) + public var Appearance_Other: String { return self._s[3101]! } + public var Passport_Language_my: String { return self._s[3102]! } + public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3103]! } + public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3104]!, self._r[3104]!, [_1, _2, _3]) } - public var Cache_Indexing: String { return self._s[3108]! } - public var DialogList_RecentTitlePeople: String { return self._s[3110]! } - public var DialogList_EncryptionRejected: String { return self._s[3111]! } - public var GroupInfo_Administrators: String { return self._s[3112]! } - public var Passport_ScanPassportHelp: String { return self._s[3113]! } - public var Application_Name: String { return self._s[3114]! } - public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3115]! } - public var Appearance_ThemeCarouselDay: String { return self._s[3117]! } - public var Passport_Identity_TranslationHelp: String { return self._s[3118]! } - public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3119]!, self._r[3119]!, [_0]) + public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3105]! } + public var Preview_CopyAddress: String { return self._s[3106]! } + public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3107]!, self._r[3107]!, [_0]) } - public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { + public var KeyCommand_JumpToPreviousChat: String { return self._s[3108]! } + public var UserInfo_BotSettings: String { return self._s[3109]! } + public var LiveLocation_MenuStopAll: String { return self._s[3111]! } + public var Passport_PasswordCreate: String { return self._s[3112]! } + public var StickerSettings_MaskContextInfo: String { return self._s[3113]! } + public var Message_PinnedLocationMessage: String { return self._s[3114]! } + public var Map_Satellite: String { return self._s[3115]! } + public var Watch_Message_Unsupported: String { return self._s[3116]! } + public var Username_TooManyPublicUsernamesError: String { return self._s[3117]! } + public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3118]! } + public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3119]!, self._r[3119]!, [_0, _1]) + } + public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3120]!, self._r[3120]!, [_0]) } - public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3121]! } - public var Privacy_ChatsTitle: String { return self._s[3122]! } - public var DialogList_ClearHistoryConfirmation: String { return self._s[3123]! } - public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3124]! } - public var Watch_Suggestion_HoldOn: String { return self._s[3125]! } - public var Group_LinkedChannel: String { return self._s[3126]! } - public var SocksProxySetup_RequiredCredentials: String { return self._s[3127]! } - public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3128]! } - public var TwoStepAuth_EmailSkipAlert: String { return self._s[3129]! } - public var Channel_Setup_TypePublic: String { return self._s[3132]! } + public var Notifications_ChannelNotificationsHelp: String { return self._s[3121]! } + public var Privacy_Calls_P2PContacts: String { return self._s[3122]! } + public var NotificationsSound_None: String { return self._s[3123]! } + public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3125]! } + public var AccessDenied_VoiceMicrophone: String { return self._s[3126]! } + public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3127]!, self._r[3127]!, [_1]) + } + public var Cache_Indexing: String { return self._s[3128]! } + public var DialogList_RecentTitlePeople: String { return self._s[3130]! } + public var DialogList_EncryptionRejected: String { return self._s[3131]! } + public var GroupInfo_Administrators: String { return self._s[3132]! } + public var Passport_ScanPassportHelp: String { return self._s[3133]! } + public var Application_Name: String { return self._s[3134]! } + public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3135]! } + public var Appearance_ThemeCarouselDay: String { return self._s[3137]! } + public var Passport_Identity_TranslationHelp: String { return self._s[3138]! } + public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3139]!, self._r[3139]!, [_0]) + } + public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3140]!, self._r[3140]!, [_0]) + } + public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3141]! } + public var Privacy_ChatsTitle: String { return self._s[3142]! } + public var DialogList_ClearHistoryConfirmation: String { return self._s[3143]! } + public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3144]! } + public var Watch_Suggestion_HoldOn: String { return self._s[3145]! } + public var Group_EditAdmin_TransferOwnership: String { return self._s[3146]! } + public var Group_LinkedChannel: String { return self._s[3147]! } + public var SocksProxySetup_RequiredCredentials: String { return self._s[3148]! } + public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3149]! } + public var TwoStepAuth_EmailSkipAlert: String { return self._s[3150]! } + public var Channel_Setup_TypePublic: String { return self._s[3153]! } public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3133]!, self._r[3133]!, [_0]) + return formatWithArgumentRanges(self._s[3154]!, self._r[3154]!, [_0]) } - public var Channel_TypeSetup_Title: String { return self._s[3135]! } - public var Map_OpenInMaps: String { return self._s[3137]! } + public var Channel_TypeSetup_Title: String { return self._s[3156]! } + public var Map_OpenInMaps: String { return self._s[3158]! } public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3138]!, self._r[3138]!, [_1]) + return formatWithArgumentRanges(self._s[3159]!, self._r[3159]!, [_1]) } - public var NotificationsSound_Tremolo: String { return self._s[3140]! } + public var NotificationsSound_Tremolo: String { return self._s[3161]! } public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3141]!, self._r[3141]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3162]!, self._r[3162]!, [_1, _2, _3]) } - public var ConversationProfile_UnknownAddMemberError: String { return self._s[3142]! } - public var Passport_PasswordHelp: String { return self._s[3143]! } - public var Login_CodeExpiredError: String { return self._s[3144]! } - public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3145]! } - public var Conversation_TitleUnmute: String { return self._s[3146]! } - public var Passport_Identity_ScansHelp: String { return self._s[3147]! } - public var Passport_Language_lo: String { return self._s[3148]! } - public var Camera_FlashAuto: String { return self._s[3149]! } - public var Conversation_OpenBotLinkOpen: String { return self._s[3150]! } - public var Common_Cancel: String { return self._s[3151]! } - public var DialogList_SavedMessagesTooltip: String { return self._s[3152]! } - public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3153]! } + public var ConversationProfile_UnknownAddMemberError: String { return self._s[3163]! } + public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3164]! } + public var Passport_PasswordHelp: String { return self._s[3165]! } + public var Login_CodeExpiredError: String { return self._s[3166]! } + public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3167]! } + public var Conversation_TitleUnmute: String { return self._s[3168]! } + public var Passport_Identity_ScansHelp: String { return self._s[3169]! } + public var Passport_Language_lo: String { return self._s[3170]! } + public var Camera_FlashAuto: String { return self._s[3171]! } + public var Conversation_OpenBotLinkOpen: String { return self._s[3172]! } + public var Common_Cancel: String { return self._s[3173]! } + public var DialogList_SavedMessagesTooltip: String { return self._s[3174]! } + public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3175]! } public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3154]!, self._r[3154]!, [_1]) + return formatWithArgumentRanges(self._s[3176]!, self._r[3176]!, [_1]) } - public var Conversation_ReportSpamConfirmation: String { return self._s[3155]! } - public var ChatSettings_Title: String { return self._s[3157]! } - public var Passport_PasswordReset: String { return self._s[3158]! } - public var SocksProxySetup_TypeNone: String { return self._s[3159]! } - public var PhoneNumberHelp_Help: String { return self._s[3161]! } - public var Checkout_EnterPassword: String { return self._s[3162]! } - public var Share_AuthTitle: String { return self._s[3164]! } - public var Activity_UploadingDocument: String { return self._s[3165]! } - public var State_Connecting: String { return self._s[3166]! } - public var Profile_MessageLifetime1w: String { return self._s[3167]! } - public var Conversation_ContextMenuReport: String { return self._s[3168]! } - public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3169]! } - public var AutoNightTheme_ScheduledTo: String { return self._s[3170]! } - public var AuthSessions_Terminate: String { return self._s[3171]! } - public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3172]! } - public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3173]! } - public var PhotoEditor_Set: String { return self._s[3174]! } - public var EmptyGroupInfo_Title: String { return self._s[3175]! } - public var Login_PadPhoneHelp: String { return self._s[3176]! } - public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3178]! } - public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3180]! } - public var NotificationsSound_Complete: String { return self._s[3181]! } - public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3182]! } - public var Group_Info_AdminLog: String { return self._s[3183]! } - public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3184]! } - public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3185]! } - public var Conversation_Admin: String { return self._s[3187]! } - public var Conversation_GifTooltip: String { return self._s[3188]! } - public var Passport_NotLoggedInMessage: String { return self._s[3189]! } + public var Conversation_ReportSpamConfirmation: String { return self._s[3177]! } + public var ChatSettings_Title: String { return self._s[3179]! } + public var Passport_PasswordReset: String { return self._s[3180]! } + public var SocksProxySetup_TypeNone: String { return self._s[3181]! } + public var PhoneNumberHelp_Help: String { return self._s[3183]! } + public var Checkout_EnterPassword: String { return self._s[3184]! } + public var Share_AuthTitle: String { return self._s[3186]! } + public var Activity_UploadingDocument: String { return self._s[3187]! } + public var State_Connecting: String { return self._s[3188]! } + public var Profile_MessageLifetime1w: String { return self._s[3189]! } + public var Conversation_ContextMenuReport: String { return self._s[3190]! } + public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3191]! } + public var AutoNightTheme_ScheduledTo: String { return self._s[3192]! } + public var AuthSessions_Terminate: String { return self._s[3193]! } + public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3194]! } + public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3195]! } + public var PhotoEditor_Set: String { return self._s[3196]! } + public var EmptyGroupInfo_Title: String { return self._s[3197]! } + public var Login_PadPhoneHelp: String { return self._s[3198]! } + public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3200]! } + public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3202]! } + public var NotificationsSound_Complete: String { return self._s[3203]! } + public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3204]! } + public var Group_Info_AdminLog: String { return self._s[3205]! } + public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3206]! } + public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3207]! } + public var Conversation_Admin: String { return self._s[3209]! } + public var Conversation_GifTooltip: String { return self._s[3210]! } + public var Passport_NotLoggedInMessage: String { return self._s[3211]! } public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3190]!, self._r[3190]!, [_0]) - } - public var Profile_MessageLifetimeForever: String { return self._s[3191]! } - public var SharedMedia_EmptyTitle: String { return self._s[3193]! } - public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3195]! } - public var Username_Help: String { return self._s[3196]! } - public var DialogList_LanguageTooltip: String { return self._s[3198]! } - public var Map_LoadError: String { return self._s[3199]! } - public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3200]! } - public var Channel_AdminLog_AddMembers: String { return self._s[3201]! } - public var ArchivedChats_IntroTitle2: String { return self._s[3202]! } - public var Notification_Exceptions_NewException: String { return self._s[3203]! } - public var TwoStepAuth_EmailTitle: String { return self._s[3204]! } - public var WatchRemote_AlertText: String { return self._s[3205]! } - public var ChatSettings_ConnectionType_Title: String { return self._s[3208]! } - public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3209]!, self._r[3209]!, [_0]) - } - public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3210]! } - public var Passport_Address_CountryPlaceholder: String { return self._s[3211]! } - public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3212]!, self._r[3212]!, [_0]) } + public var Profile_MessageLifetimeForever: String { return self._s[3213]! } + public var SharedMedia_EmptyTitle: String { return self._s[3215]! } + public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3217]! } + public var Username_Help: String { return self._s[3218]! } + public var DialogList_LanguageTooltip: String { return self._s[3220]! } + public var Map_LoadError: String { return self._s[3221]! } + public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3222]! } + public var Channel_AdminLog_AddMembers: String { return self._s[3223]! } + public var ArchivedChats_IntroTitle2: String { return self._s[3224]! } + public var Notification_Exceptions_NewException: String { return self._s[3225]! } + public var TwoStepAuth_EmailTitle: String { return self._s[3226]! } + public var WatchRemote_AlertText: String { return self._s[3227]! } + public var ChatSettings_ConnectionType_Title: String { return self._s[3230]! } + public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3231]!, self._r[3231]!, [_0]) + } + public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3232]! } + public var Passport_Address_CountryPlaceholder: String { return self._s[3233]! } + public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3234]!, self._r[3234]!, [_0]) + } public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3213]!, self._r[3213]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3235]!, self._r[3235]!, [_1, _2, _3]) } - public var Group_AdminLog_EmptyText: String { return self._s[3214]! } - public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3215]! } - public var Conversation_PrivateChannelTooltip: String { return self._s[3217]! } - public var ChatList_UndoArchiveText1: String { return self._s[3218]! } - public var AccessDenied_VideoMicrophone: String { return self._s[3219]! } - public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3220]! } - public var Cache_ClearNone: String { return self._s[3221]! } - public var SocksProxySetup_FailedToConnect: String { return self._s[3222]! } - public var Permissions_NotificationsTitle_v0: String { return self._s[3223]! } + public var Group_AdminLog_EmptyText: String { return self._s[3236]! } + public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3237]! } + public var Conversation_PrivateChannelTooltip: String { return self._s[3239]! } + public var ChatList_UndoArchiveText1: String { return self._s[3240]! } + public var AccessDenied_VideoMicrophone: String { return self._s[3241]! } + public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3242]! } + public var Cache_ClearNone: String { return self._s[3243]! } + public var SocksProxySetup_FailedToConnect: String { return self._s[3244]! } + public var Permissions_NotificationsTitle_v0: String { return self._s[3245]! } public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3224]!, self._r[3224]!, [_0]) + return formatWithArgumentRanges(self._s[3246]!, self._r[3246]!, [_0]) } - public var Passport_Identity_Country: String { return self._s[3225]! } + public var Passport_Identity_Country: String { return self._s[3247]! } public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3226]!, self._r[3226]!, [_0]) + return formatWithArgumentRanges(self._s[3248]!, self._r[3248]!, [_0]) } public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3227]!, self._r[3227]!, [_0]) + return formatWithArgumentRanges(self._s[3249]!, self._r[3249]!, [_0]) } - public var Exceptions_AddToExceptions: String { return self._s[3228]! } - public var AccessDenied_Settings: String { return self._s[3229]! } - public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3230]! } - public var Month_ShortMay: String { return self._s[3231]! } - public var Compose_NewGroup: String { return self._s[3232]! } - public var Group_Setup_TypePrivate: String { return self._s[3234]! } - public var Login_PadPhoneHelpTitle: String { return self._s[3236]! } - public var Appearance_ThemeDayClassic: String { return self._s[3237]! } - public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3238]! } - public var AutoDownloadSettings_OffForAll: String { return self._s[3239]! } - public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3240]! } - public var Conversation_typing: String { return self._s[3242]! } - public var Paint_Masks: String { return self._s[3243]! } - public var Username_InvalidTaken: String { return self._s[3244]! } - public var Call_StatusNoAnswer: String { return self._s[3245]! } - public var TwoStepAuth_EmailAddSuccess: String { return self._s[3246]! } - public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3247]! } - public var Passport_Identity_Selfie: String { return self._s[3248]! } - public var Login_InfoLastNamePlaceholder: String { return self._s[3249]! } - public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3250]! } - public var Conversation_ClearSecretHistory: String { return self._s[3251]! } - public var NetworkUsageSettings_Title: String { return self._s[3253]! } - public var Your_cards_security_code_is_invalid: String { return self._s[3255]! } + public var Exceptions_AddToExceptions: String { return self._s[3250]! } + public var AccessDenied_Settings: String { return self._s[3251]! } + public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3252]! } + public var Month_ShortMay: String { return self._s[3253]! } + public var Compose_NewGroup: String { return self._s[3254]! } + public var Group_Setup_TypePrivate: String { return self._s[3256]! } + public var Login_PadPhoneHelpTitle: String { return self._s[3258]! } + public var Appearance_ThemeDayClassic: String { return self._s[3259]! } + public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3260]! } + public var AutoDownloadSettings_OffForAll: String { return self._s[3261]! } + public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3262]! } + public var Conversation_typing: String { return self._s[3264]! } + public var Paint_Masks: String { return self._s[3265]! } + public var Username_InvalidTaken: String { return self._s[3266]! } + public var Call_StatusNoAnswer: String { return self._s[3267]! } + public var TwoStepAuth_EmailAddSuccess: String { return self._s[3268]! } + public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3269]! } + public var Passport_Identity_Selfie: String { return self._s[3270]! } + public var Login_InfoLastNamePlaceholder: String { return self._s[3271]! } + public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3272]! } + public var Conversation_ClearSecretHistory: String { return self._s[3273]! } + public var PeopleNearby_Description: String { return self._s[3275]! } + public var NetworkUsageSettings_Title: String { return self._s[3276]! } + public var Your_cards_security_code_is_invalid: String { return self._s[3278]! } public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3257]!, self._r[3257]!, [_0]) + return formatWithArgumentRanges(self._s[3280]!, self._r[3280]!, [_0]) } public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3258]!, self._r[3258]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3281]!, self._r[3281]!, [_1, _2]) } - public var SaveIncomingPhotosSettings_From: String { return self._s[3260]! } - public var Map_LiveLocationTitle: String { return self._s[3261]! } - public var Login_InfoAvatarAdd: String { return self._s[3262]! } - public var Passport_Identity_FilesView: String { return self._s[3263]! } - public var UserInfo_GenericPhoneLabel: String { return self._s[3264]! } - public var Privacy_Calls_NeverAllow: String { return self._s[3265]! } + public var SaveIncomingPhotosSettings_From: String { return self._s[3283]! } + public var Map_LiveLocationTitle: String { return self._s[3284]! } + public var Login_InfoAvatarAdd: String { return self._s[3285]! } + public var Passport_Identity_FilesView: String { return self._s[3286]! } + public var UserInfo_GenericPhoneLabel: String { return self._s[3287]! } + public var Privacy_Calls_NeverAllow: String { return self._s[3288]! } public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3266]!, self._r[3266]!, [_0]) + return formatWithArgumentRanges(self._s[3289]!, self._r[3289]!, [_0]) } - public var TwoStepAuth_ConfirmationText: String { return self._s[3267]! } - public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3268]! } + public var TwoStepAuth_ConfirmationText: String { return self._s[3290]! } + public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3291]! } public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3269]!, self._r[3269]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3292]!, self._r[3292]!, [_1, _2, _3]) } - public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3270]! } - public var Tour_Title2: String { return self._s[3271]! } - public var Conversation_FileOpenIn: String { return self._s[3272]! } - public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3273]! } - public var Wallpaper_Set: String { return self._s[3274]! } - public var Passport_Identity_Translations: String { return self._s[3276]! } + public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3293]! } + public var Tour_Title2: String { return self._s[3294]! } + public var Conversation_FileOpenIn: String { return self._s[3295]! } + public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3296]! } + public var Wallpaper_Set: String { return self._s[3297]! } + public var Passport_Identity_Translations: String { return self._s[3299]! } public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3277]!, self._r[3277]!, [_0]) + return formatWithArgumentRanges(self._s[3300]!, self._r[3300]!, [_0]) } - public var Channel_LeaveChannel: String { return self._s[3278]! } + public var Channel_LeaveChannel: String { return self._s[3301]! } public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3279]!, self._r[3279]!, [_1]) + return formatWithArgumentRanges(self._s[3302]!, self._r[3302]!, [_1]) } - public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[3280]! } - public var PhotoEditor_HighlightsTint: String { return self._s[3281]! } - public var Passport_Email_Delete: String { return self._s[3282]! } - public var Conversation_Mute: String { return self._s[3284]! } - public var Channel_AddBotAsAdmin: String { return self._s[3285]! } - public var Channel_AdminLog_CanSendMessages: String { return self._s[3287]! } + public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[3303]! } + public var PhotoEditor_HighlightsTint: String { return self._s[3304]! } + public var Passport_Email_Delete: String { return self._s[3305]! } + public var Conversation_Mute: String { return self._s[3307]! } + public var Channel_AddBotAsAdmin: String { return self._s[3308]! } + public var Channel_AdminLog_CanSendMessages: String { return self._s[3310]! } + public var Channel_Management_LabelOwner: String { return self._s[3312]! } public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3289]!, self._r[3289]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3313]!, self._r[3313]!, [_1, _2]) } - public var Calls_CallTabDescription: String { return self._s[3290]! } - public var Passport_Identity_NativeNameHelp: String { return self._s[3291]! } - public var Common_No: String { return self._s[3292]! } - public var Weekday_Sunday: String { return self._s[3293]! } - public var Notification_Reply: String { return self._s[3294]! } - public var Conversation_ViewMessage: String { return self._s[3295]! } + public var Calls_CallTabDescription: String { return self._s[3314]! } + public var Passport_Identity_NativeNameHelp: String { return self._s[3315]! } + public var Common_No: String { return self._s[3316]! } + public var Weekday_Sunday: String { return self._s[3317]! } + public var Notification_Reply: String { return self._s[3318]! } + public var Conversation_ViewMessage: String { return self._s[3319]! } public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3296]!, self._r[3296]!, [_0]) + return formatWithArgumentRanges(self._s[3320]!, self._r[3320]!, [_0]) } public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3297]!, self._r[3297]!, [_0]) + return formatWithArgumentRanges(self._s[3321]!, self._r[3321]!, [_0]) } - public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[3298]! } - public var Message_PinnedDocumentMessage: String { return self._s[3299]! } - public var DialogList_TabTitle: String { return self._s[3301]! } - public var ChatSettings_AutoPlayTitle: String { return self._s[3302]! } - public var Passport_FieldEmail: String { return self._s[3303]! } - public var Conversation_UnpinMessageAlert: String { return self._s[3304]! } - public var Passport_Address_TypeBankStatement: String { return self._s[3305]! } - public var Passport_Identity_ExpiryDate: String { return self._s[3306]! } - public var Privacy_Calls_P2P: String { return self._s[3307]! } + public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[3322]! } + public var Message_PinnedDocumentMessage: String { return self._s[3323]! } + public var DialogList_TabTitle: String { return self._s[3325]! } + public var ChatSettings_AutoPlayTitle: String { return self._s[3326]! } + public var Passport_FieldEmail: String { return self._s[3327]! } + public var Conversation_UnpinMessageAlert: String { return self._s[3328]! } + public var Passport_Address_TypeBankStatement: String { return self._s[3329]! } + public var Passport_Identity_ExpiryDate: String { return self._s[3330]! } + public var Privacy_Calls_P2P: String { return self._s[3331]! } public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3309]!, self._r[3309]!, [_0]) + return formatWithArgumentRanges(self._s[3333]!, self._r[3333]!, [_0]) } - public var SocksProxySetup_UseForCallsHelp: String { return self._s[3310]! } + public var SocksProxySetup_UseForCallsHelp: String { return self._s[3334]! } public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3311]!, self._r[3311]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3335]!, self._r[3335]!, [_1, _2]) } - public var Stickers_ClearRecent: String { return self._s[3312]! } - public var EnterPasscode_ChangeTitle: String { return self._s[3313]! } - public var Passport_InfoText: String { return self._s[3314]! } - public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[3315]! } + public var Stickers_ClearRecent: String { return self._s[3336]! } + public var EnterPasscode_ChangeTitle: String { return self._s[3337]! } + public var Passport_InfoText: String { return self._s[3338]! } + public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[3339]! } public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3316]!, self._r[3316]!, [_0]) + return formatWithArgumentRanges(self._s[3340]!, self._r[3340]!, [_0]) } public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3317]!, self._r[3317]!, [_1, _2, _3]) + return formatWithArgumentRanges(self._s[3341]!, self._r[3341]!, [_1, _2, _3]) } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[3318]! } - public var Passport_Identity_EditDriversLicense: String { return self._s[3319]! } - public var Conversation_TapAndHoldToRecord: String { return self._s[3321]! } - public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[3322]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[3342]! } + public var Passport_Identity_EditDriversLicense: String { return self._s[3343]! } + public var Conversation_TapAndHoldToRecord: String { return self._s[3345]! } + public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[3346]! } public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3323]!, self._r[3323]!, [_1, _2]) - } - public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3325]! } - public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3327]!, self._r[3327]!, [_0]) - } - public var DialogList_Unread: String { return self._s[3328]! } - public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3329]!, self._r[3329]!, [_1, _2]) - } - public var User_DeletedAccount: String { return self._s[3330]! } - public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3331]!, self._r[3331]!, [_0]) - } - public var UserInfo_NotificationsDefault: String { return self._s[3332]! } - public var SharedMedia_CategoryMedia: String { return self._s[3333]! } - public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[3334]! } - public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[3335]! } - public var Watch_ChatList_Compose: String { return self._s[3336]! } - public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[3337]! } - public var AutoDownloadSettings_Delimeter: String { return self._s[3338]! } - public var Watch_Microphone_Access: String { return self._s[3339]! } - public var Group_Setup_HistoryHeader: String { return self._s[3340]! } - public var Activity_UploadingPhoto: String { return self._s[3341]! } - public var Conversation_Edit: String { return self._s[3343]! } - public var Group_ErrorSendRestrictedMedia: String { return self._s[3344]! } - public var Login_TermsOfServiceDecline: String { return self._s[3345]! } - public var Message_PinnedContactMessage: String { return self._s[3346]! } - public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { return formatWithArgumentRanges(self._s[3347]!, self._r[3347]!, [_1, _2]) } + public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3349]! } + public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3351]!, self._r[3351]!, [_0]) + } + public var DialogList_Unread: String { return self._s[3352]! } + public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3353]!, self._r[3353]!, [_1, _2]) + } + public var User_DeletedAccount: String { return self._s[3354]! } + public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[3355]! } + public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3356]!, self._r[3356]!, [_0]) + } + public var UserInfo_NotificationsDefault: String { return self._s[3357]! } + public var SharedMedia_CategoryMedia: String { return self._s[3358]! } + public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[3359]! } + public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[3360]! } + public var Watch_ChatList_Compose: String { return self._s[3361]! } + public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[3362]! } + public var AutoDownloadSettings_Delimeter: String { return self._s[3363]! } + public var Watch_Microphone_Access: String { return self._s[3364]! } + public var Group_Setup_HistoryHeader: String { return self._s[3365]! } + public var Activity_UploadingPhoto: String { return self._s[3366]! } + public var Conversation_Edit: String { return self._s[3368]! } + public var Group_ErrorSendRestrictedMedia: String { return self._s[3369]! } + public var Login_TermsOfServiceDecline: String { return self._s[3370]! } + public var Message_PinnedContactMessage: String { return self._s[3371]! } + public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { + return formatWithArgumentRanges(self._s[3372]!, self._r[3372]!, [_1, _2]) + } public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3348]!, self._r[3348]!, [_1, _2, _3, _4, _5]) + return formatWithArgumentRanges(self._s[3373]!, self._r[3373]!, [_1, _2, _3, _4, _5]) } - public var Appearance_LargeEmoji: String { return self._s[3349]! } - public var TwoStepAuth_AdditionalPassword: String { return self._s[3351]! } + public var Appearance_LargeEmoji: String { return self._s[3374]! } + public var TwoStepAuth_AdditionalPassword: String { return self._s[3376]! } public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3352]!, self._r[3352]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3377]!, self._r[3377]!, [_1, _2]) } - public var Passport_Phone_EnterOtherNumber: String { return self._s[3353]! } - public var Message_PinnedPhotoMessage: String { return self._s[3354]! } - public var Passport_FieldPhone: String { return self._s[3355]! } - public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[3356]! } - public var ChatSettings_AutoPlayGifs: String { return self._s[3357]! } - public var InfoPlist_NSCameraUsageDescription: String { return self._s[3359]! } - public var Conversation_Call: String { return self._s[3360]! } - public var Common_TakePhoto: String { return self._s[3362]! } - public var Channel_NotificationLoading: String { return self._s[3363]! } + public var Passport_Phone_EnterOtherNumber: String { return self._s[3378]! } + public var Message_PinnedPhotoMessage: String { return self._s[3379]! } + public var Passport_FieldPhone: String { return self._s[3380]! } + public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[3381]! } + public var ChatSettings_AutoPlayGifs: String { return self._s[3382]! } + public var InfoPlist_NSCameraUsageDescription: String { return self._s[3384]! } + public var Conversation_Call: String { return self._s[3385]! } + public var Common_TakePhoto: String { return self._s[3387]! } + public var Channel_NotificationLoading: String { return self._s[3388]! } public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3364]!, self._r[3364]!, [_0]) + return formatWithArgumentRanges(self._s[3389]!, self._r[3389]!, [_0]) } public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3365]!, self._r[3365]!, [_1]) + return formatWithArgumentRanges(self._s[3390]!, self._r[3390]!, [_1]) } - public var Permissions_SiriTitle_v0: String { return self._s[3366]! } + public var Permissions_SiriTitle_v0: String { return self._s[3391]! } public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3367]!, self._r[3367]!, [_0]) + return formatWithArgumentRanges(self._s[3392]!, self._r[3392]!, [_0]) } - public var Channel_MessagePhotoRemoved: String { return self._s[3368]! } - public var Common_edit: String { return self._s[3369]! } - public var PrivacySettings_AuthSessions: String { return self._s[3370]! } - public var Month_ShortJune: String { return self._s[3371]! } - public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[3372]! } - public var Call_ReportSend: String { return self._s[3373]! } - public var Watch_LastSeen_JustNow: String { return self._s[3374]! } - public var Notifications_MessageNotifications: String { return self._s[3375]! } - public var WallpaperSearch_ColorGreen: String { return self._s[3376]! } - public var BroadcastListInfo_AddRecipient: String { return self._s[3378]! } - public var Group_Status: String { return self._s[3379]! } + public var Channel_MessagePhotoRemoved: String { return self._s[3393]! } + public var Common_edit: String { return self._s[3394]! } + public var PrivacySettings_AuthSessions: String { return self._s[3395]! } + public var Month_ShortJune: String { return self._s[3396]! } + public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[3397]! } + public var Call_ReportSend: String { return self._s[3398]! } + public var Watch_LastSeen_JustNow: String { return self._s[3399]! } + public var Notifications_MessageNotifications: String { return self._s[3400]! } + public var WallpaperSearch_ColorGreen: String { return self._s[3401]! } + public var BroadcastListInfo_AddRecipient: String { return self._s[3403]! } + public var Group_Status: String { return self._s[3404]! } public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3380]!, self._r[3380]!, [_0, _1]) + return formatWithArgumentRanges(self._s[3405]!, self._r[3405]!, [_0, _1]) } - public var TextFormat_AddLinkTitle: String { return self._s[3381]! } - public var ShareMenu_ShareTo: String { return self._s[3382]! } - public var Conversation_Moderate_Ban: String { return self._s[3383]! } + public var TextFormat_AddLinkTitle: String { return self._s[3406]! } + public var ShareMenu_ShareTo: String { return self._s[3407]! } + public var Conversation_Moderate_Ban: String { return self._s[3408]! } public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3384]!, self._r[3384]!, [_0]) + return formatWithArgumentRanges(self._s[3409]!, self._r[3409]!, [_0]) } - public var SharedMedia_ViewInChat: String { return self._s[3385]! } - public var Map_LiveLocationFor8Hours: String { return self._s[3386]! } + public var SharedMedia_ViewInChat: String { return self._s[3410]! } + public var Map_LiveLocationFor8Hours: String { return self._s[3411]! } public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3387]!, self._r[3387]!, [_1]) + return formatWithArgumentRanges(self._s[3412]!, self._r[3412]!, [_1]) } public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3388]!, self._r[3388]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3413]!, self._r[3413]!, [_1, _2]) } public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3390]!, self._r[3390]!, [_0]) + return formatWithArgumentRanges(self._s[3415]!, self._r[3415]!, [_0]) } - public var Map_OpenInHereMaps: String { return self._s[3391]! } - public var Appearance_ReduceMotion: String { return self._s[3392]! } + public var Map_OpenInHereMaps: String { return self._s[3416]! } + public var Appearance_ReduceMotion: String { return self._s[3417]! } public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) { - return formatWithArgumentRanges(self._s[3393]!, self._r[3393]!, [_1, _2]) + return formatWithArgumentRanges(self._s[3418]!, self._r[3418]!, [_1, _2]) } - public var Channel_Setup_TypePublicHelp: String { return self._s[3394]! } - public var Passport_Identity_EditInternalPassport: String { return self._s[3395]! } - public var PhotoEditor_Skip: String { return self._s[3396]! } - public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[0 * 6 + Int(form.rawValue)]!, _1, _2) + public var Channel_Setup_TypePublicHelp: String { return self._s[3419]! } + public var Passport_Identity_EditInternalPassport: String { return self._s[3420]! } + public var PhotoEditor_Skip: String { return self._s[3421]! } + public func ChatList_SelectedChats(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(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 { + public func Watch_UserInfo_Mute(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[1 * 6 + Int(form.rawValue)]!, stringValue) } - public func MuteFor_Hours(_ value: Int32) -> String { + public func Media_ShareVideo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[2 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Days(_ value: Int32) -> String { + public func MessageTimer_Years(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[3 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, _1, _2) + public func MessageTimer_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[4 * 6 + Int(form.rawValue)]!, stringValue) } - public func Notification_GameScoreExtended(_ value: Int32) -> String { + public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[5 * 6 + Int(form.rawValue)]!, stringValue) } - public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + public func MessageTimer_Seconds(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[6 * 6 + Int(form.rawValue)]!, stringValue) } - public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + public func SharedMedia_Video(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, stringValue) } - public func ForwardedPolls(_ value: Int32) -> String { + public func AttachmentMenu_SendVideo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, stringValue) @@ -3874,482 +3907,480 @@ public final class PresentationStrings { let form = presentationStringsPluralizationForm(self.lc, selector) return String(format: self._ps[9 * 6 + Int(form.rawValue)]!, _1, _2) } - public func QuickSend_Photos(_ value: Int32) -> String { + public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[10 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_StickerCount(_ value: Int32) -> String { + public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[11 * 6 + Int(form.rawValue)]!, stringValue) } - public func ChatList_SelectedChats(_ value: Int32) -> String { + public func ForwardedVideoMessages(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue) } - public func StickerPack_AddMaskCount(_ value: Int32) -> String { + public func SharedMedia_Photo(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue) } - public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + public func Map_ETAMinutes(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessagePoll_VotedCount(_ value: Int32) -> String { + public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue) } - public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) return String(format: self._ps[16 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } - public func MessageTimer_Months(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Minutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedFiles(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[20 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[21 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendGif(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[22 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[23 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func SharedMedia_Photo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_ShareItem(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) - } - public func GroupInfo_ParticipantCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_UserInfo_Mute(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Contacts_ImportersCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ChatList_DeleteConfirmation(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, _2, _1, _3) - } public func SharedMedia_Generic(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) + return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, stringValue) } - public func MessageTimer_Years(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHAT_MESSAGES(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[18 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func Conversation_StatusOnline(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortHours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortMinutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortWeeks(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[42 * 6 + Int(form.rawValue)]!, stringValue) - } - public func AttachmentMenu_SendItem(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[44 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Minutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteFor_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideos(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, stringValue) + public func PUSH_CHANNEL_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[19 * 6 + Int(form.rawValue)]!, _1, _2) } public func ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String { let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, _0, _1) - } - public func AttachmentMenu_SendVideo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_Weeks(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Passport_Scans(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MuteExpires_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(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 = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[56 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MuteExpires_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Link(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Invitation_Members(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedLocations(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedVideoMessages(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) - } - public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[62 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedMessages(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, stringValue) - } - public func SharedMedia_Video(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusSubscribers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_AddStickerCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[67 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func Notification_GameScoreSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Notifications_ExceptionMuteExpires_Days(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortSeconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) - } - public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, _1, _2) - } - public func MessageTimer_ShortSeconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(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 = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[77 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedContacts(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedAudios(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Forward_ConfirmMultipleFiles(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LastSeen_HoursAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) - } - public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Media_SharePhoto(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Seconds(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(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[20 * 6 + Int(form.rawValue)]!, _0, _1) } public func PasscodeSettings_FailedAttempts(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, value) let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Call_ShortMinutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Conversation_StatusMembers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Map_ETAMinutes(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedPhotos(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_Hours(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) - } - public func StickerPack_RemoveMaskCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) - } - public func MessageTimer_ShortDays(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) - } - public func UserCount(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) - } - public func InviteText_ContactsCountText(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, stringValue) - } - public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(self.lc, value) - let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) - return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) - } - public func ForwardedStickers(_ value: Int32) -> String { - let form = presentationStringsPluralizationForm(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[21 * 6 + Int(form.rawValue)]!, stringValue) } public func Call_Seconds(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(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[22 * 6 + Int(form.rawValue)]!, stringValue) } - public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + public func Chat_DeleteMessagesConfirmation(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(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[23 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[24 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Invitation_Members(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[25 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[26 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusMembers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[27 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreExtended(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[28 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortHours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[29 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortMinutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_HoursAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[31 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortSeconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[33 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[34 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[35 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func Notifications_ExceptionMuteExpires_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[36 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendItem(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[37 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSelfExtended(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[38 * 6 + Int(form.rawValue)]!, stringValue) + } + public func InviteText_ContactsCountText(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[39 * 6 + Int(form.rawValue)]!, stringValue) + } + public func AttachmentMenu_SendPhoto(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[40 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[41 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Watch_LastSeen_MinutesAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(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 = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[43 * 6 + Int(form.rawValue)]!, stringValue) } public func Map_ETAHours(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(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[44 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + public func AttachmentMenu_SendGif(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(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[45 * 6 + Int(form.rawValue)]!, stringValue) } - public func SharedMedia_File(_ value: Int32) -> String { + public func ServiceMessage_GameScoreExtended(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(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[46 * 6 + Int(form.rawValue)]!, stringValue) } - public func Wallpaper_DeleteConfirmation(_ value: Int32) -> String { + public func PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[47 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func MuteFor_Days(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(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[48 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_LiveLocationMembersCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[49 * 6 + Int(form.rawValue)]!, stringValue) + } + public func QuickSend_Photos(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[50 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func PrivacyLastSeenSettings_AddUsers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[52 * 6 + Int(form.rawValue)]!, stringValue) + } + public func GroupInfo_ParticipantCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[53 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteFor_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[54 * 6 + Int(form.rawValue)]!, stringValue) } public func PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[55 * 6 + Int(form.rawValue)]!, _2, _1, _3) } - public func StickerPack_RemoveStickerCount(_ value: Int32) -> String { + public func ForwardedContacts(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(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[56 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[57 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSimple(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[58 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[59 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortMinutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[60 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddStickerCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[61 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Months(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(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_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[63 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Media_ShareItem(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[64 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_AddMaskCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[65 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedVideos(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[66 * 6 + Int(form.rawValue)]!, stringValue) } public func Notifications_Exceptions(_ value: Int32) -> String { let form = presentationStringsPluralizationForm(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[67 * 6 + Int(form.rawValue)]!, stringValue) } - public func PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { + public func Conversation_StatusSubscribers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[68 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ForwardedMessages(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[70 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ServiceMessage_GameScoreSimple(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[71 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notification_GameScoreSelfSimple(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[72 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Media_SharePhoto(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[73 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[74 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MuteExpires_Minutes(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[76 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedStickers(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(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_FWDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String { let form = presentationStringsPluralizationForm(self.lc, selector) - return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, _2, _1, _3) + return String(format: self._ps[78 * 6 + Int(form.rawValue)]!, _2, _1, _3) + } + public func Notification_GameScoreSelfExtended(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[79 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPhotos(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[80 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedGifs(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[81 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedAudios(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(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 = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Notifications_ExceptionMuteExpires_Hours(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[84 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocationUpdated_MinutesAgo(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[85 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedPolls(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[86 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ChatList_DeleteConfirmation(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortDays(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[88 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_File(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[89 * 6 + Int(form.rawValue)]!, stringValue) + } + public func CreatePoll_AddMoreOptions(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[90 * 6 + Int(form.rawValue)]!, stringValue) + } + public func LiveLocation_MenuChatsCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[91 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_ShortWeeks(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[92 * 6 + Int(form.rawValue)]!, stringValue) + } + public func SharedMedia_DeleteItemsConfirmation(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[93 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[94 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func SharedMedia_Link(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[95 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessagePoll_VotedCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, stringValue) + } + public func StickerPack_StickerCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[97 * 6 + Int(form.rawValue)]!, stringValue) + } + public func PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, selector) + return String(format: self._ps[98 * 6 + Int(form.rawValue)]!, _1, _2) + } + public func DialogList_LiveLocationChatsCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Days(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[100 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedFiles(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Contacts_ImportersCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[102 * 6 + Int(form.rawValue)]!, stringValue) + } + public func MessageTimer_Weeks(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[103 * 6 + Int(form.rawValue)]!, stringValue) + } + public func ForwardedLocations(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[104 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Call_ShortSeconds(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, stringValue) + } + public func UserCount(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[106 * 6 + Int(form.rawValue)]!, stringValue) + } + public func Conversation_StatusOnline(_ value: Int32) -> String { + let form = presentationStringsPluralizationForm(self.lc, value) + let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator) + return String(format: self._ps[107 * 6 + Int(form.rawValue)]!, stringValue) } init(primaryComponent: PresentationStringsComponent, secondaryComponent: PresentationStringsComponent?, groupingSeparator: String) { diff --git a/TelegramUI/Resources/Animations/anim_success.json b/TelegramUI/Resources/Animations/anim_success.json new file mode 100644 index 0000000000..6248347bcb --- /dev/null +++ b/TelegramUI/Resources/Animations/anim_success.json @@ -0,0 +1 @@ +{"v":"5.5.2","fr":60,"ip":0,"op":45,"w":36,"h":36,"nm":"Lamp 3","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"luc12","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-43.5,75.344,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,0],[-2.5,0]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":-60,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"luc12","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[40]},{"t":20,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.697],"y":[0.848]},"o":{"x":[0.527],"y":[0.407]},"t":2,"s":[40]},{"t":5,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":-15,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"luc11","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[43.5,75.344,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,0],[-2.5,0]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":60,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"luc11","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.697],"y":[0.848]},"o":{"x":[0.526],"y":[0.407]},"t":2,"s":[60]},{"t":5,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[60]},{"i":{"x":[0.201],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[60]},{"t":20,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":-15,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"luc10","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,87,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,0],[-2.5,0]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":90,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"luc10","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.697],"y":[0.848]},"o":{"x":[0.526],"y":[0.407]},"t":2,"s":[60]},{"t":5,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[60]},{"i":{"x":[0.201],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[60]},{"t":20,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":-15,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"luc9","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[75.344,43.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,0],[-2.5,0]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":30,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"luc9","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.697],"y":[0.848]},"o":{"x":[0.526],"y":[0.407]},"t":2,"s":[60]},{"t":5,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[60]},{"i":{"x":[0.201],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[60]},{"t":20,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":-15,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"luc8","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[87,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,0],[-2.5,0]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"luc8","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.697],"y":[0.848]},"o":{"x":[0.526],"y":[0.407]},"t":2,"s":[60]},{"t":5,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[60]},{"i":{"x":[0.201],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[60]},{"t":20,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":-15,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"luc7","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[75.344,-43.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,0],[-2.5,0]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":-30,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"luc7","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.697],"y":[0.848]},"o":{"x":[0.526],"y":[0.407]},"t":2,"s":[60]},{"t":5,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[60]},{"i":{"x":[0.201],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[60]},{"t":20,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":-15,"bm":0},{"ddd":0,"ind":7,"ty":4,"nm":"luc6","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[43.5,-75.344,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,0],[-2.5,0]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":-60,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"luc6","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.697],"y":[0.848]},"o":{"x":[0.526],"y":[0.407]},"t":2,"s":[60]},{"t":5,"s":[0]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[60]},{"i":{"x":[0.201],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[60]},{"t":20,"s":[0]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":-15,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"luc5","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0,-87,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,0],[-2.5,0]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":90,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"luc5","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[40]},{"t":20,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.697],"y":[0.848]},"o":{"x":[0.527],"y":[0.407]},"t":2,"s":[40]},{"t":5,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":-15,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"luc4","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-43.5,-75.344,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,0],[-2.5,0]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":60,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"luc4","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[40]},{"t":20,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.697],"y":[0.848]},"o":{"x":[0.527],"y":[0.407]},"t":2,"s":[40]},{"t":5,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":-15,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"luc3","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-75.344,-43.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,0],[-2.5,0]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":30,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"luc3","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[40]},{"t":20,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.697],"y":[0.848]},"o":{"x":[0.527],"y":[0.407]},"t":2,"s":[40]},{"t":5,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":-15,"bm":0},{"ddd":0,"ind":11,"ty":4,"nm":"luc2","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-87,0,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,0],[-2.5,0]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"luc2","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[40]},{"t":20,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.697],"y":[0.848]},"o":{"x":[0.527],"y":[0.407]},"t":2,"s":[40]},{"t":5,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":-15,"bm":0},{"ddd":0,"ind":12,"ty":4,"nm":"luc1","parent":14,"sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-75.344,43.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0]],"o":[[0,0],[0,0]],"v":[[2.5,0],[-2.5,0]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[1,1,1,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":2,"lj":1,"ml":4,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":-30,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"luc1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.167],"y":[0.167]},"t":10,"s":[40]},{"t":20,"s":[100]}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.697],"y":[0.848]},"o":{"x":[0.527],"y":[0.407]},"t":2,"s":[40]},{"t":5,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"Trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":-15,"bm":0},{"ddd":0,"ind":13,"ty":4,"nm":"info1","parent":14,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[0.5,3.5,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-28.5,0.5],[-9.5,19.5],[28.5,-19.5]],"c":false},"ix":2},"nm":"contour","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":12,"ix":5},"lc":2,"lj":2,"bm":0,"nm":"stroke","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"info1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":0,"k":0,"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.799],"y":[0]},"t":5,"s":[0]},{"t":15,"s":[100]}],"ix":2},"o":{"a":0,"k":0,"ix":3},"m":1,"ix":2,"nm":"trim","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":45,"st":0,"bm":0},{"ddd":0,"ind":14,"ty":4,"nm":"Oval","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[18,18,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.203,0.203,0.667],"y":[1,1,1]},"o":{"x":[0.17,0.17,0.333],"y":[0,0,0]},"t":2,"s":[11.667,11.667,100]},{"t":27,"s":[16.667,16.667,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"contour","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"fill","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[600,600],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Преобразовать"}],"nm":"Oval","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":45,"st":-15,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/TelegramUI/Resources/PresentationStrings.mapping b/TelegramUI/Resources/PresentationStrings.mapping index 56453cd67a25303c0fe4b576c2c9b596e2a40572..3710628d9b78c21acba29cb4836079658ad0497e 100644 GIT binary patch delta 34556 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 AlertController { + let presentationData = context.sharedContext.currentPresentationData.with { $0 } + let theme = AlertControllerTheme(presentationTheme: presentationData.theme) + + var dismissImpl: (() -> Void)? + let controller = AlertController(theme: theme, contentNode: TextAlertContentNode(theme: theme, title: title, text: text, actions: actions.map { action in + return TextAlertAction(type: action.type, title: action.title, action: { + dismissImpl?() + action.action() + }) + }, actionLayout: actionLayout)) + dismissImpl = { [weak controller] in + controller?.dismissAnimated() + } + + let presentationDataDisposable = context.sharedContext.presentationData.start(next: { [weak controller] presentationData in + controller?.theme = AlertControllerTheme(presentationTheme: presentationData.theme) + }) + controller.dismissed = { + presentationDataDisposable.dispose() + } + + return controller +} diff --git a/TelegramUI/UndoOverlayController.swift b/TelegramUI/UndoOverlayController.swift index 493f436849..7bfaa3dcb6 100644 --- a/TelegramUI/UndoOverlayController.swift +++ b/TelegramUI/UndoOverlayController.swift @@ -9,6 +9,7 @@ public enum UndoOverlayContent { case archivedChat(peerId: PeerId, title: String, text: String, undo: Bool) case hidArchive(title: String, text: String, undo: Bool) case revealedArchive(title: String, text: String, undo: Bool) + case succeed(text: String) } public final class UndoOverlayController: ViewController { diff --git a/TelegramUI/UndoOverlayControllerNode.swift b/TelegramUI/UndoOverlayControllerNode.swift index d5eb0c46e3..941ec7d6fa 100644 --- a/TelegramUI/UndoOverlayControllerNode.swift +++ b/TelegramUI/UndoOverlayControllerNode.swift @@ -70,6 +70,7 @@ final class UndoOverlayControllerNode: ViewControllerTracingNode { self.iconNode?.displaysAsynchronously = false self.iconNode?.image = UIImage(bundleImageName: "Chat List/ArchivedUndoIcon") self.iconCheckNode = RadialStatusNode(backgroundNodeColor: .clear) + self.iconCheckNode?.frame = CGRect(x: 0.0, y: 0.0, width: 24.0, height: 24.0) self.animationNode = nil } else { self.iconNode = nil @@ -82,20 +83,32 @@ final class UndoOverlayControllerNode: ViewControllerTracingNode { self.originalRemainingSeconds = 5 case let .hidArchive(title, text, undo): self.iconNode = nil - self.animationNode = AnimationNode(animation: "anim_archiveswipe", colors: ["info1.info1.stroke": self.animationBackgroundColor, "info2.info2.Fill": self.animationBackgroundColor], scale: 1.0) self.iconCheckNode = nil + self.animationNode = AnimationNode(animation: "anim_archiveswipe", colors: ["info1.info1.stroke": self.animationBackgroundColor, "info2.info2.Fill": self.animationBackgroundColor], scale: 1.0) self.titleNode.attributedText = NSAttributedString(string: title, font: Font.semibold(14.0), textColor: .white) self.textNode.attributedText = NSAttributedString(string: text, font: Font.regular(14.0), textColor: .white) displayUndo = undo self.originalRemainingSeconds = 3 case let .revealedArchive(title, text, undo): self.iconNode = nil - self.animationNode = AnimationNode(animation: "anim_infotip", colors: ["info1.info1.stroke": self.animationBackgroundColor, "info2.info2.Fill": self.animationBackgroundColor], scale: 1.0) self.iconCheckNode = nil + self.animationNode = AnimationNode(animation: "anim_infotip", colors: ["info1.info1.stroke": self.animationBackgroundColor, "info2.info2.Fill": self.animationBackgroundColor], scale: 1.0) self.titleNode.attributedText = NSAttributedString(string: title, font: Font.semibold(14.0), textColor: .white) self.textNode.attributedText = NSAttributedString(string: text, font: Font.regular(14.0), textColor: .white) displayUndo = undo self.originalRemainingSeconds = 3 + case let .succeed(text): + self.iconNode = nil + self.iconCheckNode = nil + self.animationNode = AnimationNode(animation: "anim_success", colors: ["info1.info1.stroke": self.animationBackgroundColor, "info2.info2.Fill": self.animationBackgroundColor], scale: 1.0) + + let body = MarkdownAttributeSet(font: Font.regular(14.0), textColor: .white) + let bold = MarkdownAttributeSet(font: Font.semibold(14.0), textColor: .white) + let attributedText = parseMarkdownIntoAttributedString(text, attributes: MarkdownAttributes(body: body, bold: bold, link: body, linkAttribute: { _ in return nil }), textAlignment: .natural) + self.textNode.attributedText = attributedText + self.textNode.maximumNumberOfLines = 2 + displayUndo = false + self.originalRemainingSeconds = 3 } self.remainingSeconds = self.originalRemainingSeconds @@ -127,7 +140,7 @@ final class UndoOverlayControllerNode: ViewControllerTracingNode { case .removedChat: self.panelWrapperNode.addSubnode(self.timerTextNode) self.panelWrapperNode.addSubnode(self.statusNode) - case .archivedChat, .hidArchive, .revealedArchive: + case .archivedChat, .hidArchive, .revealedArchive, .succeed: break } self.iconNode.flatMap(self.panelWrapperNode.addSubnode) @@ -266,8 +279,12 @@ final class UndoOverlayControllerNode: ViewControllerTracingNode { transition.updateFrame(node: iconNode, frame: iconFrame) if let iconCheckNode = self.iconCheckNode { - let statusSize: CGFloat = 24.0 - transition.updateFrame(node: iconCheckNode, frame: CGRect(origin: CGPoint(x: iconFrame.minX + floor((iconFrame.width - statusSize) / 2.0), y: iconFrame.minY + floor((iconFrame.height - statusSize) / 2.0) + 3.0), size: CGSize(width: statusSize, height: statusSize))) + let statusSize: CGFloat = iconCheckNode.frame.width + var offset: CGFloat = 0.0 + if statusSize < 30.0 { + offset = 3.0 + } + transition.updateFrame(node: iconCheckNode, frame: CGRect(origin: CGPoint(x: iconFrame.minX + floor((iconFrame.width - statusSize) / 2.0), y: iconFrame.minY + floor((iconFrame.height - statusSize) / 2.0) + offset), size: CGSize(width: statusSize, height: statusSize))) } }