//go:build !no_gotd_slices
// +build !no_gotd_slices

// Code generated by gotdgen, DO NOT EDIT.

package tg

import (
	
	
	
	
	

	

	
	
	
	
)

// No-op definition for keeping imports.
var (
	_ = bin.Buffer{}
	_ = context.Background()
	_ = fmt.Stringer(nil)
	_ = strings.Builder{}
	_ = errors.Is
	_ = multierr.AppendInto
	_ = sort.Ints
	_ = tdp.Format
	_ = tgerr.Error{}
	_ = tdjson.Encoder{}
)

// UpdateClassArray is adapter for slice of UpdateClass.
type UpdateClassArray []UpdateClass

// Sort sorts slice of UpdateClass.
func ( UpdateClassArray) ( func(,  UpdateClass) bool) UpdateClassArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateClass.
func ( UpdateClassArray) ( func(,  UpdateClass) bool) UpdateClassArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateClass.
func ( UpdateClassArray) ( func( UpdateClass) bool) UpdateClassArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateClassArray) () ( UpdateClass,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateClassArray) () ( UpdateClass,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateClassArray) () ( UpdateClass,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateClass
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateClassArray) () ( UpdateClass,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// AsUpdateNewMessage returns copy with only UpdateNewMessage constructors.
func ( UpdateClassArray) () ( UpdateNewMessageArray) {
	for ,  := range  {
		,  := .(*UpdateNewMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateMessageID returns copy with only UpdateMessageID constructors.
func ( UpdateClassArray) () ( UpdateMessageIDArray) {
	for ,  := range  {
		,  := .(*UpdateMessageID)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateDeleteMessages returns copy with only UpdateDeleteMessages constructors.
func ( UpdateClassArray) () ( UpdateDeleteMessagesArray) {
	for ,  := range  {
		,  := .(*UpdateDeleteMessages)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateUserTyping returns copy with only UpdateUserTyping constructors.
func ( UpdateClassArray) () ( UpdateUserTypingArray) {
	for ,  := range  {
		,  := .(*UpdateUserTyping)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChatUserTyping returns copy with only UpdateChatUserTyping constructors.
func ( UpdateClassArray) () ( UpdateChatUserTypingArray) {
	for ,  := range  {
		,  := .(*UpdateChatUserTyping)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChatParticipants returns copy with only UpdateChatParticipants constructors.
func ( UpdateClassArray) () ( UpdateChatParticipantsArray) {
	for ,  := range  {
		,  := .(*UpdateChatParticipants)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateUserStatus returns copy with only UpdateUserStatus constructors.
func ( UpdateClassArray) () ( UpdateUserStatusArray) {
	for ,  := range  {
		,  := .(*UpdateUserStatus)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateUserName returns copy with only UpdateUserName constructors.
func ( UpdateClassArray) () ( UpdateUserNameArray) {
	for ,  := range  {
		,  := .(*UpdateUserName)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateNewAuthorization returns copy with only UpdateNewAuthorization constructors.
func ( UpdateClassArray) () ( UpdateNewAuthorizationArray) {
	for ,  := range  {
		,  := .(*UpdateNewAuthorization)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateNewEncryptedMessage returns copy with only UpdateNewEncryptedMessage constructors.
func ( UpdateClassArray) () ( UpdateNewEncryptedMessageArray) {
	for ,  := range  {
		,  := .(*UpdateNewEncryptedMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateEncryptedChatTyping returns copy with only UpdateEncryptedChatTyping constructors.
func ( UpdateClassArray) () ( UpdateEncryptedChatTypingArray) {
	for ,  := range  {
		,  := .(*UpdateEncryptedChatTyping)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateEncryption returns copy with only UpdateEncryption constructors.
func ( UpdateClassArray) () ( UpdateEncryptionArray) {
	for ,  := range  {
		,  := .(*UpdateEncryption)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateEncryptedMessagesRead returns copy with only UpdateEncryptedMessagesRead constructors.
func ( UpdateClassArray) () ( UpdateEncryptedMessagesReadArray) {
	for ,  := range  {
		,  := .(*UpdateEncryptedMessagesRead)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChatParticipantAdd returns copy with only UpdateChatParticipantAdd constructors.
func ( UpdateClassArray) () ( UpdateChatParticipantAddArray) {
	for ,  := range  {
		,  := .(*UpdateChatParticipantAdd)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChatParticipantDelete returns copy with only UpdateChatParticipantDelete constructors.
func ( UpdateClassArray) () ( UpdateChatParticipantDeleteArray) {
	for ,  := range  {
		,  := .(*UpdateChatParticipantDelete)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateDCOptions returns copy with only UpdateDCOptions constructors.
func ( UpdateClassArray) () ( UpdateDCOptionsArray) {
	for ,  := range  {
		,  := .(*UpdateDCOptions)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateNotifySettings returns copy with only UpdateNotifySettings constructors.
func ( UpdateClassArray) () ( UpdateNotifySettingsArray) {
	for ,  := range  {
		,  := .(*UpdateNotifySettings)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateServiceNotification returns copy with only UpdateServiceNotification constructors.
func ( UpdateClassArray) () ( UpdateServiceNotificationArray) {
	for ,  := range  {
		,  := .(*UpdateServiceNotification)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePrivacy returns copy with only UpdatePrivacy constructors.
func ( UpdateClassArray) () ( UpdatePrivacyArray) {
	for ,  := range  {
		,  := .(*UpdatePrivacy)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateUserPhone returns copy with only UpdateUserPhone constructors.
func ( UpdateClassArray) () ( UpdateUserPhoneArray) {
	for ,  := range  {
		,  := .(*UpdateUserPhone)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateReadHistoryInbox returns copy with only UpdateReadHistoryInbox constructors.
func ( UpdateClassArray) () ( UpdateReadHistoryInboxArray) {
	for ,  := range  {
		,  := .(*UpdateReadHistoryInbox)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateReadHistoryOutbox returns copy with only UpdateReadHistoryOutbox constructors.
func ( UpdateClassArray) () ( UpdateReadHistoryOutboxArray) {
	for ,  := range  {
		,  := .(*UpdateReadHistoryOutbox)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateWebPage returns copy with only UpdateWebPage constructors.
func ( UpdateClassArray) () ( UpdateWebPageArray) {
	for ,  := range  {
		,  := .(*UpdateWebPage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateReadMessagesContents returns copy with only UpdateReadMessagesContents constructors.
func ( UpdateClassArray) () ( UpdateReadMessagesContentsArray) {
	for ,  := range  {
		,  := .(*UpdateReadMessagesContents)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChannelTooLong returns copy with only UpdateChannelTooLong constructors.
func ( UpdateClassArray) () ( UpdateChannelTooLongArray) {
	for ,  := range  {
		,  := .(*UpdateChannelTooLong)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChannel returns copy with only UpdateChannel constructors.
func ( UpdateClassArray) () ( UpdateChannelArray) {
	for ,  := range  {
		,  := .(*UpdateChannel)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateNewChannelMessage returns copy with only UpdateNewChannelMessage constructors.
func ( UpdateClassArray) () ( UpdateNewChannelMessageArray) {
	for ,  := range  {
		,  := .(*UpdateNewChannelMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateReadChannelInbox returns copy with only UpdateReadChannelInbox constructors.
func ( UpdateClassArray) () ( UpdateReadChannelInboxArray) {
	for ,  := range  {
		,  := .(*UpdateReadChannelInbox)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateDeleteChannelMessages returns copy with only UpdateDeleteChannelMessages constructors.
func ( UpdateClassArray) () ( UpdateDeleteChannelMessagesArray) {
	for ,  := range  {
		,  := .(*UpdateDeleteChannelMessages)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChannelMessageViews returns copy with only UpdateChannelMessageViews constructors.
func ( UpdateClassArray) () ( UpdateChannelMessageViewsArray) {
	for ,  := range  {
		,  := .(*UpdateChannelMessageViews)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChatParticipantAdmin returns copy with only UpdateChatParticipantAdmin constructors.
func ( UpdateClassArray) () ( UpdateChatParticipantAdminArray) {
	for ,  := range  {
		,  := .(*UpdateChatParticipantAdmin)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateNewStickerSet returns copy with only UpdateNewStickerSet constructors.
func ( UpdateClassArray) () ( UpdateNewStickerSetArray) {
	for ,  := range  {
		,  := .(*UpdateNewStickerSet)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateStickerSetsOrder returns copy with only UpdateStickerSetsOrder constructors.
func ( UpdateClassArray) () ( UpdateStickerSetsOrderArray) {
	for ,  := range  {
		,  := .(*UpdateStickerSetsOrder)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateStickerSets returns copy with only UpdateStickerSets constructors.
func ( UpdateClassArray) () ( UpdateStickerSetsArray) {
	for ,  := range  {
		,  := .(*UpdateStickerSets)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotInlineQuery returns copy with only UpdateBotInlineQuery constructors.
func ( UpdateClassArray) () ( UpdateBotInlineQueryArray) {
	for ,  := range  {
		,  := .(*UpdateBotInlineQuery)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotInlineSend returns copy with only UpdateBotInlineSend constructors.
func ( UpdateClassArray) () ( UpdateBotInlineSendArray) {
	for ,  := range  {
		,  := .(*UpdateBotInlineSend)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateEditChannelMessage returns copy with only UpdateEditChannelMessage constructors.
func ( UpdateClassArray) () ( UpdateEditChannelMessageArray) {
	for ,  := range  {
		,  := .(*UpdateEditChannelMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotCallbackQuery returns copy with only UpdateBotCallbackQuery constructors.
func ( UpdateClassArray) () ( UpdateBotCallbackQueryArray) {
	for ,  := range  {
		,  := .(*UpdateBotCallbackQuery)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateEditMessage returns copy with only UpdateEditMessage constructors.
func ( UpdateClassArray) () ( UpdateEditMessageArray) {
	for ,  := range  {
		,  := .(*UpdateEditMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateInlineBotCallbackQuery returns copy with only UpdateInlineBotCallbackQuery constructors.
func ( UpdateClassArray) () ( UpdateInlineBotCallbackQueryArray) {
	for ,  := range  {
		,  := .(*UpdateInlineBotCallbackQuery)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateReadChannelOutbox returns copy with only UpdateReadChannelOutbox constructors.
func ( UpdateClassArray) () ( UpdateReadChannelOutboxArray) {
	for ,  := range  {
		,  := .(*UpdateReadChannelOutbox)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateDraftMessage returns copy with only UpdateDraftMessage constructors.
func ( UpdateClassArray) () ( UpdateDraftMessageArray) {
	for ,  := range  {
		,  := .(*UpdateDraftMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChannelWebPage returns copy with only UpdateChannelWebPage constructors.
func ( UpdateClassArray) () ( UpdateChannelWebPageArray) {
	for ,  := range  {
		,  := .(*UpdateChannelWebPage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateDialogPinned returns copy with only UpdateDialogPinned constructors.
func ( UpdateClassArray) () ( UpdateDialogPinnedArray) {
	for ,  := range  {
		,  := .(*UpdateDialogPinned)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePinnedDialogs returns copy with only UpdatePinnedDialogs constructors.
func ( UpdateClassArray) () ( UpdatePinnedDialogsArray) {
	for ,  := range  {
		,  := .(*UpdatePinnedDialogs)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotWebhookJSON returns copy with only UpdateBotWebhookJSON constructors.
func ( UpdateClassArray) () ( UpdateBotWebhookJSONArray) {
	for ,  := range  {
		,  := .(*UpdateBotWebhookJSON)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotWebhookJSONQuery returns copy with only UpdateBotWebhookJSONQuery constructors.
func ( UpdateClassArray) () ( UpdateBotWebhookJSONQueryArray) {
	for ,  := range  {
		,  := .(*UpdateBotWebhookJSONQuery)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotShippingQuery returns copy with only UpdateBotShippingQuery constructors.
func ( UpdateClassArray) () ( UpdateBotShippingQueryArray) {
	for ,  := range  {
		,  := .(*UpdateBotShippingQuery)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotPrecheckoutQuery returns copy with only UpdateBotPrecheckoutQuery constructors.
func ( UpdateClassArray) () ( UpdateBotPrecheckoutQueryArray) {
	for ,  := range  {
		,  := .(*UpdateBotPrecheckoutQuery)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePhoneCall returns copy with only UpdatePhoneCall constructors.
func ( UpdateClassArray) () ( UpdatePhoneCallArray) {
	for ,  := range  {
		,  := .(*UpdatePhoneCall)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateLangPackTooLong returns copy with only UpdateLangPackTooLong constructors.
func ( UpdateClassArray) () ( UpdateLangPackTooLongArray) {
	for ,  := range  {
		,  := .(*UpdateLangPackTooLong)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateLangPack returns copy with only UpdateLangPack constructors.
func ( UpdateClassArray) () ( UpdateLangPackArray) {
	for ,  := range  {
		,  := .(*UpdateLangPack)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChannelReadMessagesContents returns copy with only UpdateChannelReadMessagesContents constructors.
func ( UpdateClassArray) () ( UpdateChannelReadMessagesContentsArray) {
	for ,  := range  {
		,  := .(*UpdateChannelReadMessagesContents)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChannelAvailableMessages returns copy with only UpdateChannelAvailableMessages constructors.
func ( UpdateClassArray) () ( UpdateChannelAvailableMessagesArray) {
	for ,  := range  {
		,  := .(*UpdateChannelAvailableMessages)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateDialogUnreadMark returns copy with only UpdateDialogUnreadMark constructors.
func ( UpdateClassArray) () ( UpdateDialogUnreadMarkArray) {
	for ,  := range  {
		,  := .(*UpdateDialogUnreadMark)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateMessagePoll returns copy with only UpdateMessagePoll constructors.
func ( UpdateClassArray) () ( UpdateMessagePollArray) {
	for ,  := range  {
		,  := .(*UpdateMessagePoll)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChatDefaultBannedRights returns copy with only UpdateChatDefaultBannedRights constructors.
func ( UpdateClassArray) () ( UpdateChatDefaultBannedRightsArray) {
	for ,  := range  {
		,  := .(*UpdateChatDefaultBannedRights)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateFolderPeers returns copy with only UpdateFolderPeers constructors.
func ( UpdateClassArray) () ( UpdateFolderPeersArray) {
	for ,  := range  {
		,  := .(*UpdateFolderPeers)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePeerSettings returns copy with only UpdatePeerSettings constructors.
func ( UpdateClassArray) () ( UpdatePeerSettingsArray) {
	for ,  := range  {
		,  := .(*UpdatePeerSettings)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePeerLocated returns copy with only UpdatePeerLocated constructors.
func ( UpdateClassArray) () ( UpdatePeerLocatedArray) {
	for ,  := range  {
		,  := .(*UpdatePeerLocated)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateNewScheduledMessage returns copy with only UpdateNewScheduledMessage constructors.
func ( UpdateClassArray) () ( UpdateNewScheduledMessageArray) {
	for ,  := range  {
		,  := .(*UpdateNewScheduledMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateDeleteScheduledMessages returns copy with only UpdateDeleteScheduledMessages constructors.
func ( UpdateClassArray) () ( UpdateDeleteScheduledMessagesArray) {
	for ,  := range  {
		,  := .(*UpdateDeleteScheduledMessages)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateTheme returns copy with only UpdateTheme constructors.
func ( UpdateClassArray) () ( UpdateThemeArray) {
	for ,  := range  {
		,  := .(*UpdateTheme)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateGeoLiveViewed returns copy with only UpdateGeoLiveViewed constructors.
func ( UpdateClassArray) () ( UpdateGeoLiveViewedArray) {
	for ,  := range  {
		,  := .(*UpdateGeoLiveViewed)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateMessagePollVote returns copy with only UpdateMessagePollVote constructors.
func ( UpdateClassArray) () ( UpdateMessagePollVoteArray) {
	for ,  := range  {
		,  := .(*UpdateMessagePollVote)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateDialogFilter returns copy with only UpdateDialogFilter constructors.
func ( UpdateClassArray) () ( UpdateDialogFilterArray) {
	for ,  := range  {
		,  := .(*UpdateDialogFilter)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateDialogFilterOrder returns copy with only UpdateDialogFilterOrder constructors.
func ( UpdateClassArray) () ( UpdateDialogFilterOrderArray) {
	for ,  := range  {
		,  := .(*UpdateDialogFilterOrder)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePhoneCallSignalingData returns copy with only UpdatePhoneCallSignalingData constructors.
func ( UpdateClassArray) () ( UpdatePhoneCallSignalingDataArray) {
	for ,  := range  {
		,  := .(*UpdatePhoneCallSignalingData)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChannelMessageForwards returns copy with only UpdateChannelMessageForwards constructors.
func ( UpdateClassArray) () ( UpdateChannelMessageForwardsArray) {
	for ,  := range  {
		,  := .(*UpdateChannelMessageForwards)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateReadChannelDiscussionInbox returns copy with only UpdateReadChannelDiscussionInbox constructors.
func ( UpdateClassArray) () ( UpdateReadChannelDiscussionInboxArray) {
	for ,  := range  {
		,  := .(*UpdateReadChannelDiscussionInbox)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateReadChannelDiscussionOutbox returns copy with only UpdateReadChannelDiscussionOutbox constructors.
func ( UpdateClassArray) () ( UpdateReadChannelDiscussionOutboxArray) {
	for ,  := range  {
		,  := .(*UpdateReadChannelDiscussionOutbox)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePeerBlocked returns copy with only UpdatePeerBlocked constructors.
func ( UpdateClassArray) () ( UpdatePeerBlockedArray) {
	for ,  := range  {
		,  := .(*UpdatePeerBlocked)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChannelUserTyping returns copy with only UpdateChannelUserTyping constructors.
func ( UpdateClassArray) () ( UpdateChannelUserTypingArray) {
	for ,  := range  {
		,  := .(*UpdateChannelUserTyping)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePinnedMessages returns copy with only UpdatePinnedMessages constructors.
func ( UpdateClassArray) () ( UpdatePinnedMessagesArray) {
	for ,  := range  {
		,  := .(*UpdatePinnedMessages)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePinnedChannelMessages returns copy with only UpdatePinnedChannelMessages constructors.
func ( UpdateClassArray) () ( UpdatePinnedChannelMessagesArray) {
	for ,  := range  {
		,  := .(*UpdatePinnedChannelMessages)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChat returns copy with only UpdateChat constructors.
func ( UpdateClassArray) () ( UpdateChatArray) {
	for ,  := range  {
		,  := .(*UpdateChat)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateGroupCallParticipants returns copy with only UpdateGroupCallParticipants constructors.
func ( UpdateClassArray) () ( UpdateGroupCallParticipantsArray) {
	for ,  := range  {
		,  := .(*UpdateGroupCallParticipants)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateGroupCall returns copy with only UpdateGroupCall constructors.
func ( UpdateClassArray) () ( UpdateGroupCallArray) {
	for ,  := range  {
		,  := .(*UpdateGroupCall)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePeerHistoryTTL returns copy with only UpdatePeerHistoryTTL constructors.
func ( UpdateClassArray) () ( UpdatePeerHistoryTTLArray) {
	for ,  := range  {
		,  := .(*UpdatePeerHistoryTTL)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChatParticipant returns copy with only UpdateChatParticipant constructors.
func ( UpdateClassArray) () ( UpdateChatParticipantArray) {
	for ,  := range  {
		,  := .(*UpdateChatParticipant)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChannelParticipant returns copy with only UpdateChannelParticipant constructors.
func ( UpdateClassArray) () ( UpdateChannelParticipantArray) {
	for ,  := range  {
		,  := .(*UpdateChannelParticipant)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotStopped returns copy with only UpdateBotStopped constructors.
func ( UpdateClassArray) () ( UpdateBotStoppedArray) {
	for ,  := range  {
		,  := .(*UpdateBotStopped)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateGroupCallConnection returns copy with only UpdateGroupCallConnection constructors.
func ( UpdateClassArray) () ( UpdateGroupCallConnectionArray) {
	for ,  := range  {
		,  := .(*UpdateGroupCallConnection)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotCommands returns copy with only UpdateBotCommands constructors.
func ( UpdateClassArray) () ( UpdateBotCommandsArray) {
	for ,  := range  {
		,  := .(*UpdateBotCommands)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePendingJoinRequests returns copy with only UpdatePendingJoinRequests constructors.
func ( UpdateClassArray) () ( UpdatePendingJoinRequestsArray) {
	for ,  := range  {
		,  := .(*UpdatePendingJoinRequests)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotChatInviteRequester returns copy with only UpdateBotChatInviteRequester constructors.
func ( UpdateClassArray) () ( UpdateBotChatInviteRequesterArray) {
	for ,  := range  {
		,  := .(*UpdateBotChatInviteRequester)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateMessageReactions returns copy with only UpdateMessageReactions constructors.
func ( UpdateClassArray) () ( UpdateMessageReactionsArray) {
	for ,  := range  {
		,  := .(*UpdateMessageReactions)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateWebViewResultSent returns copy with only UpdateWebViewResultSent constructors.
func ( UpdateClassArray) () ( UpdateWebViewResultSentArray) {
	for ,  := range  {
		,  := .(*UpdateWebViewResultSent)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotMenuButton returns copy with only UpdateBotMenuButton constructors.
func ( UpdateClassArray) () ( UpdateBotMenuButtonArray) {
	for ,  := range  {
		,  := .(*UpdateBotMenuButton)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateTranscribedAudio returns copy with only UpdateTranscribedAudio constructors.
func ( UpdateClassArray) () ( UpdateTranscribedAudioArray) {
	for ,  := range  {
		,  := .(*UpdateTranscribedAudio)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateUserEmojiStatus returns copy with only UpdateUserEmojiStatus constructors.
func ( UpdateClassArray) () ( UpdateUserEmojiStatusArray) {
	for ,  := range  {
		,  := .(*UpdateUserEmojiStatus)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateMoveStickerSetToTop returns copy with only UpdateMoveStickerSetToTop constructors.
func ( UpdateClassArray) () ( UpdateMoveStickerSetToTopArray) {
	for ,  := range  {
		,  := .(*UpdateMoveStickerSetToTop)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateMessageExtendedMedia returns copy with only UpdateMessageExtendedMedia constructors.
func ( UpdateClassArray) () ( UpdateMessageExtendedMediaArray) {
	for ,  := range  {
		,  := .(*UpdateMessageExtendedMedia)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateUser returns copy with only UpdateUser constructors.
func ( UpdateClassArray) () ( UpdateUserArray) {
	for ,  := range  {
		,  := .(*UpdateUser)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateStory returns copy with only UpdateStory constructors.
func ( UpdateClassArray) () ( UpdateStoryArray) {
	for ,  := range  {
		,  := .(*UpdateStory)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateReadStories returns copy with only UpdateReadStories constructors.
func ( UpdateClassArray) () ( UpdateReadStoriesArray) {
	for ,  := range  {
		,  := .(*UpdateReadStories)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateStoryID returns copy with only UpdateStoryID constructors.
func ( UpdateClassArray) () ( UpdateStoryIDArray) {
	for ,  := range  {
		,  := .(*UpdateStoryID)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateStoriesStealthMode returns copy with only UpdateStoriesStealthMode constructors.
func ( UpdateClassArray) () ( UpdateStoriesStealthModeArray) {
	for ,  := range  {
		,  := .(*UpdateStoriesStealthMode)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateSentStoryReaction returns copy with only UpdateSentStoryReaction constructors.
func ( UpdateClassArray) () ( UpdateSentStoryReactionArray) {
	for ,  := range  {
		,  := .(*UpdateSentStoryReaction)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotChatBoost returns copy with only UpdateBotChatBoost constructors.
func ( UpdateClassArray) () ( UpdateBotChatBoostArray) {
	for ,  := range  {
		,  := .(*UpdateBotChatBoost)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChannelViewForumAsMessages returns copy with only UpdateChannelViewForumAsMessages constructors.
func ( UpdateClassArray) () ( UpdateChannelViewForumAsMessagesArray) {
	for ,  := range  {
		,  := .(*UpdateChannelViewForumAsMessages)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePeerWallpaper returns copy with only UpdatePeerWallpaper constructors.
func ( UpdateClassArray) () ( UpdatePeerWallpaperArray) {
	for ,  := range  {
		,  := .(*UpdatePeerWallpaper)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotMessageReaction returns copy with only UpdateBotMessageReaction constructors.
func ( UpdateClassArray) () ( UpdateBotMessageReactionArray) {
	for ,  := range  {
		,  := .(*UpdateBotMessageReaction)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotMessageReactions returns copy with only UpdateBotMessageReactions constructors.
func ( UpdateClassArray) () ( UpdateBotMessageReactionsArray) {
	for ,  := range  {
		,  := .(*UpdateBotMessageReactions)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateSavedDialogPinned returns copy with only UpdateSavedDialogPinned constructors.
func ( UpdateClassArray) () ( UpdateSavedDialogPinnedArray) {
	for ,  := range  {
		,  := .(*UpdateSavedDialogPinned)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePinnedSavedDialogs returns copy with only UpdatePinnedSavedDialogs constructors.
func ( UpdateClassArray) () ( UpdatePinnedSavedDialogsArray) {
	for ,  := range  {
		,  := .(*UpdatePinnedSavedDialogs)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateSMSJob returns copy with only UpdateSMSJob constructors.
func ( UpdateClassArray) () ( UpdateSMSJobArray) {
	for ,  := range  {
		,  := .(*UpdateSMSJob)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateQuickReplies returns copy with only UpdateQuickReplies constructors.
func ( UpdateClassArray) () ( UpdateQuickRepliesArray) {
	for ,  := range  {
		,  := .(*UpdateQuickReplies)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateNewQuickReply returns copy with only UpdateNewQuickReply constructors.
func ( UpdateClassArray) () ( UpdateNewQuickReplyArray) {
	for ,  := range  {
		,  := .(*UpdateNewQuickReply)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateDeleteQuickReply returns copy with only UpdateDeleteQuickReply constructors.
func ( UpdateClassArray) () ( UpdateDeleteQuickReplyArray) {
	for ,  := range  {
		,  := .(*UpdateDeleteQuickReply)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateQuickReplyMessage returns copy with only UpdateQuickReplyMessage constructors.
func ( UpdateClassArray) () ( UpdateQuickReplyMessageArray) {
	for ,  := range  {
		,  := .(*UpdateQuickReplyMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateDeleteQuickReplyMessages returns copy with only UpdateDeleteQuickReplyMessages constructors.
func ( UpdateClassArray) () ( UpdateDeleteQuickReplyMessagesArray) {
	for ,  := range  {
		,  := .(*UpdateDeleteQuickReplyMessages)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotBusinessConnect returns copy with only UpdateBotBusinessConnect constructors.
func ( UpdateClassArray) () ( UpdateBotBusinessConnectArray) {
	for ,  := range  {
		,  := .(*UpdateBotBusinessConnect)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotNewBusinessMessage returns copy with only UpdateBotNewBusinessMessage constructors.
func ( UpdateClassArray) () ( UpdateBotNewBusinessMessageArray) {
	for ,  := range  {
		,  := .(*UpdateBotNewBusinessMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotEditBusinessMessage returns copy with only UpdateBotEditBusinessMessage constructors.
func ( UpdateClassArray) () ( UpdateBotEditBusinessMessageArray) {
	for ,  := range  {
		,  := .(*UpdateBotEditBusinessMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotDeleteBusinessMessage returns copy with only UpdateBotDeleteBusinessMessage constructors.
func ( UpdateClassArray) () ( UpdateBotDeleteBusinessMessageArray) {
	for ,  := range  {
		,  := .(*UpdateBotDeleteBusinessMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateNewStoryReaction returns copy with only UpdateNewStoryReaction constructors.
func ( UpdateClassArray) () ( UpdateNewStoryReactionArray) {
	for ,  := range  {
		,  := .(*UpdateNewStoryReaction)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateStarsBalance returns copy with only UpdateStarsBalance constructors.
func ( UpdateClassArray) () ( UpdateStarsBalanceArray) {
	for ,  := range  {
		,  := .(*UpdateStarsBalance)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBusinessBotCallbackQuery returns copy with only UpdateBusinessBotCallbackQuery constructors.
func ( UpdateClassArray) () ( UpdateBusinessBotCallbackQueryArray) {
	for ,  := range  {
		,  := .(*UpdateBusinessBotCallbackQuery)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateStarsRevenueStatus returns copy with only UpdateStarsRevenueStatus constructors.
func ( UpdateClassArray) () ( UpdateStarsRevenueStatusArray) {
	for ,  := range  {
		,  := .(*UpdateStarsRevenueStatus)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotPurchasedPaidMedia returns copy with only UpdateBotPurchasedPaidMedia constructors.
func ( UpdateClassArray) () ( UpdateBotPurchasedPaidMediaArray) {
	for ,  := range  {
		,  := .(*UpdateBotPurchasedPaidMedia)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePaidReactionPrivacy returns copy with only UpdatePaidReactionPrivacy constructors.
func ( UpdateClassArray) () ( UpdatePaidReactionPrivacyArray) {
	for ,  := range  {
		,  := .(*UpdatePaidReactionPrivacy)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateSentPhoneCode returns copy with only UpdateSentPhoneCode constructors.
func ( UpdateClassArray) () ( UpdateSentPhoneCodeArray) {
	for ,  := range  {
		,  := .(*UpdateSentPhoneCode)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateGroupCallChainBlocks returns copy with only UpdateGroupCallChainBlocks constructors.
func ( UpdateClassArray) () ( UpdateGroupCallChainBlocksArray) {
	for ,  := range  {
		,  := .(*UpdateGroupCallChainBlocks)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateReadMonoForumInbox returns copy with only UpdateReadMonoForumInbox constructors.
func ( UpdateClassArray) () ( UpdateReadMonoForumInboxArray) {
	for ,  := range  {
		,  := .(*UpdateReadMonoForumInbox)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateReadMonoForumOutbox returns copy with only UpdateReadMonoForumOutbox constructors.
func ( UpdateClassArray) () ( UpdateReadMonoForumOutboxArray) {
	for ,  := range  {
		,  := .(*UpdateReadMonoForumOutbox)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateMonoForumNoPaidException returns copy with only UpdateMonoForumNoPaidException constructors.
func ( UpdateClassArray) () ( UpdateMonoForumNoPaidExceptionArray) {
	for ,  := range  {
		,  := .(*UpdateMonoForumNoPaidException)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateGroupCallMessage returns copy with only UpdateGroupCallMessage constructors.
func ( UpdateClassArray) () ( UpdateGroupCallMessageArray) {
	for ,  := range  {
		,  := .(*UpdateGroupCallMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateGroupCallEncryptedMessage returns copy with only UpdateGroupCallEncryptedMessage constructors.
func ( UpdateClassArray) () ( UpdateGroupCallEncryptedMessageArray) {
	for ,  := range  {
		,  := .(*UpdateGroupCallEncryptedMessage)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePinnedForumTopic returns copy with only UpdatePinnedForumTopic constructors.
func ( UpdateClassArray) () ( UpdatePinnedForumTopicArray) {
	for ,  := range  {
		,  := .(*UpdatePinnedForumTopic)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdatePinnedForumTopics returns copy with only UpdatePinnedForumTopics constructors.
func ( UpdateClassArray) () ( UpdatePinnedForumTopicsArray) {
	for ,  := range  {
		,  := .(*UpdatePinnedForumTopics)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateDeleteGroupCallMessages returns copy with only UpdateDeleteGroupCallMessages constructors.
func ( UpdateClassArray) () ( UpdateDeleteGroupCallMessagesArray) {
	for ,  := range  {
		,  := .(*UpdateDeleteGroupCallMessages)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateStarGiftAuctionState returns copy with only UpdateStarGiftAuctionState constructors.
func ( UpdateClassArray) () ( UpdateStarGiftAuctionStateArray) {
	for ,  := range  {
		,  := .(*UpdateStarGiftAuctionState)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateStarGiftAuctionUserState returns copy with only UpdateStarGiftAuctionUserState constructors.
func ( UpdateClassArray) () ( UpdateStarGiftAuctionUserStateArray) {
	for ,  := range  {
		,  := .(*UpdateStarGiftAuctionUserState)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateEmojiGameInfo returns copy with only UpdateEmojiGameInfo constructors.
func ( UpdateClassArray) () ( UpdateEmojiGameInfoArray) {
	for ,  := range  {
		,  := .(*UpdateEmojiGameInfo)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateChatParticipantRank returns copy with only UpdateChatParticipantRank constructors.
func ( UpdateClassArray) () ( UpdateChatParticipantRankArray) {
	for ,  := range  {
		,  := .(*UpdateChatParticipantRank)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateManagedBot returns copy with only UpdateManagedBot constructors.
func ( UpdateClassArray) () ( UpdateManagedBotArray) {
	for ,  := range  {
		,  := .(*UpdateManagedBot)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateBotGuestChatQuery returns copy with only UpdateBotGuestChatQuery constructors.
func ( UpdateClassArray) () ( UpdateBotGuestChatQueryArray) {
	for ,  := range  {
		,  := .(*UpdateBotGuestChatQuery)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateJoinChatWebViewDecision returns copy with only UpdateJoinChatWebViewDecision constructors.
func ( UpdateClassArray) () ( UpdateJoinChatWebViewDecisionArray) {
	for ,  := range  {
		,  := .(*UpdateJoinChatWebViewDecision)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateNewBotConnection returns copy with only UpdateNewBotConnection constructors.
func ( UpdateClassArray) () ( UpdateNewBotConnectionArray) {
	for ,  := range  {
		,  := .(*UpdateNewBotConnection)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateWebBrowserSettings returns copy with only UpdateWebBrowserSettings constructors.
func ( UpdateClassArray) () ( UpdateWebBrowserSettingsArray) {
	for ,  := range  {
		,  := .(*UpdateWebBrowserSettings)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// AsUpdateWebBrowserException returns copy with only UpdateWebBrowserException constructors.
func ( UpdateClassArray) () ( UpdateWebBrowserExceptionArray) {
	for ,  := range  {
		,  := .(*UpdateWebBrowserException)
		if ! {
			continue
		}
		 = append(, *)
	}

	return 
}

// UpdateNewMessageArray is adapter for slice of UpdateNewMessage.
type UpdateNewMessageArray []UpdateNewMessage

// Sort sorts slice of UpdateNewMessage.
func ( UpdateNewMessageArray) ( func(,  UpdateNewMessage) bool) UpdateNewMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateNewMessage.
func ( UpdateNewMessageArray) ( func(,  UpdateNewMessage) bool) UpdateNewMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateNewMessage.
func ( UpdateNewMessageArray) ( func( UpdateNewMessage) bool) UpdateNewMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateNewMessageArray) () ( UpdateNewMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateNewMessageArray) () ( UpdateNewMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateNewMessageArray) () ( UpdateNewMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateNewMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateNewMessageArray) () ( UpdateNewMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateMessageIDArray is adapter for slice of UpdateMessageID.
type UpdateMessageIDArray []UpdateMessageID

// Sort sorts slice of UpdateMessageID.
func ( UpdateMessageIDArray) ( func(,  UpdateMessageID) bool) UpdateMessageIDArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateMessageID.
func ( UpdateMessageIDArray) ( func(,  UpdateMessageID) bool) UpdateMessageIDArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateMessageID.
func ( UpdateMessageIDArray) ( func( UpdateMessageID) bool) UpdateMessageIDArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateMessageIDArray) () ( UpdateMessageID,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateMessageIDArray) () ( UpdateMessageID,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateMessageIDArray) () ( UpdateMessageID,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateMessageID
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateMessageIDArray) () ( UpdateMessageID,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByID sorts slice of UpdateMessageID by ID.
func ( UpdateMessageIDArray) () UpdateMessageIDArray {
	return .Sort(func(,  UpdateMessageID) bool {
		return .GetID() < .GetID()
	})
}

// SortStableByID sorts slice of UpdateMessageID by ID.
func ( UpdateMessageIDArray) () UpdateMessageIDArray {
	return .SortStable(func(,  UpdateMessageID) bool {
		return .GetID() < .GetID()
	})
}

// FillMap fills constructors to given map.
func ( UpdateMessageIDArray) ( map[int]UpdateMessageID) {
	for ,  := range  {
		[.GetID()] = 
	}
}

// ToMap collects constructors to map.
func ( UpdateMessageIDArray) () map[int]UpdateMessageID {
	 := make(map[int]UpdateMessageID, len())
	.FillMap()
	return 
}

// UpdateDeleteMessagesArray is adapter for slice of UpdateDeleteMessages.
type UpdateDeleteMessagesArray []UpdateDeleteMessages

// Sort sorts slice of UpdateDeleteMessages.
func ( UpdateDeleteMessagesArray) ( func(,  UpdateDeleteMessages) bool) UpdateDeleteMessagesArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateDeleteMessages.
func ( UpdateDeleteMessagesArray) ( func(,  UpdateDeleteMessages) bool) UpdateDeleteMessagesArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateDeleteMessages.
func ( UpdateDeleteMessagesArray) ( func( UpdateDeleteMessages) bool) UpdateDeleteMessagesArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateDeleteMessagesArray) () ( UpdateDeleteMessages,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateDeleteMessagesArray) () ( UpdateDeleteMessages,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateDeleteMessagesArray) () ( UpdateDeleteMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateDeleteMessages
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateDeleteMessagesArray) () ( UpdateDeleteMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateUserTypingArray is adapter for slice of UpdateUserTyping.
type UpdateUserTypingArray []UpdateUserTyping

// Sort sorts slice of UpdateUserTyping.
func ( UpdateUserTypingArray) ( func(,  UpdateUserTyping) bool) UpdateUserTypingArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateUserTyping.
func ( UpdateUserTypingArray) ( func(,  UpdateUserTyping) bool) UpdateUserTypingArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateUserTyping.
func ( UpdateUserTypingArray) ( func( UpdateUserTyping) bool) UpdateUserTypingArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateUserTypingArray) () ( UpdateUserTyping,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateUserTypingArray) () ( UpdateUserTyping,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateUserTypingArray) () ( UpdateUserTyping,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateUserTyping
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateUserTypingArray) () ( UpdateUserTyping,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChatUserTypingArray is adapter for slice of UpdateChatUserTyping.
type UpdateChatUserTypingArray []UpdateChatUserTyping

// Sort sorts slice of UpdateChatUserTyping.
func ( UpdateChatUserTypingArray) ( func(,  UpdateChatUserTyping) bool) UpdateChatUserTypingArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChatUserTyping.
func ( UpdateChatUserTypingArray) ( func(,  UpdateChatUserTyping) bool) UpdateChatUserTypingArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChatUserTyping.
func ( UpdateChatUserTypingArray) ( func( UpdateChatUserTyping) bool) UpdateChatUserTypingArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChatUserTypingArray) () ( UpdateChatUserTyping,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChatUserTypingArray) () ( UpdateChatUserTyping,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChatUserTypingArray) () ( UpdateChatUserTyping,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChatUserTyping
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChatUserTypingArray) () ( UpdateChatUserTyping,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChatParticipantsArray is adapter for slice of UpdateChatParticipants.
type UpdateChatParticipantsArray []UpdateChatParticipants

// Sort sorts slice of UpdateChatParticipants.
func ( UpdateChatParticipantsArray) ( func(,  UpdateChatParticipants) bool) UpdateChatParticipantsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChatParticipants.
func ( UpdateChatParticipantsArray) ( func(,  UpdateChatParticipants) bool) UpdateChatParticipantsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChatParticipants.
func ( UpdateChatParticipantsArray) ( func( UpdateChatParticipants) bool) UpdateChatParticipantsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChatParticipantsArray) () ( UpdateChatParticipants,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChatParticipantsArray) () ( UpdateChatParticipants,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChatParticipantsArray) () ( UpdateChatParticipants,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChatParticipants
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChatParticipantsArray) () ( UpdateChatParticipants,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateUserStatusArray is adapter for slice of UpdateUserStatus.
type UpdateUserStatusArray []UpdateUserStatus

// Sort sorts slice of UpdateUserStatus.
func ( UpdateUserStatusArray) ( func(,  UpdateUserStatus) bool) UpdateUserStatusArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateUserStatus.
func ( UpdateUserStatusArray) ( func(,  UpdateUserStatus) bool) UpdateUserStatusArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateUserStatus.
func ( UpdateUserStatusArray) ( func( UpdateUserStatus) bool) UpdateUserStatusArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateUserStatusArray) () ( UpdateUserStatus,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateUserStatusArray) () ( UpdateUserStatus,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateUserStatusArray) () ( UpdateUserStatus,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateUserStatus
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateUserStatusArray) () ( UpdateUserStatus,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateUserNameArray is adapter for slice of UpdateUserName.
type UpdateUserNameArray []UpdateUserName

// Sort sorts slice of UpdateUserName.
func ( UpdateUserNameArray) ( func(,  UpdateUserName) bool) UpdateUserNameArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateUserName.
func ( UpdateUserNameArray) ( func(,  UpdateUserName) bool) UpdateUserNameArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateUserName.
func ( UpdateUserNameArray) ( func( UpdateUserName) bool) UpdateUserNameArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateUserNameArray) () ( UpdateUserName,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateUserNameArray) () ( UpdateUserName,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateUserNameArray) () ( UpdateUserName,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateUserName
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateUserNameArray) () ( UpdateUserName,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateNewAuthorizationArray is adapter for slice of UpdateNewAuthorization.
type UpdateNewAuthorizationArray []UpdateNewAuthorization

// Sort sorts slice of UpdateNewAuthorization.
func ( UpdateNewAuthorizationArray) ( func(,  UpdateNewAuthorization) bool) UpdateNewAuthorizationArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateNewAuthorization.
func ( UpdateNewAuthorizationArray) ( func(,  UpdateNewAuthorization) bool) UpdateNewAuthorizationArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateNewAuthorization.
func ( UpdateNewAuthorizationArray) ( func( UpdateNewAuthorization) bool) UpdateNewAuthorizationArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateNewAuthorizationArray) () ( UpdateNewAuthorization,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateNewAuthorizationArray) () ( UpdateNewAuthorization,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateNewAuthorizationArray) () ( UpdateNewAuthorization,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateNewAuthorization
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateNewAuthorizationArray) () ( UpdateNewAuthorization,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateNewEncryptedMessageArray is adapter for slice of UpdateNewEncryptedMessage.
type UpdateNewEncryptedMessageArray []UpdateNewEncryptedMessage

// Sort sorts slice of UpdateNewEncryptedMessage.
func ( UpdateNewEncryptedMessageArray) ( func(,  UpdateNewEncryptedMessage) bool) UpdateNewEncryptedMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateNewEncryptedMessage.
func ( UpdateNewEncryptedMessageArray) ( func(,  UpdateNewEncryptedMessage) bool) UpdateNewEncryptedMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateNewEncryptedMessage.
func ( UpdateNewEncryptedMessageArray) ( func( UpdateNewEncryptedMessage) bool) UpdateNewEncryptedMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateNewEncryptedMessageArray) () ( UpdateNewEncryptedMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateNewEncryptedMessageArray) () ( UpdateNewEncryptedMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateNewEncryptedMessageArray) () ( UpdateNewEncryptedMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateNewEncryptedMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateNewEncryptedMessageArray) () ( UpdateNewEncryptedMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateEncryptedChatTypingArray is adapter for slice of UpdateEncryptedChatTyping.
type UpdateEncryptedChatTypingArray []UpdateEncryptedChatTyping

// Sort sorts slice of UpdateEncryptedChatTyping.
func ( UpdateEncryptedChatTypingArray) ( func(,  UpdateEncryptedChatTyping) bool) UpdateEncryptedChatTypingArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateEncryptedChatTyping.
func ( UpdateEncryptedChatTypingArray) ( func(,  UpdateEncryptedChatTyping) bool) UpdateEncryptedChatTypingArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateEncryptedChatTyping.
func ( UpdateEncryptedChatTypingArray) ( func( UpdateEncryptedChatTyping) bool) UpdateEncryptedChatTypingArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateEncryptedChatTypingArray) () ( UpdateEncryptedChatTyping,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateEncryptedChatTypingArray) () ( UpdateEncryptedChatTyping,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateEncryptedChatTypingArray) () ( UpdateEncryptedChatTyping,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateEncryptedChatTyping
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateEncryptedChatTypingArray) () ( UpdateEncryptedChatTyping,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateEncryptionArray is adapter for slice of UpdateEncryption.
type UpdateEncryptionArray []UpdateEncryption

// Sort sorts slice of UpdateEncryption.
func ( UpdateEncryptionArray) ( func(,  UpdateEncryption) bool) UpdateEncryptionArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateEncryption.
func ( UpdateEncryptionArray) ( func(,  UpdateEncryption) bool) UpdateEncryptionArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateEncryption.
func ( UpdateEncryptionArray) ( func( UpdateEncryption) bool) UpdateEncryptionArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateEncryptionArray) () ( UpdateEncryption,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateEncryptionArray) () ( UpdateEncryption,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateEncryptionArray) () ( UpdateEncryption,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateEncryption
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateEncryptionArray) () ( UpdateEncryption,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByDate sorts slice of UpdateEncryption by Date.
func ( UpdateEncryptionArray) () UpdateEncryptionArray {
	return .Sort(func(,  UpdateEncryption) bool {
		return .GetDate() < .GetDate()
	})
}

// SortStableByDate sorts slice of UpdateEncryption by Date.
func ( UpdateEncryptionArray) () UpdateEncryptionArray {
	return .SortStable(func(,  UpdateEncryption) bool {
		return .GetDate() < .GetDate()
	})
}

// UpdateEncryptedMessagesReadArray is adapter for slice of UpdateEncryptedMessagesRead.
type UpdateEncryptedMessagesReadArray []UpdateEncryptedMessagesRead

// Sort sorts slice of UpdateEncryptedMessagesRead.
func ( UpdateEncryptedMessagesReadArray) ( func(,  UpdateEncryptedMessagesRead) bool) UpdateEncryptedMessagesReadArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateEncryptedMessagesRead.
func ( UpdateEncryptedMessagesReadArray) ( func(,  UpdateEncryptedMessagesRead) bool) UpdateEncryptedMessagesReadArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateEncryptedMessagesRead.
func ( UpdateEncryptedMessagesReadArray) ( func( UpdateEncryptedMessagesRead) bool) UpdateEncryptedMessagesReadArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateEncryptedMessagesReadArray) () ( UpdateEncryptedMessagesRead,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateEncryptedMessagesReadArray) () ( UpdateEncryptedMessagesRead,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateEncryptedMessagesReadArray) () ( UpdateEncryptedMessagesRead,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateEncryptedMessagesRead
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateEncryptedMessagesReadArray) () ( UpdateEncryptedMessagesRead,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByDate sorts slice of UpdateEncryptedMessagesRead by Date.
func ( UpdateEncryptedMessagesReadArray) () UpdateEncryptedMessagesReadArray {
	return .Sort(func(,  UpdateEncryptedMessagesRead) bool {
		return .GetDate() < .GetDate()
	})
}

// SortStableByDate sorts slice of UpdateEncryptedMessagesRead by Date.
func ( UpdateEncryptedMessagesReadArray) () UpdateEncryptedMessagesReadArray {
	return .SortStable(func(,  UpdateEncryptedMessagesRead) bool {
		return .GetDate() < .GetDate()
	})
}

// UpdateChatParticipantAddArray is adapter for slice of UpdateChatParticipantAdd.
type UpdateChatParticipantAddArray []UpdateChatParticipantAdd

// Sort sorts slice of UpdateChatParticipantAdd.
func ( UpdateChatParticipantAddArray) ( func(,  UpdateChatParticipantAdd) bool) UpdateChatParticipantAddArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChatParticipantAdd.
func ( UpdateChatParticipantAddArray) ( func(,  UpdateChatParticipantAdd) bool) UpdateChatParticipantAddArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChatParticipantAdd.
func ( UpdateChatParticipantAddArray) ( func( UpdateChatParticipantAdd) bool) UpdateChatParticipantAddArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChatParticipantAddArray) () ( UpdateChatParticipantAdd,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChatParticipantAddArray) () ( UpdateChatParticipantAdd,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChatParticipantAddArray) () ( UpdateChatParticipantAdd,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChatParticipantAdd
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChatParticipantAddArray) () ( UpdateChatParticipantAdd,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByDate sorts slice of UpdateChatParticipantAdd by Date.
func ( UpdateChatParticipantAddArray) () UpdateChatParticipantAddArray {
	return .Sort(func(,  UpdateChatParticipantAdd) bool {
		return .GetDate() < .GetDate()
	})
}

// SortStableByDate sorts slice of UpdateChatParticipantAdd by Date.
func ( UpdateChatParticipantAddArray) () UpdateChatParticipantAddArray {
	return .SortStable(func(,  UpdateChatParticipantAdd) bool {
		return .GetDate() < .GetDate()
	})
}

// UpdateChatParticipantDeleteArray is adapter for slice of UpdateChatParticipantDelete.
type UpdateChatParticipantDeleteArray []UpdateChatParticipantDelete

// Sort sorts slice of UpdateChatParticipantDelete.
func ( UpdateChatParticipantDeleteArray) ( func(,  UpdateChatParticipantDelete) bool) UpdateChatParticipantDeleteArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChatParticipantDelete.
func ( UpdateChatParticipantDeleteArray) ( func(,  UpdateChatParticipantDelete) bool) UpdateChatParticipantDeleteArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChatParticipantDelete.
func ( UpdateChatParticipantDeleteArray) ( func( UpdateChatParticipantDelete) bool) UpdateChatParticipantDeleteArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChatParticipantDeleteArray) () ( UpdateChatParticipantDelete,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChatParticipantDeleteArray) () ( UpdateChatParticipantDelete,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChatParticipantDeleteArray) () ( UpdateChatParticipantDelete,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChatParticipantDelete
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChatParticipantDeleteArray) () ( UpdateChatParticipantDelete,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateDCOptionsArray is adapter for slice of UpdateDCOptions.
type UpdateDCOptionsArray []UpdateDCOptions

// Sort sorts slice of UpdateDCOptions.
func ( UpdateDCOptionsArray) ( func(,  UpdateDCOptions) bool) UpdateDCOptionsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateDCOptions.
func ( UpdateDCOptionsArray) ( func(,  UpdateDCOptions) bool) UpdateDCOptionsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateDCOptions.
func ( UpdateDCOptionsArray) ( func( UpdateDCOptions) bool) UpdateDCOptionsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateDCOptionsArray) () ( UpdateDCOptions,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateDCOptionsArray) () ( UpdateDCOptions,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateDCOptionsArray) () ( UpdateDCOptions,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateDCOptions
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateDCOptionsArray) () ( UpdateDCOptions,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateNotifySettingsArray is adapter for slice of UpdateNotifySettings.
type UpdateNotifySettingsArray []UpdateNotifySettings

// Sort sorts slice of UpdateNotifySettings.
func ( UpdateNotifySettingsArray) ( func(,  UpdateNotifySettings) bool) UpdateNotifySettingsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateNotifySettings.
func ( UpdateNotifySettingsArray) ( func(,  UpdateNotifySettings) bool) UpdateNotifySettingsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateNotifySettings.
func ( UpdateNotifySettingsArray) ( func( UpdateNotifySettings) bool) UpdateNotifySettingsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateNotifySettingsArray) () ( UpdateNotifySettings,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateNotifySettingsArray) () ( UpdateNotifySettings,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateNotifySettingsArray) () ( UpdateNotifySettings,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateNotifySettings
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateNotifySettingsArray) () ( UpdateNotifySettings,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateServiceNotificationArray is adapter for slice of UpdateServiceNotification.
type UpdateServiceNotificationArray []UpdateServiceNotification

// Sort sorts slice of UpdateServiceNotification.
func ( UpdateServiceNotificationArray) ( func(,  UpdateServiceNotification) bool) UpdateServiceNotificationArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateServiceNotification.
func ( UpdateServiceNotificationArray) ( func(,  UpdateServiceNotification) bool) UpdateServiceNotificationArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateServiceNotification.
func ( UpdateServiceNotificationArray) ( func( UpdateServiceNotification) bool) UpdateServiceNotificationArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateServiceNotificationArray) () ( UpdateServiceNotification,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateServiceNotificationArray) () ( UpdateServiceNotification,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateServiceNotificationArray) () ( UpdateServiceNotification,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateServiceNotification
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateServiceNotificationArray) () ( UpdateServiceNotification,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePrivacyArray is adapter for slice of UpdatePrivacy.
type UpdatePrivacyArray []UpdatePrivacy

// Sort sorts slice of UpdatePrivacy.
func ( UpdatePrivacyArray) ( func(,  UpdatePrivacy) bool) UpdatePrivacyArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePrivacy.
func ( UpdatePrivacyArray) ( func(,  UpdatePrivacy) bool) UpdatePrivacyArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePrivacy.
func ( UpdatePrivacyArray) ( func( UpdatePrivacy) bool) UpdatePrivacyArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePrivacyArray) () ( UpdatePrivacy,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePrivacyArray) () ( UpdatePrivacy,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePrivacyArray) () ( UpdatePrivacy,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePrivacy
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePrivacyArray) () ( UpdatePrivacy,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateUserPhoneArray is adapter for slice of UpdateUserPhone.
type UpdateUserPhoneArray []UpdateUserPhone

// Sort sorts slice of UpdateUserPhone.
func ( UpdateUserPhoneArray) ( func(,  UpdateUserPhone) bool) UpdateUserPhoneArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateUserPhone.
func ( UpdateUserPhoneArray) ( func(,  UpdateUserPhone) bool) UpdateUserPhoneArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateUserPhone.
func ( UpdateUserPhoneArray) ( func( UpdateUserPhone) bool) UpdateUserPhoneArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateUserPhoneArray) () ( UpdateUserPhone,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateUserPhoneArray) () ( UpdateUserPhone,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateUserPhoneArray) () ( UpdateUserPhone,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateUserPhone
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateUserPhoneArray) () ( UpdateUserPhone,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateReadHistoryInboxArray is adapter for slice of UpdateReadHistoryInbox.
type UpdateReadHistoryInboxArray []UpdateReadHistoryInbox

// Sort sorts slice of UpdateReadHistoryInbox.
func ( UpdateReadHistoryInboxArray) ( func(,  UpdateReadHistoryInbox) bool) UpdateReadHistoryInboxArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateReadHistoryInbox.
func ( UpdateReadHistoryInboxArray) ( func(,  UpdateReadHistoryInbox) bool) UpdateReadHistoryInboxArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateReadHistoryInbox.
func ( UpdateReadHistoryInboxArray) ( func( UpdateReadHistoryInbox) bool) UpdateReadHistoryInboxArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateReadHistoryInboxArray) () ( UpdateReadHistoryInbox,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateReadHistoryInboxArray) () ( UpdateReadHistoryInbox,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateReadHistoryInboxArray) () ( UpdateReadHistoryInbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateReadHistoryInbox
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateReadHistoryInboxArray) () ( UpdateReadHistoryInbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateReadHistoryOutboxArray is adapter for slice of UpdateReadHistoryOutbox.
type UpdateReadHistoryOutboxArray []UpdateReadHistoryOutbox

// Sort sorts slice of UpdateReadHistoryOutbox.
func ( UpdateReadHistoryOutboxArray) ( func(,  UpdateReadHistoryOutbox) bool) UpdateReadHistoryOutboxArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateReadHistoryOutbox.
func ( UpdateReadHistoryOutboxArray) ( func(,  UpdateReadHistoryOutbox) bool) UpdateReadHistoryOutboxArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateReadHistoryOutbox.
func ( UpdateReadHistoryOutboxArray) ( func( UpdateReadHistoryOutbox) bool) UpdateReadHistoryOutboxArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateReadHistoryOutboxArray) () ( UpdateReadHistoryOutbox,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateReadHistoryOutboxArray) () ( UpdateReadHistoryOutbox,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateReadHistoryOutboxArray) () ( UpdateReadHistoryOutbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateReadHistoryOutbox
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateReadHistoryOutboxArray) () ( UpdateReadHistoryOutbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateWebPageArray is adapter for slice of UpdateWebPage.
type UpdateWebPageArray []UpdateWebPage

// Sort sorts slice of UpdateWebPage.
func ( UpdateWebPageArray) ( func(,  UpdateWebPage) bool) UpdateWebPageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateWebPage.
func ( UpdateWebPageArray) ( func(,  UpdateWebPage) bool) UpdateWebPageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateWebPage.
func ( UpdateWebPageArray) ( func( UpdateWebPage) bool) UpdateWebPageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateWebPageArray) () ( UpdateWebPage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateWebPageArray) () ( UpdateWebPage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateWebPageArray) () ( UpdateWebPage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateWebPage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateWebPageArray) () ( UpdateWebPage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateReadMessagesContentsArray is adapter for slice of UpdateReadMessagesContents.
type UpdateReadMessagesContentsArray []UpdateReadMessagesContents

// Sort sorts slice of UpdateReadMessagesContents.
func ( UpdateReadMessagesContentsArray) ( func(,  UpdateReadMessagesContents) bool) UpdateReadMessagesContentsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateReadMessagesContents.
func ( UpdateReadMessagesContentsArray) ( func(,  UpdateReadMessagesContents) bool) UpdateReadMessagesContentsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateReadMessagesContents.
func ( UpdateReadMessagesContentsArray) ( func( UpdateReadMessagesContents) bool) UpdateReadMessagesContentsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateReadMessagesContentsArray) () ( UpdateReadMessagesContents,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateReadMessagesContentsArray) () ( UpdateReadMessagesContents,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateReadMessagesContentsArray) () ( UpdateReadMessagesContents,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateReadMessagesContents
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateReadMessagesContentsArray) () ( UpdateReadMessagesContents,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChannelTooLongArray is adapter for slice of UpdateChannelTooLong.
type UpdateChannelTooLongArray []UpdateChannelTooLong

// Sort sorts slice of UpdateChannelTooLong.
func ( UpdateChannelTooLongArray) ( func(,  UpdateChannelTooLong) bool) UpdateChannelTooLongArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChannelTooLong.
func ( UpdateChannelTooLongArray) ( func(,  UpdateChannelTooLong) bool) UpdateChannelTooLongArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChannelTooLong.
func ( UpdateChannelTooLongArray) ( func( UpdateChannelTooLong) bool) UpdateChannelTooLongArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChannelTooLongArray) () ( UpdateChannelTooLong,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChannelTooLongArray) () ( UpdateChannelTooLong,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChannelTooLongArray) () ( UpdateChannelTooLong,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChannelTooLong
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChannelTooLongArray) () ( UpdateChannelTooLong,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChannelArray is adapter for slice of UpdateChannel.
type UpdateChannelArray []UpdateChannel

// Sort sorts slice of UpdateChannel.
func ( UpdateChannelArray) ( func(,  UpdateChannel) bool) UpdateChannelArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChannel.
func ( UpdateChannelArray) ( func(,  UpdateChannel) bool) UpdateChannelArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChannel.
func ( UpdateChannelArray) ( func( UpdateChannel) bool) UpdateChannelArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChannelArray) () ( UpdateChannel,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChannelArray) () ( UpdateChannel,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChannelArray) () ( UpdateChannel,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChannel
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChannelArray) () ( UpdateChannel,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateNewChannelMessageArray is adapter for slice of UpdateNewChannelMessage.
type UpdateNewChannelMessageArray []UpdateNewChannelMessage

// Sort sorts slice of UpdateNewChannelMessage.
func ( UpdateNewChannelMessageArray) ( func(,  UpdateNewChannelMessage) bool) UpdateNewChannelMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateNewChannelMessage.
func ( UpdateNewChannelMessageArray) ( func(,  UpdateNewChannelMessage) bool) UpdateNewChannelMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateNewChannelMessage.
func ( UpdateNewChannelMessageArray) ( func( UpdateNewChannelMessage) bool) UpdateNewChannelMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateNewChannelMessageArray) () ( UpdateNewChannelMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateNewChannelMessageArray) () ( UpdateNewChannelMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateNewChannelMessageArray) () ( UpdateNewChannelMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateNewChannelMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateNewChannelMessageArray) () ( UpdateNewChannelMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateReadChannelInboxArray is adapter for slice of UpdateReadChannelInbox.
type UpdateReadChannelInboxArray []UpdateReadChannelInbox

// Sort sorts slice of UpdateReadChannelInbox.
func ( UpdateReadChannelInboxArray) ( func(,  UpdateReadChannelInbox) bool) UpdateReadChannelInboxArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateReadChannelInbox.
func ( UpdateReadChannelInboxArray) ( func(,  UpdateReadChannelInbox) bool) UpdateReadChannelInboxArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateReadChannelInbox.
func ( UpdateReadChannelInboxArray) ( func( UpdateReadChannelInbox) bool) UpdateReadChannelInboxArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateReadChannelInboxArray) () ( UpdateReadChannelInbox,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateReadChannelInboxArray) () ( UpdateReadChannelInbox,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateReadChannelInboxArray) () ( UpdateReadChannelInbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateReadChannelInbox
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateReadChannelInboxArray) () ( UpdateReadChannelInbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateDeleteChannelMessagesArray is adapter for slice of UpdateDeleteChannelMessages.
type UpdateDeleteChannelMessagesArray []UpdateDeleteChannelMessages

// Sort sorts slice of UpdateDeleteChannelMessages.
func ( UpdateDeleteChannelMessagesArray) ( func(,  UpdateDeleteChannelMessages) bool) UpdateDeleteChannelMessagesArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateDeleteChannelMessages.
func ( UpdateDeleteChannelMessagesArray) ( func(,  UpdateDeleteChannelMessages) bool) UpdateDeleteChannelMessagesArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateDeleteChannelMessages.
func ( UpdateDeleteChannelMessagesArray) ( func( UpdateDeleteChannelMessages) bool) UpdateDeleteChannelMessagesArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateDeleteChannelMessagesArray) () ( UpdateDeleteChannelMessages,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateDeleteChannelMessagesArray) () ( UpdateDeleteChannelMessages,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateDeleteChannelMessagesArray) () ( UpdateDeleteChannelMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateDeleteChannelMessages
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateDeleteChannelMessagesArray) () ( UpdateDeleteChannelMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChannelMessageViewsArray is adapter for slice of UpdateChannelMessageViews.
type UpdateChannelMessageViewsArray []UpdateChannelMessageViews

// Sort sorts slice of UpdateChannelMessageViews.
func ( UpdateChannelMessageViewsArray) ( func(,  UpdateChannelMessageViews) bool) UpdateChannelMessageViewsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChannelMessageViews.
func ( UpdateChannelMessageViewsArray) ( func(,  UpdateChannelMessageViews) bool) UpdateChannelMessageViewsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChannelMessageViews.
func ( UpdateChannelMessageViewsArray) ( func( UpdateChannelMessageViews) bool) UpdateChannelMessageViewsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChannelMessageViewsArray) () ( UpdateChannelMessageViews,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChannelMessageViewsArray) () ( UpdateChannelMessageViews,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChannelMessageViewsArray) () ( UpdateChannelMessageViews,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChannelMessageViews
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChannelMessageViewsArray) () ( UpdateChannelMessageViews,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByID sorts slice of UpdateChannelMessageViews by ID.
func ( UpdateChannelMessageViewsArray) () UpdateChannelMessageViewsArray {
	return .Sort(func(,  UpdateChannelMessageViews) bool {
		return .GetID() < .GetID()
	})
}

// SortStableByID sorts slice of UpdateChannelMessageViews by ID.
func ( UpdateChannelMessageViewsArray) () UpdateChannelMessageViewsArray {
	return .SortStable(func(,  UpdateChannelMessageViews) bool {
		return .GetID() < .GetID()
	})
}

// FillMap fills constructors to given map.
func ( UpdateChannelMessageViewsArray) ( map[int]UpdateChannelMessageViews) {
	for ,  := range  {
		[.GetID()] = 
	}
}

// ToMap collects constructors to map.
func ( UpdateChannelMessageViewsArray) () map[int]UpdateChannelMessageViews {
	 := make(map[int]UpdateChannelMessageViews, len())
	.FillMap()
	return 
}

// UpdateChatParticipantAdminArray is adapter for slice of UpdateChatParticipantAdmin.
type UpdateChatParticipantAdminArray []UpdateChatParticipantAdmin

// Sort sorts slice of UpdateChatParticipantAdmin.
func ( UpdateChatParticipantAdminArray) ( func(,  UpdateChatParticipantAdmin) bool) UpdateChatParticipantAdminArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChatParticipantAdmin.
func ( UpdateChatParticipantAdminArray) ( func(,  UpdateChatParticipantAdmin) bool) UpdateChatParticipantAdminArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChatParticipantAdmin.
func ( UpdateChatParticipantAdminArray) ( func( UpdateChatParticipantAdmin) bool) UpdateChatParticipantAdminArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChatParticipantAdminArray) () ( UpdateChatParticipantAdmin,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChatParticipantAdminArray) () ( UpdateChatParticipantAdmin,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChatParticipantAdminArray) () ( UpdateChatParticipantAdmin,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChatParticipantAdmin
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChatParticipantAdminArray) () ( UpdateChatParticipantAdmin,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateNewStickerSetArray is adapter for slice of UpdateNewStickerSet.
type UpdateNewStickerSetArray []UpdateNewStickerSet

// Sort sorts slice of UpdateNewStickerSet.
func ( UpdateNewStickerSetArray) ( func(,  UpdateNewStickerSet) bool) UpdateNewStickerSetArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateNewStickerSet.
func ( UpdateNewStickerSetArray) ( func(,  UpdateNewStickerSet) bool) UpdateNewStickerSetArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateNewStickerSet.
func ( UpdateNewStickerSetArray) ( func( UpdateNewStickerSet) bool) UpdateNewStickerSetArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateNewStickerSetArray) () ( UpdateNewStickerSet,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateNewStickerSetArray) () ( UpdateNewStickerSet,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateNewStickerSetArray) () ( UpdateNewStickerSet,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateNewStickerSet
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateNewStickerSetArray) () ( UpdateNewStickerSet,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateStickerSetsOrderArray is adapter for slice of UpdateStickerSetsOrder.
type UpdateStickerSetsOrderArray []UpdateStickerSetsOrder

// Sort sorts slice of UpdateStickerSetsOrder.
func ( UpdateStickerSetsOrderArray) ( func(,  UpdateStickerSetsOrder) bool) UpdateStickerSetsOrderArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateStickerSetsOrder.
func ( UpdateStickerSetsOrderArray) ( func(,  UpdateStickerSetsOrder) bool) UpdateStickerSetsOrderArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateStickerSetsOrder.
func ( UpdateStickerSetsOrderArray) ( func( UpdateStickerSetsOrder) bool) UpdateStickerSetsOrderArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateStickerSetsOrderArray) () ( UpdateStickerSetsOrder,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateStickerSetsOrderArray) () ( UpdateStickerSetsOrder,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateStickerSetsOrderArray) () ( UpdateStickerSetsOrder,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateStickerSetsOrder
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateStickerSetsOrderArray) () ( UpdateStickerSetsOrder,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateStickerSetsArray is adapter for slice of UpdateStickerSets.
type UpdateStickerSetsArray []UpdateStickerSets

// Sort sorts slice of UpdateStickerSets.
func ( UpdateStickerSetsArray) ( func(,  UpdateStickerSets) bool) UpdateStickerSetsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateStickerSets.
func ( UpdateStickerSetsArray) ( func(,  UpdateStickerSets) bool) UpdateStickerSetsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateStickerSets.
func ( UpdateStickerSetsArray) ( func( UpdateStickerSets) bool) UpdateStickerSetsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateStickerSetsArray) () ( UpdateStickerSets,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateStickerSetsArray) () ( UpdateStickerSets,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateStickerSetsArray) () ( UpdateStickerSets,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateStickerSets
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateStickerSetsArray) () ( UpdateStickerSets,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotInlineQueryArray is adapter for slice of UpdateBotInlineQuery.
type UpdateBotInlineQueryArray []UpdateBotInlineQuery

// Sort sorts slice of UpdateBotInlineQuery.
func ( UpdateBotInlineQueryArray) ( func(,  UpdateBotInlineQuery) bool) UpdateBotInlineQueryArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotInlineQuery.
func ( UpdateBotInlineQueryArray) ( func(,  UpdateBotInlineQuery) bool) UpdateBotInlineQueryArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotInlineQuery.
func ( UpdateBotInlineQueryArray) ( func( UpdateBotInlineQuery) bool) UpdateBotInlineQueryArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotInlineQueryArray) () ( UpdateBotInlineQuery,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotInlineQueryArray) () ( UpdateBotInlineQuery,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotInlineQueryArray) () ( UpdateBotInlineQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotInlineQuery
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotInlineQueryArray) () ( UpdateBotInlineQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotInlineSendArray is adapter for slice of UpdateBotInlineSend.
type UpdateBotInlineSendArray []UpdateBotInlineSend

// Sort sorts slice of UpdateBotInlineSend.
func ( UpdateBotInlineSendArray) ( func(,  UpdateBotInlineSend) bool) UpdateBotInlineSendArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotInlineSend.
func ( UpdateBotInlineSendArray) ( func(,  UpdateBotInlineSend) bool) UpdateBotInlineSendArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotInlineSend.
func ( UpdateBotInlineSendArray) ( func( UpdateBotInlineSend) bool) UpdateBotInlineSendArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotInlineSendArray) () ( UpdateBotInlineSend,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotInlineSendArray) () ( UpdateBotInlineSend,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotInlineSendArray) () ( UpdateBotInlineSend,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotInlineSend
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotInlineSendArray) () ( UpdateBotInlineSend,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateEditChannelMessageArray is adapter for slice of UpdateEditChannelMessage.
type UpdateEditChannelMessageArray []UpdateEditChannelMessage

// Sort sorts slice of UpdateEditChannelMessage.
func ( UpdateEditChannelMessageArray) ( func(,  UpdateEditChannelMessage) bool) UpdateEditChannelMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateEditChannelMessage.
func ( UpdateEditChannelMessageArray) ( func(,  UpdateEditChannelMessage) bool) UpdateEditChannelMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateEditChannelMessage.
func ( UpdateEditChannelMessageArray) ( func( UpdateEditChannelMessage) bool) UpdateEditChannelMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateEditChannelMessageArray) () ( UpdateEditChannelMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateEditChannelMessageArray) () ( UpdateEditChannelMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateEditChannelMessageArray) () ( UpdateEditChannelMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateEditChannelMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateEditChannelMessageArray) () ( UpdateEditChannelMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotCallbackQueryArray is adapter for slice of UpdateBotCallbackQuery.
type UpdateBotCallbackQueryArray []UpdateBotCallbackQuery

// Sort sorts slice of UpdateBotCallbackQuery.
func ( UpdateBotCallbackQueryArray) ( func(,  UpdateBotCallbackQuery) bool) UpdateBotCallbackQueryArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotCallbackQuery.
func ( UpdateBotCallbackQueryArray) ( func(,  UpdateBotCallbackQuery) bool) UpdateBotCallbackQueryArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotCallbackQuery.
func ( UpdateBotCallbackQueryArray) ( func( UpdateBotCallbackQuery) bool) UpdateBotCallbackQueryArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotCallbackQueryArray) () ( UpdateBotCallbackQuery,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotCallbackQueryArray) () ( UpdateBotCallbackQuery,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotCallbackQueryArray) () ( UpdateBotCallbackQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotCallbackQuery
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotCallbackQueryArray) () ( UpdateBotCallbackQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateEditMessageArray is adapter for slice of UpdateEditMessage.
type UpdateEditMessageArray []UpdateEditMessage

// Sort sorts slice of UpdateEditMessage.
func ( UpdateEditMessageArray) ( func(,  UpdateEditMessage) bool) UpdateEditMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateEditMessage.
func ( UpdateEditMessageArray) ( func(,  UpdateEditMessage) bool) UpdateEditMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateEditMessage.
func ( UpdateEditMessageArray) ( func( UpdateEditMessage) bool) UpdateEditMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateEditMessageArray) () ( UpdateEditMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateEditMessageArray) () ( UpdateEditMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateEditMessageArray) () ( UpdateEditMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateEditMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateEditMessageArray) () ( UpdateEditMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateInlineBotCallbackQueryArray is adapter for slice of UpdateInlineBotCallbackQuery.
type UpdateInlineBotCallbackQueryArray []UpdateInlineBotCallbackQuery

// Sort sorts slice of UpdateInlineBotCallbackQuery.
func ( UpdateInlineBotCallbackQueryArray) ( func(,  UpdateInlineBotCallbackQuery) bool) UpdateInlineBotCallbackQueryArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateInlineBotCallbackQuery.
func ( UpdateInlineBotCallbackQueryArray) ( func(,  UpdateInlineBotCallbackQuery) bool) UpdateInlineBotCallbackQueryArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateInlineBotCallbackQuery.
func ( UpdateInlineBotCallbackQueryArray) ( func( UpdateInlineBotCallbackQuery) bool) UpdateInlineBotCallbackQueryArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateInlineBotCallbackQueryArray) () ( UpdateInlineBotCallbackQuery,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateInlineBotCallbackQueryArray) () ( UpdateInlineBotCallbackQuery,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateInlineBotCallbackQueryArray) () ( UpdateInlineBotCallbackQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateInlineBotCallbackQuery
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateInlineBotCallbackQueryArray) () ( UpdateInlineBotCallbackQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateReadChannelOutboxArray is adapter for slice of UpdateReadChannelOutbox.
type UpdateReadChannelOutboxArray []UpdateReadChannelOutbox

// Sort sorts slice of UpdateReadChannelOutbox.
func ( UpdateReadChannelOutboxArray) ( func(,  UpdateReadChannelOutbox) bool) UpdateReadChannelOutboxArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateReadChannelOutbox.
func ( UpdateReadChannelOutboxArray) ( func(,  UpdateReadChannelOutbox) bool) UpdateReadChannelOutboxArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateReadChannelOutbox.
func ( UpdateReadChannelOutboxArray) ( func( UpdateReadChannelOutbox) bool) UpdateReadChannelOutboxArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateReadChannelOutboxArray) () ( UpdateReadChannelOutbox,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateReadChannelOutboxArray) () ( UpdateReadChannelOutbox,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateReadChannelOutboxArray) () ( UpdateReadChannelOutbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateReadChannelOutbox
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateReadChannelOutboxArray) () ( UpdateReadChannelOutbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateDraftMessageArray is adapter for slice of UpdateDraftMessage.
type UpdateDraftMessageArray []UpdateDraftMessage

// Sort sorts slice of UpdateDraftMessage.
func ( UpdateDraftMessageArray) ( func(,  UpdateDraftMessage) bool) UpdateDraftMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateDraftMessage.
func ( UpdateDraftMessageArray) ( func(,  UpdateDraftMessage) bool) UpdateDraftMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateDraftMessage.
func ( UpdateDraftMessageArray) ( func( UpdateDraftMessage) bool) UpdateDraftMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateDraftMessageArray) () ( UpdateDraftMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateDraftMessageArray) () ( UpdateDraftMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateDraftMessageArray) () ( UpdateDraftMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateDraftMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateDraftMessageArray) () ( UpdateDraftMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChannelWebPageArray is adapter for slice of UpdateChannelWebPage.
type UpdateChannelWebPageArray []UpdateChannelWebPage

// Sort sorts slice of UpdateChannelWebPage.
func ( UpdateChannelWebPageArray) ( func(,  UpdateChannelWebPage) bool) UpdateChannelWebPageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChannelWebPage.
func ( UpdateChannelWebPageArray) ( func(,  UpdateChannelWebPage) bool) UpdateChannelWebPageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChannelWebPage.
func ( UpdateChannelWebPageArray) ( func( UpdateChannelWebPage) bool) UpdateChannelWebPageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChannelWebPageArray) () ( UpdateChannelWebPage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChannelWebPageArray) () ( UpdateChannelWebPage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChannelWebPageArray) () ( UpdateChannelWebPage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChannelWebPage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChannelWebPageArray) () ( UpdateChannelWebPage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateDialogPinnedArray is adapter for slice of UpdateDialogPinned.
type UpdateDialogPinnedArray []UpdateDialogPinned

// Sort sorts slice of UpdateDialogPinned.
func ( UpdateDialogPinnedArray) ( func(,  UpdateDialogPinned) bool) UpdateDialogPinnedArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateDialogPinned.
func ( UpdateDialogPinnedArray) ( func(,  UpdateDialogPinned) bool) UpdateDialogPinnedArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateDialogPinned.
func ( UpdateDialogPinnedArray) ( func( UpdateDialogPinned) bool) UpdateDialogPinnedArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateDialogPinnedArray) () ( UpdateDialogPinned,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateDialogPinnedArray) () ( UpdateDialogPinned,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateDialogPinnedArray) () ( UpdateDialogPinned,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateDialogPinned
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateDialogPinnedArray) () ( UpdateDialogPinned,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePinnedDialogsArray is adapter for slice of UpdatePinnedDialogs.
type UpdatePinnedDialogsArray []UpdatePinnedDialogs

// Sort sorts slice of UpdatePinnedDialogs.
func ( UpdatePinnedDialogsArray) ( func(,  UpdatePinnedDialogs) bool) UpdatePinnedDialogsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePinnedDialogs.
func ( UpdatePinnedDialogsArray) ( func(,  UpdatePinnedDialogs) bool) UpdatePinnedDialogsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePinnedDialogs.
func ( UpdatePinnedDialogsArray) ( func( UpdatePinnedDialogs) bool) UpdatePinnedDialogsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePinnedDialogsArray) () ( UpdatePinnedDialogs,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePinnedDialogsArray) () ( UpdatePinnedDialogs,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePinnedDialogsArray) () ( UpdatePinnedDialogs,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePinnedDialogs
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePinnedDialogsArray) () ( UpdatePinnedDialogs,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotWebhookJSONArray is adapter for slice of UpdateBotWebhookJSON.
type UpdateBotWebhookJSONArray []UpdateBotWebhookJSON

// Sort sorts slice of UpdateBotWebhookJSON.
func ( UpdateBotWebhookJSONArray) ( func(,  UpdateBotWebhookJSON) bool) UpdateBotWebhookJSONArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotWebhookJSON.
func ( UpdateBotWebhookJSONArray) ( func(,  UpdateBotWebhookJSON) bool) UpdateBotWebhookJSONArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotWebhookJSON.
func ( UpdateBotWebhookJSONArray) ( func( UpdateBotWebhookJSON) bool) UpdateBotWebhookJSONArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotWebhookJSONArray) () ( UpdateBotWebhookJSON,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotWebhookJSONArray) () ( UpdateBotWebhookJSON,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotWebhookJSONArray) () ( UpdateBotWebhookJSON,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotWebhookJSON
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotWebhookJSONArray) () ( UpdateBotWebhookJSON,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotWebhookJSONQueryArray is adapter for slice of UpdateBotWebhookJSONQuery.
type UpdateBotWebhookJSONQueryArray []UpdateBotWebhookJSONQuery

// Sort sorts slice of UpdateBotWebhookJSONQuery.
func ( UpdateBotWebhookJSONQueryArray) ( func(,  UpdateBotWebhookJSONQuery) bool) UpdateBotWebhookJSONQueryArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotWebhookJSONQuery.
func ( UpdateBotWebhookJSONQueryArray) ( func(,  UpdateBotWebhookJSONQuery) bool) UpdateBotWebhookJSONQueryArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotWebhookJSONQuery.
func ( UpdateBotWebhookJSONQueryArray) ( func( UpdateBotWebhookJSONQuery) bool) UpdateBotWebhookJSONQueryArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotWebhookJSONQueryArray) () ( UpdateBotWebhookJSONQuery,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotWebhookJSONQueryArray) () ( UpdateBotWebhookJSONQuery,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotWebhookJSONQueryArray) () ( UpdateBotWebhookJSONQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotWebhookJSONQuery
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotWebhookJSONQueryArray) () ( UpdateBotWebhookJSONQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotShippingQueryArray is adapter for slice of UpdateBotShippingQuery.
type UpdateBotShippingQueryArray []UpdateBotShippingQuery

// Sort sorts slice of UpdateBotShippingQuery.
func ( UpdateBotShippingQueryArray) ( func(,  UpdateBotShippingQuery) bool) UpdateBotShippingQueryArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotShippingQuery.
func ( UpdateBotShippingQueryArray) ( func(,  UpdateBotShippingQuery) bool) UpdateBotShippingQueryArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotShippingQuery.
func ( UpdateBotShippingQueryArray) ( func( UpdateBotShippingQuery) bool) UpdateBotShippingQueryArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotShippingQueryArray) () ( UpdateBotShippingQuery,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotShippingQueryArray) () ( UpdateBotShippingQuery,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotShippingQueryArray) () ( UpdateBotShippingQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotShippingQuery
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotShippingQueryArray) () ( UpdateBotShippingQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotPrecheckoutQueryArray is adapter for slice of UpdateBotPrecheckoutQuery.
type UpdateBotPrecheckoutQueryArray []UpdateBotPrecheckoutQuery

// Sort sorts slice of UpdateBotPrecheckoutQuery.
func ( UpdateBotPrecheckoutQueryArray) ( func(,  UpdateBotPrecheckoutQuery) bool) UpdateBotPrecheckoutQueryArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotPrecheckoutQuery.
func ( UpdateBotPrecheckoutQueryArray) ( func(,  UpdateBotPrecheckoutQuery) bool) UpdateBotPrecheckoutQueryArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotPrecheckoutQuery.
func ( UpdateBotPrecheckoutQueryArray) ( func( UpdateBotPrecheckoutQuery) bool) UpdateBotPrecheckoutQueryArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotPrecheckoutQueryArray) () ( UpdateBotPrecheckoutQuery,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotPrecheckoutQueryArray) () ( UpdateBotPrecheckoutQuery,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotPrecheckoutQueryArray) () ( UpdateBotPrecheckoutQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotPrecheckoutQuery
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotPrecheckoutQueryArray) () ( UpdateBotPrecheckoutQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePhoneCallArray is adapter for slice of UpdatePhoneCall.
type UpdatePhoneCallArray []UpdatePhoneCall

// Sort sorts slice of UpdatePhoneCall.
func ( UpdatePhoneCallArray) ( func(,  UpdatePhoneCall) bool) UpdatePhoneCallArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePhoneCall.
func ( UpdatePhoneCallArray) ( func(,  UpdatePhoneCall) bool) UpdatePhoneCallArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePhoneCall.
func ( UpdatePhoneCallArray) ( func( UpdatePhoneCall) bool) UpdatePhoneCallArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePhoneCallArray) () ( UpdatePhoneCall,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePhoneCallArray) () ( UpdatePhoneCall,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePhoneCallArray) () ( UpdatePhoneCall,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePhoneCall
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePhoneCallArray) () ( UpdatePhoneCall,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateLangPackTooLongArray is adapter for slice of UpdateLangPackTooLong.
type UpdateLangPackTooLongArray []UpdateLangPackTooLong

// Sort sorts slice of UpdateLangPackTooLong.
func ( UpdateLangPackTooLongArray) ( func(,  UpdateLangPackTooLong) bool) UpdateLangPackTooLongArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateLangPackTooLong.
func ( UpdateLangPackTooLongArray) ( func(,  UpdateLangPackTooLong) bool) UpdateLangPackTooLongArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateLangPackTooLong.
func ( UpdateLangPackTooLongArray) ( func( UpdateLangPackTooLong) bool) UpdateLangPackTooLongArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateLangPackTooLongArray) () ( UpdateLangPackTooLong,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateLangPackTooLongArray) () ( UpdateLangPackTooLong,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateLangPackTooLongArray) () ( UpdateLangPackTooLong,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateLangPackTooLong
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateLangPackTooLongArray) () ( UpdateLangPackTooLong,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateLangPackArray is adapter for slice of UpdateLangPack.
type UpdateLangPackArray []UpdateLangPack

// Sort sorts slice of UpdateLangPack.
func ( UpdateLangPackArray) ( func(,  UpdateLangPack) bool) UpdateLangPackArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateLangPack.
func ( UpdateLangPackArray) ( func(,  UpdateLangPack) bool) UpdateLangPackArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateLangPack.
func ( UpdateLangPackArray) ( func( UpdateLangPack) bool) UpdateLangPackArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateLangPackArray) () ( UpdateLangPack,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateLangPackArray) () ( UpdateLangPack,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateLangPackArray) () ( UpdateLangPack,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateLangPack
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateLangPackArray) () ( UpdateLangPack,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChannelReadMessagesContentsArray is adapter for slice of UpdateChannelReadMessagesContents.
type UpdateChannelReadMessagesContentsArray []UpdateChannelReadMessagesContents

// Sort sorts slice of UpdateChannelReadMessagesContents.
func ( UpdateChannelReadMessagesContentsArray) ( func(,  UpdateChannelReadMessagesContents) bool) UpdateChannelReadMessagesContentsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChannelReadMessagesContents.
func ( UpdateChannelReadMessagesContentsArray) ( func(,  UpdateChannelReadMessagesContents) bool) UpdateChannelReadMessagesContentsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChannelReadMessagesContents.
func ( UpdateChannelReadMessagesContentsArray) ( func( UpdateChannelReadMessagesContents) bool) UpdateChannelReadMessagesContentsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChannelReadMessagesContentsArray) () ( UpdateChannelReadMessagesContents,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChannelReadMessagesContentsArray) () ( UpdateChannelReadMessagesContents,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChannelReadMessagesContentsArray) () ( UpdateChannelReadMessagesContents,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChannelReadMessagesContents
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChannelReadMessagesContentsArray) () ( UpdateChannelReadMessagesContents,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChannelAvailableMessagesArray is adapter for slice of UpdateChannelAvailableMessages.
type UpdateChannelAvailableMessagesArray []UpdateChannelAvailableMessages

// Sort sorts slice of UpdateChannelAvailableMessages.
func ( UpdateChannelAvailableMessagesArray) ( func(,  UpdateChannelAvailableMessages) bool) UpdateChannelAvailableMessagesArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChannelAvailableMessages.
func ( UpdateChannelAvailableMessagesArray) ( func(,  UpdateChannelAvailableMessages) bool) UpdateChannelAvailableMessagesArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChannelAvailableMessages.
func ( UpdateChannelAvailableMessagesArray) ( func( UpdateChannelAvailableMessages) bool) UpdateChannelAvailableMessagesArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChannelAvailableMessagesArray) () ( UpdateChannelAvailableMessages,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChannelAvailableMessagesArray) () ( UpdateChannelAvailableMessages,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChannelAvailableMessagesArray) () ( UpdateChannelAvailableMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChannelAvailableMessages
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChannelAvailableMessagesArray) () ( UpdateChannelAvailableMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateDialogUnreadMarkArray is adapter for slice of UpdateDialogUnreadMark.
type UpdateDialogUnreadMarkArray []UpdateDialogUnreadMark

// Sort sorts slice of UpdateDialogUnreadMark.
func ( UpdateDialogUnreadMarkArray) ( func(,  UpdateDialogUnreadMark) bool) UpdateDialogUnreadMarkArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateDialogUnreadMark.
func ( UpdateDialogUnreadMarkArray) ( func(,  UpdateDialogUnreadMark) bool) UpdateDialogUnreadMarkArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateDialogUnreadMark.
func ( UpdateDialogUnreadMarkArray) ( func( UpdateDialogUnreadMark) bool) UpdateDialogUnreadMarkArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateDialogUnreadMarkArray) () ( UpdateDialogUnreadMark,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateDialogUnreadMarkArray) () ( UpdateDialogUnreadMark,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateDialogUnreadMarkArray) () ( UpdateDialogUnreadMark,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateDialogUnreadMark
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateDialogUnreadMarkArray) () ( UpdateDialogUnreadMark,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateMessagePollArray is adapter for slice of UpdateMessagePoll.
type UpdateMessagePollArray []UpdateMessagePoll

// Sort sorts slice of UpdateMessagePoll.
func ( UpdateMessagePollArray) ( func(,  UpdateMessagePoll) bool) UpdateMessagePollArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateMessagePoll.
func ( UpdateMessagePollArray) ( func(,  UpdateMessagePoll) bool) UpdateMessagePollArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateMessagePoll.
func ( UpdateMessagePollArray) ( func( UpdateMessagePoll) bool) UpdateMessagePollArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateMessagePollArray) () ( UpdateMessagePoll,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateMessagePollArray) () ( UpdateMessagePoll,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateMessagePollArray) () ( UpdateMessagePoll,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateMessagePoll
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateMessagePollArray) () ( UpdateMessagePoll,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChatDefaultBannedRightsArray is adapter for slice of UpdateChatDefaultBannedRights.
type UpdateChatDefaultBannedRightsArray []UpdateChatDefaultBannedRights

// Sort sorts slice of UpdateChatDefaultBannedRights.
func ( UpdateChatDefaultBannedRightsArray) ( func(,  UpdateChatDefaultBannedRights) bool) UpdateChatDefaultBannedRightsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChatDefaultBannedRights.
func ( UpdateChatDefaultBannedRightsArray) ( func(,  UpdateChatDefaultBannedRights) bool) UpdateChatDefaultBannedRightsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChatDefaultBannedRights.
func ( UpdateChatDefaultBannedRightsArray) ( func( UpdateChatDefaultBannedRights) bool) UpdateChatDefaultBannedRightsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChatDefaultBannedRightsArray) () ( UpdateChatDefaultBannedRights,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChatDefaultBannedRightsArray) () ( UpdateChatDefaultBannedRights,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChatDefaultBannedRightsArray) () ( UpdateChatDefaultBannedRights,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChatDefaultBannedRights
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChatDefaultBannedRightsArray) () ( UpdateChatDefaultBannedRights,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateFolderPeersArray is adapter for slice of UpdateFolderPeers.
type UpdateFolderPeersArray []UpdateFolderPeers

// Sort sorts slice of UpdateFolderPeers.
func ( UpdateFolderPeersArray) ( func(,  UpdateFolderPeers) bool) UpdateFolderPeersArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateFolderPeers.
func ( UpdateFolderPeersArray) ( func(,  UpdateFolderPeers) bool) UpdateFolderPeersArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateFolderPeers.
func ( UpdateFolderPeersArray) ( func( UpdateFolderPeers) bool) UpdateFolderPeersArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateFolderPeersArray) () ( UpdateFolderPeers,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateFolderPeersArray) () ( UpdateFolderPeers,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateFolderPeersArray) () ( UpdateFolderPeers,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateFolderPeers
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateFolderPeersArray) () ( UpdateFolderPeers,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePeerSettingsArray is adapter for slice of UpdatePeerSettings.
type UpdatePeerSettingsArray []UpdatePeerSettings

// Sort sorts slice of UpdatePeerSettings.
func ( UpdatePeerSettingsArray) ( func(,  UpdatePeerSettings) bool) UpdatePeerSettingsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePeerSettings.
func ( UpdatePeerSettingsArray) ( func(,  UpdatePeerSettings) bool) UpdatePeerSettingsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePeerSettings.
func ( UpdatePeerSettingsArray) ( func( UpdatePeerSettings) bool) UpdatePeerSettingsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePeerSettingsArray) () ( UpdatePeerSettings,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePeerSettingsArray) () ( UpdatePeerSettings,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePeerSettingsArray) () ( UpdatePeerSettings,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePeerSettings
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePeerSettingsArray) () ( UpdatePeerSettings,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePeerLocatedArray is adapter for slice of UpdatePeerLocated.
type UpdatePeerLocatedArray []UpdatePeerLocated

// Sort sorts slice of UpdatePeerLocated.
func ( UpdatePeerLocatedArray) ( func(,  UpdatePeerLocated) bool) UpdatePeerLocatedArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePeerLocated.
func ( UpdatePeerLocatedArray) ( func(,  UpdatePeerLocated) bool) UpdatePeerLocatedArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePeerLocated.
func ( UpdatePeerLocatedArray) ( func( UpdatePeerLocated) bool) UpdatePeerLocatedArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePeerLocatedArray) () ( UpdatePeerLocated,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePeerLocatedArray) () ( UpdatePeerLocated,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePeerLocatedArray) () ( UpdatePeerLocated,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePeerLocated
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePeerLocatedArray) () ( UpdatePeerLocated,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateNewScheduledMessageArray is adapter for slice of UpdateNewScheduledMessage.
type UpdateNewScheduledMessageArray []UpdateNewScheduledMessage

// Sort sorts slice of UpdateNewScheduledMessage.
func ( UpdateNewScheduledMessageArray) ( func(,  UpdateNewScheduledMessage) bool) UpdateNewScheduledMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateNewScheduledMessage.
func ( UpdateNewScheduledMessageArray) ( func(,  UpdateNewScheduledMessage) bool) UpdateNewScheduledMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateNewScheduledMessage.
func ( UpdateNewScheduledMessageArray) ( func( UpdateNewScheduledMessage) bool) UpdateNewScheduledMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateNewScheduledMessageArray) () ( UpdateNewScheduledMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateNewScheduledMessageArray) () ( UpdateNewScheduledMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateNewScheduledMessageArray) () ( UpdateNewScheduledMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateNewScheduledMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateNewScheduledMessageArray) () ( UpdateNewScheduledMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateDeleteScheduledMessagesArray is adapter for slice of UpdateDeleteScheduledMessages.
type UpdateDeleteScheduledMessagesArray []UpdateDeleteScheduledMessages

// Sort sorts slice of UpdateDeleteScheduledMessages.
func ( UpdateDeleteScheduledMessagesArray) ( func(,  UpdateDeleteScheduledMessages) bool) UpdateDeleteScheduledMessagesArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateDeleteScheduledMessages.
func ( UpdateDeleteScheduledMessagesArray) ( func(,  UpdateDeleteScheduledMessages) bool) UpdateDeleteScheduledMessagesArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateDeleteScheduledMessages.
func ( UpdateDeleteScheduledMessagesArray) ( func( UpdateDeleteScheduledMessages) bool) UpdateDeleteScheduledMessagesArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateDeleteScheduledMessagesArray) () ( UpdateDeleteScheduledMessages,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateDeleteScheduledMessagesArray) () ( UpdateDeleteScheduledMessages,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateDeleteScheduledMessagesArray) () ( UpdateDeleteScheduledMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateDeleteScheduledMessages
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateDeleteScheduledMessagesArray) () ( UpdateDeleteScheduledMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateThemeArray is adapter for slice of UpdateTheme.
type UpdateThemeArray []UpdateTheme

// Sort sorts slice of UpdateTheme.
func ( UpdateThemeArray) ( func(,  UpdateTheme) bool) UpdateThemeArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateTheme.
func ( UpdateThemeArray) ( func(,  UpdateTheme) bool) UpdateThemeArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateTheme.
func ( UpdateThemeArray) ( func( UpdateTheme) bool) UpdateThemeArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateThemeArray) () ( UpdateTheme,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateThemeArray) () ( UpdateTheme,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateThemeArray) () ( UpdateTheme,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateTheme
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateThemeArray) () ( UpdateTheme,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateGeoLiveViewedArray is adapter for slice of UpdateGeoLiveViewed.
type UpdateGeoLiveViewedArray []UpdateGeoLiveViewed

// Sort sorts slice of UpdateGeoLiveViewed.
func ( UpdateGeoLiveViewedArray) ( func(,  UpdateGeoLiveViewed) bool) UpdateGeoLiveViewedArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateGeoLiveViewed.
func ( UpdateGeoLiveViewedArray) ( func(,  UpdateGeoLiveViewed) bool) UpdateGeoLiveViewedArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateGeoLiveViewed.
func ( UpdateGeoLiveViewedArray) ( func( UpdateGeoLiveViewed) bool) UpdateGeoLiveViewedArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateGeoLiveViewedArray) () ( UpdateGeoLiveViewed,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateGeoLiveViewedArray) () ( UpdateGeoLiveViewed,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateGeoLiveViewedArray) () ( UpdateGeoLiveViewed,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateGeoLiveViewed
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateGeoLiveViewedArray) () ( UpdateGeoLiveViewed,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateMessagePollVoteArray is adapter for slice of UpdateMessagePollVote.
type UpdateMessagePollVoteArray []UpdateMessagePollVote

// Sort sorts slice of UpdateMessagePollVote.
func ( UpdateMessagePollVoteArray) ( func(,  UpdateMessagePollVote) bool) UpdateMessagePollVoteArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateMessagePollVote.
func ( UpdateMessagePollVoteArray) ( func(,  UpdateMessagePollVote) bool) UpdateMessagePollVoteArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateMessagePollVote.
func ( UpdateMessagePollVoteArray) ( func( UpdateMessagePollVote) bool) UpdateMessagePollVoteArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateMessagePollVoteArray) () ( UpdateMessagePollVote,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateMessagePollVoteArray) () ( UpdateMessagePollVote,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateMessagePollVoteArray) () ( UpdateMessagePollVote,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateMessagePollVote
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateMessagePollVoteArray) () ( UpdateMessagePollVote,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateDialogFilterArray is adapter for slice of UpdateDialogFilter.
type UpdateDialogFilterArray []UpdateDialogFilter

// Sort sorts slice of UpdateDialogFilter.
func ( UpdateDialogFilterArray) ( func(,  UpdateDialogFilter) bool) UpdateDialogFilterArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateDialogFilter.
func ( UpdateDialogFilterArray) ( func(,  UpdateDialogFilter) bool) UpdateDialogFilterArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateDialogFilter.
func ( UpdateDialogFilterArray) ( func( UpdateDialogFilter) bool) UpdateDialogFilterArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateDialogFilterArray) () ( UpdateDialogFilter,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateDialogFilterArray) () ( UpdateDialogFilter,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateDialogFilterArray) () ( UpdateDialogFilter,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateDialogFilter
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateDialogFilterArray) () ( UpdateDialogFilter,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByID sorts slice of UpdateDialogFilter by ID.
func ( UpdateDialogFilterArray) () UpdateDialogFilterArray {
	return .Sort(func(,  UpdateDialogFilter) bool {
		return .GetID() < .GetID()
	})
}

// SortStableByID sorts slice of UpdateDialogFilter by ID.
func ( UpdateDialogFilterArray) () UpdateDialogFilterArray {
	return .SortStable(func(,  UpdateDialogFilter) bool {
		return .GetID() < .GetID()
	})
}

// FillMap fills constructors to given map.
func ( UpdateDialogFilterArray) ( map[int]UpdateDialogFilter) {
	for ,  := range  {
		[.GetID()] = 
	}
}

// ToMap collects constructors to map.
func ( UpdateDialogFilterArray) () map[int]UpdateDialogFilter {
	 := make(map[int]UpdateDialogFilter, len())
	.FillMap()
	return 
}

// UpdateDialogFilterOrderArray is adapter for slice of UpdateDialogFilterOrder.
type UpdateDialogFilterOrderArray []UpdateDialogFilterOrder

// Sort sorts slice of UpdateDialogFilterOrder.
func ( UpdateDialogFilterOrderArray) ( func(,  UpdateDialogFilterOrder) bool) UpdateDialogFilterOrderArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateDialogFilterOrder.
func ( UpdateDialogFilterOrderArray) ( func(,  UpdateDialogFilterOrder) bool) UpdateDialogFilterOrderArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateDialogFilterOrder.
func ( UpdateDialogFilterOrderArray) ( func( UpdateDialogFilterOrder) bool) UpdateDialogFilterOrderArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateDialogFilterOrderArray) () ( UpdateDialogFilterOrder,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateDialogFilterOrderArray) () ( UpdateDialogFilterOrder,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateDialogFilterOrderArray) () ( UpdateDialogFilterOrder,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateDialogFilterOrder
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateDialogFilterOrderArray) () ( UpdateDialogFilterOrder,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePhoneCallSignalingDataArray is adapter for slice of UpdatePhoneCallSignalingData.
type UpdatePhoneCallSignalingDataArray []UpdatePhoneCallSignalingData

// Sort sorts slice of UpdatePhoneCallSignalingData.
func ( UpdatePhoneCallSignalingDataArray) ( func(,  UpdatePhoneCallSignalingData) bool) UpdatePhoneCallSignalingDataArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePhoneCallSignalingData.
func ( UpdatePhoneCallSignalingDataArray) ( func(,  UpdatePhoneCallSignalingData) bool) UpdatePhoneCallSignalingDataArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePhoneCallSignalingData.
func ( UpdatePhoneCallSignalingDataArray) ( func( UpdatePhoneCallSignalingData) bool) UpdatePhoneCallSignalingDataArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePhoneCallSignalingDataArray) () ( UpdatePhoneCallSignalingData,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePhoneCallSignalingDataArray) () ( UpdatePhoneCallSignalingData,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePhoneCallSignalingDataArray) () ( UpdatePhoneCallSignalingData,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePhoneCallSignalingData
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePhoneCallSignalingDataArray) () ( UpdatePhoneCallSignalingData,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChannelMessageForwardsArray is adapter for slice of UpdateChannelMessageForwards.
type UpdateChannelMessageForwardsArray []UpdateChannelMessageForwards

// Sort sorts slice of UpdateChannelMessageForwards.
func ( UpdateChannelMessageForwardsArray) ( func(,  UpdateChannelMessageForwards) bool) UpdateChannelMessageForwardsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChannelMessageForwards.
func ( UpdateChannelMessageForwardsArray) ( func(,  UpdateChannelMessageForwards) bool) UpdateChannelMessageForwardsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChannelMessageForwards.
func ( UpdateChannelMessageForwardsArray) ( func( UpdateChannelMessageForwards) bool) UpdateChannelMessageForwardsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChannelMessageForwardsArray) () ( UpdateChannelMessageForwards,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChannelMessageForwardsArray) () ( UpdateChannelMessageForwards,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChannelMessageForwardsArray) () ( UpdateChannelMessageForwards,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChannelMessageForwards
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChannelMessageForwardsArray) () ( UpdateChannelMessageForwards,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByID sorts slice of UpdateChannelMessageForwards by ID.
func ( UpdateChannelMessageForwardsArray) () UpdateChannelMessageForwardsArray {
	return .Sort(func(,  UpdateChannelMessageForwards) bool {
		return .GetID() < .GetID()
	})
}

// SortStableByID sorts slice of UpdateChannelMessageForwards by ID.
func ( UpdateChannelMessageForwardsArray) () UpdateChannelMessageForwardsArray {
	return .SortStable(func(,  UpdateChannelMessageForwards) bool {
		return .GetID() < .GetID()
	})
}

// FillMap fills constructors to given map.
func ( UpdateChannelMessageForwardsArray) ( map[int]UpdateChannelMessageForwards) {
	for ,  := range  {
		[.GetID()] = 
	}
}

// ToMap collects constructors to map.
func ( UpdateChannelMessageForwardsArray) () map[int]UpdateChannelMessageForwards {
	 := make(map[int]UpdateChannelMessageForwards, len())
	.FillMap()
	return 
}

// UpdateReadChannelDiscussionInboxArray is adapter for slice of UpdateReadChannelDiscussionInbox.
type UpdateReadChannelDiscussionInboxArray []UpdateReadChannelDiscussionInbox

// Sort sorts slice of UpdateReadChannelDiscussionInbox.
func ( UpdateReadChannelDiscussionInboxArray) ( func(,  UpdateReadChannelDiscussionInbox) bool) UpdateReadChannelDiscussionInboxArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateReadChannelDiscussionInbox.
func ( UpdateReadChannelDiscussionInboxArray) ( func(,  UpdateReadChannelDiscussionInbox) bool) UpdateReadChannelDiscussionInboxArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateReadChannelDiscussionInbox.
func ( UpdateReadChannelDiscussionInboxArray) ( func( UpdateReadChannelDiscussionInbox) bool) UpdateReadChannelDiscussionInboxArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateReadChannelDiscussionInboxArray) () ( UpdateReadChannelDiscussionInbox,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateReadChannelDiscussionInboxArray) () ( UpdateReadChannelDiscussionInbox,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateReadChannelDiscussionInboxArray) () ( UpdateReadChannelDiscussionInbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateReadChannelDiscussionInbox
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateReadChannelDiscussionInboxArray) () ( UpdateReadChannelDiscussionInbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateReadChannelDiscussionOutboxArray is adapter for slice of UpdateReadChannelDiscussionOutbox.
type UpdateReadChannelDiscussionOutboxArray []UpdateReadChannelDiscussionOutbox

// Sort sorts slice of UpdateReadChannelDiscussionOutbox.
func ( UpdateReadChannelDiscussionOutboxArray) ( func(,  UpdateReadChannelDiscussionOutbox) bool) UpdateReadChannelDiscussionOutboxArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateReadChannelDiscussionOutbox.
func ( UpdateReadChannelDiscussionOutboxArray) ( func(,  UpdateReadChannelDiscussionOutbox) bool) UpdateReadChannelDiscussionOutboxArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateReadChannelDiscussionOutbox.
func ( UpdateReadChannelDiscussionOutboxArray) ( func( UpdateReadChannelDiscussionOutbox) bool) UpdateReadChannelDiscussionOutboxArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateReadChannelDiscussionOutboxArray) () ( UpdateReadChannelDiscussionOutbox,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateReadChannelDiscussionOutboxArray) () ( UpdateReadChannelDiscussionOutbox,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateReadChannelDiscussionOutboxArray) () ( UpdateReadChannelDiscussionOutbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateReadChannelDiscussionOutbox
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateReadChannelDiscussionOutboxArray) () ( UpdateReadChannelDiscussionOutbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePeerBlockedArray is adapter for slice of UpdatePeerBlocked.
type UpdatePeerBlockedArray []UpdatePeerBlocked

// Sort sorts slice of UpdatePeerBlocked.
func ( UpdatePeerBlockedArray) ( func(,  UpdatePeerBlocked) bool) UpdatePeerBlockedArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePeerBlocked.
func ( UpdatePeerBlockedArray) ( func(,  UpdatePeerBlocked) bool) UpdatePeerBlockedArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePeerBlocked.
func ( UpdatePeerBlockedArray) ( func( UpdatePeerBlocked) bool) UpdatePeerBlockedArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePeerBlockedArray) () ( UpdatePeerBlocked,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePeerBlockedArray) () ( UpdatePeerBlocked,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePeerBlockedArray) () ( UpdatePeerBlocked,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePeerBlocked
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePeerBlockedArray) () ( UpdatePeerBlocked,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChannelUserTypingArray is adapter for slice of UpdateChannelUserTyping.
type UpdateChannelUserTypingArray []UpdateChannelUserTyping

// Sort sorts slice of UpdateChannelUserTyping.
func ( UpdateChannelUserTypingArray) ( func(,  UpdateChannelUserTyping) bool) UpdateChannelUserTypingArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChannelUserTyping.
func ( UpdateChannelUserTypingArray) ( func(,  UpdateChannelUserTyping) bool) UpdateChannelUserTypingArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChannelUserTyping.
func ( UpdateChannelUserTypingArray) ( func( UpdateChannelUserTyping) bool) UpdateChannelUserTypingArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChannelUserTypingArray) () ( UpdateChannelUserTyping,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChannelUserTypingArray) () ( UpdateChannelUserTyping,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChannelUserTypingArray) () ( UpdateChannelUserTyping,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChannelUserTyping
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChannelUserTypingArray) () ( UpdateChannelUserTyping,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePinnedMessagesArray is adapter for slice of UpdatePinnedMessages.
type UpdatePinnedMessagesArray []UpdatePinnedMessages

// Sort sorts slice of UpdatePinnedMessages.
func ( UpdatePinnedMessagesArray) ( func(,  UpdatePinnedMessages) bool) UpdatePinnedMessagesArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePinnedMessages.
func ( UpdatePinnedMessagesArray) ( func(,  UpdatePinnedMessages) bool) UpdatePinnedMessagesArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePinnedMessages.
func ( UpdatePinnedMessagesArray) ( func( UpdatePinnedMessages) bool) UpdatePinnedMessagesArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePinnedMessagesArray) () ( UpdatePinnedMessages,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePinnedMessagesArray) () ( UpdatePinnedMessages,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePinnedMessagesArray) () ( UpdatePinnedMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePinnedMessages
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePinnedMessagesArray) () ( UpdatePinnedMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePinnedChannelMessagesArray is adapter for slice of UpdatePinnedChannelMessages.
type UpdatePinnedChannelMessagesArray []UpdatePinnedChannelMessages

// Sort sorts slice of UpdatePinnedChannelMessages.
func ( UpdatePinnedChannelMessagesArray) ( func(,  UpdatePinnedChannelMessages) bool) UpdatePinnedChannelMessagesArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePinnedChannelMessages.
func ( UpdatePinnedChannelMessagesArray) ( func(,  UpdatePinnedChannelMessages) bool) UpdatePinnedChannelMessagesArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePinnedChannelMessages.
func ( UpdatePinnedChannelMessagesArray) ( func( UpdatePinnedChannelMessages) bool) UpdatePinnedChannelMessagesArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePinnedChannelMessagesArray) () ( UpdatePinnedChannelMessages,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePinnedChannelMessagesArray) () ( UpdatePinnedChannelMessages,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePinnedChannelMessagesArray) () ( UpdatePinnedChannelMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePinnedChannelMessages
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePinnedChannelMessagesArray) () ( UpdatePinnedChannelMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChatArray is adapter for slice of UpdateChat.
type UpdateChatArray []UpdateChat

// Sort sorts slice of UpdateChat.
func ( UpdateChatArray) ( func(,  UpdateChat) bool) UpdateChatArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChat.
func ( UpdateChatArray) ( func(,  UpdateChat) bool) UpdateChatArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChat.
func ( UpdateChatArray) ( func( UpdateChat) bool) UpdateChatArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChatArray) () ( UpdateChat,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChatArray) () ( UpdateChat,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChatArray) () ( UpdateChat,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChat
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChatArray) () ( UpdateChat,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateGroupCallParticipantsArray is adapter for slice of UpdateGroupCallParticipants.
type UpdateGroupCallParticipantsArray []UpdateGroupCallParticipants

// Sort sorts slice of UpdateGroupCallParticipants.
func ( UpdateGroupCallParticipantsArray) ( func(,  UpdateGroupCallParticipants) bool) UpdateGroupCallParticipantsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateGroupCallParticipants.
func ( UpdateGroupCallParticipantsArray) ( func(,  UpdateGroupCallParticipants) bool) UpdateGroupCallParticipantsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateGroupCallParticipants.
func ( UpdateGroupCallParticipantsArray) ( func( UpdateGroupCallParticipants) bool) UpdateGroupCallParticipantsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateGroupCallParticipantsArray) () ( UpdateGroupCallParticipants,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateGroupCallParticipantsArray) () ( UpdateGroupCallParticipants,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateGroupCallParticipantsArray) () ( UpdateGroupCallParticipants,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateGroupCallParticipants
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateGroupCallParticipantsArray) () ( UpdateGroupCallParticipants,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateGroupCallArray is adapter for slice of UpdateGroupCall.
type UpdateGroupCallArray []UpdateGroupCall

// Sort sorts slice of UpdateGroupCall.
func ( UpdateGroupCallArray) ( func(,  UpdateGroupCall) bool) UpdateGroupCallArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateGroupCall.
func ( UpdateGroupCallArray) ( func(,  UpdateGroupCall) bool) UpdateGroupCallArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateGroupCall.
func ( UpdateGroupCallArray) ( func( UpdateGroupCall) bool) UpdateGroupCallArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateGroupCallArray) () ( UpdateGroupCall,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateGroupCallArray) () ( UpdateGroupCall,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateGroupCallArray) () ( UpdateGroupCall,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateGroupCall
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateGroupCallArray) () ( UpdateGroupCall,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePeerHistoryTTLArray is adapter for slice of UpdatePeerHistoryTTL.
type UpdatePeerHistoryTTLArray []UpdatePeerHistoryTTL

// Sort sorts slice of UpdatePeerHistoryTTL.
func ( UpdatePeerHistoryTTLArray) ( func(,  UpdatePeerHistoryTTL) bool) UpdatePeerHistoryTTLArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePeerHistoryTTL.
func ( UpdatePeerHistoryTTLArray) ( func(,  UpdatePeerHistoryTTL) bool) UpdatePeerHistoryTTLArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePeerHistoryTTL.
func ( UpdatePeerHistoryTTLArray) ( func( UpdatePeerHistoryTTL) bool) UpdatePeerHistoryTTLArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePeerHistoryTTLArray) () ( UpdatePeerHistoryTTL,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePeerHistoryTTLArray) () ( UpdatePeerHistoryTTL,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePeerHistoryTTLArray) () ( UpdatePeerHistoryTTL,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePeerHistoryTTL
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePeerHistoryTTLArray) () ( UpdatePeerHistoryTTL,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChatParticipantArray is adapter for slice of UpdateChatParticipant.
type UpdateChatParticipantArray []UpdateChatParticipant

// Sort sorts slice of UpdateChatParticipant.
func ( UpdateChatParticipantArray) ( func(,  UpdateChatParticipant) bool) UpdateChatParticipantArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChatParticipant.
func ( UpdateChatParticipantArray) ( func(,  UpdateChatParticipant) bool) UpdateChatParticipantArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChatParticipant.
func ( UpdateChatParticipantArray) ( func( UpdateChatParticipant) bool) UpdateChatParticipantArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChatParticipantArray) () ( UpdateChatParticipant,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChatParticipantArray) () ( UpdateChatParticipant,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChatParticipantArray) () ( UpdateChatParticipant,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChatParticipant
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChatParticipantArray) () ( UpdateChatParticipant,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByDate sorts slice of UpdateChatParticipant by Date.
func ( UpdateChatParticipantArray) () UpdateChatParticipantArray {
	return .Sort(func(,  UpdateChatParticipant) bool {
		return .GetDate() < .GetDate()
	})
}

// SortStableByDate sorts slice of UpdateChatParticipant by Date.
func ( UpdateChatParticipantArray) () UpdateChatParticipantArray {
	return .SortStable(func(,  UpdateChatParticipant) bool {
		return .GetDate() < .GetDate()
	})
}

// UpdateChannelParticipantArray is adapter for slice of UpdateChannelParticipant.
type UpdateChannelParticipantArray []UpdateChannelParticipant

// Sort sorts slice of UpdateChannelParticipant.
func ( UpdateChannelParticipantArray) ( func(,  UpdateChannelParticipant) bool) UpdateChannelParticipantArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChannelParticipant.
func ( UpdateChannelParticipantArray) ( func(,  UpdateChannelParticipant) bool) UpdateChannelParticipantArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChannelParticipant.
func ( UpdateChannelParticipantArray) ( func( UpdateChannelParticipant) bool) UpdateChannelParticipantArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChannelParticipantArray) () ( UpdateChannelParticipant,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChannelParticipantArray) () ( UpdateChannelParticipant,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChannelParticipantArray) () ( UpdateChannelParticipant,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChannelParticipant
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChannelParticipantArray) () ( UpdateChannelParticipant,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByDate sorts slice of UpdateChannelParticipant by Date.
func ( UpdateChannelParticipantArray) () UpdateChannelParticipantArray {
	return .Sort(func(,  UpdateChannelParticipant) bool {
		return .GetDate() < .GetDate()
	})
}

// SortStableByDate sorts slice of UpdateChannelParticipant by Date.
func ( UpdateChannelParticipantArray) () UpdateChannelParticipantArray {
	return .SortStable(func(,  UpdateChannelParticipant) bool {
		return .GetDate() < .GetDate()
	})
}

// UpdateBotStoppedArray is adapter for slice of UpdateBotStopped.
type UpdateBotStoppedArray []UpdateBotStopped

// Sort sorts slice of UpdateBotStopped.
func ( UpdateBotStoppedArray) ( func(,  UpdateBotStopped) bool) UpdateBotStoppedArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotStopped.
func ( UpdateBotStoppedArray) ( func(,  UpdateBotStopped) bool) UpdateBotStoppedArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotStopped.
func ( UpdateBotStoppedArray) ( func( UpdateBotStopped) bool) UpdateBotStoppedArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotStoppedArray) () ( UpdateBotStopped,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotStoppedArray) () ( UpdateBotStopped,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotStoppedArray) () ( UpdateBotStopped,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotStopped
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotStoppedArray) () ( UpdateBotStopped,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByDate sorts slice of UpdateBotStopped by Date.
func ( UpdateBotStoppedArray) () UpdateBotStoppedArray {
	return .Sort(func(,  UpdateBotStopped) bool {
		return .GetDate() < .GetDate()
	})
}

// SortStableByDate sorts slice of UpdateBotStopped by Date.
func ( UpdateBotStoppedArray) () UpdateBotStoppedArray {
	return .SortStable(func(,  UpdateBotStopped) bool {
		return .GetDate() < .GetDate()
	})
}

// UpdateGroupCallConnectionArray is adapter for slice of UpdateGroupCallConnection.
type UpdateGroupCallConnectionArray []UpdateGroupCallConnection

// Sort sorts slice of UpdateGroupCallConnection.
func ( UpdateGroupCallConnectionArray) ( func(,  UpdateGroupCallConnection) bool) UpdateGroupCallConnectionArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateGroupCallConnection.
func ( UpdateGroupCallConnectionArray) ( func(,  UpdateGroupCallConnection) bool) UpdateGroupCallConnectionArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateGroupCallConnection.
func ( UpdateGroupCallConnectionArray) ( func( UpdateGroupCallConnection) bool) UpdateGroupCallConnectionArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateGroupCallConnectionArray) () ( UpdateGroupCallConnection,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateGroupCallConnectionArray) () ( UpdateGroupCallConnection,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateGroupCallConnectionArray) () ( UpdateGroupCallConnection,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateGroupCallConnection
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateGroupCallConnectionArray) () ( UpdateGroupCallConnection,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotCommandsArray is adapter for slice of UpdateBotCommands.
type UpdateBotCommandsArray []UpdateBotCommands

// Sort sorts slice of UpdateBotCommands.
func ( UpdateBotCommandsArray) ( func(,  UpdateBotCommands) bool) UpdateBotCommandsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotCommands.
func ( UpdateBotCommandsArray) ( func(,  UpdateBotCommands) bool) UpdateBotCommandsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotCommands.
func ( UpdateBotCommandsArray) ( func( UpdateBotCommands) bool) UpdateBotCommandsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotCommandsArray) () ( UpdateBotCommands,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotCommandsArray) () ( UpdateBotCommands,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotCommandsArray) () ( UpdateBotCommands,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotCommands
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotCommandsArray) () ( UpdateBotCommands,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePendingJoinRequestsArray is adapter for slice of UpdatePendingJoinRequests.
type UpdatePendingJoinRequestsArray []UpdatePendingJoinRequests

// Sort sorts slice of UpdatePendingJoinRequests.
func ( UpdatePendingJoinRequestsArray) ( func(,  UpdatePendingJoinRequests) bool) UpdatePendingJoinRequestsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePendingJoinRequests.
func ( UpdatePendingJoinRequestsArray) ( func(,  UpdatePendingJoinRequests) bool) UpdatePendingJoinRequestsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePendingJoinRequests.
func ( UpdatePendingJoinRequestsArray) ( func( UpdatePendingJoinRequests) bool) UpdatePendingJoinRequestsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePendingJoinRequestsArray) () ( UpdatePendingJoinRequests,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePendingJoinRequestsArray) () ( UpdatePendingJoinRequests,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePendingJoinRequestsArray) () ( UpdatePendingJoinRequests,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePendingJoinRequests
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePendingJoinRequestsArray) () ( UpdatePendingJoinRequests,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotChatInviteRequesterArray is adapter for slice of UpdateBotChatInviteRequester.
type UpdateBotChatInviteRequesterArray []UpdateBotChatInviteRequester

// Sort sorts slice of UpdateBotChatInviteRequester.
func ( UpdateBotChatInviteRequesterArray) ( func(,  UpdateBotChatInviteRequester) bool) UpdateBotChatInviteRequesterArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotChatInviteRequester.
func ( UpdateBotChatInviteRequesterArray) ( func(,  UpdateBotChatInviteRequester) bool) UpdateBotChatInviteRequesterArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotChatInviteRequester.
func ( UpdateBotChatInviteRequesterArray) ( func( UpdateBotChatInviteRequester) bool) UpdateBotChatInviteRequesterArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotChatInviteRequesterArray) () ( UpdateBotChatInviteRequester,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotChatInviteRequesterArray) () ( UpdateBotChatInviteRequester,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotChatInviteRequesterArray) () ( UpdateBotChatInviteRequester,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotChatInviteRequester
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotChatInviteRequesterArray) () ( UpdateBotChatInviteRequester,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByDate sorts slice of UpdateBotChatInviteRequester by Date.
func ( UpdateBotChatInviteRequesterArray) () UpdateBotChatInviteRequesterArray {
	return .Sort(func(,  UpdateBotChatInviteRequester) bool {
		return .GetDate() < .GetDate()
	})
}

// SortStableByDate sorts slice of UpdateBotChatInviteRequester by Date.
func ( UpdateBotChatInviteRequesterArray) () UpdateBotChatInviteRequesterArray {
	return .SortStable(func(,  UpdateBotChatInviteRequester) bool {
		return .GetDate() < .GetDate()
	})
}

// UpdateMessageReactionsArray is adapter for slice of UpdateMessageReactions.
type UpdateMessageReactionsArray []UpdateMessageReactions

// Sort sorts slice of UpdateMessageReactions.
func ( UpdateMessageReactionsArray) ( func(,  UpdateMessageReactions) bool) UpdateMessageReactionsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateMessageReactions.
func ( UpdateMessageReactionsArray) ( func(,  UpdateMessageReactions) bool) UpdateMessageReactionsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateMessageReactions.
func ( UpdateMessageReactionsArray) ( func( UpdateMessageReactions) bool) UpdateMessageReactionsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateMessageReactionsArray) () ( UpdateMessageReactions,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateMessageReactionsArray) () ( UpdateMessageReactions,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateMessageReactionsArray) () ( UpdateMessageReactions,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateMessageReactions
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateMessageReactionsArray) () ( UpdateMessageReactions,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateWebViewResultSentArray is adapter for slice of UpdateWebViewResultSent.
type UpdateWebViewResultSentArray []UpdateWebViewResultSent

// Sort sorts slice of UpdateWebViewResultSent.
func ( UpdateWebViewResultSentArray) ( func(,  UpdateWebViewResultSent) bool) UpdateWebViewResultSentArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateWebViewResultSent.
func ( UpdateWebViewResultSentArray) ( func(,  UpdateWebViewResultSent) bool) UpdateWebViewResultSentArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateWebViewResultSent.
func ( UpdateWebViewResultSentArray) ( func( UpdateWebViewResultSent) bool) UpdateWebViewResultSentArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateWebViewResultSentArray) () ( UpdateWebViewResultSent,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateWebViewResultSentArray) () ( UpdateWebViewResultSent,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateWebViewResultSentArray) () ( UpdateWebViewResultSent,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateWebViewResultSent
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateWebViewResultSentArray) () ( UpdateWebViewResultSent,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotMenuButtonArray is adapter for slice of UpdateBotMenuButton.
type UpdateBotMenuButtonArray []UpdateBotMenuButton

// Sort sorts slice of UpdateBotMenuButton.
func ( UpdateBotMenuButtonArray) ( func(,  UpdateBotMenuButton) bool) UpdateBotMenuButtonArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotMenuButton.
func ( UpdateBotMenuButtonArray) ( func(,  UpdateBotMenuButton) bool) UpdateBotMenuButtonArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotMenuButton.
func ( UpdateBotMenuButtonArray) ( func( UpdateBotMenuButton) bool) UpdateBotMenuButtonArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotMenuButtonArray) () ( UpdateBotMenuButton,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotMenuButtonArray) () ( UpdateBotMenuButton,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotMenuButtonArray) () ( UpdateBotMenuButton,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotMenuButton
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotMenuButtonArray) () ( UpdateBotMenuButton,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateTranscribedAudioArray is adapter for slice of UpdateTranscribedAudio.
type UpdateTranscribedAudioArray []UpdateTranscribedAudio

// Sort sorts slice of UpdateTranscribedAudio.
func ( UpdateTranscribedAudioArray) ( func(,  UpdateTranscribedAudio) bool) UpdateTranscribedAudioArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateTranscribedAudio.
func ( UpdateTranscribedAudioArray) ( func(,  UpdateTranscribedAudio) bool) UpdateTranscribedAudioArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateTranscribedAudio.
func ( UpdateTranscribedAudioArray) ( func( UpdateTranscribedAudio) bool) UpdateTranscribedAudioArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateTranscribedAudioArray) () ( UpdateTranscribedAudio,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateTranscribedAudioArray) () ( UpdateTranscribedAudio,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateTranscribedAudioArray) () ( UpdateTranscribedAudio,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateTranscribedAudio
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateTranscribedAudioArray) () ( UpdateTranscribedAudio,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateUserEmojiStatusArray is adapter for slice of UpdateUserEmojiStatus.
type UpdateUserEmojiStatusArray []UpdateUserEmojiStatus

// Sort sorts slice of UpdateUserEmojiStatus.
func ( UpdateUserEmojiStatusArray) ( func(,  UpdateUserEmojiStatus) bool) UpdateUserEmojiStatusArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateUserEmojiStatus.
func ( UpdateUserEmojiStatusArray) ( func(,  UpdateUserEmojiStatus) bool) UpdateUserEmojiStatusArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateUserEmojiStatus.
func ( UpdateUserEmojiStatusArray) ( func( UpdateUserEmojiStatus) bool) UpdateUserEmojiStatusArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateUserEmojiStatusArray) () ( UpdateUserEmojiStatus,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateUserEmojiStatusArray) () ( UpdateUserEmojiStatus,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateUserEmojiStatusArray) () ( UpdateUserEmojiStatus,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateUserEmojiStatus
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateUserEmojiStatusArray) () ( UpdateUserEmojiStatus,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateMoveStickerSetToTopArray is adapter for slice of UpdateMoveStickerSetToTop.
type UpdateMoveStickerSetToTopArray []UpdateMoveStickerSetToTop

// Sort sorts slice of UpdateMoveStickerSetToTop.
func ( UpdateMoveStickerSetToTopArray) ( func(,  UpdateMoveStickerSetToTop) bool) UpdateMoveStickerSetToTopArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateMoveStickerSetToTop.
func ( UpdateMoveStickerSetToTopArray) ( func(,  UpdateMoveStickerSetToTop) bool) UpdateMoveStickerSetToTopArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateMoveStickerSetToTop.
func ( UpdateMoveStickerSetToTopArray) ( func( UpdateMoveStickerSetToTop) bool) UpdateMoveStickerSetToTopArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateMoveStickerSetToTopArray) () ( UpdateMoveStickerSetToTop,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateMoveStickerSetToTopArray) () ( UpdateMoveStickerSetToTop,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateMoveStickerSetToTopArray) () ( UpdateMoveStickerSetToTop,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateMoveStickerSetToTop
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateMoveStickerSetToTopArray) () ( UpdateMoveStickerSetToTop,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateMessageExtendedMediaArray is adapter for slice of UpdateMessageExtendedMedia.
type UpdateMessageExtendedMediaArray []UpdateMessageExtendedMedia

// Sort sorts slice of UpdateMessageExtendedMedia.
func ( UpdateMessageExtendedMediaArray) ( func(,  UpdateMessageExtendedMedia) bool) UpdateMessageExtendedMediaArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateMessageExtendedMedia.
func ( UpdateMessageExtendedMediaArray) ( func(,  UpdateMessageExtendedMedia) bool) UpdateMessageExtendedMediaArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateMessageExtendedMedia.
func ( UpdateMessageExtendedMediaArray) ( func( UpdateMessageExtendedMedia) bool) UpdateMessageExtendedMediaArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateMessageExtendedMediaArray) () ( UpdateMessageExtendedMedia,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateMessageExtendedMediaArray) () ( UpdateMessageExtendedMedia,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateMessageExtendedMediaArray) () ( UpdateMessageExtendedMedia,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateMessageExtendedMedia
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateMessageExtendedMediaArray) () ( UpdateMessageExtendedMedia,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateUserArray is adapter for slice of UpdateUser.
type UpdateUserArray []UpdateUser

// Sort sorts slice of UpdateUser.
func ( UpdateUserArray) ( func(,  UpdateUser) bool) UpdateUserArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateUser.
func ( UpdateUserArray) ( func(,  UpdateUser) bool) UpdateUserArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateUser.
func ( UpdateUserArray) ( func( UpdateUser) bool) UpdateUserArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateUserArray) () ( UpdateUser,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateUserArray) () ( UpdateUser,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateUserArray) () ( UpdateUser,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateUser
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateUserArray) () ( UpdateUser,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateStoryArray is adapter for slice of UpdateStory.
type UpdateStoryArray []UpdateStory

// Sort sorts slice of UpdateStory.
func ( UpdateStoryArray) ( func(,  UpdateStory) bool) UpdateStoryArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateStory.
func ( UpdateStoryArray) ( func(,  UpdateStory) bool) UpdateStoryArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateStory.
func ( UpdateStoryArray) ( func( UpdateStory) bool) UpdateStoryArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateStoryArray) () ( UpdateStory,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateStoryArray) () ( UpdateStory,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateStoryArray) () ( UpdateStory,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateStory
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateStoryArray) () ( UpdateStory,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateReadStoriesArray is adapter for slice of UpdateReadStories.
type UpdateReadStoriesArray []UpdateReadStories

// Sort sorts slice of UpdateReadStories.
func ( UpdateReadStoriesArray) ( func(,  UpdateReadStories) bool) UpdateReadStoriesArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateReadStories.
func ( UpdateReadStoriesArray) ( func(,  UpdateReadStories) bool) UpdateReadStoriesArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateReadStories.
func ( UpdateReadStoriesArray) ( func( UpdateReadStories) bool) UpdateReadStoriesArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateReadStoriesArray) () ( UpdateReadStories,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateReadStoriesArray) () ( UpdateReadStories,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateReadStoriesArray) () ( UpdateReadStories,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateReadStories
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateReadStoriesArray) () ( UpdateReadStories,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateStoryIDArray is adapter for slice of UpdateStoryID.
type UpdateStoryIDArray []UpdateStoryID

// Sort sorts slice of UpdateStoryID.
func ( UpdateStoryIDArray) ( func(,  UpdateStoryID) bool) UpdateStoryIDArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateStoryID.
func ( UpdateStoryIDArray) ( func(,  UpdateStoryID) bool) UpdateStoryIDArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateStoryID.
func ( UpdateStoryIDArray) ( func( UpdateStoryID) bool) UpdateStoryIDArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateStoryIDArray) () ( UpdateStoryID,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateStoryIDArray) () ( UpdateStoryID,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateStoryIDArray) () ( UpdateStoryID,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateStoryID
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateStoryIDArray) () ( UpdateStoryID,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByID sorts slice of UpdateStoryID by ID.
func ( UpdateStoryIDArray) () UpdateStoryIDArray {
	return .Sort(func(,  UpdateStoryID) bool {
		return .GetID() < .GetID()
	})
}

// SortStableByID sorts slice of UpdateStoryID by ID.
func ( UpdateStoryIDArray) () UpdateStoryIDArray {
	return .SortStable(func(,  UpdateStoryID) bool {
		return .GetID() < .GetID()
	})
}

// FillMap fills constructors to given map.
func ( UpdateStoryIDArray) ( map[int]UpdateStoryID) {
	for ,  := range  {
		[.GetID()] = 
	}
}

// ToMap collects constructors to map.
func ( UpdateStoryIDArray) () map[int]UpdateStoryID {
	 := make(map[int]UpdateStoryID, len())
	.FillMap()
	return 
}

// UpdateStoriesStealthModeArray is adapter for slice of UpdateStoriesStealthMode.
type UpdateStoriesStealthModeArray []UpdateStoriesStealthMode

// Sort sorts slice of UpdateStoriesStealthMode.
func ( UpdateStoriesStealthModeArray) ( func(,  UpdateStoriesStealthMode) bool) UpdateStoriesStealthModeArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateStoriesStealthMode.
func ( UpdateStoriesStealthModeArray) ( func(,  UpdateStoriesStealthMode) bool) UpdateStoriesStealthModeArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateStoriesStealthMode.
func ( UpdateStoriesStealthModeArray) ( func( UpdateStoriesStealthMode) bool) UpdateStoriesStealthModeArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateStoriesStealthModeArray) () ( UpdateStoriesStealthMode,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateStoriesStealthModeArray) () ( UpdateStoriesStealthMode,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateStoriesStealthModeArray) () ( UpdateStoriesStealthMode,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateStoriesStealthMode
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateStoriesStealthModeArray) () ( UpdateStoriesStealthMode,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateSentStoryReactionArray is adapter for slice of UpdateSentStoryReaction.
type UpdateSentStoryReactionArray []UpdateSentStoryReaction

// Sort sorts slice of UpdateSentStoryReaction.
func ( UpdateSentStoryReactionArray) ( func(,  UpdateSentStoryReaction) bool) UpdateSentStoryReactionArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateSentStoryReaction.
func ( UpdateSentStoryReactionArray) ( func(,  UpdateSentStoryReaction) bool) UpdateSentStoryReactionArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateSentStoryReaction.
func ( UpdateSentStoryReactionArray) ( func( UpdateSentStoryReaction) bool) UpdateSentStoryReactionArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateSentStoryReactionArray) () ( UpdateSentStoryReaction,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateSentStoryReactionArray) () ( UpdateSentStoryReaction,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateSentStoryReactionArray) () ( UpdateSentStoryReaction,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateSentStoryReaction
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateSentStoryReactionArray) () ( UpdateSentStoryReaction,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotChatBoostArray is adapter for slice of UpdateBotChatBoost.
type UpdateBotChatBoostArray []UpdateBotChatBoost

// Sort sorts slice of UpdateBotChatBoost.
func ( UpdateBotChatBoostArray) ( func(,  UpdateBotChatBoost) bool) UpdateBotChatBoostArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotChatBoost.
func ( UpdateBotChatBoostArray) ( func(,  UpdateBotChatBoost) bool) UpdateBotChatBoostArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotChatBoost.
func ( UpdateBotChatBoostArray) ( func( UpdateBotChatBoost) bool) UpdateBotChatBoostArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotChatBoostArray) () ( UpdateBotChatBoost,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotChatBoostArray) () ( UpdateBotChatBoost,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotChatBoostArray) () ( UpdateBotChatBoost,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotChatBoost
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotChatBoostArray) () ( UpdateBotChatBoost,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChannelViewForumAsMessagesArray is adapter for slice of UpdateChannelViewForumAsMessages.
type UpdateChannelViewForumAsMessagesArray []UpdateChannelViewForumAsMessages

// Sort sorts slice of UpdateChannelViewForumAsMessages.
func ( UpdateChannelViewForumAsMessagesArray) ( func(,  UpdateChannelViewForumAsMessages) bool) UpdateChannelViewForumAsMessagesArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChannelViewForumAsMessages.
func ( UpdateChannelViewForumAsMessagesArray) ( func(,  UpdateChannelViewForumAsMessages) bool) UpdateChannelViewForumAsMessagesArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChannelViewForumAsMessages.
func ( UpdateChannelViewForumAsMessagesArray) ( func( UpdateChannelViewForumAsMessages) bool) UpdateChannelViewForumAsMessagesArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChannelViewForumAsMessagesArray) () ( UpdateChannelViewForumAsMessages,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChannelViewForumAsMessagesArray) () ( UpdateChannelViewForumAsMessages,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChannelViewForumAsMessagesArray) () ( UpdateChannelViewForumAsMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChannelViewForumAsMessages
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChannelViewForumAsMessagesArray) () ( UpdateChannelViewForumAsMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePeerWallpaperArray is adapter for slice of UpdatePeerWallpaper.
type UpdatePeerWallpaperArray []UpdatePeerWallpaper

// Sort sorts slice of UpdatePeerWallpaper.
func ( UpdatePeerWallpaperArray) ( func(,  UpdatePeerWallpaper) bool) UpdatePeerWallpaperArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePeerWallpaper.
func ( UpdatePeerWallpaperArray) ( func(,  UpdatePeerWallpaper) bool) UpdatePeerWallpaperArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePeerWallpaper.
func ( UpdatePeerWallpaperArray) ( func( UpdatePeerWallpaper) bool) UpdatePeerWallpaperArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePeerWallpaperArray) () ( UpdatePeerWallpaper,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePeerWallpaperArray) () ( UpdatePeerWallpaper,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePeerWallpaperArray) () ( UpdatePeerWallpaper,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePeerWallpaper
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePeerWallpaperArray) () ( UpdatePeerWallpaper,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotMessageReactionArray is adapter for slice of UpdateBotMessageReaction.
type UpdateBotMessageReactionArray []UpdateBotMessageReaction

// Sort sorts slice of UpdateBotMessageReaction.
func ( UpdateBotMessageReactionArray) ( func(,  UpdateBotMessageReaction) bool) UpdateBotMessageReactionArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotMessageReaction.
func ( UpdateBotMessageReactionArray) ( func(,  UpdateBotMessageReaction) bool) UpdateBotMessageReactionArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotMessageReaction.
func ( UpdateBotMessageReactionArray) ( func( UpdateBotMessageReaction) bool) UpdateBotMessageReactionArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotMessageReactionArray) () ( UpdateBotMessageReaction,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotMessageReactionArray) () ( UpdateBotMessageReaction,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotMessageReactionArray) () ( UpdateBotMessageReaction,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotMessageReaction
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotMessageReactionArray) () ( UpdateBotMessageReaction,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByDate sorts slice of UpdateBotMessageReaction by Date.
func ( UpdateBotMessageReactionArray) () UpdateBotMessageReactionArray {
	return .Sort(func(,  UpdateBotMessageReaction) bool {
		return .GetDate() < .GetDate()
	})
}

// SortStableByDate sorts slice of UpdateBotMessageReaction by Date.
func ( UpdateBotMessageReactionArray) () UpdateBotMessageReactionArray {
	return .SortStable(func(,  UpdateBotMessageReaction) bool {
		return .GetDate() < .GetDate()
	})
}

// UpdateBotMessageReactionsArray is adapter for slice of UpdateBotMessageReactions.
type UpdateBotMessageReactionsArray []UpdateBotMessageReactions

// Sort sorts slice of UpdateBotMessageReactions.
func ( UpdateBotMessageReactionsArray) ( func(,  UpdateBotMessageReactions) bool) UpdateBotMessageReactionsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotMessageReactions.
func ( UpdateBotMessageReactionsArray) ( func(,  UpdateBotMessageReactions) bool) UpdateBotMessageReactionsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotMessageReactions.
func ( UpdateBotMessageReactionsArray) ( func( UpdateBotMessageReactions) bool) UpdateBotMessageReactionsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotMessageReactionsArray) () ( UpdateBotMessageReactions,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotMessageReactionsArray) () ( UpdateBotMessageReactions,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotMessageReactionsArray) () ( UpdateBotMessageReactions,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotMessageReactions
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotMessageReactionsArray) () ( UpdateBotMessageReactions,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// SortByDate sorts slice of UpdateBotMessageReactions by Date.
func ( UpdateBotMessageReactionsArray) () UpdateBotMessageReactionsArray {
	return .Sort(func(,  UpdateBotMessageReactions) bool {
		return .GetDate() < .GetDate()
	})
}

// SortStableByDate sorts slice of UpdateBotMessageReactions by Date.
func ( UpdateBotMessageReactionsArray) () UpdateBotMessageReactionsArray {
	return .SortStable(func(,  UpdateBotMessageReactions) bool {
		return .GetDate() < .GetDate()
	})
}

// UpdateSavedDialogPinnedArray is adapter for slice of UpdateSavedDialogPinned.
type UpdateSavedDialogPinnedArray []UpdateSavedDialogPinned

// Sort sorts slice of UpdateSavedDialogPinned.
func ( UpdateSavedDialogPinnedArray) ( func(,  UpdateSavedDialogPinned) bool) UpdateSavedDialogPinnedArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateSavedDialogPinned.
func ( UpdateSavedDialogPinnedArray) ( func(,  UpdateSavedDialogPinned) bool) UpdateSavedDialogPinnedArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateSavedDialogPinned.
func ( UpdateSavedDialogPinnedArray) ( func( UpdateSavedDialogPinned) bool) UpdateSavedDialogPinnedArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateSavedDialogPinnedArray) () ( UpdateSavedDialogPinned,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateSavedDialogPinnedArray) () ( UpdateSavedDialogPinned,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateSavedDialogPinnedArray) () ( UpdateSavedDialogPinned,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateSavedDialogPinned
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateSavedDialogPinnedArray) () ( UpdateSavedDialogPinned,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePinnedSavedDialogsArray is adapter for slice of UpdatePinnedSavedDialogs.
type UpdatePinnedSavedDialogsArray []UpdatePinnedSavedDialogs

// Sort sorts slice of UpdatePinnedSavedDialogs.
func ( UpdatePinnedSavedDialogsArray) ( func(,  UpdatePinnedSavedDialogs) bool) UpdatePinnedSavedDialogsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePinnedSavedDialogs.
func ( UpdatePinnedSavedDialogsArray) ( func(,  UpdatePinnedSavedDialogs) bool) UpdatePinnedSavedDialogsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePinnedSavedDialogs.
func ( UpdatePinnedSavedDialogsArray) ( func( UpdatePinnedSavedDialogs) bool) UpdatePinnedSavedDialogsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePinnedSavedDialogsArray) () ( UpdatePinnedSavedDialogs,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePinnedSavedDialogsArray) () ( UpdatePinnedSavedDialogs,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePinnedSavedDialogsArray) () ( UpdatePinnedSavedDialogs,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePinnedSavedDialogs
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePinnedSavedDialogsArray) () ( UpdatePinnedSavedDialogs,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateSMSJobArray is adapter for slice of UpdateSMSJob.
type UpdateSMSJobArray []UpdateSMSJob

// Sort sorts slice of UpdateSMSJob.
func ( UpdateSMSJobArray) ( func(,  UpdateSMSJob) bool) UpdateSMSJobArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateSMSJob.
func ( UpdateSMSJobArray) ( func(,  UpdateSMSJob) bool) UpdateSMSJobArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateSMSJob.
func ( UpdateSMSJobArray) ( func( UpdateSMSJob) bool) UpdateSMSJobArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateSMSJobArray) () ( UpdateSMSJob,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateSMSJobArray) () ( UpdateSMSJob,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateSMSJobArray) () ( UpdateSMSJob,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateSMSJob
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateSMSJobArray) () ( UpdateSMSJob,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateQuickRepliesArray is adapter for slice of UpdateQuickReplies.
type UpdateQuickRepliesArray []UpdateQuickReplies

// Sort sorts slice of UpdateQuickReplies.
func ( UpdateQuickRepliesArray) ( func(,  UpdateQuickReplies) bool) UpdateQuickRepliesArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateQuickReplies.
func ( UpdateQuickRepliesArray) ( func(,  UpdateQuickReplies) bool) UpdateQuickRepliesArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateQuickReplies.
func ( UpdateQuickRepliesArray) ( func( UpdateQuickReplies) bool) UpdateQuickRepliesArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateQuickRepliesArray) () ( UpdateQuickReplies,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateQuickRepliesArray) () ( UpdateQuickReplies,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateQuickRepliesArray) () ( UpdateQuickReplies,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateQuickReplies
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateQuickRepliesArray) () ( UpdateQuickReplies,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateNewQuickReplyArray is adapter for slice of UpdateNewQuickReply.
type UpdateNewQuickReplyArray []UpdateNewQuickReply

// Sort sorts slice of UpdateNewQuickReply.
func ( UpdateNewQuickReplyArray) ( func(,  UpdateNewQuickReply) bool) UpdateNewQuickReplyArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateNewQuickReply.
func ( UpdateNewQuickReplyArray) ( func(,  UpdateNewQuickReply) bool) UpdateNewQuickReplyArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateNewQuickReply.
func ( UpdateNewQuickReplyArray) ( func( UpdateNewQuickReply) bool) UpdateNewQuickReplyArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateNewQuickReplyArray) () ( UpdateNewQuickReply,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateNewQuickReplyArray) () ( UpdateNewQuickReply,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateNewQuickReplyArray) () ( UpdateNewQuickReply,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateNewQuickReply
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateNewQuickReplyArray) () ( UpdateNewQuickReply,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateDeleteQuickReplyArray is adapter for slice of UpdateDeleteQuickReply.
type UpdateDeleteQuickReplyArray []UpdateDeleteQuickReply

// Sort sorts slice of UpdateDeleteQuickReply.
func ( UpdateDeleteQuickReplyArray) ( func(,  UpdateDeleteQuickReply) bool) UpdateDeleteQuickReplyArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateDeleteQuickReply.
func ( UpdateDeleteQuickReplyArray) ( func(,  UpdateDeleteQuickReply) bool) UpdateDeleteQuickReplyArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateDeleteQuickReply.
func ( UpdateDeleteQuickReplyArray) ( func( UpdateDeleteQuickReply) bool) UpdateDeleteQuickReplyArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateDeleteQuickReplyArray) () ( UpdateDeleteQuickReply,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateDeleteQuickReplyArray) () ( UpdateDeleteQuickReply,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateDeleteQuickReplyArray) () ( UpdateDeleteQuickReply,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateDeleteQuickReply
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateDeleteQuickReplyArray) () ( UpdateDeleteQuickReply,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateQuickReplyMessageArray is adapter for slice of UpdateQuickReplyMessage.
type UpdateQuickReplyMessageArray []UpdateQuickReplyMessage

// Sort sorts slice of UpdateQuickReplyMessage.
func ( UpdateQuickReplyMessageArray) ( func(,  UpdateQuickReplyMessage) bool) UpdateQuickReplyMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateQuickReplyMessage.
func ( UpdateQuickReplyMessageArray) ( func(,  UpdateQuickReplyMessage) bool) UpdateQuickReplyMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateQuickReplyMessage.
func ( UpdateQuickReplyMessageArray) ( func( UpdateQuickReplyMessage) bool) UpdateQuickReplyMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateQuickReplyMessageArray) () ( UpdateQuickReplyMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateQuickReplyMessageArray) () ( UpdateQuickReplyMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateQuickReplyMessageArray) () ( UpdateQuickReplyMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateQuickReplyMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateQuickReplyMessageArray) () ( UpdateQuickReplyMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateDeleteQuickReplyMessagesArray is adapter for slice of UpdateDeleteQuickReplyMessages.
type UpdateDeleteQuickReplyMessagesArray []UpdateDeleteQuickReplyMessages

// Sort sorts slice of UpdateDeleteQuickReplyMessages.
func ( UpdateDeleteQuickReplyMessagesArray) ( func(,  UpdateDeleteQuickReplyMessages) bool) UpdateDeleteQuickReplyMessagesArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateDeleteQuickReplyMessages.
func ( UpdateDeleteQuickReplyMessagesArray) ( func(,  UpdateDeleteQuickReplyMessages) bool) UpdateDeleteQuickReplyMessagesArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateDeleteQuickReplyMessages.
func ( UpdateDeleteQuickReplyMessagesArray) ( func( UpdateDeleteQuickReplyMessages) bool) UpdateDeleteQuickReplyMessagesArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateDeleteQuickReplyMessagesArray) () ( UpdateDeleteQuickReplyMessages,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateDeleteQuickReplyMessagesArray) () ( UpdateDeleteQuickReplyMessages,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateDeleteQuickReplyMessagesArray) () ( UpdateDeleteQuickReplyMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateDeleteQuickReplyMessages
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateDeleteQuickReplyMessagesArray) () ( UpdateDeleteQuickReplyMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotBusinessConnectArray is adapter for slice of UpdateBotBusinessConnect.
type UpdateBotBusinessConnectArray []UpdateBotBusinessConnect

// Sort sorts slice of UpdateBotBusinessConnect.
func ( UpdateBotBusinessConnectArray) ( func(,  UpdateBotBusinessConnect) bool) UpdateBotBusinessConnectArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotBusinessConnect.
func ( UpdateBotBusinessConnectArray) ( func(,  UpdateBotBusinessConnect) bool) UpdateBotBusinessConnectArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotBusinessConnect.
func ( UpdateBotBusinessConnectArray) ( func( UpdateBotBusinessConnect) bool) UpdateBotBusinessConnectArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotBusinessConnectArray) () ( UpdateBotBusinessConnect,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotBusinessConnectArray) () ( UpdateBotBusinessConnect,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotBusinessConnectArray) () ( UpdateBotBusinessConnect,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotBusinessConnect
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotBusinessConnectArray) () ( UpdateBotBusinessConnect,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotNewBusinessMessageArray is adapter for slice of UpdateBotNewBusinessMessage.
type UpdateBotNewBusinessMessageArray []UpdateBotNewBusinessMessage

// Sort sorts slice of UpdateBotNewBusinessMessage.
func ( UpdateBotNewBusinessMessageArray) ( func(,  UpdateBotNewBusinessMessage) bool) UpdateBotNewBusinessMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotNewBusinessMessage.
func ( UpdateBotNewBusinessMessageArray) ( func(,  UpdateBotNewBusinessMessage) bool) UpdateBotNewBusinessMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotNewBusinessMessage.
func ( UpdateBotNewBusinessMessageArray) ( func( UpdateBotNewBusinessMessage) bool) UpdateBotNewBusinessMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotNewBusinessMessageArray) () ( UpdateBotNewBusinessMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotNewBusinessMessageArray) () ( UpdateBotNewBusinessMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotNewBusinessMessageArray) () ( UpdateBotNewBusinessMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotNewBusinessMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotNewBusinessMessageArray) () ( UpdateBotNewBusinessMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotEditBusinessMessageArray is adapter for slice of UpdateBotEditBusinessMessage.
type UpdateBotEditBusinessMessageArray []UpdateBotEditBusinessMessage

// Sort sorts slice of UpdateBotEditBusinessMessage.
func ( UpdateBotEditBusinessMessageArray) ( func(,  UpdateBotEditBusinessMessage) bool) UpdateBotEditBusinessMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotEditBusinessMessage.
func ( UpdateBotEditBusinessMessageArray) ( func(,  UpdateBotEditBusinessMessage) bool) UpdateBotEditBusinessMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotEditBusinessMessage.
func ( UpdateBotEditBusinessMessageArray) ( func( UpdateBotEditBusinessMessage) bool) UpdateBotEditBusinessMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotEditBusinessMessageArray) () ( UpdateBotEditBusinessMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotEditBusinessMessageArray) () ( UpdateBotEditBusinessMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotEditBusinessMessageArray) () ( UpdateBotEditBusinessMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotEditBusinessMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotEditBusinessMessageArray) () ( UpdateBotEditBusinessMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotDeleteBusinessMessageArray is adapter for slice of UpdateBotDeleteBusinessMessage.
type UpdateBotDeleteBusinessMessageArray []UpdateBotDeleteBusinessMessage

// Sort sorts slice of UpdateBotDeleteBusinessMessage.
func ( UpdateBotDeleteBusinessMessageArray) ( func(,  UpdateBotDeleteBusinessMessage) bool) UpdateBotDeleteBusinessMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotDeleteBusinessMessage.
func ( UpdateBotDeleteBusinessMessageArray) ( func(,  UpdateBotDeleteBusinessMessage) bool) UpdateBotDeleteBusinessMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotDeleteBusinessMessage.
func ( UpdateBotDeleteBusinessMessageArray) ( func( UpdateBotDeleteBusinessMessage) bool) UpdateBotDeleteBusinessMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotDeleteBusinessMessageArray) () ( UpdateBotDeleteBusinessMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotDeleteBusinessMessageArray) () ( UpdateBotDeleteBusinessMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotDeleteBusinessMessageArray) () ( UpdateBotDeleteBusinessMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotDeleteBusinessMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotDeleteBusinessMessageArray) () ( UpdateBotDeleteBusinessMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateNewStoryReactionArray is adapter for slice of UpdateNewStoryReaction.
type UpdateNewStoryReactionArray []UpdateNewStoryReaction

// Sort sorts slice of UpdateNewStoryReaction.
func ( UpdateNewStoryReactionArray) ( func(,  UpdateNewStoryReaction) bool) UpdateNewStoryReactionArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateNewStoryReaction.
func ( UpdateNewStoryReactionArray) ( func(,  UpdateNewStoryReaction) bool) UpdateNewStoryReactionArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateNewStoryReaction.
func ( UpdateNewStoryReactionArray) ( func( UpdateNewStoryReaction) bool) UpdateNewStoryReactionArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateNewStoryReactionArray) () ( UpdateNewStoryReaction,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateNewStoryReactionArray) () ( UpdateNewStoryReaction,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateNewStoryReactionArray) () ( UpdateNewStoryReaction,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateNewStoryReaction
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateNewStoryReactionArray) () ( UpdateNewStoryReaction,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateStarsBalanceArray is adapter for slice of UpdateStarsBalance.
type UpdateStarsBalanceArray []UpdateStarsBalance

// Sort sorts slice of UpdateStarsBalance.
func ( UpdateStarsBalanceArray) ( func(,  UpdateStarsBalance) bool) UpdateStarsBalanceArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateStarsBalance.
func ( UpdateStarsBalanceArray) ( func(,  UpdateStarsBalance) bool) UpdateStarsBalanceArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateStarsBalance.
func ( UpdateStarsBalanceArray) ( func( UpdateStarsBalance) bool) UpdateStarsBalanceArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateStarsBalanceArray) () ( UpdateStarsBalance,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateStarsBalanceArray) () ( UpdateStarsBalance,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateStarsBalanceArray) () ( UpdateStarsBalance,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateStarsBalance
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateStarsBalanceArray) () ( UpdateStarsBalance,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBusinessBotCallbackQueryArray is adapter for slice of UpdateBusinessBotCallbackQuery.
type UpdateBusinessBotCallbackQueryArray []UpdateBusinessBotCallbackQuery

// Sort sorts slice of UpdateBusinessBotCallbackQuery.
func ( UpdateBusinessBotCallbackQueryArray) ( func(,  UpdateBusinessBotCallbackQuery) bool) UpdateBusinessBotCallbackQueryArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBusinessBotCallbackQuery.
func ( UpdateBusinessBotCallbackQueryArray) ( func(,  UpdateBusinessBotCallbackQuery) bool) UpdateBusinessBotCallbackQueryArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBusinessBotCallbackQuery.
func ( UpdateBusinessBotCallbackQueryArray) ( func( UpdateBusinessBotCallbackQuery) bool) UpdateBusinessBotCallbackQueryArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBusinessBotCallbackQueryArray) () ( UpdateBusinessBotCallbackQuery,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBusinessBotCallbackQueryArray) () ( UpdateBusinessBotCallbackQuery,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBusinessBotCallbackQueryArray) () ( UpdateBusinessBotCallbackQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBusinessBotCallbackQuery
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBusinessBotCallbackQueryArray) () ( UpdateBusinessBotCallbackQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateStarsRevenueStatusArray is adapter for slice of UpdateStarsRevenueStatus.
type UpdateStarsRevenueStatusArray []UpdateStarsRevenueStatus

// Sort sorts slice of UpdateStarsRevenueStatus.
func ( UpdateStarsRevenueStatusArray) ( func(,  UpdateStarsRevenueStatus) bool) UpdateStarsRevenueStatusArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateStarsRevenueStatus.
func ( UpdateStarsRevenueStatusArray) ( func(,  UpdateStarsRevenueStatus) bool) UpdateStarsRevenueStatusArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateStarsRevenueStatus.
func ( UpdateStarsRevenueStatusArray) ( func( UpdateStarsRevenueStatus) bool) UpdateStarsRevenueStatusArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateStarsRevenueStatusArray) () ( UpdateStarsRevenueStatus,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateStarsRevenueStatusArray) () ( UpdateStarsRevenueStatus,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateStarsRevenueStatusArray) () ( UpdateStarsRevenueStatus,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateStarsRevenueStatus
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateStarsRevenueStatusArray) () ( UpdateStarsRevenueStatus,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotPurchasedPaidMediaArray is adapter for slice of UpdateBotPurchasedPaidMedia.
type UpdateBotPurchasedPaidMediaArray []UpdateBotPurchasedPaidMedia

// Sort sorts slice of UpdateBotPurchasedPaidMedia.
func ( UpdateBotPurchasedPaidMediaArray) ( func(,  UpdateBotPurchasedPaidMedia) bool) UpdateBotPurchasedPaidMediaArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotPurchasedPaidMedia.
func ( UpdateBotPurchasedPaidMediaArray) ( func(,  UpdateBotPurchasedPaidMedia) bool) UpdateBotPurchasedPaidMediaArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotPurchasedPaidMedia.
func ( UpdateBotPurchasedPaidMediaArray) ( func( UpdateBotPurchasedPaidMedia) bool) UpdateBotPurchasedPaidMediaArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotPurchasedPaidMediaArray) () ( UpdateBotPurchasedPaidMedia,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotPurchasedPaidMediaArray) () ( UpdateBotPurchasedPaidMedia,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotPurchasedPaidMediaArray) () ( UpdateBotPurchasedPaidMedia,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotPurchasedPaidMedia
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotPurchasedPaidMediaArray) () ( UpdateBotPurchasedPaidMedia,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePaidReactionPrivacyArray is adapter for slice of UpdatePaidReactionPrivacy.
type UpdatePaidReactionPrivacyArray []UpdatePaidReactionPrivacy

// Sort sorts slice of UpdatePaidReactionPrivacy.
func ( UpdatePaidReactionPrivacyArray) ( func(,  UpdatePaidReactionPrivacy) bool) UpdatePaidReactionPrivacyArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePaidReactionPrivacy.
func ( UpdatePaidReactionPrivacyArray) ( func(,  UpdatePaidReactionPrivacy) bool) UpdatePaidReactionPrivacyArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePaidReactionPrivacy.
func ( UpdatePaidReactionPrivacyArray) ( func( UpdatePaidReactionPrivacy) bool) UpdatePaidReactionPrivacyArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePaidReactionPrivacyArray) () ( UpdatePaidReactionPrivacy,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePaidReactionPrivacyArray) () ( UpdatePaidReactionPrivacy,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePaidReactionPrivacyArray) () ( UpdatePaidReactionPrivacy,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePaidReactionPrivacy
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePaidReactionPrivacyArray) () ( UpdatePaidReactionPrivacy,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateSentPhoneCodeArray is adapter for slice of UpdateSentPhoneCode.
type UpdateSentPhoneCodeArray []UpdateSentPhoneCode

// Sort sorts slice of UpdateSentPhoneCode.
func ( UpdateSentPhoneCodeArray) ( func(,  UpdateSentPhoneCode) bool) UpdateSentPhoneCodeArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateSentPhoneCode.
func ( UpdateSentPhoneCodeArray) ( func(,  UpdateSentPhoneCode) bool) UpdateSentPhoneCodeArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateSentPhoneCode.
func ( UpdateSentPhoneCodeArray) ( func( UpdateSentPhoneCode) bool) UpdateSentPhoneCodeArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateSentPhoneCodeArray) () ( UpdateSentPhoneCode,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateSentPhoneCodeArray) () ( UpdateSentPhoneCode,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateSentPhoneCodeArray) () ( UpdateSentPhoneCode,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateSentPhoneCode
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateSentPhoneCodeArray) () ( UpdateSentPhoneCode,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateGroupCallChainBlocksArray is adapter for slice of UpdateGroupCallChainBlocks.
type UpdateGroupCallChainBlocksArray []UpdateGroupCallChainBlocks

// Sort sorts slice of UpdateGroupCallChainBlocks.
func ( UpdateGroupCallChainBlocksArray) ( func(,  UpdateGroupCallChainBlocks) bool) UpdateGroupCallChainBlocksArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateGroupCallChainBlocks.
func ( UpdateGroupCallChainBlocksArray) ( func(,  UpdateGroupCallChainBlocks) bool) UpdateGroupCallChainBlocksArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateGroupCallChainBlocks.
func ( UpdateGroupCallChainBlocksArray) ( func( UpdateGroupCallChainBlocks) bool) UpdateGroupCallChainBlocksArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateGroupCallChainBlocksArray) () ( UpdateGroupCallChainBlocks,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateGroupCallChainBlocksArray) () ( UpdateGroupCallChainBlocks,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateGroupCallChainBlocksArray) () ( UpdateGroupCallChainBlocks,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateGroupCallChainBlocks
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateGroupCallChainBlocksArray) () ( UpdateGroupCallChainBlocks,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateReadMonoForumInboxArray is adapter for slice of UpdateReadMonoForumInbox.
type UpdateReadMonoForumInboxArray []UpdateReadMonoForumInbox

// Sort sorts slice of UpdateReadMonoForumInbox.
func ( UpdateReadMonoForumInboxArray) ( func(,  UpdateReadMonoForumInbox) bool) UpdateReadMonoForumInboxArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateReadMonoForumInbox.
func ( UpdateReadMonoForumInboxArray) ( func(,  UpdateReadMonoForumInbox) bool) UpdateReadMonoForumInboxArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateReadMonoForumInbox.
func ( UpdateReadMonoForumInboxArray) ( func( UpdateReadMonoForumInbox) bool) UpdateReadMonoForumInboxArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateReadMonoForumInboxArray) () ( UpdateReadMonoForumInbox,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateReadMonoForumInboxArray) () ( UpdateReadMonoForumInbox,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateReadMonoForumInboxArray) () ( UpdateReadMonoForumInbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateReadMonoForumInbox
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateReadMonoForumInboxArray) () ( UpdateReadMonoForumInbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateReadMonoForumOutboxArray is adapter for slice of UpdateReadMonoForumOutbox.
type UpdateReadMonoForumOutboxArray []UpdateReadMonoForumOutbox

// Sort sorts slice of UpdateReadMonoForumOutbox.
func ( UpdateReadMonoForumOutboxArray) ( func(,  UpdateReadMonoForumOutbox) bool) UpdateReadMonoForumOutboxArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateReadMonoForumOutbox.
func ( UpdateReadMonoForumOutboxArray) ( func(,  UpdateReadMonoForumOutbox) bool) UpdateReadMonoForumOutboxArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateReadMonoForumOutbox.
func ( UpdateReadMonoForumOutboxArray) ( func( UpdateReadMonoForumOutbox) bool) UpdateReadMonoForumOutboxArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateReadMonoForumOutboxArray) () ( UpdateReadMonoForumOutbox,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateReadMonoForumOutboxArray) () ( UpdateReadMonoForumOutbox,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateReadMonoForumOutboxArray) () ( UpdateReadMonoForumOutbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateReadMonoForumOutbox
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateReadMonoForumOutboxArray) () ( UpdateReadMonoForumOutbox,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateMonoForumNoPaidExceptionArray is adapter for slice of UpdateMonoForumNoPaidException.
type UpdateMonoForumNoPaidExceptionArray []UpdateMonoForumNoPaidException

// Sort sorts slice of UpdateMonoForumNoPaidException.
func ( UpdateMonoForumNoPaidExceptionArray) ( func(,  UpdateMonoForumNoPaidException) bool) UpdateMonoForumNoPaidExceptionArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateMonoForumNoPaidException.
func ( UpdateMonoForumNoPaidExceptionArray) ( func(,  UpdateMonoForumNoPaidException) bool) UpdateMonoForumNoPaidExceptionArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateMonoForumNoPaidException.
func ( UpdateMonoForumNoPaidExceptionArray) ( func( UpdateMonoForumNoPaidException) bool) UpdateMonoForumNoPaidExceptionArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateMonoForumNoPaidExceptionArray) () ( UpdateMonoForumNoPaidException,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateMonoForumNoPaidExceptionArray) () ( UpdateMonoForumNoPaidException,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateMonoForumNoPaidExceptionArray) () ( UpdateMonoForumNoPaidException,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateMonoForumNoPaidException
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateMonoForumNoPaidExceptionArray) () ( UpdateMonoForumNoPaidException,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateGroupCallMessageArray is adapter for slice of UpdateGroupCallMessage.
type UpdateGroupCallMessageArray []UpdateGroupCallMessage

// Sort sorts slice of UpdateGroupCallMessage.
func ( UpdateGroupCallMessageArray) ( func(,  UpdateGroupCallMessage) bool) UpdateGroupCallMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateGroupCallMessage.
func ( UpdateGroupCallMessageArray) ( func(,  UpdateGroupCallMessage) bool) UpdateGroupCallMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateGroupCallMessage.
func ( UpdateGroupCallMessageArray) ( func( UpdateGroupCallMessage) bool) UpdateGroupCallMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateGroupCallMessageArray) () ( UpdateGroupCallMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateGroupCallMessageArray) () ( UpdateGroupCallMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateGroupCallMessageArray) () ( UpdateGroupCallMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateGroupCallMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateGroupCallMessageArray) () ( UpdateGroupCallMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateGroupCallEncryptedMessageArray is adapter for slice of UpdateGroupCallEncryptedMessage.
type UpdateGroupCallEncryptedMessageArray []UpdateGroupCallEncryptedMessage

// Sort sorts slice of UpdateGroupCallEncryptedMessage.
func ( UpdateGroupCallEncryptedMessageArray) ( func(,  UpdateGroupCallEncryptedMessage) bool) UpdateGroupCallEncryptedMessageArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateGroupCallEncryptedMessage.
func ( UpdateGroupCallEncryptedMessageArray) ( func(,  UpdateGroupCallEncryptedMessage) bool) UpdateGroupCallEncryptedMessageArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateGroupCallEncryptedMessage.
func ( UpdateGroupCallEncryptedMessageArray) ( func( UpdateGroupCallEncryptedMessage) bool) UpdateGroupCallEncryptedMessageArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateGroupCallEncryptedMessageArray) () ( UpdateGroupCallEncryptedMessage,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateGroupCallEncryptedMessageArray) () ( UpdateGroupCallEncryptedMessage,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateGroupCallEncryptedMessageArray) () ( UpdateGroupCallEncryptedMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateGroupCallEncryptedMessage
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateGroupCallEncryptedMessageArray) () ( UpdateGroupCallEncryptedMessage,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePinnedForumTopicArray is adapter for slice of UpdatePinnedForumTopic.
type UpdatePinnedForumTopicArray []UpdatePinnedForumTopic

// Sort sorts slice of UpdatePinnedForumTopic.
func ( UpdatePinnedForumTopicArray) ( func(,  UpdatePinnedForumTopic) bool) UpdatePinnedForumTopicArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePinnedForumTopic.
func ( UpdatePinnedForumTopicArray) ( func(,  UpdatePinnedForumTopic) bool) UpdatePinnedForumTopicArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePinnedForumTopic.
func ( UpdatePinnedForumTopicArray) ( func( UpdatePinnedForumTopic) bool) UpdatePinnedForumTopicArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePinnedForumTopicArray) () ( UpdatePinnedForumTopic,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePinnedForumTopicArray) () ( UpdatePinnedForumTopic,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePinnedForumTopicArray) () ( UpdatePinnedForumTopic,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePinnedForumTopic
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePinnedForumTopicArray) () ( UpdatePinnedForumTopic,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdatePinnedForumTopicsArray is adapter for slice of UpdatePinnedForumTopics.
type UpdatePinnedForumTopicsArray []UpdatePinnedForumTopics

// Sort sorts slice of UpdatePinnedForumTopics.
func ( UpdatePinnedForumTopicsArray) ( func(,  UpdatePinnedForumTopics) bool) UpdatePinnedForumTopicsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdatePinnedForumTopics.
func ( UpdatePinnedForumTopicsArray) ( func(,  UpdatePinnedForumTopics) bool) UpdatePinnedForumTopicsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdatePinnedForumTopics.
func ( UpdatePinnedForumTopicsArray) ( func( UpdatePinnedForumTopics) bool) UpdatePinnedForumTopicsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdatePinnedForumTopicsArray) () ( UpdatePinnedForumTopics,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdatePinnedForumTopicsArray) () ( UpdatePinnedForumTopics,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdatePinnedForumTopicsArray) () ( UpdatePinnedForumTopics,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdatePinnedForumTopics
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdatePinnedForumTopicsArray) () ( UpdatePinnedForumTopics,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateDeleteGroupCallMessagesArray is adapter for slice of UpdateDeleteGroupCallMessages.
type UpdateDeleteGroupCallMessagesArray []UpdateDeleteGroupCallMessages

// Sort sorts slice of UpdateDeleteGroupCallMessages.
func ( UpdateDeleteGroupCallMessagesArray) ( func(,  UpdateDeleteGroupCallMessages) bool) UpdateDeleteGroupCallMessagesArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateDeleteGroupCallMessages.
func ( UpdateDeleteGroupCallMessagesArray) ( func(,  UpdateDeleteGroupCallMessages) bool) UpdateDeleteGroupCallMessagesArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateDeleteGroupCallMessages.
func ( UpdateDeleteGroupCallMessagesArray) ( func( UpdateDeleteGroupCallMessages) bool) UpdateDeleteGroupCallMessagesArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateDeleteGroupCallMessagesArray) () ( UpdateDeleteGroupCallMessages,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateDeleteGroupCallMessagesArray) () ( UpdateDeleteGroupCallMessages,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateDeleteGroupCallMessagesArray) () ( UpdateDeleteGroupCallMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateDeleteGroupCallMessages
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateDeleteGroupCallMessagesArray) () ( UpdateDeleteGroupCallMessages,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateStarGiftAuctionStateArray is adapter for slice of UpdateStarGiftAuctionState.
type UpdateStarGiftAuctionStateArray []UpdateStarGiftAuctionState

// Sort sorts slice of UpdateStarGiftAuctionState.
func ( UpdateStarGiftAuctionStateArray) ( func(,  UpdateStarGiftAuctionState) bool) UpdateStarGiftAuctionStateArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateStarGiftAuctionState.
func ( UpdateStarGiftAuctionStateArray) ( func(,  UpdateStarGiftAuctionState) bool) UpdateStarGiftAuctionStateArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateStarGiftAuctionState.
func ( UpdateStarGiftAuctionStateArray) ( func( UpdateStarGiftAuctionState) bool) UpdateStarGiftAuctionStateArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateStarGiftAuctionStateArray) () ( UpdateStarGiftAuctionState,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateStarGiftAuctionStateArray) () ( UpdateStarGiftAuctionState,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateStarGiftAuctionStateArray) () ( UpdateStarGiftAuctionState,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateStarGiftAuctionState
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateStarGiftAuctionStateArray) () ( UpdateStarGiftAuctionState,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateStarGiftAuctionUserStateArray is adapter for slice of UpdateStarGiftAuctionUserState.
type UpdateStarGiftAuctionUserStateArray []UpdateStarGiftAuctionUserState

// Sort sorts slice of UpdateStarGiftAuctionUserState.
func ( UpdateStarGiftAuctionUserStateArray) ( func(,  UpdateStarGiftAuctionUserState) bool) UpdateStarGiftAuctionUserStateArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateStarGiftAuctionUserState.
func ( UpdateStarGiftAuctionUserStateArray) ( func(,  UpdateStarGiftAuctionUserState) bool) UpdateStarGiftAuctionUserStateArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateStarGiftAuctionUserState.
func ( UpdateStarGiftAuctionUserStateArray) ( func( UpdateStarGiftAuctionUserState) bool) UpdateStarGiftAuctionUserStateArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateStarGiftAuctionUserStateArray) () ( UpdateStarGiftAuctionUserState,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateStarGiftAuctionUserStateArray) () ( UpdateStarGiftAuctionUserState,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateStarGiftAuctionUserStateArray) () ( UpdateStarGiftAuctionUserState,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateStarGiftAuctionUserState
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateStarGiftAuctionUserStateArray) () ( UpdateStarGiftAuctionUserState,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateEmojiGameInfoArray is adapter for slice of UpdateEmojiGameInfo.
type UpdateEmojiGameInfoArray []UpdateEmojiGameInfo

// Sort sorts slice of UpdateEmojiGameInfo.
func ( UpdateEmojiGameInfoArray) ( func(,  UpdateEmojiGameInfo) bool) UpdateEmojiGameInfoArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateEmojiGameInfo.
func ( UpdateEmojiGameInfoArray) ( func(,  UpdateEmojiGameInfo) bool) UpdateEmojiGameInfoArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateEmojiGameInfo.
func ( UpdateEmojiGameInfoArray) ( func( UpdateEmojiGameInfo) bool) UpdateEmojiGameInfoArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateEmojiGameInfoArray) () ( UpdateEmojiGameInfo,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateEmojiGameInfoArray) () ( UpdateEmojiGameInfo,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateEmojiGameInfoArray) () ( UpdateEmojiGameInfo,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateEmojiGameInfo
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateEmojiGameInfoArray) () ( UpdateEmojiGameInfo,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateChatParticipantRankArray is adapter for slice of UpdateChatParticipantRank.
type UpdateChatParticipantRankArray []UpdateChatParticipantRank

// Sort sorts slice of UpdateChatParticipantRank.
func ( UpdateChatParticipantRankArray) ( func(,  UpdateChatParticipantRank) bool) UpdateChatParticipantRankArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateChatParticipantRank.
func ( UpdateChatParticipantRankArray) ( func(,  UpdateChatParticipantRank) bool) UpdateChatParticipantRankArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateChatParticipantRank.
func ( UpdateChatParticipantRankArray) ( func( UpdateChatParticipantRank) bool) UpdateChatParticipantRankArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateChatParticipantRankArray) () ( UpdateChatParticipantRank,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateChatParticipantRankArray) () ( UpdateChatParticipantRank,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateChatParticipantRankArray) () ( UpdateChatParticipantRank,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateChatParticipantRank
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateChatParticipantRankArray) () ( UpdateChatParticipantRank,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateManagedBotArray is adapter for slice of UpdateManagedBot.
type UpdateManagedBotArray []UpdateManagedBot

// Sort sorts slice of UpdateManagedBot.
func ( UpdateManagedBotArray) ( func(,  UpdateManagedBot) bool) UpdateManagedBotArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateManagedBot.
func ( UpdateManagedBotArray) ( func(,  UpdateManagedBot) bool) UpdateManagedBotArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateManagedBot.
func ( UpdateManagedBotArray) ( func( UpdateManagedBot) bool) UpdateManagedBotArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateManagedBotArray) () ( UpdateManagedBot,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateManagedBotArray) () ( UpdateManagedBot,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateManagedBotArray) () ( UpdateManagedBot,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateManagedBot
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateManagedBotArray) () ( UpdateManagedBot,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateBotGuestChatQueryArray is adapter for slice of UpdateBotGuestChatQuery.
type UpdateBotGuestChatQueryArray []UpdateBotGuestChatQuery

// Sort sorts slice of UpdateBotGuestChatQuery.
func ( UpdateBotGuestChatQueryArray) ( func(,  UpdateBotGuestChatQuery) bool) UpdateBotGuestChatQueryArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateBotGuestChatQuery.
func ( UpdateBotGuestChatQueryArray) ( func(,  UpdateBotGuestChatQuery) bool) UpdateBotGuestChatQueryArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateBotGuestChatQuery.
func ( UpdateBotGuestChatQueryArray) ( func( UpdateBotGuestChatQuery) bool) UpdateBotGuestChatQueryArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateBotGuestChatQueryArray) () ( UpdateBotGuestChatQuery,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateBotGuestChatQueryArray) () ( UpdateBotGuestChatQuery,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateBotGuestChatQueryArray) () ( UpdateBotGuestChatQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateBotGuestChatQuery
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateBotGuestChatQueryArray) () ( UpdateBotGuestChatQuery,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateJoinChatWebViewDecisionArray is adapter for slice of UpdateJoinChatWebViewDecision.
type UpdateJoinChatWebViewDecisionArray []UpdateJoinChatWebViewDecision

// Sort sorts slice of UpdateJoinChatWebViewDecision.
func ( UpdateJoinChatWebViewDecisionArray) ( func(,  UpdateJoinChatWebViewDecision) bool) UpdateJoinChatWebViewDecisionArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateJoinChatWebViewDecision.
func ( UpdateJoinChatWebViewDecisionArray) ( func(,  UpdateJoinChatWebViewDecision) bool) UpdateJoinChatWebViewDecisionArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateJoinChatWebViewDecision.
func ( UpdateJoinChatWebViewDecisionArray) ( func( UpdateJoinChatWebViewDecision) bool) UpdateJoinChatWebViewDecisionArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateJoinChatWebViewDecisionArray) () ( UpdateJoinChatWebViewDecision,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateJoinChatWebViewDecisionArray) () ( UpdateJoinChatWebViewDecision,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateJoinChatWebViewDecisionArray) () ( UpdateJoinChatWebViewDecision,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateJoinChatWebViewDecision
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateJoinChatWebViewDecisionArray) () ( UpdateJoinChatWebViewDecision,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateNewBotConnectionArray is adapter for slice of UpdateNewBotConnection.
type UpdateNewBotConnectionArray []UpdateNewBotConnection

// Sort sorts slice of UpdateNewBotConnection.
func ( UpdateNewBotConnectionArray) ( func(,  UpdateNewBotConnection) bool) UpdateNewBotConnectionArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateNewBotConnection.
func ( UpdateNewBotConnectionArray) ( func(,  UpdateNewBotConnection) bool) UpdateNewBotConnectionArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateNewBotConnection.
func ( UpdateNewBotConnectionArray) ( func( UpdateNewBotConnection) bool) UpdateNewBotConnectionArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateNewBotConnectionArray) () ( UpdateNewBotConnection,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateNewBotConnectionArray) () ( UpdateNewBotConnection,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateNewBotConnectionArray) () ( UpdateNewBotConnection,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateNewBotConnection
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateNewBotConnectionArray) () ( UpdateNewBotConnection,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateWebBrowserSettingsArray is adapter for slice of UpdateWebBrowserSettings.
type UpdateWebBrowserSettingsArray []UpdateWebBrowserSettings

// Sort sorts slice of UpdateWebBrowserSettings.
func ( UpdateWebBrowserSettingsArray) ( func(,  UpdateWebBrowserSettings) bool) UpdateWebBrowserSettingsArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateWebBrowserSettings.
func ( UpdateWebBrowserSettingsArray) ( func(,  UpdateWebBrowserSettings) bool) UpdateWebBrowserSettingsArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateWebBrowserSettings.
func ( UpdateWebBrowserSettingsArray) ( func( UpdateWebBrowserSettings) bool) UpdateWebBrowserSettingsArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateWebBrowserSettingsArray) () ( UpdateWebBrowserSettings,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateWebBrowserSettingsArray) () ( UpdateWebBrowserSettings,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateWebBrowserSettingsArray) () ( UpdateWebBrowserSettings,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateWebBrowserSettings
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateWebBrowserSettingsArray) () ( UpdateWebBrowserSettings,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}

// UpdateWebBrowserExceptionArray is adapter for slice of UpdateWebBrowserException.
type UpdateWebBrowserExceptionArray []UpdateWebBrowserException

// Sort sorts slice of UpdateWebBrowserException.
func ( UpdateWebBrowserExceptionArray) ( func(,  UpdateWebBrowserException) bool) UpdateWebBrowserExceptionArray {
	sort.Slice(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// SortStable sorts slice of UpdateWebBrowserException.
func ( UpdateWebBrowserExceptionArray) ( func(,  UpdateWebBrowserException) bool) UpdateWebBrowserExceptionArray {
	sort.SliceStable(, func(,  int) bool {
		return ([], [])
	})
	return 
}

// Retain filters in-place slice of UpdateWebBrowserException.
func ( UpdateWebBrowserExceptionArray) ( func( UpdateWebBrowserException) bool) UpdateWebBrowserExceptionArray {
	 := 0
	for ,  := range  {
		if () {
			[] = 
			++
		}
	}
	 = [:]

	return 
}

// First returns first element of slice (if exists).
func ( UpdateWebBrowserExceptionArray) () ( UpdateWebBrowserException,  bool) {
	if len() < 1 {
		return
	}
	return [0], true
}

// Last returns last element of slice (if exists).
func ( UpdateWebBrowserExceptionArray) () ( UpdateWebBrowserException,  bool) {
	if len() < 1 {
		return
	}
	return [len()-1], true
}

// PopFirst returns first element of slice (if exists) and deletes it.
func ( *UpdateWebBrowserExceptionArray) () ( UpdateWebBrowserException,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [0]

	// Delete by index from SliceTricks.
	copy([0:], [1:])
	var  UpdateWebBrowserException
	[len()-1] = 
	 = [:len()-1]
	* = 

	return , true
}

// Pop returns last element of slice (if exists) and deletes it.
func ( *UpdateWebBrowserExceptionArray) () ( UpdateWebBrowserException,  bool) {
	if  == nil || len(*) < 1 {
		return
	}

	 := *
	 = [len()-1]
	 = [:len()-1]
	* = 

	return , true
}