diff --git a/Telegram-iOS/Info.plist b/Telegram-iOS/Info.plist
index 4cd5288838..9d42ba6330 100644
--- a/Telegram-iOS/Info.plist
+++ b/Telegram-iOS/Info.plist
@@ -86,88 +86,88 @@
- CFBundleIcons~ipad
-
- CFBundleAlternateIcons
-
- Black
-
- CFBundleIconFiles
-
- BlackIconIpad
- BlackIconLargeIpad
-
- UIPrerenderedIcon
-
-
- BlackClassic
-
- CFBundleIconFiles
-
- BlackClassicIconIpad
- BlackClassicIconLargeIpad
-
- UIPrerenderedIcon
-
-
- BlackFilled
-
- CFBundleIconFiles
-
- BlackFilledIconIpad
- BlackFilledIconLargeIpad
-
- UIPrerenderedIcon
-
-
- Blue
-
- CFBundleIconFiles
-
- BlueIconIpad
- BlueIconLargeIpad
-
- UIPrerenderedIcon
-
-
- BlueClassic
-
- CFBundleIconFiles
-
- BlueClassicIconIpad
- BlueClassicIconLargeIpad
-
- UIPrerenderedIcon
-
-
- BlueFilled
-
- CFBundleIconFiles
-
- BlueFilledIconIpad
- BlueFilledIconLargeIpad
-
- UIPrerenderedIcon
-
-
- WhiteFilled
-
- CFBundleIconFiles
-
- WhiteFilledIcon
-
- UIPrerenderedIcon
-
-
-
- CFBundlePrimaryIcon
-
- CFBundleIconName
- AppIconLLC
- UIPrerenderedIcon
-
-
-
+ CFBundleIcons~ipad
+
+ CFBundleAlternateIcons
+
+ Black
+
+ CFBundleIconFiles
+
+ BlackIconIpad
+ BlackIconLargeIpad
+
+ UIPrerenderedIcon
+
+
+ BlackClassic
+
+ CFBundleIconFiles
+
+ BlackClassicIconIpad
+ BlackClassicIconLargeIpad
+
+ UIPrerenderedIcon
+
+
+ BlackFilled
+
+ CFBundleIconFiles
+
+ BlackFilledIconIpad
+ BlackFilledIconLargeIpad
+
+ UIPrerenderedIcon
+
+
+ Blue
+
+ CFBundleIconFiles
+
+ BlueIconIpad
+ BlueIconLargeIpad
+
+ UIPrerenderedIcon
+
+
+ BlueClassic
+
+ CFBundleIconFiles
+
+ BlueClassicIconIpad
+ BlueClassicIconLargeIpad
+
+ UIPrerenderedIcon
+
+
+ BlueFilled
+
+ CFBundleIconFiles
+
+ BlueFilledIconIpad
+ BlueFilledIconLargeIpad
+
+ UIPrerenderedIcon
+
+
+ WhiteFilled
+
+ CFBundleIconFiles
+
+ WhiteFilledIcon
+
+ UIPrerenderedIcon
+
+
+
+ CFBundlePrimaryIcon
+
+ CFBundleIconName
+ AppIconLLC
+ UIPrerenderedIcon
+
+
+
CFBundleIdentifier
$(PRODUCT_BUNDLE_IDENTIFIER)
CFBundleInfoDictionaryVersion
@@ -280,6 +280,7 @@
NSUserActivityTypes
INSendMessageIntent
+ RemindAboutChatIntent
UIAppFonts
diff --git a/Telegram-iOS/en.lproj/Localizable.strings b/Telegram-iOS/en.lproj/Localizable.strings
index ef8337e795..471ae87449 100644
--- a/Telegram-iOS/en.lproj/Localizable.strings
+++ b/Telegram-iOS/en.lproj/Localizable.strings
@@ -4454,3 +4454,7 @@ Any member of this group will be able to see messages in the channel.";
"CreateGroup.ErrorLocatedGroupsTooMuch" = "Sorry, you have too many location-based groups already. Please delete one of your existing ones first.";
"GroupInfo.LabelOwner" = "owner";
+
+"Activity.RemindAboutGroup" = "Send message to %@";
+"Activity.RemindAboutUser" = "Send message to %@";
+"Activity.RemindAboutChannel" = "Read %@";
diff --git a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift
index 4ed1bd9129..ad36131c21 100644
--- a/submodules/TelegramPresentationData/Sources/PresentationStrings.swift
+++ b/submodules/TelegramPresentationData/Sources/PresentationStrings.swift
@@ -1262,3174 +1262,3183 @@ public final class PresentationStrings {
public var SettingsSearch_Synonyms_Support: String { return self._s[1004]! }
public var GroupInfo_GroupHistoryHidden: String { return self._s[1005]! }
public var SocksProxySetup_Secret: String { return self._s[1006]! }
- public var Channel_BanList_RestrictedTitle: String { return self._s[1008]! }
- public var Conversation_Location: String { return self._s[1009]! }
+ public func Activity_RemindAboutChannel(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[1007]!, self._r[1007]!, [_0])
+ }
+ public var Channel_BanList_RestrictedTitle: String { return self._s[1009]! }
+ public var Conversation_Location: String { return self._s[1010]! }
public func AutoDownloadSettings_UpToFor(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1010]!, self._r[1010]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1011]!, self._r[1011]!, [_1, _2])
}
- public var ChatSettings_AutoDownloadPhotos: String { return self._s[1012]! }
- public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1013]! }
- public var Notifications_PermissionsText: String { return self._s[1014]! }
- public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1015]! }
- public var Call_Flip: String { return self._s[1016]! }
- public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1017]! }
- public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1019]! }
- public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1021]! }
- public var Passport_DeletePassportConfirmation: String { return self._s[1023]! }
- public var Login_InvalidCodeError: String { return self._s[1024]! }
- public var StickerPacksSettings_FeaturedPacks: String { return self._s[1025]! }
+ public var ChatSettings_AutoDownloadPhotos: String { return self._s[1013]! }
+ public var SettingsSearch_Synonyms_Privacy_Title: String { return self._s[1014]! }
+ public var Notifications_PermissionsText: String { return self._s[1015]! }
+ public var SettingsSearch_Synonyms_Data_SaveIncomingPhotos: String { return self._s[1016]! }
+ public var Call_Flip: String { return self._s[1017]! }
+ public var SocksProxySetup_ProxyStatusConnecting: String { return self._s[1018]! }
+ public var Channel_EditAdmin_PermissionPinMessages: String { return self._s[1020]! }
+ public var TwoStepAuth_ReEnterPasswordDescription: String { return self._s[1022]! }
+ public var Passport_DeletePassportConfirmation: String { return self._s[1024]! }
+ public var Login_InvalidCodeError: String { return self._s[1025]! }
+ public var StickerPacksSettings_FeaturedPacks: String { return self._s[1026]! }
public func ChatList_DeleteSecretChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1026]!, self._r[1026]!, [_0])
- }
- public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) {
return formatWithArgumentRanges(self._s[1027]!, self._r[1027]!, [_0])
}
- public var Call_CallInProgressTitle: String { return self._s[1028]! }
- public var Month_ShortSeptember: String { return self._s[1029]! }
- public var Watch_ChannelInfo_Title: String { return self._s[1030]! }
- public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1033]! }
- public var DialogList_PasscodeLockHelp: String { return self._s[1034]! }
- public var Notifications_Badge_IncludePublicGroups: String { return self._s[1035]! }
- public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1036]! }
- public var PhotoEditor_CropReset: String { return self._s[1037]! }
- public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1039]! }
- public var Channel_Management_LabelEditor: String { return self._s[1040]! }
- public var Passport_Identity_LatinNameHelp: String { return self._s[1042]! }
- public var PhotoEditor_HighlightsTool: String { return self._s[1043]! }
- public var UserInfo_Title: String { return self._s[1044]! }
- public var ChatList_HideAction: String { return self._s[1045]! }
- public var AccessDenied_Title: String { return self._s[1046]! }
- public var DialogList_SearchLabel: String { return self._s[1047]! }
- public var Group_Setup_HistoryHidden: String { return self._s[1048]! }
- public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1049]! }
- public var State_Updating: String { return self._s[1051]! }
- public var Contacts_TabTitle: String { return self._s[1052]! }
- public var Notifications_Badge_CountUnreadMessages: String { return self._s[1054]! }
- public var GroupInfo_GroupHistory: String { return self._s[1055]! }
- public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1056]! }
- public var Wallpaper_SetColor: String { return self._s[1057]! }
- public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1058]! }
- public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1059]! }
- public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1060]! }
- public var Contacts_NotRegisteredSection: String { return self._s[1061]! }
+ public func GroupInfo_InvitationLinkAcceptChannel(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[1028]!, self._r[1028]!, [_0])
+ }
+ public var Call_CallInProgressTitle: String { return self._s[1029]! }
+ public var Month_ShortSeptember: String { return self._s[1030]! }
+ public var Watch_ChannelInfo_Title: String { return self._s[1031]! }
+ public var ChatList_DeleteSavedMessagesConfirmation: String { return self._s[1034]! }
+ public var DialogList_PasscodeLockHelp: String { return self._s[1035]! }
+ public var Notifications_Badge_IncludePublicGroups: String { return self._s[1036]! }
+ public var Channel_AdminLogFilter_EventsTitle: String { return self._s[1037]! }
+ public var PhotoEditor_CropReset: String { return self._s[1038]! }
+ public var Group_Username_CreatePrivateLinkHelp: String { return self._s[1040]! }
+ public var Channel_Management_LabelEditor: String { return self._s[1041]! }
+ public var Passport_Identity_LatinNameHelp: String { return self._s[1043]! }
+ public var PhotoEditor_HighlightsTool: String { return self._s[1044]! }
+ public var UserInfo_Title: String { return self._s[1045]! }
+ public var ChatList_HideAction: String { return self._s[1046]! }
+ public var AccessDenied_Title: String { return self._s[1047]! }
+ public var DialogList_SearchLabel: String { return self._s[1048]! }
+ public var Group_Setup_HistoryHidden: String { return self._s[1049]! }
+ public var TwoStepAuth_PasswordChangeSuccess: String { return self._s[1050]! }
+ public var State_Updating: String { return self._s[1052]! }
+ public var Contacts_TabTitle: String { return self._s[1053]! }
+ public var Notifications_Badge_CountUnreadMessages: String { return self._s[1055]! }
+ public var GroupInfo_GroupHistory: String { return self._s[1056]! }
+ public var Conversation_UnsupportedMediaPlaceholder: String { return self._s[1057]! }
+ public var Wallpaper_SetColor: String { return self._s[1058]! }
+ public var CheckoutInfo_ShippingInfoCountry: String { return self._s[1059]! }
+ public var SettingsSearch_Synonyms_SavedMessages: String { return self._s[1060]! }
+ public var Passport_Identity_OneOfTypeDriversLicense: String { return self._s[1061]! }
+ public var Contacts_NotRegisteredSection: String { return self._s[1062]! }
public func Time_PreciseDate_m4(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1062]!, self._r[1062]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[1063]!, self._r[1063]!, [_1, _2, _3])
}
- public var Paint_Clear: String { return self._s[1063]! }
- public var StickerPacksSettings_ArchivedMasks: String { return self._s[1064]! }
- public var SocksProxySetup_Connecting: String { return self._s[1065]! }
- public var ExplicitContent_AlertChannel: String { return self._s[1066]! }
- public var CreatePoll_AllOptionsAdded: String { return self._s[1067]! }
- public var Conversation_Contact: String { return self._s[1068]! }
- public var Login_CodeExpired: String { return self._s[1069]! }
- public var Passport_DiscardMessageAction: String { return self._s[1070]! }
- public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1071]! }
- public var Channel_AdminLog_EmptyMessageText: String { return self._s[1072]! }
- public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1073]! }
- public var Month_ShortApril: String { return self._s[1074]! }
- public var AuthSessions_CurrentSession: String { return self._s[1075]! }
- public var WallpaperPreview_CropTopText: String { return self._s[1079]! }
- public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1080]! }
- public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1081]! }
- public var Channel_Setup_TypePrivate: String { return self._s[1083]! }
- public var Forward_ChannelReadOnly: String { return self._s[1086]! }
- public var PhotoEditor_CurvesBlue: String { return self._s[1087]! }
- public var AddContact_SharedContactException: String { return self._s[1088]! }
- public var UserInfo_BotPrivacy: String { return self._s[1089]! }
- public var Notification_PassportValueEmail: String { return self._s[1090]! }
- public var EmptyGroupInfo_Subtitle: String { return self._s[1091]! }
- public var GroupPermission_NewTitle: String { return self._s[1092]! }
- public var CallFeedback_ReasonDropped: String { return self._s[1093]! }
- public var GroupInfo_Permissions_AddException: String { return self._s[1094]! }
- public var Channel_SignMessages_Help: String { return self._s[1096]! }
- public var Undo_ChatDeleted: String { return self._s[1098]! }
- public var Conversation_ChatBackground: String { return self._s[1099]! }
- public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1100]! }
- public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1101]! }
- public var Passport_Language_pt: String { return self._s[1102]! }
- public var NotificationsSound_Popcorn: String { return self._s[1105]! }
- public var AutoNightTheme_Disabled: String { return self._s[1106]! }
- public var BlockedUsers_LeavePrefix: String { return self._s[1107]! }
- public var WallpaperPreview_CustomColorTopText: String { return self._s[1108]! }
- public var Contacts_PermissionsSuppressWarningText: String { return self._s[1109]! }
- public var WallpaperSearch_ColorBlue: String { return self._s[1110]! }
+ public var Paint_Clear: String { return self._s[1064]! }
+ public var StickerPacksSettings_ArchivedMasks: String { return self._s[1065]! }
+ public var SocksProxySetup_Connecting: String { return self._s[1066]! }
+ public var ExplicitContent_AlertChannel: String { return self._s[1067]! }
+ public var CreatePoll_AllOptionsAdded: String { return self._s[1068]! }
+ public var Conversation_Contact: String { return self._s[1069]! }
+ public var Login_CodeExpired: String { return self._s[1070]! }
+ public var Passport_DiscardMessageAction: String { return self._s[1071]! }
+ public var Channel_AdminLog_MessagePreviousDescription: String { return self._s[1072]! }
+ public var Channel_AdminLog_EmptyMessageText: String { return self._s[1073]! }
+ public var SettingsSearch_Synonyms_Data_NetworkUsage: String { return self._s[1074]! }
+ public var Month_ShortApril: String { return self._s[1075]! }
+ public var AuthSessions_CurrentSession: String { return self._s[1076]! }
+ public var WallpaperPreview_CropTopText: String { return self._s[1080]! }
+ public var PrivacySettings_DeleteAccountIfAwayFor: String { return self._s[1081]! }
+ public var CheckoutInfo_ShippingInfoTitle: String { return self._s[1082]! }
+ public var Channel_Setup_TypePrivate: String { return self._s[1084]! }
+ public var Forward_ChannelReadOnly: String { return self._s[1087]! }
+ public var PhotoEditor_CurvesBlue: String { return self._s[1088]! }
+ public var AddContact_SharedContactException: String { return self._s[1089]! }
+ public var UserInfo_BotPrivacy: String { return self._s[1090]! }
+ public var Notification_PassportValueEmail: String { return self._s[1091]! }
+ public var EmptyGroupInfo_Subtitle: String { return self._s[1092]! }
+ public var GroupPermission_NewTitle: String { return self._s[1093]! }
+ public var CallFeedback_ReasonDropped: String { return self._s[1094]! }
+ public var GroupInfo_Permissions_AddException: String { return self._s[1095]! }
+ public var Channel_SignMessages_Help: String { return self._s[1097]! }
+ public var Undo_ChatDeleted: String { return self._s[1099]! }
+ public var Conversation_ChatBackground: String { return self._s[1100]! }
+ public var ChannelMembers_WhoCanAddMembers_Admins: String { return self._s[1101]! }
+ public var FastTwoStepSetup_EmailPlaceholder: String { return self._s[1102]! }
+ public var Passport_Language_pt: String { return self._s[1103]! }
+ public var NotificationsSound_Popcorn: String { return self._s[1106]! }
+ public var AutoNightTheme_Disabled: String { return self._s[1107]! }
+ public var BlockedUsers_LeavePrefix: String { return self._s[1108]! }
+ public var WallpaperPreview_CustomColorTopText: String { return self._s[1109]! }
+ public var Contacts_PermissionsSuppressWarningText: String { return self._s[1110]! }
+ public var WallpaperSearch_ColorBlue: String { return self._s[1111]! }
public func CancelResetAccount_TextSMS(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1111]!, self._r[1111]!, [_0])
+ return formatWithArgumentRanges(self._s[1112]!, self._r[1112]!, [_0])
}
- public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1112]! }
- public var SocksProxySetup_UseForCalls: String { return self._s[1113]! }
- public var Passport_DeleteDocumentConfirmation: String { return self._s[1115]! }
+ public var CheckoutInfo_ErrorNameInvalid: String { return self._s[1113]! }
+ public var SocksProxySetup_UseForCalls: String { return self._s[1114]! }
+ public var Passport_DeleteDocumentConfirmation: String { return self._s[1116]! }
public func Conversation_Megabytes(_ _0: Float) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1116]!, self._r[1116]!, ["\(_0)"])
+ return formatWithArgumentRanges(self._s[1117]!, self._r[1117]!, ["\(_0)"])
}
- public var SocksProxySetup_Hostname: String { return self._s[1119]! }
- public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1120]! }
- public var Compose_NewEncryptedChat: String { return self._s[1121]! }
- public var Login_CodeFloodError: String { return self._s[1122]! }
- public var Calls_TabTitle: String { return self._s[1123]! }
- public var Privacy_ProfilePhoto: String { return self._s[1124]! }
- public var Passport_Language_he: String { return self._s[1125]! }
- public var GroupPermission_Title: String { return self._s[1126]! }
+ public var SocksProxySetup_Hostname: String { return self._s[1120]! }
+ public var ChatSettings_AutoDownloadSettings_OffForAll: String { return self._s[1121]! }
+ public var Compose_NewEncryptedChat: String { return self._s[1122]! }
+ public var Login_CodeFloodError: String { return self._s[1123]! }
+ public var Calls_TabTitle: String { return self._s[1124]! }
+ public var Privacy_ProfilePhoto: String { return self._s[1125]! }
+ public var Passport_Language_he: String { return self._s[1126]! }
+ public var GroupPermission_Title: String { return self._s[1127]! }
public func Channel_AdminLog_MessageGroupPreHistoryHidden(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1127]!, self._r[1127]!, [_0])
+ return formatWithArgumentRanges(self._s[1128]!, self._r[1128]!, [_0])
}
- public var GroupPermission_NoChangeInfo: String { return self._s[1128]! }
- public var ChatList_DeleteForCurrentUser: String { return self._s[1129]! }
- public var Tour_Text1: String { return self._s[1130]! }
- public var Channel_EditAdmin_TransferOwnership: String { return self._s[1131]! }
- public var Month_ShortFebruary: String { return self._s[1132]! }
- public var TwoStepAuth_EmailSkip: String { return self._s[1133]! }
- public var NotificationsSound_Glass: String { return self._s[1134]! }
- public var Appearance_ThemeNightBlue: String { return self._s[1135]! }
- public var CheckoutInfo_Pay: String { return self._s[1136]! }
- public var Invite_LargeRecipientsCountWarning: String { return self._s[1138]! }
- public var Call_CallAgain: String { return self._s[1140]! }
- public var AttachmentMenu_SendAsFile: String { return self._s[1141]! }
- public var AccessDenied_MicrophoneRestricted: String { return self._s[1142]! }
- public var Passport_InvalidPasswordError: String { return self._s[1143]! }
- public var Watch_Message_Game: String { return self._s[1144]! }
- public var Stickers_Install: String { return self._s[1145]! }
- public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1146]! }
- public var Passport_Identity_ResidenceCountry: String { return self._s[1148]! }
- public var Notifications_GroupNotificationsHelp: String { return self._s[1149]! }
- public var AuthSessions_OtherSessions: String { return self._s[1150]! }
- public var Channel_Username_Help: String { return self._s[1151]! }
- public var Camera_Title: String { return self._s[1152]! }
- public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1154]! }
- public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1155]! }
- public var Channel_AdminLog_SendPolls: String { return self._s[1156]! }
- public var Channel_AdminLog_TitleAllEvents: String { return self._s[1157]! }
- public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1158]! }
- public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1159]! }
- public var Conversation_RestrictedStickers: String { return self._s[1160]! }
- public var Notifications_ExceptionsResetToDefaults: String { return self._s[1162]! }
- public var UserInfo_TelegramCall: String { return self._s[1164]! }
- public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1165]! }
- public var CreatePoll_OptionsHeader: String { return self._s[1166]! }
- public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1167]! }
- public var ArchivedChats_IntroTitle1: String { return self._s[1168]! }
- public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1169]! }
- public var Passport_Identity_EditPersonalDetails: String { return self._s[1170]! }
+ public var GroupPermission_NoChangeInfo: String { return self._s[1129]! }
+ public var ChatList_DeleteForCurrentUser: String { return self._s[1130]! }
+ public var Tour_Text1: String { return self._s[1131]! }
+ public var Channel_EditAdmin_TransferOwnership: String { return self._s[1132]! }
+ public var Month_ShortFebruary: String { return self._s[1133]! }
+ public var TwoStepAuth_EmailSkip: String { return self._s[1134]! }
+ public var NotificationsSound_Glass: String { return self._s[1135]! }
+ public var Appearance_ThemeNightBlue: String { return self._s[1136]! }
+ public var CheckoutInfo_Pay: String { return self._s[1137]! }
+ public var Invite_LargeRecipientsCountWarning: String { return self._s[1139]! }
+ public var Call_CallAgain: String { return self._s[1141]! }
+ public var AttachmentMenu_SendAsFile: String { return self._s[1142]! }
+ public var AccessDenied_MicrophoneRestricted: String { return self._s[1143]! }
+ public var Passport_InvalidPasswordError: String { return self._s[1144]! }
+ public var Watch_Message_Game: String { return self._s[1145]! }
+ public var Stickers_Install: String { return self._s[1146]! }
+ public var PrivacyLastSeenSettings_NeverShareWith: String { return self._s[1147]! }
+ public var Passport_Identity_ResidenceCountry: String { return self._s[1149]! }
+ public var Notifications_GroupNotificationsHelp: String { return self._s[1150]! }
+ public var AuthSessions_OtherSessions: String { return self._s[1151]! }
+ public var Channel_Username_Help: String { return self._s[1152]! }
+ public var Camera_Title: String { return self._s[1153]! }
+ public var GroupInfo_SetGroupPhotoDelete: String { return self._s[1155]! }
+ public var Privacy_ProfilePhoto_NeverShareWith_Title: String { return self._s[1156]! }
+ public var Channel_AdminLog_SendPolls: String { return self._s[1157]! }
+ public var Channel_AdminLog_TitleAllEvents: String { return self._s[1158]! }
+ public var Channel_EditAdmin_PermissionInviteMembers: String { return self._s[1159]! }
+ public var Contacts_MemberSearchSectionTitleGroup: String { return self._s[1160]! }
+ public var Conversation_RestrictedStickers: String { return self._s[1161]! }
+ public var Notifications_ExceptionsResetToDefaults: String { return self._s[1163]! }
+ public var UserInfo_TelegramCall: String { return self._s[1165]! }
+ public var TwoStepAuth_SetupResendEmailCode: String { return self._s[1166]! }
+ public var CreatePoll_OptionsHeader: String { return self._s[1167]! }
+ public var SettingsSearch_Synonyms_Data_CallsUseLessData: String { return self._s[1168]! }
+ public var ArchivedChats_IntroTitle1: String { return self._s[1169]! }
+ public var Privacy_GroupsAndChannels_AlwaysAllow_Title: String { return self._s[1170]! }
+ public var Passport_Identity_EditPersonalDetails: String { return self._s[1171]! }
public func Time_PreciseDate_m1(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1171]!, self._r[1171]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[1172]!, self._r[1172]!, [_1, _2, _3])
}
- public var Settings_SaveEditedPhotos: String { return self._s[1172]! }
- public var TwoStepAuth_ConfirmationTitle: String { return self._s[1173]! }
- public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1174]! }
- public var Conversation_MessageDialogRetry: String { return self._s[1175]! }
- public var Conversation_DiscardVoiceMessageAction: String { return self._s[1176]! }
- public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1177]! }
- public var Group_Setup_TypeHeader: String { return self._s[1178]! }
- public var Paint_RecentStickers: String { return self._s[1179]! }
- public var PhotoEditor_GrainTool: String { return self._s[1180]! }
- public var CheckoutInfo_ShippingInfoState: String { return self._s[1181]! }
- public var EmptyGroupInfo_Line4: String { return self._s[1182]! }
- public var Watch_AuthRequired: String { return self._s[1184]! }
+ public var Settings_SaveEditedPhotos: String { return self._s[1173]! }
+ public var TwoStepAuth_ConfirmationTitle: String { return self._s[1174]! }
+ public var Privacy_GroupsAndChannels_NeverAllow_Title: String { return self._s[1175]! }
+ public var Conversation_MessageDialogRetry: String { return self._s[1176]! }
+ public var Conversation_DiscardVoiceMessageAction: String { return self._s[1177]! }
+ public var Permissions_PeopleNearbyTitle_v0: String { return self._s[1178]! }
+ public var Group_Setup_TypeHeader: String { return self._s[1179]! }
+ public var Paint_RecentStickers: String { return self._s[1180]! }
+ public var PhotoEditor_GrainTool: String { return self._s[1181]! }
+ public var CheckoutInfo_ShippingInfoState: String { return self._s[1182]! }
+ public var EmptyGroupInfo_Line4: String { return self._s[1183]! }
+ public var Watch_AuthRequired: String { return self._s[1185]! }
public func Passport_Email_UseTelegramEmail(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1185]!, self._r[1185]!, [_0])
+ return formatWithArgumentRanges(self._s[1186]!, self._r[1186]!, [_0])
}
- public var Conversation_EncryptedDescriptionTitle: String { return self._s[1186]! }
- public var ChannelIntro_Text: String { return self._s[1187]! }
- public var DialogList_DeleteBotConfirmation: String { return self._s[1188]! }
- public var GroupPermission_NoSendMedia: String { return self._s[1189]! }
- public var Calls_AddTab: String { return self._s[1190]! }
- public var Message_ReplyActionButtonShowReceipt: String { return self._s[1191]! }
- public var Channel_AdminLog_EmptyFilterText: String { return self._s[1192]! }
- public var Notification_MessageLifetime1d: String { return self._s[1193]! }
- public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1194]! }
- public var Channel_BanUser_PermissionsHeader: String { return self._s[1195]! }
- public var Passport_Identity_GenderFemale: String { return self._s[1196]! }
- public var BlockedUsers_BlockTitle: String { return self._s[1197]! }
+ public var Conversation_EncryptedDescriptionTitle: String { return self._s[1187]! }
+ public var ChannelIntro_Text: String { return self._s[1188]! }
+ public var DialogList_DeleteBotConfirmation: String { return self._s[1189]! }
+ public var GroupPermission_NoSendMedia: String { return self._s[1190]! }
+ public var Calls_AddTab: String { return self._s[1191]! }
+ public var Message_ReplyActionButtonShowReceipt: String { return self._s[1192]! }
+ public var Channel_AdminLog_EmptyFilterText: String { return self._s[1193]! }
+ public var Notification_MessageLifetime1d: String { return self._s[1194]! }
+ public var Notifications_ChannelNotificationsExceptionsHelp: String { return self._s[1195]! }
+ public var Channel_BanUser_PermissionsHeader: String { return self._s[1196]! }
+ public var Passport_Identity_GenderFemale: String { return self._s[1197]! }
+ public var BlockedUsers_BlockTitle: String { return self._s[1198]! }
public func PUSH_CHANNEL_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1198]!, self._r[1198]!, [_1])
+ return formatWithArgumentRanges(self._s[1199]!, self._r[1199]!, [_1])
}
- public var Weekday_Yesterday: String { return self._s[1199]! }
- public var WallpaperSearch_ColorBlack: String { return self._s[1200]! }
- public var ChatList_ArchiveAction: String { return self._s[1201]! }
- public var AutoNightTheme_Scheduled: String { return self._s[1202]! }
+ public var Weekday_Yesterday: String { return self._s[1200]! }
+ public var WallpaperSearch_ColorBlack: String { return self._s[1201]! }
+ public var ChatList_ArchiveAction: String { return self._s[1202]! }
+ public var AutoNightTheme_Scheduled: String { return self._s[1203]! }
public func Login_PhoneGenericEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String, _ _6: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1203]!, self._r[1203]!, [_1, _2, _3, _4, _5, _6])
+ return formatWithArgumentRanges(self._s[1204]!, self._r[1204]!, [_1, _2, _3, _4, _5, _6])
}
- public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1204]! }
+ public var PrivacyPolicy_DeclineDeleteNow: String { return self._s[1205]! }
public func PUSH_CHAT_JOINED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1205]!, self._r[1205]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1206]!, self._r[1206]!, [_1, _2])
}
- public var CreatePoll_Create: String { return self._s[1206]! }
- public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1207]! }
+ public var CreatePoll_Create: String { return self._s[1207]! }
+ public var Channel_Members_AddBannedErrorAdmin: String { return self._s[1208]! }
public func Notification_CallFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1208]!, self._r[1208]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1209]!, self._r[1209]!, [_1, _2])
}
- public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1209]! }
- public var Notifications_InAppNotificationsSounds: String { return self._s[1211]! }
+ public var Checkout_ErrorProviderAccountInvalid: String { return self._s[1210]! }
+ public var Notifications_InAppNotificationsSounds: String { return self._s[1212]! }
public func PUSH_PINNED_GAME_SCORE(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1212]!, self._r[1212]!, [_1])
+ return formatWithArgumentRanges(self._s[1213]!, self._r[1213]!, [_1])
}
- public var Preview_OpenInInstagram: String { return self._s[1213]! }
- public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1214]! }
+ public var Preview_OpenInInstagram: String { return self._s[1214]! }
+ public var Notification_MessageLifetimeRemovedOutgoing: String { return self._s[1215]! }
public func PUSH_CHAT_ADD_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1215]!, self._r[1215]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[1216]!, self._r[1216]!, [_1, _2, _3])
}
public func Passport_PrivacyPolicy(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1216]!, self._r[1216]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1217]!, self._r[1217]!, [_1, _2])
}
- public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1217]! }
- public var ArchivedChats_IntroText3: String { return self._s[1218]! }
- public var ChatList_UndoArchiveHiddenText: String { return self._s[1219]! }
- public var NetworkUsageSettings_TotalSection: String { return self._s[1220]! }
- public var Channel_Setup_TypePrivateHelp: String { return self._s[1221]! }
+ public var Channel_AdminLog_InfoPanelAlertTitle: String { return self._s[1218]! }
+ public var ArchivedChats_IntroText3: String { return self._s[1219]! }
+ public var ChatList_UndoArchiveHiddenText: String { return self._s[1220]! }
+ public var NetworkUsageSettings_TotalSection: String { return self._s[1221]! }
+ public var Channel_Setup_TypePrivateHelp: String { return self._s[1222]! }
public func PUSH_CHAT_MESSAGE_POLL(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1222]!, self._r[1222]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[1223]!, self._r[1223]!, [_1, _2, _3])
}
- public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1224]! }
- public var FastTwoStepSetup_HintSection: String { return self._s[1225]! }
- public var Wallpaper_PhotoLibrary: String { return self._s[1226]! }
- public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1227]! }
- public var Gif_NoGifsFound: String { return self._s[1228]! }
- public var Watch_LastSeen_WithinAMonth: String { return self._s[1229]! }
- public var GroupInfo_ActionPromote: String { return self._s[1230]! }
- public var PasscodeSettings_SimplePasscode: String { return self._s[1231]! }
- public var GroupInfo_Permissions_Title: String { return self._s[1232]! }
- public var Permissions_ContactsText_v0: String { return self._s[1233]! }
- public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1234]! }
- public var PrivacySettings_DataSettingsHelp: String { return self._s[1237]! }
- public var Passport_FieldEmailHelp: String { return self._s[1238]! }
- public var Passport_Identity_GenderPlaceholder: String { return self._s[1239]! }
- public var Weekday_ShortSaturday: String { return self._s[1240]! }
- public var ContactInfo_PhoneLabelMain: String { return self._s[1241]! }
- public var Watch_Conversation_UserInfo: String { return self._s[1242]! }
- public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1243]! }
- public var PrivacyLastSeenSettings_Title: String { return self._s[1244]! }
- public var Conversation_ShareBotLocationConfirmation: String { return self._s[1245]! }
- public var PhotoEditor_VignetteTool: String { return self._s[1246]! }
- public var Passport_Address_Street1Placeholder: String { return self._s[1247]! }
- public var Passport_Language_et: String { return self._s[1248]! }
- public var AppUpgrade_Running: String { return self._s[1249]! }
- public var Channel_DiscussionGroup_Info: String { return self._s[1251]! }
- public var Passport_Language_bg: String { return self._s[1252]! }
- public var Stickers_NoStickersFound: String { return self._s[1254]! }
+ public var Privacy_GroupsAndChannels_NeverAllow_Placeholder: String { return self._s[1225]! }
+ public var FastTwoStepSetup_HintSection: String { return self._s[1226]! }
+ public var Wallpaper_PhotoLibrary: String { return self._s[1227]! }
+ public var TwoStepAuth_SetupResendEmailCodeAlert: String { return self._s[1228]! }
+ public var Gif_NoGifsFound: String { return self._s[1229]! }
+ public var Watch_LastSeen_WithinAMonth: String { return self._s[1230]! }
+ public var GroupInfo_ActionPromote: String { return self._s[1231]! }
+ public var PasscodeSettings_SimplePasscode: String { return self._s[1232]! }
+ public var GroupInfo_Permissions_Title: String { return self._s[1233]! }
+ public var Permissions_ContactsText_v0: String { return self._s[1234]! }
+ public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedPublicGroups: String { return self._s[1235]! }
+ public var PrivacySettings_DataSettingsHelp: String { return self._s[1238]! }
+ public var Passport_FieldEmailHelp: String { return self._s[1239]! }
+ public func Activity_RemindAboutUser(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[1240]!, self._r[1240]!, [_0])
+ }
+ public var Passport_Identity_GenderPlaceholder: String { return self._s[1241]! }
+ public var Weekday_ShortSaturday: String { return self._s[1242]! }
+ public var ContactInfo_PhoneLabelMain: String { return self._s[1243]! }
+ public var Watch_Conversation_UserInfo: String { return self._s[1244]! }
+ public var CheckoutInfo_ShippingInfoCityPlaceholder: String { return self._s[1245]! }
+ public var PrivacyLastSeenSettings_Title: String { return self._s[1246]! }
+ public var Conversation_ShareBotLocationConfirmation: String { return self._s[1247]! }
+ public var PhotoEditor_VignetteTool: String { return self._s[1248]! }
+ public var Passport_Address_Street1Placeholder: String { return self._s[1249]! }
+ public var Passport_Language_et: String { return self._s[1250]! }
+ public var AppUpgrade_Running: String { return self._s[1251]! }
+ public var Channel_DiscussionGroup_Info: String { return self._s[1253]! }
+ public var Passport_Language_bg: String { return self._s[1254]! }
+ public var Stickers_NoStickersFound: String { return self._s[1256]! }
public func PUSH_CHANNEL_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1256]!, self._r[1256]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1258]!, self._r[1258]!, [_1, _2])
}
- public var Settings_About: String { return self._s[1257]! }
+ public var Settings_About: String { return self._s[1259]! }
public func Channel_AdminLog_MessageRestricted(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1258]!, self._r[1258]!, [_0, _1, _2])
+ return formatWithArgumentRanges(self._s[1260]!, self._r[1260]!, [_0, _1, _2])
}
- public var KeyCommand_NewMessage: String { return self._s[1260]! }
- public var Group_ErrorAddBlocked: String { return self._s[1261]! }
+ public var KeyCommand_NewMessage: String { return self._s[1262]! }
+ public var Group_ErrorAddBlocked: String { return self._s[1263]! }
public func Message_PaymentSent(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1262]!, self._r[1262]!, [_0])
+ return formatWithArgumentRanges(self._s[1264]!, self._r[1264]!, [_0])
}
- public var Map_LocationTitle: String { return self._s[1263]! }
- public var ReportGroupLocation_Title: String { return self._s[1264]! }
- public var CallSettings_UseLessDataLongDescription: String { return self._s[1265]! }
- public var Cache_ClearProgress: String { return self._s[1266]! }
+ public var Map_LocationTitle: String { return self._s[1265]! }
+ public var ReportGroupLocation_Title: String { return self._s[1266]! }
+ public var CallSettings_UseLessDataLongDescription: String { return self._s[1267]! }
+ public var Cache_ClearProgress: String { return self._s[1268]! }
public func Channel_Management_ErrorNotMember(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1267]!, self._r[1267]!, [_0])
+ return formatWithArgumentRanges(self._s[1269]!, self._r[1269]!, [_0])
}
- public var GroupRemoved_AddToGroup: String { return self._s[1268]! }
- public var Passport_UpdateRequiredError: String { return self._s[1269]! }
+ public var GroupRemoved_AddToGroup: String { return self._s[1270]! }
+ public var Passport_UpdateRequiredError: String { return self._s[1271]! }
public func PUSH_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1270]!, self._r[1270]!, [_1])
+ return formatWithArgumentRanges(self._s[1272]!, self._r[1272]!, [_1])
}
- public var Notifications_PermissionsSuppressWarningText: String { return self._s[1272]! }
- public var Passport_Identity_MainPageHelp: String { return self._s[1273]! }
- public var Conversation_StatusKickedFromGroup: String { return self._s[1274]! }
- public var Passport_Language_ka: String { return self._s[1275]! }
- public var Call_Decline: String { return self._s[1276]! }
- public var SocksProxySetup_ProxyEnabled: String { return self._s[1277]! }
+ public var Notifications_PermissionsSuppressWarningText: String { return self._s[1274]! }
+ public var Passport_Identity_MainPageHelp: String { return self._s[1275]! }
+ public var Conversation_StatusKickedFromGroup: String { return self._s[1276]! }
+ public var Passport_Language_ka: String { return self._s[1277]! }
+ public var Call_Decline: String { return self._s[1278]! }
+ public var SocksProxySetup_ProxyEnabled: String { return self._s[1279]! }
public func AuthCode_Alert(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1280]!, self._r[1280]!, [_0])
+ return formatWithArgumentRanges(self._s[1282]!, self._r[1282]!, [_0])
}
- public var CallFeedback_Send: String { return self._s[1281]! }
+ public var CallFeedback_Send: String { return self._s[1283]! }
public func Channel_AdminLog_MessagePromotedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1282]!, self._r[1282]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1284]!, self._r[1284]!, [_1, _2])
}
- public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1283]! }
- public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1285]! }
- public var Passport_DeletePassport: String { return self._s[1286]! }
- public var Appearance_AppIconFilled: String { return self._s[1287]! }
- public var Privacy_Calls_P2PAlways: String { return self._s[1288]! }
- public var Month_ShortDecember: String { return self._s[1289]! }
- public var Channel_AdminLog_CanEditMessages: String { return self._s[1291]! }
+ public var Passport_Phone_UseTelegramNumberHelp: String { return self._s[1285]! }
+ public var SettingsSearch_Synonyms_Data_Title: String { return self._s[1287]! }
+ public var Passport_DeletePassport: String { return self._s[1288]! }
+ public var Appearance_AppIconFilled: String { return self._s[1289]! }
+ public var Privacy_Calls_P2PAlways: String { return self._s[1290]! }
+ public var Month_ShortDecember: String { return self._s[1291]! }
+ public var Channel_AdminLog_CanEditMessages: String { return self._s[1293]! }
public func Contacts_AccessDeniedHelpLandscape(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1292]!, self._r[1292]!, [_0])
+ return formatWithArgumentRanges(self._s[1294]!, self._r[1294]!, [_0])
}
- public var Channel_Stickers_Searching: String { return self._s[1293]! }
- public var Conversation_EncryptedDescription1: String { return self._s[1294]! }
- public var Conversation_EncryptedDescription2: String { return self._s[1295]! }
- public var PasscodeSettings_PasscodeOptions: String { return self._s[1296]! }
- public var Conversation_EncryptedDescription3: String { return self._s[1297]! }
- public var PhotoEditor_SharpenTool: String { return self._s[1298]! }
+ public var Channel_Stickers_Searching: String { return self._s[1295]! }
+ public var Conversation_EncryptedDescription1: String { return self._s[1296]! }
+ public var Conversation_EncryptedDescription2: String { return self._s[1297]! }
+ public var PasscodeSettings_PasscodeOptions: String { return self._s[1298]! }
+ public var Conversation_EncryptedDescription3: String { return self._s[1299]! }
+ public var PhotoEditor_SharpenTool: String { return self._s[1300]! }
public func Conversation_AddNameToContacts(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1299]!, self._r[1299]!, [_0])
+ return formatWithArgumentRanges(self._s[1301]!, self._r[1301]!, [_0])
}
- public var Conversation_EncryptedDescription4: String { return self._s[1301]! }
- public var Channel_Members_AddMembers: String { return self._s[1302]! }
- public var Wallpaper_Search: String { return self._s[1303]! }
- public var Weekday_Friday: String { return self._s[1304]! }
- public var Privacy_ContactsSync: String { return self._s[1305]! }
- public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1306]! }
- public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1307]! }
+ public var Conversation_EncryptedDescription4: String { return self._s[1303]! }
+ public var Channel_Members_AddMembers: String { return self._s[1304]! }
+ public var Wallpaper_Search: String { return self._s[1305]! }
+ public var Weekday_Friday: String { return self._s[1306]! }
+ public var Privacy_ContactsSync: String { return self._s[1307]! }
+ public var SettingsSearch_Synonyms_Privacy_Data_ContactsReset: String { return self._s[1308]! }
+ public var ApplyLanguage_ChangeLanguageAction: String { return self._s[1309]! }
public func Channel_Management_RestrictedBy(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1308]!, self._r[1308]!, [_0])
+ return formatWithArgumentRanges(self._s[1310]!, self._r[1310]!, [_0])
}
- public var GroupInfo_Permissions_Removed: String { return self._s[1309]! }
- public var Passport_Identity_GenderMale: String { return self._s[1310]! }
+ public var GroupInfo_Permissions_Removed: String { return self._s[1311]! }
+ public var Passport_Identity_GenderMale: String { return self._s[1312]! }
public func Call_StatusBar(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1311]!, self._r[1311]!, [_0])
+ return formatWithArgumentRanges(self._s[1313]!, self._r[1313]!, [_0])
}
- public var Notifications_PermissionsKeepDisabled: String { return self._s[1312]! }
- public var Conversation_JumpToDate: String { return self._s[1313]! }
- public var Contacts_GlobalSearch: String { return self._s[1314]! }
- public var AutoDownloadSettings_ResetHelp: String { return self._s[1315]! }
- public var SettingsSearch_Synonyms_FAQ: String { return self._s[1316]! }
- public var Profile_MessageLifetime1d: String { return self._s[1317]! }
+ public var Notifications_PermissionsKeepDisabled: String { return self._s[1314]! }
+ public var Conversation_JumpToDate: String { return self._s[1315]! }
+ public var Contacts_GlobalSearch: String { return self._s[1316]! }
+ public var AutoDownloadSettings_ResetHelp: String { return self._s[1317]! }
+ public var SettingsSearch_Synonyms_FAQ: String { return self._s[1318]! }
+ public var Profile_MessageLifetime1d: String { return self._s[1319]! }
public func MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1318]!, self._r[1318]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1320]!, self._r[1320]!, [_1, _2])
}
- public var StickerPack_BuiltinPackName: String { return self._s[1321]! }
+ public var StickerPack_BuiltinPackName: String { return self._s[1323]! }
public func PUSH_CHAT_MESSAGE_AUDIO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1322]!, self._r[1322]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1324]!, self._r[1324]!, [_1, _2])
}
- public var Passport_InfoTitle: String { return self._s[1324]! }
- public var Notifications_PermissionsUnreachableText: String { return self._s[1325]! }
+ public var Passport_InfoTitle: String { return self._s[1326]! }
+ public var Notifications_PermissionsUnreachableText: String { return self._s[1327]! }
public func NetworkUsageSettings_CellularUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1329]!, self._r[1329]!, [_0])
+ return formatWithArgumentRanges(self._s[1331]!, self._r[1331]!, [_0])
}
public func PUSH_CHAT_MESSAGE_GEO(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1330]!, self._r[1330]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1332]!, self._r[1332]!, [_1, _2])
}
- public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1331]! }
- public var Profile_BotInfo: String { return self._s[1332]! }
- public var Watch_Compose_CreateMessage: String { return self._s[1333]! }
- public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1334]! }
- public var Month_ShortNovember: String { return self._s[1335]! }
- public var Conversation_ScamWarning: String { return self._s[1336]! }
- public var Wallpaper_SetCustomBackground: String { return self._s[1337]! }
- public var Passport_Identity_TranslationsHelp: String { return self._s[1338]! }
- public var NotificationsSound_Chime: String { return self._s[1339]! }
- public var Passport_Language_ko: String { return self._s[1341]! }
- public var InviteText_URL: String { return self._s[1342]! }
- public var TextFormat_Monospace: String { return self._s[1343]! }
+ public var Passport_Address_TypePassportRegistrationUploadScan: String { return self._s[1333]! }
+ public var Profile_BotInfo: String { return self._s[1334]! }
+ public var Watch_Compose_CreateMessage: String { return self._s[1335]! }
+ public var AutoDownloadSettings_VoiceMessagesInfo: String { return self._s[1336]! }
+ public var Month_ShortNovember: String { return self._s[1337]! }
+ public var Conversation_ScamWarning: String { return self._s[1338]! }
+ public var Wallpaper_SetCustomBackground: String { return self._s[1339]! }
+ public var Passport_Identity_TranslationsHelp: String { return self._s[1340]! }
+ public var NotificationsSound_Chime: String { return self._s[1341]! }
+ public var Passport_Language_ko: String { return self._s[1343]! }
+ public var InviteText_URL: String { return self._s[1344]! }
+ public var TextFormat_Monospace: String { return self._s[1345]! }
public func Time_PreciseDate_m11(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1344]!, self._r[1344]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[1346]!, self._r[1346]!, [_1, _2, _3])
}
public func Login_WillSendSms(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1345]!, self._r[1345]!, [_0])
+ return formatWithArgumentRanges(self._s[1347]!, self._r[1347]!, [_0])
}
public func Watch_Time_ShortWeekdayAt(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1346]!, self._r[1346]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1348]!, self._r[1348]!, [_1, _2])
}
- public var Passport_InfoLearnMore: String { return self._s[1348]! }
- public var TwoStepAuth_EmailPlaceholder: String { return self._s[1349]! }
- public var Passport_Identity_AddIdentityCard: String { return self._s[1350]! }
- public var Your_card_has_expired: String { return self._s[1351]! }
- public var StickerPacksSettings_StickerPacksSection: String { return self._s[1352]! }
- public var GroupInfo_InviteLink_Help: String { return self._s[1353]! }
- public var Conversation_Report: String { return self._s[1357]! }
- public var Notifications_MessageNotificationsSound: String { return self._s[1358]! }
- public var Notification_MessageLifetime1m: String { return self._s[1359]! }
- public var Privacy_ContactsTitle: String { return self._s[1360]! }
- public var Conversation_ShareMyContactInfo: String { return self._s[1361]! }
- public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1362]! }
- public var Channel_Members_Title: String { return self._s[1363]! }
- public var Map_OpenInWaze: String { return self._s[1364]! }
- public var Login_PhoneBannedError: String { return self._s[1365]! }
+ public var Passport_InfoLearnMore: String { return self._s[1350]! }
+ public var TwoStepAuth_EmailPlaceholder: String { return self._s[1351]! }
+ public var Passport_Identity_AddIdentityCard: String { return self._s[1352]! }
+ public var Your_card_has_expired: String { return self._s[1353]! }
+ public var StickerPacksSettings_StickerPacksSection: String { return self._s[1354]! }
+ public var GroupInfo_InviteLink_Help: String { return self._s[1355]! }
+ public var Conversation_Report: String { return self._s[1359]! }
+ public var Notifications_MessageNotificationsSound: String { return self._s[1360]! }
+ public var Notification_MessageLifetime1m: String { return self._s[1361]! }
+ public var Privacy_ContactsTitle: String { return self._s[1362]! }
+ public var Conversation_ShareMyContactInfo: String { return self._s[1363]! }
+ public var ChannelMembers_WhoCanAddMembersAdminsHelp: String { return self._s[1364]! }
+ public var Channel_Members_Title: String { return self._s[1365]! }
+ public var Map_OpenInWaze: String { return self._s[1366]! }
+ public var Login_PhoneBannedError: String { return self._s[1367]! }
public func LiveLocationUpdated_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1366]!, self._r[1366]!, [_0])
+ return formatWithArgumentRanges(self._s[1368]!, self._r[1368]!, [_0])
}
- public var Group_Management_AddModeratorHelp: String { return self._s[1367]! }
- public var AutoDownloadSettings_WifiTitle: String { return self._s[1368]! }
- public var Common_OK: String { return self._s[1369]! }
- public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1370]! }
- public var Cache_Music: String { return self._s[1371]! }
- public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1372]! }
- public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1373]! }
- public var TwoStepAuth_HintPlaceholder: String { return self._s[1374]! }
+ public var Group_Management_AddModeratorHelp: String { return self._s[1369]! }
+ public var AutoDownloadSettings_WifiTitle: String { return self._s[1370]! }
+ public var Common_OK: String { return self._s[1371]! }
+ public var Passport_Address_TypeBankStatementUploadScan: String { return self._s[1372]! }
+ public var Cache_Music: String { return self._s[1373]! }
+ public var SettingsSearch_Synonyms_EditProfile_PhoneNumber: String { return self._s[1374]! }
+ public var PasscodeSettings_UnlockWithTouchId: String { return self._s[1375]! }
+ public var TwoStepAuth_HintPlaceholder: String { return self._s[1376]! }
public func PUSH_PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1375]!, self._r[1375]!, [_1])
+ return formatWithArgumentRanges(self._s[1377]!, self._r[1377]!, [_1])
}
public func Passport_RequestHeader(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1376]!, self._r[1376]!, [_0])
+ return formatWithArgumentRanges(self._s[1378]!, self._r[1378]!, [_0])
}
- public var Watch_MessageView_ViewOnPhone: String { return self._s[1378]! }
- public var Privacy_Calls_CustomShareHelp: String { return self._s[1379]! }
- public var ChangePhoneNumberNumber_Title: String { return self._s[1381]! }
- public var State_ConnectingToProxyInfo: String { return self._s[1382]! }
- public var Message_VideoMessage: String { return self._s[1384]! }
- public var ChannelInfo_DeleteChannel: String { return self._s[1385]! }
- public var ContactInfo_PhoneLabelOther: String { return self._s[1386]! }
- public var Channel_EditAdmin_CannotEdit: String { return self._s[1387]! }
- public var Passport_DeleteAddressConfirmation: String { return self._s[1388]! }
- public var WallpaperPreview_SwipeBottomText: String { return self._s[1389]! }
- public var Activity_RecordingAudio: String { return self._s[1390]! }
- public var SettingsSearch_Synonyms_Watch: String { return self._s[1391]! }
- public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1392]! }
+ public var Watch_MessageView_ViewOnPhone: String { return self._s[1380]! }
+ public var Privacy_Calls_CustomShareHelp: String { return self._s[1381]! }
+ public var ChangePhoneNumberNumber_Title: String { return self._s[1383]! }
+ public var State_ConnectingToProxyInfo: String { return self._s[1384]! }
+ public var Message_VideoMessage: String { return self._s[1386]! }
+ public var ChannelInfo_DeleteChannel: String { return self._s[1387]! }
+ public var ContactInfo_PhoneLabelOther: String { return self._s[1388]! }
+ public var Channel_EditAdmin_CannotEdit: String { return self._s[1389]! }
+ public var Passport_DeleteAddressConfirmation: String { return self._s[1390]! }
+ public var WallpaperPreview_SwipeBottomText: String { return self._s[1391]! }
+ public var Activity_RecordingAudio: String { return self._s[1392]! }
+ public var SettingsSearch_Synonyms_Watch: String { return self._s[1393]! }
+ public var PasscodeSettings_TryAgainIn1Minute: String { return self._s[1394]! }
public func Notification_ChangedGroupName(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1394]!, self._r[1394]!, [_0, _1])
+ return formatWithArgumentRanges(self._s[1396]!, self._r[1396]!, [_0, _1])
}
public func EmptyGroupInfo_Line1(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1398]!, self._r[1398]!, [_0])
+ return formatWithArgumentRanges(self._s[1400]!, self._r[1400]!, [_0])
}
- public var Conversation_ApplyLocalization: String { return self._s[1399]! }
- public var UserInfo_AddPhone: String { return self._s[1400]! }
- public var Map_ShareLiveLocationHelp: String { return self._s[1401]! }
+ public var Conversation_ApplyLocalization: String { return self._s[1401]! }
+ public var UserInfo_AddPhone: String { return self._s[1402]! }
+ public var Map_ShareLiveLocationHelp: String { return self._s[1403]! }
public func Passport_Identity_NativeNameGenericHelp(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1402]!, self._r[1402]!, [_0])
+ return formatWithArgumentRanges(self._s[1404]!, self._r[1404]!, [_0])
}
- public var Passport_Scans: String { return self._s[1404]! }
- public var BlockedUsers_Unblock: String { return self._s[1405]! }
+ public var Passport_Scans: String { return self._s[1406]! }
+ public var BlockedUsers_Unblock: String { return self._s[1407]! }
public func PUSH_ENCRYPTION_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1406]!, self._r[1406]!, [_1])
+ return formatWithArgumentRanges(self._s[1408]!, self._r[1408]!, [_1])
}
- public var Channel_Management_LabelCreator: String { return self._s[1407]! }
- public var Conversation_ReportSpamAndLeave: String { return self._s[1408]! }
- public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1409]! }
- public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1410]! }
- public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1411]! }
+ public var Channel_Management_LabelCreator: String { return self._s[1409]! }
+ public var Conversation_ReportSpamAndLeave: String { return self._s[1410]! }
+ public var SettingsSearch_Synonyms_EditProfile_Bio: String { return self._s[1411]! }
+ public var ChatList_UndoArchiveMultipleTitle: String { return self._s[1412]! }
+ public var Passport_Identity_NativeNameGenericTitle: String { return self._s[1413]! }
public func Login_EmailPhoneBody(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1412]!, self._r[1412]!, [_0, _1, _2])
+ return formatWithArgumentRanges(self._s[1414]!, self._r[1414]!, [_0, _1, _2])
}
- public var Login_PhoneNumberHelp: String { return self._s[1413]! }
- public var LastSeen_ALongTimeAgo: String { return self._s[1414]! }
- public var Channel_AdminLog_CanPinMessages: String { return self._s[1415]! }
- public var ChannelIntro_CreateChannel: String { return self._s[1416]! }
- public var Conversation_UnreadMessages: String { return self._s[1417]! }
- public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1418]! }
- public var Channel_AdminLog_EmptyText: String { return self._s[1419]! }
- public var Notification_GroupActivated: String { return self._s[1420]! }
- public var NotificationSettings_ContactJoinedInfo: String { return self._s[1421]! }
+ public var Login_PhoneNumberHelp: String { return self._s[1415]! }
+ public var LastSeen_ALongTimeAgo: String { return self._s[1416]! }
+ public var Channel_AdminLog_CanPinMessages: String { return self._s[1417]! }
+ public var ChannelIntro_CreateChannel: String { return self._s[1418]! }
+ public var Conversation_UnreadMessages: String { return self._s[1419]! }
+ public var SettingsSearch_Synonyms_Stickers_ArchivedPacks: String { return self._s[1420]! }
+ public var Channel_AdminLog_EmptyText: String { return self._s[1421]! }
+ public var Notification_GroupActivated: String { return self._s[1422]! }
+ public var NotificationSettings_ContactJoinedInfo: String { return self._s[1423]! }
public func Notification_PinnedContactMessage(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1422]!, self._r[1422]!, [_0])
+ return formatWithArgumentRanges(self._s[1424]!, self._r[1424]!, [_0])
}
public func DownloadingStatus(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1423]!, self._r[1423]!, [_0, _1])
+ return formatWithArgumentRanges(self._s[1425]!, self._r[1425]!, [_0, _1])
}
- public var GroupInfo_ConvertToSupergroup: String { return self._s[1425]! }
+ public var GroupInfo_ConvertToSupergroup: String { return self._s[1427]! }
public func PrivacyPolicy_AgeVerificationMessage(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1426]!, self._r[1426]!, [_0])
+ return formatWithArgumentRanges(self._s[1428]!, self._r[1428]!, [_0])
}
- public var Undo_DeletedChannel: String { return self._s[1427]! }
- public var CallFeedback_AddComment: String { return self._s[1428]! }
+ public var Undo_DeletedChannel: String { return self._s[1429]! }
+ public var CallFeedback_AddComment: String { return self._s[1430]! }
public func Conversation_OpenBotLinkAllowMessages(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1429]!, self._r[1429]!, [_0])
- }
- public var Document_TargetConfirmationFormat: String { return self._s[1430]! }
- public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) {
return formatWithArgumentRanges(self._s[1431]!, self._r[1431]!, [_0])
}
- public var LogoutOptions_SetPasscodeTitle: String { return self._s[1432]! }
+ public var Document_TargetConfirmationFormat: String { return self._s[1432]! }
+ public func Call_StatusOngoing(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[1433]!, self._r[1433]!, [_0])
+ }
+ public var LogoutOptions_SetPasscodeTitle: String { return self._s[1434]! }
public func PUSH_CHAT_MESSAGE_GAME_SCORE(_ _1: String, _ _2: String, _ _3: String, _ _4: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1433]!, self._r[1433]!, [_1, _2, _3, _4])
+ return formatWithArgumentRanges(self._s[1435]!, self._r[1435]!, [_1, _2, _3, _4])
}
- public var Contacts_SortByName: String { return self._s[1434]! }
- public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1435]! }
+ public var Contacts_SortByName: String { return self._s[1436]! }
+ public var SettingsSearch_Synonyms_Privacy_Forwards: String { return self._s[1437]! }
public func CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1437]!, self._r[1437]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[1439]!, self._r[1439]!, [_1, _2, _3])
}
- public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1438]! }
- public var Conversation_ClearSelfHistory: String { return self._s[1439]! }
- public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1440]! }
- public var PasscodeSettings_DoNotMatch: String { return self._s[1441]! }
- public var Stickers_SuggestNone: String { return self._s[1442]! }
- public var ChatSettings_Cache: String { return self._s[1443]! }
- public var Settings_SaveIncomingPhotos: String { return self._s[1444]! }
- public var Media_ShareThisPhoto: String { return self._s[1445]! }
- public var InfoPlist_NSContactsUsageDescription: String { return self._s[1446]! }
- public var Conversation_ContextMenuCopyLink: String { return self._s[1447]! }
- public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1448]! }
- public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1449]! }
- public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1450]! }
- public var Permissions_CellularDataTitle_v0: String { return self._s[1451]! }
- public var WallpaperSearch_ColorWhite: String { return self._s[1453]! }
- public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1454]! }
- public var Conversation_ErrorInaccessibleMessage: String { return self._s[1455]! }
- public var Map_OpenIn: String { return self._s[1456]! }
+ public var Notification_Exceptions_RemoveFromExceptions: String { return self._s[1440]! }
+ public var Conversation_ClearSelfHistory: String { return self._s[1441]! }
+ public var Checkout_NewCard_PostcodePlaceholder: String { return self._s[1442]! }
+ public var PasscodeSettings_DoNotMatch: String { return self._s[1443]! }
+ public var Stickers_SuggestNone: String { return self._s[1444]! }
+ public var ChatSettings_Cache: String { return self._s[1445]! }
+ public var Settings_SaveIncomingPhotos: String { return self._s[1446]! }
+ public var Media_ShareThisPhoto: String { return self._s[1447]! }
+ public var InfoPlist_NSContactsUsageDescription: String { return self._s[1448]! }
+ public var Conversation_ContextMenuCopyLink: String { return self._s[1449]! }
+ public var PrivacyPolicy_AgeVerificationTitle: String { return self._s[1450]! }
+ public var SettingsSearch_Synonyms_Stickers_Masks: String { return self._s[1451]! }
+ public var TwoStepAuth_SetupPasswordEnterPasswordNew: String { return self._s[1452]! }
+ public var Permissions_CellularDataTitle_v0: String { return self._s[1453]! }
+ public var WallpaperSearch_ColorWhite: String { return self._s[1455]! }
+ public var Channel_AdminLog_DefaultRestrictionsUpdated: String { return self._s[1456]! }
+ public var Conversation_ErrorInaccessibleMessage: String { return self._s[1457]! }
+ public var Map_OpenIn: String { return self._s[1458]! }
public func PUSH_PHONE_CALL_MISSED(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1459]!, self._r[1459]!, [_1])
+ return formatWithArgumentRanges(self._s[1461]!, self._r[1461]!, [_1])
}
public func ChannelInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1460]!, self._r[1460]!, [_0])
+ return formatWithArgumentRanges(self._s[1462]!, self._r[1462]!, [_0])
}
- public var MessagePoll_LabelClosed: String { return self._s[1461]! }
- public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1463]! }
- public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1464]! }
- public var UserInfo_FirstNamePlaceholder: String { return self._s[1465]! }
- public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1466]! }
- public var Login_SelectCountry_Title: String { return self._s[1467]! }
- public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1468]! }
+ public var MessagePoll_LabelClosed: String { return self._s[1463]! }
+ public var GroupPermission_PermissionGloballyDisabled: String { return self._s[1465]! }
+ public var Passport_Identity_MiddleNamePlaceholder: String { return self._s[1466]! }
+ public var UserInfo_FirstNamePlaceholder: String { return self._s[1467]! }
+ public var PrivacyLastSeenSettings_WhoCanSeeMyTimestamp: String { return self._s[1468]! }
+ public var Login_SelectCountry_Title: String { return self._s[1469]! }
+ public var Channel_EditAdmin_PermissionBanUsers: String { return self._s[1470]! }
public func Conversation_OpenBotLinkLogin(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1469]!, self._r[1469]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1471]!, self._r[1471]!, [_1, _2])
}
- public var Channel_AdminLog_ChangeInfo: String { return self._s[1470]! }
- public var Watch_Suggestion_BRB: String { return self._s[1471]! }
- public var Passport_Identity_EditIdentityCard: String { return self._s[1472]! }
- public var Contacts_PermissionsTitle: String { return self._s[1473]! }
- public var Conversation_RestrictedInline: String { return self._s[1474]! }
- public var StickerPack_ViewPack: String { return self._s[1476]! }
+ public var Channel_AdminLog_ChangeInfo: String { return self._s[1472]! }
+ public var Watch_Suggestion_BRB: String { return self._s[1473]! }
+ public var Passport_Identity_EditIdentityCard: String { return self._s[1474]! }
+ public var Contacts_PermissionsTitle: String { return self._s[1475]! }
+ public var Conversation_RestrictedInline: String { return self._s[1476]! }
+ public var StickerPack_ViewPack: String { return self._s[1478]! }
public func Update_AppVersion(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1477]!, self._r[1477]!, [_0])
+ return formatWithArgumentRanges(self._s[1479]!, self._r[1479]!, [_0])
}
- public var Compose_NewChannel: String { return self._s[1479]! }
- public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1482]! }
- public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1484]! }
- public var Channel_Info_Stickers: String { return self._s[1485]! }
- public var AutoNightTheme_PreferredTheme: String { return self._s[1486]! }
- public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1487]! }
- public var Passport_DeletePersonalDetails: String { return self._s[1488]! }
- public var LogoutOptions_AddAccountTitle: String { return self._s[1489]! }
- public var Channel_DiscussionGroupInfo: String { return self._s[1490]! }
- public var Conversation_SearchNoResults: String { return self._s[1492]! }
- public var MessagePoll_LabelAnonymous: String { return self._s[1493]! }
- public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1494]! }
- public var Login_Code: String { return self._s[1495]! }
- public var Watch_Suggestion_WhatsUp: String { return self._s[1496]! }
- public var Weekday_ShortThursday: String { return self._s[1497]! }
- public var Resolve_ErrorNotFound: String { return self._s[1499]! }
- public var LastSeen_Offline: String { return self._s[1500]! }
- public var PeopleNearby_NoMembers: String { return self._s[1501]! }
- public var GroupPermission_AddMembersNotAvailable: String { return self._s[1502]! }
- public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1503]! }
- public var GroupInfo_Title: String { return self._s[1504]! }
- public var NotificationsSound_Note: String { return self._s[1505]! }
- public var Conversation_EditingMessagePanelTitle: String { return self._s[1506]! }
- public var Watch_Message_Poll: String { return self._s[1507]! }
- public var Privacy_Calls: String { return self._s[1508]! }
- public var Month_ShortAugust: String { return self._s[1509]! }
- public var TwoStepAuth_SetPasswordHelp: String { return self._s[1510]! }
- public var Notifications_Reset: String { return self._s[1511]! }
- public var Conversation_Pin: String { return self._s[1512]! }
- public var Passport_Language_lv: String { return self._s[1513]! }
- public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1514]! }
- public var BlockedUsers_Info: String { return self._s[1515]! }
- public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1517]! }
- public var Watch_Conversation_Unblock: String { return self._s[1519]! }
+ public var Compose_NewChannel: String { return self._s[1481]! }
+ public var ChatSettings_AutoDownloadSettings_TypePhoto: String { return self._s[1484]! }
+ public var Conversation_ReportSpamGroupConfirmation: String { return self._s[1486]! }
+ public var Channel_Info_Stickers: String { return self._s[1487]! }
+ public var AutoNightTheme_PreferredTheme: String { return self._s[1488]! }
+ public var PrivacyPolicy_AgeVerificationAgree: String { return self._s[1489]! }
+ public var Passport_DeletePersonalDetails: String { return self._s[1490]! }
+ public var LogoutOptions_AddAccountTitle: String { return self._s[1491]! }
+ public var Channel_DiscussionGroupInfo: String { return self._s[1492]! }
+ public var Conversation_SearchNoResults: String { return self._s[1494]! }
+ public var MessagePoll_LabelAnonymous: String { return self._s[1495]! }
+ public var Channel_Members_AddAdminErrorNotAMember: String { return self._s[1496]! }
+ public var Login_Code: String { return self._s[1497]! }
+ public var Watch_Suggestion_WhatsUp: String { return self._s[1498]! }
+ public var Weekday_ShortThursday: String { return self._s[1499]! }
+ public var Resolve_ErrorNotFound: String { return self._s[1501]! }
+ public var LastSeen_Offline: String { return self._s[1502]! }
+ public var PeopleNearby_NoMembers: String { return self._s[1503]! }
+ public var GroupPermission_AddMembersNotAvailable: String { return self._s[1504]! }
+ public var Privacy_Calls_AlwaysAllow_Title: String { return self._s[1505]! }
+ public var GroupInfo_Title: String { return self._s[1506]! }
+ public var NotificationsSound_Note: String { return self._s[1507]! }
+ public var Conversation_EditingMessagePanelTitle: String { return self._s[1508]! }
+ public var Watch_Message_Poll: String { return self._s[1509]! }
+ public var Privacy_Calls: String { return self._s[1510]! }
+ public var Month_ShortAugust: String { return self._s[1511]! }
+ public var TwoStepAuth_SetPasswordHelp: String { return self._s[1512]! }
+ public var Notifications_Reset: String { return self._s[1513]! }
+ public var Conversation_Pin: String { return self._s[1514]! }
+ public var Passport_Language_lv: String { return self._s[1515]! }
+ public var Permissions_PeopleNearbyAllowInSettings_v0: String { return self._s[1516]! }
+ public var BlockedUsers_Info: String { return self._s[1517]! }
+ public var SettingsSearch_Synonyms_Data_AutoplayVideos: String { return self._s[1519]! }
+ public var Watch_Conversation_Unblock: String { return self._s[1521]! }
public func Time_MonthOfYear_m9(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1520]!, self._r[1520]!, [_0])
+ return formatWithArgumentRanges(self._s[1522]!, self._r[1522]!, [_0])
}
- public var CloudStorage_Title: String { return self._s[1521]! }
- public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1522]! }
+ public var CloudStorage_Title: String { return self._s[1523]! }
+ public var GroupInfo_DeleteAndExitConfirmation: String { return self._s[1524]! }
public func NetworkUsageSettings_WifiUsageSince(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1523]!, self._r[1523]!, [_0])
+ return formatWithArgumentRanges(self._s[1525]!, self._r[1525]!, [_0])
}
- public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1524]! }
- public var Watch_Suggestion_OnMyWay: String { return self._s[1525]! }
- public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1526]! }
- public var Passport_Address_EditBankStatement: String { return self._s[1527]! }
+ public var Channel_AdminLogFilter_AdminsTitle: String { return self._s[1526]! }
+ public var Watch_Suggestion_OnMyWay: String { return self._s[1527]! }
+ public var TwoStepAuth_RecoveryEmailTitle: String { return self._s[1528]! }
+ public var Passport_Address_EditBankStatement: String { return self._s[1529]! }
public func Channel_AdminLog_MessageChangedUnlinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1528]!, self._r[1528]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1530]!, self._r[1530]!, [_1, _2])
}
- public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1529]! }
- public var ShareMenu_Comment: String { return self._s[1530]! }
- public var Permissions_ContactsTitle_v0: String { return self._s[1531]! }
- public var Notifications_PermissionsTitle: String { return self._s[1532]! }
- public var GroupPermission_NoSendLinks: String { return self._s[1533]! }
- public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1534]! }
- public var Settings_Support: String { return self._s[1535]! }
- public var Notifications_ChannelNotificationsSound: String { return self._s[1536]! }
- public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1537]! }
- public var Privacy_Forwards_Preview: String { return self._s[1538]! }
- public var GroupPermission_ApplyAlertAction: String { return self._s[1539]! }
- public var Watch_Stickers_StickerPacks: String { return self._s[1540]! }
- public var Common_Select: String { return self._s[1542]! }
- public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1543]! }
- public var WallpaperSearch_ColorGray: String { return self._s[1545]! }
- public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1546]! }
- public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1547]! }
- public var Appearance_PreviewReplyAuthor: String { return self._s[1548]! }
- public var TwoStepAuth_RecoveryTitle: String { return self._s[1549]! }
- public var Widget_AuthRequired: String { return self._s[1550]! }
- public var Camera_FlashOn: String { return self._s[1551]! }
- public var Channel_Stickers_NotFoundHelp: String { return self._s[1552]! }
- public var Watch_Suggestion_OK: String { return self._s[1553]! }
+ public var ChatSettings_DownloadInBackgroundInfo: String { return self._s[1531]! }
+ public var ShareMenu_Comment: String { return self._s[1532]! }
+ public var Permissions_ContactsTitle_v0: String { return self._s[1533]! }
+ public var Notifications_PermissionsTitle: String { return self._s[1534]! }
+ public var GroupPermission_NoSendLinks: String { return self._s[1535]! }
+ public var Privacy_Forwards_NeverAllow_Title: String { return self._s[1536]! }
+ public var Settings_Support: String { return self._s[1537]! }
+ public var Notifications_ChannelNotificationsSound: String { return self._s[1538]! }
+ public var SettingsSearch_Synonyms_Data_AutoDownloadReset: String { return self._s[1539]! }
+ public var Privacy_Forwards_Preview: String { return self._s[1540]! }
+ public var GroupPermission_ApplyAlertAction: String { return self._s[1541]! }
+ public var Watch_Stickers_StickerPacks: String { return self._s[1542]! }
+ public var Common_Select: String { return self._s[1544]! }
+ public var CheckoutInfo_ErrorEmailInvalid: String { return self._s[1545]! }
+ public var WallpaperSearch_ColorGray: String { return self._s[1547]! }
+ public var ChatAdmins_AllMembersAreAdminsOffHelp: String { return self._s[1548]! }
+ public var PasscodeSettings_AutoLock_IfAwayFor_5hours: String { return self._s[1549]! }
+ public var Appearance_PreviewReplyAuthor: String { return self._s[1550]! }
+ public var TwoStepAuth_RecoveryTitle: String { return self._s[1551]! }
+ public var Widget_AuthRequired: String { return self._s[1552]! }
+ public var Camera_FlashOn: String { return self._s[1553]! }
+ public var Channel_Stickers_NotFoundHelp: String { return self._s[1554]! }
+ public var Watch_Suggestion_OK: String { return self._s[1555]! }
public func Username_LinkHint(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1555]!, self._r[1555]!, [_0])
- }
- public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) {
return formatWithArgumentRanges(self._s[1557]!, self._r[1557]!, [_0])
}
- public var DialogList_AdLabel: String { return self._s[1558]! }
- public var WatchRemote_NotificationText: String { return self._s[1559]! }
- public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1560]! }
- public var Conversation_ReportSpam: String { return self._s[1561]! }
- public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1562]! }
- public var Settings_LogoutConfirmationTitle: String { return self._s[1564]! }
- public var PhoneLabel_Title: String { return self._s[1565]! }
- public var Passport_Address_EditRentalAgreement: String { return self._s[1566]! }
- public var Settings_ChangePhoneNumber: String { return self._s[1567]! }
- public var Notifications_ExceptionsTitle: String { return self._s[1568]! }
- public var Notifications_AlertTones: String { return self._s[1569]! }
- public var Call_ReportIncludeLogDescription: String { return self._s[1570]! }
- public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1571]! }
- public var AutoDownloadSettings_PrivateChats: String { return self._s[1572]! }
- public var TwoStepAuth_AddHintTitle: String { return self._s[1574]! }
- public var ReportPeer_ReasonOther: String { return self._s[1575]! }
- public var KeyCommand_ScrollDown: String { return self._s[1577]! }
+ public func Notification_PinnedLiveLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[1559]!, self._r[1559]!, [_0])
+ }
+ public var DialogList_AdLabel: String { return self._s[1560]! }
+ public var WatchRemote_NotificationText: String { return self._s[1561]! }
+ public var SettingsSearch_Synonyms_Notifications_MessageNotificationsAlert: String { return self._s[1562]! }
+ public var Conversation_ReportSpam: String { return self._s[1563]! }
+ public var SettingsSearch_Synonyms_Privacy_Data_TopPeers: String { return self._s[1564]! }
+ public var Settings_LogoutConfirmationTitle: String { return self._s[1566]! }
+ public var PhoneLabel_Title: String { return self._s[1567]! }
+ public var Passport_Address_EditRentalAgreement: String { return self._s[1568]! }
+ public var Settings_ChangePhoneNumber: String { return self._s[1569]! }
+ public var Notifications_ExceptionsTitle: String { return self._s[1570]! }
+ public var Notifications_AlertTones: String { return self._s[1571]! }
+ public var Call_ReportIncludeLogDescription: String { return self._s[1572]! }
+ public var SettingsSearch_Synonyms_Notifications_ResetAllNotifications: String { return self._s[1573]! }
+ public var AutoDownloadSettings_PrivateChats: String { return self._s[1574]! }
+ public var TwoStepAuth_AddHintTitle: String { return self._s[1576]! }
+ public var ReportPeer_ReasonOther: String { return self._s[1577]! }
+ public var KeyCommand_ScrollDown: String { return self._s[1579]! }
public func Login_BannedPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1578]!, self._r[1578]!, [_0])
+ return formatWithArgumentRanges(self._s[1580]!, self._r[1580]!, [_0])
}
- public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1579]! }
- public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1580]! }
- public var AuthSessions_LogOut: String { return self._s[1581]! }
- public var Passport_Identity_TypeInternalPassport: String { return self._s[1582]! }
- public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1583]! }
- public var Passport_Phone_Title: String { return self._s[1584]! }
- public var Settings_PhoneNumber: String { return self._s[1585]! }
- public var NotificationsSound_Alert: String { return self._s[1586]! }
- public var WebSearch_SearchNoResults: String { return self._s[1587]! }
- public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1589]! }
- public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1590]! }
- public var SettingsSearch_Synonyms_Passport: String { return self._s[1591]! }
- public var PhotoEditor_CurvesTool: String { return self._s[1592]! }
- public var Checkout_PaymentMethod: String { return self._s[1594]! }
+ public var NetworkUsageSettings_MediaVideoDataSection: String { return self._s[1581]! }
+ public var ChannelInfo_DeleteGroupConfirmation: String { return self._s[1582]! }
+ public var AuthSessions_LogOut: String { return self._s[1583]! }
+ public var Passport_Identity_TypeInternalPassport: String { return self._s[1584]! }
+ public var ChatSettings_AutoDownloadVoiceMessages: String { return self._s[1585]! }
+ public var Passport_Phone_Title: String { return self._s[1586]! }
+ public var Settings_PhoneNumber: String { return self._s[1587]! }
+ public var NotificationsSound_Alert: String { return self._s[1588]! }
+ public var WebSearch_SearchNoResults: String { return self._s[1589]! }
+ public var Privacy_ProfilePhoto_AlwaysShareWith_Title: String { return self._s[1591]! }
+ public var LogoutOptions_AlternativeOptionsSection: String { return self._s[1592]! }
+ public var SettingsSearch_Synonyms_Passport: String { return self._s[1593]! }
+ public var PhotoEditor_CurvesTool: String { return self._s[1594]! }
+ public var Checkout_PaymentMethod: String { return self._s[1596]! }
public func PUSH_CHAT_ADD_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1595]!, self._r[1595]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1597]!, self._r[1597]!, [_1, _2])
}
- public var Contacts_AccessDeniedError: String { return self._s[1596]! }
- public var Camera_PhotoMode: String { return self._s[1599]! }
- public var Passport_Address_AddUtilityBill: String { return self._s[1600]! }
- public var CallSettings_OnMobile: String { return self._s[1601]! }
- public var Tour_Text2: String { return self._s[1602]! }
+ public var Contacts_AccessDeniedError: String { return self._s[1598]! }
+ public var Camera_PhotoMode: String { return self._s[1601]! }
+ public var Passport_Address_AddUtilityBill: String { return self._s[1602]! }
+ public var CallSettings_OnMobile: String { return self._s[1603]! }
+ public var Tour_Text2: String { return self._s[1604]! }
public func PUSH_CHAT_MESSAGE_ROUND(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1603]!, self._r[1603]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1605]!, self._r[1605]!, [_1, _2])
}
- public var DialogList_EncryptionProcessing: String { return self._s[1605]! }
- public var Permissions_Skip: String { return self._s[1606]! }
- public var SecretImage_Title: String { return self._s[1607]! }
- public var Watch_MessageView_Title: String { return self._s[1608]! }
- public var Channel_DiscussionGroupAdd: String { return self._s[1609]! }
- public var AttachmentMenu_Poll: String { return self._s[1610]! }
+ public var DialogList_EncryptionProcessing: String { return self._s[1607]! }
+ public var Permissions_Skip: String { return self._s[1608]! }
+ public var SecretImage_Title: String { return self._s[1609]! }
+ public var Watch_MessageView_Title: String { return self._s[1610]! }
+ public var Channel_DiscussionGroupAdd: String { return self._s[1611]! }
+ public var AttachmentMenu_Poll: String { return self._s[1612]! }
public func Notification_GroupInviter(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1611]!, self._r[1611]!, [_0])
+ return formatWithArgumentRanges(self._s[1613]!, self._r[1613]!, [_0])
}
public func Channel_DiscussionGroup_PrivateChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1612]!, self._r[1612]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1614]!, self._r[1614]!, [_1, _2])
}
- public var Notification_CallCanceled: String { return self._s[1613]! }
- public var WallpaperPreview_Title: String { return self._s[1614]! }
- public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1615]! }
- public var Settings_ProxyConnecting: String { return self._s[1616]! }
- public var Settings_CheckPhoneNumberText: String { return self._s[1618]! }
- public var Profile_MessageLifetime5s: String { return self._s[1619]! }
- public var Username_InvalidCharacters: String { return self._s[1620]! }
- public var WallpaperPreview_CropBottomText: String { return self._s[1621]! }
- public var AutoDownloadSettings_LimitBySize: String { return self._s[1622]! }
- public var Settings_AddAccount: String { return self._s[1623]! }
- public var Notification_CreatedChannel: String { return self._s[1626]! }
+ public var Notification_CallCanceled: String { return self._s[1615]! }
+ public var WallpaperPreview_Title: String { return self._s[1616]! }
+ public var Privacy_PaymentsClear_PaymentInfo: String { return self._s[1617]! }
+ public var Settings_ProxyConnecting: String { return self._s[1618]! }
+ public var Settings_CheckPhoneNumberText: String { return self._s[1620]! }
+ public var Profile_MessageLifetime5s: String { return self._s[1621]! }
+ public var Username_InvalidCharacters: String { return self._s[1622]! }
+ public var WallpaperPreview_CropBottomText: String { return self._s[1623]! }
+ public var AutoDownloadSettings_LimitBySize: String { return self._s[1624]! }
+ public var Settings_AddAccount: String { return self._s[1625]! }
+ public var Notification_CreatedChannel: String { return self._s[1628]! }
public func PUSH_CHAT_DELETE_MEMBER(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1627]!, self._r[1627]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[1629]!, self._r[1629]!, [_1, _2, _3])
}
- public var Passcode_AppLockedAlert: String { return self._s[1629]! }
- public var Contacts_TopSection: String { return self._s[1630]! }
+ public var Passcode_AppLockedAlert: String { return self._s[1631]! }
+ public var Contacts_TopSection: String { return self._s[1632]! }
public func Time_MonthOfYear_m6(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1631]!, self._r[1631]!, [_0])
+ return formatWithArgumentRanges(self._s[1633]!, self._r[1633]!, [_0])
}
- public var ReportPeer_ReasonSpam: String { return self._s[1632]! }
- public var UserInfo_TapToCall: String { return self._s[1633]! }
- public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1635]! }
- public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1636]! }
- public var Common_Search: String { return self._s[1637]! }
+ public var ReportPeer_ReasonSpam: String { return self._s[1634]! }
+ public var UserInfo_TapToCall: String { return self._s[1635]! }
+ public var Conversation_ForwardAuthorHiddenTooltip: String { return self._s[1637]! }
+ public var AutoDownloadSettings_DataUsageCustom: String { return self._s[1638]! }
+ public var Common_Search: String { return self._s[1639]! }
public func Channel_AdminLog_MessageChangedGroupGeoLocation(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1638]!, self._r[1638]!, [_0])
+ return formatWithArgumentRanges(self._s[1640]!, self._r[1640]!, [_0])
}
- public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1639]! }
- public var Message_InvoiceLabel: String { return self._s[1640]! }
- public var Conversation_InputTextPlaceholder: String { return self._s[1641]! }
- public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1642]! }
+ public var AuthSessions_IncompleteAttemptsInfo: String { return self._s[1641]! }
+ public var Message_InvoiceLabel: String { return self._s[1642]! }
+ public var Conversation_InputTextPlaceholder: String { return self._s[1643]! }
+ public var NetworkUsageSettings_MediaImageDataSection: String { return self._s[1644]! }
public func Passport_Address_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1643]!, self._r[1643]!, [_0])
+ return formatWithArgumentRanges(self._s[1645]!, self._r[1645]!, [_0])
}
- public var Conversation_Info: String { return self._s[1644]! }
- public var Login_InfoDeletePhoto: String { return self._s[1645]! }
- public var Passport_Language_vi: String { return self._s[1647]! }
- public var UserInfo_ScamUserWarning: String { return self._s[1648]! }
- public var Conversation_Search: String { return self._s[1649]! }
- public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1650]! }
- public var ReportPeer_ReasonPornography: String { return self._s[1651]! }
- public var AutoDownloadSettings_PhotosTitle: String { return self._s[1652]! }
- public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1653]! }
- public var Map_LiveLocationGroupDescription: String { return self._s[1654]! }
- public var Channel_Setup_TypeHeader: String { return self._s[1655]! }
- public var AuthSessions_LoggedIn: String { return self._s[1656]! }
- public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1657]! }
- public var Login_SmsRequestState3: String { return self._s[1658]! }
- public var Passport_Address_EditUtilityBill: String { return self._s[1659]! }
- public var Appearance_ReduceMotionInfo: String { return self._s[1660]! }
- public var Channel_Edit_LinkItem: String { return self._s[1661]! }
- public var Privacy_Calls_P2PNever: String { return self._s[1662]! }
- public var Conversation_AddToReadingList: String { return self._s[1664]! }
- public var Message_Animation: String { return self._s[1665]! }
- public var Conversation_DefaultRestrictedMedia: String { return self._s[1666]! }
- public var Map_Unknown: String { return self._s[1667]! }
- public var AutoDownloadSettings_LastDelimeter: String { return self._s[1668]! }
+ public var Conversation_Info: String { return self._s[1646]! }
+ public var Login_InfoDeletePhoto: String { return self._s[1647]! }
+ public var Passport_Language_vi: String { return self._s[1649]! }
+ public var UserInfo_ScamUserWarning: String { return self._s[1650]! }
+ public var Conversation_Search: String { return self._s[1651]! }
+ public var DialogList_DeleteBotConversationConfirmation: String { return self._s[1652]! }
+ public var ReportPeer_ReasonPornography: String { return self._s[1653]! }
+ public var AutoDownloadSettings_PhotosTitle: String { return self._s[1654]! }
+ public var Conversation_SendMessageErrorGroupRestricted: String { return self._s[1655]! }
+ public var Map_LiveLocationGroupDescription: String { return self._s[1656]! }
+ public var Channel_Setup_TypeHeader: String { return self._s[1657]! }
+ public var AuthSessions_LoggedIn: String { return self._s[1658]! }
+ public var Privacy_Forwards_AlwaysAllow_Title: String { return self._s[1659]! }
+ public var Login_SmsRequestState3: String { return self._s[1660]! }
+ public var Passport_Address_EditUtilityBill: String { return self._s[1661]! }
+ public var Appearance_ReduceMotionInfo: String { return self._s[1662]! }
+ public var Channel_Edit_LinkItem: String { return self._s[1663]! }
+ public var Privacy_Calls_P2PNever: String { return self._s[1664]! }
+ public var Conversation_AddToReadingList: String { return self._s[1666]! }
+ public var Message_Animation: String { return self._s[1667]! }
+ public var Conversation_DefaultRestrictedMedia: String { return self._s[1668]! }
+ public var Map_Unknown: String { return self._s[1669]! }
+ public var AutoDownloadSettings_LastDelimeter: String { return self._s[1670]! }
public func PUSH_PINNED_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1669]!, self._r[1669]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1671]!, self._r[1671]!, [_1, _2])
}
public func Passport_FieldOneOf_Or(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1670]!, self._r[1670]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1672]!, self._r[1672]!, [_1, _2])
}
- public var Call_StatusRequesting: String { return self._s[1671]! }
- public var Conversation_SecretChatContextBotAlert: String { return self._s[1672]! }
- public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1673]! }
+ public var Call_StatusRequesting: String { return self._s[1673]! }
+ public var Conversation_SecretChatContextBotAlert: String { return self._s[1674]! }
+ public var SocksProxySetup_ProxyStatusChecking: String { return self._s[1675]! }
public func PUSH_CHAT_MESSAGE_DOC(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1674]!, self._r[1674]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1676]!, self._r[1676]!, [_1, _2])
}
public func Notification_PinnedLocationMessage(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1675]!, self._r[1675]!, [_0])
+ return formatWithArgumentRanges(self._s[1677]!, self._r[1677]!, [_0])
}
- public var Update_Skip: String { return self._s[1676]! }
- public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[1677]! }
- public var Message_PinnedPollMessage: String { return self._s[1678]! }
- public var BlockedUsers_Title: String { return self._s[1679]! }
+ public var Update_Skip: String { return self._s[1678]! }
+ public var Group_Username_RemoveExistingUsernamesInfo: String { return self._s[1679]! }
+ public var Message_PinnedPollMessage: String { return self._s[1680]! }
+ public var BlockedUsers_Title: String { return self._s[1681]! }
public func PUSH_CHANNEL_MESSAGE_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1680]!, self._r[1680]!, [_1])
+ return formatWithArgumentRanges(self._s[1682]!, self._r[1682]!, [_1])
}
- public var Username_CheckingUsername: String { return self._s[1681]! }
- public var NotificationsSound_Bell: String { return self._s[1682]! }
- public var Conversation_SendMessageErrorFlood: String { return self._s[1683]! }
- public var Weekday_Monday: String { return self._s[1684]! }
- public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[1685]! }
- public var ChannelMembers_ChannelAdminsTitle: String { return self._s[1686]! }
- public var ChatSettings_Groups: String { return self._s[1687]! }
- public var Your_card_was_declined: String { return self._s[1688]! }
- public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1690]! }
- public var ChatList_Unmute: String { return self._s[1691]! }
- public var PhotoEditor_CurvesAll: String { return self._s[1692]! }
- public var Weekday_ShortTuesday: String { return self._s[1693]! }
- public var DialogList_Read: String { return self._s[1694]! }
- public var Appearance_AppIconClassic: String { return self._s[1695]! }
- public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[1696]! }
- public var Passport_Identity_Gender: String { return self._s[1697]! }
+ public var Username_CheckingUsername: String { return self._s[1683]! }
+ public var NotificationsSound_Bell: String { return self._s[1684]! }
+ public var Conversation_SendMessageErrorFlood: String { return self._s[1685]! }
+ public var Weekday_Monday: String { return self._s[1686]! }
+ public var SettingsSearch_Synonyms_Notifications_DisplayNamesOnLockScreen: String { return self._s[1687]! }
+ public var ChannelMembers_ChannelAdminsTitle: String { return self._s[1688]! }
+ public var ChatSettings_Groups: String { return self._s[1689]! }
+ public var Your_card_was_declined: String { return self._s[1690]! }
+ public var TwoStepAuth_EnterPasswordHelp: String { return self._s[1692]! }
+ public var ChatList_Unmute: String { return self._s[1693]! }
+ public var PhotoEditor_CurvesAll: String { return self._s[1694]! }
+ public var Weekday_ShortTuesday: String { return self._s[1695]! }
+ public var DialogList_Read: String { return self._s[1696]! }
+ public var Appearance_AppIconClassic: String { return self._s[1697]! }
+ public var ChannelMembers_WhoCanAddMembers_AllMembers: String { return self._s[1698]! }
+ public var Passport_Identity_Gender: String { return self._s[1699]! }
public func Target_ShareGameConfirmationPrivate(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1698]!, self._r[1698]!, [_0])
+ return formatWithArgumentRanges(self._s[1700]!, self._r[1700]!, [_0])
}
- public var Target_SelectGroup: String { return self._s[1699]! }
+ public var Target_SelectGroup: String { return self._s[1701]! }
public func DialogList_EncryptedChatStartedIncoming(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1701]!, self._r[1701]!, [_0])
+ return formatWithArgumentRanges(self._s[1703]!, self._r[1703]!, [_0])
}
- public var Passport_Language_en: String { return self._s[1702]! }
- public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[1703]! }
- public var Channel_Username_CreatePublicLinkHelp: String { return self._s[1704]! }
- public var Login_CancelPhoneVerificationContinue: String { return self._s[1705]! }
- public var Checkout_NewCard_PaymentCard: String { return self._s[1707]! }
- public var Login_InfoHelp: String { return self._s[1708]! }
- public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1709]! }
- public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[1710]! }
+ public var Passport_Language_en: String { return self._s[1704]! }
+ public var AutoDownloadSettings_AutodownloadPhotos: String { return self._s[1705]! }
+ public var Channel_Username_CreatePublicLinkHelp: String { return self._s[1706]! }
+ public var Login_CancelPhoneVerificationContinue: String { return self._s[1707]! }
+ public var Checkout_NewCard_PaymentCard: String { return self._s[1709]! }
+ public var Login_InfoHelp: String { return self._s[1710]! }
+ public var Contacts_PermissionsSuppressWarningTitle: String { return self._s[1711]! }
+ public var SettingsSearch_Synonyms_Stickers_FeaturedPacks: String { return self._s[1712]! }
public func Channel_AdminLog_MessageChangedLinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1711]!, self._r[1711]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1713]!, self._r[1713]!, [_1, _2])
}
- public var SocksProxySetup_AddProxy: String { return self._s[1714]! }
- public var CreatePoll_Title: String { return self._s[1715]! }
- public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[1716]! }
- public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[1717]! }
- public var UserInfo_GroupsInCommon: String { return self._s[1718]! }
- public var Call_AudioRouteHide: String { return self._s[1719]! }
- public var ContactInfo_PhoneLabelMobile: String { return self._s[1721]! }
+ public var SocksProxySetup_AddProxy: String { return self._s[1716]! }
+ public var CreatePoll_Title: String { return self._s[1717]! }
+ public var SettingsSearch_Synonyms_Privacy_Data_SecretChatLinkPreview: String { return self._s[1718]! }
+ public var PasscodeSettings_SimplePasscodeHelp: String { return self._s[1719]! }
+ public var UserInfo_GroupsInCommon: String { return self._s[1720]! }
+ public var Call_AudioRouteHide: String { return self._s[1721]! }
+ public var ContactInfo_PhoneLabelMobile: String { return self._s[1723]! }
public func ChatList_LeaveGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1722]!, self._r[1722]!, [_0])
+ return formatWithArgumentRanges(self._s[1724]!, self._r[1724]!, [_0])
}
- public var TextFormat_Bold: String { return self._s[1723]! }
- public var FastTwoStepSetup_EmailSection: String { return self._s[1724]! }
- public var Notifications_Title: String { return self._s[1725]! }
- public var Group_Username_InvalidTooShort: String { return self._s[1726]! }
- public var Channel_ErrorAddTooMuch: String { return self._s[1727]! }
+ public var TextFormat_Bold: String { return self._s[1725]! }
+ public var FastTwoStepSetup_EmailSection: String { return self._s[1726]! }
+ public var Notifications_Title: String { return self._s[1727]! }
+ public var Group_Username_InvalidTooShort: String { return self._s[1728]! }
+ public var Channel_ErrorAddTooMuch: String { return self._s[1729]! }
public func DialogList_MultipleTypingSuffix(_ _0: Int) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1728]!, self._r[1728]!, ["\(_0)"])
+ return formatWithArgumentRanges(self._s[1730]!, self._r[1730]!, ["\(_0)"])
}
- public var Stickers_SuggestAdded: String { return self._s[1730]! }
- public var Login_CountryCode: String { return self._s[1731]! }
- public var ChatSettings_AutoPlayVideos: String { return self._s[1732]! }
- public var Map_GetDirections: String { return self._s[1733]! }
- public var Login_PhoneFloodError: String { return self._s[1734]! }
+ public var Stickers_SuggestAdded: String { return self._s[1732]! }
+ public var Login_CountryCode: String { return self._s[1733]! }
+ public var ChatSettings_AutoPlayVideos: String { return self._s[1734]! }
+ public var Map_GetDirections: String { return self._s[1735]! }
+ public var Login_PhoneFloodError: String { return self._s[1736]! }
public func Time_MonthOfYear_m3(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1735]!, self._r[1735]!, [_0])
+ return formatWithArgumentRanges(self._s[1737]!, self._r[1737]!, [_0])
}
- public var Settings_SetUsername: String { return self._s[1737]! }
- public var Group_Location_ChangeLocation: String { return self._s[1738]! }
- public var Notification_GroupInviterSelf: String { return self._s[1739]! }
- public var InstantPage_TapToOpenLink: String { return self._s[1740]! }
+ public var Settings_SetUsername: String { return self._s[1739]! }
+ public var Group_Location_ChangeLocation: String { return self._s[1740]! }
+ public var Notification_GroupInviterSelf: String { return self._s[1741]! }
+ public var InstantPage_TapToOpenLink: String { return self._s[1742]! }
public func Notification_ChannelInviter(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1741]!, self._r[1741]!, [_0])
+ return formatWithArgumentRanges(self._s[1743]!, self._r[1743]!, [_0])
}
- public var Watch_Suggestion_TalkLater: String { return self._s[1742]! }
- public var SecretChat_Title: String { return self._s[1743]! }
- public var Group_UpgradeNoticeText1: String { return self._s[1744]! }
- public var AuthSessions_Title: String { return self._s[1745]! }
+ public var Watch_Suggestion_TalkLater: String { return self._s[1744]! }
+ public var SecretChat_Title: String { return self._s[1745]! }
+ public var Group_UpgradeNoticeText1: String { return self._s[1746]! }
+ public var AuthSessions_Title: String { return self._s[1747]! }
public func TextFormat_AddLinkText(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1746]!, self._r[1746]!, [_0])
+ return formatWithArgumentRanges(self._s[1748]!, self._r[1748]!, [_0])
}
- public var PhotoEditor_CropAuto: String { return self._s[1747]! }
- public var Channel_About_Title: String { return self._s[1748]! }
- public var FastTwoStepSetup_EmailHelp: String { return self._s[1749]! }
+ public var PhotoEditor_CropAuto: String { return self._s[1749]! }
+ public var Channel_About_Title: String { return self._s[1750]! }
+ public var FastTwoStepSetup_EmailHelp: String { return self._s[1751]! }
public func Conversation_Bytes(_ _0: Int) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1751]!, self._r[1751]!, ["\(_0)"])
+ return formatWithArgumentRanges(self._s[1753]!, self._r[1753]!, ["\(_0)"])
}
- public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1753]! }
- public var Group_Setup_HistoryVisibleHelp: String { return self._s[1754]! }
+ public var Conversation_PinMessageAlert_OnlyPin: String { return self._s[1755]! }
+ public var Group_Setup_HistoryVisibleHelp: String { return self._s[1756]! }
public func PUSH_MESSAGE_GIF(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1755]!, self._r[1755]!, [_1])
+ return formatWithArgumentRanges(self._s[1757]!, self._r[1757]!, [_1])
}
public func SharedMedia_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1757]!, self._r[1757]!, [_0])
+ return formatWithArgumentRanges(self._s[1759]!, self._r[1759]!, [_0])
}
public func TwoStepAuth_RecoveryEmailUnavailable(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1758]!, self._r[1758]!, [_0])
+ return formatWithArgumentRanges(self._s[1760]!, self._r[1760]!, [_0])
}
- public var Privacy_PaymentsClearInfoHelp: String { return self._s[1759]! }
- public var Presence_online: String { return self._s[1761]! }
- public var PasscodeSettings_Title: String { return self._s[1762]! }
- public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1763]! }
- public var Web_OpenExternal: String { return self._s[1764]! }
- public var AutoDownloadSettings_AutoDownload: String { return self._s[1766]! }
- public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[1767]! }
- public var LocalGroup_Title: String { return self._s[1768]! }
+ public var Privacy_PaymentsClearInfoHelp: String { return self._s[1761]! }
+ public var Presence_online: String { return self._s[1763]! }
+ public var PasscodeSettings_Title: String { return self._s[1764]! }
+ public var Passport_Identity_ExpiryDatePlaceholder: String { return self._s[1765]! }
+ public var Web_OpenExternal: String { return self._s[1766]! }
+ public var AutoDownloadSettings_AutoDownload: String { return self._s[1768]! }
+ public var Channel_OwnershipTransfer_EnterPasswordText: String { return self._s[1769]! }
+ public var LocalGroup_Title: String { return self._s[1770]! }
public func AutoNightTheme_AutomaticHelp(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1769]!, self._r[1769]!, [_0])
+ return formatWithArgumentRanges(self._s[1771]!, self._r[1771]!, [_0])
}
- public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[1770]! }
- public var Map_YouAreHere: String { return self._s[1771]! }
+ public var FastTwoStepSetup_PasswordConfirmationPlaceholder: String { return self._s[1772]! }
+ public var Map_YouAreHere: String { return self._s[1773]! }
public func AuthSessions_Message(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1772]!, self._r[1772]!, [_0])
+ return formatWithArgumentRanges(self._s[1774]!, self._r[1774]!, [_0])
}
public func ChatList_DeleteChatConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1773]!, self._r[1773]!, [_0])
+ return formatWithArgumentRanges(self._s[1775]!, self._r[1775]!, [_0])
}
- public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[1774]! }
- public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[1775]! }
+ public var PrivacyLastSeenSettings_AlwaysShareWith: String { return self._s[1776]! }
+ public var Target_InviteToGroupErrorAlreadyInvited: String { return self._s[1777]! }
public func AuthSessions_AppUnofficial(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1776]!, self._r[1776]!, [_0])
+ return formatWithArgumentRanges(self._s[1778]!, self._r[1778]!, [_0])
}
public func DialogList_LiveLocationSharingTo(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1777]!, self._r[1777]!, [_0])
+ return formatWithArgumentRanges(self._s[1779]!, self._r[1779]!, [_0])
}
- public var SocksProxySetup_Username: String { return self._s[1778]! }
- public var Bot_Start: String { return self._s[1779]! }
+ public var SocksProxySetup_Username: String { return self._s[1780]! }
+ public var Bot_Start: String { return self._s[1781]! }
public func Channel_AdminLog_EmptyFilterQueryText(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1780]!, self._r[1780]!, [_0])
+ return formatWithArgumentRanges(self._s[1782]!, self._r[1782]!, [_0])
}
public func Channel_AdminLog_MessagePinned(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1781]!, self._r[1781]!, [_0])
+ return formatWithArgumentRanges(self._s[1783]!, self._r[1783]!, [_0])
}
- public var Contacts_SortByPresence: String { return self._s[1782]! }
- public var Conversation_DiscardVoiceMessageTitle: String { return self._s[1784]! }
+ public var Contacts_SortByPresence: String { return self._s[1784]! }
+ public var Conversation_DiscardVoiceMessageTitle: String { return self._s[1786]! }
public func PUSH_CHAT_CREATED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1785]!, self._r[1785]!, [_1, _2])
- }
- public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1786]!, self._r[1786]!, [_0])
- }
- public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
return formatWithArgumentRanges(self._s[1787]!, self._r[1787]!, [_1, _2])
}
- public var Passport_Email_EnterOtherEmail: String { return self._s[1788]! }
- public var Login_InfoAvatarPhoto: String { return self._s[1789]! }
- public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[1790]! }
- public var Tour_Title4: String { return self._s[1791]! }
- public var Passport_Identity_Translation: String { return self._s[1792]! }
- public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1793]! }
- public var Login_TermsOfServiceLabel: String { return self._s[1795]! }
- public var Passport_Language_it: String { return self._s[1796]! }
- public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1797]! }
- public var Passport_Identity_SelfieHelp: String { return self._s[1798]! }
- public var Conversation_ClearAll: String { return self._s[1800]! }
- public var Channel_OwnershipTransfer_Title: String { return self._s[1802]! }
- public var TwoStepAuth_FloodError: String { return self._s[1803]! }
+ public func PrivacySettings_LastSeenContactsMinus(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[1788]!, self._r[1788]!, [_0])
+ }
+ public func Channel_AdminLog_MessageChangedLinkedGroup(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[1789]!, self._r[1789]!, [_1, _2])
+ }
+ public var Passport_Email_EnterOtherEmail: String { return self._s[1790]! }
+ public var Login_InfoAvatarPhoto: String { return self._s[1791]! }
+ public var Privacy_PaymentsClear_ShippingInfo: String { return self._s[1792]! }
+ public var Tour_Title4: String { return self._s[1793]! }
+ public var Passport_Identity_Translation: String { return self._s[1794]! }
+ public var SettingsSearch_Synonyms_Notifications_ContactJoined: String { return self._s[1795]! }
+ public var Login_TermsOfServiceLabel: String { return self._s[1797]! }
+ public var Passport_Language_it: String { return self._s[1798]! }
+ public var KeyCommand_JumpToNextUnreadChat: String { return self._s[1799]! }
+ public var Passport_Identity_SelfieHelp: String { return self._s[1800]! }
+ public var Conversation_ClearAll: String { return self._s[1802]! }
+ public var Channel_OwnershipTransfer_Title: String { return self._s[1804]! }
+ public var TwoStepAuth_FloodError: String { return self._s[1805]! }
public func PUSH_CHANNEL_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1804]!, self._r[1804]!, [_1])
+ return formatWithArgumentRanges(self._s[1806]!, self._r[1806]!, [_1])
}
- public var Paint_Delete: String { return self._s[1805]! }
- public var Privacy_AddNewPeer: String { return self._s[1806]! }
- public var LogoutOptions_SetPasscodeText: String { return self._s[1807]! }
+ public var Paint_Delete: String { return self._s[1807]! }
+ public var Privacy_AddNewPeer: String { return self._s[1808]! }
+ public var LogoutOptions_SetPasscodeText: String { return self._s[1809]! }
public func Passport_AcceptHelp(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1808]!, self._r[1808]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1810]!, self._r[1810]!, [_1, _2])
}
- public var Message_PinnedAudioMessage: String { return self._s[1809]! }
+ public var Message_PinnedAudioMessage: String { return self._s[1811]! }
public func Watch_Time_ShortTodayAt(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1810]!, self._r[1810]!, [_0])
+ return formatWithArgumentRanges(self._s[1812]!, self._r[1812]!, [_0])
}
- public var Notification_Mute1hMin: String { return self._s[1811]! }
- public var Notifications_GroupNotificationsSound: String { return self._s[1812]! }
- public var SocksProxySetup_ShareProxyList: String { return self._s[1813]! }
- public var Conversation_MessageEditedLabel: String { return self._s[1814]! }
- public var Notification_Exceptions_AlwaysOff: String { return self._s[1815]! }
- public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[1816]! }
+ public var Notification_Mute1hMin: String { return self._s[1813]! }
+ public var Notifications_GroupNotificationsSound: String { return self._s[1814]! }
+ public var SocksProxySetup_ShareProxyList: String { return self._s[1815]! }
+ public var Conversation_MessageEditedLabel: String { return self._s[1816]! }
+ public var Notification_Exceptions_AlwaysOff: String { return self._s[1817]! }
+ public var Notification_Exceptions_NewException_MessagePreviewHeader: String { return self._s[1818]! }
public func Channel_AdminLog_MessageAdmin(_ _0: String, _ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1817]!, self._r[1817]!, [_0, _1, _2])
+ return formatWithArgumentRanges(self._s[1819]!, self._r[1819]!, [_0, _1, _2])
}
- public var NetworkUsageSettings_ResetStats: String { return self._s[1818]! }
+ public var NetworkUsageSettings_ResetStats: String { return self._s[1820]! }
public func PUSH_MESSAGE_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1819]!, self._r[1819]!, [_1])
+ return formatWithArgumentRanges(self._s[1821]!, self._r[1821]!, [_1])
}
- public var AccessDenied_LocationTracking: String { return self._s[1820]! }
- public var Month_GenOctober: String { return self._s[1821]! }
- public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[1822]! }
- public var EnterPasscode_EnterPasscode: String { return self._s[1823]! }
- public var MediaPicker_TimerTooltip: String { return self._s[1825]! }
- public var SharedMedia_TitleAll: String { return self._s[1826]! }
- public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[1829]! }
- public var Conversation_RestrictedMedia: String { return self._s[1830]! }
- public var AccessDenied_PhotosRestricted: String { return self._s[1831]! }
- public var Privacy_Forwards_WhoCanForward: String { return self._s[1833]! }
- public var ChangePhoneNumberCode_Called: String { return self._s[1834]! }
+ public var AccessDenied_LocationTracking: String { return self._s[1822]! }
+ public var Month_GenOctober: String { return self._s[1823]! }
+ public var GroupInfo_InviteLink_RevokeAlert_Revoke: String { return self._s[1824]! }
+ public var EnterPasscode_EnterPasscode: String { return self._s[1825]! }
+ public var MediaPicker_TimerTooltip: String { return self._s[1827]! }
+ public var SharedMedia_TitleAll: String { return self._s[1828]! }
+ public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsExceptions: String { return self._s[1831]! }
+ public var Conversation_RestrictedMedia: String { return self._s[1832]! }
+ public var AccessDenied_PhotosRestricted: String { return self._s[1833]! }
+ public var Privacy_Forwards_WhoCanForward: String { return self._s[1835]! }
+ public var ChangePhoneNumberCode_Called: String { return self._s[1836]! }
public func Notification_PinnedDocumentMessage(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1835]!, self._r[1835]!, [_0])
+ return formatWithArgumentRanges(self._s[1837]!, self._r[1837]!, [_0])
}
- public var Conversation_SavedMessages: String { return self._s[1838]! }
- public var Your_cards_expiration_month_is_invalid: String { return self._s[1840]! }
- public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[1841]! }
+ public var Conversation_SavedMessages: String { return self._s[1840]! }
+ public var Your_cards_expiration_month_is_invalid: String { return self._s[1842]! }
+ public var FastTwoStepSetup_PasswordPlaceholder: String { return self._s[1843]! }
public func Target_ShareGameConfirmationGroup(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1843]!, self._r[1843]!, [_0])
+ return formatWithArgumentRanges(self._s[1845]!, self._r[1845]!, [_0])
}
- public var ReportPeer_AlertSuccess: String { return self._s[1844]! }
- public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[1845]! }
+ public var ReportPeer_AlertSuccess: String { return self._s[1846]! }
+ public var PhotoEditor_CropAspectRatioOriginal: String { return self._s[1847]! }
public func InstantPage_RelatedArticleAuthorAndDateTitle(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1846]!, self._r[1846]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1848]!, self._r[1848]!, [_1, _2])
}
- public var Checkout_PasswordEntry_Title: String { return self._s[1847]! }
- public var PhotoEditor_FadeTool: String { return self._s[1848]! }
- public var Privacy_ContactsReset: String { return self._s[1849]! }
+ public var Checkout_PasswordEntry_Title: String { return self._s[1849]! }
+ public var PhotoEditor_FadeTool: String { return self._s[1850]! }
+ public var Privacy_ContactsReset: String { return self._s[1851]! }
public func Channel_AdminLog_MessageRestrictedUntil(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1851]!, self._r[1851]!, [_0])
+ return formatWithArgumentRanges(self._s[1853]!, self._r[1853]!, [_0])
}
- public var Message_PinnedVideoMessage: String { return self._s[1852]! }
- public var ChatList_Mute: String { return self._s[1853]! }
- public var Permissions_CellularDataText_v0: String { return self._s[1854]! }
- public var ShareMenu_SelectChats: String { return self._s[1856]! }
- public var MusicPlayer_VoiceNote: String { return self._s[1857]! }
- public var Conversation_RestrictedText: String { return self._s[1858]! }
- public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[1859]! }
- public var TwoStepAuth_DisableSuccess: String { return self._s[1860]! }
- public var Cache_Videos: String { return self._s[1861]! }
- public var PrivacySettings_PhoneNumber: String { return self._s[1862]! }
- public var FeatureDisabled_Oops: String { return self._s[1864]! }
- public var Passport_Address_PostcodePlaceholder: String { return self._s[1865]! }
+ public var Message_PinnedVideoMessage: String { return self._s[1854]! }
+ public var ChatList_Mute: String { return self._s[1855]! }
+ public var Permissions_CellularDataText_v0: String { return self._s[1856]! }
+ public var ShareMenu_SelectChats: String { return self._s[1858]! }
+ public var MusicPlayer_VoiceNote: String { return self._s[1859]! }
+ public var Conversation_RestrictedText: String { return self._s[1860]! }
+ public var SettingsSearch_Synonyms_Privacy_Data_DeleteDrafts: String { return self._s[1861]! }
+ public var TwoStepAuth_DisableSuccess: String { return self._s[1862]! }
+ public var Cache_Videos: String { return self._s[1863]! }
+ public var PrivacySettings_PhoneNumber: String { return self._s[1864]! }
+ public var FeatureDisabled_Oops: String { return self._s[1866]! }
+ public var Passport_Address_PostcodePlaceholder: String { return self._s[1867]! }
public func AddContact_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1866]!, self._r[1866]!, [_0])
+ return formatWithArgumentRanges(self._s[1868]!, self._r[1868]!, [_0])
}
- public var Stickers_GroupStickersHelp: String { return self._s[1867]! }
- public var GroupPermission_NoSendPolls: String { return self._s[1868]! }
- public var Message_VideoExpired: String { return self._s[1870]! }
- public var Notifications_Badge: String { return self._s[1871]! }
- public var GroupInfo_GroupHistoryVisible: String { return self._s[1872]! }
- public var CreatePoll_OptionPlaceholder: String { return self._s[1873]! }
- public var Username_InvalidTooShort: String { return self._s[1874]! }
- public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[1875]! }
- public var Channel_AdminLog_PinMessages: String { return self._s[1876]! }
- public var ArchivedChats_IntroTitle3: String { return self._s[1877]! }
+ public var Stickers_GroupStickersHelp: String { return self._s[1869]! }
+ public var GroupPermission_NoSendPolls: String { return self._s[1870]! }
+ public var Message_VideoExpired: String { return self._s[1872]! }
+ public var Notifications_Badge: String { return self._s[1873]! }
+ public var GroupInfo_GroupHistoryVisible: String { return self._s[1874]! }
+ public var CreatePoll_OptionPlaceholder: String { return self._s[1875]! }
+ public var Username_InvalidTooShort: String { return self._s[1876]! }
+ public var EnterPasscode_EnterNewPasscodeChange: String { return self._s[1877]! }
+ public var Channel_AdminLog_PinMessages: String { return self._s[1878]! }
+ public var ArchivedChats_IntroTitle3: String { return self._s[1879]! }
public func Notification_MessageLifetimeRemoved(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1878]!, self._r[1878]!, [_1])
+ return formatWithArgumentRanges(self._s[1880]!, self._r[1880]!, [_1])
}
- public var Permissions_SiriAllowInSettings_v0: String { return self._s[1879]! }
- public var Conversation_DefaultRestrictedText: String { return self._s[1880]! }
- public var SharedMedia_CategoryDocs: String { return self._s[1883]! }
+ public var Permissions_SiriAllowInSettings_v0: String { return self._s[1881]! }
+ public var Conversation_DefaultRestrictedText: String { return self._s[1882]! }
+ public var SharedMedia_CategoryDocs: String { return self._s[1885]! }
public func PUSH_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1884]!, self._r[1884]!, [_1])
+ return formatWithArgumentRanges(self._s[1886]!, self._r[1886]!, [_1])
}
- public var Privacy_Forwards_NeverLink: String { return self._s[1886]! }
+ public var Privacy_Forwards_NeverLink: String { return self._s[1888]! }
public func Notification_MessageLifetimeChangedOutgoing(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1887]!, self._r[1887]!, [_1])
+ return formatWithArgumentRanges(self._s[1889]!, self._r[1889]!, [_1])
}
- public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[1888]! }
+ public var CheckoutInfo_ErrorShippingNotAvailable: String { return self._s[1890]! }
public func Time_MonthOfYear_m12(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1889]!, self._r[1889]!, [_0])
+ return formatWithArgumentRanges(self._s[1891]!, self._r[1891]!, [_0])
}
- public var ChatSettings_PrivateChats: String { return self._s[1890]! }
- public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[1891]! }
- public var Conversation_PrivateMessageLinkCopied: String { return self._s[1892]! }
- public var Channel_UpdatePhotoItem: String { return self._s[1893]! }
- public var GroupInfo_LeftStatus: String { return self._s[1894]! }
- public var Watch_MessageView_Forward: String { return self._s[1896]! }
- public var ReportPeer_ReasonChildAbuse: String { return self._s[1897]! }
- public var Cache_ClearEmpty: String { return self._s[1899]! }
- public var Localization_LanguageName: String { return self._s[1900]! }
- public var WebSearch_GIFs: String { return self._s[1901]! }
- public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1902]! }
- public var Username_InvalidStartsWithNumber: String { return self._s[1903]! }
- public var Common_Back: String { return self._s[1904]! }
- public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[1905]! }
+ public var ChatSettings_PrivateChats: String { return self._s[1892]! }
+ public var SettingsSearch_Synonyms_EditProfile_Logout: String { return self._s[1893]! }
+ public var Conversation_PrivateMessageLinkCopied: String { return self._s[1894]! }
+ public var Channel_UpdatePhotoItem: String { return self._s[1895]! }
+ public var GroupInfo_LeftStatus: String { return self._s[1896]! }
+ public var Watch_MessageView_Forward: String { return self._s[1898]! }
+ public var ReportPeer_ReasonChildAbuse: String { return self._s[1899]! }
+ public var Cache_ClearEmpty: String { return self._s[1901]! }
+ public var Localization_LanguageName: String { return self._s[1902]! }
+ public var WebSearch_GIFs: String { return self._s[1903]! }
+ public var Notifications_DisplayNamesOnLockScreenInfoWithLink: String { return self._s[1904]! }
+ public var Username_InvalidStartsWithNumber: String { return self._s[1905]! }
+ public var Common_Back: String { return self._s[1906]! }
+ public var Passport_Identity_DateOfBirthPlaceholder: String { return self._s[1907]! }
public func PUSH_CHANNEL_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1906]!, self._r[1906]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1908]!, self._r[1908]!, [_1, _2])
}
- public var Passport_Email_Help: String { return self._s[1907]! }
- public var Watch_Conversation_Reply: String { return self._s[1909]! }
- public var Conversation_EditingMessageMediaChange: String { return self._s[1911]! }
- public var Passport_Identity_IssueDatePlaceholder: String { return self._s[1912]! }
- public var Channel_BanUser_Unban: String { return self._s[1914]! }
- public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[1915]! }
- public var Group_Username_CreatePublicLinkHelp: String { return self._s[1916]! }
- public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[1918]! }
- public var Passport_Identity_Name: String { return self._s[1919]! }
+ public var Passport_Email_Help: String { return self._s[1909]! }
+ public var Watch_Conversation_Reply: String { return self._s[1911]! }
+ public var Conversation_EditingMessageMediaChange: String { return self._s[1913]! }
+ public var Passport_Identity_IssueDatePlaceholder: String { return self._s[1914]! }
+ public var Channel_BanUser_Unban: String { return self._s[1916]! }
+ public var Channel_EditAdmin_PermissionPostMessages: String { return self._s[1917]! }
+ public var Group_Username_CreatePublicLinkHelp: String { return self._s[1918]! }
+ public var TwoStepAuth_ConfirmEmailCodePlaceholder: String { return self._s[1920]! }
+ public var Passport_Identity_Name: String { return self._s[1921]! }
public func Channel_DiscussionGroup_HeaderGroupSet(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1920]!, self._r[1920]!, [_0])
+ return formatWithArgumentRanges(self._s[1922]!, self._r[1922]!, [_0])
}
- public var GroupRemoved_ViewUserInfo: String { return self._s[1921]! }
- public var Conversation_BlockUser: String { return self._s[1922]! }
- public var Month_GenJanuary: String { return self._s[1923]! }
- public var ChatSettings_TextSize: String { return self._s[1924]! }
- public var Notification_PassportValuePhone: String { return self._s[1925]! }
- public var Passport_Language_ne: String { return self._s[1926]! }
- public var Notification_CallBack: String { return self._s[1927]! }
- public var TwoStepAuth_EmailHelp: String { return self._s[1928]! }
+ public var GroupRemoved_ViewUserInfo: String { return self._s[1923]! }
+ public var Conversation_BlockUser: String { return self._s[1924]! }
+ public var Month_GenJanuary: String { return self._s[1925]! }
+ public var ChatSettings_TextSize: String { return self._s[1926]! }
+ public var Notification_PassportValuePhone: String { return self._s[1927]! }
+ public var Passport_Language_ne: String { return self._s[1928]! }
+ public var Notification_CallBack: String { return self._s[1929]! }
+ public var TwoStepAuth_EmailHelp: String { return self._s[1930]! }
public func Time_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1929]!, self._r[1929]!, [_0])
+ return formatWithArgumentRanges(self._s[1931]!, self._r[1931]!, [_0])
}
- public var Channel_Info_Management: String { return self._s[1930]! }
- public var Passport_FieldIdentityUploadHelp: String { return self._s[1931]! }
- public var Stickers_FrequentlyUsed: String { return self._s[1932]! }
- public var Channel_BanUser_PermissionSendMessages: String { return self._s[1933]! }
- public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1935]! }
+ public var Channel_Info_Management: String { return self._s[1932]! }
+ public var Passport_FieldIdentityUploadHelp: String { return self._s[1933]! }
+ public var Stickers_FrequentlyUsed: String { return self._s[1934]! }
+ public var Channel_BanUser_PermissionSendMessages: String { return self._s[1935]! }
+ public var Passport_Address_OneOfTypeUtilityBill: String { return self._s[1937]! }
public func LOCAL_CHANNEL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1936]!, self._r[1936]!, [_1, "\(_2)"])
+ return formatWithArgumentRanges(self._s[1938]!, self._r[1938]!, [_1, "\(_2)"])
}
- public var Passport_Address_EditResidentialAddress: String { return self._s[1937]! }
- public var PrivacyPolicy_DeclineTitle: String { return self._s[1938]! }
- public var CreatePoll_TextHeader: String { return self._s[1939]! }
+ public var Passport_Address_EditResidentialAddress: String { return self._s[1939]! }
+ public var PrivacyPolicy_DeclineTitle: String { return self._s[1940]! }
+ public var CreatePoll_TextHeader: String { return self._s[1941]! }
public func Checkout_SavePasswordTimeoutAndTouchId(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1940]!, self._r[1940]!, [_0])
+ return formatWithArgumentRanges(self._s[1942]!, self._r[1942]!, [_0])
}
- public var PhotoEditor_QualityMedium: String { return self._s[1941]! }
- public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[1942]! }
- public var Conversation_StatusKickedFromChannel: String { return self._s[1944]! }
- public var CheckoutInfo_ReceiverInfoName: String { return self._s[1945]! }
- public var Group_ErrorSendRestrictedStickers: String { return self._s[1946]! }
+ public var PhotoEditor_QualityMedium: String { return self._s[1943]! }
+ public var InfoPlist_NSMicrophoneUsageDescription: String { return self._s[1944]! }
+ public var Conversation_StatusKickedFromChannel: String { return self._s[1946]! }
+ public var CheckoutInfo_ReceiverInfoName: String { return self._s[1947]! }
+ public var Group_ErrorSendRestrictedStickers: String { return self._s[1948]! }
public func Conversation_RestrictedInlineTimed(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1947]!, self._r[1947]!, [_0])
+ return formatWithArgumentRanges(self._s[1949]!, self._r[1949]!, [_0])
}
public func Channel_AdminLog_MessageTransferedName(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1948]!, self._r[1948]!, [_1])
+ return formatWithArgumentRanges(self._s[1950]!, self._r[1950]!, [_1])
}
- public var Conversation_LinkDialogOpen: String { return self._s[1950]! }
- public var Settings_Username: String { return self._s[1951]! }
- public var Conversation_Block: String { return self._s[1953]! }
- public var Wallpaper_Wallpaper: String { return self._s[1954]! }
- public var SocksProxySetup_UseProxy: String { return self._s[1956]! }
- public var UserInfo_ShareMyContactInfo: String { return self._s[1957]! }
- public var MessageTimer_Forever: String { return self._s[1958]! }
- public var Privacy_Calls_WhoCanCallMe: String { return self._s[1959]! }
- public var PhotoEditor_DiscardChanges: String { return self._s[1960]! }
- public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1961]! }
- public var Passport_Language_da: String { return self._s[1962]! }
- public var SocksProxySetup_PortPlaceholder: String { return self._s[1963]! }
+ public var Conversation_LinkDialogOpen: String { return self._s[1952]! }
+ public var Settings_Username: String { return self._s[1953]! }
+ public var Conversation_Block: String { return self._s[1955]! }
+ public var Wallpaper_Wallpaper: String { return self._s[1956]! }
+ public var SocksProxySetup_UseProxy: String { return self._s[1958]! }
+ public var UserInfo_ShareMyContactInfo: String { return self._s[1959]! }
+ public var MessageTimer_Forever: String { return self._s[1960]! }
+ public var Privacy_Calls_WhoCanCallMe: String { return self._s[1961]! }
+ public var PhotoEditor_DiscardChanges: String { return self._s[1962]! }
+ public var AuthSessions_TerminateOtherSessionsHelp: String { return self._s[1963]! }
+ public var Passport_Language_da: String { return self._s[1964]! }
+ public var SocksProxySetup_PortPlaceholder: String { return self._s[1965]! }
public func SecretGIF_NotViewedYet(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1964]!, self._r[1964]!, [_0])
+ return formatWithArgumentRanges(self._s[1966]!, self._r[1966]!, [_0])
}
- public var Passport_Address_EditPassportRegistration: String { return self._s[1965]! }
+ public var Passport_Address_EditPassportRegistration: String { return self._s[1967]! }
public func Channel_AdminLog_MessageChangedGroupAbout(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1967]!, self._r[1967]!, [_0])
+ return formatWithArgumentRanges(self._s[1969]!, self._r[1969]!, [_0])
}
- public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[1969]! }
- public var Conversation_SearchByName_Prefix: String { return self._s[1970]! }
- public var Conversation_PinnedPoll: String { return self._s[1971]! }
- public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[1972]! }
+ public var Passport_Identity_ResidenceCountryPlaceholder: String { return self._s[1971]! }
+ public var Conversation_SearchByName_Prefix: String { return self._s[1972]! }
+ public var Conversation_PinnedPoll: String { return self._s[1973]! }
+ public var Conversation_EmptyGifPanelPlaceholder: String { return self._s[1974]! }
public func PUSH_ENCRYPTION_ACCEPT(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1973]!, self._r[1973]!, [_1])
+ return formatWithArgumentRanges(self._s[1975]!, self._r[1975]!, [_1])
}
- public var WallpaperSearch_ColorPurple: String { return self._s[1974]! }
- public var Cache_ByPeerHeader: String { return self._s[1975]! }
+ public var WallpaperSearch_ColorPurple: String { return self._s[1976]! }
+ public var Cache_ByPeerHeader: String { return self._s[1977]! }
public func Conversation_EncryptedPlaceholderTitleIncoming(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1976]!, self._r[1976]!, [_0])
+ return formatWithArgumentRanges(self._s[1978]!, self._r[1978]!, [_0])
}
- public var ChatSettings_AutoDownloadDocuments: String { return self._s[1977]! }
- public var Notification_PinnedMessage: String { return self._s[1980]! }
- public var Contacts_SortBy: String { return self._s[1982]! }
+ public var ChatSettings_AutoDownloadDocuments: String { return self._s[1979]! }
+ public var Notification_PinnedMessage: String { return self._s[1982]! }
+ public var Contacts_SortBy: String { return self._s[1984]! }
public func PUSH_CHANNEL_MESSAGE_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1983]!, self._r[1983]!, [_1])
+ return formatWithArgumentRanges(self._s[1985]!, self._r[1985]!, [_1])
}
public func PUSH_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1985]!, self._r[1985]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[1987]!, self._r[1987]!, [_1, _2])
}
- public var Call_EncryptionKey_Title: String { return self._s[1986]! }
- public var Watch_UserInfo_Service: String { return self._s[1987]! }
- public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[1989]! }
- public var Conversation_Unpin: String { return self._s[1991]! }
- public var CancelResetAccount_Title: String { return self._s[1992]! }
- public var Map_LiveLocationFor15Minutes: String { return self._s[1993]! }
+ public var Call_EncryptionKey_Title: String { return self._s[1988]! }
+ public var Watch_UserInfo_Service: String { return self._s[1989]! }
+ public var SettingsSearch_Synonyms_Data_SaveEditedPhotos: String { return self._s[1991]! }
+ public var Conversation_Unpin: String { return self._s[1993]! }
+ public var CancelResetAccount_Title: String { return self._s[1994]! }
+ public var Map_LiveLocationFor15Minutes: String { return self._s[1995]! }
public func Time_PreciseDate_m8(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[1995]!, self._r[1995]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[1997]!, self._r[1997]!, [_1, _2, _3])
}
- public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[1996]! }
- public var CallSettings_Title: String { return self._s[1997]! }
- public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[1998]! }
- public var PasscodeSettings_EncryptDataHelp: String { return self._s[2000]! }
- public var AutoDownloadSettings_Contacts: String { return self._s[2001]! }
- public var Passport_Identity_DocumentDetails: String { return self._s[2002]! }
- public var LoginPassword_PasswordHelp: String { return self._s[2003]! }
- public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2004]! }
- public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2005]! }
- public var Checkout_TotalPaidAmount: String { return self._s[2006]! }
+ public var Group_Members_AddMemberBotErrorNotAllowed: String { return self._s[1998]! }
+ public var CallSettings_Title: String { return self._s[1999]! }
+ public var SettingsSearch_Synonyms_Appearance_ChatBackground: String { return self._s[2000]! }
+ public var PasscodeSettings_EncryptDataHelp: String { return self._s[2002]! }
+ public var AutoDownloadSettings_Contacts: String { return self._s[2003]! }
+ public var Passport_Identity_DocumentDetails: String { return self._s[2004]! }
+ public var LoginPassword_PasswordHelp: String { return self._s[2005]! }
+ public var SettingsSearch_Synonyms_Data_AutoDownloadUsingWifi: String { return self._s[2006]! }
+ public var PrivacyLastSeenSettings_CustomShareSettings_Delete: String { return self._s[2007]! }
+ public var Checkout_TotalPaidAmount: String { return self._s[2008]! }
public func FileSize_KB(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2007]!, self._r[2007]!, [_0])
+ return formatWithArgumentRanges(self._s[2009]!, self._r[2009]!, [_0])
}
- public var PasscodeSettings_ChangePasscode: String { return self._s[2008]! }
- public var Conversation_SecretLinkPreviewAlert: String { return self._s[2010]! }
- public var Privacy_SecretChatsLinkPreviews: String { return self._s[2011]! }
+ public var PasscodeSettings_ChangePasscode: String { return self._s[2010]! }
+ public var Conversation_SecretLinkPreviewAlert: String { return self._s[2012]! }
+ public var Privacy_SecretChatsLinkPreviews: String { return self._s[2013]! }
public func PUSH_CHANNEL_MESSAGE_DOC(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2012]!, self._r[2012]!, [_1])
+ return formatWithArgumentRanges(self._s[2014]!, self._r[2014]!, [_1])
}
- public var Contacts_InviteFriends: String { return self._s[2014]! }
- public var Map_ChooseLocationTitle: String { return self._s[2015]! }
- public var Conversation_StopPoll: String { return self._s[2017]! }
+ public var Contacts_InviteFriends: String { return self._s[2016]! }
+ public var Map_ChooseLocationTitle: String { return self._s[2017]! }
+ public var Conversation_StopPoll: String { return self._s[2019]! }
public func WebSearch_SearchNoResultsDescription(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2018]!, self._r[2018]!, [_0])
+ return formatWithArgumentRanges(self._s[2020]!, self._r[2020]!, [_0])
}
- public var Call_Camera: String { return self._s[2019]! }
- public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2020]! }
- public var Calls_RatingFeedback: String { return self._s[2021]! }
- public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2022]! }
- public var NotificationsSound_Pulse: String { return self._s[2023]! }
- public var Watch_LastSeen_Lately: String { return self._s[2024]! }
- public var ReportGroupLocation_Report: String { return self._s[2027]! }
- public var Widget_NoUsers: String { return self._s[2028]! }
- public var Conversation_UnvotePoll: String { return self._s[2029]! }
- public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2031]! }
- public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2032]! }
- public var NotificationsSound_Circles: String { return self._s[2033]! }
- public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2035]! }
- public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2036]! }
- public var Proxy_TooltipUnavailable: String { return self._s[2037]! }
- public var Passport_Identity_CountryPlaceholder: String { return self._s[2039]! }
- public var Conversation_FileDropbox: String { return self._s[2041]! }
- public var Notifications_ExceptionsUnmuted: String { return self._s[2042]! }
- public var Tour_Text3: String { return self._s[2044]! }
- public var Login_ResetAccountProtected_Title: String { return self._s[2046]! }
- public var GroupPermission_NoSendMessages: String { return self._s[2047]! }
- public var WallpaperSearch_ColorTitle: String { return self._s[2048]! }
- public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2049]! }
+ public var Call_Camera: String { return self._s[2021]! }
+ public var LogoutOptions_ChangePhoneNumberTitle: String { return self._s[2022]! }
+ public var Calls_RatingFeedback: String { return self._s[2023]! }
+ public var GroupInfo_BroadcastListNamePlaceholder: String { return self._s[2024]! }
+ public var NotificationsSound_Pulse: String { return self._s[2025]! }
+ public var Watch_LastSeen_Lately: String { return self._s[2026]! }
+ public var ReportGroupLocation_Report: String { return self._s[2029]! }
+ public var Widget_NoUsers: String { return self._s[2030]! }
+ public var Conversation_UnvotePoll: String { return self._s[2031]! }
+ public var SettingsSearch_Synonyms_Privacy_ProfilePhoto: String { return self._s[2033]! }
+ public var Privacy_ProfilePhoto_WhoCanSeeMyPhoto: String { return self._s[2034]! }
+ public var NotificationsSound_Circles: String { return self._s[2035]! }
+ public var PrivacyLastSeenSettings_AlwaysShareWith_Title: String { return self._s[2037]! }
+ public var TwoStepAuth_RecoveryCodeExpired: String { return self._s[2038]! }
+ public var Proxy_TooltipUnavailable: String { return self._s[2039]! }
+ public var Passport_Identity_CountryPlaceholder: String { return self._s[2041]! }
+ public var Conversation_FileDropbox: String { return self._s[2043]! }
+ public var Notifications_ExceptionsUnmuted: String { return self._s[2044]! }
+ public var Tour_Text3: String { return self._s[2046]! }
+ public var Login_ResetAccountProtected_Title: String { return self._s[2048]! }
+ public var GroupPermission_NoSendMessages: String { return self._s[2049]! }
+ public var WallpaperSearch_ColorTitle: String { return self._s[2050]! }
+ public var ChatAdmins_AllMembersAreAdminsOnHelp: String { return self._s[2051]! }
public func Conversation_LiveLocationYouAnd(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2051]!, self._r[2051]!, [_0])
+ return formatWithArgumentRanges(self._s[2053]!, self._r[2053]!, [_0])
}
- public var GroupInfo_AddParticipantTitle: String { return self._s[2052]! }
- public var Checkout_ShippingOption_Title: String { return self._s[2053]! }
- public var ChatSettings_AutoDownloadTitle: String { return self._s[2054]! }
+ public var GroupInfo_AddParticipantTitle: String { return self._s[2054]! }
+ public var Checkout_ShippingOption_Title: String { return self._s[2055]! }
+ public var ChatSettings_AutoDownloadTitle: String { return self._s[2056]! }
public func DialogList_SingleTypingSuffix(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2055]!, self._r[2055]!, [_0])
+ return formatWithArgumentRanges(self._s[2057]!, self._r[2057]!, [_0])
}
public func ChatSettings_AutoDownloadSettings_TypeVideo(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2056]!, self._r[2056]!, [_0])
+ return formatWithArgumentRanges(self._s[2058]!, self._r[2058]!, [_0])
}
- public var Channel_Management_LabelAdministrator: String { return self._s[2057]! }
- public var OwnershipTransfer_ComeBackLater: String { return self._s[2058]! }
- public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2059]! }
- public var AutoDownloadSettings_Photos: String { return self._s[2061]! }
- public var Appearance_PreviewIncomingText: String { return self._s[2062]! }
- public var ChannelInfo_ConfirmLeave: String { return self._s[2063]! }
- public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2064]! }
- public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2065]! }
- public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2066]! }
- public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2067]! }
- public var GroupInfo_SetGroupPhotoStop: String { return self._s[2068]! }
- public var Notification_SecretChatScreenshot: String { return self._s[2069]! }
- public var AccessDenied_Wallpapers: String { return self._s[2070]! }
- public var Passport_Address_City: String { return self._s[2072]! }
- public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2073]! }
- public var Appearance_ThemeCarouselClassic: String { return self._s[2074]! }
- public var SocksProxySetup_SecretPlaceholder: String { return self._s[2075]! }
- public var AccessDenied_LocationDisabled: String { return self._s[2076]! }
- public var Group_Location_Title: String { return self._s[2077]! }
- public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2079]! }
- public var GroupInfo_Sound: String { return self._s[2080]! }
- public var ChannelInfo_ScamChannelWarning: String { return self._s[2081]! }
- public var Stickers_RemoveFromFavorites: String { return self._s[2082]! }
- public var Contacts_Title: String { return self._s[2083]! }
- public var Passport_Language_fr: String { return self._s[2084]! }
- public var Notifications_ResetAllNotifications: String { return self._s[2085]! }
- public var PrivacySettings_SecurityTitle: String { return self._s[2088]! }
- public var Checkout_NewCard_Title: String { return self._s[2089]! }
- public var Login_HaveNotReceivedCodeInternal: String { return self._s[2090]! }
- public var Conversation_ForwardChats: String { return self._s[2091]! }
- public var PasscodeSettings_4DigitCode: String { return self._s[2093]! }
- public var Settings_FAQ: String { return self._s[2095]! }
- public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2096]! }
- public var Conversation_ContextMenuForward: String { return self._s[2097]! }
- public var PrivacyPolicy_Title: String { return self._s[2102]! }
- public var Notifications_TextTone: String { return self._s[2103]! }
- public var Profile_CreateNewContact: String { return self._s[2104]! }
- public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2105]! }
- public var Call_Speaker: String { return self._s[2107]! }
- public var AutoNightTheme_AutomaticSection: String { return self._s[2108]! }
- public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2110]! }
- public var Channel_Username_InvalidCharacters: String { return self._s[2111]! }
+ public var Channel_Management_LabelAdministrator: String { return self._s[2059]! }
+ public var OwnershipTransfer_ComeBackLater: String { return self._s[2060]! }
+ public var PrivacyLastSeenSettings_NeverShareWith_Placeholder: String { return self._s[2061]! }
+ public var AutoDownloadSettings_Photos: String { return self._s[2063]! }
+ public var Appearance_PreviewIncomingText: String { return self._s[2064]! }
+ public var ChannelInfo_ConfirmLeave: String { return self._s[2065]! }
+ public var MediaPicker_MomentsDateRangeSameMonthYearFormat: String { return self._s[2066]! }
+ public var Passport_Identity_DocumentNumberPlaceholder: String { return self._s[2067]! }
+ public var Channel_AdminLogFilter_EventsNewMembers: String { return self._s[2068]! }
+ public var PasscodeSettings_AutoLock_IfAwayFor_5minutes: String { return self._s[2069]! }
+ public var GroupInfo_SetGroupPhotoStop: String { return self._s[2070]! }
+ public var Notification_SecretChatScreenshot: String { return self._s[2071]! }
+ public var AccessDenied_Wallpapers: String { return self._s[2072]! }
+ public var Passport_Address_City: String { return self._s[2074]! }
+ public var InfoPlist_NSPhotoLibraryAddUsageDescription: String { return self._s[2075]! }
+ public var Appearance_ThemeCarouselClassic: String { return self._s[2076]! }
+ public var SocksProxySetup_SecretPlaceholder: String { return self._s[2077]! }
+ public var AccessDenied_LocationDisabled: String { return self._s[2078]! }
+ public var Group_Location_Title: String { return self._s[2079]! }
+ public var SocksProxySetup_HostnamePlaceholder: String { return self._s[2081]! }
+ public var GroupInfo_Sound: String { return self._s[2082]! }
+ public var ChannelInfo_ScamChannelWarning: String { return self._s[2083]! }
+ public var Stickers_RemoveFromFavorites: String { return self._s[2084]! }
+ public var Contacts_Title: String { return self._s[2085]! }
+ public var Passport_Language_fr: String { return self._s[2086]! }
+ public var Notifications_ResetAllNotifications: String { return self._s[2087]! }
+ public var PrivacySettings_SecurityTitle: String { return self._s[2090]! }
+ public var Checkout_NewCard_Title: String { return self._s[2091]! }
+ public var Login_HaveNotReceivedCodeInternal: String { return self._s[2092]! }
+ public var Conversation_ForwardChats: String { return self._s[2093]! }
+ public var PasscodeSettings_4DigitCode: String { return self._s[2095]! }
+ public var Settings_FAQ: String { return self._s[2097]! }
+ public var AutoDownloadSettings_DocumentsTitle: String { return self._s[2098]! }
+ public var Conversation_ContextMenuForward: String { return self._s[2099]! }
+ public var PrivacyPolicy_Title: String { return self._s[2104]! }
+ public var Notifications_TextTone: String { return self._s[2105]! }
+ public var Profile_CreateNewContact: String { return self._s[2106]! }
+ public var PrivacyPhoneNumberSettings_WhoCanSeeMyPhoneNumber: String { return self._s[2107]! }
+ public var Call_Speaker: String { return self._s[2109]! }
+ public var AutoNightTheme_AutomaticSection: String { return self._s[2110]! }
+ public var Channel_OwnershipTransfer_EnterPassword: String { return self._s[2112]! }
+ public var Channel_Username_InvalidCharacters: String { return self._s[2113]! }
public func Channel_AdminLog_MessageChangedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2112]!, self._r[2112]!, [_0])
+ return formatWithArgumentRanges(self._s[2114]!, self._r[2114]!, [_0])
}
- public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2113]! }
- public var PrivacySettings_LastSeenTitle: String { return self._s[2114]! }
- public var Channel_AdminLog_CanInviteUsers: String { return self._s[2115]! }
- public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2116]! }
- public var OwnershipTransfer_SecurityCheck: String { return self._s[2117]! }
- public var Conversation_MessageDeliveryFailed: String { return self._s[2118]! }
- public var Watch_ChatList_NoConversationsText: String { return self._s[2119]! }
- public var Bot_Unblock: String { return self._s[2120]! }
- public var TextFormat_Italic: String { return self._s[2121]! }
- public var WallpaperSearch_ColorPink: String { return self._s[2122]! }
- public var Settings_About_Help: String { return self._s[2123]! }
- public var SearchImages_Title: String { return self._s[2124]! }
- public var Weekday_Wednesday: String { return self._s[2125]! }
- public var Conversation_ClousStorageInfo_Description1: String { return self._s[2126]! }
- public var ExplicitContent_AlertTitle: String { return self._s[2127]! }
+ public var AutoDownloadSettings_AutodownloadFiles: String { return self._s[2115]! }
+ public var PrivacySettings_LastSeenTitle: String { return self._s[2116]! }
+ public var Channel_AdminLog_CanInviteUsers: String { return self._s[2117]! }
+ public var SettingsSearch_Synonyms_Privacy_Data_ClearPaymentsInfo: String { return self._s[2118]! }
+ public var OwnershipTransfer_SecurityCheck: String { return self._s[2119]! }
+ public var Conversation_MessageDeliveryFailed: String { return self._s[2120]! }
+ public var Watch_ChatList_NoConversationsText: String { return self._s[2121]! }
+ public var Bot_Unblock: String { return self._s[2122]! }
+ public var TextFormat_Italic: String { return self._s[2123]! }
+ public var WallpaperSearch_ColorPink: String { return self._s[2124]! }
+ public var Settings_About_Help: String { return self._s[2125]! }
+ public var SearchImages_Title: String { return self._s[2126]! }
+ public var Weekday_Wednesday: String { return self._s[2127]! }
+ public var Conversation_ClousStorageInfo_Description1: String { return self._s[2128]! }
+ public var ExplicitContent_AlertTitle: String { return self._s[2129]! }
public func Time_PreciseDate_m5(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2128]!, self._r[2128]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[2130]!, self._r[2130]!, [_1, _2, _3])
}
- public var Channel_DiscussionGroup_Create: String { return self._s[2129]! }
- public var Weekday_Thursday: String { return self._s[2130]! }
- public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2131]! }
- public var Channel_Members_AddMembersHelp: String { return self._s[2132]! }
+ public var Channel_DiscussionGroup_Create: String { return self._s[2131]! }
+ public var Weekday_Thursday: String { return self._s[2132]! }
+ public var Channel_BanUser_PermissionChangeGroupInfo: String { return self._s[2133]! }
+ public var Channel_Members_AddMembersHelp: String { return self._s[2134]! }
public func Checkout_SavePasswordTimeout(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2133]!, self._r[2133]!, [_0])
+ return formatWithArgumentRanges(self._s[2135]!, self._r[2135]!, [_0])
}
- public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2134]! }
- public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2135]! }
- public var Passport_RequestedInformation: String { return self._s[2136]! }
- public var Login_PhoneAndCountryHelp: String { return self._s[2137]! }
- public var Conversation_EncryptionProcessing: String { return self._s[2139]! }
- public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2140]! }
- public var PhotoEditor_EnhanceTool: String { return self._s[2142]! }
- public var Channel_Setup_Title: String { return self._s[2143]! }
- public var Conversation_SearchPlaceholder: String { return self._s[2144]! }
- public var AccessDenied_LocationAlwaysDenied: String { return self._s[2145]! }
- public var Checkout_ErrorGeneric: String { return self._s[2146]! }
- public var Passport_Language_hu: String { return self._s[2147]! }
+ public var Channel_DiscussionGroup_LinkGroup: String { return self._s[2136]! }
+ public var SettingsSearch_Synonyms_Notifications_InAppNotificationsVibrate: String { return self._s[2137]! }
+ public var Passport_RequestedInformation: String { return self._s[2138]! }
+ public var Login_PhoneAndCountryHelp: String { return self._s[2139]! }
+ public var Conversation_EncryptionProcessing: String { return self._s[2141]! }
+ public var Notifications_PermissionsSuppressWarningTitle: String { return self._s[2142]! }
+ public var PhotoEditor_EnhanceTool: String { return self._s[2144]! }
+ public var Channel_Setup_Title: String { return self._s[2145]! }
+ public var Conversation_SearchPlaceholder: String { return self._s[2146]! }
+ public var AccessDenied_LocationAlwaysDenied: String { return self._s[2147]! }
+ public var Checkout_ErrorGeneric: String { return self._s[2148]! }
+ public var Passport_Language_hu: String { return self._s[2149]! }
public func Passport_Identity_UploadOneOfScan(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2149]!, self._r[2149]!, [_0])
+ return formatWithArgumentRanges(self._s[2151]!, self._r[2151]!, [_0])
}
public func PUSH_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2152]!, self._r[2152]!, [_1])
+ return formatWithArgumentRanges(self._s[2154]!, self._r[2154]!, [_1])
}
public func UserInfo_BlockConfirmationTitle(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2153]!, self._r[2153]!, [_0])
+ return formatWithArgumentRanges(self._s[2155]!, self._r[2155]!, [_0])
}
- public var Group_Location_Info: String { return self._s[2154]! }
- public var Conversation_CloudStorageInfo_Title: String { return self._s[2155]! }
- public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2156]! }
- public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2157]! }
+ public var Group_Location_Info: String { return self._s[2156]! }
+ public var Conversation_CloudStorageInfo_Title: String { return self._s[2157]! }
+ public var Permissions_PeopleNearbyAllow_v0: String { return self._s[2158]! }
+ public var PhotoEditor_CropAspectRatioSquare: String { return self._s[2159]! }
public func Notification_Exceptions_MutedUntil(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2158]!, self._r[2158]!, [_0])
+ return formatWithArgumentRanges(self._s[2160]!, self._r[2160]!, [_0])
}
- public var Conversation_ClearPrivateHistory: String { return self._s[2159]! }
- public var ContactInfo_PhoneLabelHome: String { return self._s[2160]! }
- public var PrivacySettings_LastSeenContacts: String { return self._s[2161]! }
+ public var Conversation_ClearPrivateHistory: String { return self._s[2161]! }
+ public var ContactInfo_PhoneLabelHome: String { return self._s[2162]! }
+ public var PrivacySettings_LastSeenContacts: String { return self._s[2163]! }
public func ChangePhone_ErrorOccupied(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2162]!, self._r[2162]!, [_0])
+ return formatWithArgumentRanges(self._s[2164]!, self._r[2164]!, [_0])
}
- public var Passport_Language_cs: String { return self._s[2163]! }
- public var Message_PinnedAnimationMessage: String { return self._s[2165]! }
- public var Passport_Identity_ReverseSideHelp: String { return self._s[2167]! }
- public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2168]! }
- public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2170]! }
- public var Embed_PlayingInPIP: String { return self._s[2171]! }
- public var AutoNightTheme_ScheduleSection: String { return self._s[2172]! }
+ public var Passport_Language_cs: String { return self._s[2165]! }
+ public var Message_PinnedAnimationMessage: String { return self._s[2167]! }
+ public var Passport_Identity_ReverseSideHelp: String { return self._s[2169]! }
+ public var SettingsSearch_Synonyms_Data_Storage_Title: String { return self._s[2170]! }
+ public var SettingsSearch_Synonyms_Privacy_PasscodeAndTouchId: String { return self._s[2172]! }
+ public var Embed_PlayingInPIP: String { return self._s[2173]! }
+ public var AutoNightTheme_ScheduleSection: String { return self._s[2174]! }
public func Call_EmojiDescription(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2173]!, self._r[2173]!, [_0])
+ return formatWithArgumentRanges(self._s[2175]!, self._r[2175]!, [_0])
}
- public var MediaPicker_LivePhotoDescription: String { return self._s[2174]! }
+ public var MediaPicker_LivePhotoDescription: String { return self._s[2176]! }
public func Channel_AdminLog_MessageRestrictedName(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2175]!, self._r[2175]!, [_1])
+ return formatWithArgumentRanges(self._s[2177]!, self._r[2177]!, [_1])
}
- public var Notification_PaymentSent: String { return self._s[2176]! }
- public var PhotoEditor_CurvesGreen: String { return self._s[2177]! }
- public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2178]! }
- public var SaveIncomingPhotosSettings_Title: String { return self._s[2179]! }
- public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2180]! }
+ public var Notification_PaymentSent: String { return self._s[2178]! }
+ public var PhotoEditor_CurvesGreen: String { return self._s[2179]! }
+ public var Notification_Exceptions_PreviewAlwaysOff: String { return self._s[2180]! }
+ public var SaveIncomingPhotosSettings_Title: String { return self._s[2181]! }
+ public var NotificationSettings_ShowNotificationsAllAccounts: String { return self._s[2182]! }
public func PUSH_MESSAGE_SCREENSHOT(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2183]!, self._r[2183]!, [_1])
- }
- public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2184]!, self._r[2184]!, [_1])
- }
- public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) {
return formatWithArgumentRanges(self._s[2185]!, self._r[2185]!, [_1])
}
- public var NetworkUsageSettings_CallDataSection: String { return self._s[2187]! }
- public var PasscodeSettings_HelpTop: String { return self._s[2188]! }
- public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2189]! }
- public var Passport_Address_TypeRentalAgreement: String { return self._s[2190]! }
- public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2191]! }
- public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2192]! }
- public var Call_Accept: String { return self._s[2194]! }
- public var GroupRemoved_RemoveInfo: String { return self._s[2195]! }
- public var Month_GenMarch: String { return self._s[2197]! }
- public var PhotoEditor_ShadowsTool: String { return self._s[2198]! }
- public var LoginPassword_Title: String { return self._s[2199]! }
- public var Call_End: String { return self._s[2200]! }
- public var Watch_Conversation_GroupInfo: String { return self._s[2201]! }
- public var CallSettings_Always: String { return self._s[2202]! }
- public var CallFeedback_Success: String { return self._s[2203]! }
- public var TwoStepAuth_SetupHint: String { return self._s[2204]! }
+ public func PUSH_MESSAGE_PHOTO_SECRET(_ _1: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[2186]!, self._r[2186]!, [_1])
+ }
+ public func ApplyLanguage_UnsufficientDataText(_ _1: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[2187]!, self._r[2187]!, [_1])
+ }
+ public var NetworkUsageSettings_CallDataSection: String { return self._s[2189]! }
+ public var PasscodeSettings_HelpTop: String { return self._s[2190]! }
+ public var Group_OwnershipTransfer_ErrorAdminsTooMuch: String { return self._s[2191]! }
+ public var Passport_Address_TypeRentalAgreement: String { return self._s[2192]! }
+ public var ReportPeer_ReasonOther_Placeholder: String { return self._s[2193]! }
+ public var CheckoutInfo_ErrorPhoneInvalid: String { return self._s[2194]! }
+ public var Call_Accept: String { return self._s[2196]! }
+ public var GroupRemoved_RemoveInfo: String { return self._s[2197]! }
+ public var Month_GenMarch: String { return self._s[2199]! }
+ public var PhotoEditor_ShadowsTool: String { return self._s[2200]! }
+ public var LoginPassword_Title: String { return self._s[2201]! }
+ public var Call_End: String { return self._s[2202]! }
+ public var Watch_Conversation_GroupInfo: String { return self._s[2203]! }
+ public var CallSettings_Always: String { return self._s[2204]! }
+ public var CallFeedback_Success: String { return self._s[2205]! }
+ public var TwoStepAuth_SetupHint: String { return self._s[2206]! }
public func AddContact_ContactWillBeSharedAfterMutual(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2205]!, self._r[2205]!, [_1])
+ return formatWithArgumentRanges(self._s[2207]!, self._r[2207]!, [_1])
}
- public var ConversationProfile_UsersTooMuchError: String { return self._s[2206]! }
- public var Login_PhoneTitle: String { return self._s[2207]! }
- public var Passport_FieldPhoneHelp: String { return self._s[2208]! }
- public var Weekday_ShortSunday: String { return self._s[2209]! }
- public var Passport_InfoFAQ_URL: String { return self._s[2210]! }
- public var ContactInfo_Job: String { return self._s[2212]! }
- public var UserInfo_InviteBotToGroup: String { return self._s[2213]! }
- public var Appearance_ThemeCarouselNightBlue: String { return self._s[2214]! }
- public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2215]! }
- public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2216]! }
- public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2217]! }
- public var CallFeedback_ReasonNoise: String { return self._s[2218]! }
- public var Appearance_AppIconDefault: String { return self._s[2220]! }
- public var Passport_Identity_AddInternalPassport: String { return self._s[2221]! }
- public var MediaPicker_AddCaption: String { return self._s[2222]! }
- public var CallSettings_TabIconDescription: String { return self._s[2223]! }
- public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2224]! }
- public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2225]! }
- public var Passport_Identity_TypePersonalDetails: String { return self._s[2226]! }
- public var DialogList_SearchSectionRecent: String { return self._s[2227]! }
- public var PrivacyPolicy_DeclineMessage: String { return self._s[2228]! }
- public var LogoutOptions_ClearCacheText: String { return self._s[2231]! }
- public var LastSeen_WithinAWeek: String { return self._s[2232]! }
- public var ChannelMembers_GroupAdminsTitle: String { return self._s[2233]! }
- public var Conversation_CloudStorage_ChatStatus: String { return self._s[2235]! }
+ public var ConversationProfile_UsersTooMuchError: String { return self._s[2208]! }
+ public var Login_PhoneTitle: String { return self._s[2209]! }
+ public var Passport_FieldPhoneHelp: String { return self._s[2210]! }
+ public var Weekday_ShortSunday: String { return self._s[2211]! }
+ public var Passport_InfoFAQ_URL: String { return self._s[2212]! }
+ public var ContactInfo_Job: String { return self._s[2214]! }
+ public var UserInfo_InviteBotToGroup: String { return self._s[2215]! }
+ public var Appearance_ThemeCarouselNightBlue: String { return self._s[2216]! }
+ public var TwoStepAuth_PasswordRemovePassportConfirmation: String { return self._s[2217]! }
+ public var SettingsSearch_Synonyms_Notifications_InAppNotificationsPreview: String { return self._s[2218]! }
+ public var Passport_DeletePersonalDetailsConfirmation: String { return self._s[2219]! }
+ public var CallFeedback_ReasonNoise: String { return self._s[2220]! }
+ public var Appearance_AppIconDefault: String { return self._s[2222]! }
+ public var Passport_Identity_AddInternalPassport: String { return self._s[2223]! }
+ public var MediaPicker_AddCaption: String { return self._s[2224]! }
+ public var CallSettings_TabIconDescription: String { return self._s[2225]! }
+ public var ChatList_UndoArchiveHiddenTitle: String { return self._s[2226]! }
+ public var Privacy_GroupsAndChannels_AlwaysAllow: String { return self._s[2227]! }
+ public var Passport_Identity_TypePersonalDetails: String { return self._s[2228]! }
+ public var DialogList_SearchSectionRecent: String { return self._s[2229]! }
+ public var PrivacyPolicy_DeclineMessage: String { return self._s[2230]! }
+ public var LogoutOptions_ClearCacheText: String { return self._s[2233]! }
+ public var LastSeen_WithinAWeek: String { return self._s[2234]! }
+ public var ChannelMembers_GroupAdminsTitle: String { return self._s[2235]! }
+ public var Conversation_CloudStorage_ChatStatus: String { return self._s[2237]! }
public func AddContact_SharedContactExceptionInfo(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2236]!, self._r[2236]!, [_0])
+ return formatWithArgumentRanges(self._s[2238]!, self._r[2238]!, [_0])
}
- public var Passport_Address_TypeResidentialAddress: String { return self._s[2237]! }
- public var Conversation_StatusLeftGroup: String { return self._s[2238]! }
- public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2239]! }
- public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2241]! }
- public var GroupPermission_AddSuccess: String { return self._s[2242]! }
- public var PhotoEditor_BlurToolRadial: String { return self._s[2244]! }
- public var Conversation_ContextMenuCopy: String { return self._s[2245]! }
- public var AccessDenied_CallMicrophone: String { return self._s[2246]! }
+ public var Passport_Address_TypeResidentialAddress: String { return self._s[2239]! }
+ public var Conversation_StatusLeftGroup: String { return self._s[2240]! }
+ public var SocksProxySetup_ProxyDetailsTitle: String { return self._s[2241]! }
+ public var SettingsSearch_Synonyms_Calls_Title: String { return self._s[2243]! }
+ public var GroupPermission_AddSuccess: String { return self._s[2244]! }
+ public var PhotoEditor_BlurToolRadial: String { return self._s[2246]! }
+ public var Conversation_ContextMenuCopy: String { return self._s[2247]! }
+ public var AccessDenied_CallMicrophone: String { return self._s[2248]! }
public func Time_PreciseDate_m2(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2247]!, self._r[2247]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[2249]!, self._r[2249]!, [_1, _2, _3])
}
- public var Login_InvalidFirstNameError: String { return self._s[2248]! }
- public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2249]! }
- public var Checkout_PaymentMethod_New: String { return self._s[2250]! }
- public var ShareMenu_CopyShareLinkGame: String { return self._s[2251]! }
- public var PhotoEditor_QualityTool: String { return self._s[2252]! }
- public var Login_SendCodeViaSms: String { return self._s[2253]! }
- public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2254]! }
- public var Login_EmailNotConfiguredError: String { return self._s[2255]! }
- public var SocksProxySetup_Status: String { return self._s[2256]! }
- public var PrivacyPolicy_Accept: String { return self._s[2257]! }
- public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2258]! }
- public var Appearance_AppIconClassicX: String { return self._s[2259]! }
+ public var Login_InvalidFirstNameError: String { return self._s[2250]! }
+ public var Notifications_Badge_CountUnreadMessages_InfoOn: String { return self._s[2251]! }
+ public var Checkout_PaymentMethod_New: String { return self._s[2252]! }
+ public var ShareMenu_CopyShareLinkGame: String { return self._s[2253]! }
+ public var PhotoEditor_QualityTool: String { return self._s[2254]! }
+ public var Login_SendCodeViaSms: String { return self._s[2255]! }
+ public var SettingsSearch_Synonyms_Privacy_DeleteAccountIfAwayFor: String { return self._s[2256]! }
+ public var Login_EmailNotConfiguredError: String { return self._s[2257]! }
+ public var SocksProxySetup_Status: String { return self._s[2258]! }
+ public var PrivacyPolicy_Accept: String { return self._s[2259]! }
+ public var Notifications_ExceptionsMessagePlaceholder: String { return self._s[2260]! }
+ public var Appearance_AppIconClassicX: String { return self._s[2261]! }
public func PUSH_CHAT_MESSAGE_TEXT(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2260]!, self._r[2260]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[2262]!, self._r[2262]!, [_1, _2, _3])
}
- public var OwnershipTransfer_SecurityRequirements: String { return self._s[2261]! }
- public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2262]! }
- public var AutoNightTheme_Automatic: String { return self._s[2263]! }
- public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2264]! }
- public var Privacy_ContactsSyncHelp: String { return self._s[2265]! }
- public var Cache_Help: String { return self._s[2266]! }
- public var Group_ErrorAccessDenied: String { return self._s[2267]! }
- public var Passport_Language_fa: String { return self._s[2268]! }
- public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2269]! }
- public var PrivacySettings_LastSeen: String { return self._s[2270]! }
+ public var OwnershipTransfer_SecurityRequirements: String { return self._s[2263]! }
+ public var InfoPlist_NSLocationAlwaysUsageDescription: String { return self._s[2264]! }
+ public var AutoNightTheme_Automatic: String { return self._s[2265]! }
+ public var Channel_Username_InvalidStartsWithNumber: String { return self._s[2266]! }
+ public var Privacy_ContactsSyncHelp: String { return self._s[2267]! }
+ public var Cache_Help: String { return self._s[2268]! }
+ public var Group_ErrorAccessDenied: String { return self._s[2269]! }
+ public var Passport_Language_fa: String { return self._s[2270]! }
+ public var Login_ResetAccountProtected_TimerTitle: String { return self._s[2271]! }
+ public var PrivacySettings_LastSeen: String { return self._s[2272]! }
public func DialogList_MultipleTyping(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2271]!, self._r[2271]!, [_0, _1])
+ return formatWithArgumentRanges(self._s[2273]!, self._r[2273]!, [_0, _1])
}
- public var Preview_SaveGif: String { return self._s[2275]! }
- public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2276]! }
- public var Profile_About: String { return self._s[2277]! }
- public var Channel_About_Placeholder: String { return self._s[2278]! }
- public var Login_InfoTitle: String { return self._s[2279]! }
+ public var Preview_SaveGif: String { return self._s[2277]! }
+ public var SettingsSearch_Synonyms_Privacy_TwoStepAuth: String { return self._s[2278]! }
+ public var Profile_About: String { return self._s[2279]! }
+ public var Channel_About_Placeholder: String { return self._s[2280]! }
+ public var Login_InfoTitle: String { return self._s[2281]! }
public func TwoStepAuth_SetupPendingEmail(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2280]!, self._r[2280]!, [_0])
+ return formatWithArgumentRanges(self._s[2282]!, self._r[2282]!, [_0])
}
- public var Watch_Suggestion_CantTalk: String { return self._s[2282]! }
- public var ContactInfo_Title: String { return self._s[2283]! }
- public var Media_ShareThisVideo: String { return self._s[2284]! }
- public var Weekday_ShortFriday: String { return self._s[2285]! }
- public var AccessDenied_Contacts: String { return self._s[2286]! }
- public var Notification_CallIncomingShort: String { return self._s[2287]! }
- public var Group_Setup_TypePublic: String { return self._s[2288]! }
- public var Notifications_MessageNotificationsExceptions: String { return self._s[2289]! }
- public var Notifications_Badge_IncludeChannels: String { return self._s[2290]! }
- public var Notifications_MessageNotificationsPreview: String { return self._s[2293]! }
- public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2294]! }
- public var Group_ErrorAddTooMuchBots: String { return self._s[2295]! }
- public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2296]! }
- public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2297]! }
- public var DialogList_Typing: String { return self._s[2298]! }
- public var CallFeedback_IncludeLogs: String { return self._s[2300]! }
- public var Checkout_Phone: String { return self._s[2302]! }
- public var Login_InfoFirstNamePlaceholder: String { return self._s[2305]! }
- public var Privacy_Calls_Integration: String { return self._s[2306]! }
- public var Notifications_PermissionsAllow: String { return self._s[2307]! }
- public var TwoStepAuth_AddHintDescription: String { return self._s[2311]! }
- public var Settings_ChatSettings: String { return self._s[2312]! }
+ public var Watch_Suggestion_CantTalk: String { return self._s[2284]! }
+ public var ContactInfo_Title: String { return self._s[2285]! }
+ public var Media_ShareThisVideo: String { return self._s[2286]! }
+ public var Weekday_ShortFriday: String { return self._s[2287]! }
+ public var AccessDenied_Contacts: String { return self._s[2288]! }
+ public var Notification_CallIncomingShort: String { return self._s[2289]! }
+ public var Group_Setup_TypePublic: String { return self._s[2290]! }
+ public var Notifications_MessageNotificationsExceptions: String { return self._s[2291]! }
+ public var Notifications_Badge_IncludeChannels: String { return self._s[2292]! }
+ public var Notifications_MessageNotificationsPreview: String { return self._s[2295]! }
+ public var ConversationProfile_ErrorCreatingConversation: String { return self._s[2296]! }
+ public var Group_ErrorAddTooMuchBots: String { return self._s[2297]! }
+ public var Privacy_GroupsAndChannels_CustomShareHelp: String { return self._s[2298]! }
+ public var Permissions_CellularDataAllowInSettings_v0: String { return self._s[2299]! }
+ public var DialogList_Typing: String { return self._s[2300]! }
+ public var CallFeedback_IncludeLogs: String { return self._s[2302]! }
+ public var Checkout_Phone: String { return self._s[2304]! }
+ public var Login_InfoFirstNamePlaceholder: String { return self._s[2307]! }
+ public var Privacy_Calls_Integration: String { return self._s[2308]! }
+ public var Notifications_PermissionsAllow: String { return self._s[2309]! }
+ public var TwoStepAuth_AddHintDescription: String { return self._s[2313]! }
+ public var Settings_ChatSettings: String { return self._s[2314]! }
public func PUSH_MESSAGE_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2313]!, self._r[2313]!, [_1])
+ return formatWithArgumentRanges(self._s[2315]!, self._r[2315]!, [_1])
}
public func Channel_AdminLog_MessageInvitedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2314]!, self._r[2314]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2316]!, self._r[2316]!, [_1, _2])
}
- public var GroupRemoved_DeleteUser: String { return self._s[2316]! }
+ public var GroupRemoved_DeleteUser: String { return self._s[2318]! }
public func Channel_AdminLog_PollStopped(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2317]!, self._r[2317]!, [_0])
+ return formatWithArgumentRanges(self._s[2319]!, self._r[2319]!, [_0])
}
public func PUSH_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2318]!, self._r[2318]!, [_1])
+ return formatWithArgumentRanges(self._s[2320]!, self._r[2320]!, [_1])
}
- public var Login_ContinueWithLocalization: String { return self._s[2319]! }
- public var Watch_Message_ForwardedFrom: String { return self._s[2320]! }
- public var TwoStepAuth_EnterEmailCode: String { return self._s[2322]! }
- public var Conversation_Unblock: String { return self._s[2323]! }
- public var PrivacySettings_DataSettings: String { return self._s[2324]! }
- public var Group_PublicLink_Info: String { return self._s[2325]! }
- public var Notifications_InAppNotificationsVibrate: String { return self._s[2326]! }
+ public var Login_ContinueWithLocalization: String { return self._s[2321]! }
+ public var Watch_Message_ForwardedFrom: String { return self._s[2322]! }
+ public var TwoStepAuth_EnterEmailCode: String { return self._s[2324]! }
+ public var Conversation_Unblock: String { return self._s[2325]! }
+ public var PrivacySettings_DataSettings: String { return self._s[2326]! }
+ public var Group_PublicLink_Info: String { return self._s[2327]! }
+ public var Notifications_InAppNotificationsVibrate: String { return self._s[2328]! }
public func Privacy_GroupsAndChannels_InviteToChannelError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2327]!, self._r[2327]!, [_0, _1])
+ return formatWithArgumentRanges(self._s[2329]!, self._r[2329]!, [_0, _1])
}
- public var PrivacySettings_Passcode: String { return self._s[2330]! }
- public var Call_Mute: String { return self._s[2331]! }
- public var Passport_Language_dz: String { return self._s[2332]! }
- public var Passport_Language_tk: String { return self._s[2333]! }
+ public var PrivacySettings_Passcode: String { return self._s[2332]! }
+ public var Call_Mute: String { return self._s[2333]! }
+ public var Passport_Language_dz: String { return self._s[2334]! }
+ public var Passport_Language_tk: String { return self._s[2335]! }
public func Login_EmailCodeSubject(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2334]!, self._r[2334]!, [_0])
+ return formatWithArgumentRanges(self._s[2336]!, self._r[2336]!, [_0])
}
- public var Settings_Search: String { return self._s[2335]! }
- public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2336]! }
- public var Conversation_ContextMenuReply: String { return self._s[2337]! }
- public var WallpaperSearch_ColorBrown: String { return self._s[2338]! }
- public var Tour_Title1: String { return self._s[2339]! }
- public var Conversation_ClearGroupHistory: String { return self._s[2341]! }
- public var WallpaperPreview_Motion: String { return self._s[2342]! }
+ public var Settings_Search: String { return self._s[2337]! }
+ public var InfoPlist_NSPhotoLibraryUsageDescription: String { return self._s[2338]! }
+ public var Conversation_ContextMenuReply: String { return self._s[2339]! }
+ public var WallpaperSearch_ColorBrown: String { return self._s[2340]! }
+ public var Tour_Title1: String { return self._s[2341]! }
+ public var Conversation_ClearGroupHistory: String { return self._s[2343]! }
+ public var WallpaperPreview_Motion: String { return self._s[2344]! }
public func Checkout_PasswordEntry_Text(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2343]!, self._r[2343]!, [_0])
+ return formatWithArgumentRanges(self._s[2345]!, self._r[2345]!, [_0])
}
- public var Call_RateCall: String { return self._s[2344]! }
- public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2345]! }
- public var Passport_PasswordCompleteSetup: String { return self._s[2346]! }
- public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2347]! }
- public var UserInfo_LastNamePlaceholder: String { return self._s[2349]! }
+ public var Call_RateCall: String { return self._s[2346]! }
+ public var Channel_AdminLog_BanSendStickersAndGifs: String { return self._s[2347]! }
+ public var Passport_PasswordCompleteSetup: String { return self._s[2348]! }
+ public var Conversation_InputTextSilentBroadcastPlaceholder: String { return self._s[2349]! }
+ public var UserInfo_LastNamePlaceholder: String { return self._s[2351]! }
public func Login_WillCallYou(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2351]!, self._r[2351]!, [_0])
+ return formatWithArgumentRanges(self._s[2353]!, self._r[2353]!, [_0])
}
- public var Compose_Create: String { return self._s[2352]! }
- public var Contacts_InviteToTelegram: String { return self._s[2353]! }
- public var GroupInfo_Notifications: String { return self._s[2354]! }
- public var Message_PinnedLiveLocationMessage: String { return self._s[2356]! }
- public var Month_GenApril: String { return self._s[2357]! }
- public var Appearance_AutoNightTheme: String { return self._s[2358]! }
- public var ChatSettings_AutomaticAudioDownload: String { return self._s[2360]! }
- public var Login_CodeSentSms: String { return self._s[2362]! }
+ public var Compose_Create: String { return self._s[2354]! }
+ public var Contacts_InviteToTelegram: String { return self._s[2355]! }
+ public var GroupInfo_Notifications: String { return self._s[2356]! }
+ public var Message_PinnedLiveLocationMessage: String { return self._s[2358]! }
+ public var Month_GenApril: String { return self._s[2359]! }
+ public var Appearance_AutoNightTheme: String { return self._s[2360]! }
+ public var ChatSettings_AutomaticAudioDownload: String { return self._s[2362]! }
+ public var Login_CodeSentSms: String { return self._s[2364]! }
public func UserInfo_UnblockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2363]!, self._r[2363]!, [_0])
+ return formatWithArgumentRanges(self._s[2365]!, self._r[2365]!, [_0])
}
- public var EmptyGroupInfo_Line3: String { return self._s[2364]! }
- public var LogoutOptions_ContactSupportText: String { return self._s[2365]! }
- public var Passport_Language_hr: String { return self._s[2366]! }
- public var Common_ActionNotAllowedError: String { return self._s[2367]! }
+ public var EmptyGroupInfo_Line3: String { return self._s[2366]! }
+ public var LogoutOptions_ContactSupportText: String { return self._s[2367]! }
+ public var Passport_Language_hr: String { return self._s[2368]! }
+ public var Common_ActionNotAllowedError: String { return self._s[2369]! }
public func Channel_AdminLog_MessageRestrictedNewSetting(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2368]!, self._r[2368]!, [_0])
+ return formatWithArgumentRanges(self._s[2370]!, self._r[2370]!, [_0])
}
- public var GroupInfo_InviteLink_CopyLink: String { return self._s[2369]! }
- public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2370]! }
- public var Privacy_SecretChatsTitle: String { return self._s[2371]! }
- public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2373]! }
- public var GroupInfo_AddUserLeftError: String { return self._s[2374]! }
- public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2375]! }
- public var LogoutOptions_ContactSupportTitle: String { return self._s[2376]! }
- public var Channel_AddBotErrorHaveRights: String { return self._s[2377]! }
- public var Preview_DeleteGif: String { return self._s[2378]! }
- public var GroupInfo_Permissions_Exceptions: String { return self._s[2379]! }
- public var Group_ErrorNotMutualContact: String { return self._s[2380]! }
- public var Notification_MessageLifetime5s: String { return self._s[2381]! }
+ public var GroupInfo_InviteLink_CopyLink: String { return self._s[2371]! }
+ public var Conversation_InputTextBroadcastPlaceholder: String { return self._s[2372]! }
+ public var Privacy_SecretChatsTitle: String { return self._s[2373]! }
+ public var Notification_SecretChatMessageScreenshotSelf: String { return self._s[2375]! }
+ public var GroupInfo_AddUserLeftError: String { return self._s[2376]! }
+ public var AutoDownloadSettings_TypePrivateChats: String { return self._s[2377]! }
+ public var LogoutOptions_ContactSupportTitle: String { return self._s[2378]! }
+ public var Channel_AddBotErrorHaveRights: String { return self._s[2379]! }
+ public var Preview_DeleteGif: String { return self._s[2380]! }
+ public var GroupInfo_Permissions_Exceptions: String { return self._s[2381]! }
+ public var Group_ErrorNotMutualContact: String { return self._s[2382]! }
+ public var Notification_MessageLifetime5s: String { return self._s[2383]! }
public func Watch_LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2382]!, self._r[2382]!, [_0])
+ return formatWithArgumentRanges(self._s[2384]!, self._r[2384]!, [_0])
}
- public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2384]! }
- public var ReportSpam_DeleteThisChat: String { return self._s[2385]! }
- public var Passport_Address_AddBankStatement: String { return self._s[2386]! }
- public var Notification_CallIncoming: String { return self._s[2387]! }
- public var Compose_NewGroupTitle: String { return self._s[2388]! }
- public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2390]! }
- public var Passport_Address_Postcode: String { return self._s[2392]! }
+ public var Channel_OwnershipTransfer_ErrorPublicChannelsTooMuch: String { return self._s[2386]! }
+ public var ReportSpam_DeleteThisChat: String { return self._s[2387]! }
+ public var Passport_Address_AddBankStatement: String { return self._s[2388]! }
+ public var Notification_CallIncoming: String { return self._s[2389]! }
+ public var Compose_NewGroupTitle: String { return self._s[2390]! }
+ public var TwoStepAuth_RecoveryCodeHelp: String { return self._s[2392]! }
+ public var Passport_Address_Postcode: String { return self._s[2394]! }
public func LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2393]!, self._r[2393]!, [_0])
+ return formatWithArgumentRanges(self._s[2395]!, self._r[2395]!, [_0])
}
- public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2394]! }
- public var WallpaperColors_Title: String { return self._s[2395]! }
- public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2396]! }
- public var GroupPermission_Duration: String { return self._s[2397]! }
+ public var Checkout_NewCard_SaveInfoHelp: String { return self._s[2396]! }
+ public var WallpaperColors_Title: String { return self._s[2397]! }
+ public var SocksProxySetup_ShareQRCodeInfo: String { return self._s[2398]! }
+ public var GroupPermission_Duration: String { return self._s[2399]! }
public func Cache_Clear(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2398]!, self._r[2398]!, [_0])
+ return formatWithArgumentRanges(self._s[2400]!, self._r[2400]!, [_0])
}
- public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2399]! }
- public var Username_Placeholder: String { return self._s[2400]! }
- public var CallFeedback_WhatWentWrong: String { return self._s[2401]! }
- public var Passport_FieldAddressUploadHelp: String { return self._s[2402]! }
- public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2403]! }
+ public var Bot_GroupStatusDoesNotReadHistory: String { return self._s[2401]! }
+ public var Username_Placeholder: String { return self._s[2402]! }
+ public var CallFeedback_WhatWentWrong: String { return self._s[2403]! }
+ public var Passport_FieldAddressUploadHelp: String { return self._s[2404]! }
+ public var Permissions_NotificationsAllowInSettings_v0: String { return self._s[2405]! }
public func Channel_AdminLog_MessageChangedUnlinkedChannel(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2405]!, self._r[2405]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2407]!, self._r[2407]!, [_1, _2])
}
- public var Passport_PasswordDescription: String { return self._s[2406]! }
- public var Channel_MessagePhotoUpdated: String { return self._s[2407]! }
- public var MediaPicker_TapToUngroupDescription: String { return self._s[2408]! }
- public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2409]! }
- public var AttachmentMenu_PhotoOrVideo: String { return self._s[2410]! }
- public var Conversation_ContextMenuMore: String { return self._s[2411]! }
- public var Privacy_PaymentsClearInfo: String { return self._s[2412]! }
- public var CallSettings_TabIcon: String { return self._s[2413]! }
- public var KeyCommand_Find: String { return self._s[2414]! }
- public var Message_PinnedGame: String { return self._s[2415]! }
- public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2417]! }
- public var Login_CallRequestState2: String { return self._s[2419]! }
- public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2421]! }
+ public var Passport_PasswordDescription: String { return self._s[2408]! }
+ public var Channel_MessagePhotoUpdated: String { return self._s[2409]! }
+ public var MediaPicker_TapToUngroupDescription: String { return self._s[2410]! }
+ public var SettingsSearch_Synonyms_Notifications_BadgeCountUnreadMessages: String { return self._s[2411]! }
+ public var AttachmentMenu_PhotoOrVideo: String { return self._s[2412]! }
+ public var Conversation_ContextMenuMore: String { return self._s[2413]! }
+ public var Privacy_PaymentsClearInfo: String { return self._s[2414]! }
+ public var CallSettings_TabIcon: String { return self._s[2415]! }
+ public var KeyCommand_Find: String { return self._s[2416]! }
+ public var Message_PinnedGame: String { return self._s[2417]! }
+ public var Notifications_Badge_CountUnreadMessages_InfoOff: String { return self._s[2419]! }
+ public var Login_CallRequestState2: String { return self._s[2421]! }
+ public var CheckoutInfo_ReceiverInfoNamePlaceholder: String { return self._s[2423]! }
public func Checkout_PayPrice(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2423]!, self._r[2423]!, [_0])
+ return formatWithArgumentRanges(self._s[2425]!, self._r[2425]!, [_0])
}
- public var WallpaperPreview_Blurred: String { return self._s[2424]! }
- public var Conversation_InstantPagePreview: String { return self._s[2425]! }
+ public var WallpaperPreview_Blurred: String { return self._s[2426]! }
+ public var Conversation_InstantPagePreview: String { return self._s[2427]! }
public func DialogList_SingleUploadingVideoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2426]!, self._r[2426]!, [_0])
+ return formatWithArgumentRanges(self._s[2428]!, self._r[2428]!, [_0])
}
- public var SecretTimer_VideoDescription: String { return self._s[2429]! }
- public var WallpaperSearch_ColorRed: String { return self._s[2430]! }
- public var GroupPermission_NoPinMessages: String { return self._s[2431]! }
- public var Passport_Language_es: String { return self._s[2432]! }
- public var Permissions_ContactsAllow_v0: String { return self._s[2434]! }
- public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2435]! }
+ public var SecretTimer_VideoDescription: String { return self._s[2431]! }
+ public var WallpaperSearch_ColorRed: String { return self._s[2432]! }
+ public var GroupPermission_NoPinMessages: String { return self._s[2433]! }
+ public var Passport_Language_es: String { return self._s[2434]! }
+ public var Permissions_ContactsAllow_v0: String { return self._s[2436]! }
+ public var Conversation_EditingMessageMediaEditCurrentVideo: String { return self._s[2437]! }
public func PUSH_CHAT_MESSAGE_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2436]!, self._r[2436]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2438]!, self._r[2438]!, [_1, _2])
}
- public var Privacy_Forwards_CustomHelp: String { return self._s[2437]! }
- public var WebPreview_GettingLinkInfo: String { return self._s[2438]! }
- public var Watch_UserInfo_Unmute: String { return self._s[2439]! }
- public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2440]! }
- public var AccessDenied_CameraRestricted: String { return self._s[2442]! }
+ public var Privacy_Forwards_CustomHelp: String { return self._s[2439]! }
+ public var WebPreview_GettingLinkInfo: String { return self._s[2440]! }
+ public var Watch_UserInfo_Unmute: String { return self._s[2441]! }
+ public var GroupInfo_ChannelListNamePlaceholder: String { return self._s[2442]! }
+ public var AccessDenied_CameraRestricted: String { return self._s[2444]! }
public func Conversation_Kilobytes(_ _0: Int) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2443]!, self._r[2443]!, ["\(_0)"])
+ return formatWithArgumentRanges(self._s[2445]!, self._r[2445]!, ["\(_0)"])
}
- public var ChatList_ReadAll: String { return self._s[2445]! }
- public var Settings_CopyUsername: String { return self._s[2446]! }
- public var Contacts_SearchLabel: String { return self._s[2447]! }
- public var Map_OpenInYandexNavigator: String { return self._s[2449]! }
- public var PasscodeSettings_EncryptData: String { return self._s[2450]! }
- public var WallpaperSearch_ColorPrefix: String { return self._s[2451]! }
- public var Notifications_GroupNotificationsPreview: String { return self._s[2452]! }
- public var DialogList_AdNoticeAlert: String { return self._s[2453]! }
- public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2455]! }
- public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2456]! }
- public var Localization_LanguageCustom: String { return self._s[2457]! }
- public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2458]! }
- public var CallFeedback_Title: String { return self._s[2459]! }
- public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2462]! }
- public var Conversation_InfoGroup: String { return self._s[2463]! }
- public var Compose_NewMessage: String { return self._s[2464]! }
- public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2465]! }
- public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2466]! }
- public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2467]! }
+ public var ChatList_ReadAll: String { return self._s[2447]! }
+ public var Settings_CopyUsername: String { return self._s[2448]! }
+ public var Contacts_SearchLabel: String { return self._s[2449]! }
+ public var Map_OpenInYandexNavigator: String { return self._s[2451]! }
+ public var PasscodeSettings_EncryptData: String { return self._s[2452]! }
+ public var WallpaperSearch_ColorPrefix: String { return self._s[2453]! }
+ public var Notifications_GroupNotificationsPreview: String { return self._s[2454]! }
+ public var DialogList_AdNoticeAlert: String { return self._s[2455]! }
+ public var CheckoutInfo_ShippingInfoAddress1: String { return self._s[2457]! }
+ public var CheckoutInfo_ShippingInfoAddress2: String { return self._s[2458]! }
+ public var Localization_LanguageCustom: String { return self._s[2459]! }
+ public var Passport_Identity_TypeDriversLicenseUploadScan: String { return self._s[2460]! }
+ public var CallFeedback_Title: String { return self._s[2461]! }
+ public var Passport_Address_OneOfTypePassportRegistration: String { return self._s[2464]! }
+ public var Conversation_InfoGroup: String { return self._s[2465]! }
+ public var Compose_NewMessage: String { return self._s[2466]! }
+ public var FastTwoStepSetup_HintPlaceholder: String { return self._s[2467]! }
+ public var ChatSettings_AutoDownloadVideoMessages: String { return self._s[2468]! }
+ public var Channel_DiscussionGroup_UnlinkChannel: String { return self._s[2469]! }
public func Passport_Scans_ScanIndex(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2468]!, self._r[2468]!, [_0])
+ return formatWithArgumentRanges(self._s[2470]!, self._r[2470]!, [_0])
}
- public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2469]! }
- public var Login_CancelSignUpConfirmation: String { return self._s[2470]! }
- public var ChangePhoneNumberCode_Help: String { return self._s[2471]! }
- public var PrivacySettings_DeleteAccountHelp: String { return self._s[2472]! }
- public var Channel_BlackList_Title: String { return self._s[2473]! }
- public var UserInfo_PhoneCall: String { return self._s[2474]! }
- public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2476]! }
- public var State_connecting: String { return self._s[2477]! }
+ public var Channel_AdminLog_CanDeleteMessages: String { return self._s[2471]! }
+ public var Login_CancelSignUpConfirmation: String { return self._s[2472]! }
+ public var ChangePhoneNumberCode_Help: String { return self._s[2473]! }
+ public var PrivacySettings_DeleteAccountHelp: String { return self._s[2474]! }
+ public var Channel_BlackList_Title: String { return self._s[2475]! }
+ public var UserInfo_PhoneCall: String { return self._s[2476]! }
+ public var Passport_Address_OneOfTypeBankStatement: String { return self._s[2478]! }
+ public var State_connecting: String { return self._s[2479]! }
public func DialogList_SingleRecordingAudioSuffix(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2478]!, self._r[2478]!, [_0])
+ return formatWithArgumentRanges(self._s[2480]!, self._r[2480]!, [_0])
}
- public var Notifications_GroupNotifications: String { return self._s[2479]! }
- public var Passport_Identity_EditPassport: String { return self._s[2480]! }
- public var EnterPasscode_RepeatNewPasscode: String { return self._s[2482]! }
- public var Localization_EnglishLanguageName: String { return self._s[2483]! }
- public var Share_AuthDescription: String { return self._s[2484]! }
- public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2485]! }
- public var Passport_Identity_Surname: String { return self._s[2486]! }
- public var Compose_TokenListPlaceholder: String { return self._s[2487]! }
- public var Passport_Identity_OneOfTypePassport: String { return self._s[2488]! }
- public var Settings_AboutEmpty: String { return self._s[2489]! }
- public var Conversation_Unmute: String { return self._s[2490]! }
+ public var Notifications_GroupNotifications: String { return self._s[2481]! }
+ public var Passport_Identity_EditPassport: String { return self._s[2482]! }
+ public var EnterPasscode_RepeatNewPasscode: String { return self._s[2484]! }
+ public var Localization_EnglishLanguageName: String { return self._s[2485]! }
+ public var Share_AuthDescription: String { return self._s[2486]! }
+ public var SettingsSearch_Synonyms_Notifications_ChannelNotificationsAlert: String { return self._s[2487]! }
+ public var Passport_Identity_Surname: String { return self._s[2488]! }
+ public var Compose_TokenListPlaceholder: String { return self._s[2489]! }
+ public var Passport_Identity_OneOfTypePassport: String { return self._s[2490]! }
+ public var Settings_AboutEmpty: String { return self._s[2491]! }
+ public var Conversation_Unmute: String { return self._s[2492]! }
public func PUSH_CONTACT_JOINED(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2492]!, self._r[2492]!, [_1])
+ return formatWithArgumentRanges(self._s[2494]!, self._r[2494]!, [_1])
}
- public var Login_CodeSentCall: String { return self._s[2493]! }
- public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2495]! }
- public var ChatSettings_Appearance: String { return self._s[2496]! }
- public var Appearance_PickAccentColor: String { return self._s[2497]! }
+ public var Login_CodeSentCall: String { return self._s[2495]! }
+ public var ContactInfo_PhoneLabelHomeFax: String { return self._s[2497]! }
+ public var ChatSettings_Appearance: String { return self._s[2498]! }
+ public var Appearance_PickAccentColor: String { return self._s[2499]! }
public func PUSH_CHAT_MESSAGE_NOTEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2498]!, self._r[2498]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2500]!, self._r[2500]!, [_1, _2])
}
public func PUSH_MESSAGE_GEO(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2499]!, self._r[2499]!, [_1])
+ return formatWithArgumentRanges(self._s[2501]!, self._r[2501]!, [_1])
}
- public var Notification_CallMissed: String { return self._s[2500]! }
- public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[2501]! }
- public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2502]! }
- public var ChatAdmins_AdminLabel: String { return self._s[2504]! }
- public var KeyCommand_JumpToNextChat: String { return self._s[2505]! }
- public var Conversation_StopPollConfirmationTitle: String { return self._s[2507]! }
- public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[2508]! }
- public var Month_GenJune: String { return self._s[2509]! }
- public var Watch_Location_Current: String { return self._s[2510]! }
- public var Conversation_TitleMute: String { return self._s[2511]! }
+ public var Notification_CallMissed: String { return self._s[2502]! }
+ public var SettingsSearch_Synonyms_Appearance_ChatBackground_Custom: String { return self._s[2503]! }
+ public var Channel_AdminLogFilter_EventsInfo: String { return self._s[2504]! }
+ public var ChatAdmins_AdminLabel: String { return self._s[2506]! }
+ public var KeyCommand_JumpToNextChat: String { return self._s[2507]! }
+ public var Conversation_StopPollConfirmationTitle: String { return self._s[2509]! }
+ public var ChangePhoneNumberCode_CodePlaceholder: String { return self._s[2510]! }
+ public var Month_GenJune: String { return self._s[2511]! }
+ public var Watch_Location_Current: String { return self._s[2512]! }
+ public var Conversation_TitleMute: String { return self._s[2513]! }
public func PUSH_CHANNEL_MESSAGE_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2512]!, self._r[2512]!, [_1])
+ return formatWithArgumentRanges(self._s[2514]!, self._r[2514]!, [_1])
}
- public var GroupInfo_DeleteAndExit: String { return self._s[2513]! }
+ public var GroupInfo_DeleteAndExit: String { return self._s[2515]! }
public func Conversation_Moderate_DeleteAllMessages(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2514]!, self._r[2514]!, [_0])
+ return formatWithArgumentRanges(self._s[2516]!, self._r[2516]!, [_0])
}
- public var Call_ReportPlaceholder: String { return self._s[2515]! }
- public var MaskStickerSettings_Info: String { return self._s[2516]! }
+ public var Call_ReportPlaceholder: String { return self._s[2517]! }
+ public var MaskStickerSettings_Info: String { return self._s[2518]! }
public func GroupInfo_AddParticipantConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2517]!, self._r[2517]!, [_0])
+ return formatWithArgumentRanges(self._s[2519]!, self._r[2519]!, [_0])
}
- public var Checkout_NewCard_PostcodeTitle: String { return self._s[2518]! }
- public var Passport_Address_RegionPlaceholder: String { return self._s[2520]! }
- public var Contacts_ShareTelegram: String { return self._s[2521]! }
- public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[2522]! }
- public var Channel_ErrorAccessDenied: String { return self._s[2523]! }
- public var UserInfo_ScamBotWarning: String { return self._s[2525]! }
- public var Stickers_GroupChooseStickerPack: String { return self._s[2526]! }
- public var Call_ConnectionErrorTitle: String { return self._s[2527]! }
- public var UserInfo_NotificationsEnable: String { return self._s[2528]! }
- public var ArchivedChats_IntroText1: String { return self._s[2529]! }
- public var Tour_Text4: String { return self._s[2532]! }
- public var WallpaperSearch_Recent: String { return self._s[2533]! }
- public var GroupInfo_ScamGroupWarning: String { return self._s[2534]! }
- public var Profile_MessageLifetime2s: String { return self._s[2536]! }
- public var Notification_MessageLifetime2s: String { return self._s[2537]! }
+ public var Checkout_NewCard_PostcodeTitle: String { return self._s[2520]! }
+ public var Passport_Address_RegionPlaceholder: String { return self._s[2522]! }
+ public var Contacts_ShareTelegram: String { return self._s[2523]! }
+ public var EnterPasscode_EnterNewPasscodeNew: String { return self._s[2524]! }
+ public var Channel_ErrorAccessDenied: String { return self._s[2525]! }
+ public var UserInfo_ScamBotWarning: String { return self._s[2527]! }
+ public var Stickers_GroupChooseStickerPack: String { return self._s[2528]! }
+ public var Call_ConnectionErrorTitle: String { return self._s[2529]! }
+ public var UserInfo_NotificationsEnable: String { return self._s[2530]! }
+ public var ArchivedChats_IntroText1: String { return self._s[2531]! }
+ public var Tour_Text4: String { return self._s[2534]! }
+ public var WallpaperSearch_Recent: String { return self._s[2535]! }
+ public var GroupInfo_ScamGroupWarning: String { return self._s[2536]! }
+ public var Profile_MessageLifetime2s: String { return self._s[2538]! }
+ public var Notification_MessageLifetime2s: String { return self._s[2539]! }
public func Time_PreciseDate_m10(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2538]!, self._r[2538]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[2540]!, self._r[2540]!, [_1, _2, _3])
}
- public var Cache_ClearCache: String { return self._s[2539]! }
- public var AutoNightTheme_UpdateLocation: String { return self._s[2540]! }
- public var Permissions_NotificationsUnreachableText_v0: String { return self._s[2541]! }
+ public var Cache_ClearCache: String { return self._s[2541]! }
+ public var AutoNightTheme_UpdateLocation: String { return self._s[2542]! }
+ public var Permissions_NotificationsUnreachableText_v0: String { return self._s[2543]! }
public func Channel_AdminLog_MessageChangedGroupUsername(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2545]!, self._r[2545]!, [_0])
- }
- public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) {
return formatWithArgumentRanges(self._s[2547]!, self._r[2547]!, [_0])
}
- public var LocalGroup_Text: String { return self._s[2548]! }
- public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[2549]! }
- public var SocksProxySetup_TypeSocks: String { return self._s[2550]! }
- public var ChatList_UnarchiveAction: String { return self._s[2551]! }
- public var AutoNightTheme_Title: String { return self._s[2552]! }
- public var InstantPage_FeedbackButton: String { return self._s[2553]! }
- public var Passport_FieldAddress: String { return self._s[2554]! }
- public var Month_ShortMarch: String { return self._s[2555]! }
+ public func Conversation_ShareMyPhoneNumber_StatusSuccess(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[2549]!, self._r[2549]!, [_0])
+ }
+ public var LocalGroup_Text: String { return self._s[2550]! }
+ public var Channel_AdminLog_EmptyFilterTitle: String { return self._s[2551]! }
+ public var SocksProxySetup_TypeSocks: String { return self._s[2552]! }
+ public var ChatList_UnarchiveAction: String { return self._s[2553]! }
+ public var AutoNightTheme_Title: String { return self._s[2554]! }
+ public var InstantPage_FeedbackButton: String { return self._s[2555]! }
+ public var Passport_FieldAddress: String { return self._s[2556]! }
+ public var Month_ShortMarch: String { return self._s[2557]! }
public func PUSH_MESSAGE_INVOICE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2556]!, self._r[2556]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2558]!, self._r[2558]!, [_1, _2])
}
- public var SocksProxySetup_UsernamePlaceholder: String { return self._s[2557]! }
- public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[2558]! }
- public var Passport_FloodError: String { return self._s[2559]! }
- public var SecretGif_Title: String { return self._s[2560]! }
- public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2561]! }
- public var Passport_Language_th: String { return self._s[2563]! }
- public var Passport_Address_Address: String { return self._s[2564]! }
- public var Login_InvalidLastNameError: String { return self._s[2565]! }
- public var Notifications_InAppNotificationsPreview: String { return self._s[2566]! }
- public var Notifications_PermissionsUnreachableTitle: String { return self._s[2567]! }
- public var SettingsSearch_FAQ: String { return self._s[2568]! }
- public var ShareMenu_Send: String { return self._s[2569]! }
- public var WallpaperSearch_ColorYellow: String { return self._s[2571]! }
- public var Month_GenNovember: String { return self._s[2573]! }
- public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[2575]! }
+ public var SocksProxySetup_UsernamePlaceholder: String { return self._s[2559]! }
+ public var Conversation_ShareInlineBotLocationConfirmation: String { return self._s[2560]! }
+ public var Passport_FloodError: String { return self._s[2561]! }
+ public var SecretGif_Title: String { return self._s[2562]! }
+ public var NotificationSettings_ShowNotificationsAllAccountsInfoOn: String { return self._s[2563]! }
+ public var Passport_Language_th: String { return self._s[2565]! }
+ public var Passport_Address_Address: String { return self._s[2566]! }
+ public var Login_InvalidLastNameError: String { return self._s[2567]! }
+ public var Notifications_InAppNotificationsPreview: String { return self._s[2568]! }
+ public var Notifications_PermissionsUnreachableTitle: String { return self._s[2569]! }
+ public var SettingsSearch_FAQ: String { return self._s[2570]! }
+ public var ShareMenu_Send: String { return self._s[2571]! }
+ public var WallpaperSearch_ColorYellow: String { return self._s[2573]! }
+ public var Month_GenNovember: String { return self._s[2575]! }
+ public var SettingsSearch_Synonyms_Appearance_LargeEmoji: String { return self._s[2577]! }
public func Conversation_ShareMyPhoneNumberConfirmation(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2576]!, self._r[2576]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2578]!, self._r[2578]!, [_1, _2])
}
- public var Checkout_Email: String { return self._s[2577]! }
- public var NotificationsSound_Tritone: String { return self._s[2578]! }
- public var StickerPacksSettings_ManagingHelp: String { return self._s[2580]! }
+ public var Checkout_Email: String { return self._s[2579]! }
+ public var NotificationsSound_Tritone: String { return self._s[2580]! }
+ public var StickerPacksSettings_ManagingHelp: String { return self._s[2582]! }
public func PUSH_PINNED_ROUND(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2583]!, self._r[2583]!, [_1])
+ return formatWithArgumentRanges(self._s[2585]!, self._r[2585]!, [_1])
}
- public var ChangePhoneNumberNumber_Help: String { return self._s[2584]! }
+ public var ChangePhoneNumberNumber_Help: String { return self._s[2586]! }
public func Checkout_LiabilityAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2585]!, self._r[2585]!, [_1, _1, _1, _2])
+ return formatWithArgumentRanges(self._s[2587]!, self._r[2587]!, [_1, _1, _1, _2])
}
- public var ChatList_UndoArchiveTitle: String { return self._s[2586]! }
- public var Notification_Exceptions_Add: String { return self._s[2587]! }
- public var DialogList_You: String { return self._s[2588]! }
- public var MediaPicker_Send: String { return self._s[2591]! }
- public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2592]! }
- public var Call_AudioRouteSpeaker: String { return self._s[2593]! }
- public var Watch_UserInfo_Title: String { return self._s[2594]! }
- public var Appearance_AccentColor: String { return self._s[2595]! }
+ public var ChatList_UndoArchiveTitle: String { return self._s[2588]! }
+ public var Notification_Exceptions_Add: String { return self._s[2589]! }
+ public var DialogList_You: String { return self._s[2590]! }
+ public var MediaPicker_Send: String { return self._s[2593]! }
+ public var SettingsSearch_Synonyms_Stickers_Title: String { return self._s[2594]! }
+ public var Call_AudioRouteSpeaker: String { return self._s[2595]! }
+ public var Watch_UserInfo_Title: String { return self._s[2596]! }
+ public var Appearance_AccentColor: String { return self._s[2597]! }
public func Login_EmailPhoneSubject(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2596]!, self._r[2596]!, [_0])
+ return formatWithArgumentRanges(self._s[2598]!, self._r[2598]!, [_0])
}
- public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2597]! }
+ public var Permissions_ContactsAllowInSettings_v0: String { return self._s[2599]! }
public func PUSH_CHANNEL_MESSAGE_GAME(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2598]!, self._r[2598]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2600]!, self._r[2600]!, [_1, _2])
}
- public var Conversation_ClousStorageInfo_Description2: String { return self._s[2599]! }
- public var WebSearch_RecentClearConfirmation: String { return self._s[2600]! }
- public var Notification_CallOutgoing: String { return self._s[2601]! }
- public var PrivacySettings_PasscodeAndFaceId: String { return self._s[2602]! }
- public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[2603]! }
- public var Call_RecordingDisabledMessage: String { return self._s[2604]! }
- public var Message_Game: String { return self._s[2605]! }
- public var Conversation_PressVolumeButtonForSound: String { return self._s[2606]! }
- public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[2607]! }
- public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[2608]! }
- public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[2609]! }
- public var Date_DialogDateFormat: String { return self._s[2610]! }
- public var WallpaperColors_SetCustomColor: String { return self._s[2611]! }
- public var Notifications_InAppNotifications: String { return self._s[2612]! }
+ public var Conversation_ClousStorageInfo_Description2: String { return self._s[2601]! }
+ public var WebSearch_RecentClearConfirmation: String { return self._s[2602]! }
+ public var Notification_CallOutgoing: String { return self._s[2603]! }
+ public var PrivacySettings_PasscodeAndFaceId: String { return self._s[2604]! }
+ public var Channel_DiscussionGroup_MakeHistoryPublic: String { return self._s[2605]! }
+ public var Call_RecordingDisabledMessage: String { return self._s[2606]! }
+ public var Message_Game: String { return self._s[2607]! }
+ public var Conversation_PressVolumeButtonForSound: String { return self._s[2608]! }
+ public var PrivacyLastSeenSettings_CustomHelp: String { return self._s[2609]! }
+ public var Channel_DiscussionGroup_PrivateGroup: String { return self._s[2610]! }
+ public var Channel_EditAdmin_PermissionAddAdmins: String { return self._s[2611]! }
+ public var Date_DialogDateFormat: String { return self._s[2612]! }
+ public var WallpaperColors_SetCustomColor: String { return self._s[2613]! }
+ public var Notifications_InAppNotifications: String { return self._s[2614]! }
public func Channel_Management_RemovedBy(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2613]!, self._r[2613]!, [_0])
+ return formatWithArgumentRanges(self._s[2615]!, self._r[2615]!, [_0])
}
public func Settings_ApplyProxyAlert(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2614]!, self._r[2614]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2616]!, self._r[2616]!, [_1, _2])
}
- public var NewContact_Title: String { return self._s[2615]! }
+ public var NewContact_Title: String { return self._s[2617]! }
public func AutoDownloadSettings_UpToForAll(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2616]!, self._r[2616]!, [_0])
+ return formatWithArgumentRanges(self._s[2618]!, self._r[2618]!, [_0])
}
- public var Conversation_ViewContactDetails: String { return self._s[2617]! }
+ public var Conversation_ViewContactDetails: String { return self._s[2619]! }
public func PUSH_CHANNEL_MESSAGE_CONTACT(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2619]!, self._r[2619]!, [_1])
+ return formatWithArgumentRanges(self._s[2621]!, self._r[2621]!, [_1])
}
- public var Checkout_NewCard_CardholderNameTitle: String { return self._s[2620]! }
- public var Passport_Identity_ExpiryDateNone: String { return self._s[2621]! }
- public var PrivacySettings_Title: String { return self._s[2622]! }
- public var Conversation_SilentBroadcastTooltipOff: String { return self._s[2625]! }
- public var GroupRemoved_UsersSectionTitle: String { return self._s[2626]! }
- public var Contacts_PhoneNumber: String { return self._s[2627]! }
- public var Map_ShowPlaces: String { return self._s[2629]! }
- public var ChatAdmins_Title: String { return self._s[2630]! }
- public var InstantPage_Reference: String { return self._s[2632]! }
- public var ReportGroupLocation_Text: String { return self._s[2633]! }
+ public var Checkout_NewCard_CardholderNameTitle: String { return self._s[2622]! }
+ public var Passport_Identity_ExpiryDateNone: String { return self._s[2623]! }
+ public var PrivacySettings_Title: String { return self._s[2624]! }
+ public var Conversation_SilentBroadcastTooltipOff: String { return self._s[2627]! }
+ public var GroupRemoved_UsersSectionTitle: String { return self._s[2628]! }
+ public var Contacts_PhoneNumber: String { return self._s[2629]! }
+ public var Map_ShowPlaces: String { return self._s[2631]! }
+ public var ChatAdmins_Title: String { return self._s[2632]! }
+ public var InstantPage_Reference: String { return self._s[2634]! }
+ public var ReportGroupLocation_Text: String { return self._s[2635]! }
public func PUSH_CHAT_MESSAGE_FWD(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2634]!, self._r[2634]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2636]!, self._r[2636]!, [_1, _2])
}
- public var Camera_FlashOff: String { return self._s[2635]! }
- public var Watch_UserInfo_Block: String { return self._s[2636]! }
- public var ChatSettings_Stickers: String { return self._s[2637]! }
- public var ChatSettings_DownloadInBackground: String { return self._s[2638]! }
+ public var Camera_FlashOff: String { return self._s[2637]! }
+ public var Watch_UserInfo_Block: String { return self._s[2638]! }
+ public var ChatSettings_Stickers: String { return self._s[2639]! }
+ public var ChatSettings_DownloadInBackground: String { return self._s[2640]! }
public func UserInfo_BlockConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2639]!, self._r[2639]!, [_0])
+ return formatWithArgumentRanges(self._s[2641]!, self._r[2641]!, [_0])
}
- public var Settings_ViewPhoto: String { return self._s[2640]! }
- public var Login_CheckOtherSessionMessages: String { return self._s[2641]! }
- public var AutoDownloadSettings_Cellular: String { return self._s[2642]! }
- public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2643]! }
+ public var Settings_ViewPhoto: String { return self._s[2642]! }
+ public var Login_CheckOtherSessionMessages: String { return self._s[2643]! }
+ public var AutoDownloadSettings_Cellular: String { return self._s[2644]! }
+ public var SettingsSearch_Synonyms_Notifications_GroupNotificationsExceptions: String { return self._s[2645]! }
public func Target_InviteToGroupConfirmation(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2645]!, self._r[2645]!, [_0])
+ return formatWithArgumentRanges(self._s[2647]!, self._r[2647]!, [_0])
}
- public var Privacy_DeleteDrafts: String { return self._s[2646]! }
- public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[2647]! }
+ public var Privacy_DeleteDrafts: String { return self._s[2648]! }
+ public var Wallpaper_SetCustomBackgroundInfo: String { return self._s[2649]! }
public func LastSeen_AtDate(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2648]!, self._r[2648]!, [_0])
+ return formatWithArgumentRanges(self._s[2650]!, self._r[2650]!, [_0])
}
- public var DialogList_SavedMessagesHelp: String { return self._s[2649]! }
- public var DialogList_SavedMessages: String { return self._s[2650]! }
- public var GroupInfo_UpgradeButton: String { return self._s[2651]! }
- public var DialogList_Pin: String { return self._s[2653]! }
+ public var DialogList_SavedMessagesHelp: String { return self._s[2651]! }
+ public var DialogList_SavedMessages: String { return self._s[2652]! }
+ public var GroupInfo_UpgradeButton: String { return self._s[2653]! }
+ public var DialogList_Pin: String { return self._s[2655]! }
public func ForwardedAuthors2(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2654]!, self._r[2654]!, [_0, _1])
+ return formatWithArgumentRanges(self._s[2656]!, self._r[2656]!, [_0, _1])
}
public func Login_PhoneGenericEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2655]!, self._r[2655]!, [_0])
+ return formatWithArgumentRanges(self._s[2657]!, self._r[2657]!, [_0])
}
- public var Notification_Exceptions_AlwaysOn: String { return self._s[2656]! }
- public var UserInfo_NotificationsDisable: String { return self._s[2657]! }
- public var Paint_Outlined: String { return self._s[2658]! }
- public var Activity_PlayingGame: String { return self._s[2659]! }
- public var SearchImages_NoImagesFound: String { return self._s[2660]! }
- public var SocksProxySetup_ProxyType: String { return self._s[2661]! }
- public var AppleWatch_ReplyPresetsHelp: String { return self._s[2663]! }
- public var Conversation_ContextMenuCancelSending: String { return self._s[2664]! }
- public var Settings_AppLanguage: String { return self._s[2665]! }
- public var TwoStepAuth_ResetAccountHelp: String { return self._s[2666]! }
- public var Common_ChoosePhoto: String { return self._s[2667]! }
- public var CallFeedback_ReasonEcho: String { return self._s[2668]! }
+ public var Notification_Exceptions_AlwaysOn: String { return self._s[2658]! }
+ public var UserInfo_NotificationsDisable: String { return self._s[2659]! }
+ public var Paint_Outlined: String { return self._s[2660]! }
+ public var Activity_PlayingGame: String { return self._s[2661]! }
+ public var SearchImages_NoImagesFound: String { return self._s[2662]! }
+ public var SocksProxySetup_ProxyType: String { return self._s[2663]! }
+ public var AppleWatch_ReplyPresetsHelp: String { return self._s[2665]! }
+ public var Conversation_ContextMenuCancelSending: String { return self._s[2666]! }
+ public var Settings_AppLanguage: String { return self._s[2667]! }
+ public var TwoStepAuth_ResetAccountHelp: String { return self._s[2668]! }
+ public var Common_ChoosePhoto: String { return self._s[2669]! }
+ public var CallFeedback_ReasonEcho: String { return self._s[2670]! }
public func PUSH_PINNED_AUDIO(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2669]!, self._r[2669]!, [_1])
+ return formatWithArgumentRanges(self._s[2671]!, self._r[2671]!, [_1])
}
- public var Privacy_Calls_AlwaysAllow: String { return self._s[2670]! }
- public var Activity_UploadingVideo: String { return self._s[2671]! }
- public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[2672]! }
- public var NetworkUsageSettings_Wifi: String { return self._s[2673]! }
- public var Channel_BanUser_PermissionReadMessages: String { return self._s[2674]! }
- public var Checkout_PayWithTouchId: String { return self._s[2675]! }
- public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2676]! }
+ public var Privacy_Calls_AlwaysAllow: String { return self._s[2672]! }
+ public var Activity_UploadingVideo: String { return self._s[2673]! }
+ public var ChannelInfo_DeleteChannelConfirmation: String { return self._s[2674]! }
+ public var NetworkUsageSettings_Wifi: String { return self._s[2675]! }
+ public var Channel_BanUser_PermissionReadMessages: String { return self._s[2676]! }
+ public var Checkout_PayWithTouchId: String { return self._s[2677]! }
+ public var Wallpaper_ResetWallpapersConfirmation: String { return self._s[2678]! }
public func PUSH_LOCKED_MESSAGE(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2678]!, self._r[2678]!, [_1])
+ return formatWithArgumentRanges(self._s[2680]!, self._r[2680]!, [_1])
}
- public var Notifications_ExceptionsNone: String { return self._s[2679]! }
+ public var Notifications_ExceptionsNone: String { return self._s[2681]! }
public func Message_ForwardedMessageShort(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2680]!, self._r[2680]!, [_0])
+ return formatWithArgumentRanges(self._s[2682]!, self._r[2682]!, [_0])
}
public func PUSH_PINNED_GEO(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2681]!, self._r[2681]!, [_1])
+ return formatWithArgumentRanges(self._s[2683]!, self._r[2683]!, [_1])
}
- public var AuthSessions_IncompleteAttempts: String { return self._s[2683]! }
- public var Passport_Address_Region: String { return self._s[2686]! }
- public var ChatList_DeleteChat: String { return self._s[2687]! }
- public var LogoutOptions_ClearCacheTitle: String { return self._s[2688]! }
- public var PhotoEditor_TiltShift: String { return self._s[2689]! }
- public var Settings_FAQ_URL: String { return self._s[2690]! }
- public var Passport_Language_sl: String { return self._s[2691]! }
- public var Settings_PrivacySettings: String { return self._s[2693]! }
- public var SharedMedia_TitleLink: String { return self._s[2694]! }
- public var Passport_Identity_TypePassportUploadScan: String { return self._s[2695]! }
- public var Settings_SetProfilePhoto: String { return self._s[2696]! }
- public var Channel_About_Help: String { return self._s[2697]! }
- public var Contacts_PermissionsEnable: String { return self._s[2698]! }
- public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[2699]! }
- public var AttachmentMenu_SendAsFiles: String { return self._s[2700]! }
- public var CallFeedback_ReasonInterruption: String { return self._s[2702]! }
- public var Passport_Address_AddTemporaryRegistration: String { return self._s[2703]! }
- public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[2704]! }
- public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[2705]! }
- public var PrivacySettings_DeleteAccountTitle: String { return self._s[2706]! }
- public var AccessDenied_VideoMessageCamera: String { return self._s[2708]! }
- public var Map_OpenInYandexMaps: String { return self._s[2710]! }
- public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[2711]! }
- public var PhotoEditor_SaturationTool: String { return self._s[2712]! }
+ public var AuthSessions_IncompleteAttempts: String { return self._s[2685]! }
+ public var Passport_Address_Region: String { return self._s[2688]! }
+ public var ChatList_DeleteChat: String { return self._s[2689]! }
+ public var LogoutOptions_ClearCacheTitle: String { return self._s[2690]! }
+ public var PhotoEditor_TiltShift: String { return self._s[2691]! }
+ public var Settings_FAQ_URL: String { return self._s[2692]! }
+ public var Passport_Language_sl: String { return self._s[2693]! }
+ public var Settings_PrivacySettings: String { return self._s[2695]! }
+ public var SharedMedia_TitleLink: String { return self._s[2696]! }
+ public var Passport_Identity_TypePassportUploadScan: String { return self._s[2697]! }
+ public var Settings_SetProfilePhoto: String { return self._s[2698]! }
+ public var Channel_About_Help: String { return self._s[2699]! }
+ public var Contacts_PermissionsEnable: String { return self._s[2700]! }
+ public var SettingsSearch_Synonyms_Notifications_GroupNotificationsAlert: String { return self._s[2701]! }
+ public var AttachmentMenu_SendAsFiles: String { return self._s[2702]! }
+ public var CallFeedback_ReasonInterruption: String { return self._s[2704]! }
+ public var Passport_Address_AddTemporaryRegistration: String { return self._s[2705]! }
+ public var AutoDownloadSettings_AutodownloadVideos: String { return self._s[2706]! }
+ public var ChatSettings_AutoDownloadSettings_Delimeter: String { return self._s[2707]! }
+ public var PrivacySettings_DeleteAccountTitle: String { return self._s[2708]! }
+ public var AccessDenied_VideoMessageCamera: String { return self._s[2710]! }
+ public var Map_OpenInYandexMaps: String { return self._s[2712]! }
+ public var CreateGroup_ErrorLocatedGroupsTooMuch: String { return self._s[2713]! }
+ public var PhotoEditor_SaturationTool: String { return self._s[2714]! }
public func PUSH_MESSAGE_STICKER(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2713]!, self._r[2713]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2715]!, self._r[2715]!, [_1, _2])
}
- public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[2714]! }
- public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[2715]! }
- public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[2716]! }
- public var Appearance_TextSize: String { return self._s[2717]! }
+ public var PrivacyPhoneNumberSettings_CustomHelp: String { return self._s[2716]! }
+ public var Notification_Exceptions_NewException_NotificationHeader: String { return self._s[2717]! }
+ public var Group_OwnershipTransfer_ErrorLocatedGroupsTooMuch: String { return self._s[2718]! }
+ public var Appearance_TextSize: String { return self._s[2719]! }
public func LOCAL_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2718]!, self._r[2718]!, [_1, "\(_2)"])
+ return formatWithArgumentRanges(self._s[2720]!, self._r[2720]!, [_1, "\(_2)"])
}
- public var Channel_Username_InvalidTooShort: String { return self._s[2720]! }
+ public var Channel_Username_InvalidTooShort: String { return self._s[2722]! }
public func Group_OwnershipTransfer_DescriptionInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2721]!, self._r[2721]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2723]!, self._r[2723]!, [_1, _2])
}
public func PUSH_CHAT_MESSAGE_GAME(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2722]!, self._r[2722]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[2724]!, self._r[2724]!, [_1, _2, _3])
}
- public var GroupInfo_PublicLinkAdd: String { return self._s[2723]! }
- public var Passport_PassportInformation: String { return self._s[2726]! }
- public var WatchRemote_AlertTitle: String { return self._s[2727]! }
- public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2728]! }
- public var ConvertToSupergroup_HelpText: String { return self._s[2730]! }
+ public var GroupInfo_PublicLinkAdd: String { return self._s[2725]! }
+ public var Passport_PassportInformation: String { return self._s[2728]! }
+ public var WatchRemote_AlertTitle: String { return self._s[2729]! }
+ public var Privacy_GroupsAndChannels_NeverAllow: String { return self._s[2730]! }
+ public var ConvertToSupergroup_HelpText: String { return self._s[2732]! }
public func Time_MonthOfYear_m7(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2731]!, self._r[2731]!, [_0])
+ return formatWithArgumentRanges(self._s[2733]!, self._r[2733]!, [_0])
}
public func PUSH_PHONE_CALL_REQUEST(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2732]!, self._r[2732]!, [_1])
+ return formatWithArgumentRanges(self._s[2734]!, self._r[2734]!, [_1])
}
- public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2733]! }
- public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[2735]! }
- public var AccessDenied_CameraDisabled: String { return self._s[2736]! }
+ public var Privacy_GroupsAndChannels_CustomHelp: String { return self._s[2735]! }
+ public var TwoStepAuth_RecoveryCodeInvalid: String { return self._s[2737]! }
+ public var AccessDenied_CameraDisabled: String { return self._s[2738]! }
public func Channel_Username_UsernameIsAvailable(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2737]!, self._r[2737]!, [_0])
+ return formatWithArgumentRanges(self._s[2739]!, self._r[2739]!, [_0])
}
- public var PhotoEditor_ContrastTool: String { return self._s[2740]! }
+ public var PhotoEditor_ContrastTool: String { return self._s[2742]! }
public func PUSH_PINNED_DOC(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2741]!, self._r[2741]!, [_1])
+ return formatWithArgumentRanges(self._s[2743]!, self._r[2743]!, [_1])
}
- public var DialogList_Draft: String { return self._s[2742]! }
- public var Privacy_TopPeersDelete: String { return self._s[2744]! }
- public var LoginPassword_PasswordPlaceholder: String { return self._s[2745]! }
- public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[2746]! }
- public var WebSearch_RecentSectionClear: String { return self._s[2747]! }
- public var Watch_ChatList_NoConversationsTitle: String { return self._s[2749]! }
- public var Common_Done: String { return self._s[2751]! }
- public var AuthSessions_EmptyText: String { return self._s[2752]! }
- public var Conversation_ShareBotContactConfirmation: String { return self._s[2753]! }
- public var Tour_Title5: String { return self._s[2754]! }
+ public var DialogList_Draft: String { return self._s[2744]! }
+ public var Privacy_TopPeersDelete: String { return self._s[2746]! }
+ public var LoginPassword_PasswordPlaceholder: String { return self._s[2747]! }
+ public var Passport_Identity_TypeIdentityCardUploadScan: String { return self._s[2748]! }
+ public var WebSearch_RecentSectionClear: String { return self._s[2749]! }
+ public var Watch_ChatList_NoConversationsTitle: String { return self._s[2751]! }
+ public var Common_Done: String { return self._s[2753]! }
+ public var AuthSessions_EmptyText: String { return self._s[2754]! }
+ public var Conversation_ShareBotContactConfirmation: String { return self._s[2755]! }
+ public var Tour_Title5: String { return self._s[2756]! }
public func Map_DirectionsDriveEta(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2755]!, self._r[2755]!, [_0])
+ return formatWithArgumentRanges(self._s[2757]!, self._r[2757]!, [_0])
}
- public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[2756]! }
- public var Conversation_LinkDialogSave: String { return self._s[2757]! }
- public var GroupInfo_ActionRestrict: String { return self._s[2758]! }
- public var Checkout_Title: String { return self._s[2759]! }
- public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[2761]! }
- public var Channel_AdminLog_CanChangeInfo: String { return self._s[2763]! }
- public var Notification_RenamedGroup: String { return self._s[2764]! }
- public var PeopleNearby_Groups: String { return self._s[2765]! }
- public var Checkout_PayWithFaceId: String { return self._s[2766]! }
- public var Channel_BanList_BlockedTitle: String { return self._s[2767]! }
- public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2769]! }
- public var Checkout_WebConfirmation_Title: String { return self._s[2770]! }
- public var Notifications_MessageNotificationsAlert: String { return self._s[2771]! }
- public var Profile_AddToExisting: String { return self._s[2773]! }
+ public var ApplyLanguage_UnsufficientDataTitle: String { return self._s[2758]! }
+ public var Conversation_LinkDialogSave: String { return self._s[2759]! }
+ public var GroupInfo_ActionRestrict: String { return self._s[2760]! }
+ public var Checkout_Title: String { return self._s[2761]! }
+ public var Channel_DiscussionGroup_HeaderLabel: String { return self._s[2763]! }
+ public var Channel_AdminLog_CanChangeInfo: String { return self._s[2765]! }
+ public var Notification_RenamedGroup: String { return self._s[2766]! }
+ public var PeopleNearby_Groups: String { return self._s[2767]! }
+ public var Checkout_PayWithFaceId: String { return self._s[2768]! }
+ public var Channel_BanList_BlockedTitle: String { return self._s[2769]! }
+ public var SettingsSearch_Synonyms_Notifications_InAppNotificationsSound: String { return self._s[2771]! }
+ public var Checkout_WebConfirmation_Title: String { return self._s[2772]! }
+ public var Notifications_MessageNotificationsAlert: String { return self._s[2773]! }
+ public func Activity_RemindAboutGroup(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[2774]!, self._r[2774]!, [_0])
+ }
+ public var Profile_AddToExisting: String { return self._s[2776]! }
public func Profile_CreateEncryptedChatOutdatedError(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2774]!, self._r[2774]!, [_0, _1])
+ return formatWithArgumentRanges(self._s[2777]!, self._r[2777]!, [_0, _1])
}
- public var Cache_Files: String { return self._s[2776]! }
- public var Permissions_PrivacyPolicy: String { return self._s[2777]! }
- public var SocksProxySetup_ConnectAndSave: String { return self._s[2778]! }
- public var UserInfo_NotificationsDefaultDisabled: String { return self._s[2779]! }
- public var AutoDownloadSettings_TypeContacts: String { return self._s[2781]! }
- public var Calls_NoCallsPlaceholder: String { return self._s[2783]! }
- public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2784]! }
- public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[2786]! }
+ public var Cache_Files: String { return self._s[2779]! }
+ public var Permissions_PrivacyPolicy: String { return self._s[2780]! }
+ public var SocksProxySetup_ConnectAndSave: String { return self._s[2781]! }
+ public var UserInfo_NotificationsDefaultDisabled: String { return self._s[2782]! }
+ public var AutoDownloadSettings_TypeContacts: String { return self._s[2784]! }
+ public var Calls_NoCallsPlaceholder: String { return self._s[2786]! }
+ public var Channel_Username_RevokeExistingUsernamesInfo: String { return self._s[2787]! }
+ public var Notifications_ExceptionsGroupPlaceholder: String { return self._s[2789]! }
public func PUSH_CHAT_MESSAGE_INVOICE(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2787]!, self._r[2787]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[2790]!, self._r[2790]!, [_1, _2, _3])
}
- public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2788]! }
- public var Passport_FieldAddressHelp: String { return self._s[2789]! }
- public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[2790]! }
+ public var SettingsSearch_Synonyms_Notifications_GroupNotificationsSound: String { return self._s[2791]! }
+ public var Passport_FieldAddressHelp: String { return self._s[2792]! }
+ public var Privacy_GroupsAndChannels_InviteToChannelMultipleError: String { return self._s[2793]! }
public func Login_TermsOfService_ProceedBot(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2791]!, self._r[2791]!, [_0])
+ return formatWithArgumentRanges(self._s[2794]!, self._r[2794]!, [_0])
}
- public var Channel_AdminLog_EmptyTitle: String { return self._s[2792]! }
- public var Privacy_Calls_NeverAllow_Title: String { return self._s[2794]! }
- public var Login_UnknownError: String { return self._s[2795]! }
- public var Group_UpgradeNoticeText2: String { return self._s[2797]! }
- public var Watch_Compose_AddContact: String { return self._s[2798]! }
- public var Web_Error: String { return self._s[2799]! }
- public var Gif_Search: String { return self._s[2800]! }
- public var Profile_MessageLifetime1h: String { return self._s[2801]! }
- public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2802]! }
- public var Channel_Username_CheckingUsername: String { return self._s[2803]! }
- public var CallFeedback_ReasonSilentRemote: String { return self._s[2804]! }
- public var AutoDownloadSettings_TypeChannels: String { return self._s[2805]! }
- public var Channel_AboutItem: String { return self._s[2806]! }
- public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2808]! }
- public var GroupInfo_SharedMedia: String { return self._s[2809]! }
+ public var Channel_AdminLog_EmptyTitle: String { return self._s[2795]! }
+ public var Privacy_Calls_NeverAllow_Title: String { return self._s[2797]! }
+ public var Login_UnknownError: String { return self._s[2798]! }
+ public var Group_UpgradeNoticeText2: String { return self._s[2800]! }
+ public var Watch_Compose_AddContact: String { return self._s[2801]! }
+ public var Web_Error: String { return self._s[2802]! }
+ public var Gif_Search: String { return self._s[2803]! }
+ public var Profile_MessageLifetime1h: String { return self._s[2804]! }
+ public var CheckoutInfo_ReceiverInfoEmailPlaceholder: String { return self._s[2805]! }
+ public var Channel_Username_CheckingUsername: String { return self._s[2806]! }
+ public var CallFeedback_ReasonSilentRemote: String { return self._s[2807]! }
+ public var AutoDownloadSettings_TypeChannels: String { return self._s[2808]! }
+ public var Channel_AboutItem: String { return self._s[2809]! }
+ public var Privacy_GroupsAndChannels_AlwaysAllow_Placeholder: String { return self._s[2811]! }
+ public var GroupInfo_SharedMedia: String { return self._s[2812]! }
public func Channel_AdminLog_MessagePromotedName(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2810]!, self._r[2810]!, [_1])
+ return formatWithArgumentRanges(self._s[2813]!, self._r[2813]!, [_1])
}
- public var Call_PhoneCallInProgressMessage: String { return self._s[2811]! }
+ public var Call_PhoneCallInProgressMessage: String { return self._s[2814]! }
public func PUSH_CHANNEL_ALBUM(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2812]!, self._r[2812]!, [_1])
+ return formatWithArgumentRanges(self._s[2815]!, self._r[2815]!, [_1])
}
- public var ChatList_UndoArchiveRevealedText: String { return self._s[2813]! }
- public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2814]! }
- public var Conversation_SearchByName_Placeholder: String { return self._s[2815]! }
- public var CreatePoll_AddOption: String { return self._s[2816]! }
- public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[2817]! }
- public var Group_UpgradeNoticeHeader: String { return self._s[2818]! }
- public var Channel_Management_AddModerator: String { return self._s[2819]! }
- public var AutoDownloadSettings_MaxFileSize: String { return self._s[2820]! }
- public var StickerPacksSettings_ShowStickersButton: String { return self._s[2821]! }
- public var NotificationsSound_Hello: String { return self._s[2822]! }
- public var SocksProxySetup_SavedProxies: String { return self._s[2823]! }
- public var Channel_Stickers_Placeholder: String { return self._s[2825]! }
+ public var ChatList_UndoArchiveRevealedText: String { return self._s[2816]! }
+ public var GroupInfo_InviteLink_RevokeAlert_Text: String { return self._s[2817]! }
+ public var Conversation_SearchByName_Placeholder: String { return self._s[2818]! }
+ public var CreatePoll_AddOption: String { return self._s[2819]! }
+ public var GroupInfo_Permissions_SearchPlaceholder: String { return self._s[2820]! }
+ public var Group_UpgradeNoticeHeader: String { return self._s[2821]! }
+ public var Channel_Management_AddModerator: String { return self._s[2822]! }
+ public var AutoDownloadSettings_MaxFileSize: String { return self._s[2823]! }
+ public var StickerPacksSettings_ShowStickersButton: String { return self._s[2824]! }
+ public var NotificationsSound_Hello: String { return self._s[2825]! }
+ public var SocksProxySetup_SavedProxies: String { return self._s[2826]! }
+ public var Channel_Stickers_Placeholder: String { return self._s[2828]! }
public func Login_EmailCodeBody(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2826]!, self._r[2826]!, [_0])
+ return formatWithArgumentRanges(self._s[2829]!, self._r[2829]!, [_0])
}
- public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[2827]! }
- public var Channel_Management_AddModeratorHelp: String { return self._s[2828]! }
- public var ContactInfo_BirthdayLabel: String { return self._s[2829]! }
- public var ChangePhoneNumberCode_RequestingACall: String { return self._s[2830]! }
- public var AutoDownloadSettings_Channels: String { return self._s[2831]! }
- public var Passport_Language_mn: String { return self._s[2832]! }
- public var Notifications_ResetAllNotificationsHelp: String { return self._s[2835]! }
- public var Passport_Language_ja: String { return self._s[2837]! }
- public var Settings_About_Title: String { return self._s[2838]! }
- public var Settings_NotificationsAndSounds: String { return self._s[2839]! }
- public var ChannelInfo_DeleteGroup: String { return self._s[2840]! }
- public var Settings_BlockedUsers: String { return self._s[2841]! }
+ public var PrivacyPolicy_DeclineDeclineAndDelete: String { return self._s[2830]! }
+ public var Channel_Management_AddModeratorHelp: String { return self._s[2831]! }
+ public var ContactInfo_BirthdayLabel: String { return self._s[2832]! }
+ public var ChangePhoneNumberCode_RequestingACall: String { return self._s[2833]! }
+ public var AutoDownloadSettings_Channels: String { return self._s[2834]! }
+ public var Passport_Language_mn: String { return self._s[2835]! }
+ public var Notifications_ResetAllNotificationsHelp: String { return self._s[2838]! }
+ public var Passport_Language_ja: String { return self._s[2840]! }
+ public var Settings_About_Title: String { return self._s[2841]! }
+ public var Settings_NotificationsAndSounds: String { return self._s[2842]! }
+ public var ChannelInfo_DeleteGroup: String { return self._s[2843]! }
+ public var Settings_BlockedUsers: String { return self._s[2844]! }
public func Time_MonthOfYear_m4(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2842]!, self._r[2842]!, [_0])
+ return formatWithArgumentRanges(self._s[2845]!, self._r[2845]!, [_0])
}
- public var AutoDownloadSettings_PreloadVideo: String { return self._s[2843]! }
- public var Passport_Address_AddResidentialAddress: String { return self._s[2844]! }
- public var Channel_Username_Title: String { return self._s[2845]! }
+ public var AutoDownloadSettings_PreloadVideo: String { return self._s[2846]! }
+ public var Passport_Address_AddResidentialAddress: String { return self._s[2847]! }
+ public var Channel_Username_Title: String { return self._s[2848]! }
public func Notification_RemovedGroupPhoto(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2846]!, self._r[2846]!, [_0])
+ return formatWithArgumentRanges(self._s[2849]!, self._r[2849]!, [_0])
}
- public var AttachmentMenu_File: String { return self._s[2848]! }
- public var AppleWatch_Title: String { return self._s[2849]! }
- public var Activity_RecordingVideoMessage: String { return self._s[2850]! }
+ public var AttachmentMenu_File: String { return self._s[2851]! }
+ public var AppleWatch_Title: String { return self._s[2852]! }
+ public var Activity_RecordingVideoMessage: String { return self._s[2853]! }
public func Channel_DiscussionGroup_PublicChannelLink(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2851]!, self._r[2851]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2854]!, self._r[2854]!, [_1, _2])
}
- public var Weekday_Saturday: String { return self._s[2852]! }
- public var WallpaperPreview_SwipeColorsTopText: String { return self._s[2853]! }
- public var Profile_CreateEncryptedChatError: String { return self._s[2854]! }
- public var Common_Next: String { return self._s[2856]! }
- public var Channel_Stickers_YourStickers: String { return self._s[2858]! }
- public var Call_AudioRouteHeadphones: String { return self._s[2859]! }
- public var TwoStepAuth_EnterPasswordForgot: String { return self._s[2861]! }
- public var Watch_Contacts_NoResults: String { return self._s[2863]! }
- public var PhotoEditor_TintTool: String { return self._s[2866]! }
- public var LoginPassword_ResetAccount: String { return self._s[2868]! }
- public var Settings_SavedMessages: String { return self._s[2869]! }
- public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[2870]! }
- public var Bot_GenericSupportStatus: String { return self._s[2871]! }
- public var StickerPack_Add: String { return self._s[2872]! }
- public var Checkout_TotalAmount: String { return self._s[2873]! }
- public var Your_cards_number_is_invalid: String { return self._s[2874]! }
- public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[2875]! }
+ public var Weekday_Saturday: String { return self._s[2855]! }
+ public var WallpaperPreview_SwipeColorsTopText: String { return self._s[2856]! }
+ public var Profile_CreateEncryptedChatError: String { return self._s[2857]! }
+ public var Common_Next: String { return self._s[2859]! }
+ public var Channel_Stickers_YourStickers: String { return self._s[2861]! }
+ public var Call_AudioRouteHeadphones: String { return self._s[2862]! }
+ public var TwoStepAuth_EnterPasswordForgot: String { return self._s[2864]! }
+ public var Watch_Contacts_NoResults: String { return self._s[2866]! }
+ public var PhotoEditor_TintTool: String { return self._s[2869]! }
+ public var LoginPassword_ResetAccount: String { return self._s[2871]! }
+ public var Settings_SavedMessages: String { return self._s[2872]! }
+ public var SettingsSearch_Synonyms_Appearance_Animations: String { return self._s[2873]! }
+ public var Bot_GenericSupportStatus: String { return self._s[2874]! }
+ public var StickerPack_Add: String { return self._s[2875]! }
+ public var Checkout_TotalAmount: String { return self._s[2876]! }
+ public var Your_cards_number_is_invalid: String { return self._s[2877]! }
+ public var SettingsSearch_Synonyms_Appearance_AutoNightTheme: String { return self._s[2878]! }
public func ChangePhoneNumberCode_CallTimer(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2876]!, self._r[2876]!, [_0])
+ return formatWithArgumentRanges(self._s[2879]!, self._r[2879]!, [_0])
}
public func GroupPermission_AddedInfo(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2877]!, self._r[2877]!, [_1, _2])
- }
- public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[2878]! }
- public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
return formatWithArgumentRanges(self._s[2880]!, self._r[2880]!, [_1, _2])
}
+ public var ChatSettings_ConnectionType_UseSocks5: String { return self._s[2881]! }
+ public func PUSH_CHAT_PHOTO_EDITED(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[2883]!, self._r[2883]!, [_1, _2])
+ }
public func Conversation_RestrictedTextTimed(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2881]!, self._r[2881]!, [_0])
+ return formatWithArgumentRanges(self._s[2884]!, self._r[2884]!, [_0])
}
- public var GroupInfo_InviteLink_ShareLink: String { return self._s[2882]! }
- public var StickerPack_Share: String { return self._s[2883]! }
- public var Passport_DeleteAddress: String { return self._s[2884]! }
- public var Settings_Passport: String { return self._s[2885]! }
- public var SharedMedia_EmptyFilesText: String { return self._s[2886]! }
- public var Conversation_DeleteMessagesForMe: String { return self._s[2887]! }
- public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[2888]! }
- public var Contacts_PermissionsText: String { return self._s[2889]! }
- public var Group_Setup_HistoryVisible: String { return self._s[2890]! }
- public var Passport_Address_AddRentalAgreement: String { return self._s[2892]! }
- public var SocksProxySetup_Title: String { return self._s[2893]! }
- public var Notification_Mute1h: String { return self._s[2894]! }
+ public var GroupInfo_InviteLink_ShareLink: String { return self._s[2885]! }
+ public var StickerPack_Share: String { return self._s[2886]! }
+ public var Passport_DeleteAddress: String { return self._s[2887]! }
+ public var Settings_Passport: String { return self._s[2888]! }
+ public var SharedMedia_EmptyFilesText: String { return self._s[2889]! }
+ public var Conversation_DeleteMessagesForMe: String { return self._s[2890]! }
+ public var PasscodeSettings_AutoLock_IfAwayFor_1hour: String { return self._s[2891]! }
+ public var Contacts_PermissionsText: String { return self._s[2892]! }
+ public var Group_Setup_HistoryVisible: String { return self._s[2893]! }
+ public var Passport_Address_AddRentalAgreement: String { return self._s[2895]! }
+ public var SocksProxySetup_Title: String { return self._s[2896]! }
+ public var Notification_Mute1h: String { return self._s[2897]! }
public func Passport_Email_CodeHelp(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2895]!, self._r[2895]!, [_0])
+ return formatWithArgumentRanges(self._s[2898]!, self._r[2898]!, [_0])
}
- public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[2896]! }
+ public var NotificationSettings_ShowNotificationsAllAccountsInfoOff: String { return self._s[2899]! }
public func PUSH_PINNED_GEOLIVE(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2897]!, self._r[2897]!, [_1])
+ return formatWithArgumentRanges(self._s[2900]!, self._r[2900]!, [_1])
}
- public var FastTwoStepSetup_PasswordSection: String { return self._s[2898]! }
- public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2901]! }
- public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[2903]! }
- public var DialogList_NoMessagesText: String { return self._s[2904]! }
- public var Privacy_ContactsResetConfirmation: String { return self._s[2905]! }
- public var Privacy_Calls_P2PHelp: String { return self._s[2906]! }
- public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[2908]! }
- public var Your_cards_expiration_year_is_invalid: String { return self._s[2909]! }
- public var Common_TakePhotoOrVideo: String { return self._s[2910]! }
- public var Call_StatusBusy: String { return self._s[2911]! }
- public var Conversation_PinnedMessage: String { return self._s[2912]! }
- public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[2913]! }
- public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[2914]! }
- public var Undo_ChatCleared: String { return self._s[2915]! }
- public var AppleWatch_ReplyPresets: String { return self._s[2916]! }
- public var Passport_DiscardMessageDescription: String { return self._s[2918]! }
- public var Login_NetworkError: String { return self._s[2919]! }
+ public var FastTwoStepSetup_PasswordSection: String { return self._s[2901]! }
+ public var NetworkUsageSettings_ResetStatsConfirmation: String { return self._s[2904]! }
+ public var InfoPlist_NSFaceIDUsageDescription: String { return self._s[2906]! }
+ public var DialogList_NoMessagesText: String { return self._s[2907]! }
+ public var Privacy_ContactsResetConfirmation: String { return self._s[2908]! }
+ public var Privacy_Calls_P2PHelp: String { return self._s[2909]! }
+ public var Channel_DiscussionGroup_SearchPlaceholder: String { return self._s[2911]! }
+ public var Your_cards_expiration_year_is_invalid: String { return self._s[2912]! }
+ public var Common_TakePhotoOrVideo: String { return self._s[2913]! }
+ public var Call_StatusBusy: String { return self._s[2914]! }
+ public var Conversation_PinnedMessage: String { return self._s[2915]! }
+ public var AutoDownloadSettings_VoiceMessagesTitle: String { return self._s[2916]! }
+ public var TwoStepAuth_SetupPasswordConfirmFailed: String { return self._s[2917]! }
+ public var Undo_ChatCleared: String { return self._s[2918]! }
+ public var AppleWatch_ReplyPresets: String { return self._s[2919]! }
+ public var Passport_DiscardMessageDescription: String { return self._s[2921]! }
+ public var Login_NetworkError: String { return self._s[2922]! }
public func Notification_PinnedRoundMessage(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2920]!, self._r[2920]!, [_0])
+ return formatWithArgumentRanges(self._s[2923]!, self._r[2923]!, [_0])
}
public func Channel_AdminLog_MessageRemovedChannelUsername(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2921]!, self._r[2921]!, [_0])
+ return formatWithArgumentRanges(self._s[2924]!, self._r[2924]!, [_0])
}
- public var SocksProxySetup_PasswordPlaceholder: String { return self._s[2922]! }
- public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2924]! }
+ public var SocksProxySetup_PasswordPlaceholder: String { return self._s[2925]! }
+ public var Login_ResetAccountProtected_LimitExceeded: String { return self._s[2927]! }
public func Watch_LastSeen_YesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2926]!, self._r[2926]!, [_0])
+ return formatWithArgumentRanges(self._s[2929]!, self._r[2929]!, [_0])
}
- public var Call_ConnectionErrorMessage: String { return self._s[2927]! }
- public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[2928]! }
- public var Compose_GroupTokenListPlaceholder: String { return self._s[2930]! }
- public var ConversationMedia_Title: String { return self._s[2931]! }
- public var EncryptionKey_Title: String { return self._s[2933]! }
- public var TwoStepAuth_EnterPasswordTitle: String { return self._s[2934]! }
- public var Notification_Exceptions_AddException: String { return self._s[2935]! }
- public var PrivacySettings_BlockedPeersEmpty: String { return self._s[2936]! }
- public var Profile_MessageLifetime1m: String { return self._s[2937]! }
+ public var Call_ConnectionErrorMessage: String { return self._s[2930]! }
+ public var SettingsSearch_Synonyms_Notifications_MessageNotificationsSound: String { return self._s[2931]! }
+ public var Compose_GroupTokenListPlaceholder: String { return self._s[2933]! }
+ public var ConversationMedia_Title: String { return self._s[2934]! }
+ public var EncryptionKey_Title: String { return self._s[2936]! }
+ public var TwoStepAuth_EnterPasswordTitle: String { return self._s[2937]! }
+ public var Notification_Exceptions_AddException: String { return self._s[2938]! }
+ public var PrivacySettings_BlockedPeersEmpty: String { return self._s[2939]! }
+ public var Profile_MessageLifetime1m: String { return self._s[2940]! }
public func Channel_AdminLog_MessageUnkickedName(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2938]!, self._r[2938]!, [_1])
+ return formatWithArgumentRanges(self._s[2941]!, self._r[2941]!, [_1])
}
- public var Month_GenMay: String { return self._s[2939]! }
+ public var Month_GenMay: String { return self._s[2942]! }
public func LiveLocationUpdated_TodayAt(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2940]!, self._r[2940]!, [_0])
+ return formatWithArgumentRanges(self._s[2943]!, self._r[2943]!, [_0])
}
- public var PeopleNearby_Users: String { return self._s[2941]! }
- public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2942]! }
- public var AutoDownloadSettings_ResetSettings: String { return self._s[2943]! }
- public var Conversation_EmptyPlaceholder: String { return self._s[2945]! }
- public var Passport_Address_AddPassportRegistration: String { return self._s[2946]! }
- public var Notifications_ChannelNotificationsAlert: String { return self._s[2947]! }
- public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2948]! }
- public var Camera_TapAndHoldForVideo: String { return self._s[2949]! }
- public var Channel_JoinChannel: String { return self._s[2951]! }
- public var Appearance_Animations: String { return self._s[2954]! }
+ public var PeopleNearby_Users: String { return self._s[2944]! }
+ public var ChannelMembers_WhoCanAddMembersAllHelp: String { return self._s[2945]! }
+ public var AutoDownloadSettings_ResetSettings: String { return self._s[2946]! }
+ public var Conversation_EmptyPlaceholder: String { return self._s[2948]! }
+ public var Passport_Address_AddPassportRegistration: String { return self._s[2949]! }
+ public var Notifications_ChannelNotificationsAlert: String { return self._s[2950]! }
+ public var ChatSettings_AutoDownloadUsingCellular: String { return self._s[2951]! }
+ public var Camera_TapAndHoldForVideo: String { return self._s[2952]! }
+ public var Channel_JoinChannel: String { return self._s[2954]! }
+ public var Appearance_Animations: String { return self._s[2957]! }
public func Notification_MessageLifetimeChanged(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2955]!, self._r[2955]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2958]!, self._r[2958]!, [_1, _2])
}
- public var Stickers_GroupStickers: String { return self._s[2957]! }
- public var ConvertToSupergroup_HelpTitle: String { return self._s[2959]! }
- public var Passport_Address_Street: String { return self._s[2960]! }
- public var Conversation_AddContact: String { return self._s[2961]! }
- public var Login_PhonePlaceholder: String { return self._s[2962]! }
- public var Channel_Members_InviteLink: String { return self._s[2964]! }
- public var Bot_Stop: String { return self._s[2965]! }
- public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[2967]! }
- public var Notification_PassportValueAddress: String { return self._s[2968]! }
- public var Month_ShortJuly: String { return self._s[2969]! }
- public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[2970]! }
- public var Channel_AdminLog_BanSendMedia: String { return self._s[2971]! }
- public var Passport_Identity_ReverseSide: String { return self._s[2972]! }
- public var Watch_Stickers_Recents: String { return self._s[2975]! }
- public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[2977]! }
- public var Map_SendThisLocation: String { return self._s[2978]! }
+ public var Stickers_GroupStickers: String { return self._s[2960]! }
+ public var ConvertToSupergroup_HelpTitle: String { return self._s[2962]! }
+ public var Passport_Address_Street: String { return self._s[2963]! }
+ public var Conversation_AddContact: String { return self._s[2964]! }
+ public var Login_PhonePlaceholder: String { return self._s[2965]! }
+ public var Channel_Members_InviteLink: String { return self._s[2967]! }
+ public var Bot_Stop: String { return self._s[2968]! }
+ public var SettingsSearch_Synonyms_Proxy_UseForCalls: String { return self._s[2970]! }
+ public var Notification_PassportValueAddress: String { return self._s[2971]! }
+ public var Month_ShortJuly: String { return self._s[2972]! }
+ public var Passport_Address_TypeTemporaryRegistrationUploadScan: String { return self._s[2973]! }
+ public var Channel_AdminLog_BanSendMedia: String { return self._s[2974]! }
+ public var Passport_Identity_ReverseSide: String { return self._s[2975]! }
+ public var Watch_Stickers_Recents: String { return self._s[2978]! }
+ public var PrivacyLastSeenSettings_EmpryUsersPlaceholder: String { return self._s[2980]! }
+ public var Map_SendThisLocation: String { return self._s[2981]! }
public func Time_MonthOfYear_m1(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2979]!, self._r[2979]!, [_0])
- }
- public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2980]!, self._r[2980]!, [_0])
- }
- public var ConvertToSupergroup_Note: String { return self._s[2981]! }
- public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) {
return formatWithArgumentRanges(self._s[2982]!, self._r[2982]!, [_0])
}
- public var NetworkUsageSettings_GeneralDataSection: String { return self._s[2983]! }
+ public func InviteText_SingleContact(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[2983]!, self._r[2983]!, [_0])
+ }
+ public var ConvertToSupergroup_Note: String { return self._s[2984]! }
+ public func FileSize_MB(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[2985]!, self._r[2985]!, [_0])
+ }
+ public var NetworkUsageSettings_GeneralDataSection: String { return self._s[2986]! }
public func Compatibility_SecretMediaVersionTooLow(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2984]!, self._r[2984]!, [_0, _1])
+ return formatWithArgumentRanges(self._s[2987]!, self._r[2987]!, [_0, _1])
}
- public var Login_CallRequestState3: String { return self._s[2986]! }
- public var Wallpaper_SearchShort: String { return self._s[2987]! }
- public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[2989]! }
- public var PasscodeSettings_UnlockWithFaceId: String { return self._s[2990]! }
+ public var Login_CallRequestState3: String { return self._s[2989]! }
+ public var Wallpaper_SearchShort: String { return self._s[2990]! }
+ public var SettingsSearch_Synonyms_Appearance_ColorTheme: String { return self._s[2992]! }
+ public var PasscodeSettings_UnlockWithFaceId: String { return self._s[2993]! }
public func PUSH_CHAT_MESSAGE_GEOLIVE(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2991]!, self._r[2991]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[2994]!, self._r[2994]!, [_1, _2])
}
- public var Channel_AdminLogFilter_Title: String { return self._s[2992]! }
- public var Notifications_GroupNotificationsExceptions: String { return self._s[2996]! }
+ public var Channel_AdminLogFilter_Title: String { return self._s[2995]! }
+ public var Notifications_GroupNotificationsExceptions: String { return self._s[2999]! }
public func FileSize_B(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2997]!, self._r[2997]!, [_0])
+ return formatWithArgumentRanges(self._s[3000]!, self._r[3000]!, [_0])
}
- public var Passport_CorrectErrors: String { return self._s[2998]! }
+ public var Passport_CorrectErrors: String { return self._s[3001]! }
public func Channel_MessageTitleUpdated(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[2999]!, self._r[2999]!, [_0])
+ return formatWithArgumentRanges(self._s[3002]!, self._r[3002]!, [_0])
}
- public var Map_SendMyCurrentLocation: String { return self._s[3000]! }
- public var Channel_DiscussionGroup: String { return self._s[3001]! }
+ public var Map_SendMyCurrentLocation: String { return self._s[3003]! }
+ public var Channel_DiscussionGroup: String { return self._s[3004]! }
public func PUSH_PINNED_CONTACT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3002]!, self._r[3002]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[3005]!, self._r[3005]!, [_1, _2])
}
- public var SharedMedia_SearchNoResults: String { return self._s[3003]! }
- public var Permissions_NotificationsText_v0: String { return self._s[3004]! }
- public var Appearance_AppIcon: String { return self._s[3005]! }
- public var LoginPassword_FloodError: String { return self._s[3006]! }
- public var Group_Setup_HistoryHiddenHelp: String { return self._s[3008]! }
+ public var SharedMedia_SearchNoResults: String { return self._s[3006]! }
+ public var Permissions_NotificationsText_v0: String { return self._s[3007]! }
+ public var Appearance_AppIcon: String { return self._s[3008]! }
+ public var LoginPassword_FloodError: String { return self._s[3009]! }
+ public var Group_Setup_HistoryHiddenHelp: String { return self._s[3011]! }
public func TwoStepAuth_PendingEmailHelp(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3009]!, self._r[3009]!, [_0])
- }
- public var Passport_Language_bn: String { return self._s[3010]! }
- public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3011]!, self._r[3011]!, [_0])
- }
- public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) {
return formatWithArgumentRanges(self._s[3012]!, self._r[3012]!, [_0])
}
+ public var Passport_Language_bn: String { return self._s[3013]! }
+ public func DialogList_SingleUploadingPhotoSuffix(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[3014]!, self._r[3014]!, [_0])
+ }
+ public func Notification_PinnedAudioMessage(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[3015]!, self._r[3015]!, [_0])
+ }
public func Channel_AdminLog_MessageChangedGroupStickerPack(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3013]!, self._r[3013]!, [_0])
+ return formatWithArgumentRanges(self._s[3016]!, self._r[3016]!, [_0])
}
- public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3016]! }
- public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3018]! }
- public var Contacts_PermissionsAllow: String { return self._s[3019]! }
- public var ReportPeer_ReasonCopyright: String { return self._s[3020]! }
- public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3021]! }
- public var WallpaperPreview_Pattern: String { return self._s[3022]! }
- public var Paint_Duplicate: String { return self._s[3023]! }
- public var Passport_Address_Country: String { return self._s[3024]! }
- public var Notification_RenamedChannel: String { return self._s[3026]! }
- public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3027]! }
- public var Group_MessagePhotoUpdated: String { return self._s[3028]! }
- public var Channel_BanUser_PermissionSendMedia: String { return self._s[3029]! }
- public var Conversation_ContextMenuBan: String { return self._s[3030]! }
- public var TwoStepAuth_EmailSent: String { return self._s[3031]! }
- public var MessagePoll_NoVotes: String { return self._s[3032]! }
- public var Passport_Language_is: String { return self._s[3033]! }
- public var PeopleNearby_UsersEmpty: String { return self._s[3035]! }
- public var Tour_Text5: String { return self._s[3036]! }
+ public var GroupInfo_InvitationLinkGroupFull: String { return self._s[3019]! }
+ public var Group_EditAdmin_PermissionChangeInfo: String { return self._s[3021]! }
+ public var Contacts_PermissionsAllow: String { return self._s[3022]! }
+ public var ReportPeer_ReasonCopyright: String { return self._s[3023]! }
+ public var Channel_EditAdmin_PermissinAddAdminOn: String { return self._s[3024]! }
+ public var WallpaperPreview_Pattern: String { return self._s[3025]! }
+ public var Paint_Duplicate: String { return self._s[3026]! }
+ public var Passport_Address_Country: String { return self._s[3027]! }
+ public var Notification_RenamedChannel: String { return self._s[3029]! }
+ public var CheckoutInfo_ErrorPostcodeInvalid: String { return self._s[3030]! }
+ public var Group_MessagePhotoUpdated: String { return self._s[3031]! }
+ public var Channel_BanUser_PermissionSendMedia: String { return self._s[3032]! }
+ public var Conversation_ContextMenuBan: String { return self._s[3033]! }
+ public var TwoStepAuth_EmailSent: String { return self._s[3034]! }
+ public var MessagePoll_NoVotes: String { return self._s[3035]! }
+ public var Passport_Language_is: String { return self._s[3036]! }
+ public var PeopleNearby_UsersEmpty: String { return self._s[3038]! }
+ public var Tour_Text5: String { return self._s[3039]! }
public func Call_GroupFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3038]!, self._r[3038]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[3041]!, self._r[3041]!, [_1, _2])
}
- public var Undo_SecretChatDeleted: String { return self._s[3039]! }
- public var SocksProxySetup_ShareQRCode: String { return self._s[3040]! }
- public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3041]! }
- public var Paint_Edit: String { return self._s[3043]! }
- public var Undo_DeletedGroup: String { return self._s[3046]! }
- public var LoginPassword_ForgotPassword: String { return self._s[3047]! }
- public var GroupInfo_GroupNamePlaceholder: String { return self._s[3048]! }
+ public var Undo_SecretChatDeleted: String { return self._s[3042]! }
+ public var SocksProxySetup_ShareQRCode: String { return self._s[3043]! }
+ public var LogoutOptions_ChangePhoneNumberText: String { return self._s[3044]! }
+ public var Paint_Edit: String { return self._s[3046]! }
+ public var Undo_DeletedGroup: String { return self._s[3049]! }
+ public var LoginPassword_ForgotPassword: String { return self._s[3050]! }
+ public var GroupInfo_GroupNamePlaceholder: String { return self._s[3051]! }
public func Notification_Kicked(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3049]!, self._r[3049]!, [_0, _1])
+ return formatWithArgumentRanges(self._s[3052]!, self._r[3052]!, [_0, _1])
}
- public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3050]! }
- public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3051]! }
- public var Passport_Language_uz: String { return self._s[3052]! }
- public var Conversation_PinMessageAlertGroup: String { return self._s[3053]! }
- public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3054]! }
- public var Map_StopLiveLocation: String { return self._s[3056]! }
- public var PasscodeSettings_Help: String { return self._s[3058]! }
- public var NotificationsSound_Input: String { return self._s[3059]! }
- public var Share_Title: String { return self._s[3062]! }
- public var LogoutOptions_Title: String { return self._s[3063]! }
- public var Login_TermsOfServiceAgree: String { return self._s[3064]! }
- public var Compose_NewEncryptedChatTitle: String { return self._s[3065]! }
- public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3066]! }
- public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3067]! }
- public var EnterPasscode_EnterTitle: String { return self._s[3068]! }
+ public var Conversation_InputTextCaptionPlaceholder: String { return self._s[3053]! }
+ public var AutoDownloadSettings_VideoMessagesTitle: String { return self._s[3054]! }
+ public var Passport_Language_uz: String { return self._s[3055]! }
+ public var Conversation_PinMessageAlertGroup: String { return self._s[3056]! }
+ public var SettingsSearch_Synonyms_Privacy_GroupsAndChannels: String { return self._s[3057]! }
+ public var Map_StopLiveLocation: String { return self._s[3059]! }
+ public var PasscodeSettings_Help: String { return self._s[3061]! }
+ public var NotificationsSound_Input: String { return self._s[3062]! }
+ public var Share_Title: String { return self._s[3065]! }
+ public var LogoutOptions_Title: String { return self._s[3066]! }
+ public var Login_TermsOfServiceAgree: String { return self._s[3067]! }
+ public var Compose_NewEncryptedChatTitle: String { return self._s[3068]! }
+ public var Channel_AdminLog_TitleSelectedEvents: String { return self._s[3069]! }
+ public var Channel_EditAdmin_PermissionEditMessages: String { return self._s[3070]! }
+ public var EnterPasscode_EnterTitle: String { return self._s[3071]! }
public func Call_PrivacyErrorMessage(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3069]!, self._r[3069]!, [_0])
+ return formatWithArgumentRanges(self._s[3072]!, self._r[3072]!, [_0])
}
- public var Settings_CopyPhoneNumber: String { return self._s[3070]! }
- public var Conversation_AddToContacts: String { return self._s[3071]! }
- public var NotificationsSound_Keys: String { return self._s[3072]! }
+ public var Settings_CopyPhoneNumber: String { return self._s[3073]! }
+ public var Conversation_AddToContacts: String { return self._s[3074]! }
+ public var NotificationsSound_Keys: String { return self._s[3075]! }
public func Call_ParticipantVersionOutdatedError(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3073]!, self._r[3073]!, [_0])
+ return formatWithArgumentRanges(self._s[3076]!, self._r[3076]!, [_0])
}
- public var Notification_MessageLifetime1w: String { return self._s[3074]! }
- public var Message_Video: String { return self._s[3075]! }
- public var AutoDownloadSettings_CellularTitle: String { return self._s[3076]! }
+ public var Notification_MessageLifetime1w: String { return self._s[3077]! }
+ public var Message_Video: String { return self._s[3078]! }
+ public var AutoDownloadSettings_CellularTitle: String { return self._s[3079]! }
public func PUSH_CHANNEL_MESSAGE_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3077]!, self._r[3077]!, [_1])
+ return formatWithArgumentRanges(self._s[3080]!, self._r[3080]!, [_1])
}
public func Notification_JoinedChat(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3080]!, self._r[3080]!, [_0])
+ return formatWithArgumentRanges(self._s[3083]!, self._r[3083]!, [_0])
}
public func PrivacySettings_LastSeenContactsPlus(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3081]!, self._r[3081]!, [_0])
+ return formatWithArgumentRanges(self._s[3084]!, self._r[3084]!, [_0])
}
- public var Passport_Language_mk: String { return self._s[3082]! }
- public var CreatePoll_CancelConfirmation: String { return self._s[3083]! }
- public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3085]! }
- public var PrivacyPolicy_Decline: String { return self._s[3086]! }
- public var Passport_Identity_DoesNotExpire: String { return self._s[3087]! }
- public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3088]! }
- public var Permissions_SiriAllow_v0: String { return self._s[3090]! }
- public var Appearance_ThemeCarouselNight: String { return self._s[3091]! }
+ public var Passport_Language_mk: String { return self._s[3085]! }
+ public var CreatePoll_CancelConfirmation: String { return self._s[3086]! }
+ public var Conversation_SilentBroadcastTooltipOn: String { return self._s[3088]! }
+ public var PrivacyPolicy_Decline: String { return self._s[3089]! }
+ public var Passport_Identity_DoesNotExpire: String { return self._s[3090]! }
+ public var Channel_AdminLogFilter_EventsRestrictions: String { return self._s[3091]! }
+ public var Permissions_SiriAllow_v0: String { return self._s[3093]! }
+ public var Appearance_ThemeCarouselNight: String { return self._s[3094]! }
public func LOCAL_CHAT_MESSAGE_FWDS(_ _1: String, _ _2: Int) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3092]!, self._r[3092]!, [_1, "\(_2)"])
+ return formatWithArgumentRanges(self._s[3095]!, self._r[3095]!, [_1, "\(_2)"])
}
public func Notification_RenamedChat(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3093]!, self._r[3093]!, [_0])
+ return formatWithArgumentRanges(self._s[3096]!, self._r[3096]!, [_0])
}
- public var Paint_Regular: String { return self._s[3094]! }
- public var ChatSettings_AutoDownloadReset: String { return self._s[3095]! }
- public var SocksProxySetup_ShareLink: String { return self._s[3096]! }
- public var BlockedUsers_SelectUserTitle: String { return self._s[3097]! }
- public var GroupInfo_InviteByLink: String { return self._s[3099]! }
- public var MessageTimer_Custom: String { return self._s[3100]! }
- public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3101]! }
- public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3103]! }
- public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3104]! }
- public var Channel_Username_InvalidTaken: String { return self._s[3105]! }
- public var Conversation_ClousStorageInfo_Description3: String { return self._s[3106]! }
- public var Settings_ChatBackground: String { return self._s[3107]! }
- public var Channel_Subscribers_Title: String { return self._s[3108]! }
- public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3109]! }
- public var Watch_ConnectionDescription: String { return self._s[3110]! }
- public var ChatList_ArchivedChatsTitle: String { return self._s[3114]! }
- public var Wallpaper_ResetWallpapers: String { return self._s[3115]! }
- public var EditProfile_Title: String { return self._s[3116]! }
- public var NotificationsSound_Bamboo: String { return self._s[3118]! }
- public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3120]! }
- public var Login_SmsRequestState2: String { return self._s[3121]! }
- public var Passport_Language_ar: String { return self._s[3122]! }
+ public var Paint_Regular: String { return self._s[3097]! }
+ public var ChatSettings_AutoDownloadReset: String { return self._s[3098]! }
+ public var SocksProxySetup_ShareLink: String { return self._s[3099]! }
+ public var BlockedUsers_SelectUserTitle: String { return self._s[3100]! }
+ public var GroupInfo_InviteByLink: String { return self._s[3102]! }
+ public var MessageTimer_Custom: String { return self._s[3103]! }
+ public var UserInfo_NotificationsDefaultEnabled: String { return self._s[3104]! }
+ public var Passport_Address_TypeTemporaryRegistration: String { return self._s[3106]! }
+ public var ChatSettings_AutoDownloadUsingWiFi: String { return self._s[3107]! }
+ public var Channel_Username_InvalidTaken: String { return self._s[3108]! }
+ public var Conversation_ClousStorageInfo_Description3: String { return self._s[3109]! }
+ public var Settings_ChatBackground: String { return self._s[3110]! }
+ public var Channel_Subscribers_Title: String { return self._s[3111]! }
+ public var ApplyLanguage_ChangeLanguageTitle: String { return self._s[3112]! }
+ public var Watch_ConnectionDescription: String { return self._s[3113]! }
+ public var ChatList_ArchivedChatsTitle: String { return self._s[3117]! }
+ public var Wallpaper_ResetWallpapers: String { return self._s[3118]! }
+ public var EditProfile_Title: String { return self._s[3119]! }
+ public var NotificationsSound_Bamboo: String { return self._s[3121]! }
+ public var Channel_AdminLog_MessagePreviousMessage: String { return self._s[3123]! }
+ public var Login_SmsRequestState2: String { return self._s[3124]! }
+ public var Passport_Language_ar: String { return self._s[3125]! }
public func Message_AuthorPinnedGame(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3123]!, self._r[3123]!, [_0])
+ return formatWithArgumentRanges(self._s[3126]!, self._r[3126]!, [_0])
}
- public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3124]! }
- public var Conversation_MessageDialogEdit: String { return self._s[3125]! }
+ public var SettingsSearch_Synonyms_EditProfile_Title: String { return self._s[3127]! }
+ public var Conversation_MessageDialogEdit: String { return self._s[3128]! }
public func PUSH_AUTH_UNKNOWN(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3126]!, self._r[3126]!, [_1])
+ return formatWithArgumentRanges(self._s[3129]!, self._r[3129]!, [_1])
}
- public var Common_Close: String { return self._s[3127]! }
- public var GroupInfo_PublicLink: String { return self._s[3128]! }
- public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3129]! }
- public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3130]! }
+ public var Common_Close: String { return self._s[3130]! }
+ public var GroupInfo_PublicLink: String { return self._s[3131]! }
+ public var Channel_OwnershipTransfer_ErrorPrivacyRestricted: String { return self._s[3132]! }
+ public var SettingsSearch_Synonyms_Notifications_GroupNotificationsPreview: String { return self._s[3133]! }
public func Channel_AdminLog_MessageToggleInvitesOff(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3134]!, self._r[3134]!, [_0])
+ return formatWithArgumentRanges(self._s[3137]!, self._r[3137]!, [_0])
}
- public var UserInfo_About_Placeholder: String { return self._s[3135]! }
+ public var UserInfo_About_Placeholder: String { return self._s[3138]! }
public func Conversation_FileHowToText(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3136]!, self._r[3136]!, [_0])
+ return formatWithArgumentRanges(self._s[3139]!, self._r[3139]!, [_0])
}
- public var GroupInfo_Permissions_SectionTitle: String { return self._s[3137]! }
- public var Channel_Info_Banned: String { return self._s[3139]! }
+ public var GroupInfo_Permissions_SectionTitle: String { return self._s[3140]! }
+ public var Channel_Info_Banned: String { return self._s[3142]! }
public func Time_MonthOfYear_m11(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3140]!, self._r[3140]!, [_0])
+ return formatWithArgumentRanges(self._s[3143]!, self._r[3143]!, [_0])
}
- public var Appearance_Other: String { return self._s[3141]! }
- public var Passport_Language_my: String { return self._s[3142]! }
- public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3143]! }
+ public var Appearance_Other: String { return self._s[3144]! }
+ public var Passport_Language_my: String { return self._s[3145]! }
+ public var Group_Setup_BasicHistoryHiddenHelp: String { return self._s[3146]! }
public func Time_PreciseDate_m9(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3144]!, self._r[3144]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[3147]!, self._r[3147]!, [_1, _2, _3])
}
- public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3145]! }
- public var Preview_CopyAddress: String { return self._s[3146]! }
+ public var SettingsSearch_Synonyms_Privacy_PasscodeAndFaceId: String { return self._s[3148]! }
+ public var Preview_CopyAddress: String { return self._s[3149]! }
public func DialogList_SinglePlayingGameSuffix(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3147]!, self._r[3147]!, [_0])
+ return formatWithArgumentRanges(self._s[3150]!, self._r[3150]!, [_0])
}
- public var KeyCommand_JumpToPreviousChat: String { return self._s[3148]! }
- public var UserInfo_BotSettings: String { return self._s[3149]! }
- public var LiveLocation_MenuStopAll: String { return self._s[3151]! }
- public var Passport_PasswordCreate: String { return self._s[3152]! }
- public var StickerSettings_MaskContextInfo: String { return self._s[3153]! }
- public var Message_PinnedLocationMessage: String { return self._s[3154]! }
- public var Map_Satellite: String { return self._s[3155]! }
- public var Watch_Message_Unsupported: String { return self._s[3156]! }
- public var Username_TooManyPublicUsernamesError: String { return self._s[3157]! }
- public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3158]! }
+ public var KeyCommand_JumpToPreviousChat: String { return self._s[3151]! }
+ public var UserInfo_BotSettings: String { return self._s[3152]! }
+ public var LiveLocation_MenuStopAll: String { return self._s[3154]! }
+ public var Passport_PasswordCreate: String { return self._s[3155]! }
+ public var StickerSettings_MaskContextInfo: String { return self._s[3156]! }
+ public var Message_PinnedLocationMessage: String { return self._s[3157]! }
+ public var Map_Satellite: String { return self._s[3158]! }
+ public var Watch_Message_Unsupported: String { return self._s[3159]! }
+ public var Username_TooManyPublicUsernamesError: String { return self._s[3160]! }
+ public var TwoStepAuth_EnterPasswordInvalid: String { return self._s[3161]! }
public func Notification_PinnedTextMessage(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3159]!, self._r[3159]!, [_0, _1])
+ return formatWithArgumentRanges(self._s[3162]!, self._r[3162]!, [_0, _1])
}
public func Conversation_OpenBotLinkText(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3160]!, self._r[3160]!, [_0])
+ return formatWithArgumentRanges(self._s[3163]!, self._r[3163]!, [_0])
}
- public var Notifications_ChannelNotificationsHelp: String { return self._s[3161]! }
- public var Privacy_Calls_P2PContacts: String { return self._s[3162]! }
- public var NotificationsSound_None: String { return self._s[3163]! }
- public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3165]! }
- public var AccessDenied_VoiceMicrophone: String { return self._s[3166]! }
+ public var Notifications_ChannelNotificationsHelp: String { return self._s[3164]! }
+ public var Privacy_Calls_P2PContacts: String { return self._s[3165]! }
+ public var NotificationsSound_None: String { return self._s[3166]! }
+ public var Channel_DiscussionGroup_UnlinkGroup: String { return self._s[3168]! }
+ public var AccessDenied_VoiceMicrophone: String { return self._s[3169]! }
public func ApplyLanguage_ChangeLanguageAlreadyActive(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3167]!, self._r[3167]!, [_1])
+ return formatWithArgumentRanges(self._s[3170]!, self._r[3170]!, [_1])
}
- public var Cache_Indexing: String { return self._s[3168]! }
- public var DialogList_RecentTitlePeople: String { return self._s[3170]! }
- public var DialogList_EncryptionRejected: String { return self._s[3171]! }
- public var GroupInfo_Administrators: String { return self._s[3172]! }
- public var Passport_ScanPassportHelp: String { return self._s[3173]! }
- public var Application_Name: String { return self._s[3174]! }
- public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3175]! }
- public var Appearance_ThemeCarouselDay: String { return self._s[3177]! }
- public var Passport_Identity_TranslationHelp: String { return self._s[3178]! }
+ public var Cache_Indexing: String { return self._s[3171]! }
+ public var DialogList_RecentTitlePeople: String { return self._s[3173]! }
+ public var DialogList_EncryptionRejected: String { return self._s[3174]! }
+ public var GroupInfo_Administrators: String { return self._s[3175]! }
+ public var Passport_ScanPassportHelp: String { return self._s[3176]! }
+ public var Application_Name: String { return self._s[3177]! }
+ public var Channel_AdminLogFilter_ChannelEventsInfo: String { return self._s[3178]! }
+ public var Appearance_ThemeCarouselDay: String { return self._s[3180]! }
+ public var Passport_Identity_TranslationHelp: String { return self._s[3181]! }
public func Notification_JoinedGroupByLink(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3179]!, self._r[3179]!, [_0])
+ return formatWithArgumentRanges(self._s[3182]!, self._r[3182]!, [_0])
}
public func DialogList_EncryptedChatStartedOutgoing(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3180]!, self._r[3180]!, [_0])
+ return formatWithArgumentRanges(self._s[3183]!, self._r[3183]!, [_0])
}
- public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3181]! }
- public var Privacy_ChatsTitle: String { return self._s[3182]! }
- public var DialogList_ClearHistoryConfirmation: String { return self._s[3183]! }
- public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3184]! }
- public var Watch_Suggestion_HoldOn: String { return self._s[3185]! }
- public var Group_EditAdmin_TransferOwnership: String { return self._s[3186]! }
- public var Group_LinkedChannel: String { return self._s[3187]! }
- public var SocksProxySetup_RequiredCredentials: String { return self._s[3188]! }
- public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3189]! }
- public var TwoStepAuth_EmailSkipAlert: String { return self._s[3190]! }
- public var Channel_Setup_TypePublic: String { return self._s[3193]! }
+ public var Channel_EditAdmin_PermissionDeleteMessages: String { return self._s[3184]! }
+ public var Privacy_ChatsTitle: String { return self._s[3185]! }
+ public var DialogList_ClearHistoryConfirmation: String { return self._s[3186]! }
+ public var SettingsSearch_Synonyms_Data_Storage_ClearCache: String { return self._s[3187]! }
+ public var Watch_Suggestion_HoldOn: String { return self._s[3188]! }
+ public var Group_EditAdmin_TransferOwnership: String { return self._s[3189]! }
+ public var Group_LinkedChannel: String { return self._s[3190]! }
+ public var SocksProxySetup_RequiredCredentials: String { return self._s[3191]! }
+ public var Passport_Address_TypeRentalAgreementUploadScan: String { return self._s[3192]! }
+ public var TwoStepAuth_EmailSkipAlert: String { return self._s[3193]! }
+ public var Channel_Setup_TypePublic: String { return self._s[3196]! }
public func Channel_AdminLog_MessageToggleInvitesOn(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3194]!, self._r[3194]!, [_0])
+ return formatWithArgumentRanges(self._s[3197]!, self._r[3197]!, [_0])
}
- public var Channel_TypeSetup_Title: String { return self._s[3196]! }
- public var Map_OpenInMaps: String { return self._s[3198]! }
+ public var Channel_TypeSetup_Title: String { return self._s[3199]! }
+ public var Map_OpenInMaps: String { return self._s[3201]! }
public func PUSH_PINNED_NOTEXT(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3199]!, self._r[3199]!, [_1])
+ return formatWithArgumentRanges(self._s[3202]!, self._r[3202]!, [_1])
}
- public var NotificationsSound_Tremolo: String { return self._s[3201]! }
+ public var NotificationsSound_Tremolo: String { return self._s[3204]! }
public func Date_ChatDateHeaderYear(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3202]!, self._r[3202]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[3205]!, self._r[3205]!, [_1, _2, _3])
}
- public var ConversationProfile_UnknownAddMemberError: String { return self._s[3203]! }
- public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3204]! }
- public var Passport_PasswordHelp: String { return self._s[3205]! }
- public var Login_CodeExpiredError: String { return self._s[3206]! }
- public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3207]! }
- public var Conversation_TitleUnmute: String { return self._s[3208]! }
- public var Passport_Identity_ScansHelp: String { return self._s[3209]! }
- public var Passport_Language_lo: String { return self._s[3210]! }
- public var Camera_FlashAuto: String { return self._s[3211]! }
- public var Conversation_OpenBotLinkOpen: String { return self._s[3212]! }
- public var Common_Cancel: String { return self._s[3213]! }
- public var DialogList_SavedMessagesTooltip: String { return self._s[3214]! }
- public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3215]! }
+ public var ConversationProfile_UnknownAddMemberError: String { return self._s[3206]! }
+ public var Channel_OwnershipTransfer_PasswordPlaceholder: String { return self._s[3207]! }
+ public var Passport_PasswordHelp: String { return self._s[3208]! }
+ public var Login_CodeExpiredError: String { return self._s[3209]! }
+ public var Channel_EditAdmin_PermissionChangeInfo: String { return self._s[3210]! }
+ public var Conversation_TitleUnmute: String { return self._s[3211]! }
+ public var Passport_Identity_ScansHelp: String { return self._s[3212]! }
+ public var Passport_Language_lo: String { return self._s[3213]! }
+ public var Camera_FlashAuto: String { return self._s[3214]! }
+ public var Conversation_OpenBotLinkOpen: String { return self._s[3215]! }
+ public var Common_Cancel: String { return self._s[3216]! }
+ public var DialogList_SavedMessagesTooltip: String { return self._s[3217]! }
+ public var TwoStepAuth_SetupPasswordTitle: String { return self._s[3218]! }
public func PUSH_MESSAGE_FWD(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3216]!, self._r[3216]!, [_1])
+ return formatWithArgumentRanges(self._s[3219]!, self._r[3219]!, [_1])
}
- public var Conversation_ReportSpamConfirmation: String { return self._s[3217]! }
- public var ChatSettings_Title: String { return self._s[3219]! }
- public var Passport_PasswordReset: String { return self._s[3220]! }
- public var SocksProxySetup_TypeNone: String { return self._s[3221]! }
- public var PhoneNumberHelp_Help: String { return self._s[3223]! }
- public var Checkout_EnterPassword: String { return self._s[3224]! }
- public var Share_AuthTitle: String { return self._s[3226]! }
- public var Activity_UploadingDocument: String { return self._s[3227]! }
- public var State_Connecting: String { return self._s[3228]! }
- public var Profile_MessageLifetime1w: String { return self._s[3229]! }
- public var Conversation_ContextMenuReport: String { return self._s[3230]! }
- public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3231]! }
- public var AutoNightTheme_ScheduledTo: String { return self._s[3232]! }
- public var AuthSessions_Terminate: String { return self._s[3233]! }
- public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3234]! }
- public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3235]! }
- public var PhotoEditor_Set: String { return self._s[3236]! }
- public var EmptyGroupInfo_Title: String { return self._s[3237]! }
- public var Login_PadPhoneHelp: String { return self._s[3238]! }
- public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3240]! }
- public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3242]! }
- public var NotificationsSound_Complete: String { return self._s[3243]! }
- public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3244]! }
- public var Group_Info_AdminLog: String { return self._s[3245]! }
- public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3246]! }
- public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3247]! }
- public var Conversation_Admin: String { return self._s[3249]! }
- public var Conversation_GifTooltip: String { return self._s[3250]! }
- public var Passport_NotLoggedInMessage: String { return self._s[3251]! }
+ public var Conversation_ReportSpamConfirmation: String { return self._s[3220]! }
+ public var ChatSettings_Title: String { return self._s[3222]! }
+ public var Passport_PasswordReset: String { return self._s[3223]! }
+ public var SocksProxySetup_TypeNone: String { return self._s[3224]! }
+ public var PhoneNumberHelp_Help: String { return self._s[3226]! }
+ public var Checkout_EnterPassword: String { return self._s[3227]! }
+ public var Share_AuthTitle: String { return self._s[3229]! }
+ public var Activity_UploadingDocument: String { return self._s[3230]! }
+ public var State_Connecting: String { return self._s[3231]! }
+ public var Profile_MessageLifetime1w: String { return self._s[3232]! }
+ public var Conversation_ContextMenuReport: String { return self._s[3233]! }
+ public var CheckoutInfo_ReceiverInfoPhone: String { return self._s[3234]! }
+ public var AutoNightTheme_ScheduledTo: String { return self._s[3235]! }
+ public var AuthSessions_Terminate: String { return self._s[3236]! }
+ public var Checkout_NewCard_CardholderNamePlaceholder: String { return self._s[3237]! }
+ public var KeyCommand_JumpToPreviousUnreadChat: String { return self._s[3238]! }
+ public var PhotoEditor_Set: String { return self._s[3239]! }
+ public var EmptyGroupInfo_Title: String { return self._s[3240]! }
+ public var Login_PadPhoneHelp: String { return self._s[3241]! }
+ public var AutoDownloadSettings_TypeGroupChats: String { return self._s[3243]! }
+ public var PrivacyPolicy_DeclineLastWarning: String { return self._s[3245]! }
+ public var NotificationsSound_Complete: String { return self._s[3246]! }
+ public var SettingsSearch_Synonyms_Privacy_Data_Title: String { return self._s[3247]! }
+ public var Group_Info_AdminLog: String { return self._s[3248]! }
+ public var GroupPermission_NotAvailableInPublicGroups: String { return self._s[3249]! }
+ public var Channel_AdminLog_InfoPanelAlertText: String { return self._s[3250]! }
+ public var Conversation_Admin: String { return self._s[3252]! }
+ public var Conversation_GifTooltip: String { return self._s[3253]! }
+ public var Passport_NotLoggedInMessage: String { return self._s[3254]! }
public func AutoDownloadSettings_OnFor(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3252]!, self._r[3252]!, [_0])
+ return formatWithArgumentRanges(self._s[3255]!, self._r[3255]!, [_0])
}
- public var Profile_MessageLifetimeForever: String { return self._s[3253]! }
- public var SharedMedia_EmptyTitle: String { return self._s[3255]! }
- public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3257]! }
- public var Username_Help: String { return self._s[3258]! }
- public var DialogList_LanguageTooltip: String { return self._s[3260]! }
- public var Map_LoadError: String { return self._s[3261]! }
- public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3262]! }
- public var Channel_AdminLog_AddMembers: String { return self._s[3263]! }
- public var ArchivedChats_IntroTitle2: String { return self._s[3264]! }
- public var Notification_Exceptions_NewException: String { return self._s[3265]! }
- public var TwoStepAuth_EmailTitle: String { return self._s[3266]! }
- public var WatchRemote_AlertText: String { return self._s[3267]! }
- public var ChatSettings_ConnectionType_Title: String { return self._s[3270]! }
+ public var Profile_MessageLifetimeForever: String { return self._s[3256]! }
+ public var SharedMedia_EmptyTitle: String { return self._s[3258]! }
+ public var Channel_Edit_PrivatePublicLinkAlert: String { return self._s[3260]! }
+ public var Username_Help: String { return self._s[3261]! }
+ public var DialogList_LanguageTooltip: String { return self._s[3263]! }
+ public var Map_LoadError: String { return self._s[3264]! }
+ public var Login_PhoneNumberAlreadyAuthorized: String { return self._s[3265]! }
+ public var Channel_AdminLog_AddMembers: String { return self._s[3266]! }
+ public var ArchivedChats_IntroTitle2: String { return self._s[3267]! }
+ public var Notification_Exceptions_NewException: String { return self._s[3268]! }
+ public var TwoStepAuth_EmailTitle: String { return self._s[3269]! }
+ public var WatchRemote_AlertText: String { return self._s[3270]! }
+ public var ChatSettings_ConnectionType_Title: String { return self._s[3273]! }
public func Settings_CheckPhoneNumberTitle(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3271]!, self._r[3271]!, [_0])
- }
- public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3272]! }
- public var Passport_Address_CountryPlaceholder: String { return self._s[3273]! }
- public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) {
return formatWithArgumentRanges(self._s[3274]!, self._r[3274]!, [_0])
}
+ public var SettingsSearch_Synonyms_Calls_CallTab: String { return self._s[3275]! }
+ public var Passport_Address_CountryPlaceholder: String { return self._s[3276]! }
+ public func DialogList_AwaitingEncryption(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[3277]!, self._r[3277]!, [_0])
+ }
public func Time_PreciseDate_m6(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3275]!, self._r[3275]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[3278]!, self._r[3278]!, [_1, _2, _3])
}
- public var Group_AdminLog_EmptyText: String { return self._s[3276]! }
- public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3277]! }
- public var Conversation_PrivateChannelTooltip: String { return self._s[3279]! }
- public var ChatList_UndoArchiveText1: String { return self._s[3280]! }
- public var AccessDenied_VideoMicrophone: String { return self._s[3281]! }
- public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3282]! }
- public var Cache_ClearNone: String { return self._s[3283]! }
- public var SocksProxySetup_FailedToConnect: String { return self._s[3284]! }
- public var Permissions_NotificationsTitle_v0: String { return self._s[3285]! }
+ public var Group_AdminLog_EmptyText: String { return self._s[3279]! }
+ public var SettingsSearch_Synonyms_Appearance_Title: String { return self._s[3280]! }
+ public var Conversation_PrivateChannelTooltip: String { return self._s[3282]! }
+ public var ChatList_UndoArchiveText1: String { return self._s[3283]! }
+ public var AccessDenied_VideoMicrophone: String { return self._s[3284]! }
+ public var Conversation_ContextMenuStickerPackAdd: String { return self._s[3285]! }
+ public var Cache_ClearNone: String { return self._s[3286]! }
+ public var SocksProxySetup_FailedToConnect: String { return self._s[3287]! }
+ public var Permissions_NotificationsTitle_v0: String { return self._s[3288]! }
public func Channel_AdminLog_MessageEdited(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3286]!, self._r[3286]!, [_0])
- }
- public var Passport_Identity_Country: String { return self._s[3287]! }
- public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3288]!, self._r[3288]!, [_0])
- }
- public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) {
return formatWithArgumentRanges(self._s[3289]!, self._r[3289]!, [_0])
}
- public var Exceptions_AddToExceptions: String { return self._s[3290]! }
- public var AccessDenied_Settings: String { return self._s[3291]! }
- public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3292]! }
- public var Month_ShortMay: String { return self._s[3293]! }
- public var Compose_NewGroup: String { return self._s[3294]! }
- public var Group_Setup_TypePrivate: String { return self._s[3296]! }
- public var Login_PadPhoneHelpTitle: String { return self._s[3298]! }
- public var Appearance_ThemeDayClassic: String { return self._s[3299]! }
- public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3300]! }
- public var AutoDownloadSettings_OffForAll: String { return self._s[3301]! }
- public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3302]! }
- public var Conversation_typing: String { return self._s[3304]! }
- public var Paint_Masks: String { return self._s[3305]! }
- public var Username_InvalidTaken: String { return self._s[3306]! }
- public var Call_StatusNoAnswer: String { return self._s[3307]! }
- public var TwoStepAuth_EmailAddSuccess: String { return self._s[3308]! }
- public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3309]! }
- public var Passport_Identity_Selfie: String { return self._s[3310]! }
- public var Login_InfoLastNamePlaceholder: String { return self._s[3311]! }
- public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3312]! }
- public var Conversation_ClearSecretHistory: String { return self._s[3313]! }
- public var PeopleNearby_Description: String { return self._s[3315]! }
- public var NetworkUsageSettings_Title: String { return self._s[3316]! }
- public var Your_cards_security_code_is_invalid: String { return self._s[3318]! }
+ public var Passport_Identity_Country: String { return self._s[3290]! }
+ public func ChatSettings_AutoDownloadSettings_TypeFile(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[3291]!, self._r[3291]!, [_0])
+ }
+ public func Notification_CreatedChat(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[3292]!, self._r[3292]!, [_0])
+ }
+ public var Exceptions_AddToExceptions: String { return self._s[3293]! }
+ public var AccessDenied_Settings: String { return self._s[3294]! }
+ public var Passport_Address_TypeUtilityBillUploadScan: String { return self._s[3295]! }
+ public var Month_ShortMay: String { return self._s[3296]! }
+ public var Compose_NewGroup: String { return self._s[3297]! }
+ public var Group_Setup_TypePrivate: String { return self._s[3299]! }
+ public var Login_PadPhoneHelpTitle: String { return self._s[3301]! }
+ public var Appearance_ThemeDayClassic: String { return self._s[3302]! }
+ public var Channel_AdminLog_MessagePreviousCaption: String { return self._s[3303]! }
+ public var AutoDownloadSettings_OffForAll: String { return self._s[3304]! }
+ public var Privacy_GroupsAndChannels_WhoCanAddMe: String { return self._s[3305]! }
+ public var Conversation_typing: String { return self._s[3307]! }
+ public var Paint_Masks: String { return self._s[3308]! }
+ public var Username_InvalidTaken: String { return self._s[3309]! }
+ public var Call_StatusNoAnswer: String { return self._s[3310]! }
+ public var TwoStepAuth_EmailAddSuccess: String { return self._s[3311]! }
+ public var SettingsSearch_Synonyms_Privacy_BlockedUsers: String { return self._s[3312]! }
+ public var Passport_Identity_Selfie: String { return self._s[3313]! }
+ public var Login_InfoLastNamePlaceholder: String { return self._s[3314]! }
+ public var Privacy_SecretChatsLinkPreviewsHelp: String { return self._s[3315]! }
+ public var Conversation_ClearSecretHistory: String { return self._s[3316]! }
+ public var PeopleNearby_Description: String { return self._s[3318]! }
+ public var NetworkUsageSettings_Title: String { return self._s[3319]! }
+ public var Your_cards_security_code_is_invalid: String { return self._s[3321]! }
public func Notification_LeftChannel(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3320]!, self._r[3320]!, [_0])
+ return formatWithArgumentRanges(self._s[3323]!, self._r[3323]!, [_0])
}
public func Call_CallInProgressMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3321]!, self._r[3321]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[3324]!, self._r[3324]!, [_1, _2])
}
- public var SaveIncomingPhotosSettings_From: String { return self._s[3323]! }
- public var Map_LiveLocationTitle: String { return self._s[3324]! }
- public var Login_InfoAvatarAdd: String { return self._s[3325]! }
- public var Passport_Identity_FilesView: String { return self._s[3326]! }
- public var UserInfo_GenericPhoneLabel: String { return self._s[3327]! }
- public var Privacy_Calls_NeverAllow: String { return self._s[3328]! }
+ public var SaveIncomingPhotosSettings_From: String { return self._s[3326]! }
+ public var Map_LiveLocationTitle: String { return self._s[3327]! }
+ public var Login_InfoAvatarAdd: String { return self._s[3328]! }
+ public var Passport_Identity_FilesView: String { return self._s[3329]! }
+ public var UserInfo_GenericPhoneLabel: String { return self._s[3330]! }
+ public var Privacy_Calls_NeverAllow: String { return self._s[3331]! }
public func Contacts_AddPhoneNumber(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3329]!, self._r[3329]!, [_0])
+ return formatWithArgumentRanges(self._s[3332]!, self._r[3332]!, [_0])
}
- public var ContactInfo_PhoneNumberHidden: String { return self._s[3330]! }
- public var TwoStepAuth_ConfirmationText: String { return self._s[3331]! }
- public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3332]! }
+ public var ContactInfo_PhoneNumberHidden: String { return self._s[3333]! }
+ public var TwoStepAuth_ConfirmationText: String { return self._s[3334]! }
+ public var ChatSettings_AutomaticVideoMessageDownload: String { return self._s[3335]! }
public func PUSH_CHAT_MESSAGE_VIDEOS(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3333]!, self._r[3333]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[3336]!, self._r[3336]!, [_1, _2, _3])
}
- public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3334]! }
- public var Tour_Title2: String { return self._s[3335]! }
- public var Conversation_FileOpenIn: String { return self._s[3336]! }
- public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3337]! }
- public var Wallpaper_Set: String { return self._s[3338]! }
- public var Passport_Identity_Translations: String { return self._s[3340]! }
+ public var Channel_AdminLogFilter_AdminsAll: String { return self._s[3337]! }
+ public var Tour_Title2: String { return self._s[3338]! }
+ public var Conversation_FileOpenIn: String { return self._s[3339]! }
+ public var Checkout_ErrorPrecheckoutFailed: String { return self._s[3340]! }
+ public var Wallpaper_Set: String { return self._s[3341]! }
+ public var Passport_Identity_Translations: String { return self._s[3343]! }
public func Channel_AdminLog_MessageChangedChannelAbout(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3341]!, self._r[3341]!, [_0])
+ return formatWithArgumentRanges(self._s[3344]!, self._r[3344]!, [_0])
}
- public var Channel_LeaveChannel: String { return self._s[3342]! }
+ public var Channel_LeaveChannel: String { return self._s[3345]! }
public func PINNED_INVOICE(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3343]!, self._r[3343]!, [_1])
+ return formatWithArgumentRanges(self._s[3346]!, self._r[3346]!, [_1])
}
- public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[3344]! }
- public var PhotoEditor_HighlightsTint: String { return self._s[3345]! }
- public var Passport_Email_Delete: String { return self._s[3346]! }
- public var Conversation_Mute: String { return self._s[3348]! }
- public var Channel_AddBotAsAdmin: String { return self._s[3349]! }
- public var Channel_AdminLog_CanSendMessages: String { return self._s[3351]! }
- public var Channel_Management_LabelOwner: String { return self._s[3353]! }
+ public var SettingsSearch_Synonyms_Proxy_AddProxy: String { return self._s[3347]! }
+ public var PhotoEditor_HighlightsTint: String { return self._s[3348]! }
+ public var Passport_Email_Delete: String { return self._s[3349]! }
+ public var Conversation_Mute: String { return self._s[3351]! }
+ public var Channel_AddBotAsAdmin: String { return self._s[3352]! }
+ public var Channel_AdminLog_CanSendMessages: String { return self._s[3354]! }
+ public var Channel_Management_LabelOwner: String { return self._s[3356]! }
public func Notification_PassportValuesSentMessage(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3354]!, self._r[3354]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[3357]!, self._r[3357]!, [_1, _2])
}
- public var Calls_CallTabDescription: String { return self._s[3355]! }
- public var Passport_Identity_NativeNameHelp: String { return self._s[3356]! }
- public var Common_No: String { return self._s[3357]! }
- public var Weekday_Sunday: String { return self._s[3358]! }
- public var Notification_Reply: String { return self._s[3359]! }
- public var Conversation_ViewMessage: String { return self._s[3360]! }
+ public var Calls_CallTabDescription: String { return self._s[3358]! }
+ public var Passport_Identity_NativeNameHelp: String { return self._s[3359]! }
+ public var Common_No: String { return self._s[3360]! }
+ public var Weekday_Sunday: String { return self._s[3361]! }
+ public var Notification_Reply: String { return self._s[3362]! }
+ public var Conversation_ViewMessage: String { return self._s[3363]! }
public func Checkout_SavePasswordTimeoutAndFaceId(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3361]!, self._r[3361]!, [_0])
+ return formatWithArgumentRanges(self._s[3364]!, self._r[3364]!, [_0])
}
public func Map_LiveLocationPrivateDescription(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3362]!, self._r[3362]!, [_0])
+ return formatWithArgumentRanges(self._s[3365]!, self._r[3365]!, [_0])
}
- public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[3363]! }
- public var Message_PinnedDocumentMessage: String { return self._s[3364]! }
- public var DialogList_TabTitle: String { return self._s[3366]! }
- public var ChatSettings_AutoPlayTitle: String { return self._s[3367]! }
- public var Passport_FieldEmail: String { return self._s[3368]! }
- public var Conversation_UnpinMessageAlert: String { return self._s[3369]! }
- public var Passport_Address_TypeBankStatement: String { return self._s[3370]! }
- public var Passport_Identity_ExpiryDate: String { return self._s[3371]! }
- public var Privacy_Calls_P2P: String { return self._s[3372]! }
+ public var SettingsSearch_Synonyms_EditProfile_AddAccount: String { return self._s[3366]! }
+ public var Message_PinnedDocumentMessage: String { return self._s[3367]! }
+ public var DialogList_TabTitle: String { return self._s[3369]! }
+ public var ChatSettings_AutoPlayTitle: String { return self._s[3370]! }
+ public var Passport_FieldEmail: String { return self._s[3371]! }
+ public var Conversation_UnpinMessageAlert: String { return self._s[3372]! }
+ public var Passport_Address_TypeBankStatement: String { return self._s[3373]! }
+ public var Passport_Identity_ExpiryDate: String { return self._s[3374]! }
+ public var Privacy_Calls_P2P: String { return self._s[3375]! }
public func CancelResetAccount_Success(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3374]!, self._r[3374]!, [_0])
+ return formatWithArgumentRanges(self._s[3377]!, self._r[3377]!, [_0])
}
- public var SocksProxySetup_UseForCallsHelp: String { return self._s[3375]! }
+ public var SocksProxySetup_UseForCallsHelp: String { return self._s[3378]! }
public func PUSH_CHAT_ALBUM(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3376]!, self._r[3376]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[3379]!, self._r[3379]!, [_1, _2])
}
- public var Stickers_ClearRecent: String { return self._s[3377]! }
- public var EnterPasscode_ChangeTitle: String { return self._s[3378]! }
- public var Passport_InfoText: String { return self._s[3379]! }
- public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[3380]! }
+ public var Stickers_ClearRecent: String { return self._s[3380]! }
+ public var EnterPasscode_ChangeTitle: String { return self._s[3381]! }
+ public var Passport_InfoText: String { return self._s[3382]! }
+ public var Checkout_NewCard_SaveInfoEnableHelp: String { return self._s[3383]! }
public func Login_InvalidPhoneEmailSubject(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3381]!, self._r[3381]!, [_0])
+ return formatWithArgumentRanges(self._s[3384]!, self._r[3384]!, [_0])
}
public func Time_PreciseDate_m3(_ _1: String, _ _2: String, _ _3: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3382]!, self._r[3382]!, [_1, _2, _3])
+ return formatWithArgumentRanges(self._s[3385]!, self._r[3385]!, [_1, _2, _3])
}
- public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[3383]! }
- public var Passport_Identity_EditDriversLicense: String { return self._s[3384]! }
- public var Conversation_TapAndHoldToRecord: String { return self._s[3386]! }
- public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[3387]! }
+ public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChannels: String { return self._s[3386]! }
+ public var Passport_Identity_EditDriversLicense: String { return self._s[3387]! }
+ public var Conversation_TapAndHoldToRecord: String { return self._s[3389]! }
+ public var SettingsSearch_Synonyms_Notifications_BadgeIncludeMutedChats: String { return self._s[3390]! }
public func Notification_CallTimeFormat(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3388]!, self._r[3388]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[3391]!, self._r[3391]!, [_1, _2])
}
- public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3390]! }
+ public var Channel_EditAdmin_PermissionInviteViaLink: String { return self._s[3393]! }
public func Generic_OpenHiddenLinkAlert(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3392]!, self._r[3392]!, [_0])
+ return formatWithArgumentRanges(self._s[3395]!, self._r[3395]!, [_0])
}
- public var DialogList_Unread: String { return self._s[3393]! }
+ public var DialogList_Unread: String { return self._s[3396]! }
public func PUSH_CHAT_MESSAGE_GIF(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3394]!, self._r[3394]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[3397]!, self._r[3397]!, [_1, _2])
}
- public var User_DeletedAccount: String { return self._s[3395]! }
- public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[3396]! }
+ public var User_DeletedAccount: String { return self._s[3398]! }
+ public var OwnershipTransfer_SetupTwoStepAuth: String { return self._s[3399]! }
public func Watch_Time_ShortYesterdayAt(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3397]!, self._r[3397]!, [_0])
+ return formatWithArgumentRanges(self._s[3400]!, self._r[3400]!, [_0])
}
- public var UserInfo_NotificationsDefault: String { return self._s[3398]! }
- public var SharedMedia_CategoryMedia: String { return self._s[3399]! }
- public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[3400]! }
- public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[3401]! }
- public var Watch_ChatList_Compose: String { return self._s[3402]! }
- public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[3403]! }
- public var AutoDownloadSettings_Delimeter: String { return self._s[3404]! }
- public var Watch_Microphone_Access: String { return self._s[3405]! }
- public var Group_Setup_HistoryHeader: String { return self._s[3406]! }
- public var Map_SetThisLocation: String { return self._s[3407]! }
- public var Activity_UploadingPhoto: String { return self._s[3408]! }
- public var Conversation_Edit: String { return self._s[3410]! }
- public var Group_ErrorSendRestrictedMedia: String { return self._s[3411]! }
- public var Login_TermsOfServiceDecline: String { return self._s[3412]! }
- public var Message_PinnedContactMessage: String { return self._s[3413]! }
+ public var UserInfo_NotificationsDefault: String { return self._s[3401]! }
+ public var SharedMedia_CategoryMedia: String { return self._s[3402]! }
+ public var SocksProxySetup_ProxyStatusUnavailable: String { return self._s[3403]! }
+ public var Channel_AdminLog_MessageRestrictedForever: String { return self._s[3404]! }
+ public var Watch_ChatList_Compose: String { return self._s[3405]! }
+ public var Notifications_MessageNotificationsExceptionsHelp: String { return self._s[3406]! }
+ public var AutoDownloadSettings_Delimeter: String { return self._s[3407]! }
+ public var Watch_Microphone_Access: String { return self._s[3408]! }
+ public var Group_Setup_HistoryHeader: String { return self._s[3409]! }
+ public var Map_SetThisLocation: String { return self._s[3410]! }
+ public var Activity_UploadingPhoto: String { return self._s[3411]! }
+ public var Conversation_Edit: String { return self._s[3413]! }
+ public var Group_ErrorSendRestrictedMedia: String { return self._s[3414]! }
+ public var Login_TermsOfServiceDecline: String { return self._s[3415]! }
+ public var Message_PinnedContactMessage: String { return self._s[3416]! }
public func Channel_AdminLog_MessageRestrictedNameUsername(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3414]!, self._r[3414]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[3417]!, self._r[3417]!, [_1, _2])
}
public func Login_PhoneBannedEmailBody(_ _1: String, _ _2: String, _ _3: String, _ _4: String, _ _5: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3415]!, self._r[3415]!, [_1, _2, _3, _4, _5])
+ return formatWithArgumentRanges(self._s[3418]!, self._r[3418]!, [_1, _2, _3, _4, _5])
}
- public var Appearance_LargeEmoji: String { return self._s[3416]! }
- public var TwoStepAuth_AdditionalPassword: String { return self._s[3418]! }
+ public var Appearance_LargeEmoji: String { return self._s[3419]! }
+ public var TwoStepAuth_AdditionalPassword: String { return self._s[3421]! }
public func PUSH_CHAT_DELETE_YOU(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3419]!, self._r[3419]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[3422]!, self._r[3422]!, [_1, _2])
}
- public var Passport_Phone_EnterOtherNumber: String { return self._s[3420]! }
- public var Message_PinnedPhotoMessage: String { return self._s[3421]! }
- public var Passport_FieldPhone: String { return self._s[3422]! }
- public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[3423]! }
- public var ChatSettings_AutoPlayGifs: String { return self._s[3424]! }
- public var InfoPlist_NSCameraUsageDescription: String { return self._s[3426]! }
- public var Conversation_Call: String { return self._s[3427]! }
- public var Common_TakePhoto: String { return self._s[3429]! }
- public var Channel_NotificationLoading: String { return self._s[3430]! }
+ public var Passport_Phone_EnterOtherNumber: String { return self._s[3423]! }
+ public var Message_PinnedPhotoMessage: String { return self._s[3424]! }
+ public var Passport_FieldPhone: String { return self._s[3425]! }
+ public var TwoStepAuth_RecoveryEmailAddDescription: String { return self._s[3426]! }
+ public var ChatSettings_AutoPlayGifs: String { return self._s[3427]! }
+ public var InfoPlist_NSCameraUsageDescription: String { return self._s[3429]! }
+ public var Conversation_Call: String { return self._s[3430]! }
+ public var Common_TakePhoto: String { return self._s[3432]! }
+ public var Channel_NotificationLoading: String { return self._s[3433]! }
public func Notification_Exceptions_Sound(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3431]!, self._r[3431]!, [_0])
- }
- public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3432]!, self._r[3432]!, [_1])
- }
- public var Permissions_SiriTitle_v0: String { return self._s[3433]! }
- public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) {
return formatWithArgumentRanges(self._s[3434]!, self._r[3434]!, [_0])
}
- public var Channel_MessagePhotoRemoved: String { return self._s[3435]! }
- public var Common_edit: String { return self._s[3436]! }
- public var PrivacySettings_AuthSessions: String { return self._s[3437]! }
- public var Month_ShortJune: String { return self._s[3438]! }
- public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[3439]! }
- public var Call_ReportSend: String { return self._s[3440]! }
- public var Watch_LastSeen_JustNow: String { return self._s[3441]! }
- public var Notifications_MessageNotifications: String { return self._s[3442]! }
- public var WallpaperSearch_ColorGreen: String { return self._s[3443]! }
- public var BroadcastListInfo_AddRecipient: String { return self._s[3445]! }
- public var Group_Status: String { return self._s[3446]! }
+ public func PUSH_CHANNEL_MESSAGE_VIDEO(_ _1: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[3435]!, self._r[3435]!, [_1])
+ }
+ public var Permissions_SiriTitle_v0: String { return self._s[3436]! }
+ public func Login_ResetAccountProtected_Text(_ _0: String) -> (String, [(Int, NSRange)]) {
+ return formatWithArgumentRanges(self._s[3437]!, self._r[3437]!, [_0])
+ }
+ public var Channel_MessagePhotoRemoved: String { return self._s[3438]! }
+ public var Common_edit: String { return self._s[3439]! }
+ public var PrivacySettings_AuthSessions: String { return self._s[3440]! }
+ public var Month_ShortJune: String { return self._s[3441]! }
+ public var PrivacyLastSeenSettings_AlwaysShareWith_Placeholder: String { return self._s[3442]! }
+ public var Call_ReportSend: String { return self._s[3443]! }
+ public var Watch_LastSeen_JustNow: String { return self._s[3444]! }
+ public var Notifications_MessageNotifications: String { return self._s[3445]! }
+ public var WallpaperSearch_ColorGreen: String { return self._s[3446]! }
+ public var BroadcastListInfo_AddRecipient: String { return self._s[3448]! }
+ public var Group_Status: String { return self._s[3449]! }
public func AutoNightTheme_LocationHelp(_ _0: String, _ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3447]!, self._r[3447]!, [_0, _1])
+ return formatWithArgumentRanges(self._s[3450]!, self._r[3450]!, [_0, _1])
}
- public var TextFormat_AddLinkTitle: String { return self._s[3448]! }
- public var ShareMenu_ShareTo: String { return self._s[3449]! }
- public var Conversation_Moderate_Ban: String { return self._s[3450]! }
+ public var TextFormat_AddLinkTitle: String { return self._s[3451]! }
+ public var ShareMenu_ShareTo: String { return self._s[3452]! }
+ public var Conversation_Moderate_Ban: String { return self._s[3453]! }
public func Conversation_DeleteMessagesFor(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3451]!, self._r[3451]!, [_0])
+ return formatWithArgumentRanges(self._s[3454]!, self._r[3454]!, [_0])
}
- public var SharedMedia_ViewInChat: String { return self._s[3452]! }
- public var Map_LiveLocationFor8Hours: String { return self._s[3453]! }
+ public var SharedMedia_ViewInChat: String { return self._s[3455]! }
+ public var Map_LiveLocationFor8Hours: String { return self._s[3456]! }
public func PUSH_PINNED_PHOTO(_ _1: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3454]!, self._r[3454]!, [_1])
+ return formatWithArgumentRanges(self._s[3457]!, self._r[3457]!, [_1])
}
public func PUSH_PINNED_POLL(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3455]!, self._r[3455]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[3458]!, self._r[3458]!, [_1, _2])
}
public func Map_AccurateTo(_ _0: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3457]!, self._r[3457]!, [_0])
+ return formatWithArgumentRanges(self._s[3460]!, self._r[3460]!, [_0])
}
- public var Map_OpenInHereMaps: String { return self._s[3458]! }
- public var Appearance_ReduceMotion: String { return self._s[3459]! }
+ public var Map_OpenInHereMaps: String { return self._s[3461]! }
+ public var Appearance_ReduceMotion: String { return self._s[3462]! }
public func PUSH_MESSAGE_TEXT(_ _1: String, _ _2: String) -> (String, [(Int, NSRange)]) {
- return formatWithArgumentRanges(self._s[3460]!, self._r[3460]!, [_1, _2])
+ return formatWithArgumentRanges(self._s[3463]!, self._r[3463]!, [_1, _2])
}
- public var Channel_Setup_TypePublicHelp: String { return self._s[3461]! }
- public var Passport_Identity_EditInternalPassport: String { return self._s[3462]! }
- public var PhotoEditor_Skip: String { return self._s[3463]! }
- public func MessageTimer_Weeks(_ value: Int32) -> String {
+ public var Channel_Setup_TypePublicHelp: String { return self._s[3464]! }
+ public var Passport_Identity_EditInternalPassport: String { return self._s[3465]! }
+ public var PhotoEditor_Skip: String { return self._s[3466]! }
+ public func Forward_ConfirmMultipleFiles(_ 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 Call_ShortMinutes(_ value: Int32) -> String {
+ public func Conversation_StatusMembers(_ 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 SharedMedia_Link(_ value: Int32) -> String {
+ public func Conversation_LiveLocationMembersCount(_ 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 Conversation_StatusSubscribers(_ 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[3 * 6 + Int(form.rawValue)]!, stringValue)
}
- public func MuteFor_Days(_ value: Int32) -> String {
+ public func MessageTimer_ShortWeeks(_ 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 Media_ShareVideo(_ value: Int32) -> String {
+ public func ChatList_SelectedChats(_ 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 Map_ETAMinutes(_ value: Int32) -> String {
+ public func DialogList_LiveLocationChatsCount(_ 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 PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String {
+ let form = presentationStringsPluralizationForm(self.lc, selector)
+ return String(format: self._ps[7 * 6 + Int(form.rawValue)]!, _1, _2)
+ }
+ public func PUSH_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String {
+ let form = presentationStringsPluralizationForm(self.lc, selector)
+ return String(format: self._ps[8 * 6 + Int(form.rawValue)]!, _1, _2)
+ }
public func StickerPack_AddStickerCount(_ 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 MessagePoll_VotedCount(_ 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)
- }
- public func MessageTimer_ShortHours(_ value: Int32) -> String {
let form = presentationStringsPluralizationForm(self.lc, value)
let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator)
return String(format: self._ps[9 * 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[10 * 6 + Int(form.rawValue)]!, _1, _2)
- }
- public func ForwardedFiles(_ value: Int32) -> String {
+ public func Call_ShortMinutes(_ 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 PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String {
- let form = presentationStringsPluralizationForm(self.lc, selector)
- return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, _2, _1, _3)
- }
- public func MuteExpires_Minutes(_ 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 MessageTimer_Years(_ 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 Notifications_Exceptions(_ 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 PasscodeSettings_FailedAttempts(_ 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 Forward_ConfirmMultipleFiles(_ value: Int32) -> String {
- let form = presentationStringsPluralizationForm(self.lc, value)
- let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator)
- return String(format: self._ps[17 * 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[18 * 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[19 * 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[20 * 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[21 * 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[22 * 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[23 * 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[24 * 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[25 * 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[26 * 6 + Int(form.rawValue)]!, stringValue)
- }
- public func StickerPack_RemoveStickerCount(_ 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 MuteFor_Hours(_ 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 ForwardedPolls(_ 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 Conversation_StatusMembers(_ 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 Call_Minutes(_ 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 PUSH_CHANNEL_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String {
- let form = presentationStringsPluralizationForm(self.lc, selector)
- return String(format: self._ps[32 * 6 + Int(form.rawValue)]!, _1, _2)
- }
- public func Passport_Scans(_ 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 Notification_GameScoreSelfSimple(_ 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 StickerPack_AddMaskCount(_ value: Int32) -> String {
- let form = presentationStringsPluralizationForm(self.lc, value)
- let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator)
- return String(format: self._ps[35 * 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[36 * 6 + Int(form.rawValue)]!, _1, _2)
- }
- 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[37 * 6 + Int(form.rawValue)]!, _2, _1, _3)
- }
- public func ForwardedMessages(_ 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 PrivacyLastSeenSettings_AddUsers(_ 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 QuickSend_Photos(_ 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 MuteExpires_Days(_ 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 MessageTimer_Minutes(_ 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 ChatList_DeleteConfirmation(_ 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 SharedMedia_File(_ 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 PUSH_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String {
- let form = presentationStringsPluralizationForm(self.lc, selector)
- return String(format: self._ps[45 * 6 + Int(form.rawValue)]!, _1, _2)
- }
- public func MessageTimer_ShortDays(_ 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 PUSH_CHANNEL_MESSAGE_VIDEOS(_ 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 ServiceMessage_GameScoreSelfSimple(_ value: Int32) -> String {
- let form = presentationStringsPluralizationForm(self.lc, value)
- let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator)
- return String(format: self._ps[48 * 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[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 GroupInfo_ParticipantCount(_ value: Int32) -> String {
- let form = presentationStringsPluralizationForm(self.lc, value)
- let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator)
- return String(format: self._ps[51 * 6 + Int(form.rawValue)]!, stringValue)
+ return String(format: self._ps[10 * 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[52 * 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[53 * 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[54 * 6 + Int(form.rawValue)]!, _1, _2)
- }
- public func ForwardedVideoMessages(_ 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 Call_ShortSeconds(_ value: Int32) -> String {
- let form = presentationStringsPluralizationForm(self.lc, value)
- let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator)
- return String(format: self._ps[56 * 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[57 * 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[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 Notification_GameScoreSelfExtended(_ 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 LastSeen_HoursAgo(_ 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 Media_ShareItem(_ 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 AttachmentMenu_SendGif(_ 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 LiveLocation_MenuChatsCount(_ 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)
+ return String(format: self._ps[11 * 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[65 * 6 + Int(form.rawValue)]!, stringValue)
+ return String(format: self._ps[12 * 6 + Int(form.rawValue)]!, stringValue)
}
- public func Call_Seconds(_ value: Int32) -> String {
+ public func ForwardedPolls(_ 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)
+ return String(format: self._ps[13 * 6 + Int(form.rawValue)]!, stringValue)
}
- public func ForwardedPhotos(_ value: Int32) -> String {
+ public func MessageTimer_Months(_ 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)
+ return String(format: self._ps[14 * 6 + Int(form.rawValue)]!, stringValue)
}
- public func ForwardedAudios(_ 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[68 * 6 + Int(form.rawValue)]!, stringValue)
+ return String(format: self._ps[15 * 6 + Int(form.rawValue)]!, stringValue)
}
- public func PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String {
- let form = presentationStringsPluralizationForm(self.lc, selector)
- return String(format: self._ps[69 * 6 + Int(form.rawValue)]!, _1, _2)
- }
- 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[70 * 6 + Int(form.rawValue)]!, _2, _1, _3)
- }
- public func AttachmentMenu_SendItem(_ value: Int32) -> String {
+ public func GroupInfo_ParticipantCount(_ 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_GameScoreSimple(_ 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 StickerPack_RemoveMaskCount(_ 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 MessageTimer_ShortMinutes(_ 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 Notification_GameScoreExtended(_ 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 Media_SharePhoto(_ 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 PUSH_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String {
- let form = presentationStringsPluralizationForm(self.lc, selector)
- return String(format: self._ps[77 * 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[78 * 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[79 * 6 + Int(form.rawValue)]!, stringValue)
- }
- public func ChatList_SelectedChats(_ 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 Watch_UserInfo_Mute(_ 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 PUSH_CHANNEL_MESSAGES(_ selector: Int32, _ _1: String, _ _2: Int32) -> String {
- let form = presentationStringsPluralizationForm(self.lc, selector)
- return String(format: self._ps[82 * 6 + Int(form.rawValue)]!, _1, _2)
- }
- public func LastSeen_MinutesAgo(_ 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_Minutes(_ 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 Watch_LastSeen_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 SharedMedia_Generic(_ 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 PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String {
- let form = presentationStringsPluralizationForm(self.lc, selector)
- return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, _2, _1, _3)
- }
- public func SharedMedia_DeleteItemsConfirmation(_ 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 ForwardedContacts(_ 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 Wallpaper_DeleteConfirmation(_ 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 CreatePoll_AddMoreOptions(_ 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 AttachmentMenu_SendVideo(_ 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 MessageTimer_ShortWeeks(_ 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 SharedMedia_Photo(_ 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)
+ return String(format: self._ps[16 * 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[95 * 6 + Int(form.rawValue)]!, _2, _1, _3)
+ return String(format: self._ps[17 * 6 + Int(form.rawValue)]!, _2, _1, _3)
}
- public func Watch_LastSeen_HoursAgo(_ value: Int32) -> String {
+ public func MuteFor_Days(_ 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 AttachmentMenu_SendPhoto(_ 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_PHOTOS(_ 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 Chat_DeleteMessagesConfirmation(_ 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 ForwardedVideos(_ 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[18 * 6 + Int(form.rawValue)]!, stringValue)
}
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[19 * 6 + Int(form.rawValue)]!, stringValue)
}
- public func MuteExpires_Hours(_ value: Int32) -> String {
+ public func ForwardedPhotos(_ 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[20 * 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[21 * 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[22 * 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[23 * 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[24 * 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[25 * 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[26 * 6 + Int(form.rawValue)]!, _1, _2)
+ }
+ public func LiveLocation_MenuChatsCount(_ 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 SharedMedia_Link(_ 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 ChatList_DeleteConfirmation(_ 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 PUSH_CHAT_MESSAGE_PHOTOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String {
+ let form = presentationStringsPluralizationForm(self.lc, selector)
+ return String(format: self._ps[30 * 6 + Int(form.rawValue)]!, _2, _1, _3)
+ }
+ public func Contacts_ImportersCount(_ 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 Media_ShareItem(_ 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 Media_ShareVideo(_ 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 MessageTimer_Hours(_ 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 Call_Minutes(_ value: Int32) -> String {
+ let form = presentationStringsPluralizationForm(self.lc, value)
+ let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator)
+ return String(format: self._ps[35 * 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[36 * 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[103 * 6 + Int(form.rawValue)]!, stringValue)
+ return String(format: self._ps[37 * 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[38 * 6 + Int(form.rawValue)]!, stringValue)
+ }
+ public func Wallpaper_DeleteConfirmation(_ 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 PasscodeSettings_FailedAttempts(_ 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 ServiceMessage_GameScoreSelfSimple(_ 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 StickerPack_AddMaskCount(_ 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 ForwardedContacts(_ 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 MessageTimer_Seconds(_ 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 Map_ETAHours(_ 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 PUSH_CHANNEL_MESSAGE_VIDEOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String {
+ let form = presentationStringsPluralizationForm(self.lc, selector)
+ return String(format: self._ps[46 * 6 + Int(form.rawValue)]!, _1, _2)
+ }
+ public func ForwardedAudios(_ 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_MESSAGE_ROUNDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String {
+ let form = presentationStringsPluralizationForm(self.lc, selector)
+ return String(format: self._ps[48 * 6 + Int(form.rawValue)]!, _1, _2)
+ }
+ public func SharedMedia_Video(_ 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 MessagePoll_VotedCount(_ 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 AttachmentMenu_SendPhoto(_ value: Int32) -> String {
+ let form = presentationStringsPluralizationForm(self.lc, value)
+ let stringValue = presentationStringsFormattedNumber(value, self.groupingSeparator)
+ return String(format: self._ps[51 * 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[52 * 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[53 * 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[54 * 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[55 * 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[56 * 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[57 * 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[104 * 6 + Int(form.rawValue)]!, stringValue)
+ return String(format: self._ps[58 * 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[59 * 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[60 * 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[61 * 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[62 * 6 + Int(form.rawValue)]!, _2, _1, _3)
+ }
+ public func ForwardedVideos(_ 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_Generic(_ 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_RemoveStickerCount(_ 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 MessageTimer_ShortSeconds(_ 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 Call_ShortSeconds(_ 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 MessageTimer_Days(_ 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 Watch_LastSeen_HoursAgo(_ 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 QuickSend_Photos(_ 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 MuteExpires_Minutes(_ 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 CreatePoll_AddMoreOptions(_ 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 ForwardedGifs(_ 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 LastSeen_MinutesAgo(_ 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 PUSH_CHANNEL_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String {
+ let form = presentationStringsPluralizationForm(self.lc, selector)
+ return String(format: self._ps[75 * 6 + Int(form.rawValue)]!, _1, _2)
+ }
+ public func Conversation_StatusSubscribers(_ 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 MuteExpires_Hours(_ 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 InviteText_ContactsCountText(_ 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 Passport_Scans(_ 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 Media_SharePhoto(_ 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 Call_Seconds(_ 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 UserCount(_ 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 PUSH_MESSAGE_FWDS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String {
+ let form = presentationStringsPluralizationForm(self.lc, selector)
+ return String(format: self._ps[83 * 6 + Int(form.rawValue)]!, _1, _2)
+ }
+ public func Invitation_Members(_ 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 MessageTimer_Weeks(_ 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 AttachmentMenu_SendItem(_ 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 ForwardedAuthorsOthers(_ selector: Int32, _ _0: String, _ _1: String) -> String {
let form = presentationStringsPluralizationForm(self.lc, selector)
- return String(format: self._ps[105 * 6 + Int(form.rawValue)]!, _0, _1)
+ return String(format: self._ps[87 * 6 + Int(form.rawValue)]!, _0, _1)
}
- public func DialogList_LiveLocationChatsCount(_ 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[88 * 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[89 * 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[90 * 6 + Int(form.rawValue)]!, _1, _2)
+ }
+ 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[91 * 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[92 * 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[93 * 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[94 * 6 + Int(form.rawValue)]!, stringValue)
+ }
+ public func SharedMedia_Photo(_ 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 PUSH_MESSAGE_PHOTOS(_ selector: Int32, _ _1: String, _ _2: Int32) -> String {
+ let form = presentationStringsPluralizationForm(self.lc, selector)
+ return String(format: self._ps[96 * 6 + Int(form.rawValue)]!, _1, _2)
+ }
+ public func PrivacyLastSeenSettings_AddUsers(_ 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_MESSAGE_VIDEOS(_ 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 PUSH_CHAT_MESSAGE_ROUNDS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String {
+ let form = presentationStringsPluralizationForm(self.lc, selector)
+ return String(format: self._ps[99 * 6 + Int(form.rawValue)]!, _2, _1, _3)
+ }
+ public func MessageTimer_ShortHours(_ 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 PUSH_CHAT_MESSAGE_VIDEOS(_ selector: Int32, _ _2: String, _ _1: String, _ _3: Int32) -> String {
+ let form = presentationStringsPluralizationForm(self.lc, selector)
+ return String(format: self._ps[101 * 6 + Int(form.rawValue)]!, _2, _1, _3)
+ }
+ public func ForwardedLocations(_ 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 Notifications_Exceptions(_ 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 Chat_DeleteMessagesConfirmation(_ 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 ServiceMessage_GameScoreSelfExtended(_ 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 LastSeen_HoursAgo(_ 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 {
+ public func MessageTimer_ShortDays(_ 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)
diff --git a/submodules/TelegramUI/TelegramUI/AnimatedStickerUtils.swift b/submodules/TelegramUI/TelegramUI/AnimatedStickerUtils.swift
index 60b52b783e..0ae8f57051 100644
--- a/submodules/TelegramUI/TelegramUI/AnimatedStickerUtils.swift
+++ b/submodules/TelegramUI/TelegramUI/AnimatedStickerUtils.swift
@@ -149,6 +149,8 @@ func experimentalConvertCompressedLottieToCombinedMp4(data: Data, size: CGSize,
let appendStartTime = CACurrentMediaTime()
+ //compressRGBAToBC1(currentFrameData.assumingMemoryBound(to: UInt8.self), Int32(size.width), Int32(size.height), yuvaFrameData.assumingMemoryBound(to: UInt8.self))
+
encodeRGBAToYUVA(yuvaFrameData.assumingMemoryBound(to: UInt8.self), currentFrameData.assumingMemoryBound(to: UInt8.self), Int32(size.width), Int32(size.height))
//decodeYUVAToRGBA(yuvaFrameData.assumingMemoryBound(to: UInt8.self), singleContext.bytes.assumingMemoryBound(to: UInt8.self), Int32(size.width), Int32(size.height))
diff --git a/submodules/TelegramUI/TelegramUI/ChatController.swift b/submodules/TelegramUI/TelegramUI/ChatController.swift
index 6b7abb46ee..fd91ab7fc2 100644
--- a/submodules/TelegramUI/TelegramUI/ChatController.swift
+++ b/submodules/TelegramUI/TelegramUI/ChatController.swift
@@ -196,6 +196,8 @@ public final class ChatController: TelegramController, GalleryHiddenMediaTarget,
private var historyNavigationStack = ChatHistoryNavigationStack()
let canReadHistory = ValuePromise(true, ignoreRepeated: true)
+ private var reminderActivity: NSUserActivity?
+ private var isReminderActivityEnabled: Bool = false
private var canReadHistoryValue = false
private var canReadHistoryDisposable: Disposable?
@@ -1646,13 +1648,15 @@ public final class ChatController: TelegramController, GalleryHiddenMediaTarget,
}
strongSelf.updateChatPresentationInterfaceState(animated: animated, interactive: false, {
- return $0.updatedPeer { _ in return renderedPeer
+ return $0.updatedPeer { _ in
+ return renderedPeer
}.updatedIsNotAccessible(isNotAccessible).updatedContactStatus(contactStatus).updatedHasBots(hasBots).updatedIsArchived(isArchived).updatedPeerIsMuted(peerIsMuted).updatedPeerDiscussionId(peerDiscussionId).updatedPeerGeoLocation(peerGeoLocation).updatedExplicitelyCanPinMessages(explicitelyCanPinMessages)
})
if !strongSelf.didSetChatLocationInfoReady {
strongSelf.didSetChatLocationInfoReady = true
strongSelf._chatLocationInfoReady.set(.single(true))
}
+ strongSelf.updateReminderActivity()
if let upgradedToPeerId = upgradedToPeerId {
if let navigationController = strongSelf.navigationController as? NavigationController {
var viewControllers = navigationController.viewControllers
@@ -1898,6 +1902,8 @@ public final class ChatController: TelegramController, GalleryHiddenMediaTarget,
if let strongSelf = self, strongSelf.canReadHistoryValue != value {
strongSelf.canReadHistoryValue = value
strongSelf.raiseToListen?.enabled = value
+ strongSelf.isReminderActivityEnabled = value
+ strongSelf.updateReminderActivity()
}
})
@@ -1963,6 +1969,7 @@ public final class ChatController: TelegramController, GalleryHiddenMediaTarget,
self.context.sharedContext.mediaManager.galleryHiddenMediaManager.removeTarget(self)
self.preloadHistoryPeerIdDisposable.dispose()
self.reportIrrelvantGeoDisposable?.dispose()
+ self.reminderActivity?.invalidate()
}
public func updatePresentationMode(_ mode: ChatControllerPresentationMode) {
@@ -6935,4 +6942,32 @@ public final class ChatController: TelegramController, GalleryHiddenMediaTarget,
})
}
}
+
+ private func updateReminderActivity() {
+ if (self.isReminderActivityEnabled) {
+ if #available(iOS 9.0, *) {
+ if self.reminderActivity == nil, case let .peer(peerId) = self.chatLocation, let peer = self.presentationInterfaceState.renderedPeer?.chatMainPeer {
+ let reminderActivity = NSUserActivity(activityType: "RemindAboutChatIntent")
+ self.reminderActivity = reminderActivity
+ if peer is TelegramGroup {
+ reminderActivity.title = self.presentationData.strings.Activity_RemindAboutGroup(peer.displayTitle).0
+ } else if let channel = peer as? TelegramChannel {
+ if case .broadcast = channel.info {
+ reminderActivity.title = self.presentationData.strings.Activity_RemindAboutChannel(peer.displayTitle).0
+ } else {
+ reminderActivity.title = self.presentationData.strings.Activity_RemindAboutGroup(peer.displayTitle).0
+ }
+ } else {
+ reminderActivity.title = self.presentationData.strings.Activity_RemindAboutUser(peer.displayTitle).0
+ }
+ reminderActivity.userInfo = ["peerId": peerId.toInt64(), "peerTitle": peer.displayTitle]
+ reminderActivity.isEligibleForHandoff = true
+ reminderActivity.becomeCurrent()
+ }
+ }
+ } else if let reminderActivity = self.reminderActivity {
+ self.reminderActivity = nil
+ reminderActivity.invalidate()
+ }
+ }
}
diff --git a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping
index 43f28b412f..a017c8121f 100644
Binary files a/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping and b/submodules/TelegramUI/TelegramUI/Resources/PresentationStrings.mapping differ
diff --git a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj
index dafe61f683..a1c30d172d 100644
--- a/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj
+++ b/submodules/TelegramUI/TelegramUI_Xcode.xcodeproj/project.pbxproj
@@ -545,6 +545,42 @@
D0AEAE272080D6970013176E /* PaneSearchBarNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AEAE262080D6970013176E /* PaneSearchBarNode.swift */; };
D0AEAE292080FD660013176E /* StickerPaneSearchGlobaltem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AEAE282080FD660013176E /* StickerPaneSearchGlobaltem.swift */; };
D0AF323A1FB1D8D60097362B /* ChatOverlayNavigationBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AF32391FB1D8D60097362B /* ChatOverlayNavigationBar.swift */; };
+ D0AF796E22C2E26500CECCB8 /* astc.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF793622C2E26500CECCB8 /* astc.cc */; };
+ D0AF796F22C2E26500CECCB8 /* compress_texture.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793822C2E26500CECCB8 /* compress_texture.h */; };
+ D0AF797022C2E26500CECCB8 /* integer_sequence_encoding.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793922C2E26500CECCB8 /* integer_sequence_encoding.h */; };
+ D0AF797122C2E26500CECCB8 /* range.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793A22C2E26500CECCB8 /* range.h */; };
+ D0AF797222C2E26500CECCB8 /* misc.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793B22C2E26500CECCB8 /* misc.h */; };
+ D0AF797322C2E26500CECCB8 /* tables_data_size.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793C22C2E26500CECCB8 /* tables_data_size.h */; };
+ D0AF797422C2E26500CECCB8 /* matrix.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793D22C2E26500CECCB8 /* matrix.h */; };
+ D0AF797522C2E26500CECCB8 /* colors.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF793E22C2E26500CECCB8 /* colors.h */; };
+ D0AF797622C2E26500CECCB8 /* endpoints_principal_components.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF793F22C2E26500CECCB8 /* endpoints_principal_components.cc */; };
+ D0AF797722C2E26500CECCB8 /* data_size.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794022C2E26500CECCB8 /* data_size.h */; };
+ D0AF797822C2E26500CECCB8 /* meson.build in Resources */ = {isa = PBXBuildFile; fileRef = D0AF794122C2E26500CECCB8 /* meson.build */; };
+ D0AF797922C2E26500CECCB8 /* endpoints_bounding_box.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794222C2E26500CECCB8 /* endpoints_bounding_box.h */; };
+ D0AF797A22C2E26500CECCB8 /* tables_color_quantization.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794322C2E26500CECCB8 /* tables_color_quantization.h */; };
+ D0AF797B22C2E26500CECCB8 /* tables_integer_sequence_encoding.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794422C2E26500CECCB8 /* tables_integer_sequence_encoding.h */; };
+ D0AF797C22C2E26500CECCB8 /* constants.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794522C2E26500CECCB8 /* constants.h */; };
+ D0AF797D22C2E26500CECCB8 /* endpoints_min_max.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794622C2E26500CECCB8 /* endpoints_min_max.h */; };
+ D0AF797E22C2E26500CECCB8 /* dcheck.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794722C2E26500CECCB8 /* dcheck.h */; };
+ D0AF797F22C2E26500CECCB8 /* weights_quantize_table.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794822C2E26500CECCB8 /* weights_quantize_table.h */; };
+ D0AF798022C2E26500CECCB8 /* compress_block.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF794922C2E26500CECCB8 /* compress_block.cc */; };
+ D0AF798122C2E26500CECCB8 /* endpoints_principal_components.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794A22C2E26500CECCB8 /* endpoints_principal_components.h */; };
+ D0AF798222C2E26500CECCB8 /* bitmanip.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794B22C2E26500CECCB8 /* bitmanip.h */; };
+ D0AF798322C2E26500CECCB8 /* endpoints.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794C22C2E26500CECCB8 /* endpoints.h */; };
+ D0AF798422C2E26500CECCB8 /* compress_block.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794D22C2E26500CECCB8 /* compress_block.h */; };
+ D0AF798522C2E26500CECCB8 /* endpoints_encode.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794E22C2E26500CECCB8 /* endpoints_encode.h */; };
+ D0AF798622C2E26500CECCB8 /* weights_quantize.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF794F22C2E26500CECCB8 /* weights_quantize.h */; };
+ D0AF798722C2E26500CECCB8 /* compress_texture.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF795022C2E26500CECCB8 /* compress_texture.cc */; };
+ D0AF798822C2E26500CECCB8 /* matrix.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF795122C2E26500CECCB8 /* matrix.cc */; };
+ D0AF798922C2E26500CECCB8 /* vector.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF795222C2E26500CECCB8 /* vector.h */; };
+ D0AF798A22C2E26500CECCB8 /* endpoints_quantize.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF795322C2E26500CECCB8 /* endpoints_quantize.h */; };
+ D0AF798B22C2E26500CECCB8 /* store_block.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF795422C2E26500CECCB8 /* store_block.h */; };
+ D0AF798C22C2E26500CECCB8 /* color.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF795622C2E26500CECCB8 /* color.h */; };
+ D0AF798D22C2E26500CECCB8 /* bgra.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF795722C2E26500CECCB8 /* bgra.cc */; };
+ D0AF798E22C2E26500CECCB8 /* compressed.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF795822C2E26500CECCB8 /* compressed.h */; };
+ D0AF798F22C2E26500CECCB8 /* compressed.cc in Sources */ = {isa = PBXBuildFile; fileRef = D0AF795922C2E26500CECCB8 /* compressed.cc */; };
+ D0AF799022C2E26500CECCB8 /* bgra.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF795A22C2E26500CECCB8 /* bgra.h */; };
+ D0AF79A322C2E36400CECCB8 /* astc.h in Headers */ = {isa = PBXBuildFile; fileRef = D0AF79A222C2E36400CECCB8 /* astc.h */; };
D0AFCC791F4C8D2C000720C6 /* InstantPageSlideshowItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AFCC781F4C8D2C000720C6 /* InstantPageSlideshowItem.swift */; };
D0AFCC7B1F4C8D39000720C6 /* InstantPageSlideshowItemNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0AFCC7A1F4C8D39000720C6 /* InstantPageSlideshowItemNode.swift */; };
D0B21B13220D6E8C003F741D /* ActionSheetPeerItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B21B12220D6E8C003F741D /* ActionSheetPeerItem.swift */; };
@@ -1950,6 +1986,42 @@
D0AEAE262080D6970013176E /* PaneSearchBarNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaneSearchBarNode.swift; sourceTree = ""; };
D0AEAE282080FD660013176E /* StickerPaneSearchGlobaltem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StickerPaneSearchGlobaltem.swift; sourceTree = ""; };
D0AF32391FB1D8D60097362B /* ChatOverlayNavigationBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatOverlayNavigationBar.swift; sourceTree = ""; };
+ D0AF793622C2E26500CECCB8 /* astc.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = astc.cc; sourceTree = ""; };
+ D0AF793822C2E26500CECCB8 /* compress_texture.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compress_texture.h; sourceTree = ""; };
+ D0AF793922C2E26500CECCB8 /* integer_sequence_encoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = integer_sequence_encoding.h; sourceTree = ""; };
+ D0AF793A22C2E26500CECCB8 /* range.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = range.h; sourceTree = ""; };
+ D0AF793B22C2E26500CECCB8 /* misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = misc.h; sourceTree = ""; };
+ D0AF793C22C2E26500CECCB8 /* tables_data_size.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tables_data_size.h; sourceTree = ""; };
+ D0AF793D22C2E26500CECCB8 /* matrix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = matrix.h; sourceTree = ""; };
+ D0AF793E22C2E26500CECCB8 /* colors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = colors.h; sourceTree = ""; };
+ D0AF793F22C2E26500CECCB8 /* endpoints_principal_components.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = endpoints_principal_components.cc; sourceTree = ""; };
+ D0AF794022C2E26500CECCB8 /* data_size.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = data_size.h; sourceTree = ""; };
+ D0AF794122C2E26500CECCB8 /* meson.build */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = meson.build; sourceTree = ""; };
+ D0AF794222C2E26500CECCB8 /* endpoints_bounding_box.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endpoints_bounding_box.h; sourceTree = ""; };
+ D0AF794322C2E26500CECCB8 /* tables_color_quantization.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tables_color_quantization.h; sourceTree = ""; };
+ D0AF794422C2E26500CECCB8 /* tables_integer_sequence_encoding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tables_integer_sequence_encoding.h; sourceTree = ""; };
+ D0AF794522C2E26500CECCB8 /* constants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = constants.h; sourceTree = ""; };
+ D0AF794622C2E26500CECCB8 /* endpoints_min_max.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endpoints_min_max.h; sourceTree = ""; };
+ D0AF794722C2E26500CECCB8 /* dcheck.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dcheck.h; sourceTree = ""; };
+ D0AF794822C2E26500CECCB8 /* weights_quantize_table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = weights_quantize_table.h; sourceTree = ""; };
+ D0AF794922C2E26500CECCB8 /* compress_block.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compress_block.cc; sourceTree = ""; };
+ D0AF794A22C2E26500CECCB8 /* endpoints_principal_components.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endpoints_principal_components.h; sourceTree = ""; };
+ D0AF794B22C2E26500CECCB8 /* bitmanip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bitmanip.h; sourceTree = ""; };
+ D0AF794C22C2E26500CECCB8 /* endpoints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endpoints.h; sourceTree = ""; };
+ D0AF794D22C2E26500CECCB8 /* compress_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compress_block.h; sourceTree = ""; };
+ D0AF794E22C2E26500CECCB8 /* endpoints_encode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endpoints_encode.h; sourceTree = ""; };
+ D0AF794F22C2E26500CECCB8 /* weights_quantize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = weights_quantize.h; sourceTree = ""; };
+ D0AF795022C2E26500CECCB8 /* compress_texture.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compress_texture.cc; sourceTree = ""; };
+ D0AF795122C2E26500CECCB8 /* matrix.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = matrix.cc; sourceTree = ""; };
+ D0AF795222C2E26500CECCB8 /* vector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vector.h; sourceTree = ""; };
+ D0AF795322C2E26500CECCB8 /* endpoints_quantize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endpoints_quantize.h; sourceTree = ""; };
+ D0AF795422C2E26500CECCB8 /* store_block.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = store_block.h; sourceTree = ""; };
+ D0AF795622C2E26500CECCB8 /* color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = color.h; sourceTree = ""; };
+ D0AF795722C2E26500CECCB8 /* bgra.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bgra.cc; sourceTree = ""; };
+ D0AF795822C2E26500CECCB8 /* compressed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = compressed.h; sourceTree = ""; };
+ D0AF795922C2E26500CECCB8 /* compressed.cc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = compressed.cc; sourceTree = ""; };
+ D0AF795A22C2E26500CECCB8 /* bgra.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bgra.h; sourceTree = ""; };
+ D0AF79A222C2E36400CECCB8 /* astc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = astc.h; sourceTree = ""; };
D0AFCC781F4C8D2C000720C6 /* InstantPageSlideshowItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstantPageSlideshowItem.swift; sourceTree = ""; };
D0AFCC7A1F4C8D39000720C6 /* InstantPageSlideshowItemNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstantPageSlideshowItemNode.swift; sourceTree = ""; };
D0B21B12220D6E8C003F741D /* ActionSheetPeerItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ActionSheetPeerItem.swift; sourceTree = ""; };
@@ -2828,6 +2900,7 @@
D01590A922BD46690017C33E /* Animation */ = {
isa = PBXGroup;
children = (
+ D0AF793422C2E26500CECCB8 /* astc */,
D01590B622BDAEBC0017C33E /* BC1Compression.cpp */,
D01590B122BDAEBB0017C33E /* BC1Compression.h */,
D01590B922BDAEBC0017C33E /* BMPImage.cpp */,
@@ -3688,6 +3761,74 @@
path = "Bridge Audio";
sourceTree = "";
};
+ D0AF793422C2E26500CECCB8 /* astc */ = {
+ isa = PBXGroup;
+ children = (
+ D0AF793522C2E26500CECCB8 /* compress */,
+ D0AF793722C2E26500CECCB8 /* astc */,
+ D0AF795522C2E26500CECCB8 /* image */,
+ );
+ name = astc;
+ path = "third-party/astc";
+ sourceTree = SOURCE_ROOT;
+ };
+ D0AF793522C2E26500CECCB8 /* compress */ = {
+ isa = PBXGroup;
+ children = (
+ D0AF79A222C2E36400CECCB8 /* astc.h */,
+ D0AF793622C2E26500CECCB8 /* astc.cc */,
+ );
+ path = compress;
+ sourceTree = "";
+ };
+ D0AF793722C2E26500CECCB8 /* astc */ = {
+ isa = PBXGroup;
+ children = (
+ D0AF793822C2E26500CECCB8 /* compress_texture.h */,
+ D0AF793922C2E26500CECCB8 /* integer_sequence_encoding.h */,
+ D0AF793A22C2E26500CECCB8 /* range.h */,
+ D0AF793B22C2E26500CECCB8 /* misc.h */,
+ D0AF793C22C2E26500CECCB8 /* tables_data_size.h */,
+ D0AF793D22C2E26500CECCB8 /* matrix.h */,
+ D0AF793E22C2E26500CECCB8 /* colors.h */,
+ D0AF793F22C2E26500CECCB8 /* endpoints_principal_components.cc */,
+ D0AF794022C2E26500CECCB8 /* data_size.h */,
+ D0AF794122C2E26500CECCB8 /* meson.build */,
+ D0AF794222C2E26500CECCB8 /* endpoints_bounding_box.h */,
+ D0AF794322C2E26500CECCB8 /* tables_color_quantization.h */,
+ D0AF794422C2E26500CECCB8 /* tables_integer_sequence_encoding.h */,
+ D0AF794522C2E26500CECCB8 /* constants.h */,
+ D0AF794622C2E26500CECCB8 /* endpoints_min_max.h */,
+ D0AF794722C2E26500CECCB8 /* dcheck.h */,
+ D0AF794822C2E26500CECCB8 /* weights_quantize_table.h */,
+ D0AF794922C2E26500CECCB8 /* compress_block.cc */,
+ D0AF794A22C2E26500CECCB8 /* endpoints_principal_components.h */,
+ D0AF794B22C2E26500CECCB8 /* bitmanip.h */,
+ D0AF794C22C2E26500CECCB8 /* endpoints.h */,
+ D0AF794D22C2E26500CECCB8 /* compress_block.h */,
+ D0AF794E22C2E26500CECCB8 /* endpoints_encode.h */,
+ D0AF794F22C2E26500CECCB8 /* weights_quantize.h */,
+ D0AF795022C2E26500CECCB8 /* compress_texture.cc */,
+ D0AF795122C2E26500CECCB8 /* matrix.cc */,
+ D0AF795222C2E26500CECCB8 /* vector.h */,
+ D0AF795322C2E26500CECCB8 /* endpoints_quantize.h */,
+ D0AF795422C2E26500CECCB8 /* store_block.h */,
+ );
+ path = astc;
+ sourceTree = "";
+ };
+ D0AF795522C2E26500CECCB8 /* image */ = {
+ isa = PBXGroup;
+ children = (
+ D0AF795622C2E26500CECCB8 /* color.h */,
+ D0AF795722C2E26500CECCB8 /* bgra.cc */,
+ D0AF795822C2E26500CECCB8 /* compressed.h */,
+ D0AF795922C2E26500CECCB8 /* compressed.cc */,
+ D0AF795A22C2E26500CECCB8 /* bgra.h */,
+ );
+ path = image;
+ sourceTree = "";
+ };
D0AF7C441ED84BB000CD8E0F /* Language Selection */ = {
isa = PBXGroup;
children = (
@@ -4909,7 +5050,9 @@
buildActionMask = 2147483647;
files = (
D0E9BA221F05577700F079A4 /* STPCard.h in Headers */,
+ D0AF798622C2E26500CECCB8 /* weights_quantize.h in Headers */,
D0E9BA591F055A2200F079A4 /* STPWeakStrongMacros.h in Headers */,
+ D0AF799022C2E26500CECCB8 /* bgra.h in Headers */,
D0E9BADE1F0574D800F079A4 /* STPBackendAPIAdapter.h in Headers */,
D0E9BAD11F0573C000F079A4 /* STPToken.h in Headers */,
D01590C222BDAEBC0017C33E /* TypeDefinitions.h in Headers */,
@@ -4917,8 +5060,12 @@
D0E9BAE71F0574FF00F079A4 /* STPCustomer.h in Headers */,
D0208AD51FA33D14001F0D5F /* RaiseToListenActivator.h in Headers */,
D00817DA22B47A14008A895F /* TGPresentationAutoNightPreferences.h in Headers */,
+ D0AF797D22C2E26500CECCB8 /* endpoints_min_max.h in Headers */,
D0E9BAE31F0574D800F079A4 /* STPBankAccountParams.h in Headers */,
+ D0AF797222C2E26500CECCB8 /* misc.h in Headers */,
+ D0AF798222C2E26500CECCB8 /* bitmanip.h in Headers */,
D0E9BA361F05585000F079A4 /* STPPhoneNumberValidator.h in Headers */,
+ D0AF797C22C2E26500CECCB8 /* constants.h in Headers */,
D0E9BA511F0559DA00F079A4 /* STPImageLibrary.h in Headers */,
D0E9BA4C1F0559C700F079A4 /* NSString+Stripe_CardBrands.h in Headers */,
D00817E022B47A14008A895F /* UIImage+ImageEffects.h in Headers */,
@@ -4926,6 +5073,8 @@
D0E9BAE11F0574D800F079A4 /* STPBankAccount.h in Headers */,
D0E9BACE1F0573AF00F079A4 /* STPBlocks.h in Headers */,
D0E9BA2A1F0557A600F079A4 /* STPFormEncoder.h in Headers */,
+ D0AF797422C2E26500CECCB8 /* matrix.h in Headers */,
+ D0AF79A322C2E36400CECCB8 /* astc.h in Headers */,
D0E9BA321F05583A00F079A4 /* STPPostalCodeValidator.h in Headers */,
D0E9BADC1F0574D800F079A4 /* PKPayment+Stripe.h in Headers */,
D0E9BA491F0559B600F079A4 /* STPPaymentMethod.h in Headers */,
@@ -4936,10 +5085,20 @@
D008177B22B46B7E008A895F /* TGContactModel.h in Headers */,
D0E9BA291F0557A600F079A4 /* STPFormEncodable.h in Headers */,
D0E9BA141F05574500F079A4 /* STPCardValidationState.h in Headers */,
+ D0AF797922C2E26500CECCB8 /* endpoints_bounding_box.h in Headers */,
D00701A12029F6D0006B9E34 /* TGMimeTypeMap.h in Headers */,
D0E9BA461F0559A500F079A4 /* NSDictionary+Stripe.h in Headers */,
+ D0AF798A22C2E26500CECCB8 /* endpoints_quantize.h in Headers */,
+ D0AF797322C2E26500CECCB8 /* tables_data_size.h in Headers */,
+ D0AF797E22C2E26500CECCB8 /* dcheck.h in Headers */,
+ D0AF797F22C2E26500CECCB8 /* weights_quantize_table.h in Headers */,
D0208AD91FA34017001F0D5F /* DeviceProximityManager.h in Headers */,
+ D0AF798B22C2E26500CECCB8 /* store_block.h in Headers */,
+ D0AF797122C2E26500CECCB8 /* range.h in Headers */,
+ D0AF797722C2E26500CECCB8 /* data_size.h in Headers */,
D0AE303722B1D3620058D3BC /* TGBridgeAudioEncoder.h in Headers */,
+ D0AF798422C2E26500CECCB8 /* compress_block.h in Headers */,
+ D0AF798E22C2E26500CECCB8 /* compressed.h in Headers */,
D0E9BAC61F05738600F079A4 /* STPAPIClient.h in Headers */,
D0E9BA531F0559DA00F079A4 /* STPImageLibrary+Private.h in Headers */,
D0E9BA601F055A4300F079A4 /* STPDelegateProxy.h in Headers */,
@@ -4948,26 +5107,36 @@
D0E9BACB1F05738600F079A4 /* STPAPIPostRequest.h in Headers */,
D0E9BA561F055A0B00F079A4 /* STPFormTextField.h in Headers */,
D01590C122BDAEBC0017C33E /* DDSImage.h in Headers */,
+ D0AF798122C2E26500CECCB8 /* endpoints_principal_components.h in Headers */,
D008177C22B46B7E008A895F /* TGItemProviderSignals.h in Headers */,
+ D0AF798322C2E26500CECCB8 /* endpoints.h in Headers */,
D0E9BABE1F05735F00F079A4 /* STPPaymentConfiguration+Private.h in Headers */,
D01590BB22BDAEBC0017C33E /* BC1Compression.h in Headers */,
D0E9BACA1F05738600F079A4 /* STPAPIClient+Private.h in Headers */,
D01590BC22BDAEBC0017C33E /* BMPImage.h in Headers */,
D0E9BA251F05578900F079A4 /* STPCardBrand.h in Headers */,
+ D0AF797522C2E26500CECCB8 /* colors.h in Headers */,
D0E9BAC81F05738600F079A4 /* STPAPIClient+ApplePay.h in Headers */,
D0E9BA451F0559A500F079A4 /* STPAPIResponseDecodable.h in Headers */,
D0E9BA201F05577700F079A4 /* STPCardParams.h in Headers */,
D0E9BA151F05574500F079A4 /* STPCardValidator.h in Headers */,
+ D0AF797B22C2E26500CECCB8 /* tables_integer_sequence_encoding.h in Headers */,
+ D0AF798C22C2E26500CECCB8 /* color.h in Headers */,
D00817D722B47A14008A895F /* TGBridgeServer.h in Headers */,
+ D0AF796F22C2E26500CECCB8 /* compress_texture.h in Headers */,
+ D0AF798922C2E26500CECCB8 /* vector.h in Headers */,
D00817CE22B47A14008A895F /* TGProxyItem.h in Headers */,
D0E9BA401F0558FE00F079A4 /* StripeError.h in Headers */,
D01590C922BE62C40017C33E /* TextureCompression.h in Headers */,
D0E9BA191F05574500F079A4 /* STPPaymentCardTextField.h in Headers */,
D0E9BA3F1F0558FE00F079A4 /* STPSource.h in Headers */,
+ D0AF797A22C2E26500CECCB8 /* tables_color_quantization.h in Headers */,
D008177A22B46B7E008A895F /* TGShareLocationSignals.h in Headers */,
+ D0AF798522C2E26500CECCB8 /* endpoints_encode.h in Headers */,
D0E9BABC1F05735F00F079A4 /* STPPaymentConfiguration.h in Headers */,
D01590BF22BDAEBC0017C33E /* Image.h in Headers */,
D0E9BA2E1F0557D400F079A4 /* STPAddress.h in Headers */,
+ D0AF797022C2E26500CECCB8 /* integer_sequence_encoding.h in Headers */,
D0E9BA5C1F055A3300F079A4 /* STPBINRange.h in Headers */,
D0E9BA3A1F0558E800F079A4 /* NSString+Stripe.h in Headers */,
);
@@ -5130,6 +5299,7 @@
D0E9BA981F056F4C00F079A4 /* stp_card_applepay_template@3x.png in Resources */,
D0E9BAA51F056F4C00F079A4 /* stp_card_form_applepay@2x.png in Resources */,
D0E9BAB81F056F4C00F079A4 /* stp_card_visa_template@3x.png in Resources */,
+ D0AF797822C2E26500CECCB8 /* meson.build in Resources */,
D0E9BA9B1F056F4C00F079A4 /* stp_card_cvc_amex@2x.png in Resources */,
D0E9BAB61F056F4C00F079A4 /* stp_card_visa@3x.png in Resources */,
D0E9BAA61F056F4C00F079A4 /* stp_card_form_applepay@3x.png in Resources */,
@@ -5172,6 +5342,7 @@
D079FCDD1F05C4F20038FADE /* LocalAuth.swift in Sources */,
09DD5D5221ED175300D7007A /* WallpaperColorPickerNode.swift in Sources */,
D0B2F76820528E3D00D3BFB9 /* UserInfoEditingPhoneActionItem.swift in Sources */,
+ D0AF798D22C2E26500CECCB8 /* bgra.cc in Sources */,
09F79A0321C8225600820234 /* WebSearchVideoGalleryItem.swift in Sources */,
D0E9BA631F055AD200F079A4 /* BotPaymentCardInputItemNode.swift in Sources */,
D01848E821A03BDA00B6DEBD /* ChatSearchState.swift in Sources */,
@@ -5212,6 +5383,7 @@
D0EC6CC71EB9F58800EBF1C3 /* PeerNotificationSoundStrings.swift in Sources */,
D01C06C01FBF118A001561AB /* MessageUtils.swift in Sources */,
D0104F281F47171F004E4881 /* InstantPageGalleryController.swift in Sources */,
+ D0AF798F22C2E26500CECCB8 /* compressed.cc in Sources */,
D0EC6CC81EB9F58800EBF1C3 /* ProgressiveImage.swift in Sources */,
D081E108217F583F003CD921 /* LanguageLinkPreviewContentNode.swift in Sources */,
D0EC6CC91EB9F58800EBF1C3 /* WebP.swift in Sources */,
@@ -5552,6 +5724,7 @@
D099D7511EEFF91E00A3128C /* GameControllerTitleView.swift in Sources */,
D0EC6D711EB9F58800EBF1C3 /* AuthorizationSequencePasswordEntryController.swift in Sources */,
D0EC6D721EB9F58800EBF1C3 /* AuthorizationSequencePasswordEntryControllerNode.swift in Sources */,
+ D0AF797622C2E26500CECCB8 /* endpoints_principal_components.cc in Sources */,
D0EC6D731EB9F58800EBF1C3 /* AuthorizationSequenceSignUpController.swift in Sources */,
0979787C210642CB0077D77F /* WebEmbedPlayerNode.swift in Sources */,
D0C12EB01F9A8D1300600BB2 /* ListMessageDateHeader.swift in Sources */,
@@ -5897,6 +6070,8 @@
D0208AD61FA33D14001F0D5F /* RaiseToListenActivator.m in Sources */,
D0EC6E061EB9F58900EBF1C3 /* ChatDocumentGalleryItem.swift in Sources */,
D0EC6E071EB9F58900EBF1C3 /* ChatExternalFileGalleryItem.swift in Sources */,
+ D0AF798022C2E26500CECCB8 /* compress_block.cc in Sources */,
+ D0AF798722C2E26500CECCB8 /* compress_texture.cc in Sources */,
D0EC6E081EB9F58900EBF1C3 /* ChatImageGalleryItem.swift in Sources */,
D048EA891F4F297500188713 /* InstantPageSettingsFontFamilyItemNode.swift in Sources */,
09DD88F321BF907C000766BC /* WebSearchRecentQueryItem.swift in Sources */,
@@ -5999,12 +6174,14 @@
D0EC6E3C1EB9F58900EBF1C3 /* ItemListPeerActionItem.swift in Sources */,
D0EC6E3D1EB9F58900EBF1C3 /* ItemListMultilineInputItem.swift in Sources */,
D0CE8CE71F6F35A300AA2DB0 /* ChatTextInputPanelState.swift in Sources */,
+ D0AF796E22C2E26500CECCB8 /* astc.cc in Sources */,
D0CE6F70213EEE5000BCD44B /* CreatePasswordController.swift in Sources */,
D0EC6E3E1EB9F58900EBF1C3 /* ItemListSectionHeaderItem.swift in Sources */,
D0EC6E3F1EB9F58900EBF1C3 /* ItemListTextItem.swift in Sources */,
D0EC6E401EB9F58900EBF1C3 /* ItemListActivityTextItem.swift in Sources */,
0958FBB9218AD6AF00E0CBD8 /* InstantPageFeedbackItem.swift in Sources */,
D00817D022B47A14008A895F /* WakeupManager.swift in Sources */,
+ D0AF798822C2E26500CECCB8 /* matrix.cc in Sources */,
D0EC6E411EB9F58900EBF1C3 /* ItemListEditableItem.swift in Sources */,
D0EC6E421EB9F58900EBF1C3 /* ItemListRevealOptionsNode.swift in Sources */,
D0E8175920122FE100B82BBB /* ChatRecentActionsFilterController.swift in Sources */,
diff --git a/submodules/TelegramUI/third-party/astc/astc/bitmanip.h b/submodules/TelegramUI/third-party/astc/astc/bitmanip.h
new file mode 100644
index 0000000000..e117c39e23
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/bitmanip.h
@@ -0,0 +1,168 @@
+#ifndef ASTC_BITMANIP_H_
+#define ASTC_BITMANIP_H_
+
+#include
+#include
+
+#include "dcheck.h"
+
+inline bool getbit(size_t number, size_t n) {
+ return (number >> n) & 1;
+}
+
+inline uint8_t getbits(uint8_t number, uint8_t msb, uint8_t lsb) {
+ int count = msb - lsb + 1;
+ return static_cast((number >> lsb) & ((1 << count) - 1));
+}
+
+inline size_t getbits(size_t number, size_t msb, size_t lsb) {
+ size_t count = msb - lsb + 1;
+ return (number >> lsb) & (static_cast(1 << count) - 1);
+}
+
+inline void orbits8_ptr(uint8_t* ptr,
+ size_t bitoffset,
+ size_t number,
+ size_t bitcount) {
+ DCHECK(bitcount <= 8);
+ DCHECK((number >> bitcount) == 0);
+
+ size_t index = bitoffset / 8;
+ size_t shift = bitoffset % 8;
+
+ // Depending on the offset we might have to consider two bytes when
+ // writing, for instance if we are writing 8 bits and the offset is 4,
+ // then we have to write 4 bits to the first byte (ptr[index]) and 4 bits
+ // to the second byte (ptr[index+1]).
+ //
+ // FIXME: Writing to the last byte when the number of bytes is a multiple of 2
+ // will write past the allocated memory.
+
+ uint8_t* p = ptr + index;
+ size_t mask = number << shift;
+
+ DCHECK((p[0] & mask) == 0);
+ DCHECK((p[1] & (mask >> 8)) == 0);
+
+ p[0] |= static_cast(mask & 0xFF);
+ p[1] |= static_cast((mask >> 8) & 0xFF);
+}
+
+inline void orbits16_ptr(uint8_t* ptr,
+ size_t bitoffset,
+ size_t number,
+ size_t bitcount) {
+ DCHECK(bitcount > 8 && bitcount <= 16);
+
+ size_t index = bitoffset / 8;
+ size_t shift = bitoffset % 8;
+
+ uint8_t* p = ptr + index;
+ size_t mask = number << shift;
+
+ p[0] |= static_cast(mask & 0xFF);
+ p[1] |= static_cast((mask >> 8) & 0xFF);
+ p[2] |= static_cast((mask >> 16) & 0xFF);
+ p[3] |= static_cast((mask >> 24) & 0xFF);
+}
+
+inline uint16_t getbytes2(const uint8_t* ptr, size_t byteoffset) {
+ const uint8_t* p = ptr + byteoffset;
+ return static_cast((p[1] << 8) | p[0]);
+}
+
+inline void setbytes2(uint8_t* ptr, size_t byteoffset, uint16_t bytes) {
+ ptr[byteoffset + 0] = static_cast(bytes & 0xFF);
+ ptr[byteoffset + 1] = static_cast((bytes >> 8) & 0xFF);
+}
+
+inline void split_high_low(uint8_t n, size_t i, uint8_t& high, uint8_t& low) {
+ DCHECK(i < 8);
+
+ uint8_t low_mask = static_cast((1 << i) - 1);
+
+ low = n & low_mask;
+ high = static_cast(n >> i);
+}
+
+class bitwriter {
+ public:
+ explicit bitwriter(uint8_t* ptr) : ptr_(ptr), bitoffset_(0) {
+ // assumption that all bits in ptr are zero after the offset
+
+ // writing beyound the bounds of the allocated memory is undefined
+ // behaviour
+ }
+
+ // Specialized function that can't write more than 8 bits.
+ void write8(uint8_t number, size_t bitcount) {
+ orbits8_ptr(ptr_, bitoffset_, number, bitcount);
+
+ bitoffset_ += bitcount;
+ }
+
+ size_t offset() const { return bitoffset_; }
+
+ private:
+ uint8_t* ptr_;
+ size_t bitoffset_; // in bits
+};
+
+const uint8_t bit_reverse_table[256] = {
+ 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0,
+ 0x30, 0xB0, 0x70, 0xF0, 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8,
+ 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8, 0x04, 0x84, 0x44, 0xC4,
+ 0x24, 0xA4, 0x64, 0xE4, 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4,
+ 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC, 0x1C, 0x9C, 0x5C, 0xDC,
+ 0x3C, 0xBC, 0x7C, 0xFC, 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2,
+ 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2, 0x0A, 0x8A, 0x4A, 0xCA,
+ 0x2A, 0xAA, 0x6A, 0xEA, 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA,
+ 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, 0x16, 0x96, 0x56, 0xD6,
+ 0x36, 0xB6, 0x76, 0xF6, 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE,
+ 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE, 0x01, 0x81, 0x41, 0xC1,
+ 0x21, 0xA1, 0x61, 0xE1, 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1,
+ 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, 0x19, 0x99, 0x59, 0xD9,
+ 0x39, 0xB9, 0x79, 0xF9, 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5,
+ 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, 0x0D, 0x8D, 0x4D, 0xCD,
+ 0x2D, 0xAD, 0x6D, 0xED, 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD,
+ 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, 0x13, 0x93, 0x53, 0xD3,
+ 0x33, 0xB3, 0x73, 0xF3, 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB,
+ 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB, 0x07, 0x87, 0x47, 0xC7,
+ 0x27, 0xA7, 0x67, 0xE7, 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7,
+ 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, 0x1F, 0x9F, 0x5F, 0xDF,
+ 0x3F, 0xBF, 0x7F, 0xFF};
+
+/**
+ * Reverse a byte, total function.
+ */
+inline uint8_t reverse_byte(uint8_t number) {
+ return bit_reverse_table[number];
+}
+
+/**
+ * Reverse a sequence of bytes.
+ *
+ * Assumes that the bits written to (using bitwise or) are zero and that they
+ * will not clash with bits already written to target sequence. That is it is
+ * possible to write to a non-zero byte as long as the bits that are actually
+ * written to are zero.
+ */
+inline void reverse_bytes(const uint8_t* source,
+ size_t bytecount,
+ uint8_t* target) {
+ for (int i = 0; i < static_cast(bytecount); ++i) {
+ DCHECK((reverse_byte(source[i]) & target[-i]) == 0);
+ target[-i] = target[-i] | reverse_byte(source[i]);
+ }
+}
+
+inline void copy_bytes(const uint8_t* source,
+ size_t bytecount,
+ uint8_t* target,
+ size_t bitoffset) {
+ for (size_t i = 0; i < bytecount; ++i) {
+ orbits8_ptr(target, bitoffset + i * 8, source[i], 8);
+ }
+}
+
+#endif // ASTC_BITMANIP_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/colors.h b/submodules/TelegramUI/third-party/astc/astc/colors.h
new file mode 100644
index 0000000000..8ec2e3c095
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/colors.h
@@ -0,0 +1,132 @@
+#ifndef ASTC_COLORS_H_
+#define ASTC_COLORS_H_
+
+#include
+#include
+
+#include "misc.h"
+#include "vector.h"
+
+const int APPROX_COLOR_EPSILON = 50;
+
+union unorm8_t {
+ struct RgbaColorType {
+ uint8_t b, g, r, a;
+ } channels;
+ uint8_t components[4];
+ uint32_t bits;
+};
+
+union unorm16_t {
+ struct RgbaColorType {
+ uint16_t b, g, r, a;
+ } channels;
+ uint16_t components[4];
+ uint64_t bits;
+};
+
+inline bool is_greyscale(vec3i_t color) {
+ // integer equality is transitive
+ return color.r == color.g && color.g == color.b;
+}
+
+inline int luminance(vec3i_t color) {
+ return (color.r + color.g + color.b) / 3;
+}
+
+inline bool approx_equal(vec3i_t a, vec3i_t b) {
+ return quadrance(a - b) <= APPROX_COLOR_EPSILON;
+}
+
+inline vec3i_t clamp_rgb(vec3i_t color) {
+ vec3i_t result;
+ result.r = clamp(0, 255, color.r);
+ result.g = clamp(0, 255, color.g);
+ result.b = clamp(0, 255, color.b);
+ return result;
+}
+
+inline vec3f_t clamp_rgb(vec3f_t color) {
+ vec3f_t result;
+ result.r = clamp(0.0f, 255.0f, color.r);
+ result.g = clamp(0.0f, 255.0f, color.g);
+ result.b = clamp(0.0f, 255.0f, color.b);
+ return result;
+}
+
+inline bool is_rgb(float color) {
+ return color >= 0.0f && color <= 255.0f;
+}
+
+inline bool is_rgb(vec3f_t color) {
+ return is_rgb(color.r) && is_rgb(color.g) && is_rgb(color.b);
+}
+
+inline vec3i_t floor(vec3f_t color) {
+ vec3i_t result;
+ result.r = static_cast(floor(color.r));
+ result.g = static_cast(floor(color.g));
+ result.b = static_cast(floor(color.b));
+ return result;
+}
+
+inline vec3i_t round(vec3f_t color) {
+ vec3i_t result;
+ result.r = static_cast(round(color.r));
+ result.g = static_cast(round(color.g));
+ result.b = static_cast(round(color.b));
+ return result;
+}
+
+inline vec3i_t to_vec3i(unorm8_t color) {
+ vec3i_t result;
+ result.r = color.channels.r;
+ result.g = color.channels.g;
+ result.b = color.channels.b;
+ return result;
+}
+
+inline vec3i_t to_vec3i(vec3f_t color) {
+ vec3i_t result;
+ result.r = static_cast(color.r);
+ result.g = static_cast(color.g);
+ result.b = static_cast(color.b);
+ return result;
+}
+
+inline vec3f_t to_vec3f(unorm8_t color) {
+ vec3f_t result;
+ result.r = color.channels.r;
+ result.g = color.channels.g;
+ result.b = color.channels.b;
+ return result;
+}
+
+inline vec3f_t to_vec3f(vec3i_t color) {
+ vec3f_t result;
+ result.r = static_cast(color.r);
+ result.g = static_cast(color.g);
+ result.b = static_cast(color.b);
+ return result;
+}
+
+inline unorm8_t to_unorm8(vec3i_t color) {
+ unorm8_t result;
+ result.channels.r = static_cast(color.r);
+ result.channels.g = static_cast(color.g);
+ result.channels.b = static_cast(color.b);
+ result.channels.a = 255;
+ return result;
+}
+
+inline unorm16_t unorm8_to_unorm16(unorm8_t c8) {
+ // (x / 255) * (2^16-1) = x * 65535 / 255 = x * 257
+ unorm16_t result;
+ result.channels.r = static_cast(c8.channels.r * 257);
+ result.channels.g = static_cast(c8.channels.g * 257);
+ result.channels.b = static_cast(c8.channels.b * 257);
+ result.channels.a = static_cast(c8.channels.a * 257);
+ return result;
+}
+
+#endif // ASTC_COLORS_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/compress_block.cc b/submodules/TelegramUI/third-party/astc/astc/compress_block.cc
new file mode 100644
index 0000000000..5bf89e883d
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/compress_block.cc
@@ -0,0 +1,155 @@
+#include "compress_block.h"
+
+#include
+#include
+#include
+
+#include "colors.h"
+#include "constants.h"
+#include "data_size.h"
+#include "endpoints.h"
+#include "endpoints_encode.h"
+#include "endpoints_min_max.h"
+#include "endpoints_principal_components.h"
+#include "integer_sequence_encoding.h"
+#include "misc.h"
+#include "range.h"
+#include "store_block.h"
+#include "vector.h"
+#include "weights_quantize.h"
+
+/**
+ * Write void extent block bits for LDR mode and unused extent coordinates.
+ */
+void encode_void_extent(vec3i_t color, PhysicalBlock* physical_block) {
+ void_extent_to_physical(unorm8_to_unorm16(to_unorm8(color)), physical_block);
+}
+
+void encode_luminance(const uint8_t texels[BLOCK_TEXEL_COUNT],
+ PhysicalBlock* physical_block) {
+ size_t partition_count = 1;
+ size_t partition_index = 0;
+
+ color_endpoint_mode_t color_endpoint_mode = CEM_LDR_LUMINANCE_DIRECT;
+ range_t weight_quant = RANGE_32;
+ range_t endpoint_quant =
+ endpoint_quantization(partition_count, weight_quant, color_endpoint_mode);
+
+ uint8_t l0 = 255;
+ uint8_t l1 = 0;
+ for (size_t i = 0; i < BLOCK_TEXEL_COUNT; ++i) {
+ l0 = std::min(l0, texels[i]);
+ l1 = std::max(l1, texels[i]);
+ }
+
+ uint8_t endpoint_unquantized[2];
+ uint8_t endpoint_quantized[2];
+ encode_luminance_direct(endpoint_quant, l0, l1, endpoint_quantized,
+ endpoint_unquantized);
+
+ uint8_t weights_quantized[BLOCK_TEXEL_COUNT];
+ calculate_quantized_weights_luminance(
+ texels, weight_quant, endpoint_unquantized[0], endpoint_unquantized[1],
+ weights_quantized);
+
+ uint8_t endpoint_ise[MAXIMUM_ENCODED_COLOR_ENDPOINT_BYTES] = {0};
+ integer_sequence_encode(endpoint_quantized, 2, RANGE_256, endpoint_ise);
+
+ uint8_t weights_ise[MAXIMUM_ENCODED_WEIGHT_BYTES + 1] = {0};
+ integer_sequence_encode(weights_quantized, BLOCK_TEXEL_COUNT, RANGE_32,
+ weights_ise);
+
+ symbolic_to_physical(color_endpoint_mode, endpoint_quant, weight_quant,
+ partition_count, partition_index, endpoint_ise,
+ weights_ise, physical_block);
+}
+
+void encode_rgb_single_partition(const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ vec3f_t e0,
+ vec3f_t e1,
+ PhysicalBlock* physical_block) {
+ size_t partition_index = 0;
+ size_t partition_count = 1;
+
+ color_endpoint_mode_t color_endpoint_mode = CEM_LDR_RGB_DIRECT;
+ range_t weight_quant = RANGE_12;
+ range_t endpoint_quant =
+ endpoint_quantization(partition_count, weight_quant, color_endpoint_mode);
+
+ vec3i_t endpoint_unquantized[2];
+ uint8_t endpoint_quantized[6];
+ encode_rgb_direct(endpoint_quant, round(e0), round(e1), endpoint_quantized,
+ endpoint_unquantized);
+
+ uint8_t weights_quantized[BLOCK_TEXEL_COUNT];
+ calculate_quantized_weights_rgb(texels, weight_quant, endpoint_unquantized[0],
+ endpoint_unquantized[1], weights_quantized);
+
+ uint8_t endpoint_ise[MAXIMUM_ENCODED_COLOR_ENDPOINT_BYTES] = {0};
+ integer_sequence_encode(endpoint_quantized, 6, endpoint_quant, endpoint_ise);
+
+ uint8_t weights_ise[MAXIMUM_ENCODED_WEIGHT_BYTES + 1] = {0};
+ integer_sequence_encode(weights_quantized, BLOCK_TEXEL_COUNT, weight_quant,
+ weights_ise);
+
+ symbolic_to_physical(color_endpoint_mode, endpoint_quant, weight_quant,
+ partition_count, partition_index, endpoint_ise,
+ weights_ise, physical_block);
+}
+
+bool is_solid(const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ size_t count,
+ unorm8_t* color) {
+ for (size_t i = 0; i < count; ++i) {
+ if (!approx_equal(to_vec3i(texels[i]), to_vec3i(texels[0]))) {
+ return false;
+ }
+ }
+
+ // TODO: Calculate average color?
+ *color = texels[0];
+ return true;
+}
+
+bool is_greyscale(const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ size_t count,
+ uint8_t luminances[BLOCK_TEXEL_COUNT]) {
+ for (size_t i = 0; i < count; ++i) {
+ vec3i_t color = to_vec3i(texels[i]);
+ luminances[i] = static_cast(luminance(color));
+ vec3i_t lum(luminances[i], luminances[i], luminances[i]);
+ if (!approx_equal(color, lum)) {
+ return false;
+ }
+ }
+
+ return true;
+}
+
+void compress_block(const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ PhysicalBlock* physical_block) {
+ {
+ unorm8_t color;
+ if (is_solid(texels, BLOCK_TEXEL_COUNT, &color)) {
+ encode_void_extent(to_vec3i(color), physical_block);
+ /* encode_void_extent(vec3i_t(0, 0, 0), physical_block); */
+ return;
+ }
+ }
+
+ {
+ uint8_t luminances[BLOCK_TEXEL_COUNT];
+ if (is_greyscale(texels, BLOCK_TEXEL_COUNT, luminances)) {
+ encode_luminance(luminances, physical_block);
+ /* encode_void_extent(vec3i_t(255, 0, 0), physical_block); */
+ return;
+ }
+ }
+
+ vec3f_t k, m;
+ principal_component_analysis_block(texels, k, m);
+ vec3f_t e0, e1;
+ find_min_max_block(texels, k, m, e0, e1);
+ encode_rgb_single_partition(texels, e0, e1, physical_block);
+ /* encode_void_extent(vec3i_t(0, 255, 0), physical_block); */
+}
diff --git a/submodules/TelegramUI/third-party/astc/astc/compress_block.h b/submodules/TelegramUI/third-party/astc/astc/compress_block.h
new file mode 100644
index 0000000000..955c312840
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/compress_block.h
@@ -0,0 +1,12 @@
+#ifndef ASTC_COMPRESS_BLOCK_H_
+#define ASTC_COMPRESS_BLOCK_H_
+
+#include "constants.h"
+
+union unorm8_t;
+struct PhysicalBlock;
+
+void compress_block(const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ PhysicalBlock* physical_block);
+
+#endif // ASTC_COMPRESS_BLOCK_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/compress_texture.cc b/submodules/TelegramUI/third-party/astc/astc/compress_texture.cc
new file mode 100644
index 0000000000..df89e8eff9
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/compress_texture.cc
@@ -0,0 +1,68 @@
+#include
+
+#include "colors.h"
+#include "compress_block.h"
+#include "compress_texture.h"
+#include "constants.h"
+#include "store_block.h"
+
+namespace {
+void fetch_image_block(const unorm8_t* source,
+ size_t image_width,
+ size_t xpos,
+ size_t ypos,
+ unorm8_t texels[BLOCK_TEXEL_COUNT]) {
+ size_t topleft_index = ypos * image_width + xpos;
+
+ const unorm8_t* row0 = source + topleft_index;
+ const unorm8_t* row1 = row0 + image_width;
+ const unorm8_t* row2 = row0 + 2 * image_width;
+ const unorm8_t* row3 = row0 + 3 * image_width;
+
+ texels[0] = row0[0];
+ texels[1] = row0[1];
+ texels[2] = row0[2];
+ texels[3] = row0[3];
+
+ texels[4] = row1[0];
+ texels[5] = row1[1];
+ texels[6] = row1[2];
+ texels[7] = row1[3];
+
+ texels[8] = row2[0];
+ texels[9] = row2[1];
+ texels[10] = row2[2];
+ texels[11] = row2[3];
+
+ texels[12] = row3[0];
+ texels[13] = row3[1];
+ texels[14] = row3[2];
+ texels[15] = row3[3];
+}
+
+PhysicalBlock physical_block_zero = {0};
+} // namespace
+
+void compress_texture(const uint8_t* src,
+ uint8_t* dst,
+ int width_int,
+ int height_int) {
+ const unorm8_t* data = reinterpret_cast(src);
+
+ size_t width = static_cast(width_int);
+ size_t height = static_cast(height_int);
+
+ PhysicalBlock* dst_re = reinterpret_cast(dst);
+
+ for (size_t ypos = 0; ypos < height; ypos += BLOCK_WIDTH) {
+ for (size_t xpos = 0; xpos < width; xpos += BLOCK_HEIGHT) {
+ unorm8_t texels[BLOCK_TEXEL_COUNT];
+ fetch_image_block(data, width, xpos, ypos, texels);
+
+ *dst_re = physical_block_zero;
+ compress_block(texels, dst_re);
+
+ ++dst_re;
+ }
+ }
+}
diff --git a/submodules/TelegramUI/third-party/astc/astc/compress_texture.h b/submodules/TelegramUI/third-party/astc/astc/compress_texture.h
new file mode 100644
index 0000000000..fe6f0b9398
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/compress_texture.h
@@ -0,0 +1,16 @@
+#ifndef ASTC_COMPRESS_TEXTURE_H_
+#define ASTC_COMPRESS_TEXTURE_H_
+
+#include
+
+/**
+ * Compress an texture with the ASTC format.
+ *
+ * @param src The source data, width*height*4 bytes with BGRA ordering.
+ * @param dst The output, width*height bytes.
+ * @param width The width of the input texture.
+ * @param height The height of the input texture.
+ */
+void compress_texture(const uint8_t* src, uint8_t* dst, int width, int height);
+
+#endif // ASTC_COMPRESS_TEXTURE_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/constants.h b/submodules/TelegramUI/third-party/astc/astc/constants.h
new file mode 100644
index 0000000000..9e3a73cd21
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/constants.h
@@ -0,0 +1,18 @@
+#ifndef ASTC_CONSTANTS_H_
+#define ASTC_CONSTANTS_H_
+
+#include
+
+const size_t BLOCK_WIDTH = 4;
+const size_t BLOCK_HEIGHT = 4;
+const size_t BLOCK_TEXEL_COUNT = BLOCK_WIDTH * BLOCK_HEIGHT;
+const size_t BLOCK_BYTES = 16;
+
+const size_t MAXIMUM_ENCODED_WEIGHT_BITS = 96;
+const size_t MAXIMUM_ENCODED_WEIGHT_BYTES = 12;
+
+const size_t MAXIMUM_ENCODED_COLOR_ENDPOINT_BYTES = 12;
+
+const size_t MAX_ENDPOINT_VALUE_COUNT = 18;
+
+#endif // ASTC_CONSTANTS_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/data_size.h b/submodules/TelegramUI/third-party/astc/astc/data_size.h
new file mode 100644
index 0000000000..d99ce9b016
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/data_size.h
@@ -0,0 +1,21 @@
+#ifndef ASTC_DATA_SIZE_H_
+#define ASTC_DATA_SIZE_H_
+
+#include
+#include
+
+#include "dcheck.h"
+#include "endpoints.h"
+#include "range.h"
+#include "tables_data_size.h"
+
+range_t endpoint_quantization(size_t partitions,
+ range_t weight_quant,
+ color_endpoint_mode_t endpoint_mode) {
+ int8_t ce_range =
+ color_endpoint_range_table[partitions - 1][weight_quant][endpoint_mode];
+ DCHECK(ce_range >= 0 && ce_range <= RANGE_MAX);
+ return static_cast(ce_range);
+}
+
+#endif // ASTC_DATA_SIZE_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/dcheck.h b/submodules/TelegramUI/third-party/astc/astc/dcheck.h
new file mode 100644
index 0000000000..164bab32b6
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/dcheck.h
@@ -0,0 +1,7 @@
+#ifndef ASTC_DCHECK_H_
+#define ASTC_DCHECK_H_
+
+#include
+#define DCHECK(x) assert(x)
+
+#endif // ASTC_DCHECK_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints.h b/submodules/TelegramUI/third-party/astc/astc/endpoints.h
new file mode 100644
index 0000000000..5d1032b82d
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/endpoints.h
@@ -0,0 +1,24 @@
+#ifndef ASTC_ENDPOINTS_H_
+#define ASTC_ENDPOINTS_H_
+
+enum color_endpoint_mode_t {
+ CEM_LDR_LUMINANCE_DIRECT = 0,
+ CEM_LDR_LUMINANCE_BASE_OFFSET = 1,
+ CEM_HDR_LUMINANCE_LARGE_RANGE = 2,
+ CEM_HDR_LUMINANCE_SMALL_RANGE = 3,
+ CEM_LDR_LUMINANCE_ALPHA_DIRECT = 4,
+ CEM_LDR_LUMINANCE_ALPHA_BASE_OFFSET = 5,
+ CEM_LDR_RGB_BASE_SCALE = 6,
+ CEM_HDR_RGB_BASE_SCALE = 7,
+ CEM_LDR_RGB_DIRECT = 8,
+ CEM_LDR_RGB_BASE_OFFSET = 9,
+ CEM_LDR_RGB_BASE_SCALE_PLUS_TWO_ALPHA = 10,
+ CEM_HDR_RGB = 11,
+ CEM_LDR_RGBA_DIRECT = 12,
+ CEM_LDR_RGBA_BASE_OFFSET = 13,
+ CEM_HDR_RGB_LDR_ALPHA = 14,
+ CEM_HDR_RGB_HDR_ALPHA = 15,
+ CEM_MAX = 16
+};
+
+#endif // ASTC_ENDPOINTS_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints_bounding_box.h b/submodules/TelegramUI/third-party/astc/astc/endpoints_bounding_box.h
new file mode 100644
index 0000000000..ae769f80d2
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/endpoints_bounding_box.h
@@ -0,0 +1,32 @@
+#ifndef ASTC_ENDPOINTS_BOUNDING_BOX_H_
+#define ASTC_ENDPOINTS_BOUNDING_BOX_H_
+
+#include
+
+#include "astc/colors.h"
+#include "astc/constants.h"
+#include "astc/misc.h"
+#include "astc/vector.h"
+
+void bounding_box(const unorm8_t* texels,
+ size_t count,
+ vec3i_t& e0,
+ vec3i_t& e1) {
+ vec3i_t a(255, 255, 255);
+ vec3i_t b(0, 0, 0);
+ for (size_t i = 0; i < count; ++i) {
+ vec3i_t t = to_vec3i(texels[i]);
+ a = vecmin(a, t);
+ b = vecmax(b, t);
+ }
+ e0 = a;
+ e1 = b;
+}
+
+void bounding_box_block(const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ vec3i_t& e0,
+ vec3i_t& e1) {
+ bounding_box(texels, BLOCK_TEXEL_COUNT, e0, e1);
+}
+
+#endif // ASTC_ENDPOINTS_BOUNDING_BOX_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints_encode.h b/submodules/TelegramUI/third-party/astc/astc/endpoints_encode.h
new file mode 100644
index 0000000000..1a3bb9d557
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/endpoints_encode.h
@@ -0,0 +1,63 @@
+#ifndef ASTC_ENDPOINTS_ENCODE_H_
+#define ASTC_ENDPOINTS_ENCODE_H_
+
+#include
+
+#include "endpoints_quantize.h"
+#include "range.h"
+#include "vector.h"
+
+int color_channel_sum(vec3i_t color) {
+ return color.r + color.g + color.b;
+}
+
+void encode_luminance_direct(range_t endpoint_quant,
+ int v0,
+ int v1,
+ uint8_t endpoint_unquantized[2],
+ uint8_t endpoint_quantized[2]) {
+ endpoint_quantized[0] = quantize_color(endpoint_quant, v0);
+ endpoint_quantized[1] = quantize_color(endpoint_quant, v1);
+ endpoint_unquantized[0] =
+ unquantize_color(endpoint_quant, endpoint_quantized[0]);
+ endpoint_unquantized[1] =
+ unquantize_color(endpoint_quant, endpoint_quantized[1]);
+}
+
+void encode_rgb_direct(range_t endpoint_quant,
+ vec3i_t e0,
+ vec3i_t e1,
+ uint8_t endpoint_quantized[6],
+ vec3i_t endpoint_unquantized[2]) {
+ vec3i_t e0q = quantize_color(endpoint_quant, e0);
+ vec3i_t e1q = quantize_color(endpoint_quant, e1);
+ vec3i_t e0u = unquantize_color(endpoint_quant, e0q);
+ vec3i_t e1u = unquantize_color(endpoint_quant, e1q);
+
+ // ASTC uses a different blue contraction encoding when the sum of values for
+ // the first endpoint is larger than the sum of values in the second
+ // endpoint. Sort the endpoints to ensure that the normal encoding is used.
+ if (color_channel_sum(e0u) > color_channel_sum(e1u)) {
+ endpoint_quantized[0] = static_cast(e1q.r);
+ endpoint_quantized[1] = static_cast(e0q.r);
+ endpoint_quantized[2] = static_cast(e1q.g);
+ endpoint_quantized[3] = static_cast(e0q.g);
+ endpoint_quantized[4] = static_cast(e1q.b);
+ endpoint_quantized[5] = static_cast(e0q.b);
+
+ endpoint_unquantized[0] = e1u;
+ endpoint_unquantized[1] = e0u;
+ } else {
+ endpoint_quantized[0] = static_cast(e0q.r);
+ endpoint_quantized[1] = static_cast(e1q.r);
+ endpoint_quantized[2] = static_cast(e0q.g);
+ endpoint_quantized[3] = static_cast(e1q.g);
+ endpoint_quantized[4] = static_cast(e0q.b);
+ endpoint_quantized[5] = static_cast(e1q.b);
+
+ endpoint_unquantized[0] = e0u;
+ endpoint_unquantized[1] = e1u;
+ }
+}
+
+#endif // ASTC_ENDPOINTS_ENCODE_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints_min_max.h b/submodules/TelegramUI/third-party/astc/astc/endpoints_min_max.h
new file mode 100644
index 0000000000..0614062c8f
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/endpoints_min_max.h
@@ -0,0 +1,47 @@
+#ifndef ASTC_ENDPOINTS_MIN_MAX_H_
+#define ASTC_ENDPOINTS_MIN_MAX_H_
+
+#include
+#include
+
+#include "colors.h"
+#include "constants.h"
+#include "dcheck.h"
+#include "misc.h"
+#include "vector.h"
+
+void find_min_max(const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ size_t count,
+ vec3f_t line_k,
+ vec3f_t line_m,
+ vec3f_t& e0,
+ vec3f_t& e1) {
+ DCHECK(count <= BLOCK_TEXEL_COUNT);
+ DCHECK(approx_equal(quadrance(line_k), 1.0, 0.0001f));
+
+ float a, b;
+ {
+ float t = dot(to_vec3f(texels[0]) - line_m, line_k);
+ a = t;
+ b = t;
+ }
+
+ for (size_t i = 1; i < count; ++i) {
+ float t = dot(to_vec3f(texels[i]) - line_m, line_k);
+ a = std::min(a, t);
+ b = std::max(b, t);
+ }
+
+ e0 = clamp_rgb(line_k * a + line_m);
+ e1 = clamp_rgb(line_k * b + line_m);
+}
+
+void find_min_max_block(const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ vec3f_t line_k,
+ vec3f_t line_m,
+ vec3f_t& e0,
+ vec3f_t& e1) {
+ find_min_max(texels, BLOCK_TEXEL_COUNT, line_k, line_m, e0, e1);
+}
+
+#endif // ASTC_ENDPOINTS_MIN_MAX_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.cc b/submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.cc
new file mode 100644
index 0000000000..9ab692b4fb
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.cc
@@ -0,0 +1,59 @@
+#include
+
+#include "colors.h"
+#include "constants.h"
+#include "dcheck.h"
+#include "endpoints_principal_components.h"
+#include "matrix.h"
+#include "vector.h"
+
+vec3f_t mean(const unorm8_t texels[BLOCK_TEXEL_COUNT], size_t count) {
+ vec3i_t sum(0, 0, 0);
+ for (size_t i = 0; i < count; ++i) {
+ sum = sum + to_vec3i(texels[i]);
+ }
+
+ return to_vec3f(sum) / static_cast(count);
+}
+
+void subtract(const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ size_t count,
+ vec3f_t v,
+ vec3f_t output[BLOCK_TEXEL_COUNT]) {
+ for (size_t i = 0; i < count; ++i) {
+ output[i] = to_vec3f(texels[i]) - v;
+ }
+}
+
+mat3x3f_t covariance(const vec3f_t m[BLOCK_TEXEL_COUNT], size_t count) {
+ mat3x3f_t cov;
+ for (size_t i = 0; i < 3; ++i) {
+ for (size_t j = 0; j < 3; ++j) {
+ float s = 0;
+ for (size_t k = 0; k < count; ++k) {
+ s += m[k].components[i] * m[k].components[j];
+ }
+ cov.at(i, j) = s / static_cast(count - 1);
+ }
+ }
+
+ return cov;
+}
+
+void principal_component_analysis(const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ size_t count,
+ vec3f_t& line_k,
+ vec3f_t& line_m) {
+ // Since we are working with fixed sized blocks count we can cap count. This
+ // avoids dynamic allocation.
+ DCHECK(count <= BLOCK_TEXEL_COUNT);
+
+ line_m = mean(texels, count);
+
+ vec3f_t n[BLOCK_TEXEL_COUNT];
+ subtract(texels, count, line_m, n);
+
+ mat3x3f_t w = covariance(n, count);
+
+ eigen_vector(w, line_k);
+}
diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.h b/submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.h
new file mode 100644
index 0000000000..67a64f7f86
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/endpoints_principal_components.h
@@ -0,0 +1,22 @@
+#ifndef ASTC_ENDPOINTS_PRINCIPAL_COMPONENTS_H_
+#define ASTC_ENDPOINTS_PRINCIPAL_COMPONENTS_H_
+
+#include
+
+#include "colors.h"
+#include "constants.h"
+#include "vector.h"
+
+void principal_component_analysis(const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ size_t count,
+ vec3f_t& line_k,
+ vec3f_t& line_m);
+
+inline void principal_component_analysis_block(
+ const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ vec3f_t& line_k,
+ vec3f_t& line_m) {
+ principal_component_analysis(texels, BLOCK_TEXEL_COUNT, line_k, line_m);
+}
+
+#endif // ASTC_ENDPOINTS_PRINCIPAL_COMPONENTS_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/endpoints_quantize.h b/submodules/TelegramUI/third-party/astc/astc/endpoints_quantize.h
new file mode 100644
index 0000000000..9dd12c128a
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/endpoints_quantize.h
@@ -0,0 +1,37 @@
+#ifndef ASTC_ENDPOINTS_QUANTIZE_H_
+#define ASTC_ENDPOINTS_QUANTIZE_H_
+
+#include
+
+#include "dcheck.h"
+#include "range.h"
+#include "tables_color_quantization.h"
+#include "vector.h"
+
+uint8_t quantize_color(range_t quant, int c) {
+ DCHECK(c >= 0 && c <= 255);
+ return color_quantize_table[quant][c];
+}
+
+vec3i_t quantize_color(range_t quant, vec3i_t c) {
+ vec3i_t result;
+ result.r = color_quantize_table[quant][c.r];
+ result.g = color_quantize_table[quant][c.g];
+ result.b = color_quantize_table[quant][c.b];
+ return result;
+}
+
+uint8_t unquantize_color(range_t quant, int c) {
+ DCHECK(c >= 0 && c <= 255);
+ return color_unquantize_table[quant][c];
+}
+
+vec3i_t unquantize_color(range_t quant, vec3i_t c) {
+ vec3i_t result;
+ result.r = color_unquantize_table[quant][c.r];
+ result.g = color_unquantize_table[quant][c.g];
+ result.b = color_unquantize_table[quant][c.b];
+ return result;
+}
+
+#endif // ASTC_ENDPOINTS_QUANTIZE_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/integer_sequence_encoding.h b/submodules/TelegramUI/third-party/astc/astc/integer_sequence_encoding.h
new file mode 100644
index 0000000000..4044e88b46
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/integer_sequence_encoding.h
@@ -0,0 +1,212 @@
+#ifndef ASTC_INTEGER_SEQUENCE_ENCODING_H_
+#define ASTC_INTEGER_SEQUENCE_ENCODING_H_
+
+#include
+#include
+
+#include "bitmanip.h"
+#include "dcheck.h"
+#include "tables_integer_sequence_encoding.h"
+#include "range.h"
+
+/**
+ * Table that describes the number of trits or quints along with bits required
+ * for storing each range.
+ */
+const uint8_t bits_trits_quints_table[RANGE_MAX][3] = {
+ {1, 0, 0}, // RANGE_2
+ {0, 1, 0}, // RANGE_3
+ {2, 0, 0}, // RANGE_4
+ {0, 0, 1}, // RANGE_5
+ {1, 1, 0}, // RANGE_6
+ {3, 0, 0}, // RANGE_8
+ {1, 0, 1}, // RANGE_10
+ {2, 1, 0}, // RANGE_12
+ {4, 0, 0}, // RANGE_16
+ {2, 0, 1}, // RANGE_20
+ {3, 1, 0}, // RANGE_24
+ {5, 0, 0}, // RANGE_32
+ {3, 0, 1}, // RANGE_40
+ {4, 1, 0}, // RANGE_48
+ {6, 0, 0}, // RANGE_64
+ {4, 0, 1}, // RANGE_80
+ {5, 1, 0}, // RANGE_96
+ {7, 0, 0}, // RANGE_128
+ {5, 0, 1}, // RANGE_160
+ {6, 1, 0}, // RANGE_192
+ {8, 0, 0} // RANGE_256
+};
+
+/**
+ * Encode a group of 5 numbers using trits and bits.
+ */
+inline void encode_trits(size_t bits,
+ uint8_t b0,
+ uint8_t b1,
+ uint8_t b2,
+ uint8_t b3,
+ uint8_t b4,
+ bitwriter& writer) {
+ uint8_t t0, t1, t2, t3, t4;
+ uint8_t m0, m1, m2, m3, m4;
+
+ split_high_low(b0, bits, t0, m0);
+ split_high_low(b1, bits, t1, m1);
+ split_high_low(b2, bits, t2, m2);
+ split_high_low(b3, bits, t3, m3);
+ split_high_low(b4, bits, t4, m4);
+
+ DCHECK(t0 < 3);
+ DCHECK(t1 < 3);
+ DCHECK(t2 < 3);
+ DCHECK(t3 < 3);
+ DCHECK(t4 < 3);
+
+ uint8_t packed = integer_from_trits[t4][t3][t2][t1][t0];
+
+ writer.write8(m0, bits);
+ writer.write8(getbits(packed, 1, 0), 2);
+ writer.write8(m1, bits);
+ writer.write8(getbits(packed, 3, 2), 2);
+ writer.write8(m2, bits);
+ writer.write8(getbits(packed, 4, 4), 1);
+ writer.write8(m3, bits);
+ writer.write8(getbits(packed, 6, 5), 2);
+ writer.write8(m4, bits);
+ writer.write8(getbits(packed, 7, 7), 1);
+}
+
+/**
+ * Encode a group of 3 numbers using quints and bits.
+ */
+inline void encode_quints(size_t bits,
+ uint8_t b0,
+ uint8_t b1,
+ uint8_t b2,
+ bitwriter& writer) {
+ uint8_t q0, q1, q2;
+ uint8_t m0, m1, m2;
+
+ split_high_low(b0, bits, q0, m0);
+ split_high_low(b1, bits, q1, m1);
+ split_high_low(b2, bits, q2, m2);
+
+ DCHECK(q0 < 5);
+ DCHECK(q1 < 5);
+ DCHECK(q2 < 5);
+
+ uint8_t packed = integer_from_quints[q2][q1][q0];
+
+ writer.write8(m0, bits);
+ writer.write8(getbits(packed, 2, 0), 3);
+ writer.write8(m1, bits);
+ writer.write8(getbits(packed, 4, 3), 2);
+ writer.write8(m2, bits);
+ writer.write8(getbits(packed, 6, 5), 2);
+}
+
+/**
+ * Encode a sequence of numbers using using one trit and a custom number of
+ * bits per number.
+ */
+inline void encode_trits(const uint8_t* numbers,
+ size_t count,
+ bitwriter& writer,
+ size_t bits) {
+ for (size_t i = 0; i < count; i += 5) {
+ uint8_t b0 = numbers[i + 0];
+ uint8_t b1 = i + 1 >= count ? 0 : numbers[i + 1];
+ uint8_t b2 = i + 2 >= count ? 0 : numbers[i + 2];
+ uint8_t b3 = i + 3 >= count ? 0 : numbers[i + 3];
+ uint8_t b4 = i + 4 >= count ? 0 : numbers[i + 4];
+
+ encode_trits(bits, b0, b1, b2, b3, b4, writer);
+ }
+}
+
+/**
+ * Encode a sequence of numbers using one quint and the custom number of bits
+ * per number.
+ */
+inline void encode_quints(const uint8_t* numbers,
+ size_t count,
+ bitwriter& writer,
+ size_t bits) {
+ for (size_t i = 0; i < count; i += 3) {
+ uint8_t b0 = numbers[i + 0];
+ uint8_t b1 = i + 1 >= count ? 0 : numbers[i + 1];
+ uint8_t b2 = i + 2 >= count ? 0 : numbers[i + 2];
+ encode_quints(bits, b0, b1, b2, writer);
+ }
+}
+
+/**
+ * Encode a sequence of numbers using binary representation with the selected
+ * bit count.
+ */
+inline void encode_binary(const uint8_t* numbers,
+ size_t count,
+ bitwriter& writer,
+ size_t bits) {
+ DCHECK(count > 0);
+ for (size_t i = 0; i < count; ++i) {
+ writer.write8(numbers[i], bits);
+ }
+}
+
+/**
+ * Encode a sequence of numbers in a specific range using the binary integer
+ * sequence encoding. The numbers are assumed to be in the correct range and
+ * the memory we are writing to is assumed to be zero-initialized.
+ */
+inline void integer_sequence_encode(const uint8_t* numbers,
+ size_t count,
+ range_t range,
+ bitwriter writer) {
+#ifndef NDEBUG
+ for (size_t i = 0; i < count; ++i) {
+ DCHECK(numbers[i] <= range_max_table[range]);
+ }
+#endif
+
+ size_t bits = bits_trits_quints_table[range][0];
+ size_t trits = bits_trits_quints_table[range][1];
+ size_t quints = bits_trits_quints_table[range][2];
+
+ if (trits == 1) {
+ encode_trits(numbers, count, writer, bits);
+ } else if (quints == 1) {
+ encode_quints(numbers, count, writer, bits);
+ } else {
+ encode_binary(numbers, count, writer, bits);
+ }
+}
+
+inline void integer_sequence_encode(const uint8_t* numbers,
+ size_t count,
+ range_t range,
+ uint8_t* output) {
+ integer_sequence_encode(numbers, count, range, bitwriter(output));
+}
+
+/**
+ * Compute the number of bits required to store a number of items in a specific
+ * range using the binary integer sequence encoding.
+ */
+inline size_t compute_ise_bitcount(size_t items, range_t range) {
+ size_t bits = bits_trits_quints_table[range][0];
+ size_t trits = bits_trits_quints_table[range][1];
+ size_t quints = bits_trits_quints_table[range][2];
+
+ if (trits) {
+ return ((8 + 5 * bits) * items + 4) / 5;
+ }
+
+ if (quints) {
+ return ((7 + 3 * bits) * items + 2) / 3;
+ }
+
+ return items * bits;
+}
+
+#endif // ASTC_INTEGER_SEQUENCE_ENCODING_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/matrix.cc b/submodules/TelegramUI/third-party/astc/astc/matrix.cc
new file mode 100644
index 0000000000..996066e246
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/matrix.cc
@@ -0,0 +1,10 @@
+#include "matrix.h"
+
+void eigen_vector(const mat3x3f_t& a, vec3f_t& eig) {
+ vec3f_t b = signorm(vec3f_t(1, 5, 2)); // FIXME: Magic number
+ for (size_t i = 0; i < 8; ++i) {
+ b = signorm(a * b);
+ }
+
+ eig = b;
+}
diff --git a/submodules/TelegramUI/third-party/astc/astc/matrix.h b/submodules/TelegramUI/third-party/astc/astc/matrix.h
new file mode 100644
index 0000000000..761de6e8d0
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/matrix.h
@@ -0,0 +1,45 @@
+#ifndef ASTC_MATRIX_H_
+#define ASTC_MATRIX_H_
+
+#include
+
+#include "vector.h"
+
+struct mat3x3f_t {
+ public:
+ mat3x3f_t() {}
+
+ mat3x3f_t(float m00,
+ float m01,
+ float m02,
+ float m10,
+ float m11,
+ float m12,
+ float m20,
+ float m21,
+ float m22) {
+ m[0] = vec3f_t(m00, m01, m02);
+ m[1] = vec3f_t(m10, m11, m12);
+ m[2] = vec3f_t(m20, m21, m22);
+ }
+
+ const vec3f_t& row(size_t i) const { return m[i]; }
+
+ float& at(size_t i, size_t j) { return m[i].components[j]; }
+ const float& at(size_t i, size_t j) const { return m[i].components[j]; }
+
+ private:
+ vec3f_t m[3];
+};
+
+inline vec3f_t operator*(const mat3x3f_t& a, vec3f_t b) {
+ vec3f_t tmp;
+ tmp.x = dot(a.row(0), b);
+ tmp.y = dot(a.row(1), b);
+ tmp.z = dot(a.row(2), b);
+ return tmp;
+}
+
+void eigen_vector(const mat3x3f_t& a, vec3f_t& eig);
+
+#endif // ASTC_MATRIX_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/meson.build b/submodules/TelegramUI/third-party/astc/astc/meson.build
new file mode 100644
index 0000000000..770a711cb9
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/meson.build
@@ -0,0 +1,57 @@
+tables_color_quantization = custom_target(
+ 'gen-color-quantization',
+ input: [],
+ output: ['tables_color_quantization.h'],
+ command: [codegen, 'quantize', '@OUTPUT0@']
+)
+
+tables_data_size = custom_target(
+ 'gen-data-size',
+ input: [],
+ output: ['tables_data_size.h'],
+ command: [codegen, 'datasize', '@OUTPUT0@']
+)
+
+tables_integer_sequence_encoding = custom_target(
+ 'gen-integer_sequence_encoding-tables',
+ input: [],
+ output: ['tables_integer_sequence_encoding.h'],
+ command: [codegen, 'bise', '@OUTPUT0@']
+)
+
+astc_sources = [
+ 'bitmanip.h',
+ 'colors.h',
+ 'compress_block.cc',
+ 'compress_block.h',
+ 'compress_texture.cc',
+ 'compress_texture.h',
+ 'constants.h',
+ 'data_size.h',
+ 'dcheck.h',
+ 'endpoints.h',
+ 'endpoints_bounding_box.h',
+ 'endpoints_encode.h',
+ 'endpoints_min_max.h',
+ 'endpoints_principal_components.cc',
+ 'endpoints_principal_components.h',
+ 'endpoints_quantize.h',
+ 'integer_sequence_encoding.h',
+ 'matrix.cc',
+ 'matrix.h',
+ 'misc.h',
+ 'range.h',
+ 'store_block.h',
+ 'vector.h',
+ 'weights_quantize.h',
+ 'weights_quantize_table.h',
+ tables_color_quantization,
+ tables_data_size,
+ tables_integer_sequence_encoding,
+]
+
+astc = static_library(
+ 'astc',
+ sources: astc_sources,
+ include_directories: incdir
+)
diff --git a/submodules/TelegramUI/third-party/astc/astc/misc.h b/submodules/TelegramUI/third-party/astc/astc/misc.h
new file mode 100644
index 0000000000..fa61b16f2a
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/misc.h
@@ -0,0 +1,23 @@
+#ifndef ASTC_MISC_H_
+#define ASTC_MISC_H_
+
+#include
+
+template
+T clamp(T a, T b, T x) {
+ if (x < a) {
+ return a;
+ }
+
+ if (x > b) {
+ return b;
+ }
+
+ return x;
+}
+
+inline bool approx_equal(float x, float y, float epsilon) {
+ return fabs(x - y) < epsilon;
+}
+
+#endif // ASTC_MISC_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/range.h b/submodules/TelegramUI/third-party/astc/astc/range.h
new file mode 100644
index 0000000000..34b0d57eda
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/range.h
@@ -0,0 +1,42 @@
+#ifndef ASTC_RANGE_H_
+#define ASTC_RANGE_H_
+
+#include
+
+/**
+ * Define normalized (starting at zero) numeric ranges that can be represented
+ * with 8 bits or less.
+ */
+enum range_t {
+ RANGE_2,
+ RANGE_3,
+ RANGE_4,
+ RANGE_5,
+ RANGE_6,
+ RANGE_8,
+ RANGE_10,
+ RANGE_12,
+ RANGE_16,
+ RANGE_20,
+ RANGE_24,
+ RANGE_32,
+ RANGE_40,
+ RANGE_48,
+ RANGE_64,
+ RANGE_80,
+ RANGE_96,
+ RANGE_128,
+ RANGE_160,
+ RANGE_192,
+ RANGE_256,
+ RANGE_MAX
+};
+
+/**
+ * Table of maximum value for each range, minimum is always zero.
+ */
+const uint8_t range_max_table[RANGE_MAX] = {1, 2, 3, 4, 5, 7, 9,
+ 11, 15, 19, 23, 31, 39, 47,
+ 63, 79, 95, 127, 159, 191, 255};
+
+#endif // ASTC_RANGE_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/store_block.h b/submodules/TelegramUI/third-party/astc/astc/store_block.h
new file mode 100644
index 0000000000..ead60d6629
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/store_block.h
@@ -0,0 +1,113 @@
+#ifndef ASTC_STORE_BLOCK_H_
+#define ASTC_STORE_BLOCK_H_
+
+#include
+#include
+
+#include "bitmanip.h"
+#include "colors.h"
+#include "constants.h"
+#include "dcheck.h"
+#include "endpoints.h"
+#include "integer_sequence_encoding.h"
+#include "range.h"
+
+struct PhysicalBlock {
+ uint8_t data[BLOCK_BYTES];
+};
+
+inline void void_extent_to_physical(unorm16_t color, PhysicalBlock* pb) {
+ pb->data[0] = 0xFC;
+ pb->data[1] = 0xFD;
+ pb->data[2] = 0xFF;
+ pb->data[3] = 0xFF;
+ pb->data[4] = 0xFF;
+ pb->data[5] = 0xFF;
+ pb->data[6] = 0xFF;
+ pb->data[7] = 0xFF;
+
+ setbytes2(pb->data, 8, color.channels.r);
+ setbytes2(pb->data, 10, color.channels.g);
+ setbytes2(pb->data, 12, color.channels.b);
+ setbytes2(pb->data, 14, color.channels.a);
+}
+
+inline void symbolic_to_physical(
+ color_endpoint_mode_t color_endpoint_mode,
+ range_t endpoint_quant,
+ range_t weight_quant,
+
+ size_t partition_count,
+ size_t partition_index,
+
+ const uint8_t endpoint_ise[MAXIMUM_ENCODED_COLOR_ENDPOINT_BYTES],
+
+ // FIXME: +1 needed here because orbits_8ptr breaks when the offset reaches
+ // the last byte which always happens if the weight mode is RANGE_32.
+ const uint8_t weights_ise[MAXIMUM_ENCODED_WEIGHT_BYTES + 1],
+
+ PhysicalBlock* pb) {
+ DCHECK(weight_quant <= RANGE_32);
+ DCHECK(endpoint_quant < RANGE_MAX);
+ DCHECK(color_endpoint_mode < CEM_MAX);
+ DCHECK(partition_count == 1 || partition_index < 1024);
+ DCHECK(partition_count >= 1 && partition_count <= 4);
+ DCHECK(compute_ise_bitcount(BLOCK_TEXEL_COUNT, weight_quant) <
+ MAXIMUM_ENCODED_WEIGHT_BITS);
+
+ size_t n = BLOCK_WIDTH;
+ size_t m = BLOCK_HEIGHT;
+
+ static const bool h_table[RANGE_32 + 1] = {0, 0, 0, 0, 0, 0,
+ 1, 1, 1, 1, 1, 1};
+
+ static const uint8_t r_table[RANGE_32 + 1] = {0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
+ 0x2, 0x3, 0x4, 0x5, 0x6, 0x7};
+
+ bool h = h_table[weight_quant];
+ size_t r = r_table[weight_quant];
+
+ // Use the first row of Table 11 in the ASTC specification. Beware that
+ // this has to be changed if another block-size is used.
+ size_t a = m - 2;
+ size_t b = n - 4;
+
+ bool d = 0; // TODO: dual plane
+
+ bool multi_part = partition_count > 1;
+
+ size_t part_value = partition_count - 1;
+ size_t part_index = multi_part ? partition_index : 0;
+
+ size_t cem_offset = multi_part ? 23 : 13;
+ size_t ced_offset = multi_part ? 29 : 17;
+
+ size_t cem_bits = multi_part ? 6 : 4;
+ size_t cem = color_endpoint_mode;
+ cem = multi_part ? cem << 2 : cem;
+
+ // Block mode
+ orbits8_ptr(pb->data, 0, getbit(r, 1), 1);
+ orbits8_ptr(pb->data, 1, getbit(r, 2), 1);
+ orbits8_ptr(pb->data, 2, 0, 1);
+ orbits8_ptr(pb->data, 3, 0, 1);
+ orbits8_ptr(pb->data, 4, getbit(r, 0), 1);
+ orbits8_ptr(pb->data, 5, a, 2);
+ orbits8_ptr(pb->data, 7, b, 2);
+ orbits8_ptr(pb->data, 9, h, 1);
+ orbits8_ptr(pb->data, 10, d, 1);
+
+ // Partitions
+ orbits8_ptr(pb->data, 11, part_value, 2);
+ orbits16_ptr(pb->data, 13, part_index, 10);
+
+ // CEM
+ orbits8_ptr(pb->data, cem_offset, cem, cem_bits);
+
+ copy_bytes(endpoint_ise, MAXIMUM_ENCODED_COLOR_ENDPOINT_BYTES, pb->data,
+ ced_offset);
+
+ reverse_bytes(weights_ise, MAXIMUM_ENCODED_WEIGHT_BYTES, pb->data + 15);
+}
+
+#endif // ASTC_STORE_BLOCK_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/tables_color_quantization.h b/submodules/TelegramUI/third-party/astc/astc/tables_color_quantization.h
new file mode 100644
index 0000000000..eebc4e97ca
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/tables_color_quantization.h
@@ -0,0 +1,7 @@
+#ifndef ASTC_TABLES_COLOR_QUANTIZATION_H_
+#define ASTC_TABLES_COLOR_QUANTIZATION_H_
+
+const uint8_t color_unquantize_table[21][256] = {{0,255},{0,128,255},{0,85,170,255},{0,64,128,192,255},{0,255,51,204,102,153},{0,36,73,109,146,182,219,255},{0,255,28,227,56,199,84,171,113,142},{0,255,69,186,23,232,92,163,46,209,116,139},{0,17,34,51,68,85,102,119,136,153,170,187,204,221,238,255},{0,255,67,188,13,242,80,175,27,228,94,161,40,215,107,148,54,201,121,134},{0,255,33,222,66,189,99,156,11,244,44,211,77,178,110,145,22,233,55,200,88,167,121,134},{0,8,16,24,33,41,49,57,66,74,82,90,99,107,115,123,132,140,148,156,165,173,181,189,198,206,214,222,231,239,247,255},{0,255,32,223,65,190,97,158,6,249,39,216,71,184,104,151,13,242,45,210,78,177,110,145,19,236,52,203,84,171,117,138,26,229,58,197,91,164,123,132},{0,255,16,239,32,223,48,207,65,190,81,174,97,158,113,142,5,250,21,234,38,217,54,201,70,185,86,169,103,152,119,136,11,244,27,228,43,212,59,196,76,179,92,163,108,147,124,131},{0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,130,134,138,142,146,150,154,158,162,166,170,174,178,182,186,190,195,199,203,207,211,215,219,223,227,231,235,239,243,247,251,255},{0,255,16,239,32,223,48,207,64,191,80,175,96,159,112,143,3,252,19,236,35,220,51,204,67,188,83,172,100,155,116,139,6,249,22,233,38,217,54,201,71,184,87,168,103,152,119,136,9,246,25,230,42,213,58,197,74,181,90,165,106,149,122,133,13,242,29,226,45,210,61,194,77,178,93,162,109,146,125,130},{0,255,8,247,16,239,24,231,32,223,40,215,48,207,56,199,64,191,72,183,80,175,88,167,96,159,104,151,112,143,120,135,2,253,10,245,18,237,26,229,35,220,43,212,51,204,59,196,67,188,75,180,83,172,91,164,99,156,107,148,115,140,123,132,5,250,13,242,21,234,29,226,37,218,45,210,53,202,61,194,70,185,78,177,86,169,94,161,102,153,110,145,118,137,126,129},{0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,129,131,133,135,137,139,141,143,145,147,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181,183,185,187,189,191,193,195,197,199,201,203,205,207,209,211,213,215,217,219,221,223,225,227,229,231,233,235,237,239,241,243,245,247,249,251,253,255},{0,255,8,247,16,239,24,231,32,223,40,215,48,207,56,199,64,191,72,183,80,175,88,167,96,159,104,151,112,143,120,135,1,254,9,246,17,238,25,230,33,222,41,214,49,206,57,198,65,190,73,182,81,174,89,166,97,158,105,150,113,142,121,134,3,252,11,244,19,236,27,228,35,220,43,212,51,204,59,196,67,188,75,180,83,172,91,164,99,156,107,148,115,140,123,132,4,251,12,243,20,235,28,227,36,219,44,211,52,203,60,195,68,187,76,179,84,171,92,163,100,155,108,147,116,139,124,131,6,249,14,241,22,233,30,225,38,217,46,209,54,201,62,193,70,185,78,177,86,169,94,161,102,153,110,145,118,137,126,129},{0,255,4,251,8,247,12,243,16,239,20,235,24,231,28,227,32,223,36,219,40,215,44,211,48,207,52,203,56,199,60,195,64,191,68,187,72,183,76,179,80,175,84,171,88,167,92,163,96,159,100,155,104,151,108,147,112,143,116,139,120,135,124,131,1,254,5,250,9,246,13,242,17,238,21,234,25,230,29,226,33,222,37,218,41,214,45,210,49,206,53,202,57,198,61,194,65,190,69,186,73,182,77,178,81,174,85,170,89,166,93,162,97,158,101,154,105,150,109,146,113,142,117,138,121,134,125,130,2,253,6,249,10,245,14,241,18,237,22,233,26,229,30,225,34,221,38,217,42,213,46,209,50,205,54,201,58,197,62,193,66,189,70,185,74,181,78,177,82,173,86,169,90,165,94,161,98,157,102,153,106,149,110,145,114,141,118,137,122,133,126,129},{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255}};
+const uint8_t color_quantize_table[21][256] = {{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7},{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1},{0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1,1,1,1},{0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15},{0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,8,8,8,8,8,8,8,8,8,8,8,8,8,12,12,12,12,12,12,12,12,12,12,12,12,12,12,16,16,16,16,16,16,16,16,16,16,16,16,16,2,2,2,2,2,2,2,2,2,2,2,2,2,6,6,6,6,6,6,6,6,6,6,6,6,6,6,10,10,10,10,10,10,10,10,10,10,10,10,10,14,14,14,14,14,14,14,14,14,14,14,14,14,14,18,18,18,18,18,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,19,19,19,19,19,15,15,15,15,15,15,15,15,15,15,15,15,15,15,11,11,11,11,11,11,11,11,11,11,11,11,11,7,7,7,7,7,7,7,7,7,7,7,7,7,7,3,3,3,3,3,3,3,3,3,3,3,3,3,17,17,17,17,17,17,17,17,17,17,17,17,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,9,9,9,9,9,9,9,9,9,9,9,9,9,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1,1,1,1},{0,0,0,0,0,0,8,8,8,8,8,8,8,8,8,8,8,16,16,16,16,16,16,16,16,16,16,16,2,2,2,2,2,2,2,2,2,2,2,10,10,10,10,10,10,10,10,10,10,10,18,18,18,18,18,18,18,18,18,18,18,4,4,4,4,4,4,4,4,4,4,4,12,12,12,12,12,12,12,12,12,12,12,20,20,20,20,20,20,20,20,20,20,20,6,6,6,6,6,6,6,6,6,6,6,14,14,14,14,14,14,14,14,14,14,14,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,15,15,15,15,15,15,15,15,15,15,15,7,7,7,7,7,7,7,7,7,7,7,21,21,21,21,21,21,21,21,21,21,21,13,13,13,13,13,13,13,13,13,13,13,5,5,5,5,5,5,5,5,5,5,5,19,19,19,19,19,19,19,19,19,19,19,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,3,3,3,3,3,3,3,17,17,17,17,17,17,17,17,17,17,17,9,9,9,9,9,9,9,9,9,9,9,1,1,1,1,1,1},{0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,30,30,30,30,30,30,30,30,31,31,31,31},{0,0,0,0,8,8,8,8,8,8,16,16,16,16,16,16,16,24,24,24,24,24,24,32,32,32,32,32,32,2,2,2,2,2,2,2,10,10,10,10,10,10,10,18,18,18,18,18,18,26,26,26,26,26,26,26,34,34,34,34,34,34,4,4,4,4,4,4,4,12,12,12,12,12,12,20,20,20,20,20,20,20,28,28,28,28,28,28,36,36,36,36,36,36,6,6,6,6,6,6,6,14,14,14,14,14,14,14,22,22,22,22,22,22,30,30,30,30,30,30,30,38,38,38,38,38,38,38,39,39,39,39,39,39,39,31,31,31,31,31,31,31,23,23,23,23,23,23,15,15,15,15,15,15,15,7,7,7,7,7,7,7,37,37,37,37,37,37,29,29,29,29,29,29,21,21,21,21,21,21,21,13,13,13,13,13,13,5,5,5,5,5,5,5,35,35,35,35,35,35,27,27,27,27,27,27,27,19,19,19,19,19,19,11,11,11,11,11,11,11,3,3,3,3,3,3,3,33,33,33,33,33,33,25,25,25,25,25,25,17,17,17,17,17,17,17,9,9,9,9,9,9,1,1,1,1},{0,0,0,16,16,16,16,16,16,32,32,32,32,32,2,2,2,2,2,18,18,18,18,18,18,34,34,34,34,34,4,4,4,4,4,4,20,20,20,20,20,36,36,36,36,36,6,6,6,6,6,6,22,22,22,22,22,38,38,38,38,38,8,8,8,8,8,8,24,24,24,24,24,24,40,40,40,40,40,10,10,10,10,10,26,26,26,26,26,26,42,42,42,42,42,12,12,12,12,12,12,28,28,28,28,28,44,44,44,44,44,14,14,14,14,14,14,30,30,30,30,30,46,46,46,46,46,46,47,47,47,47,47,47,31,31,31,31,31,15,15,15,15,15,15,45,45,45,45,45,29,29,29,29,29,13,13,13,13,13,13,43,43,43,43,43,27,27,27,27,27,27,11,11,11,11,11,41,41,41,41,41,25,25,25,25,25,25,9,9,9,9,9,9,39,39,39,39,39,23,23,23,23,23,7,7,7,7,7,7,37,37,37,37,37,21,21,21,21,21,5,5,5,5,5,5,35,35,35,35,35,19,19,19,19,19,19,3,3,3,3,3,33,33,33,33,33,17,17,17,17,17,17,1,1,1},{0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,6,6,6,6,7,7,7,7,8,8,8,8,9,9,9,9,10,10,10,10,11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,22,22,22,22,23,23,23,23,24,24,24,24,25,25,25,25,26,26,26,26,27,27,27,27,28,28,28,28,29,29,29,29,30,30,30,30,31,31,31,31,32,32,32,32,32,33,33,33,33,34,34,34,34,35,35,35,35,36,36,36,36,37,37,37,37,38,38,38,38,39,39,39,39,40,40,40,40,41,41,41,41,42,42,42,42,43,43,43,43,44,44,44,44,45,45,45,45,46,46,46,46,47,47,47,47,48,48,48,48,48,49,49,49,49,50,50,50,50,51,51,51,51,52,52,52,52,53,53,53,53,54,54,54,54,55,55,55,55,56,56,56,56,57,57,57,57,58,58,58,58,59,59,59,59,60,60,60,60,61,61,61,61,62,62,62,62,63,63},{0,0,16,16,16,32,32,32,48,48,48,48,64,64,64,2,2,2,18,18,18,34,34,34,50,50,50,50,66,66,66,4,4,4,20,20,20,36,36,36,36,52,52,52,68,68,68,6,6,6,22,22,22,38,38,38,38,54,54,54,70,70,70,8,8,8,24,24,24,24,40,40,40,56,56,56,72,72,72,10,10,10,26,26,26,26,42,42,42,58,58,58,74,74,74,12,12,12,12,28,28,28,44,44,44,60,60,60,76,76,76,14,14,14,14,30,30,30,46,46,46,62,62,62,78,78,78,78,79,79,79,79,63,63,63,47,47,47,31,31,31,15,15,15,15,77,77,77,61,61,61,45,45,45,29,29,29,13,13,13,13,75,75,75,59,59,59,43,43,43,27,27,27,27,11,11,11,73,73,73,57,57,57,41,41,41,25,25,25,25,9,9,9,71,71,71,55,55,55,39,39,39,39,23,23,23,7,7,7,69,69,69,53,53,53,37,37,37,37,21,21,21,5,5,5,67,67,67,51,51,51,51,35,35,35,19,19,19,3,3,3,65,65,65,49,49,49,49,33,33,33,17,17,17,1,1},{0,0,32,32,64,64,64,2,2,2,34,34,66,66,66,4,4,4,36,36,68,68,68,6,6,6,38,38,70,70,70,8,8,8,40,40,40,72,72,10,10,10,42,42,42,74,74,12,12,12,44,44,44,76,76,14,14,14,46,46,46,78,78,16,16,16,48,48,48,80,80,18,18,18,50,50,50,82,82,20,20,20,52,52,52,84,84,22,22,22,54,54,54,86,86,24,24,24,56,56,56,88,88,26,26,26,58,58,58,90,90,28,28,28,60,60,60,92,92,30,30,30,62,62,62,94,94,94,95,95,95,63,63,63,31,31,31,93,93,61,61,61,29,29,29,91,91,59,59,59,27,27,27,89,89,57,57,57,25,25,25,87,87,55,55,55,23,23,23,85,85,53,53,53,21,21,21,83,83,51,51,51,19,19,19,81,81,49,49,49,17,17,17,79,79,47,47,47,15,15,15,77,77,45,45,45,13,13,13,75,75,43,43,43,11,11,11,73,73,41,41,41,9,9,9,71,71,71,39,39,7,7,7,69,69,69,37,37,5,5,5,67,67,67,35,35,3,3,3,65,65,65,33,33,1,1},{0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,32,32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,42,42,43,43,44,44,45,45,46,46,47,47,48,48,49,49,50,50,51,51,52,52,53,53,54,54,55,55,56,56,57,57,58,58,59,59,60,60,61,61,62,62,63,63,64,64,64,65,65,66,66,67,67,68,68,69,69,70,70,71,71,72,72,73,73,74,74,75,75,76,76,77,77,78,78,79,79,80,80,81,81,82,82,83,83,84,84,85,85,86,86,87,87,88,88,89,89,90,90,91,91,92,92,93,93,94,94,95,95,96,96,97,97,98,98,99,99,100,100,101,101,102,102,103,103,104,104,105,105,106,106,107,107,108,108,109,109,110,110,111,111,112,112,113,113,114,114,115,115,116,116,117,117,118,118,119,119,120,120,121,121,122,122,123,123,124,124,125,125,126,126,127},{0,32,32,64,96,96,128,2,2,34,34,66,98,98,130,4,4,36,36,68,100,100,132,6,6,38,38,70,102,102,134,8,8,40,40,72,104,104,136,10,10,42,42,74,106,106,138,12,12,44,44,76,108,108,140,14,14,46,46,78,110,110,142,16,16,48,48,80,112,112,144,18,18,50,50,82,114,114,146,20,20,52,52,84,116,116,148,22,22,54,54,86,118,118,150,24,24,56,56,88,120,120,152,26,26,58,58,90,122,122,154,28,28,60,60,92,124,124,156,30,30,62,62,94,126,126,158,158,159,159,127,127,95,63,63,31,31,157,125,125,93,61,61,29,29,155,123,123,91,59,59,27,27,153,121,121,89,57,57,25,25,151,119,119,87,55,55,23,23,149,117,117,85,53,53,21,21,147,115,115,83,51,51,19,19,145,113,113,81,49,49,17,17,143,111,111,79,47,47,15,15,141,109,109,77,45,45,13,13,139,107,107,75,43,43,11,11,137,105,105,73,41,41,9,9,135,103,103,71,39,39,7,7,133,101,101,69,37,37,5,5,131,99,99,67,35,35,3,3,129,97,97,65,33,33,1},{0,64,128,2,2,66,130,4,4,68,132,6,6,70,134,8,8,72,136,10,10,74,138,12,12,76,140,14,14,78,142,16,16,80,144,18,18,82,146,20,20,84,148,22,22,86,150,24,24,88,152,26,26,90,154,28,28,92,156,30,30,94,158,32,32,96,160,34,34,98,162,36,36,100,164,38,38,102,166,40,40,104,168,42,42,106,170,44,44,108,172,46,46,110,174,48,48,112,176,50,50,114,178,52,52,116,180,54,54,118,182,56,56,120,184,58,58,122,186,60,60,124,188,62,62,126,190,190,191,191,127,63,63,189,125,61,61,187,123,59,59,185,121,57,57,183,119,55,55,181,117,53,53,179,115,51,51,177,113,49,49,175,111,47,47,173,109,45,45,171,107,43,43,169,105,41,41,167,103,39,39,165,101,37,37,163,99,35,35,161,97,33,33,159,95,31,31,157,93,29,29,155,91,27,27,153,89,25,25,151,87,23,23,149,85,21,21,147,83,19,19,145,81,17,17,143,79,15,15,141,77,13,13,139,75,11,11,137,73,9,9,135,71,7,7,133,69,5,5,131,67,3,3,129,65,1},{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255}};
+
+#endif
diff --git a/submodules/TelegramUI/third-party/astc/astc/tables_data_size.h b/submodules/TelegramUI/third-party/astc/astc/tables_data_size.h
new file mode 100644
index 0000000000..e1c4633dcc
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/tables_data_size.h
@@ -0,0 +1,6 @@
+#ifndef ASTC_TABLES_DATA_SIZE_H_
+#define ASTC_TABLES_DATA_SIZE_H_
+
+const int8_t color_endpoint_range_table[2][12][16] = {{{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},{20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20},{20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20},{20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20},{20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20},{20,20,20,20,20,20,20,20,20,20,20,20,19,19,19,19},{20,20,20,20,20,20,20,20,20,20,20,20,17,17,17,17},{20,20,20,20,20,20,20,20,20,20,20,20,16,16,16,16},{20,20,20,20,20,20,20,20,19,19,19,19,13,13,13,13},{20,20,20,20,20,20,20,20,16,16,16,16,11,11,11,11},{20,20,20,20,20,20,20,20,14,14,14,14,10,10,10,10},{20,20,20,20,19,19,19,19,11,11,11,11,7,7,7,7}},{{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1},{20,20,20,20,20,20,20,20,14,14,14,14,9,9,9,9},{20,20,20,20,20,20,20,20,12,12,12,12,8,8,8,8},{20,20,20,20,19,19,19,19,11,11,11,11,7,7,7,7},{20,20,20,20,17,17,17,17,10,10,10,10,6,6,6,6},{20,20,20,20,15,15,15,15,8,8,8,8,5,5,5,5},{20,20,20,20,13,13,13,13,7,7,7,7,4,4,4,4},{20,20,20,20,11,11,11,11,6,6,6,6,3,3,3,3},{20,20,20,20,9,9,9,9,4,4,4,4,2,2,2,2},{17,17,17,17,7,7,7,7,3,3,3,3,1,1,1,1},{14,14,14,14,5,5,5,5,2,2,2,2,0,0,0,0},{10,10,10,10,3,3,3,3,0,0,0,0,0,0,0,0}}};
+
+#endif
diff --git a/submodules/TelegramUI/third-party/astc/astc/tables_integer_sequence_encoding.h b/submodules/TelegramUI/third-party/astc/astc/tables_integer_sequence_encoding.h
new file mode 100644
index 0000000000..3bdcb37b8c
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/tables_integer_sequence_encoding.h
@@ -0,0 +1,7 @@
+#ifndef ASTC_TABLES_INTEGER_SEQUENCE_ENCODING_H_
+#define ASTC_TABLES_INTEGER_SEQUENCE_ENCODING_H_
+
+const uint8_t integer_from_trits[3][3][3][3][3] = {{{{{0,1,2},{4,5,6},{8,9,10}},{{16,17,18},{20,21,22},{24,25,26}},{{3,7,15},{19,23,27},{12,13,14}}},{{{32,33,34},{36,37,38},{40,41,42}},{{48,49,50},{52,53,54},{56,57,58}},{{35,39,47},{51,55,59},{44,45,46}}},{{{64,65,66},{68,69,70},{72,73,74}},{{80,81,82},{84,85,86},{88,89,90}},{{67,71,79},{83,87,91},{76,77,78}}}},{{{{128,129,130},{132,133,134},{136,137,138}},{{144,145,146},{148,149,150},{152,153,154}},{{131,135,143},{147,151,155},{140,141,142}}},{{{160,161,162},{164,165,166},{168,169,170}},{{176,177,178},{180,181,182},{184,185,186}},{{163,167,175},{179,183,187},{172,173,174}}},{{{192,193,194},{196,197,198},{200,201,202}},{{208,209,210},{212,213,214},{216,217,218}},{{195,199,207},{211,215,219},{204,205,206}}}},{{{{96,97,98},{100,101,102},{104,105,106}},{{112,113,114},{116,117,118},{120,121,122}},{{99,103,111},{115,119,123},{108,109,110}}},{{{224,225,226},{228,229,230},{232,233,234}},{{240,241,242},{244,245,246},{248,249,250}},{{227,231,239},{243,247,251},{236,237,238}}},{{{28,29,30},{60,61,62},{92,93,94}},{{156,157,158},{188,189,190},{220,221,222}},{{31,63,127},{159,191,255},{252,253,254}}}}};
+const uint8_t integer_from_quints[5][5][5] = {{{0,1,2,3,4},{8,9,10,11,12},{16,17,18,19,20},{24,25,26,27,28},{5,13,21,29,6}},{{32,33,34,35,36},{40,41,42,43,44},{48,49,50,51,52},{56,57,58,59,60},{37,45,53,61,14}},{{64,65,66,67,68},{72,73,74,75,76},{80,81,82,83,84},{88,89,90,91,92},{69,77,85,93,22}},{{96,97,98,99,100},{104,105,106,107,108},{112,113,114,115,116},{120,121,122,123,124},{101,109,117,125,30}},{{102,103,70,71,38},{110,111,78,79,46},{118,119,86,87,54},{126,127,94,95,62},{39,47,55,63,31}}};
+
+#endif
diff --git a/submodules/TelegramUI/third-party/astc/astc/vector.h b/submodules/TelegramUI/third-party/astc/astc/vector.h
new file mode 100644
index 0000000000..46700184cc
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/vector.h
@@ -0,0 +1,148 @@
+#ifndef ASTC_VECTOR_H_
+#define ASTC_VECTOR_H_
+
+#include
+#include
+
+#include "dcheck.h"
+
+template
+union vec3_t {
+ public:
+ vec3_t() {}
+ vec3_t(T x_, T y_, T z_) : x(x_), y(y_), z(z_) {}
+
+ struct {
+ T x, y, z;
+ };
+ struct {
+ T r, g, b;
+ };
+ T components[3];
+};
+
+typedef vec3_t vec3f_t;
+typedef vec3_t vec3i_t;
+
+template
+vec3_t operator+(vec3_t a, vec3_t b) {
+ vec3_t result;
+ result.x = a.x + b.x;
+ result.y = a.y + b.y;
+ result.z = a.z + b.z;
+ return result;
+}
+
+template
+vec3_t operator-(vec3_t a, vec3_t b) {
+ vec3_t result;
+ result.x = a.x - b.x;
+ result.y = a.y - b.y;
+ result.z = a.z - b.z;
+ return result;
+}
+
+template
+vec3_t operator*(vec3_t a, vec3_t b) {
+ vec3_t result;
+ result.x = a.x * b.x;
+ result.y = a.y * b.y;
+ result.z = a.z * b.z;
+ return result;
+}
+
+template
+vec3_t operator*(vec3_t a, T b) {
+ vec3_t result;
+ result.x = a.x * b;
+ result.y = a.y * b;
+ result.z = a.z * b;
+ return result;
+}
+
+template
+vec3_t operator/(vec3_t a, T b) {
+ vec3_t result;
+ result.x = a.x / b;
+ result.y = a.y / b;
+ result.z = a.z / b;
+ return result;
+}
+
+template
+vec3_t operator/(vec3_t a, vec3_t b) {
+ vec3_t result;
+ result.x = a.x / b.x;
+ result.y = a.y / b.y;
+ result.z = a.z / b.z;
+ return result;
+}
+
+template
+bool operator==(vec3_t a, vec3_t b) {
+ return a.x == b.x && a.y == b.y && a.z == b.z;
+}
+
+template
+bool operator!=(vec3_t a, vec3_t b) {
+ return a.x != b.x || a.y != b.y || a.z != b.z;
+}
+
+template
+T dot(vec3_t a, vec3_t b) {
+ return a.x * b.x + a.y * b.y + a.z * b.z;
+}
+
+template
+T quadrance(vec3_t a) {
+ return dot(a, a);
+}
+
+template
+T norm(vec3_t a) {
+ return static_cast(sqrt(quadrance(a)));
+}
+
+template
+T distance(vec3_t a, vec3_t b) {
+ return norm(a - b);
+}
+
+template
+T qd(vec3_t a, vec3_t b) {
+ return quadrance(a - b);
+}
+
+template
+vec3_t signorm(vec3_t a) {
+ T x = norm(a);
+ DCHECK(x != 0.0);
+ return a / x;
+}
+
+template
+vec3_t vecmin(vec3_t a, vec3_t b) {
+ vec3_t result;
+ result.x = std::min(a.x, b.x);
+ result.y = std::min(a.y, b.y);
+ result.z = std::min(a.z, b.z);
+ return result;
+}
+
+template
+vec3_t vecmax(vec3_t a, vec3_t b) {
+ vec3_t result;
+ result.x = std::max(a.x, b.x);
+ result.y = std::max(a.y, b.y);
+ result.z = std::max(a.z, b.z);
+ return result;
+}
+
+template
+T qd_to_line(vec3_t m, vec3_t k, T kk, vec3_t p) {
+ T t = dot(p - m, k) / kk;
+ vec3_t q = k * t + m;
+ return qd(p, q);
+}
+
+#endif // ASTC_VECTOR_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/weights_quantize.h b/submodules/TelegramUI/third-party/astc/astc/weights_quantize.h
new file mode 100644
index 0000000000..cb53f2978b
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/weights_quantize.h
@@ -0,0 +1,88 @@
+#ifndef ASTC_WEIGHTS_QUANTIZE_H_
+#define ASTC_WEIGHTS_QUANTIZE_H_
+
+#include
+#include
+
+#include "colors.h"
+#include "constants.h"
+#include "dcheck.h"
+#include "misc.h"
+#include "range.h"
+#include "vector.h"
+#include "weights_quantize_table.h"
+
+uint8_t quantize_weight(range_t weight_quant, size_t weight) {
+ DCHECK(weight_quant <= RANGE_32);
+ DCHECK(weight <= 1024);
+ return weight_quantize_table[weight_quant][weight];
+}
+
+/**
+ * Project a texel to a line and quantize the result in 1 dimension.
+ *
+ * The line is defined by t=k*x + m. This function calculates and quantizes x
+ * by projecting n=t-m onto k, x=|n|/|k|. Since k and m is derived from the
+ * minimum and maximum of all texel values the result will be in the range [0,
+ * 1].
+ *
+ * To quantize the result using the weight_quantize_table the value needs to
+ * be extended to the range [0, 1024].
+ *
+ * @param k the derivative of the line
+ * @param m the minimum endpoint
+ * @param t the texel value
+ */
+size_t project(size_t k, size_t m, size_t t) {
+ DCHECK(k > 0);
+ return size_t((t - m) * 1024) / k;
+}
+
+/**
+ * Project a texel to a line and quantize the result in 3 dimensions.
+ */
+size_t project(vec3i_t k, int kk, vec3i_t m, vec3i_t t) {
+ DCHECK(kk > 0);
+
+ return static_cast(clamp(0, 1024, dot(t - m, k) * 1024 / kk));
+}
+
+void calculate_quantized_weights_luminance(
+ const uint8_t texels[BLOCK_TEXEL_COUNT],
+ range_t quant,
+ uint8_t l0,
+ uint8_t l1,
+ uint8_t weights[BLOCK_TEXEL_COUNT]) {
+ DCHECK(l0 < l1);
+
+ size_t k = l1 - l0;
+ size_t m = l0;
+
+ for (size_t i = 0; i < BLOCK_TEXEL_COUNT; ++i) {
+ size_t t = static_cast(texels[i]);
+ weights[i] = quantize_weight(quant, project(k, m, t));
+ }
+}
+
+void calculate_quantized_weights_rgb(const unorm8_t texels[BLOCK_TEXEL_COUNT],
+ range_t quant,
+ vec3i_t e0,
+ vec3i_t e1,
+ uint8_t weights[BLOCK_TEXEL_COUNT]) {
+ if (e0 == e1) {
+ for (size_t i = 0; i < BLOCK_TEXEL_COUNT; ++i) {
+ weights[i] = 0; // quantize_weight(quant, 0) is always 0
+ }
+ } else {
+ vec3i_t k = e1 - e0;
+ vec3i_t m = e0;
+
+ int kk = dot(k, k);
+ for (size_t i = 0; i < BLOCK_TEXEL_COUNT; ++i) {
+ weights[i] =
+ quantize_weight(quant, project(k, kk, m, to_vec3i(texels[i])));
+ }
+ }
+}
+
+#endif // ASTC_WEIGHTS_QUANTIZE_H_
diff --git a/submodules/TelegramUI/third-party/astc/astc/weights_quantize_table.h b/submodules/TelegramUI/third-party/astc/astc/weights_quantize_table.h
new file mode 100644
index 0000000000..2b1bcc04ec
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/astc/weights_quantize_table.h
@@ -0,0 +1,566 @@
+#ifndef ASTC_WEIGHTS_QUANTIZE_TABLE_H_
+#define ASTC_WEIGHTS_QUANTIZE_TABLE_H_
+
+#include
+
+// FIXME: This is copied from ARM-code
+const uint8_t weight_quantize_table[12][1025] = {
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
+ 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
+ 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
+ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
+ 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12,
+ 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
+ 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14,
+ 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
+ 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17,
+ 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18,
+ 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19,
+ 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21,
+ 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22,
+ 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23,
+ 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
+ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
+ 26, 26, 26, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
+ 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
+ 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29,
+ 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30,
+ 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31}};
+
+#endif // ASTC_WEIGHTS_QUANTIZE_TABLE_H_
diff --git a/submodules/TelegramUI/third-party/astc/compress/astc.cc b/submodules/TelegramUI/third-party/astc/compress/astc.cc
new file mode 100644
index 0000000000..581fe5186c
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/compress/astc.cc
@@ -0,0 +1,74 @@
+#include
+
+#include "astc.h"
+
+#include
+#include
+#include
+#include
+#include
+
+#include "compress_texture.h"
+#include "constants.h"
+#include "bgra.h"
+#include "compressed.h"
+
+int64_t usecs_passed(const timeval& t1, const timeval& t2) {
+ return (t2.tv_sec - t1.tv_sec) * 1000000 + (t2.tv_usec - t1.tv_usec);
+}
+
+void compress_astc(const BgraImage& image, CompressedImage* compressed) {
+ compress_texture(reinterpret_cast(image.buffer), compressed->buffer, static_cast(image.width), static_cast(image.height));
+}
+
+/*int main(int argc, const char** argv) {
+ if (argc < 3 || argc > 4) {
+ fprintf(stderr, "Usage: %s [-q | --quiet] INPUT OUTPUT\n", argv[0]);
+ return 1;
+ }
+
+ bool quiet = false;
+ const char* input = nullptr;
+ const char* output = nullptr;
+
+ int i = 1;
+ if (strcmp(argv[i], "-q") == 0 || strcmp(argv[i], "--quiet") == 0) {
+ quiet = true;
+ ++i;
+ }
+ input = argv[i];
+ output = argv[i + 1];
+
+ try {
+ BgraImage image = ReadTGAFile(input);
+
+ if (image.width % BLOCK_WIDTH != 0 || image.height % BLOCK_HEIGHT != 0) {
+ fprintf(stderr,
+ "Error: image size (%ldx%ld) not a multiple of block size "
+ "(%ldx%ld)\n",
+ image.width, image.height, BLOCK_WIDTH, BLOCK_HEIGHT);
+ return 1;
+ }
+
+ CompressedImage compressed(image.width, image.height, BLOCK_WIDTH,
+ BLOCK_HEIGHT, BLOCK_BYTES);
+
+ if (quiet) {
+ compress_astc(image, &compressed);
+ } else {
+ timeval t1;
+ gettimeofday(&t1, NULL);
+ compress_astc(image, &compressed);
+ timeval t2;
+ gettimeofday(&t2, NULL);
+ fprintf(stdout, "Time passed: %ldus\n", usecs_passed(t1, t2));
+ }
+
+ WriteASTCFile(compressed, output);
+ } catch (const char* err) {
+ fprintf(stderr, "Error: %s\n", err);
+ return 1;
+ }
+
+ return 0;
+}*/
diff --git a/submodules/TelegramUI/third-party/astc/compress/astc.h b/submodules/TelegramUI/third-party/astc/compress/astc.h
new file mode 100644
index 0000000000..2f7f29fbd9
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/compress/astc.h
@@ -0,0 +1,9 @@
+#ifndef astc_h
+#define astc_h
+
+#include "bgra.h"
+#include "compressed.h"
+
+void compress_astc(const BgraImage& image, CompressedImage* compressed);
+
+#endif /* astc_h */
diff --git a/submodules/TelegramUI/third-party/astc/image/bgra.cc b/submodules/TelegramUI/third-party/astc/image/bgra.cc
new file mode 100644
index 0000000000..5e3099a9f8
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/image/bgra.cc
@@ -0,0 +1,18 @@
+#include "bgra.h"
+
+#include
+
+struct TGAHeader {
+ uint8_t id_length;
+ uint8_t color_map_type;
+ uint8_t image_type;
+
+ uint8_t first_entry_index[2];
+ uint8_t color_map_length[2];
+ uint8_t color_map_entry_size;
+
+ uint8_t origin_x[2], origin_y[2];
+ uint8_t width[2], height[2];
+ uint8_t pixel_depth;
+ uint8_t image_descriptor;
+};
diff --git a/submodules/TelegramUI/third-party/astc/image/bgra.h b/submodules/TelegramUI/third-party/astc/image/bgra.h
new file mode 100644
index 0000000000..4a48f66e01
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/image/bgra.h
@@ -0,0 +1,38 @@
+#ifndef IMAGE_BGRA_H_
+#define IMAGE_BGRA_H_
+
+#include
+
+#include "color.h"
+
+class BgraImage {
+ public:
+ BgraImage(size_t width_, size_t height_, uint8_t *bytes)
+ : width(width_),
+ height(height_),
+ pixel_count(width_ * height_),
+ buffer_size(pixel_count * sizeof(bgra8_t)),
+ buffer((bgra8_t *)bytes) {}
+
+ BgraImage(BgraImage&& other)
+ : width(other.width),
+ height(other.height),
+ buffer_size(other.buffer_size),
+ buffer(other.buffer) {
+ other.buffer = nullptr;
+ }
+
+ BgraImage(const BgraImage&) = delete;
+ BgraImage& operator=(const BgraImage&) = delete;
+
+ ~BgraImage() {
+ }
+
+ size_t width, height;
+
+ size_t pixel_count;
+ size_t buffer_size;
+ bgra8_t* buffer;
+};
+
+#endif // IMAGE_BGRA_H_
diff --git a/submodules/TelegramUI/third-party/astc/image/color.h b/submodules/TelegramUI/third-party/astc/image/color.h
new file mode 100644
index 0000000000..6c5cc3199c
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/image/color.h
@@ -0,0 +1,37 @@
+#ifndef IMAGE_COLOR_H_
+#define IMAGE_COLOR_H_
+
+#include
+
+union rgba8_t {
+ struct type {
+ uint8_t r, g, b, a;
+ } channels;
+ uint32_t bits;
+};
+union bgra8_t {
+ struct type {
+ uint8_t b, g, r, a;
+ } channels;
+ uint32_t bits;
+};
+
+inline bgra8_t swap_red_blue(rgba8_t color) {
+ bgra8_t output;
+ output.channels.r = color.channels.r;
+ output.channels.g = color.channels.g;
+ output.channels.b = color.channels.b;
+ output.channels.a = color.channels.a;
+ return output;
+}
+
+inline rgba8_t swap_red_blue(bgra8_t color) {
+ rgba8_t output;
+ output.channels.r = color.channels.r;
+ output.channels.g = color.channels.g;
+ output.channels.b = color.channels.b;
+ output.channels.a = color.channels.a;
+ return output;
+}
+
+#endif // IMAGE_COLOR_H_
diff --git a/submodules/TelegramUI/third-party/astc/image/compressed.cc b/submodules/TelegramUI/third-party/astc/image/compressed.cc
new file mode 100644
index 0000000000..69ee8693b5
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/image/compressed.cc
@@ -0,0 +1,44 @@
+#include "compressed.h"
+
+#include
+
+static int MAGIC_FILE_CONSTANT = 0x5CA1AB13;
+
+struct ASTCHeader {
+ uint8_t magic[4];
+ uint8_t blockdim_x;
+ uint8_t blockdim_y;
+ uint8_t blockdim_z;
+ uint8_t xsize[3];
+ uint8_t ysize[3];
+ uint8_t zsize[3];
+};
+
+void WriteASTCFile(const CompressedImage& compressed, const char* file_path) {
+ std::ofstream file(file_path, std::ios::binary);
+ if (file.fail()) {
+ throw "could not open file for writing";
+ }
+
+ ASTCHeader hdr;
+ hdr.magic[0] = static_cast(MAGIC_FILE_CONSTANT & 0xFF);
+ hdr.magic[1] = static_cast((MAGIC_FILE_CONSTANT >> 8) & 0xFF);
+ hdr.magic[2] = static_cast((MAGIC_FILE_CONSTANT >> 16) & 0xFF);
+ hdr.magic[3] = static_cast((MAGIC_FILE_CONSTANT >> 24) & 0xFF);
+ hdr.blockdim_x = static_cast(compressed.xdim);
+ hdr.blockdim_y = static_cast(compressed.ydim);
+ hdr.blockdim_z = 1;
+ hdr.xsize[0] = compressed.xsize & 0xFF;
+ hdr.xsize[1] = (compressed.xsize >> 8) & 0xFF;
+ hdr.xsize[2] = (compressed.xsize >> 16) & 0xFF;
+ hdr.ysize[0] = compressed.ysize & 0xFF;
+ hdr.ysize[1] = (compressed.ysize >> 8) & 0xFF;
+ hdr.ysize[2] = (compressed.ysize >> 16) & 0xFF;
+ hdr.zsize[0] = 1 & 0xFF;
+ hdr.zsize[1] = (1 >> 8) & 0xFF;
+ hdr.zsize[2] = (1 >> 16) & 0xFF;
+
+ file.write(reinterpret_cast(&hdr), sizeof(ASTCHeader));
+ file.write(reinterpret_cast(compressed.buffer),
+ static_cast(compressed.buffer_size));
+}
diff --git a/submodules/TelegramUI/third-party/astc/image/compressed.h b/submodules/TelegramUI/third-party/astc/image/compressed.h
new file mode 100644
index 0000000000..aa61f96702
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/image/compressed.h
@@ -0,0 +1,61 @@
+#ifndef IMAGE_COMPRESSED_H_
+#define IMAGE_COMPRESSED_H_
+
+#include
+#include
+#include
+
+class CompressedImage {
+ public:
+ CompressedImage(size_t width,
+ size_t height,
+ size_t block_width,
+ size_t block_height,
+ size_t bytes_per_block_)
+ : xdim(block_width),
+ ydim(block_height),
+ xsize(width),
+ ysize(height),
+ xblocks(width / xdim),
+ yblocks(height / ydim),
+ block_count(yblocks * xblocks),
+ bytes_per_block(bytes_per_block_),
+ buffer_size(block_count * bytes_per_block),
+ buffer(new uint8_t[buffer_size]) {
+ assert(width % xdim == 0);
+ assert(height % ydim == 0);
+ }
+
+ CompressedImage(CompressedImage&& other)
+ : xdim(other.xdim),
+ ydim(other.ydim),
+ xsize(other.xsize),
+ ysize(other.ysize),
+ xblocks(other.xblocks),
+ yblocks(other.yblocks),
+ block_count(other.block_count),
+ bytes_per_block(other.bytes_per_block),
+ buffer_size(other.buffer_size),
+ buffer(other.buffer) {
+ other.buffer = nullptr;
+ }
+
+ CompressedImage(const CompressedImage&) = delete;
+ CompressedImage& operator=(const CompressedImage&) = delete;
+
+ ~CompressedImage() { delete[] buffer; }
+
+ size_t xdim, ydim;
+ size_t xsize, ysize;
+ size_t xblocks, yblocks;
+
+ size_t block_count;
+
+ size_t bytes_per_block;
+ size_t buffer_size;
+ uint8_t* buffer;
+};
+
+void WriteASTCFile(const CompressedImage&, const char* file_path);
+
+#endif // IMAGE_COMPRESSED_H_
diff --git a/submodules/TelegramUI/third-party/astc/pybits/__pycache__/bise.cpython-37.pyc b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/bise.cpython-37.pyc
new file mode 100644
index 0000000000..0cb2864c49
Binary files /dev/null and b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/bise.cpython-37.pyc differ
diff --git a/submodules/TelegramUI/third-party/astc/pybits/__pycache__/bitset.cpython-37.pyc b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/bitset.cpython-37.pyc
new file mode 100644
index 0000000000..5fe429061d
Binary files /dev/null and b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/bitset.cpython-37.pyc differ
diff --git a/submodules/TelegramUI/third-party/astc/pybits/__pycache__/datasize.cpython-37.pyc b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/datasize.cpython-37.pyc
new file mode 100644
index 0000000000..97e9e5be04
Binary files /dev/null and b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/datasize.cpython-37.pyc differ
diff --git a/submodules/TelegramUI/third-party/astc/pybits/__pycache__/endpointmodes.cpython-37.pyc b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/endpointmodes.cpython-37.pyc
new file mode 100644
index 0000000000..5e22d61247
Binary files /dev/null and b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/endpointmodes.cpython-37.pyc differ
diff --git a/submodules/TelegramUI/third-party/astc/pybits/__pycache__/partitions.cpython-37.pyc b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/partitions.cpython-37.pyc
new file mode 100644
index 0000000000..188489db4e
Binary files /dev/null and b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/partitions.cpython-37.pyc differ
diff --git a/submodules/TelegramUI/third-party/astc/pybits/__pycache__/quantize.cpython-37.pyc b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/quantize.cpython-37.pyc
new file mode 100644
index 0000000000..03f32f5a75
Binary files /dev/null and b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/quantize.cpython-37.pyc differ
diff --git a/submodules/TelegramUI/third-party/astc/pybits/__pycache__/range.cpython-37.pyc b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/range.cpython-37.pyc
new file mode 100644
index 0000000000..cae04e54a2
Binary files /dev/null and b/submodules/TelegramUI/third-party/astc/pybits/__pycache__/range.cpython-37.pyc differ
diff --git a/submodules/TelegramUI/third-party/astc/pybits/bise.py b/submodules/TelegramUI/third-party/astc/pybits/bise.py
new file mode 100644
index 0000000000..c20237575c
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/pybits/bise.py
@@ -0,0 +1,229 @@
+from bitset import bitset
+from range import *
+import math
+
+# Define the number of trits, quints and bits used for an encoded range, this
+# table is indexed by N-1 where N is the number of elements in a range.
+TRITS_QUINTS_BITS_TABLE = \
+ [
+ (0, 0, 1), # RANGE_2
+ (1, 0, 0), # RANGE_3
+ (0, 0, 2), # RANGE_4
+ (0, 1, 0), # RANGE_5
+ (1, 0, 1), # RANGE_6
+ (0, 0, 3), # RANGE_8
+ (0, 1, 1), # RANGE_10
+ (1, 0, 2), # RANGE_12
+ (0, 0, 4), # RANGE_16
+ (0, 1, 2), # RANGE_20
+ (1, 0, 3), # RANGE_24
+ (0, 0, 5), # RANGE_32
+ (0, 1, 3), # RANGE_40
+ (1, 0, 4), # RANGE_48
+ (0, 0, 6), # RANGE_64
+ (0, 1, 4), # RANGE_80
+ (1, 0, 5), # RANGE_96
+ (0, 0, 7), # RANGE_128
+ (0, 1, 5), # RANGE_160
+ (1, 0, 6), # RANGE_192
+ (0, 0, 8) # RANGE_256
+ ]
+
+def bits_bise_bitcount(items, bits):
+ """
+ Compute the number of bits needed for regular binary encoding.
+ """
+
+ assert items > 0 and bits > 0
+ return items * bits
+
+def trits_bise_bitcount(items, bits):
+ """
+ Compute the number of bits needed for trit-based encoding.
+ """
+
+ assert items > 0 and bits >= 0
+ #return math.ceil((8.0 + 5.0*bits) * items / 5.0)
+ return math.ceil(8.0*items / 5.0 + bits*items)
+
+def quints_bise_bitcount(items, bits):
+ """
+ Compute the number of bits needed for quint-based encoding.
+ """
+
+ assert items > 0 and bits >= 0
+ #return math.ceil((7.0 + 3.0*bits) * items / 3.0)
+ return math.ceil(7.0*items / 3.0 + bits*items)
+
+def compute_bise_bitcount(items, quant):
+ """
+ Compute the number of bits needed for the BISE stream.
+ """
+ assert type(items) is int
+ assert type(quant) is int
+ assert items > 0
+ assert quant >= RANGE_2 and quant <= RANGE_256
+
+ trits, quints, bits = TRITS_QUINTS_BITS_TABLE[quant]
+
+ if trits == 0 and quints == 0:
+ return bits_bise_bitcount(items, bits)
+ elif trits != 0:
+ return trits_bise_bitcount(items, bits)
+ elif quints != 0:
+ return quints_bise_bitcount(items, bits)
+ else:
+ assert False
+
+def last_index(lst, a):
+ last = -1
+ for i in range(len(lst)):
+ if a == lst[i]:
+ last = i
+ if last == -1:
+ raise ValueError("%s is not in the list" % repr(a))
+ return last
+
+# From ASTC specification, decode the a encoded set of 5 trits.
+def decode_trits(T):
+ assert isinstance(T, bitset)
+ assert T.size() == 8
+
+ t4 = -1
+ t3 = -1
+ t2 = -1
+ t1 = -1
+
+ C = bitset(5, 0)
+ if T.substr(4, 2) == bitset(3, 0b111):
+ C.set(4, T.get(7))
+ C.set(3, T.get(6))
+ C.set(2, T.get(5))
+ C.set(1, T.get(1))
+ C.set(0, T.get(0))
+ t4 = 2
+ t3 = 2
+ else:
+ C = T.substr(4, 0)
+ if T.substr(6, 5) == bitset(2, 0b11):
+ t4 = 2
+ t3 = T.get(7)
+ else:
+ t4 = T.get(7)
+ t3 = T.substr(6, 5).number()
+
+ if C.substr(1, 0) == bitset(2, 0b11):
+ t2 = 2
+ t1 = C.get(4)
+ t0 = bitset.from_args(C.get(3), C.get(2) & (not C.get(3))).number()
+ elif C.substr(3, 2) == bitset(2, 0b11):
+ t2 = 2
+ t1 = 2
+ t0 = C.substr(1, 0).number()
+ else:
+ t2 = C.get(4)
+ t1 = C.substr(3, 2).number()
+ t0 = bitset.from_args(C.get(1), C.get(0) & (not C.get(1))).number()
+
+ assert t4 >= 0 and t4 <= 2, t4
+ assert t3 >= 0 and t3 <= 2, t3
+ assert t2 >= 0 and t2 <= 2, t2
+ assert t1 >= 0 and t1 <= 2, t1
+ assert t0 >= 0 and t0 <= 2, t0
+
+ return (t0, t1, t2, t3, t4)
+
+# From ASTC specification, decode a encoded set of 3 quints.
+def decode_quints(Q):
+ assert Q.size() == 7
+
+ q2 = -1
+ q1 = -1
+ q0 = -1
+
+ if Q.substr(2, 1) == bitset(2, 0b11) and Q.substr(6, 5) == bitset(2, 0b00):
+ q2 = bitset.from_args(
+ Q.get(0), Q.get(4) & (not Q.get(0)), Q.get(3) & (not Q.get(0))).number()
+ q1 = 4
+ q0 = 4
+ else:
+ C = None
+ if Q.substr(2, 1) == bitset(2, 0b11):
+ q2 = 4
+ C = bitset.from_args(
+ Q.get(4),
+ Q.get(3),
+ not Q.get(6),
+ not Q.get(5),
+ Q.get(0))
+ else:
+ q2 = Q.substr(6, 5).number()
+ C = Q.substr(4, 0)
+
+ if C.substr(2, 0) == bitset(3, 0b101):
+ q1 = 4
+ q0 = C.substr(4, 3).number()
+ else:
+ q1 = C.substr(4, 3).number()
+ q0 = C.substr(2, 0).number()
+
+ assert q2 >= 0 and q2 <= 4, q2
+ assert q1 >= 0 and q1 <= 4, q1
+ assert q0 >= 0 and q0 <= 4, q0
+
+ return (q0, q1, q2)
+
+# Generate table for trit decoding for all possible 8 bit numbers, [0, 255].
+def trits_from_integer_table():
+ return [decode_trits(bitset(8, i)) for i in range(256)]
+
+# Generate table for trit decoding by brute force searching the encoding table.
+# Exhaustive search solution works because the search space is small.
+def integer_from_trits_table(trits):
+ return \
+ [
+ [
+ [
+ [
+ [
+ last_index(trits, (t0, t1, t2, t3, t4))
+ for t0 in range(3)
+ ]
+ for t1 in range(3)
+ ]
+ for t2 in range(3)
+ ]
+ for t3 in range(3)
+ ]
+ for t4 in range(3)
+ ]
+
+# Generate table for quint encoding for all possible 7 bit numbers, [0, 127].
+def quints_from_integer_table():
+ return [decode_quints(bitset(7, i)) for i in range(128)]
+
+# Generate table for quint decoding by brute force searching the encoding
+# table. Exhaustive search solution works because the search space is small.
+def integer_from_quints_table(quints):
+ return \
+ [
+ [
+ [
+ last_index(quints, (q0, q1, q2))
+ for q0 in range(5)
+ ]
+ for q1 in range(5)
+ ]
+ for q2 in range(5)
+ ]
+
+if __name__ == "__main__":
+ trits_from_integer = trits_from_integer_table()
+ integer_from_trits = integer_from_trits_table(trits_from_integer)
+ quints_from_integer = quints_from_integer_table()
+ integer_from_quints = integer_from_quints_table(quints_from_integer)
+
+ print(trits_from_integer)
+ print(integer_from_trits)
+ print(quints_from_integer)
+ print(integer_from_quints)
diff --git a/submodules/TelegramUI/third-party/astc/pybits/bitset.py b/submodules/TelegramUI/third-party/astc/pybits/bitset.py
new file mode 100644
index 0000000000..e907e80ea4
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/pybits/bitset.py
@@ -0,0 +1,77 @@
+# A bitset represents a fixed number of bits and have some helper methods for
+# manipulating them.
+class bitset:
+ def __init__(self, n, val):
+ assert n > 0
+ assert val < pow(2, n) # number should fit within the available bits
+
+ self.n = n
+ self.data = val
+
+ def size(self):
+ return self.n
+
+ def get(self, i):
+ assert i >= 0 and i < self.n
+ return (self.data >> i) & 1
+
+ def get_msb(self):
+ return self.get(self.n-1)
+
+ def get_lsb(self):
+ return self.get(0)
+
+ def set(self, i, x):
+ assert isinstance(x, bool) or isinstance(x, int)
+ assert i >= 0 and i < self.n
+ self.data ^= (-x ^ self.data) & (1 << i)
+
+ def substr(self, msb, lsb):
+ assert msb >= lsb
+ assert lsb >= 0
+ assert msb < self.n
+
+ count = msb - lsb + 1
+ newdata = self.data >> lsb & ((1 << count) - 1)
+ return bitset(count, newdata)
+
+ def number(self):
+ return self.data
+
+ def bits(self):
+ return [self.get(i) for i in range(self.n-1, -1, -1)]
+
+ def __eq__(self, other):
+ assert isinstance(other, bitset)
+
+ return self.n == other.n and self.data == other.data
+
+ def __str__(self):
+ return ''.join('1' if x else '0' for x in self.bits())
+
+ def __repr__(self):
+ return "bitset(%d, 0b%s)" % (self.n, self.__str__())
+
+ @staticmethod
+ def from_list(lst):
+ num = 0
+ n = len(lst) - 1
+ for x in lst:
+ assert x >= 0 and x <= 1
+ num = num | (x << n)
+ n = n - 1
+
+ return bitset(len(lst), num)
+
+ @staticmethod
+ def from_args(*args):
+ return bitset.from_list(list(args))
+
+ @staticmethod
+ def join(a, b):
+ assert isinstance(a, bitset)
+ assert isinstance(b, bitset)
+
+ count = a.size()+b.size()
+ number = b.number() | (a.number() << b.size())
+ return bitset(count, number)
diff --git a/submodules/TelegramUI/third-party/astc/pybits/codegen.py b/submodules/TelegramUI/third-party/astc/pybits/codegen.py
new file mode 100644
index 0000000000..eb44320157
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/pybits/codegen.py
@@ -0,0 +1,154 @@
+#!/usr/bin/env python
+
+import bise
+import datasize
+import partitions
+import quantize
+import sys
+
+
+def safe_head(lst, default):
+ try:
+ return lst[0]
+ except:
+ return default
+
+
+def compute_dimensions(array):
+ if isinstance(array, list):
+ yield len(array)
+ yield from compute_dimensions(array[-1])
+
+
+def pretty_array(element, fmt):
+ if isinstance(element, int):
+ return fmt % element
+ elif isinstance(element, tuple) or isinstance(element, list):
+ return pretty_array(iter(element), fmt)
+ else:
+ first = next(element)
+
+ out = "{"
+ out += pretty_array(first, fmt)
+ for x in element:
+ out += ","
+ out += pretty_array(x, fmt)
+ out += "}"
+ return out
+
+
+def pretty_dimensions(dimensions):
+ out = ""
+ for dimension in dimensions:
+ out += "[" + str(dimension) + "]"
+ return out
+
+header_template = """#ifndef {guard}
+#define {guard}
+
+{content}
+
+#endif
+"""
+
+array_template = "const {type} {name}{dimensions} = {array};"
+
+
+def build_header(guard, content):
+ return header_template.format(guard=guard, content=content)
+
+
+def build_array(type, name, array):
+ return array_template.format(
+ name=name,
+ type=type,
+ dimensions=pretty_dimensions(compute_dimensions(array)),
+ array=pretty_array(array, "%d"),
+ )
+
+
+def print_bise_tables(file):
+ trits_from_integer = bise.trits_from_integer_table()
+ integer_from_trits = bise.integer_from_trits_table(trits_from_integer)
+ quints_from_integer = bise.quints_from_integer_table()
+ integer_from_quints = bise.integer_from_quints_table(quints_from_integer)
+
+ file.write(build_header(
+ "ASTC_TABLES_INTEGER_SEQUENCE_ENCODING_H_",
+ build_array("uint8_t", "integer_from_trits", integer_from_trits) +
+ '\n' +
+ build_array("uint8_t", "integer_from_quints", integer_from_quints)
+ ))
+
+
+def print_partitions_tables(file):
+ table = list(partitions.compute_partitioning_table(
+ partition_count=2,
+ block_width=4,
+ block_height=4))
+ lookup_table = partitions.compute_partitioning_lookup_table(table)
+
+ file.write(build_header(
+ "ASTC_TABLES_PARTITIONS_H_",
+ build_array(
+ "uint16_t",
+ "partition_2_4x4_mask_table",
+ [part.partition_mask for part in table]
+ ) + '\n' +
+ build_array(
+ "int16_t",
+ "partition_2_4x4_lookup_table",
+ [safe_head(parts, -1) for parts in lookup_table]
+ )
+ ))
+
+
+def print_data_size_table(file, block_width, block_height):
+ table = datasize.color_endpoint_range_table(block_width, block_height)
+ file.write(build_header(
+ "ASTC_TABLES_DATA_SIZE_H_",
+ build_array("int8_t", "color_endpoint_range_table", table)
+ ))
+
+
+def print_color_quantization_tables(file):
+ unquantize_table = quantize.color_unquantize_table()
+ quantize_table = quantize.color_quantize_table(unquantize_table)
+
+ file.write(build_header(
+ "ASTC_TABLES_COLOR_QUANTIZATION_H_",
+ build_array("uint8_t", "color_unquantize_table", unquantize_table) +
+ '\n' +
+ build_array("uint8_t", "color_quantize_table", quantize_table)
+ ))
+
+
+def print_usage(prog):
+ sys.stderr.write(
+ ("Usage: %s COMMAND\n"
+ " Commands:\n"
+ " bise\n"
+ " partitions\n"
+ " datasize\n"
+ " quantize\n") % prog)
+
+
+def main(kind, path):
+ file = open(path, 'w') if path != '-' else sys.stdout
+ if kind == "bise":
+ print_bise_tables(file)
+ elif kind == "partitions":
+ print_partitions_tables(file)
+ elif kind == "datasize":
+ print_data_size_table(file, 4, 4)
+ elif kind == "quantize":
+ print_color_quantization_tables(file)
+ else:
+ sys.stderr.write("Error: unknown mode {}\n".format(kind))
+ sys.exit(1)
+
+
+if len(sys.argv) != 3:
+ print_usage(sys.argv[0])
+else:
+ main(sys.argv[1], sys.argv[2])
diff --git a/submodules/TelegramUI/third-party/astc/pybits/datainfo.py b/submodules/TelegramUI/third-party/astc/pybits/datainfo.py
new file mode 100644
index 0000000000..e3b41f6f0e
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/pybits/datainfo.py
@@ -0,0 +1,46 @@
+from bise import compute_bise_bitcount
+from datasize import data_size, cem_values_count, color_endpoint_range
+from range import RANGE_CARDINALITY_TABLE
+import sys
+
+
+def print_data_size_info(block_width, block_height, cem, partitions,
+ weight_range):
+ config_bits, weight_bits, remaining_bits = data_size(
+ partitions=partitions,
+ single_cem=True,
+ block_width=block_width,
+ block_height=block_height,
+ block_depth=1,
+ dual_plane=False,
+ weight_range=weight_range
+ )
+
+ ce_values = cem_values_count(cem, partitions)
+ ce_range = color_endpoint_range(cem, remaining_bits, partitions)
+ cem_bits = compute_bise_bitcount(ce_values, ce_range)
+
+ print("block width:", block_width)
+ print("block height:", block_height)
+ print("config bits:", config_bits)
+ print("weight count:", block_width * block_height)
+ print("weight range:", RANGE_CARDINALITY_TABLE[weight_range])
+ print("weight bits:", weight_bits)
+ print("remaining bits:", remaining_bits)
+ print("color endpoint values:", ce_values)
+ print("color endpoint range:", RANGE_CARDINALITY_TABLE[ce_range])
+ print("color endpoint bits:", cem_bits)
+ print("unused bits:", remaining_bits - cem_bits)
+
+
+if len(sys.argv) != 6:
+ sys.stderr.write(
+ "Usage: {} BLOCKWIDTH BLOCKHEIGHT CEM PARTITIONS WEIGHTRANGE\n".format(
+ sys.argv[0]))
+else:
+ print_data_size_info(
+ int(sys.argv[1]),
+ int(sys.argv[2]),
+ int(sys.argv[3]),
+ int(sys.argv[4]),
+ int(sys.argv[5]))
diff --git a/submodules/TelegramUI/third-party/astc/pybits/datasize.py b/submodules/TelegramUI/third-party/astc/pybits/datasize.py
new file mode 100644
index 0000000000..53000b026c
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/pybits/datasize.py
@@ -0,0 +1,137 @@
+from bise import compute_bise_bitcount
+from endpointmodes import *
+from range import *
+
+# Count the number of set bits in a number.
+def count_bits(x):
+ assert type(x) is int
+ assert x >= 0 # negative integers are undefined behaviour
+
+ count = 0
+ while x != 0:
+ if x & 1:
+ count = count + 1
+ x = x >> 1
+
+ return count
+
+# Calculate the number of bits used for config data, texel weight data and
+# color endpoint data for an ASTC block.
+def data_size(
+ partitions,
+ single_cem,
+ block_width,
+ block_height,
+ block_depth,
+ dual_plane,
+ weight_range):
+
+ assert partitions >= 1 and partitions <= 4
+ assert isinstance(single_cem, bool), single_cem
+ assert block_width >= 1 and block_width <= 12
+ assert block_height >= 1 and block_height <= 12
+ assert block_depth >= 1 and block_depth <= 12
+ assert isinstance(dual_plane, bool)
+ assert weight_range < WEIGHT_RANGE_MAX
+
+ if partitions == 4 and dual_plane:
+ raise ValueError("illegal encoding with 4 partitions and dual planes")
+
+ config_bits = 17
+ if partitions > 1:
+ if single_cem:
+ config_bits = 29
+ else:
+ config_bits = 24 + 3 * partitions
+
+ weights = block_width * block_height * block_depth
+
+ if weights > 64:
+ raise ValueError("illegal encoding with {} (> 64) weights".format(weights))
+
+ if dual_plane:
+ config_bits += 2
+ weights *= 2
+
+ weight_bits = compute_bise_bitcount(weights, weight_range)
+
+ if weight_bits < 24:
+ raise ValueError("illegal encoding with {} (< 24) weight bits".format(weight_bits))
+
+ if weight_bits > 96:
+ raise ValueError("illegal encoding with {} (> 96) weight bits".format(weight_bits))
+
+ remaining_bits = 128 - config_bits - weight_bits
+
+ return config_bits, weight_bits, remaining_bits
+
+# Define the class for every color endpoint mode. Used to derive the range for
+# color endpoint encoding.
+CEM_VALUE_COUNT_TABLE = \
+ [
+ 2, 2, 2, 2,
+ 4, 4, 4, 4,
+ 6, 6, 6, 6,
+ 8, 8, 8, 8
+ ]
+
+# Count the number of encoded color endpoint values we are storing.
+def cem_values_count(cem, partitions):
+ assert cem < CEM_MAX
+
+ # The ASTC specification derives this count from the CEM class and a value
+ # they call extra_CEM_bits. I do not understand what extra_CEM_bits is
+ # referring to, I use the CEM_VALUE_COUNT_TABLE instead and assume that
+ # there is one set of endpoint values for each partition.
+ return CEM_VALUE_COUNT_TABLE[cem] * partitions
+
+# Calculate the range for color endpoint encoding for a given number of
+# remaining bits.
+def color_endpoint_range(cem, remaining_bits, partitions):
+ assert cem < CEM_MAX
+
+ cem_values = cem_values_count(cem, partitions)
+
+ if cem_values > 18:
+ raise ValueError("illegal encoding with {} (> 18) integers for color endpoints".format(cem_values))
+
+ # Brute-force search for the biggest range which fits in the remaining
+ # bits.
+ for ce_range in reversed(range(RANGE_MAX)):
+ cem_bits = compute_bise_bitcount(cem_values, ce_range)
+
+ if cem_bits <= remaining_bits:
+ return ce_range
+
+ raise ValueError("illegal encoding with not enough bits for cem {}".format(remaining_bits))
+
+def color_endpoint_range_table(block_width, block_height):
+ def handle_except(partitions, cem, weight_range):
+ assert weight_range < WEIGHT_RANGE_MAX
+ try:
+ _, _, remaining_bits = data_size(
+ partitions = partitions,
+ single_cem = True,
+ block_width = block_width,
+ block_height = block_height,
+ block_depth = 1,
+ dual_plane = False,
+ weight_range = weight_range)
+ return color_endpoint_range(cem, remaining_bits, partitions)
+ except ValueError:
+ return -1
+
+ return \
+ [
+ [
+ [
+ handle_except(partitions, cem, weight_range)
+ for cem in range(CEM_MAX)
+ ]
+ for weight_range in range(WEIGHT_RANGE_MAX)
+ ]
+ for partitions in [1, 2]
+ ]
+
+if __name__ == "__main__":
+ print(color_endpoint_range_table(4, 4))
diff --git a/submodules/TelegramUI/third-party/astc/pybits/endpointmodes.py b/submodules/TelegramUI/third-party/astc/pybits/endpointmodes.py
new file mode 100644
index 0000000000..6582cb36da
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/pybits/endpointmodes.py
@@ -0,0 +1,17 @@
+CEM_LDR_LUMINANCE_DIRECT = 0
+CEM_LDR_LUMINANCE_BASE_OFFSET = 1
+CEM_HDR_LUMINANCE_LARGE_RANGE = 2
+CEM_HDR_LUMINANCE_SMALL_RANGE = 3
+CEM_LDR_LUMINANCE_ALPHA_DIRECT = 4
+CEM_LDR_LUMINANCE_ALPHA_BASE_OFFSET = 5
+CEM_LDR_RGB_BASE_SCALE = 6
+CEM_HDR_RGB_BASE_SCALE = 7
+CEM_LDR_RGB_DIRECT = 8
+CEM_LDR_RGB_BASE_OFFSET = 9
+CEM_LDR_RGB_BASE_SCALE_PLUS_TWO_ALPHA = 10
+CEM_HDR_RGB = 11
+CEM_LDR_RGBA_DIRECT = 12
+CEM_LDR_RGBA_BASE_OFFSET = 13
+CEM_HDR_RGB_LDR_ALPHA = 14
+CEM_HDR_RGB_HDR_ALPHA = 15
+CEM_MAX = 16
diff --git a/submodules/TelegramUI/third-party/astc/pybits/partition-images.py b/submodules/TelegramUI/third-party/astc/pybits/partition-images.py
new file mode 100644
index 0000000000..a98cea8882
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/pybits/partition-images.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python
+
+from partitions import compute_partitioning_table
+import matplotlib.image as mpimg
+import numpy as np
+
+def masks_to_image(block_width, block_height, masks):
+ colors = [ (1, 0, 0), (0, 0, 1), (0, 1, 0), (1, 1, 1) ]
+
+ xblocks = 32
+ yblocks = 32
+
+ img_width = xblocks * (block_width + 1) + 1
+ img_height = yblocks * (block_height + 1) + 1
+
+ pixels = np.zeros((img_height, img_width, 3))
+
+ i = 0
+ for mask in masks:
+ xblock = i % xblocks
+ yblock = i // xblocks
+
+ xtopleft = xblock * (block_width + 1) + 1
+ ytopleft = yblock * (block_height + 1) + 1
+
+ j = 0
+ for partition in mask:
+ x = j % block_width
+ y = j // block_width
+ pixels[ytopleft+y, xtopleft+x] = colors[partition]
+ j = j + 1
+
+ i = i + 1
+
+ assert i == 1024
+
+ return pixels
+
+def write_image(partition_count, block_width, block_height):
+ table = compute_partitioning_table(
+ partition_count = partition_count,
+ block_width = block_width,
+ block_height = block_height)
+
+ img = masks_to_image(
+ block_width = block_width,
+ block_height = block_height,
+ masks = table)
+
+ path = "/tmp/%dx%d-blocks-%d-partitions.png" % (block_width, block_height, partition_count)
+ mpimg.imsave(path, img)
+
+if __name__ == "__main__":
+ write_image(2, 4, 4)
+ write_image(3, 4, 4)
+ write_image(4, 4, 4)
+ write_image(4, 6, 12)
+ write_image(4, 12, 6)
+ write_image(4, 12, 12)
diff --git a/submodules/TelegramUI/third-party/astc/pybits/partitions.py b/submodules/TelegramUI/third-party/astc/pybits/partitions.py
new file mode 100644
index 0000000000..8aeb3f99cb
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/pybits/partitions.py
@@ -0,0 +1,289 @@
+def square(x):
+ return x*x
+
+def shiftr32(x, y):
+ return (x >> y) & (2**32-1)
+
+def shiftl32(x, y):
+ return (x << y) & (2**32-1)
+
+def xor32(x, y):
+ return x ^ y
+
+def add32(x, y):
+ return (x + y) % 2**32
+
+def sub32(x, y):
+ return (x - y) % 2**32
+
+def hash52(p):
+ p = xor32(p, shiftr32(p, 15))
+ p = sub32(p, shiftl32(p, 17))
+ p = add32(p, shiftl32(p, 7))
+ p = add32(p, shiftl32(p, 4))
+ p = xor32(p, shiftr32(p, 5))
+ p = add32(p, shiftl32(p, 16))
+ p = xor32(p, shiftr32(p, 7))
+ p = xor32(p, shiftr32(p, 3))
+ p = xor32(p, shiftl32(p, 6))
+ p = xor32(p, shiftr32(p, 17))
+
+ assert p >= 0 and p < 2**32
+
+ return p
+
+# Select partion index as defined by ASTC specification.
+def select_partition(seed, x, y, z, partition_count, small_block):
+ assert seed >= 0 and seed < 2**10
+ assert partition_count >= 1 and partition_count <= 4
+
+ if small_block:
+ x = x << 1
+ y = y << 1
+ z = z << 1
+
+ seed += (partition_count - 1) * 1024
+
+ rnum = hash52(seed)
+
+ seed1 = square(rnum & 0xF)
+ seed2 = square((rnum >> 4) & 0xF)
+ seed3 = square((rnum >> 8) & 0xF)
+ seed4 = square((rnum >> 12) & 0xF)
+ seed5 = square((rnum >> 16) & 0xF)
+ seed6 = square((rnum >> 20) & 0xF)
+ seed7 = square((rnum >> 24) & 0xF)
+ seed8 = square((rnum >> 28) & 0xF)
+ seed9 = square((rnum >> 18) & 0xF)
+ seed10 = square((rnum >> 22) & 0xF)
+ seed11 = square((rnum >> 26) & 0xF)
+ seed12 = square(((rnum >> 30) | (rnum << 2)) & 0xF)
+
+ sh1 = 4 if seed & 2 else 5
+ sh2 = 6 if partition_count == 3 else 5
+
+ if not (seed & 1):
+ sh1, sh2 = (sh2, sh1)
+
+ sh3 = sh1 if seed & 0x10 else sh2
+
+ seed1 = seed1 >> sh1
+ seed2 = seed2 >> sh2
+ seed3 = seed3 >> sh1
+ seed4 = seed4 >> sh2
+ seed5 = seed5 >> sh1
+ seed6 = seed6 >> sh2
+ seed7 = seed7 >> sh1
+ seed8 = seed8 >> sh2
+ seed9 = seed9 >> sh3
+ seed10 = seed10 >> sh3
+ seed11 = seed11 >> sh3
+ seed12 = seed12 >> sh3
+
+ a = seed1*x + seed2*y + seed11*z + (rnum >> 14)
+ b = seed3*x + seed4*y + seed12*z + (rnum >> 10)
+ c = seed5*x + seed6*y + seed9*z + (rnum >> 6)
+ d = seed7*x + seed8*y + seed10*z + (rnum >> 2)
+
+ a = a & 0x3F
+ b = b & 0x3F if partition_count > 1 else 0
+ c = c & 0x3F if partition_count > 2 else 0
+ d = d & 0x3F if partition_count > 3 else 0
+
+ if a >= b and a >= c and a >= d:
+ return 0
+ elif b >= c and b >= d:
+ return 1
+ elif c >= d:
+ return 2
+ else:
+ return 3
+
+# Convert a list of digits to a number with a specific base.
+def digits_to_num(base, lst):
+ sum = 0
+ power = 0
+ for x in lst:
+ sum = sum + x * (base**power)
+ power = power + 1
+ return sum
+
+# Convert a number to a list of digits for a certain base.
+def num_to_digits(base, digits, num):
+ for x in range(0, digits):
+ yield num % base
+ num = num // base
+
+class partitioning:
+ bit_masks = [0x1, 0x1, 0x3, 0x3]
+ shift_counts = [1, 1, 2, 2]
+
+ def __init__(self, partition_count, block_width, block_height, partition_mask):
+ assert isinstance(partition_mask, int)
+ assert partition_count >= 1 and partition_count <= 4
+
+ self.block_width = block_width
+ self.block_height = block_height
+ self.texel_count = block_width * block_height
+ self.partition_count = partition_count
+ self.partition_mask = partition_mask
+
+ self.bit_mask = partitioning.bit_masks[partition_count-1]
+ self.shift_count = partitioning.shift_counts[partition_count-1]
+
+ def __eq__(self, other):
+ return \
+ self.partition_count == other.partition_count and \
+ self.block_width == other.block_width and \
+ self.block_height == other.block_height and \
+ self.partition_mask == other.partition_mask
+
+ def __iter__(self):
+ return num_to_digits(
+ self.partition_count,
+ self.texel_count,
+ self.partition_mask)
+
+ def __str__(self):
+ return "%#x" % self.partition_mask
+
+ def __repr__(self):
+ return "partitioning({}, {}, {}, [{}])".format(
+ self.partition_count,
+ self.block_width,
+ self.block_height,
+ ",".join((str(x) for x in self)))
+
+def invert(part):
+ assert isinstance(part, partitioning)
+ assert part.partition_count == 2
+
+ return partitioning(
+ part.partition_count,
+ part.block_width,
+ part.block_height,
+ part.partition_mask ^ (2**part.texel_count-1))
+
+def distance(a, b):
+ assert isinstance(a, partitioning)
+ assert isinstance(b, partitioning)
+ assert a.partition_count == b.partition_count
+ assert a.block_width == b.block_width
+ assert a.block_height == b.block_height
+
+ def cost(m, n):
+ return 0 if m == n else 1
+
+ return sum((cost(m, n) for (m, n) in zip(a, b)))
+
+# Create human readable format for a partition mask.
+def show_ascii(part):
+ assert isinstance(part, partitioning)
+
+ s = ""
+ i = 0
+ j = 0
+ for p in part:
+ s = s + str(p)
+ i = i + 1
+
+ if i == part.block_width and j < part.block_height-1:
+ s = s + "\n"
+ i = 0
+ j = j + 1
+
+ return s
+
+# Compute the partition bitmask for a given block size, partition count and
+# seed. The bitmask is a list of numbers in range [0, partition count-1]
+# starting in top left corner of the block in row major order.
+def compute_partitioning(partition_count, block_width, block_height, seed):
+ width_range = range(0, block_width)
+ height_range = range(0, block_height)
+
+ def f(x, y):
+ return select_partition(seed, x, y, 0, partition_count, True)
+
+ return partitioning(
+ partition_count,
+ block_width,
+ block_height,
+ digits_to_num(
+ partition_count,
+ (f(x, y) for y in height_range for x in width_range)))
+
+# Compute the table that maps partition seeds to partition block masks for a
+# given block size and partition count.
+def compute_partitioning_table(partition_count, block_width, block_height):
+ def f(seed):
+ return compute_partitioning(
+ partition_count = partition_count,
+ block_width = block_width,
+ block_height = block_height,
+ seed = seed)
+
+ return (f(seed) for seed in range(0, 2**10))
+
+# Compute the lookup table from a partition mask to a matching partition index.
+# Matching is done according to the edit distance between the partitioning and
+# all availible partitions.
+def compute_partitioning_lookup_table(table):
+ assert len(table) == 1024
+
+ partition_count = 2
+ block_width = 4
+ block_height = 4
+
+ for ideal in range(0, 2**16):
+ ideal_part = partitioning(
+ partition_count = partition_count,
+ block_width = block_width,
+ block_height = block_height,
+ partition_mask = ideal)
+ ideal_inverted_part = invert(ideal_part)
+
+ best_score = 100000
+ best_indices = []
+ for index, actual_part in enumerate(table):
+ score = min(
+ distance(ideal_part, actual_part),
+ distance(ideal_inverted_part, actual_part))
+ if score < 2:
+ if score == best_score:
+ best_indices.append(index)
+ elif score < best_score:
+ best_score = score
+ best_indices = [index]
+
+ yield best_indices
+
+def compute_partitioning_lookup_table_equality(table):
+ assert len(table) == 1024
+
+ partition_count = 2
+ block_width = 4
+ block_height = 4
+
+ for ideal in range(0, 2**16):
+ ideal_part = partitioning(
+ partition_count = partition_count,
+ block_width = block_width,
+ block_height = block_height,
+ partition_mask = ideal)
+ ideal_inverted_part = invert(ideal_part)
+
+ for index, actual_part in enumerate(table):
+ if ideal_part == actual_part or ideal_inverted_part == actual_part:
+ yield index
+
+ yield -1
+
+
+if __name__ == "__main__":
+ table = list(compute_partitioning_table(
+ partition_count=2,
+ block_width=4,
+ block_height=4))
+ print([list(part) for part in table])
+ lookup_table = compute_partitioning_lookup_table(table)
+ print(list(lookup_table))
diff --git a/submodules/TelegramUI/third-party/astc/pybits/quantize.py b/submodules/TelegramUI/third-party/astc/pybits/quantize.py
new file mode 100644
index 0000000000..97f57bc9ef
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/pybits/quantize.py
@@ -0,0 +1,123 @@
+from bitset import bitset
+from range import *
+
+def unquantize_color(i, quant):
+ assert i >= 0 and i < RANGE_CARDINALITY_TABLE[quant]
+ assert quant >= RANGE_2 and quant <= RANGE_256
+
+ def unquant(a, b, c, d):
+ """
+ This is the magic bit twiddling hack ARM uses in the ASTC decoder
+ specification to avoid full-width multipliers.
+
+ T = D * C + B;
+ T = T ^ A;
+ T = (A & 0x80) | (T >> 2);
+ """
+ return (a & 0x80) | (((d*c + b) ^ a) >> 2)
+
+ def bit_only(lst):
+ return bitset.from_list(lst).number()
+
+ def trit_quint(A, B, C, D):
+ return unquant(
+ bitset.from_list(A).number(),
+ bitset.from_list(B).number(),
+ C,
+ bitset.from_list(D).number())
+
+ bits = bitset(8, i)
+ a = bits.get(0)
+ b = bits.get(1)
+ c = bits.get(2)
+ d = bits.get(3)
+ e = bits.get(4)
+ f = bits.get(5)
+ g = bits.get(6)
+ h = bits.get(7)
+
+ if quant == RANGE_2:
+ return bit_only([a,a,a,a,a,a,a,a])
+ elif quant == RANGE_3:
+ return [0, 128, 255][i]
+ elif quant == RANGE_4:
+ return bit_only([b,a,b,a,b,a,b,a])
+ elif quant == RANGE_5:
+ return [0, 64, 128, 192, 255][i]
+ elif quant == RANGE_6:
+ return trit_quint([a,a,a,a,a,a,a,a,a], [0,0,0,0,0,0,0,0,0], 204, [c,b])
+ elif quant == RANGE_8:
+ return bit_only([c,b,a,c,b,a,c,b])
+ elif quant == RANGE_10:
+ return trit_quint([a,a,a,a,a,a,a,a,a], [0,0,0,0,0,0,0,0,0], 113, [d,c,b])
+ elif quant == RANGE_12:
+ return trit_quint([a,a,a,a,a,a,a,a,a], [b,0,0,0,b,0,b,b,0], 93, [d,c])
+ elif quant == RANGE_16:
+ return bit_only([d,c,b,a,d,c,b,a])
+ elif quant == RANGE_20:
+ return trit_quint([a,a,a,a,a,a,a,a,a], [b,0,0,0,0,b,b,0,0], 54, [e,d,c])
+ elif quant == RANGE_24:
+ return trit_quint([a,a,a,a,a,a,a,a,a], [c,b,0,0,0,c,b,c,b], 44, [e,d])
+ elif quant == RANGE_32:
+ return bit_only([e,d,c,b,a,e,d,c])
+ elif quant == RANGE_40:
+ return trit_quint([a,a,a,a,a,a,a,a,a], [c,b,0,0,0,0,c,b,c], 26, [f,e,d])
+ elif quant == RANGE_48:
+ return trit_quint([a,a,a,a,a,a,a,a,a], [d,c,b,0,0,0,d,c,b], 22, [f,e])
+ elif quant == RANGE_64:
+ return bit_only([f,e,d,c,b,a,f,e])
+ elif quant == RANGE_80:
+ return trit_quint([a,a,a,a,a,a,a,a,a], [d,c,b,0,0,0,0,d,c], 13, [g,f,e])
+ elif quant == RANGE_96:
+ return trit_quint([a,a,a,a,a,a,a,a,a], [e,d,c,b,0,0,0,e,d], 11, [g,f])
+ elif quant == RANGE_128:
+ return bit_only([g,f,e,d,c,b,a,g])
+ elif quant == RANGE_160:
+ return trit_quint([a,a,a,a,a,a,a,a,a], [e,d,c,b,0,0,0,0,e], 6, [h,g,f])
+ elif quant == RANGE_192:
+ return trit_quint([a,a,a,a,a,a,a,a,a], [f,e,d,c,b,0,0,0,f], 5, [h,g])
+ elif quant == RANGE_256:
+ return bit_only([h,g,f,e,d,c,b,a])
+
+ assert False
+
+def find_closest(unquantized, value):
+ assert isinstance(unquantized, list)
+ assert len(unquantized) > 0
+ assert isinstance(value, int)
+
+ class Item:
+ def __init__(self, index):
+ self.index = index
+ self.cost = abs(value - unquantized[self.index])
+
+ def __lt__(self, other):
+ return self.cost < other.cost
+
+ return min(map(Item, range(len(unquantized)))).index
+
+def color_quantize_table(color_unquantize_table):
+ return \
+ [
+ [
+ find_closest(color_unquantize_table[quant], i)
+ for i in range(256)
+ ]
+ for quant in range(RANGE_MAX)
+ ]
+
+def color_unquantize_table():
+ return \
+ [
+ [
+ unquantize_color(i, quant)
+ for i in range(RANGE_CARDINALITY_TABLE[quant])
+ ]
+ for quant in range(RANGE_MAX)
+ ]
+
+if __name__ == "__main__":
+ unquantize_table = color_unquantize_table()
+ quantize_table = color_quantize_table(unquantize_table)
+ print(unquantize_table)
+ print(quantize_table)
diff --git a/submodules/TelegramUI/third-party/astc/pybits/range.py b/submodules/TelegramUI/third-party/astc/pybits/range.py
new file mode 100644
index 0000000000..c3423e44f7
--- /dev/null
+++ b/submodules/TelegramUI/third-party/astc/pybits/range.py
@@ -0,0 +1,67 @@
+# There are 21 ranges (intervals in math lingo) for endpoint values.
+RANGE_2 = 0
+RANGE_3 = 1
+RANGE_4 = 2
+RANGE_5 = 3
+RANGE_6 = 4
+RANGE_8 = 5
+RANGE_10 = 6
+RANGE_12 = 7
+RANGE_16 = 8
+RANGE_20 = 9
+RANGE_24 = 10
+RANGE_32 = 11
+RANGE_40 = 12
+RANGE_48 = 13
+RANGE_64 = 14
+RANGE_80 = 15
+RANGE_96 = 16
+RANGE_128 = 17
+RANGE_160 = 18
+RANGE_192 = 19
+RANGE_256 = 20
+RANGE_MAX = 21
+
+# Table of each range's cardinality, that is the number of representable
+# integers in each range.
+RANGE_CARDINALITY_TABLE = \
+ [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6,
+ 8,
+ 10,
+ 12,
+ 16,
+ 20,
+ 24,
+ 32,
+ 40,
+ 48,
+ 64,
+ 80,
+ 96,
+ 128,
+ 160,
+ 192,
+ 256
+ ]
+
+# There are 12 ranges for texel weights.
+WEIGHT_RANGE_MAX = 12
+
+def range_lookup(count):
+ """
+ Find what quantization range an number of elements can be represented with.
+ """
+
+ assert type(count) is int
+ assert count >= 2 and count <= 256
+
+ for i in range(RANGE_MAX):
+ if count <= RANGE_CARDINALITY_TABLE[i]:
+ return i
+
+ assert False
diff --git a/submodules/TelegramUI/third-party/bc1/TextureCompression.cpp b/submodules/TelegramUI/third-party/bc1/TextureCompression.cpp
index 8aed619664..e99405dfd2 100644
--- a/submodules/TelegramUI/third-party/bc1/TextureCompression.cpp
+++ b/submodules/TelegramUI/third-party/bc1/TextureCompression.cpp
@@ -1,6 +1,11 @@
#import "TextureCompression.h"
+#import "astc.h"
+
void compressRGBAToBC1(uint8_t const * _Nonnull argb, int width, int height, uint8_t * _Nonnull bc1) {
+ BgraImage image(width, height, (uint8_t *)argb);
+ CompressedImage compressed(width, height, 4, 4, 16);
+ compress_astc(image, &compressed);
/*Javelin::RgbaBitmap bitmap(width, height);
uint8_t *data = (uint8_t *)bitmap.GetData();
for (int i = 0; i < width * height; i++) {