TelegramPWA/dist/3559.3d5feb13846a3912f9fd.js
Alexander Zinchuk a8639be7eb [Build]
2024-10-26 13:06:51 +04:00

2 lines
579 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(()=>{var e,t,n={86453:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});class s{constructor(e){this.isUpload=e}}},3559:(e,t,n)=>{"use strict";var s={};n.r(s),n.d(s,{Type:()=>Fi,clear:()=>Oi,fetch:()=>qi,isCacheApiSupported:()=>Ni,remove:()=>Hi,save:()=>Gi});var a={};n.r(a),n.d(a,{abortChatRequests:()=>ho,abortRequestGroup:()=>mo,acceptBotUrlAuth:()=>wl,acceptCall:()=>Kl,acceptLinkUrlAuth:()=>Sl,acceptPhoneCall:()=>zp,activateStealthMode:()=>gf,addChatMembers:()=>_r,allowBotSendMessages:()=>Al,answerCallbackButton:()=>nl,applyBoost:()=>qf,applyGiftCode:()=>jf,blockUser:()=>du,broadcastLocalDbUpdateFull:()=>Ee,changeSessionSettings:()=>Po,changeSessionTtl:()=>Co,changeStarsSubscription:()=>Zf,checkChatInvite:()=>yr,checkChatUsername:()=>Vd,checkChatlistInvite:()=>Ur,checkGiftCode:()=>Lf,checkPassword:()=>Ju,checkUsername:()=>eu,clearPassword:()=>Qu,clearRecentReactions:()=>rp,clearRecentStickers:()=>md,clickSponsoredMessage:()=>Vc,closePoll:()=>Ic,confirmCall:()=>$l,confirmPhoneCall:()=>Wp,createChalistInvite:()=>Fr,createChannel:()=>qo,createGroupCall:()=>Fl,createGroupChat:()=>Wo,createPhoneCallState:()=>Hp,createTopic:()=>Rr,deactivateAllUsernames:()=>Fd,decodePhoneCallData:()=>jp,deleteChannel:()=>jo,deleteChat:()=>Oo,deleteChatFolder:()=>Zo,deleteChatMember:()=>br,deleteChatUser:()=>Ho,deleteChatlistInvite:()=>qr,deleteContact:()=>sd,deleteExportedChatInvite:()=>Ld,deleteHistory:()=>cc,deleteMessages:()=>oc,deleteProfilePhotos:()=>iu,deleteRevokedExportedChatInvites:()=>jd,deleteSavedHistory:()=>dc,deleteScheduledMessages:()=>rc,deleteStory:()=>tf,deleteTopic:()=>Er,destroy:()=>io,destroyPhoneCallState:()=>Op,discardCall:()=>Ll,discardGroupCall:()=>El,disconnect:()=>oo,downloadMedia:()=>po,editChatFolder:()=>Yo,editChatPhoto:()=>zo,editChatlistInvite:()=>Gr,editExportedChatInvite:()=>Hd,editGroupCallParticipant:()=>Bl,editGroupCallTitle:()=>Dl,editMessage:()=>tc,editStoryPrivacy:()=>df,editTopic:()=>Dr,encodePhoneCallData:()=>Lp,exportChatInvite:()=>Od,exportGroupCallInvite:()=>Ul,exportMessageLink:()=>$c,faveSticker:()=>gd,fetchAllStories:()=>$p,fetchAnimatedEmojiEffects:()=>wd,fetchAnimatedEmojis:()=>bd,fetchAppConfig:()=>Uu,fetchAuthorizations:()=>lu,fetchAvailableEffects:()=>Zl,fetchAvailableReactions:()=>Yl,fetchBlockedUsers:()=>cu,fetchBoostList:()=>Hf,fetchBoostStatus:()=>Gf,fetchBotApp:()=>pl,fetchBotCanSendMessage:()=>Il,fetchChannelMonetizationStatistics:()=>Ip,fetchChannelRecommendations:()=>jr,fetchChannelStatistics:()=>Sp,fetchChat:()=>Uo,fetchChatFolders:()=>Qo,fetchChatInviteImporters:()=>Wd,fetchChatSettings:()=>Bo,fetchChatlistInvites:()=>Hr,fetchChats:()=>ko,fetchCollectionInfo:()=>ng,fetchCommonChats:()=>Qc,fetchConfig:()=>xu,fetchContactList:()=>Zc,fetchContentSettings:()=>Bu,fetchCountryList:()=>Fu,fetchCurrentUser:()=>yo,fetchCustomEmoji:()=>_d,fetchCustomEmojiSets:()=>cd,fetchDefaultStatusEmojis:()=>Ad,fetchDefaultTagReactions:()=>cp,fetchDefaultTopicIcons:()=>Id,fetchDiscussionMessage:()=>yc,fetchEmojiKeywords:()=>Dd,fetchExportedChatInvites:()=>Gd,fetchExtendedMedia:()=>Pc,fetchFactChecks:()=>hc,fetchFavoriteStickers:()=>ld,fetchFeaturedEmojiStickers:()=>fd,fetchFeaturedStickers:()=>pd,fetchFullChat:()=>Eo,fetchFullUser:()=>Jc,fetchGenericEmojiEffects:()=>vd,fetchGiveawayInfo:()=>Of,fetchGlobalPrivacySettings:()=>qu,fetchGroupCallParticipants:()=>xl,fetchGroupStatistics:()=>Ap,fetchGroupsForDiscussion:()=>gr,fetchInlineBot:()=>il,fetchInlineBotResults:()=>ol,fetchLangDifference:()=>Su,fetchLangPack:()=>vu,fetchLanguage:()=>Au,fetchLanguages:()=>Iu,fetchLeaveChatlistSuggestions:()=>Vr,fetchMember:()=>fr,fetchMembers:()=>pr,fetchMessage:()=>Xr,fetchMessagePublicForwards:()=>Cp,fetchMessageReactions:()=>np,fetchMessageReactionsList:()=>sp,fetchMessageStatistics:()=>Pp,fetchMessageViews:()=>gc,fetchMessages:()=>Qr,fetchMyBoosts:()=>Ff,fetchNearestCountry:()=>Xc,fetchNotificationExceptions:()=>yu,fetchNotificationSettings:()=>_u,fetchOutboxReadDate:()=>Wc,fetchPaidReactionPrivacy:()=>mc,fetchPeerColors:()=>Vu,fetchPeerProfileStories:()=>Qp,fetchPeerStories:()=>Jp,fetchPeerStoriesByIds:()=>Yp,fetchPinnedMessages:()=>Tc,fetchPopularAppBots:()=>Rl,fetchPremiumGifts:()=>Sd,fetchPremiumPromo:()=>Vf,fetchPreviewMedias:()=>Cl,fetchPrivacySettings:()=>Mu,fetchProfilePhotos:()=>ad,fetchQuickReplies:()=>zc,fetchRecentEmojiStatuses:()=>Ud,fetchRecentReactions:()=>op,fetchRecentStickers:()=>ud,fetchRecommendedChatFolders:()=>Xo,fetchSavedChats:()=>To,fetchSavedGifs:()=>Cd,fetchSavedReactionTags:()=>dp,fetchScheduledHistory:()=>Rc,fetchSeenBy:()=>Ec,fetchSendAs:()=>Bc,fetchSponsoredMessages:()=>Uc,fetchStarsGiveawayOptions:()=>Kf,fetchStarsStatus:()=>Jf,fetchStarsSubscriptions:()=>Yf,fetchStarsTopupOptions:()=>tg,fetchStarsTransactionById:()=>Xf,fetchStarsTransactions:()=>Qf,fetchStatisticsAsyncGraph:()=>Mp,fetchStickerSets:()=>dd,fetchStickers:()=>yd,fetchStickersForEmoji:()=>Bd,fetchStoriesArchive:()=>Xp,fetchStoriesMaxIds:()=>lf,fetchStoriesViews:()=>of,fetchStoryLink:()=>rf,fetchStoryPublicForwards:()=>kp,fetchStoryStatistics:()=>Rp,fetchStoryViewList:()=>af,fetchTemporaryPaymentPassword:()=>Nf,fetchTimezones:()=>Nu,fetchTopBotApps:()=>al,fetchTopInlineBots:()=>sl,fetchTopReactions:()=>ip,fetchTopUsers:()=>Yc,fetchTopicById:()=>Tr,fetchTopics:()=>kr,fetchUnreadMentions:()=>qc,fetchUnreadReactions:()=>Gc,fetchUsers:()=>ed,fetchWallpapers:()=>ou,fetchWebAuthorizations:()=>gu,fetchWebPagePreview:()=>vc,findFirstMessageIdAfterDate:()=>Mc,forwardMessages:()=>Cc,fulfillStarsSubscription:()=>eg,getChatByPhoneNumber:()=>nr,getChatByUsername:()=>sr,getDhConfig:()=>Ol,getGroupCall:()=>Tl,getPassword:()=>$u,getPasswordInfo:()=>Wu,getPaymentForm:()=>Uf,getPremiumGiftCodeOptions:()=>Wf,getReceipt:()=>xf,getStarsGiftOptions:()=>zf,getTemporaryPaymentPassword:()=>Ku,hideAllChatJoinRequests:()=>Kd,hideChatJoinRequest:()=>zd,hideChatReportPanel:()=>$d,importChatInvite:()=>Ir,importContact:()=>td,installStickerSet:()=>Rd,invokeWebViewCustomMethod:()=>Pl,joinChannel:()=>Go,joinChatlistInvite:()=>xr,joinGroupCall:()=>Nl,joinGroupCallPresentation:()=>ql,launchPrepaidGiveaway:()=>$f,leaveChannel:()=>Lo,leaveChatlist:()=>Nr,leaveGroupCall:()=>Vl,leaveGroupCallPresentation:()=>Hl,loadAttachBot:()=>yl,loadAttachBots:()=>ml,loadMonetizationRevenueWithdrawalUrl:()=>Tp,loadPollOptionResults:()=>Ac,markMessageListRead:()=>pc,markMessagesRead:()=>fc,markStoryRead:()=>ef,migrateChat:()=>mr,oldFetchLangPack:()=>Pu,oldFetchLangStrings:()=>Cu,onPasswordError:()=>tl,pinMessage:()=>ac,prolongWebView:()=>gl,provideAuthCode:()=>Ti,provideAuthPassword:()=>Ei,provideAuthPhoneNumber:()=>ki,provideAuthRegistration:()=>Bi,provideRecoveryEmailCode:()=>Zu,readAllMentions:()=>Nc,readAllReactions:()=>Fc,receivedCall:()=>zl,registerDevice:()=>Ru,removeRecentSticker:()=>hd,reorderUsernames:()=>Ou,repairFileReference:()=>_o,reportMessages:()=>uc,reportPeer:()=>Io,reportProfilePhoto:()=>Ao,reportSpam:()=>id,reportSponsoredMessage:()=>Wr,reportStory:()=>cf,requestAppWebView:()=>fl,requestBotUrlAuth:()=>bl,requestCall:()=>jl,requestChannelDifference:()=>So,requestChatUpdate:()=>xo,requestLinkUrlAuth:()=>vl,requestMainWebView:()=>ul,requestPhoneCall:()=>Kp,requestSimpleWebView:()=>ll,requestWebView:()=>dl,rescheduleMessage:()=>nc,resolveBusinessChatLink:()=>Mo,restartAuth:()=>Di,restartAuthWithQr:()=>Ui,saveCloseFriends:()=>rd,saveDefaultSendAs:()=>Dc,saveDraft:()=>Vo,saveGif:()=>Md,searchChats:()=>Do,searchGifs:()=>Ed,searchHashtagPosts:()=>wc,searchMessagesGlobal:()=>bc,searchMessagesInChat:()=>_c,searchStickers:()=>Pd,sendEmojiInteraction:()=>Xl,sendInlineBotResult:()=>rl,sendMessage:()=>Zr,sendMessageAction:()=>lc,sendPaidReaction:()=>tp,sendPaymentForm:()=>Bf,sendPollVote:()=>Sc,sendQuickReply:()=>Kc,sendReaction:()=>ep,sendScheduledMessages:()=>kc,sendSignalingData:()=>Jl,sendStarPaymentForm:()=>Df,sendStoryReaction:()=>ff,sendWatchingEmojiInteraction:()=>Ql,sendWebViewData:()=>hl,setAllowHttpTransport:()=>wo,setBotInfo:()=>Ml,setCallRating:()=>Wl,setChatEnabledReactions:()=>Ar,setChatUsername:()=>Nd,setDefaultReaction:()=>ap,setDiscussionGroup:()=>hr,setForceHttpTransport:()=>bo,setPrivacySettings:()=>Tu,setShouldDebugExportedSenders:()=>vo,setViewForumAsMessages:()=>Lr,sortChatFolders:()=>er,startBot:()=>cl,terminateAllAuthorizations:()=>fu,terminateAllWebAuthorizations:()=>mu,terminateAuthorization:()=>pu,terminateWebAuthorization:()=>hu,toggleAttachBot:()=>_l,toggleChatArchived:()=>Jo,toggleChatPinned:()=>Ko,toggleDialogUnread:()=>tr,toggleForum:()=>Mr,toggleGroupCallStartSubscription:()=>Gl,toggleIsProtected:()=>Pr,toggleJoinRequest:()=>vr,toggleJoinToSend:()=>wr,toggleParticipantsHidden:()=>Cr,togglePeerTranslations:()=>Or,togglePinnedTopic:()=>Br,togglePreHistoryHidden:()=>ir,toggleSavedDialogPinned:()=>$o,toggleSignatures:()=>lr,toggleSponsoredMessages:()=>Ro,toggleStoriesHidden:()=>uf,toggleStoryInProfile:()=>nf,toggleStoryPinnedToTop:()=>sf,toggleUsername:()=>Hu,transcribeAudio:()=>Hc,translateText:()=>Oc,unblockUser:()=>uu,uninstallStickerSet:()=>kd,unpinAllMessages:()=>ic,unregisterDevice:()=>ku,updateChatAbout:()=>ur,updateChatAdmin:()=>cr,updateChatDefaultBannedRights:()=>or,updateChatMemberBannedRights:()=>rr,updateChatMutedState:()=>No,updateChatTitle:()=>dr,updateContact:()=>nd,updateContactSignUpNotification:()=>bu,updateContentSettings:()=>Du,updateEmojiStatus:()=>od,updateGlobalPrivacySettings:()=>Gu,updateIsOnline:()=>Eu,updateNotificationSettings:()=>wu,updatePassword:()=>Xu,updatePrivateLink:()=>qd,updateProfile:()=>Zd,updateProfilePhoto:()=>nu,updateRecoveryEmail:()=>Yu,updateSavedReactionTag:()=>up,updateTopicMutedState:()=>Fo,updateUsername:()=>tu,uploadContactProfilePhoto:()=>au,uploadProfilePhoto:()=>su,uploadWallpaper:()=>ru,validateRequestedInfo:()=>Ef,viewSponsoredMessage:()=>xc,viewStory:()=>Zp});const i="A",o=!1,r=!1,c=!1,d="https://telegram-a-host",u=!1,l="tt-media",p="tt-media-avatars",f=524288,g=16,h=16,m=("undefined"!=typeof window&&window.innerHeight,20),y=200,_=50,b=100,w=100,v=100,S=100,I=50,A=100,P=50,C=100,M=100,R=100,k=20,T=3e5,E=2**31-1,B=Math.round(450),D=new Set(["newMessage","newScheduledMessage","deleteMessages","deleteScheduledMessages","deleteHistory"]),U=20,x=20,V="status-default-icon",N="video/webm",F="image/gif",q="application/x-tgsticker",G=N,H=new Set(["image/png","image/jpeg",F]),O=new Set(["video/mp4","video/quicktime"]),L=new Set(["audio/mp3","audio/ogg","audio/wav","audio/mpeg","audio/flac","audio/aac","audio/m4a","audio/mp4","audio/x-m4a"]),j=(new Set([...H,...O]),new Set(["USERNAME_PURCHASE_AVAILABLE","USERNAME_INVALID"])),W=(new Set(["t.me","web.t.me","a.t.me","k.t.me","z.t.me"]),"weba"),z=(new Set(["AU","BD","CA","CO","EG","HN","IE","IN","JO","MX","MY","NI","NZ","PH","PK","SA","SV","US"]),"777000"),K=14,$="gif",J=0,Q=1,X="-1000000000777",Y="android",Z=1,ee=86400,te=86400,ne=11,se=(new Set(["USER_CANCELED"]),{uploadMaxFileparts:[4e3,8e3],stickersFaved:[5,10],savedGifs:[200,400],dialogFiltersChats:[100,200],dialogFilters:[10,20],dialogFolderPinned:[5,10],captionLength:[1024,2048],channels:[500,1e3],channelsPublic:[10,20],aboutLength:[70,140],chatlistInvites:[3,100],chatlistJoined:[2,20],recommendedChannels:[10,100],savedDialogsPinned:[5,100]}),ae=["log","error","warn","info","debug"];function ie(e,t){let n,s,a,i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return function(){s=!0;for(var o=arguments.length,r=new Array(o),c=0;c<o;c++)r[c]=arguments[c];a=r,n||(i&&(s=!1,e(...a)),n=self.setInterval((()=>{if(!s)return self.clearInterval(n),void(n=void 0);s=!1,e(...a)}),t))}}function oe(e){return function(e,t){let n,s=!1;return function(){for(var a=arguments.length,i=new Array(a),o=0;o<a;o++)i[o]=arguments[o];n=i,s||(s=!0,e((()=>{s=!1,t(...n)})))}}(de,e)}ae.reduce(((e,t)=>(e[t]=console[t],e)),{});const re=e=>new Promise((t=>{setTimeout((()=>t()),e)}));let ce;function de(e){ce?ce.push(e):(ce=[e],Promise.resolve().then((()=>{const e=ce;ce=void 0,e.forEach((e=>e()))})))}var ue=n(45174);function le(e){return e.hasOwnProperty("userId")}function pe(e){return e.hasOwnProperty("chatId")}function fe(e,t){return"user"===t?e.toString():"channel"===t?`-1${e.toString().padStart(K-2,"0")}`:`-${e}`}function ge(e){return le(e)?fe(e.userId,"user"):pe(e)?fe(e.chatId,"chat"):fe(e.channelId,"channel")}function he(e){const{color:t,backgroundEmojiId:n}=e;return{color:t,backgroundEmojiId:n?.toString()}}function me(e){return e instanceof ue.Api.EmojiStatus?{documentId:e.documentId.toString()}:e instanceof ue.Api.EmojiStatusUntil?{documentId:e.documentId.toString(),until:e.until}:void 0}var ye=n(92096),_e=n.n(ye),be=n(43355);function we(e){return`${arguments.length>1&&void 0!==arguments[1]&&arguments[1]?"":`data:${arguments.length>2&&void 0!==arguments[2]?arguments[2]:"image/jpeg"};base64,`}${btoa(String.fromCharCode(...e))}`}function ve(e){const{flags:t,CONSTRUCTOR_ID:n,SUBCLASS_OF_ID:s,className:a,classType:i,getBytes:o,...r}=e;return r}var Se=n(48287).hp;const Ie="BroadcastChannel"in self,Ae=Ie?new BroadcastChannel("tt-global"):void 0;let Pe=[];const Ce=ie((()=>{Ae.postMessage({type:"localDbUpdate",batchedUpdates:Pe}),Pe=[]}),100);function Me(e){if(e instanceof Uint8Array)return Se.from(e);if("object"==typeof e&&1===Object.keys(e).length&&"value"===Object.keys(e)[0])return _e()(e.value);if(Array.isArray(e))return e.map(Me);if("object"!=typeof e||!("CONSTRUCTOR_ID"in e))return e;const t=e.className.split(".").reduce(((e,t)=>e[t]),be.constructors),n=ve(e);return new t(Object.keys(n).reduce(((e,t)=>(e[t]=Me(n[t]),e)),{}))}function Re(e){return["localMessages","chats","users","messages","documents","stickerSets","photos","webDocuments","stories","commonBoxState","channelPtsById"].reduce(((t,n)=>{const s=e?.[n]??{},a=Object.keys(s).reduce(((e,t)=>{if("commonBoxState"===n||"channelPtsById"===n){const n=s;return e[t]=n[t],e}return e[t]=Me(s[t]),e}),{});var i;return t[n]=Ie?(i=n,new Proxy(a,{get:(e,t,n)=>Reflect.get(e,t,n),set:(e,t,n)=>(Pe.push({name:i,prop:t,value:n}),Ce(),Reflect.set(e,t,n))})):a,t}),{})}const ke=Re(),Te=ke;function Ee(){Ae&&Ae.postMessage({type:"localDbUpdateFull",localDb:Object.keys(ke).reduce(((e,t)=>(e[t]={...ke[t]},e)),{})})}c&&(globalThis.getLocalDb=()=>ke);var Be=n(48287).hp;const De="#111111DD",Ue="#E4D00A",xe={INVOKE:"#49DBF5",BEACON:"#F549DB",RESPONSE:"#6887F7",CONNECTING:"#E4D00A",CONNECTED:"#26D907","CONNECTING ERROR":"#D1191C","INVOKE ERROR":"#D1191C",UPDATE:"#0DD151","UNEXPECTED UPDATE":"#9C9C9C","UNEXPECTED RESPONSE":"#D1191C"};function Ve(e){if(e instanceof ue.Api.Message||e instanceof ue.Api.MessageService)return ge(e.peerId)}function Ne(e){return e instanceof ue.Api.DialogFilter||e instanceof ue.Api.DialogFilterChatlist}function Fe(e){e instanceof ue.Api.Message&&(e.media&&qe(e.media,e),e.replyTo instanceof ue.Api.MessageReplyHeader&&e.replyTo.replyMedia&&qe(e.replyTo.replyMedia,e)),e instanceof ue.Api.MessageService&&"photo"in e.action&&He(je(e.action.photo,e)),e instanceof ue.Api.SponsoredMessage&&e.photo&&He(e.photo)}function qe(e,t){e instanceof ue.Api.MessageMediaDocument&&e.document&&Oe(je(e.document,t)),e instanceof ue.Api.MessageMediaWebPage&&e.webpage instanceof ue.Api.WebPage&&(e.webpage.document&&Oe(je(e.webpage.document,t)),e.webpage.photo&&He(je(e.webpage.photo,t))),e instanceof ue.Api.MessageMediaGame&&(e.game.document&&Oe(je(e.game.document,t)),He(je(e.game.photo,t))),e instanceof ue.Api.MessageMediaPhoto&&e.photo&&He(je(e.photo,t)),e instanceof ue.Api.MessageMediaInvoice&&(e.photo&&ze(je(e.photo,t)),e.extendedMedia instanceof ue.Api.MessageExtendedMedia&&qe(e.extendedMedia.media,t)),e instanceof ue.Api.MessageMediaPaidMedia&&e.extendedMedia.forEach((e=>{e instanceof ue.Api.MessageExtendedMedia&&qe(e.media,t)}))}function Ge(e,t){if(e instanceof ue.Api.StoryItem&&(e.media instanceof ue.Api.MessageMediaPhoto&&e.media.photo&&He(Le(e.media.photo,t,e)),e.media instanceof ue.Api.MessageMediaDocument&&(e.media.document instanceof ue.Api.Document&&Oe(Le(e.media.document,t,e)),e.media.altDocuments)))for(const n of e.media.altDocuments)Oe(Le(n,t,e))}function He(e){e instanceof ue.Api.Photo&&(Te.photos[String(e.id)]=e)}function Oe(e){e instanceof ue.Api.Document&&(Te.documents[String(e.id)]=e)}function Le(e,t,n){if(!(e instanceof ue.Api.Document&&e instanceof ue.Api.Photo))return e;const s=e;return s.localRepairInfo={type:"story",peerId:t,id:n.id},s}function je(e,t){if(!t?.peerId)return e;if(!(e instanceof ue.Api.Document||e instanceof ue.Api.Photo||e instanceof ue.Api.WebDocument))return e;const n=e;return n.localRepairInfo={type:"message",peerId:ge(t.peerId),id:t.id},n}function We(e){const t=fe(e.id,"user"),n=Te.users[t];e.photo instanceof ue.Api.Photo&&He(e.photo),n&&!n.min&&e.min||(Te.users[t]=e)}function ze(e){Te.webDocuments[e.url]=e}function Ke(e){return String.fromCharCode(...e)}function $e(e){return Be.from(e,"binary")}function Je(e){const t="UNEXPECTED RESPONSE"===e?console.error:"INVOKE ERROR"===e||"UNEXPECTED UPDATE"===e?console.warn:console.log;for(var n=arguments.length,s=new Array(n>1?n-1:0),a=1;a<n;a++)s[a-1]=arguments[a];t(`%cGramJS%c${e}`,`color: ${Ue}; background: ${De}; padding: 0.25rem; border-radius: 0.25rem;`,`color: ${xe[e]}; background: ${De}; padding: 0.25rem; border-radius: 0.25rem; margin-left: 0.25rem;`,...s)}let Qe;function Xe(e){!function(e){nt?nt.push(e):nt=[e],et&&!D.has(e["@type"])||(et=ie(Ze,B,!0),tt=Math.random()),et(tt)}(e)}function Ye(e){Qe(e)}const Ze=oe((function(e){if(!nt||e!==tt)return;const t=nt;nt=void 0,t.forEach(Qe)}));let et,tt,nt;var st=n(26462),at=n.n(st),it=n(4681);let ot=function(e){return e.Bold="MessageEntityBold",e.Blockquote="MessageEntityBlockquote",e.BotCommand="MessageEntityBotCommand",e.Cashtag="MessageEntityCashtag",e.Code="MessageEntityCode",e.Email="MessageEntityEmail",e.Hashtag="MessageEntityHashtag",e.Italic="MessageEntityItalic",e.MentionName="MessageEntityMentionName",e.Mention="MessageEntityMention",e.Phone="MessageEntityPhone",e.Pre="MessageEntityPre",e.Strike="MessageEntityStrike",e.TextUrl="MessageEntityTextUrl",e.Url="MessageEntityUrl",e.Underline="MessageEntityUnderline",e.Spoiler="MessageEntitySpoiler",e.CustomEmoji="MessageEntityCustomEmoji",e.Unknown="MessageEntityUnknown",e}({});const rt=-1,ct="MESSAGE_DELETED";let dt=function(e){return e[e.BlobUrl=0]="BlobUrl",e[e.Progressive=1]="Progressive",e[e.DownloadUrl=2]="DownloadUrl",e[e.Text=3]="Text",e}({});String.fromCharCode(8205);const ut=/(?:\ud83c[\udd70\udd71\udd7e\udd7f]\ufe0f)|(?:\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffc-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb\udffd-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb\udffc\udffe\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb-\udffd\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83e\uddd1\ud83c[\udffb-\udffe]|\ud83d\udc68\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc68\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc68\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc68\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffc-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffd-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb\udffc\udffe\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffd\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc68\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83d\udc69\ud83c[\udffb-\udfff]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc68\ud83c[\udffb-\udffe]|\ud83d\udc69\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83d\udc69\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udffb\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffc-\udfff]|\ud83e\uddd1\ud83c\udffb\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb\udffd-\udfff]|\ud83e\uddd1\ud83c\udffc\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb\udffc\udffe\udfff]|\ud83e\uddd1\ud83c\udffd\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb-\udffd\udfff]|\ud83e\uddd1\ud83c\udffe\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83e\uddd1\ud83c\udfff\u200d\u2764\ufe0f\u200d\ud83e\uddd1\ud83c[\udffb-\udffe]|\ud83e\uddd1\ud83c\udfff\u200d\ud83e\udd1d\u200d\ud83e\uddd1\ud83c[\udffb-\udfff]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d[\udc68\udc69]|\ud83e\udef1\ud83c\udffb\u200d\ud83e\udef2\ud83c[\udffc-\udfff]|\ud83e\udef1\ud83c\udffc\u200d\ud83e\udef2\ud83c[\udffb\udffd-\udfff]|\ud83e\udef1\ud83c\udffd\u200d\ud83e\udef2\ud83c[\udffb\udffc\udffe\udfff]|\ud83e\udef1\ud83c\udffe\u200d\ud83e\udef2\ud83c[\udffb-\udffd\udfff]|\ud83e\udef1\ud83c\udfff\u200d\ud83e\udef2\ud83c[\udffb-\udffe]|\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68|\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d[\udc68\udc69]|\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1|\ud83d\udc6b\ud83c[\udffb-\udfff]|\ud83d\udc6c\ud83c[\udffb-\udfff]|\ud83d\udc6d\ud83c[\udffb-\udfff]|\ud83d\udc8f\ud83c[\udffb-\udfff]|\ud83d\udc91\ud83c[\udffb-\udfff]|\ud83e\udd1d\ud83c[\udffb-\udfff]|\ud83d[\udc6b-\udc6d\udc8f\udc91]|\ud83e\udd1d)|(?:\ud83c\udfc3|\ud83d\udeb6|\ud83e\uddce)(?:\ud83c[\udffb-\udfff])?(?:\u200d[\u2640\u2642]\ufe0f)?(?:\u200d\u27a1\ufe0f)|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\ud83e[\uddaf\uddbc\uddbd])(?:\u200d\u27a1\ufe0f)|(?:\ud83d[\udc68\udc69]|\ud83e\uddd1)(?:\ud83c[\udffb-\udfff])?\u200d(?:\u2695\ufe0f|\u2696\ufe0f|\u2708\ufe0f|\ud83c[\udf3e\udf73\udf7c\udf84\udf93\udfa4\udfa8\udfeb\udfed]|\ud83d[\udcbb\udcbc\udd27\udd2c\ude80\ude92]|\ud83e[\uddaf\uddaf-\uddb3\uddbc\uddbc\uddbd\uddbd])|(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75]|\u26f9)((?:\ud83c[\udffb-\udfff]|\ufe0f)\u200d[\u2640\u2642]\ufe0f)|(?:\ud83c[\udfc3\udfc3\udfc4\udfca]|\ud83d[\udc6e\udc70\udc71\udc73\udc77\udc81\udc82\udc86\udc87\ude45-\ude47\ude4b\ude4d\ude4e\udea3\udeb4-\udeb6\udeb6]|\ud83e[\udd26\udd35\udd37-\udd39\udd3d\udd3e\uddb8\uddb9\uddcd\uddce\uddce\uddcf\uddd4\uddd6-\udddd])(?:\ud83c[\udffb-\udfff])?\u200d[\u2640\u2642]\ufe0f|(?:\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83e\uddd1\u200d\ud83e\uddd1\u200d\ud83e\uddd2\u200d\ud83e\uddd2|\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66|\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83e\uddd1\u200d\ud83e\uddd1\u200d\ud83e\uddd2|\ud83e\uddd1\u200d\ud83e\uddd2\u200d\ud83e\uddd2|\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f|\ud83c\udff3\ufe0f\u200d\ud83c\udf08|\ud83d\ude36\u200d\ud83c\udf2b\ufe0f|\u26d3\ufe0f\u200d\ud83d\udca5|\u2764\ufe0f\u200d\ud83d\udd25|\u2764\ufe0f\u200d\ud83e\ude79|\ud83c\udf44\u200d\ud83d\udfeb|\ud83c\udf4b\u200d\ud83d\udfe9|\ud83c\udff4\u200d\u2620\ufe0f|\ud83d\udc15\u200d\ud83e\uddba|\ud83d\udc26\u200d\ud83d\udd25|\ud83d\udc3b\u200d\u2744\ufe0f|\ud83d\udc41\u200d\ud83d\udde8|\ud83d\udc68\u200d\ud83d[\udc66\udc67]|\ud83d\udc69\u200d\ud83d[\udc66\udc67]|\ud83d\udc6f\u200d\u2640\ufe0f|\ud83d\udc6f\u200d\u2642\ufe0f|\ud83d\ude2e\u200d\ud83d\udca8|\ud83d\ude35\u200d\ud83d\udcab|\ud83d\ude42\u200d\u2194\ufe0f|\ud83d\ude42\u200d\u2195\ufe0f|\ud83e\udd3c\u200d\u2640\ufe0f|\ud83e\udd3c\u200d\u2642\ufe0f|\ud83e\uddd1\u200d\ud83e\uddd2|\ud83e\uddde\u200d\u2640\ufe0f|\ud83e\uddde\u200d\u2642\ufe0f|\ud83e\udddf\u200d\u2640\ufe0f|\ud83e\udddf\u200d\u2642\ufe0f|\ud83d\udc08\u200d\u2b1b|\ud83d\udc26\u200d\u2b1b)|[#*0-9]\ufe0f?\u20e3|(?:[©®\u2122\u265f]\ufe0f)|(?:\ud83c[\udc04\ude02\ude1a\ude2f\ude37\udf21\udf24-\udf2c\udf36\udf7d\udf96\udf97\udf99-\udf9b\udf9e\udf9f\udfcd\udfce\udfd4-\udfdf\udff3\udff5\udff7]|\ud83d[\udc3f\udc41\udcfd\udd49\udd4a\udd6f\udd70\udd73\udd76-\udd79\udd87\udd8a-\udd8d\udda5\udda8\uddb1\uddb2\uddbc\uddc2-\uddc4\uddd1-\uddd3\udddc-\uddde\udde1\udde3\udde8\uddef\uddf3\uddfa\udecb\udecd-\udecf\udee0-\udee5\udee9\udef0\udef3]|[\u203c\u2049\u2139\u2194-\u2199\u21a9\u21aa\u231a\u231b\u2328\u23cf\u23ed-\u23ef\u23f1\u23f2\u23f8-\u23fa\u24c2\u25aa\u25ab\u25b6\u25c0\u25fb-\u25fe\u2600-\u2604\u260e\u2611\u2614\u2615\u2618\u2620\u2622\u2623\u2626\u262a\u262e\u262f\u2638-\u263a\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267b\u267f\u2692-\u2697\u2699\u269b\u269c\u26a0\u26a1\u26a7\u26aa\u26ab\u26b0\u26b1\u26bd\u26be\u26c4\u26c5\u26c8\u26cf\u26d1\u26d3\u26d4\u26e9\u26ea\u26f0-\u26f5\u26f8\u26fa\u26fd\u2702\u2708\u2709\u270f\u2712\u2714\u2716\u271d\u2721\u2733\u2734\u2744\u2747\u2757\u2763\u2764\u27a1\u2934\u2935\u2b05-\u2b07\u2b1b\u2b1c\u2b50\u2b55\u3030\u303d\u3297\u3299])(?:\ufe0f|(?!\ufe0e))|(?:(?:\ud83c[\udfcb\udfcc]|\ud83d[\udd74\udd75\udd90]|\ud83e\udef0|[\u261d\u26f7\u26f9\u270c\u270d])(?:\ufe0f|(?!\ufe0e))|(?:\ud83c[\udf85\udfc2-\udfc4\udfc7\udfca]|\ud83d[\udc42\udc43\udc46-\udc50\udc66-\udc69\udc6e\udc70-\udc78\udc7c\udc81-\udc83\udc85-\udc87\udcaa\udd7a\udd95\udd96\ude45-\ude47\ude4b-\ude4f\udea3\udeb4-\udeb6\udec0\udecc]|\ud83e[\udd0c\udd0f\udd18-\udd1c\udd1e\udd1f\udd26\udd30-\udd39\udd3d\udd3e\udd77\uddb5\uddb6\uddb8\uddb9\uddbb\uddcd-\uddcf\uddd1-\udddd\udec3-\udec5\udef1-\udef8]|[\u270a\u270b]))(?:\ud83c[\udffb-\udfff])?|(?:\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f|\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f|\ud83c\udde6\ud83c[\udde8-\uddec\uddee\uddf1\uddf2\uddf4\uddf6-\uddfa\uddfc\uddfd\uddff]|\ud83c\udde7\ud83c[\udde6\udde7\udde9-\uddef\uddf1-\uddf4\uddf6-\uddf9\uddfb\uddfc\uddfe\uddff]|\ud83c\udde8\ud83c[\udde6\udde8\udde9\uddeb-\uddee\uddf0-\uddf5\uddf7\uddfa-\uddff]|\ud83c\udde9\ud83c[\uddea\uddec\uddef\uddf0\uddf2\uddf4\uddff]|\ud83c\uddea\ud83c[\udde6\udde8\uddea\uddec\udded\uddf7-\uddfa]|\ud83c\uddeb\ud83c[\uddee-\uddf0\uddf2\uddf4\uddf7]|\ud83c\uddec\ud83c[\udde6\udde7\udde9-\uddee\uddf1-\uddf3\uddf5-\uddfa\uddfc\uddfe]|\ud83c\udded\ud83c[\uddf0\uddf2\uddf3\uddf7\uddf9\uddfa]|\ud83c\uddee\ud83c[\udde8-\uddea\uddf1-\uddf4\uddf6-\uddf9]|\ud83c\uddef\ud83c[\uddea\uddf2\uddf4\uddf5]|\ud83c\uddf0\ud83c[\uddea\uddec-\uddee\uddf2\uddf3\uddf5\uddf7\uddfc\uddfe\uddff]|\ud83c\uddf1\ud83c[\udde6-\udde8\uddee\uddf0\uddf7-\uddfb\uddfe]|\ud83c\uddf2\ud83c[\udde6\udde8-\udded\uddf0-\uddff]|\ud83c\uddf3\ud83c[\udde6\udde8\uddea-\uddec\uddee\uddf1\uddf4\uddf5\uddf7\uddfa\uddff]|\ud83c\uddf4\ud83c\uddf2|\ud83c\uddf5\ud83c[\udde6\uddea-\udded\uddf0-\uddf3\uddf7-\uddf9\uddfc\uddfe]|\ud83c\uddf6\ud83c\udde6|\ud83c\uddf7\ud83c[\uddea\uddf4\uddf8\uddfa\uddfc]|\ud83c\uddf8\ud83c[\udde6-\uddea\uddec-\uddf4\uddf7-\uddf9\uddfb\uddfd-\uddff]|\ud83c\uddf9\ud83c[\udde6\udde8\udde9\uddeb-\udded\uddef-\uddf4\uddf7\uddf9\uddfb\uddfc\uddff]|\ud83c\uddfa\ud83c[\udde6\uddec\uddf2\uddf3\uddf8\uddfe\uddff]|\ud83c\uddfb\ud83c[\udde6\udde8\uddea\uddec\uddee\uddf3\uddfa]|\ud83c\uddfc\ud83c[\uddeb\uddf8]|\ud83c\uddfd\ud83c\uddf0|\ud83c\uddfe\ud83c[\uddea\uddf9]|\ud83c\uddff\ud83c[\udde6\uddf2\uddfc]|\ud83c[\udccf\udd8e\udd91-\udd9a\udde6-\uddff\ude01\ude32-\ude36\ude38-\ude3a\ude50\ude51\udf00-\udf20\udf2d-\udf35\udf37-\udf7c\udf7e-\udf84\udf86-\udf93\udfa0-\udfc1\udfc5\udfc6\udfc8\udfc9\udfcf-\udfd3\udfe0-\udff0\udff4\udff8-\udfff]|\ud83d[\udc00-\udc3e\udc40\udc44\udc45\udc51-\udc65\udc6a\udc6f\udc79-\udc7b\udc7d-\udc80\udc84\udc88-\udc8e\udc90\udc92-\udca9\udcab-\udcfc\udcff-\udd3d\udd4b-\udd4e\udd50-\udd67\udda4\uddfb-\ude44\ude48-\ude4a\ude80-\udea2\udea4-\udeb3\udeb7-\udebf\udec1-\udec5\uded0-\uded2\uded5-\uded7\udedc-\udedf\udeeb\udeec\udef4-\udefc\udfe0-\udfeb\udff0]|\ud83e[\udd0d\udd0e\udd10-\udd17\udd20-\udd25\udd27-\udd2f\udd3a\udd3c\udd3f-\udd45\udd47-\udd76\udd78-\uddb4\uddb7\uddba\uddbc-\uddcc\uddd0\uddde-\uddff\ude70-\ude7c\ude80-\ude88\ude90-\udebd\udebf-\udec2\udece-\udedb\udee0-\udee8]|[\u23e9-\u23ec\u23f0\u23f3\u267e\u26ce\u2705\u2728\u274c\u274e\u2753-\u2755\u2795-\u2797\u27b0\u27bf\ue50a])|\ufe0f/g,lt=[[/\u{1f3f3}\u200d\u{1f308}/gu,"🏳️‍🌈"],[/\u{1f3f3}\u200d\u26a7\ufe0f?/gu,"🏳️‍⚧️"],[/\u26d3\u200d\u{1f4a5}/gu,"⛓️‍💥"],[/\u200d([\u2640\u2642])(?!\ufe0f)/gu,"$1"]],pt=100,ft=8*pt;function gt(e){const t=e.matchAll(ut);let n=0,s=0;for(const e of t){if(e.index!==s)return!1;n++,s=e.index+e[0].length}return s===e.length&&n}function ht(e,t){if(e.text)return!t&&1===Object.keys(e).length&&!e.text.entities?.some((e=>e.type!==ot.CustomEmoji))&&function(e){const t=function(e){if(!e.match(ut))return e;for(const[t,n]of lt)e=e.replace(t,n);return e}(e).split("\n"),n=t.join("");if(n.length>ft)return!1;const s=gt(n);if(!s||s>pt)return!1;let a=t.length;for(const e of t){const t=gt(e);if(!1===t)return!1;t>a&&(a=t)}return a}(e.text.text)||void 0}function mt(e,t){return e.reduce(((e,n)=>(e[n[t]]=n,e)),{})}function yt(e,t){return e.reduce(((e,n)=>{const[s,a]=t(n);return e[s]=a,e}),{})}function _t(e,t){return t.reduce(((t,n)=>(t[n]=e[n],t)),{})}function bt(e,t){return t.reduce(((t,n)=>(e[n]&&(t[n]=e[n]),t)),{})}function wt(e,t){const n=new Set(t.map(String));return _t(e,Object.keys(e).filter((e=>!n.has(e))))}function vt(e){return Object.keys(e).reduce(((t,n)=>{const s=n;return void 0!==e[s]&&(t[s]=e[s]),t}),{})}function St(e){return e.filter(Boolean)}function It(e,t){const n=[];for(let s=0;s<e.length;s+=t)n.push(e.slice(s,s+t));return n}let At=0;function Pt(){return At}function Ct(){return Math.floor(Date.now()/1e3)+At}function Mt(e,t){let n=0;const s=new Array(t),a=e.length/t,i=e[0],o=e[e.length-1];for(let r=0;r<t;r++){const t=Math.floor(r*a),c=((e[t-1]??i)+(e[t]??i)+(e[t+1]??o))/3;s[r]=c,n<c&&(n=c)}return{data:s,peak:n}}var Rt=n(80071),kt=n.n(Rt),Tt=n(48287).hp;function Et(e){return e.startsWith("-")?(t=e).length===K&&t.startsWith("-1")?"channel":"chat":"user";var t}function Bt(e){const t=Et(e);return"user"===t?new ue.Api.PeerUser({userId:Zt(e,"user")}):"channel"===t?new ue.Api.PeerChannel({channelId:Zt(e,"channel")}):new ue.Api.PeerChat({chatId:Zt(e,"chat")})}function Dt(e,t){const n=Et(e);return"user"===n?new ue.Api.InputPeerUser({userId:Zt(e,"user"),accessHash:_e()(t)}):"channel"===n?new ue.Api.InputPeerChannel({channelId:Zt(e,"channel"),accessHash:_e()(t)}):new ue.Api.InputPeerChat({chatId:Zt(e,"chat")})}function Ut(e){const t=Et(e);let n;if("user"===t){if(n=Te.users[e]?.accessHash,!n)return}else if("channel"===t&&(n=Te.chats[e]?.accessHash,!n))return;return Dt(e,String(n))}function xt(e,t){const n=Et(e);return"user"===n?new ue.Api.InputUser({userId:Zt(e,"user"),accessHash:_e()(t)}):"channel"===n?new ue.Api.InputChannel({channelId:Zt(e,"channel"),accessHash:_e()(t)}):Zt(e,"chat")}function Vt(e,t){return new ue.Api.InputStickerSetID({id:_e()(e),accessHash:_e()(t)})}function Nt(e){const t=Te.documents[e.id];if(t)return new ue.Api.InputDocument(_t(t,["id","accessHash","fileReference"]))}function Ft(e){const t=Nt(e);if(t)return new ue.Api.InputMediaDocument({id:t})}function qt(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new ue.Api.InputMediaPoll({poll:new ue.Api.Poll({id:_e()(e.id),publicVoters:e.summary.isPublic,question:rn(e.summary.question),answers:e.summary.answers.map((e=>{let{text:t,option:n}=e;return new ue.Api.PollAnswer({text:rn(t),option:$e(n)})})),quiz:e.summary.quiz,multipleChoice:e.summary.multipleChoice,closeDate:e.summary.closeDate,closePeriod:e.summary.closePeriod,closed:!!t||e.summary.closed}),correctAnswers:e.results.results?.filter((e=>e.isCorrect)).map((e=>$e(e.option))),solution:e.results.solution,solutionEntities:e.results.solutionEntities?.map(jt)})}function Gt(){return(0,Rt.readBigIntFromBuffer)((0,Rt.generateRandomBytes)(8),!0,!0)}function Ht(){const e=(0,Rt.generateRandomBytes)(8),t=Tt.alloc(4);return t.writeUInt32LE(Math.floor(Date.now()/1e3),0),e.set(t,4),(0,Rt.readBigIntFromBuffer)(e,!0,!0)}function Ot(){return(0,Rt.readBigIntFromBuffer)((0,Rt.generateRandomBytes)(4),!0,!0).toJSNumber()}function Lt(e,t,n){return new ue.Api.Message({id:e,peerId:Bt(t),fromId:Bt(t),media:n.media})}function jt(e){const{type:t,offset:n,length:s}=e,a="userId"in e?Te.users[e.userId]:void 0;switch(t){case ot.Bold:return new ue.Api.MessageEntityBold({offset:n,length:s});case ot.Italic:return new ue.Api.MessageEntityItalic({offset:n,length:s});case ot.Underline:return new ue.Api.MessageEntityUnderline({offset:n,length:s});case ot.Strike:return new ue.Api.MessageEntityStrike({offset:n,length:s});case ot.Code:return new ue.Api.MessageEntityCode({offset:n,length:s});case ot.Pre:return new ue.Api.MessageEntityPre({offset:n,length:s,language:e.language||""});case ot.Blockquote:return new ue.Api.MessageEntityBlockquote({offset:n,length:s});case ot.TextUrl:return new ue.Api.MessageEntityTextUrl({offset:n,length:s,url:e.url});case ot.Url:return new ue.Api.MessageEntityUrl({offset:n,length:s});case ot.Hashtag:return new ue.Api.MessageEntityHashtag({offset:n,length:s});case ot.MentionName:return new ue.Api.InputMessageEntityMentionName({offset:n,length:s,userId:new ue.Api.InputUser({userId:_e()(a.id),accessHash:a.accessHash})});case ot.Spoiler:return new ue.Api.MessageEntitySpoiler({offset:n,length:s});case ot.CustomEmoji:return new ue.Api.MessageEntityCustomEmoji({offset:n,length:s,documentId:_e()(e.documentId)});default:return new ue.Api.MessageEntityUnknown({offset:n,length:s})}}function Wt(e){const t=Te.photos[e?.id];if(t)return new ue.Api.InputPhoto(_t(t,["id","accessHash","fileReference"]))}function zt(e){let{phone:t,firstName:n,lastName:s}=e;return new ue.Api.InputPhoneContact({clientId:_e()(1),phone:t,firstName:n,lastName:s})}function Kt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return new ue.Api.ChatBannedRights({...e,untilDate:t})}function $t(e){return new ue.Api.ChatAdminRights(e)}function Jt(e){const{shippingAddress:t}=e;return new ue.Api.PaymentRequestedInfo({...e,shippingAddress:t?new ue.Api.PostAddress(t):void 0})}function Qt(e){switch(e){case"phoneNumber":return new ue.Api.InputPrivacyKeyPhoneNumber;case"addByPhone":return new ue.Api.InputPrivacyKeyAddedByPhone;case"lastSeen":return new ue.Api.InputPrivacyKeyStatusTimestamp;case"profilePhoto":return new ue.Api.InputPrivacyKeyProfilePhoto;case"forwards":return new ue.Api.InputPrivacyKeyForwards;case"chatInvite":return new ue.Api.InputPrivacyKeyChatInvite;case"phoneCall":return new ue.Api.InputPrivacyKeyPhoneCall;case"phoneP2P":return new ue.Api.InputPrivacyKeyPhoneP2P;case"voiceMessages":return new ue.Api.InputPrivacyKeyVoiceMessages;case"bio":return new ue.Api.InputPrivacyKeyAbout;case"birthday":return new ue.Api.InputPrivacyKeyBirthday}}function Xt(e){switch(e){case"spam":return new ue.Api.InputReportReasonSpam;case"violence":return new ue.Api.InputReportReasonViolence;case"childAbuse":return new ue.Api.InputReportReasonChildAbuse;case"pornography":return new ue.Api.InputReportReasonPornography;case"copyright":return new ue.Api.InputReportReasonCopyright;case"fake":return new ue.Api.InputReportReasonFake;case"geoIrrelevant":return new ue.Api.InputReportReasonGeoIrrelevant;case"illegalDrugs":return new ue.Api.InputReportReasonIllegalDrugs;case"personalDetails":return new ue.Api.InputReportReasonPersonalDetails;case"other":return new ue.Api.InputReportReasonOther}}function Yt(e){return new ue.Api.DataJSON({data:JSON.stringify(e)})}function Zt(e,t){return"user"===t?_e()(e):"channel"===t?_e()(e.slice(2)):_e()(e.slice(1))}function en(e){return new ue.Api.InputGroupCall({id:_e()(e.id),accessHash:_e()(e.accessHash)})}function tn(e){let{id:t,accessHash:n}=e;return new ue.Api.InputPhoneCall({id:_e()(t),accessHash:_e()(n)})}function nn(e){if("stars"===e.type)return new ue.Api.InputStorePaymentStarsTopup({stars:_e()(e.stars),currency:e.currency,amount:_e()(e.amount)});if("starsgift"===e.type)return new ue.Api.InputStorePaymentStarsGift({userId:xt(e.user.id,e.user.accessHash),stars:_e()(e.stars),currency:e.currency,amount:_e()(e.amount)});if("giftcode"===e.type)return new ue.Api.InputStorePaymentPremiumGiftCode({users:e.users.map((e=>xt(e.id,e.accessHash))),boostPeer:e.boostChannel?Dt(e.boostChannel.id,e.boostChannel.accessHash):void 0,currency:e.currency,amount:_e()(e.amount)});const t=Gt();return"starsgiveaway"===e.type?new ue.Api.InputStorePaymentStarsGiveaway({boostPeer:Dt(e.chat.id,e.chat.accessHash),additionalPeers:e.additionalChannels?.map((e=>Dt(e.id,e.accessHash))),stars:_e()(e.stars),countriesIso2:e.countries,prizeDescription:e.prizeDescription,onlyNewSubscribers:e.isOnlyForNewSubscribers||void 0,winnersAreVisible:e.areWinnersVisible||void 0,untilDate:e.untilDate,currency:e.currency,amount:_e()(e.amount),users:e.users,randomId:t}):new ue.Api.InputStorePaymentPremiumGiveaway({boostPeer:Dt(e.chat.id,e.chat.accessHash),additionalPeers:e.additionalChannels?.map((e=>Dt(e.id,e.accessHash))),countriesIso2:e.countries,prizeDescription:e.prizeDescription,onlyNewSubscribers:e.isOnlyForNewSubscribers||void 0,winnersAreVisible:e.areWinnersVisible||void 0,untilDate:e.untilDate,currency:e.currency,amount:_e()(e.amount),randomId:t})}function sn(e){switch(e.type){case"message":return new ue.Api.InputInvoiceMessage({peer:Dt(e.chat.id,e.chat.accessHash),msgId:e.messageId});case"slug":return new ue.Api.InputInvoiceSlug({slug:e.slug});case"stars":{const t=nn(e.purpose);return new ue.Api.InputInvoiceStars({purpose:t})}case"starsgiveaway":{const t=nn(e.purpose);return new ue.Api.InputInvoiceStars({purpose:t})}case"chatInviteSubscription":return new ue.Api.InputInvoiceChatInviteSubscription({hash:e.hash});default:{const n=nn(e.purpose),s=(t=e.option,new ue.Api.PremiumGiftCodeOption({users:t.users,months:t.months,currency:t.currency,amount:_e()(t.amount)}));return new ue.Api.InputInvoicePremiumGiftCode({purpose:n,option:s})}}var t}function an(e){switch(e?.type){case"emoji":return new ue.Api.ReactionEmoji({emoticon:e.emoticon});case"custom":return new ue.Api.ReactionCustomEmoji({documentId:_e()(e.documentId)});case"paid":return new ue.Api.ReactionPaid;default:return new ue.Api.ReactionEmpty}}function on(e,t){return e.id===V?new ue.Api.EmojiStatusEmpty:t?new ue.Api.EmojiStatusUntil({documentId:_e()(e.id),until:t}):new ue.Api.EmojiStatus({documentId:_e()(e.id)})}function rn(e){return new ue.Api.TextWithEntities({text:e.text,entities:e.entities?.map(jt)||[]})}function cn(e){return new ue.Api.InputBotAppID({id:_e()(e.id),accessHash:_e()(e.accessHash)})}function dn(e){if("story"===e.type)return new ue.Api.InputReplyToStory({peer:Ut(e.peerId),storyId:e.storyId});if("message"===e.type){const{replyToMsgId:t,replyToTopId:n,replyToPeerId:s,quoteText:a}=e;return new ue.Api.InputReplyToMessage({replyToMsgId:t,topMsgId:n,replyToPeerId:s?Ut(s):void 0,quoteText:a?.text,quoteEntities:a?.entities?.map(jt)})}}function un(e){const t=[];if(e.allowedUsers?.length&&t.push(new ue.Api.InputPrivacyValueAllowUsers({users:e.allowedUsers.map((e=>{let{id:t,accessHash:n}=e;return xt(t,n)}))})),e.allowedChats?.length&&t.push(new ue.Api.InputPrivacyValueAllowChatParticipants({chats:e.allowedChats.map((e=>{let{id:t,type:n}=e;return Zt(t,"chatTypeBasicGroup"===n?"chat":"channel")}))})),e.blockedUsers?.length&&t.push(new ue.Api.InputPrivacyValueDisallowUsers({users:e.blockedUsers.map((e=>{let{id:t,accessHash:n}=e;return xt(t,n)}))})),e.blockedChats?.length&&t.push(new ue.Api.InputPrivacyValueDisallowChatParticipants({chats:e.blockedChats.map((e=>{let{id:t,type:n}=e;return Zt(t,"chatTypeBasicGroup"===n?"chat":"channel")}))})),e.shouldAllowPremium&&t.push(new ue.Api.InputPrivacyValueAllowPremium),!e.isUnspecified)switch(e.visibility){case"everybody":t.push(new ue.Api.InputPrivacyValueAllowAll);break;case"contacts":t.push(new ue.Api.InputPrivacyValueAllowContacts);break;case"nonContacts":t.push(new ue.Api.InputPrivacyValueDisallowContacts);break;case"nobody":t.push(new ue.Api.InputPrivacyValueDisallowAll)}return t}function ln(e){const{self:t,min:n,about:s,date:a,versioned:i,canSelfUnmute:o,justJoined:r,left:c,muted:d,mutedByYou:u,source:l,volume:p,volumeByAdmin:f,videoJoined:g,peer:h,video:m,presentation:y,raiseHandRating:_}=e;return{isSelf:t,isMin:n,canSelfUnmute:o,isLeft:c,isMuted:d,isMutedByMe:u,hasJustJoined:r,isVolumeByAdmin:f,isVersioned:i,isVideoJoined:g,about:s,source:l,raiseHandRating:_?.toString(),volume:p,date:new Date(a),isUser:le(h),id:ge(h),video:m?pn(m):void 0,presentation:y?pn(y):void 0}}function pn(e){const{audioSource:t,endpoint:n,paused:s,sourceGroups:a}=e;return{audioSource:t,endpoint:n,isPaused:s,sourceGroups:a.map(fn)}}function fn(e){return{semantics:e.semantics,sources:e.sources}}function gn(e){const{id:t,accessHash:n}=e;if(e instanceof ue.Api.GroupCallDiscarded)return{connectionState:"discarded",id:t.toString(),accessHash:n.toString(),participantsCount:0,version:0,participants:{}};const{version:s,participantsCount:a,streamDcId:i,scheduleDate:o,canChangeJoinMuted:r,joinMuted:c,canStartVideo:d,scheduleStartSubscribed:u}=e;return{connectionState:"disconnected",isLoaded:!0,id:t.toString(),accessHash:n.toString(),version:s,participantsCount:a,streamDcId:i,scheduleDate:o,canChangeJoinMuted:r,joinMuted:c,canStartVideo:d,scheduleStartSubscribed:u,participants:{}}}function hn(e){const{id:t}=e;let n={id:t.toString()};if(e instanceof ue.Api.PhoneCallAccepted||e instanceof ue.Api.PhoneCallWaiting||e instanceof ue.Api.PhoneCall||e instanceof ue.Api.PhoneCallRequested){const{accessHash:t,adminId:s,date:a,video:i,participantId:o,protocol:r}=e;n={...n,accessHash:t.toString(),adminId:s.toString(),participantId:o.toString(),date:a,isVideo:i,protocol:_n(r)}}if(e instanceof ue.Api.PhoneCall){const{p2pAllowed:t,gAOrB:s,keyFingerprint:a,connections:i,startDate:o}=e;n={...n,state:"active",gAOrB:Array.from(s),keyFingerprint:a.toString(),startDate:o,isP2pAllowed:Boolean(t),connections:i.map(yn).filter(Boolean)}}return e instanceof ue.Api.PhoneCallDiscarded&&(n={...n,state:"discarded",duration:e.duration,reason:mn(e.reason),needRating:e.needRating,needDebug:e.needDebug}),e instanceof ue.Api.PhoneCallWaiting&&(n={...n,state:"waiting",receiveDate:e.receiveDate}),e instanceof ue.Api.PhoneCallAccepted&&(n={...n,state:"accepted",gB:Array.from(e.gB)}),e instanceof ue.Api.PhoneCallRequested&&(n={...n,state:"requested",gAHash:Array.from(e.gAHash)}),n}function mn(e){return e instanceof ue.Api.PhoneCallDiscardReasonMissed?"missed":e instanceof ue.Api.PhoneCallDiscardReasonBusy?"busy":e instanceof ue.Api.PhoneCallDiscardReasonHangup?"hangup":"disconnect"}function yn(e){if(e instanceof ue.Api.PhoneConnectionWebrtc){const{username:t,password:n,turn:s,stun:a,ip:i,ipv6:o,port:r}=e;return{username:t,password:n,isTurn:s,isStun:a,ip:i,ipv6:o,port:r}}}function _n(e){const{libraryVersions:t,minLayer:n,maxLayer:s,udpP2p:a,udpReflector:i}=e;return{libraryVersions:t,minLayer:n,maxLayer:s,isUdpP2p:a,isUdpReflector:i}}function bn(){return new ue.Api.PhoneCallProtocol({libraryVersions:["4.0.0"],minLayer:92,maxLayer:92,udpReflector:!0,udpP2p:!0})}var wn=n(56215);const vn='<?xml version="1.0" encoding="utf-8"?><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 {{width}} {{height}}" xml:space="preserve"><path fill-opacity="0.1" d="{{path}}" /></svg>',Sn="AACAAAAHAAALMAAAQASTAVAAAZaacaaaahaaalmaaaqastava.az0123456789-,";const In={w:100,h:100};function An(e,t){if(!e||!e.length)return;const n=e.find((e=>e instanceof ue.Api.PhotoStrippedSize));if(!n)return;const s=e.filter((e=>e instanceof ue.Api.PhotoSize)),{w:a,h:i}=s.length?s[s.length-1]:In,{bytes:o}=n;return{dataUri:we(t&&"image/jpeg"!==t?o:(0,wn.strippedPhotoToJpg)(o),void 0,t),width:a,height:i}}function Pn(e,t){const{w:n,h:s}=t;return{dataUri:`data:image/svg+xml;utf8,${a=e.bytes,i=n,o=s,vn.replace("{{path}}",function(e){let t="M";const n=e.length;for(let s=0;s<n;s++){const n=e[s];n>=192?t+=Sn[n-128-64]:(n>=128?t+=",":n>=64&&(t+="-"),t+=String(63&n))}return t+="z",t}(a)).replace("{{width}}",String(i)).replace("{{height}}",String(o))}`,width:n,height:s};var a,i,o}function Cn(e,t){const n=e.sizes.filter((e=>e instanceof ue.Api.PhotoSize||e instanceof ue.Api.PhotoSizeProgressive)).map(Rn);return{mediaType:"photo",id:String(e.id),thumbnail:An(e.sizes),sizes:n,isSpoiler:t,date:e.date,...e.videoSizes&&{videoSizes:St(e.videoSizes.map(Mn)),isVideo:!0}}}function Mn(e){if(!(e instanceof ue.Api.VideoSize))return;const{videoStartTs:t,size:n,h:s,w:a,type:i}=e;return{videoStartTs:t,size:n,height:s,width:a,type:i}}function Rn(e){const{w:t,h:n,type:s}=e;return{width:t,height:n,type:s}}function kn(e){if(!(e.usernames||"username"in e&&e.username))return;const t=[];return"username"in e&&e.username&&t.push({username:e.username,isActive:!0,isEditable:!0}),e.usernames&&e.usernames.forEach((e=>{let{username:n,active:s,editable:a}=e;t.push({username:n,...s&&{isActive:!0},...a&&{isEditable:!0}})})),t}function Tn(e){let t,n,s,a,i,o,r;const c=Te.chats;return e.forEach((e=>{e instanceof ue.Api.PrivacyValueAllowAll?t||(t="everybody"):e instanceof ue.Api.PrivacyValueAllowContacts?t||(t="contacts"):e instanceof ue.Api.PrivacyValueAllowCloseFriends?t||(t="closeFriends"):e instanceof ue.Api.PrivacyValueDisallowContacts?t||(t="nonContacts"):e instanceof ue.Api.PrivacyValueDisallowAll?t||(t="nobody"):e instanceof ue.Api.PrivacyValueAllowUsers?s=e.users.map((e=>fe(e,"user"))):e instanceof ue.Api.PrivacyValueDisallowUsers?i=e.users.map((e=>fe(e,"user"))):e instanceof ue.Api.PrivacyValueAllowChatParticipants?a=e.chats.map((e=>{const t=fe(e,"chat"),n=fe(e,"channel");return c[t]?t:n})):e instanceof ue.Api.PrivacyValueDisallowChatParticipants?o=e.chats.map((e=>{const t=fe(e,"chat"),n=fe(e,"channel");return c[t]?t:n})):e instanceof ue.Api.PrivacyValueAllowPremium&&(r=!0)})),t||(t="nobody",n=!0),{visibility:t,isUnspecified:n,allowUserIds:s||[],allowChatIds:a||[],blockUserIds:i||[],blockChatIds:o||[],shouldAllowPremium:r}}function En(e){const{text:t,entities:n}=e;return{text:t,entities:n.map(Bn)}}function Bn(e){const{className:t,offset:n,length:s}=e;return e instanceof ue.Api.MessageEntityMentionName?{type:ot.MentionName,offset:n,length:s,userId:fe(e.userId,"user")}:e instanceof ue.Api.MessageEntityTextUrl?{type:ot.TextUrl,offset:n,length:s,url:e.url}:e instanceof ue.Api.MessageEntityPre?{type:ot.Pre,offset:n,length:s,language:e.language}:e instanceof ue.Api.MessageEntityCustomEmoji?{type:ot.CustomEmoji,offset:n,length:s,documentId:e.documentId.toString()}:e instanceof ue.Api.MessageEntityBlockquote?{type:ot.Blockquote,canCollapse:e.collapsed,offset:n,length:s}:{type:t,offset:n,length:s}}function Dn(e){if("photoId"in e)return e.photoId.toString()}function Un(e,t,n){if(e instanceof ue.Api.DocumentEmpty)return;const{mimeType:s,videoThumbs:a}=e,i=e.attributes.find((e=>e instanceof ue.Api.DocumentAttributeSticker)),o=e.attributes.find((e=>e instanceof ue.Api.DocumentAttributeCustomEmoji));if(!i&&!o)return;const r=s===q,c=s===G,d=Boolean(o),u=d&&o.textColor,l=e.attributes.find((e=>e instanceof ue.Api.DocumentAttributeImageSize)),p=e.attributes.find((e=>e instanceof ue.Api.DocumentAttributeVideo)),f=l||p,g=i||o,h=(b=g?.stickerset,b instanceof ue.Api.InputStickerSetID?{id:String(b.id),accessHash:String(b.accessHash)}:b instanceof ue.Api.InputStickerSetShortName?{shortName:b.shortName}:{isMissing:!0}),m=g?.alt,y=Boolean(o?.free??!0)&&!n,_=e.thumbs&&e.thumbs.find((e=>e instanceof ue.Api.PhotoCachedSize));var b;if(!(s!==G||self.isWebmSupported||_||e.thumbs&&e.thumbs.find((e=>e instanceof ue.Api.PhotoSize))))return;const w=e.thumbs&&e.thumbs.find((e=>e instanceof ue.Api.PhotoPathSize)),v=_?function(e){const{w:t,h:n,bytes:s}=e;return{dataUri:we(s,void 0,"image/webp"),width:t,height:n}}(_):w&&f?Pn(w,f):void 0,{w:S,h:I}=_||f||{},A=!t&&a&&St(a?.filter((e=>e instanceof ue.Api.VideoSize))).some((e=>{let{type:t}=e;return"f"===t}));return{mediaType:"sticker",id:String(e.id),stickerSetInfo:h,emoji:m,isCustomEmoji:d,isLottie:r,isVideo:c,width:S,height:I,thumbnail:v,hasEffect:A,isFree:y,shouldUseTextColor:u}}function xn(e){const{archived:t,installedDate:n,id:s,accessHash:a,title:i,thumbs:o,count:r,shortName:c,emojis:d,thumbDocumentId:u}=e,l=o?.some((e=>"s"===e.type)),p=o?.some((e=>"a"===e.type)),f=o?.some((e=>"v"===e.type)),g=u&&String(u),h=l||p||f||Boolean(g);return{isArchived:t,isEmoji:d,installedDate:n,id:String(s),accessHash:String(a),title:i,hasStaticThumb:l,hasAnimatedThumb:p,hasVideoThumb:f,hasThumbnail:h,thumbCustomEmojiId:g,count:r,shortName:c}}function Vn(e){const t=xn(e.set);if(e instanceof ue.Api.StickerSetNoCovered)return t;const n=Fn(e instanceof ue.Api.StickerSetCovered?[e.cover]:e instanceof ue.Api.StickerSetMultiCovered?e.covers:e.documents);return e instanceof ue.Api.StickerSetFullCovered?{...t,stickers:n,packs:Nn(e.packs)}:{...t,covers:n}}function Nn(e){return e.reduce(((e,t)=>{let{emoticon:n,documents:s}=t;return e[n]=s.map((e=>{const t=Te.documents[String(e)];if(t)return Un(t)})).filter(Boolean),e}),{})}function Fn(e){return e.map((e=>{if(e instanceof ue.Api.Document){const t=Un(e);if(t)return Te.documents[String(e.id)]=e,t}})).filter(Boolean)}function qn(e){let t={};if(e.media){const n="peerId"in e?e:void 0;t={...Hn(e.media,n)}}const n=e.media instanceof ue.Api.MessageMediaUnsupported;return!e.message||n||t.sticker||t.poll||t.contact||t.video?.isRound||(t={...t,text:Gn(e.message,e.entities)}),t}function Gn(e,t){return{text:e,...t&&{entities:t.map(Bn)}}}function Hn(e,t){qe(e,t);const n="ttlSeconds"in e?e.ttlSeconds:void 0,s=function(e){return e instanceof ue.Api.MessageMediaDocument&&(!e.document&&e.voice)}(e);if(s)return{isExpiredVoice:s};const a=function(e){return e instanceof ue.Api.MessageMediaDocument&&(!e.document&&e.round)}(e);if(a)return{isExpiredRoundVideo:a};const i=function(e){if(!(e instanceof ue.Api.MessageMediaDocument&&e.document&&e.document instanceof ue.Api.Document))return;const t=e.document.attributes.find((e=>e instanceof ue.Api.DocumentAttributeAudio));if(!t||!t.voice)return;const{duration:n,waveform:s}=t;return{mediaType:"voice",id:String(e.document.id),size:e.document.size.toJSNumber(),duration:n,waveform:s?Array.from(s):void 0}}(e);if(i)return{voice:i,ttlSeconds:n};if("round"in e&&e.round){const t=Ln(e);if(t)return{video:t,ttlSeconds:n}}if(void 0!==n)return;if(e instanceof ue.Api.MessageMediaInvoice&&e.extendedMedia instanceof ue.Api.MessageExtendedMedia)return Hn(e.extendedMedia.media,t);const o=function(e){if(e instanceof ue.Api.MessageMediaDocument&&e.document&&e.document instanceof ue.Api.Document)return Un(e.document,e.nopremium)}(e);if(o)return{sticker:o};const r=function(e){if(e instanceof ue.Api.MessageMediaPhoto&&e.photo&&e.photo instanceof ue.Api.Photo)return Cn(e.photo,e.spoiler)}(e);if(r)return{photo:r};const c=Ln(e),d=function(e){if(!(e instanceof ue.Api.MessageMediaDocument&&e.altDocuments))return;const t=e.altDocuments.filter((e=>e instanceof ue.Api.Document&&e.mimeType.startsWith("video"))).map((t=>On(t,e.spoiler))).filter(Boolean);return t.length?t:void 0}(e);if(c)return{video:c,altVideos:d};const u=function(e){if(!(e instanceof ue.Api.MessageMediaDocument&&e.document&&e.document instanceof ue.Api.Document))return;const t=e.document.attributes.find((e=>e instanceof ue.Api.DocumentAttributeAudio));if(!t||t.voice)return;const n=e.document.thumbs&&e.document.thumbs.filter((e=>e instanceof ue.Api.PhotoSize)).map((e=>Rn(e)));return{mediaType:"audio",id:String(e.document.id),fileName:Jn(e.document,"audio"),thumbnailSizes:n,size:e.document.size.toJSNumber(),..._t(e.document,["mimeType"]),..._t(t,["duration","performer","title"])}}(e);if(u)return{audio:u};const l=function(e){if(e instanceof ue.Api.MessageMediaDocument&&e.document)return jn(e.document)}(e);if(l)return{document:l};const p=function(e){if(!(e instanceof ue.Api.MessageMediaContact))return;const{firstName:t,lastName:n,phoneNumber:s,userId:a}=e;return{mediaType:"contact",firstName:t,lastName:n,phoneNumber:s,userId:fe(a,"user")}}(e);if(p)return{contact:p};const f=function(e){if(e instanceof ue.Api.MessageMediaPoll)return zn(e.poll,e.results)}(e);if(f)return{poll:f};const g=$n(e);if(g)return{webPage:g};const h=function(e){if(e instanceof ue.Api.MessageMediaInvoice)return function(e){const{description:t,title:n,photo:s,test:a,totalAmount:i,currency:o,receiptMsgId:r,extendedMedia:c}=e,d=c instanceof ue.Api.MessageExtendedMediaPreview?Qn(c):void 0;return{mediaType:"invoice",title:n,text:t,photo:Xn(s),receiptMsgId:r,amount:Number(i),currency:o,isTest:a,extendedMedia:d}}(e)}(e);if(h)return{invoice:h};const m=function(e){return e instanceof ue.Api.MessageMediaGeo?function(e){const t=Wn(e.geo);return t&&{mediaType:"geo",geo:t}}(e):e instanceof ue.Api.MessageMediaVenue?function(e){const{geo:t,title:n,provider:s,address:a,venueId:i,venueType:o}=e,r=Wn(t);return r&&{mediaType:"venue",geo:r,title:n,provider:s,address:a,venueId:i,venueType:o}}(e):e instanceof ue.Api.MessageMediaGeoLive?function(e){const{geo:t,period:n,heading:s}=e,a=Wn(t);return a&&{mediaType:"geoLive",geo:a,period:n,heading:s}}(e):void 0}(e);if(m)return{location:m};const y=function(e){if(e instanceof ue.Api.MessageMediaGame)return function(e){const{id:t,accessHash:n,shortName:s,title:a,description:i,photo:o,document:r}=e.game,c=o instanceof ue.Api.Photo?Cn(o):void 0,d=r instanceof ue.Api.Document?jn(r):void 0;return{mediaType:"game",id:t.toString(),accessHash:n.toString(),shortName:s,title:a,description:i,photo:c,document:d}}(e)}(e);if(y)return{game:y};const _=function(e){if(!(e instanceof ue.Api.MessageMediaStory))return;const t=ge(e.peer);return{mediaType:"storyData",id:e.id,peerId:t,...e.viaMention&&{isMention:!0}}}(e);if(_)return{storyData:_};const b=function(e){if(e instanceof ue.Api.MessageMediaGiveaway)return function(e){const{channels:t,months:n,stars:s,quantity:a,untilDate:i,countriesIso2:o,onlyNewSubscribers:r,prizeDescription:c}=e,d=t.map((e=>fe(e,"channel")));return{mediaType:"giveaway",channelIds:d,months:n,stars:s?.toJSNumber(),quantity:a,untilDate:i,countries:o,isOnlyForNewSubscribers:r,prizeDescription:c}}(e)}(e);if(b)return{giveaway:b};const w=function(e){if(e instanceof ue.Api.MessageMediaGiveawayResults)return function(e){const{months:t,untilDate:n,onlyNewSubscribers:s,launchMsgId:a,unclaimedCount:i,winners:o,winnersCount:r,additionalPeersCount:c,prizeDescription:d,refunded:u,channelId:l}=e,p=o.map((e=>fe(e,"user")));return{mediaType:"giveawayResults",months:t,untilDate:n,isOnlyForNewSubscribers:s,launchMessageId:a,channelId:fe(l,"channel"),unclaimedCount:i,additionalPeersCount:c,isRefunded:u,prizeDescription:d,winnerIds:p,winnersCount:r}}(e)}(e);if(w)return{giveawayResults:w};const v=function(e){if(!(e instanceof ue.Api.MessageMediaPaidMedia))return;const{starsAmount:t,extendedMedia:n}=e,s=n[0]instanceof ue.Api.MessageExtendedMedia;return s?{mediaType:"paidMedia",starsAmount:t.toJSNumber(),isBought:s,extendedMedia:Yn(n)}:{mediaType:"paidMedia",starsAmount:t.toJSNumber(),extendedMedia:n.filter((e=>e instanceof ue.Api.MessageExtendedMediaPreview)).map((e=>Qn(e)))}}(e);return v?{paidMedia:v}:void 0}function On(e,t){if(e instanceof ue.Api.DocumentEmpty)return;const{id:n,mimeType:s,thumbs:a,size:i,videoThumbs:o,attributes:r}=e;if(s===N&&!self.isWebmSupported)return;const c=r.find((e=>e instanceof ue.Api.DocumentAttributeVideo));if(!c)return;const d=r.find((e=>e instanceof ue.Api.DocumentAttributeAnimated)),u=o?.some((e=>e instanceof ue.Api.VideoSize&&"v"===e.type)),{duration:l,w:p,h:f,supportsStreaming:g=!1,roundMessage:h=!1,nosound:m}=c;return{mediaType:"video",id:String(n),mimeType:s,duration:l,fileName:Jn(e,"video"),width:p,height:f,supportsStreaming:g,isRound:h,isGif:Boolean(d),thumbnail:An(a),size:i.toJSNumber(),isSpoiler:t,hasVideoPreview:u,...m&&{noSound:!0}}}function Ln(e){if(e instanceof ue.Api.MessageMediaDocument&&e.document instanceof ue.Api.Document&&e.document.mimeType.startsWith("video"))return On(e.document,e.spoiler)}function jn(e){if(!(e instanceof ue.Api.Document))return;const{id:t,size:n,mimeType:s,date:a,thumbs:i,attributes:o}=e,r=i&&i.find((e=>e instanceof ue.Api.PhotoSize));let c,d,u=i&&An(i);if(!u&&i&&r){const e=i.find((e=>e instanceof ue.Api.PhotoPathSize));e&&(u=Pn(e,r))}if(r)if(d={width:r.w,height:r.h},H.has(s)){c="photo";const e=o.find((e=>e instanceof ue.Api.DocumentAttributeImageSize));if(e){const{w:t,h:n}=e;d={width:t,height:n}}}else if(O.has(s)){c="video";const e=o.find((e=>e instanceof ue.Api.DocumentAttributeVideo));if(e){const{w:t,h:n}=e;d={width:t,height:n}}}return{mediaType:"document",id:String(t),size:n.toJSNumber(),mimeType:s,timestamp:a,fileName:Jn(e),thumbnail:u,innerMediaType:c,mediaSize:d}}function Wn(e){if(e instanceof ue.Api.GeoPointEmpty)return;const{long:t,lat:n,accuracyRadius:s,accessHash:a}=e;return{long:t,lat:n,accessHash:a.toString(),accuracyRadius:s}}function zn(e,t){const{id:n,answers:s}=e,a=s.map((e=>({text:En(e.text),option:Ke(e.option)})));return{mediaType:"poll",id:String(n),summary:{isPublic:e.publicVoters,question:En(e.question),..._t(e,["closed","multipleChoice","quiz","closePeriod","closeDate"]),answers:a},results:Kn(t)}}function Kn(e){const{results:t,totalVoters:n,recentVoters:s,solution:a,solutionEntities:i,min:o}=e,r=t?.map((e=>{let{option:t,chosen:n,correct:s,voters:a}=e;return{isChosen:n,isCorrect:s,option:Ke(t),votersCount:a}}));return{isMin:o,totalVoters:n,recentVoterIds:s?.map((e=>ge(e))),results:r,solution:a,...i&&{solutionEntities:i.map(Bn)}}}function $n(e){if(!(e instanceof ue.Api.MessageMediaWebPage&&e.webpage instanceof ue.Api.WebPage))return;const{id:t,photo:n,document:s,attributes:a}=e.webpage;let i,o,r,c;s instanceof ue.Api.Document&&s.mimeType.startsWith("video/")&&(i=On(s)),s instanceof ue.Api.Document&&s.mimeType.startsWith("audio/")&&(o=function(e){if(e instanceof ue.Api.DocumentEmpty)return;const{id:t,mimeType:n,size:s,attributes:a}=e,i=a.find((e=>e instanceof ue.Api.DocumentAttributeAudio));if(!i)return;const{duration:o,title:r,performer:c}=i;return{mediaType:"audio",id:String(t),mimeType:n,duration:o,fileName:Jn(e,"audio"),title:r,performer:c,size:s.toJSNumber()}}(s));const d=a?.find((e=>e instanceof ue.Api.WebPageAttributeStory));if(d){const e=ge(d.peer);r={id:d.id,peerId:e},d.story instanceof ue.Api.StoryItem&&Ge(d.story,e)}const u=a?.find((e=>e instanceof ue.Api.WebPageAttributeStickerSet));return u&&(c={documents:Fn(u.stickers),isEmoji:u.emojis,isWithTextColor:u.textColor}),{mediaType:"webpage",id:Number(t),..._t(e.webpage,["url","displayUrl","type","siteName","title","description","duration"]),photo:n instanceof ue.Api.Photo?Cn(n):void 0,document:i||o||!s?void 0:jn(s),video:i,audio:o,story:r,stickers:c}}function Jn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"file";const{mimeType:n,attributes:s}=e,a=s.find((e=>e instanceof ue.Api.DocumentAttributeFilename));if(a)return a.fileName;const i=n.split("/")[1];return`${t}${String(e.id)}.${i}`}function Qn(e){const{w:t,h:n,thumb:s,videoDuration:a}=e;return{mediaType:"extendedMediaPreview",width:t,height:n,duration:a,thumbnail:s?An([s]):void 0}}function Xn(e){if(!e)return;const{url:t,size:n,mimeType:s}=e,a=e instanceof ue.Api.WebDocument?e.accessHash.toString():void 0,i=e.attributes.find((e=>e instanceof ue.Api.DocumentAttributeImageSize));return{mediaType:"webDocument",url:t,accessHash:a,size:n,mimeType:s,dimensions:i&&{width:i.w,height:i.h}}}function Yn(e){const t=e.filter((e=>e instanceof ue.Api.MessageExtendedMedia)).map((e=>Hn(e.media))).filter(Boolean);if(t.length)return t}function Zn(e){const{recentReactions:t,results:n,canSeeList:s,reactionsAsTags:a,topReactors:i}=e;return{areTags:a,canSeeList:s,results:n.map(ts).filter(Boolean).sort(es),recentReactions:t?.map(ss).filter(Boolean),topReactors:i?.map(ns).filter(Boolean)}}function es(e,t){if("paid"===e.reaction.type)return-1;if("paid"===t.reaction.type)return 1;return t.count-e.count||(void 0!==e.chosenOrder&&void 0!==t.chosenOrder?e.chosenOrder-t.chosenOrder:void 0!==e.chosenOrder?1:void 0!==t.chosenOrder?-1:0)}function ts(e){const{chosenOrder:t,count:n,reaction:s}=e,a=as(s,!0);if(a)return{chosenOrder:t,count:n,reaction:a}}function ns(e){const{count:t,my:n,top:s,anonymous:a,peerId:i}=e;return{peerId:i&&ge(i),count:t,isMe:n,isTop:s,isAnonymous:a}}function ss(e){const{peerId:t,reaction:n,big:s,unread:a,date:i,my:o}=e,r=as(n);if(r)return{peerId:ge(t),reaction:r,addedDate:i,isUnread:a,isBig:s,isOwn:o}}function as(e,t){return e instanceof ue.Api.ReactionEmoji?{type:"emoji",emoticon:e.emoticon}:e instanceof ue.Api.ReactionCustomEmoji?{type:"custom",documentId:e.documentId.toString()}:t&&e instanceof ue.Api.ReactionPaid?{type:"paid"}:void 0}function is(e){const{reaction:t,title:n,count:s}=e,a=as(t);if(a)return{reaction:a,title:n,count:s}}function os(e){const{selectAnimation:t,staticIcon:n,reaction:s,title:a,appearAnimation:i,inactive:o,aroundAnimation:r,centerIcon:c,effectAnimation:d,activateAnimation:u,premium:l}=e;return{selectAnimation:jn(t),appearAnimation:jn(i),activateAnimation:jn(u),effectAnimation:jn(d),staticIcon:jn(n),aroundAnimation:r?jn(r):void 0,centerIcon:c?jn(c):void 0,reaction:{type:"emoji",emoticon:s},title:a,isInactive:o,isPremium:l}}function rs(e){const{id:t,emoticon:n,premiumRequired:s,staticIconId:a,effectStickerId:i,effectAnimationId:o}=e;return{id:t.toString(),emoticon:n,isPremium:s,staticIconId:a?.toString(),effectStickerId:i.toString(),effectAnimationId:o?.toString()}}const cs=1e6,ds="temp",us=63,ls=10;let ps,fs=0;function gs(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:0)+ ++fs/cs}function hs(e){const t=Ve(e);if(t&&(e instanceof ue.Api.Message||e instanceof ue.Api.MessageService))return ms(t,e)}function ms(e,t){const n=t.fromId?ge(t.fromId):void 0,s=t.peerId?ge(t.peerId):void 0,a=!n&&e===ps,i=t.out&&!t.post||a&&!t.fwdFrom,o=qn(t),r=t.action&&function(e,t,n,s,a){if(e instanceof ue.Api.MessageActionEmpty)return;let i,o,r,c,d,u,l;const p=[];let f,g,h,m,y,_,b,w,v,S,I,A="other",P="users"in e?e.users&&e.users.map((e=>fe(e,"user"))):"userId"in e&&[fe(e.userId,"user")]||[];if(e instanceof ue.Api.MessageActionChatCreate)l="Notification.CreatedChatWithTitle",p.push("%action_origin%",e.title),A="chatCreate";else if(e instanceof ue.Api.MessageActionChatEditTitle)s?(l="Channel.MessageTitleUpdated",p.push(e.title)):(l="Notification.ChangedGroupName",p.push("%action_origin%",e.title));else if(e instanceof ue.Api.MessageActionChatEditPhoto)s?l="Channel.MessagePhotoUpdated":(l="Notification.ChangedGroupPhoto",p.push("%action_origin%"));else if(e instanceof ue.Api.MessageActionChatDeletePhoto)l=s?"Channel.MessagePhotoRemoved":"Group.MessagePhotoRemoved";else if(e instanceof ue.Api.MessageActionChatAddUser)!t||P.includes(t)?(l="Notification.JoinedChat",p.push("%target_user%")):(l="Notification.Invited",p.push("%action_origin%","%target_user%"));else if(e instanceof ue.Api.MessageActionChatDeleteUser)!t||P.includes(t)?(l="Notification.LeftChat",p.push("%target_user%")):(l="Notification.Kicked",p.push("%action_origin%","%target_user%"));else if(e instanceof ue.Api.MessageActionChatJoinedByLink)l="Notification.JoinedGroupByLink",p.push("%action_origin%");else if(e instanceof ue.Api.MessageActionChannelCreate)l="Notification.CreatedChannel";else if(e instanceof ue.Api.MessageActionChatMigrateTo)I=ge(e),l="Migrated to %target_chat%",p.push("%target_chat%");else if(e instanceof ue.Api.MessageActionChannelMigrateFrom)I=ge(e),l="Migrated from %target_chat%",p.push("%target_chat%");else if(e instanceof ue.Api.MessageActionPinMessage)l="Chat.Service.Group.UpdatedPinnedMessage1",p.push("%action_origin%","%message%");else if(e instanceof ue.Api.MessageActionHistoryClear)l="HistoryCleared",A="historyClear";else if(e instanceof ue.Api.MessageActionPhoneCall){const t=Boolean(e.duration);if(l=[t?"ChatList.Service":"Chat",e.video?"VideoCall":"Call",a?t?"outgoing":"Outgoing":t?"incoming":"Incoming"].join("."),t){const t=Math.max(Math.round(e.duration/60),1);p.push(`${t} min${t>1?"s":""}`)}i={isOutgoing:a,isVideo:e.video,duration:e.duration,reason:mn(e.reason)}}else if(e instanceof ue.Api.MessageActionInviteToGroupCall)l="Notification.VoiceChatInvitation",o={id:e.call.id.toString(),accessHash:e.call.accessHash.toString()},p.push("%action_origin%","%target_user%");else if(e instanceof ue.Api.MessageActionContactSignUp)l="Notification.Joined",p.push("%action_origin%"),A="contactSignUp";else if(e instanceof ue.Api.MessageActionPaymentSent)r=Number(e.totalAmount),d=e.currency,l="PaymentSuccessfullyPaid",A="receipt",n&&P.push(n),p.push("%payment_amount%","%target_user%","%product%");else if(e instanceof ue.Api.MessageActionGroupCall)if(e.duration){const t=Math.max(Math.round(e.duration/60),1);l="Notification.VoiceChatEnded",p.push(`${t} min${t>1?"s":""}`)}else l="Notification.VoiceChatStartedChannel",o={id:e.call.id.toString(),accessHash:e.call.accessHash.toString()};else if(e instanceof ue.Api.MessageActionBotAllowed)e.domain?(l="ActionBotAllowed",p.push(e.domain)):l=e.fromRequest?"lng_action_webapp_bot_allowed":"ActionAttachMenuBotAllowed";else if(e instanceof ue.Api.MessageActionCustomAction)l=e.message;else if(e instanceof ue.Api.MessageActionChatJoinedByRequest)l="ChatService.UserJoinedGroupByRequest",p.push("%action_origin%");else if(e instanceof ue.Api.MessageActionGameScore)l=t===ps?"ActionYouScoredInGame":"ActionUserScoredInGame",p.push("%score%"),g=e.score;else if(e instanceof ue.Api.MessageActionWebViewDataSent)l="Notification.WebAppSentData",p.push(e.text);else if(e instanceof ue.Api.MessageActionGiftPremium)A="giftPremium",l=a?"ActionGiftOutbound":"ActionGiftInbound",a?p.push("%gift_payment_amount%"):p.push("%action_origin%","%gift_payment_amount%"),n&&P.push(n),d=e.currency,e.cryptoCurrency&&(u={currency:e.cryptoCurrency,amount:e.cryptoAmount.toJSNumber()}),r=e.amount.toJSNumber(),h=e.months;else if(e instanceof ue.Api.MessageActionTopicCreate)l="TopicWasCreatedAction",A="topicCreate",p.push(e.title);else if(e instanceof ue.Api.MessageActionTopicEdit)void 0!==e.closed?(l=e.closed?"TopicWasClosedAction":"TopicWasReopenedAction",p.push("%action_origin%","%action_topic%")):void 0!==e.hidden?l=e.hidden?"TopicHidden2":"TopicShown":e.title?(l="TopicRenamedTo",p.push("%action_origin%",e.title)):e.iconEmojiId?(l="TopicWasIconChangedToAction",p.push("%action_origin%","%action_topic_icon%"),m=e.iconEmojiId.toString()):l="ChatList.UnsupportedMessage",y=!0;else if(e instanceof ue.Api.MessageActionSuggestProfilePhoto){const s=e.photo instanceof ue.Api.Photo&&e.photo.videoSizes?.length;l=t===ps?s?"ActionSuggestVideoFromYouDescription":"ActionSuggestPhotoFromYouDescription":s?"ActionSuggestVideoToYouDescription":"ActionSuggestPhotoToYouDescription",A="suggestProfilePhoto",p.push("%target_user%"),n&&P.push(n)}else e instanceof ue.Api.MessageActionGiveawayLaunch?(l="BoostingGiveawayJustStarted",p.push("%action_origin%")):e instanceof ue.Api.MessageActionGiftCode?(A="giftCode",l=a?"ActionGiftOutbound":"BoostingReceivedGiftNoName",_=e.slug,h=e.months,r=e.amount?.toJSNumber(),b=Boolean(e.viaGiveaway),w=Boolean(e.unclaimed),a&&p.push("%gift_payment_amount%"),d=e.currency,e.cryptoCurrency&&(u={currency:e.cryptoCurrency,amount:e.cryptoAmount.toJSNumber()}),e.boostPeer&&(I=ge(e.boostPeer)),n&&P.push(n)):e instanceof ue.Api.MessageActionGiveawayResults?e.winnersCount?e.unclaimedCount?l="lng_action_giveaway_results_some":(l="BoostingGiveawayServiceWinnersSelected",p.push("%amount%"),r=e.winnersCount,v=e.winnersCount):l="lng_action_giveaway_results_none":e instanceof ue.Api.MessageActionPrizeStars?(A="prizeStars",w=Boolean(e.unclaimed),e.boostPeer&&(I=ge(e.boostPeer)),l="Notification.StarsPrize",c=e.stars.toJSNumber(),S=e.transactionId):e instanceof ue.Api.MessageActionBoostApply?(A="chatBoost",1===e.boosts?(l=t===ps?"BoostingBoostsGroupByYouServiceMsg":"BoostingBoostsGroupByUserServiceMsg",p.push("%action_origin%")):(l=t===ps?"BoostingBoostsGroupByYouServiceMsgCount":"BoostingBoostsGroupByUserServiceMsgCount",p.push(e.boosts.toString()),t!==ps&&p.unshift("%action_origin%"),v=e.boosts)):e instanceof ue.Api.MessageActionPaymentRefunded?(l="ActionRefunded",r=Number(e.totalAmount),d=e.currency):e instanceof ue.Api.MessageActionRequestedPeer?(l="ActionRequestedPeer",e.peers&&(P=e.peers?.map((e=>ge(e)))),n&&p.unshift("%action_origin%")):e instanceof ue.Api.MessageActionGiftStars?(A="giftStars",l=a?"ActionGiftOutbound":n?"ActionGiftInbound":"BoostingReceivedGiftNoName",a?p.push("%gift_payment_amount%"):p.push("%action_origin%","%gift_payment_amount%"),n&&(P.push(n),I=n),e.cryptoCurrency&&(u={currency:e.cryptoCurrency,amount:e.cryptoAmount.toJSNumber()}),d=e.currency,r=e.amount.toJSNumber(),c=e.stars.toJSNumber(),S=e.transactionId):l="ChatList.UnsupportedMessage";return"photo"in e&&e.photo instanceof ue.Api.Photo&&(He(e.photo),f=Cn(e.photo)),{mediaType:"action",text:l,type:A,targetUserIds:P,targetChatId:I,photo:f,amount:r,stars:c,currency:d,giftCryptoInfo:u,isGiveaway:b,slug:_,translationValues:p,call:o,phoneCall:i,score:g,months:h,topicEmojiIconId:m,isTopicAction:y,isUnclaimed:w,pluralValue:v,transactionId:S}}(t.action,n,s,Boolean(t.post),i);r&&(o.action=r);const c=t.date>Ct()+ls,d=t.media instanceof ue.Api.MessageMediaInvoice&&Boolean(t.media.extendedMedia),u=Boolean(t.editDate)&&!t.editHide,{inlineButtons:l,keyboardButtons:p,keyboardPlaceholder:f,isKeyboardSingleUse:g,isKeyboardSelective:h}=function(e,t){const{replyMarkup:n,media:s}=e;if(!(n instanceof ue.Api.ReplyKeyboardMarkup||n instanceof ue.Api.ReplyInlineMarkup))return;const a=n.rows.map((e=>{let{buttons:n}=e;return n.map((e=>{const{text:n}=e;if(e instanceof ue.Api.KeyboardButton)return{type:"command",text:n};if(e instanceof ue.Api.KeyboardButtonUrl)return e.url.includes("?startgroup=")?{type:"unsupported",text:n}:{type:"url",text:n,url:e.url};if(e instanceof ue.Api.KeyboardButtonCallback)return e.requiresPassword?{type:"unsupported",text:n}:{type:"callback",text:n,data:Ke(e.data)};if(e instanceof ue.Api.KeyboardButtonRequestPoll)return{type:"requestPoll",text:n,isQuiz:e.quiz};if(e instanceof ue.Api.KeyboardButtonRequestPhone)return{type:"requestPhone",text:n};if(e instanceof ue.Api.KeyboardButtonBuy){if(s instanceof ue.Api.MessageMediaInvoice&&s.receiptMsgId)return{type:"receipt",receiptMessageId:s.receiptMsgId};if(t)return;return{type:"buy",text:n}}return e instanceof ue.Api.KeyboardButtonGame?{type:"game",text:n}:e instanceof ue.Api.KeyboardButtonSwitchInline?{type:"switchBotInline",text:n,query:e.query,isSamePeer:e.samePeer}:e instanceof ue.Api.KeyboardButtonUserProfile?{type:"userProfile",text:n,userId:e.userId.toString()}:e instanceof ue.Api.KeyboardButtonSimpleWebView?{type:"simpleWebView",text:n,url:e.url}:e instanceof ue.Api.KeyboardButtonWebView?{type:"webView",text:n,url:e.url}:e instanceof ue.Api.KeyboardButtonUrlAuth?{type:"urlAuth",text:n,url:e.url,buttonId:e.buttonId}:{type:"unsupported",text:n}})).filter(Boolean)}));return a.every((e=>!e.length))?void 0:{[n instanceof ue.Api.ReplyKeyboardMarkup?"keyboardButtons":"inlineButtons"]:a,...n instanceof ue.Api.ReplyKeyboardMarkup&&{keyboardPlaceholder:n.placeholder,isKeyboardSingleUse:n.singleUse,isKeyboardSelective:n.selective}}}(t,d)||{},m=t.fwdFrom&&_s(t.fwdFrom,a),{mediaUnread:y,postAuthor:_}=t,b=t.groupedId&&String(t.groupedId),w=Boolean(b)&&!(o.document||o.audio||o.sticker),v=t.replyMarkup instanceof ue.Api.ReplyKeyboardHide,S=t.replyMarkup instanceof ue.Api.ReplyKeyboardHide&&t.replyMarkup.selective,I=t.noforwards||d,A=!t.noforwards,P=ht(o,b),C=t.replies?.comments,M=t.fromBoostsApplied,R=t.factcheck&&ws(t.factcheck),k=t.invertMedia,T=t.savedPeerId&&ge(t.savedPeerId);return vt({id:t.id,chatId:e,isOutgoing:i,content:o,date:t.date,senderId:n,viewsCount:t.views,forwardsCount:t.forwards,isScheduled:c,isFromScheduled:t.fromScheduled,isSilent:t.silent,isPinned:t.pinned,reactions:t.reactions&&Zn(t.reactions),emojiOnlyCount:P,...t.replyTo&&{replyInfo:bs(t.replyTo,t)},forwardInfo:m,isEdited:u,editDate:t.editDate,isMediaUnread:y,hasUnreadMention:t.mentioned&&y,isMentioned:t.mentioned,...b&&{groupedId:b,isInAlbum:w},inlineButtons:l,...p&&{keyboardButtons:p,keyboardPlaceholder:f,isKeyboardSingleUse:g,isKeyboardSelective:h},...v&&{shouldHideKeyboardButtons:v,isHideKeyboardSelective:S},...t.viaBotId&&{viaBotId:fe(t.viaBotId,"user")},postAuthorTitle:_,isProtected:I,isForwardingAllowed:A,hasComments:C,savedPeerId:T,senderBoosts:M,viaBusinessBotId:t.viaBusinessBotId?.toString(),factCheck:R,effectId:t.effect?.toString(),isInvertedMedia:k})}function ys(e){if(e instanceof ue.Api.DraftMessageEmpty)return;const{message:t,entities:n,replyTo:s,date:a,effect:i}=e,o=s instanceof ue.Api.InputReplyToMessage?{type:"message",replyToMsgId:s.replyToMsgId,replyToTopId:s.topMsgId,replyToPeerId:s.replyToPeerId&&ge(s.replyToPeerId),quoteText:s.quoteText?Gn(s.quoteText,s.quoteEntities):void 0}:void 0;return{text:t?Gn(t,n):void 0,replyInfo:o,date:a,effectId:i?.toString()}}function _s(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=e.savedFromPeer&&ge(e.savedFromPeer),s=e.fromId&&ge(e.fromId);return{date:e.date,savedDate:e.savedDate,isImported:e.imported,isChannelPost:Boolean(e.channelPost),channelPostId:e.channelPost,isLinkedChannelPost:Boolean(e.channelPost&&n&&!t),savedFromPeerId:n,fromId:s,fromChatId:s||n,fromMessageId:e.savedFromMsgId||e.channelPost,hiddenUserName:e.fromName,postAuthorTitle:e.postAuthor}}function bs(e,t){if(e instanceof ue.Api.MessageReplyStoryHeader)return{type:"story",peerId:ge(e.peer),storyId:e.storyId};if(e instanceof ue.Api.MessageReplyHeader){const{replyFrom:n,replyToMsgId:s,replyToTopId:a,replyMedia:i,replyToPeerId:o,forumTopic:r,quote:c,quoteText:d,quoteEntities:u}=e;return{type:"message",replyToMsgId:s,replyToTopId:a,isForumTopic:r,replyFrom:n&&_s(n),replyToPeerId:o&&ge(o),replyMedia:i&&Hn(i,t),isQuote:c,quoteText:d?Gn(d,u):void 0}}}function ws(e){return{shouldFetch:e.needCheck,hash:e.hash.toString(),text:e.text&&En(e.text),countryCode:e.country}}function vs(e,t){return{mediaType:"poll",id:String(t),summary:_t(e.summary,["question","answers"]),results:{}}}function Ss(e){const{filename:t,blobUrl:n,previewBlobUrl:s,mimeType:a,size:i,audio:o,shouldSendAsFile:r,shouldSendAsSpoiler:c,ttlSeconds:d}=e;if(!r){if(e.quick){if(H.has(a)){const{width:t,height:a}=e.quick;return{photo:{mediaType:"photo",id:ds,sizes:[],thumbnail:{width:t,height:a,dataUri:s||n},blobUrl:n,date:Math.round(Date.now()/1e3),isSpoiler:c}}}if(O.has(a)){const{width:o,height:r,duration:d}=e.quick;return{video:{mediaType:"video",id:ds,mimeType:a,duration:d||0,fileName:t,width:o,height:r,blobUrl:n,...s&&{thumbnail:{width:o,height:r,dataUri:s}},size:i,isSpoiler:c}}}}if(e.voice){const{duration:t,waveform:n}=e.voice,{data:s}=Mt(n,us);return{voice:{mediaType:"voice",id:ds,duration:t,waveform:s,size:i},ttlSeconds:d}}if(L.has(a)){const{duration:e,performer:n,title:s}=o||{};return{audio:{mediaType:"audio",id:ds,mimeType:a,fileName:t,size:i,duration:e||0,title:s,performer:n}}}}return{document:{mediaType:"document",mimeType:a,fileName:t,size:i,...s&&{previewBlobUrl:s}}}}function Is(e){const t=Ve(e);if(t&&e instanceof ue.Api.Message&&e.replies)return As(e.replies,e.id,t)}function As(e,t,n){const{channelId:s,replies:a,maxId:i,readMaxId:o,recentRepliers:r,comments:c}=e,d=s?fe(s,"channel"):void 0;if(d===X)return;const u={messagesCount:a,...i&&{lastMessageId:i},...o&&{lastReadMessageId:o},...r&&{recentReplierIds:r.map(ge)}};return c?{...u,isCommentsInfo:!0,chatId:d,originChannelId:n,originMessageId:t}:{...u,isCommentsInfo:!1,chatId:n,threadId:t}}function Ps(e){const{shortcutId:t,shortcut:n,topMessage:s}=e;return{id:t,shortcut:n,topMessageId:s}}function Cs(e,t){if(t instanceof ue.Api.StoryItemDeleted)return{id:t.id,peerId:e,isDeleted:!0};if(t instanceof ue.Api.StoryItemSkipped){const{id:n,date:s,expireDate:a,closeFriends:i}=t;return{id:n,peerId:e,...i&&{isForCloseFriends:!0},date:s,expireDate:a}}const{edited:n,pinned:s,expireDate:a,id:i,date:o,caption:r,entities:c,media:d,privacy:u,views:l,public:p,noforwards:f,closeFriends:g,contacts:h,selectedContacts:m,mediaAreas:y,sentReaction:_,out:b,fwdFrom:w,fromId:v}=t,S={...Hn(d)};r&&(S.text=Gn(r,c));const I=_&&as(_);return vt({id:i,peerId:e,date:o,expireDate:a,content:S,isPublic:p,isEdited:n,isInProfile:s,isForContacts:h,isForSelectedContacts:m,isForCloseFriends:g,noForwards:f,views:l&&Ms(l),isOut:b,visibility:u&&Tn(u),mediaAreas:y?.map(Es).filter(Boolean),sentReaction:I,forwardInfo:w&&Bs(w),fromId:v&&ge(v)})}function Ms(e){return vt({hasViewers:e.hasViewers,viewsCount:e.viewsCount,forwardsCount:e.forwardsCount,reactionsCount:e.reactionsCount,reactions:e.reactions?.map(ts).filter(Boolean),recentViewerIds:e.recentViewers?.map((e=>fe(e,"user")))})}function Rs(e){const{blockedMyStoriesFrom:t,blocked:n}=e;if(e instanceof ue.Api.StoryView)return vt({type:"user",peerId:fe(e.userId,"user"),date:e.date,reaction:e.reaction&&as(e.reaction),areStoriesBlocked:n||t,isUserBlocked:n});if(e instanceof ue.Api.StoryViewPublicForward){const s=hs(e.message);if(!s)return;return{type:"forward",peerId:s.chatId,messageId:s.id,message:s,date:s.date,areStoriesBlocked:n||t,isUserBlocked:n}}if(e instanceof ue.Api.StoryViewPublicRepost){const s=ge(e.peerId),a=Cs(s,e.story);if(!("content"in a))return;return{type:"repost",peerId:s,storyId:e.story.id,date:a.date,story:a,areStoriesBlocked:n||t,isUserBlocked:n}}}function ks(e){return{activeUntil:e.activeUntilDate,cooldownUntil:e.cooldownUntilDate}}function Ts(e){const{x:t,y:n,w:s,h:a,rotation:i,radius:o}=e;return{x:t,y:n,width:s,height:a,rotation:i,radius:o}}function Es(e){if(e instanceof ue.Api.MediaAreaVenue){const{geo:t,title:n,coordinates:s}=e,a=Wn(t);if(!a)return;return{type:"venue",coordinates:Ts(s),geo:a,title:n}}if(e instanceof ue.Api.MediaAreaGeoPoint){const{geo:t,coordinates:n}=e,s=Wn(t);if(!s)return;return{type:"geoPoint",coordinates:Ts(n),geo:s}}if(e instanceof ue.Api.MediaAreaSuggestedReaction){const{coordinates:t,reaction:n,dark:s,flipped:a}=e,i=as(n);if(!i)return;return{type:"suggestedReaction",coordinates:Ts(t),reaction:i,...s&&{isDark:!0},...a&&{isFlipped:!0}}}if(e instanceof ue.Api.MediaAreaChannelPost){const{coordinates:t,channelId:n,msgId:s}=e;return{type:"channelPost",coordinates:Ts(t),channelId:fe(n,"channel"),messageId:s}}if(e instanceof ue.Api.MediaAreaUrl){const{coordinates:t,url:n}=e;return{type:"url",coordinates:Ts(t),url:n}}if(e instanceof ue.Api.MediaAreaWeather){const{coordinates:t,emoji:n,temperatureC:s,color:a}=e;return{type:"weather",coordinates:Ts(t),emoji:n,temperatureC:s,color:a}}}function Bs(e){const{from:t,fromName:n,storyId:s,modified:a}=e;return{storyId:s,fromPeerId:t&&ge(t),fromName:n,isModified:a}}function Ds(e){return{id:e.botId.toString(),shouldRequestWriteAccess:e.requestWriteAccess,shortName:e.shortName,isForAttachMenu:e.showInAttachMenu,isForSideMenu:e.showInSideMenu,attachMenuPeerTypes:e.peerTypes?.map(Us),icons:e.icons.map(xs).filter(Boolean),isInactive:e.inactive,isDisclaimerNeeded:e.sideMenuDisclaimerNeeded}}function Us(e){return e instanceof ue.Api.AttachMenuPeerTypeBotPM?"bots":e instanceof ue.Api.AttachMenuPeerTypePM?"users":e instanceof ue.Api.AttachMenuPeerTypeChat?"chats":e instanceof ue.Api.AttachMenuPeerTypeBroadcast?"channels":e instanceof ue.Api.AttachMenuPeerTypeSameBotPM?"self":void 0}function xs(e){if(!(e.icon instanceof ue.Api.Document))return;const t=jn(e.icon);return t?(Oe(e.icon),{name:e.name,document:t}):void 0}function Vs(e,t){const{description:n,descriptionPhoto:s,descriptionDocument:a,userId:i,commands:o,menuButton:r,privacyPolicyUrl:c,hasPreviewMedias:d}=e,u=i&&fe(i,"user"),l=s instanceof ue.Api.Photo?Cn(s):void 0,p=a instanceof ue.Api.Document?On(a):void 0,f=o?.map((e=>function(e,t){return{botId:e,...ve(t)}}(u||t,e)));return{botId:u||t,description:n,gif:p,photo:l,menuButton:Ns(r),privacyPolicyUrl:c,commands:f?.length?f:void 0,hasPreviewMedia:d}}function Ns(e){return e instanceof ue.Api.BotMenuButton?{type:"webApp",text:e.text,url:e.url}:{type:"commands"}}function Fs(e){const{address:t,geoPoint:n}=e;return{address:t,geo:n&&Wn(n)}}function qs(e){const{timezoneId:t,weeklyOpen:n}=e;return{timezoneId:t,workHours:n.map((e=>{let{startMinute:t,endMinute:n}=e;return{startMinute:t,endMinute:n}}))}}function Gs(e){const{title:t,description:n,sticker:s}=e;return{title:t,description:n,sticker:s&&Un(s)}}function Hs(e){const{fullUser:{about:t,commonChatsCount:n,pinnedMsgId:s,botInfo:a,blocked:i,profilePhoto:o,voiceMessagesForbidden:r,premiumGifts:c,fallbackPhoto:d,personalPhoto:u,translationsDisabled:l,storiesPinnedAvailable:p,contactRequirePremium:f,businessWorkHours:g,businessLocation:h,businessIntro:m,birthday:y,personalChannelId:_,personalChannelMessage:b,sponsoredEnabled:w},users:v}=e,S=fe(v[0].id,"user");return{bio:t,commonChatsCount:n,pinnedMessageId:s,isBlocked:Boolean(i),noVoiceMessages:r,hasPinnedStories:Boolean(p),isTranslationDisabled:l,profilePhoto:o instanceof ue.Api.Photo?Cn(o):void 0,fallbackPhoto:d instanceof ue.Api.Photo?Cn(d):void 0,personalPhoto:u instanceof ue.Api.Photo?Cn(u):void 0,premiumGifts:c?.map((e=>function(e){const{months:t,currency:n,amount:s,botUrl:a}=e;return{months:t,currency:n,amount:s.toJSNumber(),botUrl:a}}(e))),botInfo:a&&Vs(a,S),isContactRequirePremium:f,birthday:y&&Ws(y),businessLocation:h&&Fs(h),businessWorkHours:g&&qs(g),businessIntro:m&&Gs(m),personalChannelId:_&&fe(_,"channel"),personalChannelMessageId:b,areAdsEnabled:w}}function Os(e){if(!(e instanceof ue.Api.User))return;const{id:t,firstName:n,lastName:s,fake:a,scam:i,support:o,closeFriend:r,storiesUnavailable:c,storiesMaxId:d,bot:u,botActiveUsers:l,botInlinePlaceholder:p,botAttachMenu:f,botCanEdit:g}=e,h=e.photo instanceof ue.Api.UserProfilePhoto?Boolean(e.photo.hasVideo):void 0,m=e.photo&&Dn(e.photo),y=(w=e).bot?"userTypeBot":w.deleted?"userTypeDeleted":"userTypeRegular",_=kn(e),b=e.emojiStatus?me(e.emojiStatus):void 0;var w;return{id:fe(t,"user"),isMin:Boolean(e.min),fakeType:i?"scam":a?"fake":void 0,...e.self&&{isSelf:!0},isPremium:Boolean(e.premium),...e.verified&&{isVerified:!0},...r&&{isCloseFriend:!0},...o&&{isSupport:!0},...(e.contact||e.mutualContact)&&{isContact:!0},type:y,firstName:n,lastName:s,hasMainMiniApp:Boolean(e.botHasMainApp),canEditBot:g,..."userTypeBot"===y&&{canBeInvitedToGroup:!e.botNochats},..._&&{usernames:_},phoneNumber:e.phone||"",noStatus:!e.status,...e.accessHash&&{accessHash:String(e.accessHash)},avatarPhotoId:m,emojiStatus:b,hasVideoAvatar:h,areStoriesHidden:Boolean(e.storiesHidden),maxStoryId:d,hasStories:Boolean(d)&&!c,...u&&p&&{botPlaceholder:p},...u&&f&&{isAttachBot:f},botActiveUsers:l,color:e.color&&he(e.color)}}function Ls(e){return!e||e instanceof ue.Api.UserStatusEmpty?{type:"userStatusEmpty"}:e instanceof ue.Api.UserStatusOnline?{type:"userStatusOnline",expires:e.expires}:e instanceof ue.Api.UserStatusOffline?{type:"userStatusOffline",wasOnline:e.wasOnline}:e instanceof ue.Api.UserStatusRecently?{type:"userStatusRecently",isReadDateRestrictedByMe:e.byMe}:e instanceof ue.Api.UserStatusLastWeek?{type:"userStatusLastWeek",isReadDateRestrictedByMe:e.byMe}:{type:"userStatusLastMonth",isReadDateRestrictedByMe:e.byMe}}function js(e){const t={};return e.forEach((e=>{if("status"in e){const n=fe(e.id,"user");t[n]=Ls(e.status)}})),t}function Ws(e){return ve(e)}function zs(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=Boolean("min"in e&&e.min),s="accessHash"in e?String(e.accessHash):void 0,a="photo"in e&&e.photo&&"hasVideo"in e.photo&&e.photo.hasVideo,i="photo"in e&&e.photo?Dn(e.photo):void 0,o=Boolean("signatures"in e&&e.signatures),r=Boolean("hasLink"in e&&e.hasLink),c=Boolean("scam"in e&&e.scam),d=Boolean("fake"in e&&e.fake),u=Boolean("joinToSend"in e&&e.joinToSend),l=Boolean("joinRequest"in e&&e.joinRequest),p=kn(e),f=Boolean("forum"in e&&e.forum),g=Boolean("storiesHidden"in e&&e.storiesHidden),h="storiesMaxId"in e?e.storiesMaxId:void 0,m=Boolean("storiesUnavailable"in e&&e.storiesUnavailable),y="color"in e&&e.color?he(e.color):void 0,_="emojiStatus"in e&&e.emojiStatus?me(e.emojiStatus):void 0,b="level"in e?e.level:void 0,w=Boolean("signatureProfiles"in e&&e.signatureProfiles),v="subscriptionUntilDate"in e?e.subscriptionUntilDate:void 0;return vt({isMin:n,hasPrivateLink:r,areSignaturesShown:o,areProfilesShown:w,usernames:p,accessHash:s,hasVideoAvatar:a,avatarPhotoId:i,..."verified"in e&&{isVerified:e.verified},..."callActive"in e&&{isCallActive:e.callActive},..."callNotEmpty"in e&&{isCallNotEmpty:e.callNotEmpty},..."date"in e&&{creationDate:e.date},..."participantsCount"in e&&void 0!==e.participantsCount&&{membersCount:e.participantsCount},..."noforwards"in e&&{isProtected:Boolean(e.noforwards)},isSupport:t||void 0,...$s(e),..."creator"in e&&{isCreator:e.creator},...Js(e),...Qs(e),fakeType:c?"scam":d?"fake":void 0,color:y,isJoinToSend:u,isJoinRequest:l,isForum:f,areStoriesHidden:g,maxStoryId:h,hasStories:Boolean(h)&&!m,emojiStatus:_,boostLevel:b,subscriptionUntil:v})}function Ks(e,t){const{peer:n,folderId:s,unreadMark:a,unreadCount:i,unreadMentionsCount:o,unreadReactionsCount:r,notifySettings:{silent:c,muteUntil:d},readOutboxMaxId:u,readInboxMaxId:l,draft:p,viewForumAsMessages:f}=e,g=c||"number"==typeof d&&Ct()<d;return{id:ge(n),...s&&{folderId:s},type:Ys(t),title:ea(n,t),lastReadOutboxMessageId:u,lastReadInboxMessageId:l,unreadCount:i,unreadMentionsCount:o,unreadReactionsCount:r,isMuted:g,muteUntil:d,...a&&{hasUnreadMark:!0},...p instanceof ue.Api.DraftMessage&&{draftDate:p.date},...f&&{isForumAsMessages:!0},...zs(t)}}function $s(e){return e instanceof ue.Api.Chat||e instanceof ue.Api.Channel?{adminRights:e.adminRights?ve(e.adminRights):void 0,currentUserBannedRights:"bannedRights"in e&&e.bannedRights?ve(e.bannedRights):void 0,defaultBannedRights:e.defaultBannedRights?ve(e.defaultBannedRights):void 0}:{}}function Js(e){if(e instanceof ue.Api.ChatForbidden)return{isForbidden:!0};if(e instanceof ue.Api.ChannelForbidden)return{isRestricted:!0};const t={};if("restricted"in e){const n=e.restricted?function(e){if(!e)return;const t=e.find((e=>{let{platform:t}=e;return"all"===t}));return t?_t(t,["reason","text"]):void 0}(e.restrictionReason):void 0;n&&Object.assign(t,{isRestricted:!0,restrictionReason:n})}return e instanceof ue.Api.Chat&&Object.assign(t,{isNotJoined:e.left}),e instanceof ue.Api.Channel&&Object.assign(t,{isNotJoined:e.left}),t}function Qs(e){return!("migratedTo"in e)||!e.migratedTo||e.migratedTo instanceof ue.Api.InputChannelEmpty?{}:{migratedTo:{chatId:ge(e.migratedTo),...e.migratedTo instanceof ue.Api.InputChannel&&{accessHash:String(e.migratedTo.accessHash)}}}}function Xs(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!(e instanceof ue.Api.ChatEmpty||e instanceof ue.Api.UserEmpty))return{id:fe(e.id,e instanceof ue.Api.User?"user":e instanceof ue.Api.Chat||e instanceof ue.Api.ChatForbidden?"chat":"channel"),type:Ys(e),title:e instanceof ue.Api.User?ta(e):e.title,...zs(e,t)}}function Ys(e){return e instanceof ue.Api.User||e instanceof ue.Api.UserEmpty?"chatTypePrivate":e instanceof ue.Api.Chat||e instanceof ue.Api.ChatForbidden||e instanceof ue.Api.ChatEmpty?"chatTypeBasicGroup":e.megagroup?"chatTypeSuperGroup":"chatTypeChannel"}function Zs(e){return le(e)?`user${e.userId}`:pe(e)?`chat${e.chatId}`:`chat${e.channelId}`}function ea(e,t){return le(e)?ta(t):t.title}function ta(e){return e.firstName?`${e.firstName}${e.lastName?` ${e.lastName}`:""}`:e.lastName||""}function na(e){return{userId:e instanceof ue.Api.ChannelParticipantBanned||e instanceof ue.Api.ChannelParticipantLeft?ge(e.peer):fe(e.userId,"user"),inviterId:"inviterId"in e&&e.inviterId?fe(e.inviterId,"user"):void 0,joinedDate:"date"in e?e.date:void 0,kickedByUserId:"kickedBy"in e&&e.kickedBy?fe(e.kickedBy,"user"):void 0,promotedByUserId:"promotedBy"in e&&e.promotedBy?fe(e.promotedBy,"user"):void 0,bannedRights:"bannedRights"in e?ve(e.bannedRights):void 0,adminRights:"adminRights"in e?ve(e.adminRights):void 0,customTitle:"rank"in e?e.rank:void 0,isViaRequest:"viaRequest"in e?e.viaRequest:void 0,...(e instanceof ue.Api.ChannelParticipantAdmin||e instanceof ue.Api.ChatParticipantAdmin)&&{isAdmin:!0},...(e instanceof ue.Api.ChannelParticipantCreator||e instanceof ue.Api.ChatParticipantCreator)&&{isOwner:!0}}}function sa(e){return e instanceof ue.Api.ChatParticipants||e instanceof ue.Api.channels.ChannelParticipants?e.participants.map(na).filter(Boolean):void 0}function aa(e){let t,n="";if(!(e.action instanceof ue.Api.SendMessageCancelAction)){if(e.action instanceof ue.Api.SendMessageTypingAction)n="lng_user_typing";else if(e.action instanceof ue.Api.SendMessageRecordVideoAction)n="lng_send_action_record_video";else if(e.action instanceof ue.Api.SendMessageUploadVideoAction)n="lng_send_action_upload_video";else if(e.action instanceof ue.Api.SendMessageRecordAudioAction)n="lng_send_action_record_audio";else if(e.action instanceof ue.Api.SendMessageUploadAudioAction)n="lng_send_action_upload_audio";else if(e.action instanceof ue.Api.SendMessageUploadPhotoAction)n="lng_send_action_upload_photo";else if(e.action instanceof ue.Api.SendMessageUploadDocumentAction)n="lng_send_action_upload_file";else if(e.action instanceof ue.Api.SendMessageGeoLocationAction)n="selecting a location to share";else if(e.action instanceof ue.Api.SendMessageChooseContactAction)n="selecting a contact to share";else if(e.action instanceof ue.Api.SendMessageGamePlayAction)n="lng_playing_game";else if(e.action instanceof ue.Api.SendMessageRecordRoundAction)n="lng_send_action_record_round";else if(e.action instanceof ue.Api.SendMessageUploadRoundAction)n="lng_send_action_upload_round";else if(e.action instanceof ue.Api.SendMessageChooseStickerAction)n="lng_send_action_choose_sticker";else{if(e.action instanceof ue.Api.SpeakingInGroupCallAction)return;if(e.action instanceof ue.Api.SendMessageEmojiInteractionSeen)n="lng_user_action_watching_animations",t=e.action.emoticon;else if(e.action instanceof ue.Api.SendMessageEmojiInteraction)return}return{action:n,...t&&{emoji:t},...!(e instanceof ue.Api.UpdateUserTyping)&&{userId:ge(e.fromId)},timestamp:Date.now()+1e3*Pt()}}}function ia(e){return e instanceof ue.Api.DialogFilterChatlist?{...bt(e,["id","title","emoticon"]),excludedChatIds:[],includedChatIds:e.includePeers.map(ge).filter(Boolean),pinnedChatIds:e.pinnedPeers.map(ge).filter(Boolean),hasMyInvites:e.hasMyInvites,isChatList:!0}:{...bt(e,["id","title","emoticon","contacts","nonContacts","groups","bots","excludeMuted","excludeRead","excludeArchived"]),channels:e.broadcasts,pinnedChatIds:e.pinnedPeers.map(ge).filter(Boolean),includedChatIds:e.includePeers.map(ge).filter(Boolean),excludedChatIds:e.excludePeers.map(ge).filter(Boolean)}}function oa(e){let{filter:t,description:n}=e;if(t instanceof ue.Api.DialogFilter||t instanceof ue.Api.DialogFilterChatlist)return{...ia(t),description:n}}function ra(e){return e.reduce(((e,t)=>{const n=fe(t.userId,"user");return t.commands&&(e=e.concat(t.commands.map((e=>({botId:n,...ve(e)}))))),e}),[])}function ca(e){const{revoked:t,date:n,expireDate:s,link:a,permanent:i,startDate:o,usage:r,usageLimit:c,requested:d,requestNeeded:u,title:l,adminId:p}=e;return{isRevoked:t,date:n,expireDate:s,link:a,isPermanent:i,startDate:o,usage:r,usageLimit:c,isRequestNeeded:u,requested:d,title:l,adminId:fe(p,"user")}}function da(e){let{autoarchived:t,reportSpam:n,addContact:s,blockContact:a}=e;return{isAutoArchived:Boolean(t),canReportSpam:Boolean(n),canAddContact:Boolean(s),canBlockContact:Boolean(a)}}function ua(e){return e instanceof ue.Api.ChatReactionsAll?{type:"all",areCustomAllowed:e.allowCustom}:e instanceof ue.Api.ChatReactionsSome?{type:"some",allowed:e.reactions.map((e=>as(e))).filter(Boolean)}:void 0}function la(e){return{id:ge(e.peer),isPremium:e.premiumRequired}}function pa(e){if(e instanceof ue.Api.ForumTopicDeleted)return;const{id:t,my:n,closed:s,pinned:a,hidden:i,short:o,date:r,title:c,iconColor:d,iconEmojiId:u,topMessage:l,unreadCount:p,unreadMentionsCount:f,unreadReactionsCount:g,fromId:h,notifySettings:{silent:m,muteUntil:y}}=e;return{id:t,isClosed:s,isPinned:a,isHidden:i,isOwner:n,isMin:o,date:r,title:c,iconColor:d,iconEmojiId:u?.toString(),lastMessageId:l,unreadCount:p,unreadMentionsCount:f,unreadReactionsCount:g,fromId:ge(h),isMuted:m||("number"==typeof y?Ct()<y:void 0),muteUntil:y}}function fa(e){if(!(e instanceof ue.Api.ExportedChatlistInvite))return;const{title:t,url:n,peers:s}=e;return{title:t,url:n,peerIds:s.map(ge).filter(Boolean)}}function ga(e){return{id:e.userId.toString(),isRequiringPremiumToMessage:e.premiumRequiredForPm,isRequiringPremiumToInvite:e.premiumWouldAllowInvite}}function ha(e){const{color:t,participants:n,participantsCount:s,photo:a,title:i,about:o,scam:r,fake:c,verified:d,megagroup:u,channel:l,broadcast:p,requestNeeded:f,subscriptionFormId:g,subscriptionPricing:h,canRefulfillSubscription:m}=e;let y;return a instanceof ue.Api.Photo&&(He(a),y=Cn(a)),n?.forEach(We),{title:i,about:o,isFake:c,isScam:r,isVerified:d,isSuperGroup:u,isPublic:e.public,participantsCount:s,color:t,isChannel:l,isBroadcast:p,isRequestNeeded:f,photo:y,subscriptionFormId:g?.toString(),subscriptionPricing:h&&ma(h),canRefulfillSubscription:m,participantIds:n?.map((e=>fe(e.id,"user"))).filter(Boolean)}}function ma(e){return{period:e.period,amount:e.amount.toJSNumber()}}const ya=new Set(["User","UserEmpty"]),_a=new Set(["ChatEmpty","Chat","ChatForbidden","Channel","ChannelForbidden"]),ba=new Set(["Message","MessageEmpty","MessageService"]);function wa(e){if(!e||"object"!=typeof e)return;if(!("users"in e||"chats"in e||"messages"in e))return;let t,n,s;"users"in e&&Array.isArray(e.users)&&ya.has(e.users[0]?.className)&&(t=mt(e.users.map((e=>(e instanceof ue.Api.User&&We(e),Os(e)))).filter(Boolean),"id")),"chats"in e&&Array.isArray(e.chats)&&_a.has(e.chats[0]?.className)&&(n=mt(e.chats.map((e=>((e instanceof ue.Api.Chat||e instanceof ue.Api.Channel)&&function(e){const t=fe(e.id,e instanceof ue.Api.Chat?"chat":"channel"),n=Te.chats[t],s=n&&"min"in n&&n.min,a="min"in e&&e.min;n&&!s&&a||(Te.chats[t]=e)}(e),Xs(e)))).filter(Boolean),"id")),"messages"in e&&Array.isArray(e.messages)&&ba.has(e.messages[0]?.className)&&(s=e.messages.map((e=>(Fe(e),Is(e)))).filter(Boolean)),(t||n||s)&&Ye({"@type":"updateEntities",users:t,chats:n,threadInfos:s})}function va(e){Fe(e);const t=Is(e);t&&Ye({"@type":"updateThreadInfo",threadInfo:t})}var Sa=n(51227);class Ia{constructor(e){var t,n,s,a;this.comparator=e,t=this,s=void 0,(n="symbol"==typeof(a=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(n="queue"))?a:a+"")in t?Object.defineProperty(t,n,{value:s,enumerable:!0,configurable:!0,writable:!0}):t[n]=s,this.queue=[]}add(e){const t=this.binarySearch(e);this.queue.splice(t,0,e)}pop(){return this.queue.shift()}get size(){return this.queue.length}clear(){this.queue=[]}binarySearch(e){let t=0,n=this.queue.length;for(;t<n;){const s=Math.floor((t+n)/2),a=this.comparator(e,this.queue[s]);if(0===a)return s;a>0?t=s+1:n=s}return t}}function Aa(e){if(e instanceof ue.Api.WallPaperNoFile)return;const{slug:t}=e,n=jn(e.document);return n?{slug:t,document:n}:void 0}function Pa(e){return{isCurrent:Boolean(e.current),isOfficialApp:Boolean(e.officialApp),isPasswordPending:Boolean(e.passwordPending),hash:String(e.hash),areCallsEnabled:!e.callRequestsDisabled,areSecretChatsEnabled:!e.encryptedRequestsDisabled,isUnconfirmed:e.unconfirmed,..._t(e,["deviceModel","platform","systemVersion","appName","appVersion","dateCreated","dateActive","ip","country","region"])}}function Ca(e){return{hash:String(e.hash),botId:fe(e.botId,"user"),..._t(e,["platform","browser","dateCreated","dateActive","ip","region","domain"])}}function Ma(e,t){const{silent:n,muteUntil:s,showPreviews:a,otherSound:i}=e,o=Boolean(i&&!(i instanceof ue.Api.NotificationSoundNone));return{chatId:ge(t),isMuted:n||"number"==typeof s&&Ct()<s,...!o&&{isSilent:!0},...void 0!==a&&{shouldShowPreviews:Boolean(a)},muteUntil:s}}function Ra(e,t){const{hidden:n,iso2:s,defaultName:a,name:i}=e,{countryCode:o,prefixes:r,patterns:c}=t||{};return{isHidden:n,iso2:s,defaultName:a,name:i,countryCode:o,prefixes:r,patterns:c}}function ka(e){if(!(e instanceof ue.Api.JsonNull))return e instanceof ue.Api.JsonString||e instanceof ue.Api.JsonBool||e instanceof ue.Api.JsonNumber?e.value:e instanceof ue.Api.JsonArray?e.value.map(ka):e.value.reduce(((e,t)=>(e[t.key]=ka(t.value),e)),{})}function Ta(e){if(e instanceof ue.Api.UrlAuthResultRequest){const{bot:t,domain:n,requestWriteAccess:s}=e,a=Os(t);if(!a)return;return We(t),{type:"request",domain:n,shouldRequestWriteAccess:s,bot:a}}return e instanceof ue.Api.UrlAuthResultAccepted?{type:"accepted",url:e.url}:e instanceof ue.Api.UrlAuthResultDefault?{type:"default"}:void 0}function Ea(e){return e.strings.reduce(((e,t)=>(e[t.key]=Ba(t),e)),{})}function Ba(e){return e instanceof ue.Api.LangPackString?e.value:e instanceof ue.Api.LangPackStringPluralized?wt(ve(e),["key"]):void 0}function Da(e){const t=[],n=e.reduce(((e,n)=>(n instanceof ue.Api.LangPackStringDeleted&&t.push(n.key),n instanceof ue.Api.LangPackString&&(e[n.key]=n.value),n instanceof ue.Api.LangPackStringPluralized&&(e[n.key]=vt({zero:n.zeroValue,one:n.oneValue,two:n.twoValue,few:n.fewValue,many:n.manyValue,other:n.otherValue})),e)),{});return{keysToRemove:t,strings:n}}function Ua(e){const{name:t,nativeName:n,langCode:s,pluralCode:a,rtl:i,stringsCount:o,translatedCount:r,translationsUrl:c,beta:d,official:u}=e;return{name:t,nativeName:n,langCode:s,pluralCode:a,isRtl:i,isBeta:d,isOfficial:u,stringsCount:o,translatedCount:r,translationsUrl:c}}function xa(e){if(e instanceof ue.Api.help.PeerColorSet)return e.colors.map((e=>`#${e.toString(16).padStart(6,"0")}`))}function Va(e){const{id:t,name:n,utcOffset:s}=e;return{id:t,name:n,utcOffset:s}}const Na=new Map,Fa=[],qa=(e,t)=>{const n=e.topicId?`${e.chatId}-${e.topicId}`:e.chatId;if(Na.has(n)&&(clearTimeout(Na.get(n)),Na.delete(n)),e.muteUntil===E||e.muteUntil<=Ct())return;if(Fa.push(e),Fa.sort(((e,t)=>t.muteUntil-e.muteUntil)),!Fa.pop())return;const s=setTimeout((()=>{if(t(),Fa.length){const e=Fa.pop();e&&qa(e,t)}}),1e3*(e.muteUntil-Ct()));Na.set(n,s)};function Ga(e){let t=arguments.length>2?arguments[2]:void 0;qa({chatId:e,muteUntil:arguments.length>1&&void 0!==arguments[1]?arguments[1]:0},(()=>t({"@type":"updateNotifyExceptions",chatId:e,isMuted:!1})))}var Ha=n(86453);class Oa{constructor(e,t){this.pts=e,this.ptsCount=t}}class La{constructor(e,t,n){this.channelId=e,this.pts=t,this.ptsCount=n}}const ja=new Set;function Wa(e){if(e instanceof ue.connection.UpdateServerTimeOffset)a=e.timeOffset,At=a,Xe({"@type":"updateServerTimeOffset",serverTimeOffset:e.timeOffset});else if(e instanceof ue.connection.UpdateConnectionState){let t;switch(e.state){case ue.connection.UpdateConnectionState.disconnected:t="connectionStateConnecting";break;case ue.connection.UpdateConnectionState.broken:t="connectionStateBroken";break;case ue.connection.UpdateConnectionState.connected:default:t="connectionStateReady"}Xe({"@type":"updateConnectionState",connectionState:t})}else if(e instanceof ue.Api.UpdateNewMessage||e instanceof ue.Api.UpdateNewScheduledMessage||e instanceof ue.Api.UpdateNewChannelMessage||e instanceof ue.Api.UpdateShortChatMessage||e instanceof ue.Api.UpdateShortMessage){let t,n;if(e instanceof ue.Api.UpdateShortChatMessage)t=ms(fe((s=e).chatId,"chat"),{...s,fromId:Bt(fe(s.fromId,"user")),peerId:Bt(fe(s.chatId,"chat"))});else if(e instanceof ue.Api.UpdateShortMessage)t=function(e){return ms(fe(e.userId,"user"),{...e,fromId:Bt(e.out?ps:fe(e.userId,"user")),peerId:Bt(e.out?fe(e.userId,"user"):ps)})}(e);else{if(e.message instanceof ue.Api.MessageEmpty)return void(c&&console.error("Unexpected update:",e.className,e));va(e.message),t=hs(e.message),n="replyMarkup"in e.message&&e.message?.replyMarkup instanceof ue.Api.ReplyKeyboardForceReply&&(!e.message.replyMarkup.selective||t.isMentioned)}if(e instanceof ue.Api.UpdateNewScheduledMessage?Xe({"@type":ja.has(t.id)?"updateScheduledMessage":"newScheduledMessage",id:t.id,chatId:t.chatId,message:t}):Xe({"@type":!ja.has(t.id)||t.viaBotId||t.content.action?"newMessage":"updateMessage",id:t.id,chatId:t.chatId,message:t,shouldForceReply:n}),e.message instanceof ue.Api.MessageService){const{action:n}=e.message;if(n instanceof ue.Api.MessageActionChatEditTitle)Xe({"@type":"updateChat",id:t.chatId,chat:{title:n.title}});else if(n instanceof ue.Api.MessageActionChatEditPhoto){const s=n.photo instanceof ue.Api.Photo&&Cn(n.photo);if(!s)return;const a=function(e){if(e instanceof ue.Api.PhotoEmpty)return new ue.Api.ChatPhotoEmpty;const{dcId:t,id:n}=e;return new ue.Api.ChatPhoto({dcId:t,photoId:n})}(n.photo),i=Ve(e.message);Te.chats[i]&&(Te.chats[i].photo=a),He(n.photo),Xe({"@type":"updateNewProfilePhoto",peerId:t.chatId,photo:s})}else if(n instanceof ue.Api.MessageActionChatDeletePhoto){const n=Ve(e.message);Te.chats[n]&&(Te.chats[n].photo=new ue.Api.ChatPhotoEmpty),Xe({"@type":"updateDeleteProfilePhoto",peerId:t.chatId})}else if(n instanceof ue.Api.MessageActionChatDeleteUser)e._entities&&e._entities.some((e=>e instanceof ue.Api.User&&Boolean(e.self)&&e.id===n.userId))&&Xe({"@type":"updateChat",id:t.chatId,chat:{isForbidden:!0,isNotJoined:!0}});else if(n instanceof ue.Api.MessageActionChatAddUser)e._entities&&e._entities.some((e=>e instanceof ue.Api.User&&Boolean(e.self)&&n.users.includes(e.id)))&&Xe({"@type":"updateChatJoin",id:t.chatId});else if(n instanceof ue.Api.MessageActionGroupCall)!n.duration&&n.call&&Xe({"@type":"updateGroupCallChatId",chatId:t.chatId,call:{id:n.call.id.toString(),accessHash:n.call.accessHash.toString()}});else if(n instanceof ue.Api.MessageActionTopicEdit){const t=e.message.replyTo instanceof ue.Api.MessageReplyHeader?e.message.replyTo:void 0,{replyToMsgId:n,replyToTopId:s,forumTopic:a}=t||{},i=a&&(s||n)||Z;Xe({"@type":"updateTopic",chatId:ge(e.message.peerId),topicId:i})}else n instanceof ue.Api.MessageActionTopicCreate&&Xe({"@type":"updateTopics",chatId:ge(e.message.peerId)})}}else if(e instanceof ue.Api.UpdateQuickReplyMessage){const t=hs(e.message);if(!t)return;Xe({"@type":"updateQuickReplyMessage",id:t.id,message:t})}else if(e instanceof ue.Api.UpdateDeleteQuickReplyMessages)Xe({"@type":"deleteQuickReplyMessages",quickReplyId:e.shortcutId,messageIds:e.messages});else if(e instanceof ue.Api.UpdateQuickReplies)Xe({"@type":"updateQuickReplies",quickReplies:e.quickReplies.map(Ps)});else if(e instanceof ue.Api.UpdateNewQuickReply)Xe({"@type":"updateQuickReplies",quickReplies:[Ps(e.quickReply)]});else if(e instanceof ue.Api.UpdateDeleteQuickReply)Xe({"@type":"deleteQuickReply",quickReplyId:e.shortcutId});else if(e instanceof ue.Api.UpdateEditMessage||e instanceof ue.Api.UpdateEditChannelMessage){if(e.message instanceof ue.Api.MessageEmpty)return void(c&&console.error("Unexpected update:",e.className,e));va(e.message);const t=wt(hs(e.message),["isOutgoing"]);Xe({"@type":"updateMessage",id:t.id,chatId:t.chatId,message:t})}else if(e instanceof ue.Api.UpdateMessageReactions)Xe({"@type":"updateMessageReactions",id:e.msgId,chatId:ge(e.peer),reactions:Zn(e.reactions)});else if(e instanceof ue.Api.UpdateMessageExtendedMedia){const t=ge(e.peer),n=e.extendedMedia[0]instanceof ue.Api.MessageExtendedMedia;if(n){const s=Yn(e.extendedMedia);if(!s?.length)return;return void Xe({"@type":"updateMessageExtendedMedia",id:e.msgId,chatId:t,isBought:n,extendedMedia:s})}const s=n?void 0:e.extendedMedia.filter((e=>e instanceof ue.Api.MessageExtendedMediaPreview)).map((e=>Qn(e))).filter(Boolean);if(!s?.length)return;Xe({"@type":"updateMessageExtendedMedia",id:e.msgId,chatId:t,extendedMedia:s})}else if(e instanceof ue.Api.UpdateDeleteMessages)Xe({"@type":"deleteMessages",ids:e.messages});else if(e instanceof ue.Api.UpdateDeleteScheduledMessages)Xe({"@type":"deleteScheduledMessages",ids:e.messages,chatId:ge(e.peer)});else if(e instanceof ue.Api.UpdateDeleteChannelMessages){const t=fe(e.channelId,"channel");Xe({"@type":"deleteMessages",ids:e.messages,chatId:t})}else if(e instanceof ue.Api.UpdateServiceNotification)if(e.popup)Xe({"@type":"error",error:{message:e.message}});else{const t=function(e,t){const n=gs(t),s=qn(e);return{id:n,chatId:z,date:e.inboxDate||t,content:s,isOutgoing:!1}}(e,Date.now()/1e3+Pt());va(Lt(t.id,t.chatId,e)),Xe({"@type":"updateServiceNotification",message:t})}else if(e instanceof ue.Api.UpdateMessageID||e instanceof ue.Api.UpdateShortSentMessage)ja.add(e.id);else if(e instanceof ue.Api.UpdateReadMessagesContents)Xe({"@type":"updateCommonBoxMessages",ids:e.messages,messageUpdate:{hasUnreadMention:!1,isMediaUnread:!1}});else if(e instanceof ue.Api.UpdateChannelReadMessagesContents)Xe({"@type":"updateChannelMessages",channelId:fe(e.channelId,"channel"),ids:e.messages,messageUpdate:{hasUnreadMention:!1,isMediaUnread:!1}});else if(e instanceof ue.Api.UpdateMessagePoll){const{pollId:t,poll:n,results:s}=e;if(n){const e=zn(n,s);Xe({"@type":"updateMessagePoll",pollId:String(t),pollUpdate:e})}else{const e=Kn(s);Xe({"@type":"updateMessagePoll",pollId:String(t),pollUpdate:{results:e}})}}else if(e instanceof ue.Api.UpdateMessagePollVote)Xe({"@type":"updateMessagePollVote",pollId:String(e.pollId),peerId:ge(e.peer),options:e.options.map(Ke)});else if(e instanceof ue.Api.UpdateChannelMessageViews)Xe({"@type":"updateMessage",chatId:fe(e.channelId,"channel"),id:e.id,message:{viewsCount:e.views}});else if(e instanceof ue.Api.UpdateReadHistoryInbox)Xe({"@type":"updateChatInbox",id:ge(e.peer),chat:{lastReadInboxMessageId:e.maxId,unreadCount:e.stillUnreadCount}});else if(e instanceof ue.Api.UpdateReadHistoryOutbox)Xe({"@type":"updateChat",id:ge(e.peer),chat:{lastReadOutboxMessageId:e.maxId}});else if(e instanceof ue.Api.UpdateReadChannelInbox)Xe({"@type":"updateChat",id:fe(e.channelId,"channel"),chat:{lastReadInboxMessageId:e.maxId,unreadCount:e.stillUnreadCount}});else if(e instanceof ue.Api.UpdateReadChannelOutbox)Xe({"@type":"updateChat",id:fe(e.channelId,"channel"),chat:{lastReadOutboxMessageId:e.maxId}});else if(e instanceof ue.Api.UpdateReadChannelDiscussionInbox)Xe({"@type":"updateThreadInfo",threadInfo:{chatId:fe(e.channelId,"channel"),threadId:e.topMsgId,lastReadInboxMessageId:e.readMaxId}});else if(e instanceof ue.Api.UpdateReadChannelDiscussionOutbox)Xe({"@type":"updateChat",id:fe(e.channelId,"channel"),chat:{lastReadOutboxMessageId:e.readMaxId}});else if(e instanceof ue.Api.UpdateDialogPinned&&e.peer instanceof ue.Api.DialogPeer)Xe({"@type":"updateChatPinned",id:ge(e.peer.peer),isPinned:e.pinned||!1});else if(e instanceof ue.Api.UpdatePinnedDialogs)Xe({"@type":"updatePinnedChatIds",ids:e.order?e.order.filter((e=>e instanceof ue.Api.DialogPeer)).map((e=>ge(e.peer))):[],folderId:e.folderId||void 0});else if(e instanceof ue.Api.UpdateSavedDialogPinned&&e.peer instanceof ue.Api.DialogPeer)Xe({"@type":"updateSavedDialogPinned",id:ge(e.peer.peer),isPinned:e.pinned||!1});else if(e instanceof ue.Api.UpdatePinnedSavedDialogs)Xe({"@type":"updatePinnedSavedDialogIds",ids:e.order?e.order.filter((e=>e instanceof ue.Api.DialogPeer)).map((e=>ge(e.peer))):[]});else if(e instanceof ue.Api.UpdateFolderPeers)e.folderPeers.forEach((e=>{const{folderId:t,peer:n}=e;Xe({"@type":"updateChatListType",id:ge(n),folderId:t})}));else if(e instanceof ue.Api.UpdateDialogFilter){const{id:t,filter:n}=e;Xe({"@type":"updateChatFolder",id:t,folder:Ne(n)?ia(n):void 0})}else if(e instanceof ue.Api.UpdateDialogFilterOrder)Xe({"@type":"updateChatFoldersOrder",orderedIds:e.order});else if(e instanceof ue.Api.UpdateChatParticipants){const t=sa(e.participants);Xe({"@type":"updateChatMembers",id:fe(e.participants.chatId,"chat"),replacedMembers:t})}else if(e instanceof ue.Api.UpdateChatParticipantAdd){const t=na(_t(e,["userId","inviterId","date"]));Xe({"@type":"updateChatMembers",id:fe(e.chatId,"chat"),addedMember:t})}else if(e instanceof ue.Api.UpdateChatParticipantDelete)Xe({"@type":"updateChatMembers",id:fe(e.chatId,"chat"),deletedMemberId:fe(e.userId,"user")});else if(e instanceof ue.Api.UpdatePinnedMessages||e instanceof ue.Api.UpdatePinnedChannelMessages)Xe({"@type":"updatePinnedIds",chatId:e instanceof ue.Api.UpdatePinnedMessages?ge(e.peer):fe(e.channelId,"channel"),messageIds:e.messages,isPinned:e.pinned});else if(e instanceof ue.Api.UpdateNotifySettings&&e.peer instanceof ue.Api.NotifyPeer){const t=Ma(e.notifySettings,e.peer.peer);Ga(t.chatId,t.muteUntil,Xe),Xe({"@type":"updateNotifyExceptions",...t})}else if(e instanceof ue.Api.UpdateNotifySettings&&e.peer instanceof ue.Api.NotifyForumTopic){const t=function(e,t,n){const{silent:s,muteUntil:a,showPreviews:i,otherSound:o}=e,r=Boolean(o&&!(o instanceof ue.Api.NotificationSoundNone));return{chatId:ge(t),topicId:n,isMuted:s||"number"==typeof a&&Ct()<a,...!r&&{isSilent:!0},...void 0!==i&&{shouldShowPreviews:Boolean(i)},muteUntil:a}}(e.notifySettings,e.peer.peer,e.peer.topMsgId);!function(e,t){let n=arguments.length>3?arguments[3]:void 0;qa({chatId:e,topicId:t,muteUntil:arguments.length>2&&void 0!==arguments[2]?arguments[2]:0},(()=>n({"@type":"updateTopicNotifyExceptions",chatId:e,topicId:t,isMuted:!1})))}(t.chatId,t.topicId,t.muteUntil,Xe),Xe({"@type":"updateTopicNotifyExceptions",...t})}else if(e instanceof ue.Api.UpdateUserTyping||e instanceof ue.Api.UpdateChatUserTyping){const t=e instanceof ue.Api.UpdateUserTyping?fe(e.userId,"user"):fe(e.chatId,"chat");e.action instanceof ue.Api.SendMessageEmojiInteraction?Xe({"@type":"updateStartEmojiInteraction",id:t,emoji:e.action.emoticon,messageId:e.action.msgId,interaction:(n=JSON.parse(e.action.interaction.data),{timestamps:n.a.map((e=>{let{t}=e;return t}))})}):Xe({"@type":"updateChatTypingStatus",id:t,typingStatus:aa(e)})}else if(e instanceof ue.Api.UpdateChannelUserTyping)Xe({"@type":"updateChatTypingStatus",id:fe(e.channelId,"channel"),threadId:e.topMsgId,typingStatus:aa(e)});else if(e instanceof ue.Api.UpdateChannel){const{_entities:t}=e;if(!t)return;const n=t.find((e=>e instanceof ue.Api.Channel||e instanceof ue.Api.ChannelForbidden));if(n instanceof ue.Api.Channel){const t=Xs(n);t&&(Xe({"@type":"updateChat",id:t.id,chat:t}),Xe({"@type":t.isNotJoined?"updateChatLeave":"updateChatJoin",id:fe(e.channelId,"channel")}))}else if(n instanceof ue.Api.ChannelForbidden){const t=fe(e.channelId,"channel");Xe({"@type":"updateChat",id:t,chat:{isRestricted:!0}}),Xe({"@type":"updateChatLeave",id:t})}else 0===t.length&&Xe({"@type":"resetMessages",id:fe(e.channelId,"channel")})}else if(e instanceof ue.Api.UpdateDialogUnreadMark&&e.peer instanceof ue.Api.DialogPeer)Xe({"@type":"updateChat",id:ge(e.peer.peer),chat:{hasUnreadMark:e.unread}});else if(e instanceof ue.Api.UpdateChatDefaultBannedRights)Xe({"@type":"updateChat",id:ge(e.peer),chat:{defaultBannedRights:ve(e.defaultBannedRights)}});else if(e instanceof ue.Api.UpdateUserStatus)Xe({"@type":"updateUserStatus",userId:fe(e.userId,"user"),status:Ls(e.status)});else if(e instanceof ue.Api.UpdateUser)Xe({"@type":"updateRequestUserUpdate",id:fe(e.userId,"user")});else if(e instanceof ue.Api.UpdateUserEmojiStatus){const t=me(e.emojiStatus);Xe({"@type":"updateUserEmojiStatus",userId:fe(e.userId,"user"),emojiStatus:t})}else if(e instanceof ue.Api.UpdateUserName){const t=fe(e.userId,"user"),n=Te.users[t];Xe({"@type":"updateUser",id:t,user:{...n?.mutualContact&&!n.self?_t(e,[]):_t(e,["firstName","lastName"]),usernames:kn(e)}})}else if(e instanceof ue.Api.UpdateUserPhone){const{userId:t,phone:n}=e;Xe({"@type":"updateUser",id:fe(t,"user"),user:{phoneNumber:n}})}else if(e instanceof ue.Api.UpdatePeerSettings){const{_entities:t,settings:n}=e;if(!t)return;t?.length&&(t.filter((e=>e instanceof ue.Api.User&&!e.contact)).forEach((e=>{Xe({"@type":"deleteContact",id:fe(e.id,"user")})})),t.filter((e=>e instanceof ue.Api.User&&e.contact)).map(Os).forEach((e=>{e&&Xe({"@type":"updateUser",id:e.id,user:{...e,...n&&{settings:da(n)}}})})))}else if(e instanceof ue.Api.UpdateNotifySettings){const{notifySettings:{showPreviews:t,silent:n,muteUntil:s},peer:{className:a}}=e,i="NotifyUsers"===a?"contact":"NotifyChats"===a?"group":"NotifyBroadcasts"===a?"broadcast":void 0;if(!i)return;Xe({"@type":"updateNotifySettings",peerType:i,isSilent:Boolean(n||"number"==typeof s&&Date.now()+1e3*Pt()<1e3*s),shouldShowPreviews:Boolean(t)})}else if(e instanceof ue.Api.UpdatePeerBlocked)Xe({"@type":"updatePeerBlocked",id:ge(e.peerId),isBlocked:e.blocked,isBlockedFromStories:e.blockedMyStoriesFrom});else if(e instanceof ue.Api.UpdatePrivacy){const t=function(e){switch(e.className){case"PrivacyKeyPhoneNumber":return"phoneNumber";case"PrivacyKeyAddedByPhone":return"addByPhone";case"PrivacyKeyStatusTimestamp":return"lastSeen";case"PrivacyKeyProfilePhoto":return"profilePhoto";case"PrivacyKeyPhoneCall":return"phoneCall";case"PrivacyKeyPhoneP2P":return"phoneP2P";case"PrivacyKeyForwards":return"forwards";case"PrivacyKeyVoiceMessages":return"voiceMessages";case"PrivacyKeyChatInvite":return"chatInvite";case"PrivacyKeyAbout":return"bio";case"PrivacyKeyBirthday":return"birthday"}}(e.key);t&&Xe({"@type":"updatePrivacy",key:t,rules:Tn(e.rules)})}else if(e instanceof ue.Api.UpdateDraftMessage)Xe({"@type":"draftMessage",chatId:ge(e.peer),threadId:e.topMsgId,draft:ys(e.draft)});else if(e instanceof ue.Api.UpdateContactsReset)Xe({"@type":"updateResetContactList"});else if(e instanceof ue.Api.UpdateFavedStickers)Xe({"@type":"updateFavoriteStickers"});else if(e instanceof ue.Api.UpdateRecentStickers)Xe({"@type":"updateRecentStickers"});else if(e instanceof ue.Api.UpdateRecentReactions)Xe({"@type":"updateRecentReactions"});else if(e instanceof ue.Api.UpdateSavedReactionTags)Xe({"@type":"updateSavedReactionTags"});else if(e instanceof ue.Api.UpdateMoveStickerSetToTop)e.masks||Xe({"@type":"updateMoveStickerSetToTop",isCustomEmoji:e.emojis,id:e.stickerset.toString()});else if(e instanceof ue.Api.UpdateStickerSets)Xe({"@type":"updateStickerSets"});else if(e instanceof ue.Api.UpdateStickerSetsOrder)e.masks||Xe({"@type":"updateStickerSetsOrder",order:e.order.map((e=>e.toString())),isCustomEmoji:e.emojis});else if(e instanceof ue.Api.UpdateNewStickerSet){if(e.stickerset instanceof ue.Api.messages.StickerSet){const t=xn(e.stickerset.set);Xe({"@type":"updateStickerSet",id:t.id,stickerSet:t})}}else if(e instanceof ue.Api.UpdateSavedGifs)Xe({"@type":"updateSavedGifs"});else if(e instanceof ue.Api.UpdateGroupCall)Xe({"@type":"updateGroupCall",call:gn(e.call)});else if(e instanceof ue.Api.UpdateGroupCallConnection)Xe({"@type":"updateGroupCallConnection",data:JSON.parse(e.params.data),presentation:Boolean(e.presentation)});else if(e instanceof ue.Api.UpdateGroupCallParticipants)Xe({"@type":"updateGroupCallParticipants",groupCallId:(t=e.call,t.id.toString()),participants:e.participants.map(ln)});else if(e instanceof ue.Api.UpdatePendingJoinRequests)Xe({"@type":"updatePendingJoinRequests",chatId:ge(e.peer),recentRequesterIds:e.recentRequesters.map((e=>fe(e,"user"))),requestsPending:e.requestsPending});else if(e instanceof ue.Api.UpdatePhoneCall)Xe({"@type":"updatePhoneCall",call:hn(e.phoneCall)});else if(e instanceof ue.Api.UpdatePhoneCallSignalingData)Xe({"@type":"updatePhoneCallSignalingData",callId:e.phoneCallId.toString(),data:Array.from(e.data)});else if(e instanceof ue.Api.UpdateWebViewResultSent){const{queryId:t}=e;Xe({"@type":"updateWebViewResultSent",queryId:t.toString()})}else if(e instanceof ue.Api.UpdateBotMenuButton){const{botId:t,button:n}=e;Xe({"@type":"updateBotMenuButton",botId:fe(t,"user"),button:Ns(n)})}else if(e instanceof ue.Api.UpdateTranscribedAudio)Xe({"@type":"updateTranscribedAudio",transcriptionId:e.transcriptionId.toString(),text:e.text,isPending:e.pending});else if(e instanceof ue.Api.UpdateConfig)Xe({"@type":"updateConfig"});else if(e instanceof ue.Api.UpdateChannelPinnedTopic)Xe({"@type":"updatePinnedTopic",chatId:fe(e.channelId,"channel"),topicId:e.topicId,isPinned:Boolean(e.pinned)});else if(e instanceof ue.Api.UpdateChannelPinnedTopics)Xe({"@type":"updatePinnedTopicsOrder",chatId:fe(e.channelId,"channel"),order:e.order||[]});else if(e instanceof ue.Api.UpdateRecentEmojiStatuses)Xe({"@type":"updateRecentEmojiStatuses"});else if(e instanceof ue.Api.UpdateStory){const{story:t}=e,n=ge(e.peer),s=Cs(n,t);Ge(t,n),t instanceof ue.Api.StoryItemDeleted?Xe({"@type":"deleteStory",peerId:n,storyId:t.id}):Xe({"@type":"updateStory",peerId:n,story:s})}else if(e instanceof ue.Api.UpdateReadStories)Xe({"@type":"updateReadStories",peerId:ge(e.peer),lastReadId:e.maxId});else if(e instanceof ue.Api.UpdateSentStoryReaction){const t=as(e.reaction);Xe({"@type":"updateSentStoryReaction",peerId:ge(e.peer),storyId:e.storyId,reaction:t})}else e instanceof ue.Api.UpdateStoriesStealthMode?Xe({"@type":"updateStealthMode",stealthMode:ks(e.stealthMode)}):e instanceof ue.Api.UpdateAttachMenuBots?Xe({"@type":"updateAttachMenuBots"}):e instanceof ue.Api.UpdateNewAuthorization?Xe({"@type":"updateNewAuthorization",hash:e.hash.toString(),date:e.date,device:e.device,location:e.location,isUnconfirmed:e.unconfirmed}):e instanceof ue.Api.UpdateChannelViewForumAsMessages?Xe({"@type":"updateViewForumAsMessages",chatId:fe(e.channelId,"channel"),isEnabled:!!e.enabled||void 0}):e instanceof ue.Api.UpdateStarsBalance?Xe({"@type":"updateStarsBalance",balance:e.balance.toJSNumber()}):e instanceof ue.Api.UpdatePaidReactionPrivacy?Xe({"@type":"updatePaidReactionPrivacy",isPrivate:e.private}):e instanceof Ha.A?Xe({"@type":"updatePremiumFloodWait",isUpload:e.isUpload}):e instanceof Oa||e instanceof La||c&&Je("UNEXPECTED UPDATE","object"==typeof e&&"className"in e?e.className:e);var t,n,s,a}const za="0",Ka=1e3,$a=500;let Ja,Qa,Xa=!1;const Ya=new Map,Za=new Ia((function(e,t){return("seqStart"in e?e.seqStart:e.seq)-("seqStart"in t?t.seqStart:t.seq)})),ei=new Map;function ti(e){Te.commonBoxState.seq=e.seq,Te.commonBoxState.date=e.date,Te.commonBoxState.pts=e.pts,Te.commonBoxState.qts=e.qts}function ni(e,t,n){if(e instanceof Sa.UpdateConnectionState)return e.state===Sa.UpdateConnectionState.connected&&Xa&&ci(),void Wa(e);if(e instanceof Sa.UpdateServerTimeOffset)Wa(e);else if(void 0!==Te.commonBoxState.seq)return e instanceof ue.Api.Updates||e instanceof ue.Api.UpdatesCombined?(t&&(e._isFromDifference=!0),void function(e,t){Za.add(e),t||ii()}(e,n)):"pts"in e?e instanceof ue.Api.UpdateChannelTooLong?void li(di(e)):(t&&(e._isFromDifference=!0),void function(e,t){const n=di(e),s=ei.get(n)||new Ia(_i);s.add(e),ei.set(n,s),t||oi(n)}(e,n)):void Wa(e)}function si(e,t){if(!(Te.chats[e]instanceof ue.Api.Channel))return void(c&&console.error(`[UpdateManager] Channel ${e} not found in localDb`));const n=Te.channelPtsById[e];n&&n<t?ri(e):Te.channelPtsById[e]=t}function ai(e){if("seq"in e&&e.seq&&(Te.commonBoxState.seq=e.seq,Te.commonBoxState.date=e.date),"qts"in e&&(Te.commonBoxState.qts=e.qts),"pts"in e){const t=di(e);t!==za?Te.channelPtsById[t]=e.pts:Te.commonBoxState.pts=e.pts}if(e instanceof ue.Api.UpdatesCombined||e instanceof ue.Api.Updates){wa(e);const t=e.users.concat(e.chats);e.updates.forEach((e=>{t&&(e._entities=t),ni(e)}))}else Wa(e)}function ii(){if(!Za.size)return;const e=Za.pop(),t=Te.commonBoxState.seq,n="seqStart"in e?e.seqStart:e.seq;if(0===n||e._isFromDifference&&n>=t+1)ai(e);else if(n===t+1)clearTimeout(Qa),Qa=void 0,ai(e);else if(n>t+1)return Za.add(e),void ci();ii()}function oi(e){const t=ei.get(e);if(!t?.size)return;const n=t.pop(),s=e===za?Te.commonBoxState.pts:Te.channelPtsById[e],a=n.pts,i=yi(n);if(void 0!==s){if(n._isFromDifference&&a>=s+i)ai(n);else if(a===s+i)clearTimeout(Ya.get(e)),Ya.delete(e),ai(n);else if(a>s+i)return t.add(n),void(e===za?ci():ri(e));oi(e)}}function ri(e){if(Ya.has(e))return;const t=setTimeout((async()=>{await li(e),Ya.delete(e)}),$a);Ya.set(e,t)}function ci(){Qa||(Qa=setTimeout((async()=>{await ui(),Qa=void 0}),$a))}function di(e){return"channelId"in e&&"pts"in e?fe(e.channelId,"channel"):e instanceof ue.Api.UpdateNewChannelMessage||e instanceof ue.Api.UpdateEditChannelMessage?fe(e.message.peerId.channelId,"channel"):za}async function ui(){if(!Xa)throw new Error("UpdatesManager not initialized");if(!Te.commonBoxState?.date)return void pi();Xe({"@type":"updateFetchingDifference",isFetching:!0});const e=await Ja(new ue.Api.updates.GetDifference({pts:Te.commonBoxState.pts,date:Te.commonBoxState.date,qts:Te.commonBoxState.qts}));if(!e||e instanceof ue.Api.updates.DifferenceTooLong)pi();else{if(e instanceof ue.Api.updates.DifferenceEmpty)return Te.commonBoxState.seq=e.seq,Te.commonBoxState.date=e.date,void Xe({"@type":"updateFetchingDifference",isFetching:!1});mi(e),ti(e instanceof ue.Api.updates.DifferenceSlice?e.intermediateState:e.state),e instanceof ue.Api.updates.DifferenceSlice?ui():Xe({"@type":"updateFetchingDifference",isFetching:!1})}}async function li(e){const t=Te.chats[e];if(!(t&&t instanceof ue.Api.Channel&&t.accessHash&&Te.channelPtsById[e]))return void(c&&console.error("[UpdateManager] Channel for difference not found",e,t));const n=await Ja(new ue.Api.updates.GetChannelDifference({channel:xt(e,t.accessHash.toString()),pts:Te.channelPtsById[e],filter:new ue.Api.ChannelMessagesFilterEmpty,limit:Ka}));n?n instanceof ue.Api.updates.ChannelDifferenceTooLong?pi():(Te.channelPtsById[e]=n.pts,n instanceof ue.Api.updates.ChannelDifferenceEmpty?oi(e):(mi(n,e),n.final||li(e))):c&&console.warn("[UpdatesManager] Failed to get ChannelDifference",e,t)}function pi(){fi(),Xe({"@type":"requestSync"}),hi()}function fi(){ei.clear(),Za.clear(),clearTimeout(Qa),Qa=void 0,Ya.forEach((e=>{clearTimeout(e)})),Ya.clear(),Te.commonBoxState={},Object.keys(Te.channelPtsById).forEach((e=>{Te.channelPtsById[e]=0})),Xa=!1}function gi(e,t){const n="chatTypeChannel"===e.type||"chatTypeSuperGroup"===e.type?Zt(e.id,"channel"):void 0;var s,a,i;ni((s=t.pts,a=t.ptsCount,(i=n)?new La(i,s,a):new Oa(s,a)))}async function hi(){const e=await Ja(new ue.Api.updates.GetState);e&&(ti(e),Xa=!0)}function mi(e,t){e.newMessages.forEach((e=>{Wa(new ue.Api.UpdateNewMessage({message:e,pts:0,ptsCount:0}))})),wa(e);const n=new Set;e.otherUpdates.forEach((e=>{const t=di(e);e instanceof ue.Api.UpdateChannelTooLong&&n.add(di(e));const s=!n.has(t);ni(e,s,!s)})),t?oi(t):ii()}function yi(e){return"ptsCount"in e?e.ptsCount:0}function _i(e,t){const n=e.pts-t.pts;return 0!==n?n:yi(t)-yi(e)}const bi={PHONE_NUMBER_INVALID:"Invalid phone number.",PHONE_CODE_INVALID:"Invalid code.",PASSWORD_HASH_INVALID:"Incorrect password.",PHONE_PASSWORD_FLOOD:"Limit exceeded. Please try again later.",PHONE_NUMBER_BANNED:"This phone number is banned."},wi={};function vi(){Xe({"@type":"updateWebAuthTokenFailed"})}function Si(){return Xe(Ri("authorizationStateWaitPhoneNumber")),new Promise(((e,t)=>{wi.resolve=e,wi.reject=t}))}function Ii(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return Xe({...Ri("authorizationStateWaitCode"),isCodeViaApp:e}),new Promise(((e,t)=>{wi.resolve=e,wi.reject=t}))}function Ai(e,t){return Xe({...Ri("authorizationStateWaitPassword"),hint:e,noReset:t}),new Promise((e=>{wi.resolve=e}))}function Pi(){return Xe(Ri("authorizationStateWaitRegistration")),new Promise((e=>{wi.resolve=e}))}function Ci(e){return Xe({...Ri("authorizationStateWaitQrCode"),qrCode:{token:btoa(String.fromCharCode(...e.token)).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),expires:e.expires}}),new Promise(((e,t)=>{wi.reject=t}))}function Mi(e){let t;if(e instanceof ue.errors.FloodWaitError){const n=Math.ceil(Number(e.seconds)/60/60);t="Too many attempts. Try again in "+(n>1?`${n} hours`:"an hour")}else t=bi[e.message];t||(t="Unexpected Error",c&&console.error(e)),Xe({"@type":"updateAuthorizationError",message:t})}function Ri(e){return{"@type":"updateAuthorizationState",authorizationState:e}}function ki(e){wi.resolve&&wi.resolve(e)}function Ti(e){wi.resolve&&wi.resolve(e)}function Ei(e){wi.resolve&&wi.resolve(e)}function Bi(e){const{firstName:t,lastName:n}=e;wi.resolve&&wi.resolve([t,n])}function Di(){wi.reject&&wi.reject(new Error("RESTART_AUTH"))}function Ui(){wi.reject&&wi.reject(new Error("RESTART_AUTH_WITH_QR"))}const xi=self.caches;let Vi;async function Ni(){return!!xi&&(Vi=Vi??await xi.has("test").then((()=>!0)).catch((()=>!1)),Vi)}let Fi=function(e){return e[e.Text=0]="Text",e[e.Blob=1]="Blob",e[e.Json=2]="Json",e[e.ArrayBuffer=3]="ArrayBuffer",e}({});async function qi(e,t,n){let s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(xi)try{const a=r?`${d}/${t.replace(/:/g,"_")}`:new Request(t.replace(/:/g,"_")),i=await xi.open(e),o=await i.match(a);if(!o)return;const c=o.headers.get("Content-Type");switch(n){case Fi.Text:return await o.text();case Fi.Blob:{if(t.startsWith("avatar")&&c&&c.startsWith("text"))return;const e=await o.blob(),n=!e.type||!s&&e.type.includes("html");let a=e.type||c;return n&&a?(s||(a=a.replace(/html/gi,"")),new Blob([e],{type:a})):e}case Fi.Json:return await o.json();case Fi.ArrayBuffer:return await o.arrayBuffer();default:return}}catch(e){return void console.warn(e)}}async function Gi(e,t,n){if(!xi)return!1;try{const s="string"==typeof n||n instanceof Blob||n instanceof ArrayBuffer?n:JSON.stringify(n),a=r?`${d}/${t.replace(/:/g,"_")}`:new Request(t.replace(/:/g,"_")),i=new Response(s),o=await xi.open(e);return await o.put(a,i),!0}catch(e){return console.warn(e),!1}}async function Hi(e,t){try{if(!xi)return;const n=await xi.open(e);return await n.delete(t)}catch(e){return void console.warn(e)}}async function Oi(e){try{if(!xi)return;return await xi.delete(e)}catch(e){return void console.warn(e)}}const Li=new Set(["sticker","wallpaper","photo","webDocument","document"]),ji=new Set(["s","m","x","y","w","a","b","c","d"]),Wi=new Set(["u","v"]);async function zi(e,t,n){let{url:a,mediaFormat:i,start:o,end:r,isHtmlAllowed:c}=e;const{data:d,mimeType:h,fullSize:m}=await async function(e,t,n,s,a,i){const o=$i(e);if(!o)return;const{entityType:r,entityId:c,sizeType:d,params:u,mediaMatchType:l}=o;if("staticMap"===r){const e=c,n=new URLSearchParams(u),s=n.get("long"),a=n.get("lat"),i=n.get("w"),o=n.get("h"),r=n.get("zoom"),d=n.get("scale"),l=n.get("accuracy_radius");return{mimeType:"image/png",data:await t.downloadStaticMap(e,s,a,i,o,r,d,l)}}let p;switch(r){case"channel":case"chat":p=Te.chats[c];break;case"user":p=Te.users[c];break;case"sticker":case"wallpaper":case"document":p=Te.documents[c];break;case"photo":p=Te.photos[c];break;case"stickerSet":p=Te.stickerSets[c];break;case"webDocument":p=Te.webDocuments[c]}if(p){if(Li.has(r)){const e=await t.downloadMedia(p,{sizeType:d,start:s,end:a,progressCallback:n,workers:g});let o,r;return d&&ji.has(d)?o="image/jpeg":d&&Wi.has(d)?o="video/mp4":p instanceof ue.Api.Photo?o="image/jpeg":p instanceof ue.Api.WebDocument?(o=p.mimeType,r=p.size):p instanceof ue.Api.Document&&(o=p.mimeType,r=p.size.toJSNumber()),!i&&o&&(o=o.replace(/html/gi,"")),{mimeType:o,data:e,fullSize:r}}if("stickerSet"===r){const e=await t.downloadStickerSetThumb(p);return{mimeType:Ki(e),data:e}}{const e=await t.downloadProfilePhoto(p,"profile"===l);return{mimeType:Ki(e),data:e}}}}(a,t,n,o,r,c)||{};if(!d)return;const y=await async function(e,t,n){switch(t){case dt.BlobUrl:return new Blob([e],{type:n});case dt.Text:return e.toString();case dt.Progressive:case dt.DownloadUrl:return e.buffer}}(d,i,h);if(!y)return;const _=i!==dt.Progressive&&(i!==dt.BlobUrl||y.size<=f);return!u&&s&&_&&Gi(a.startsWith("avatar")?p:l,a,y),{dataBlob:i===dt.Progressive?"":y,arrayBuffer:i===dt.Progressive?y:void 0,mimeType:h,fullSize:m}}function Ki(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"image/jpeg";if(e.length<4)return t;let n=t;switch(e.subarray(0,4).reduce(((e,t)=>e+t.toString(16)),"")){case"89504e47":n="image/png";break;case"47494638":n="image/gif";break;case"ffd8ffe0":case"ffd8ffe1":case"ffd8ffe2":case"ffd8ffe3":case"ffd8ffe8":n="image/jpeg";break;case"52494646":n="image/webp"}return n}function $i(e){const t=e.startsWith("staticMap")?e.match(/(staticMap):([0-9-]+)(\?.+)/):e.startsWith("webDocument")?e.match(/(webDocument):(.+)/):e.match(/(avatar|profile|photo|stickerSet|sticker|wallpaper|document)([-\d\w./]+)(?::\d+)?(\?size=\w+)?/);if(!t)return;const n=t[1],s=t[2];let a;const i=t[3],o=i?.replace("?size=","")||void 0;return a="avatar"===t[1]||"profile"===t[1]?Et(s):t[1],{mediaMatchType:n,entityType:a,entityId:s,sizeType:o,params:i}}class Ji extends AbortController{constructor(){var e,t,n,s;super(...arguments),e=this,t="threads",n=new Map,(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n}getThreadSignal(e){let t=this.threads.get(e);return t||(t=new AbortController,this.threads.set(e,t)),t.signal}abortThread(e,t){this.threads.get(e)?.abort(t),this.threads.delete(e)}abort(e){super.abort(e),this.threads.forEach((t=>t.abort(e))),this.threads.clear()}}const Qi="Unknown UserAgent",Xi="Unknown platform";it.Logger.setLevel("warn");const Yi={build:e=>e},Zi=new Map,eo=new Map;let to,no;function so(e){let{isPremium:t}=e;to.setIsPremium(t)}const ao=2500;async function io(){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];!(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&to.isConnected()&&await Promise.race([uo(new ue.Api.auth.LogOut),re(ao)]),e||(Object.assign(ke,Re()),fi()),await to.destroy()}async function oo(){await to.disconnect()}function ro(e){Xe({"@type":"updateSession",sessionData:e})}function co(e){ni(e),e instanceof ue.Api.UpdatesTooLong?async function(){try{await uo(new ue.Api.users.GetFullUser({id:new ue.Api.InputUserSelf}),{shouldThrow:!0})}catch(e){"AUTH_KEY_UNREGISTERED"!==e.message&&"SESSION_REVOKED"!==e.message||Xe({"@type":"updateConnectionState",connectionState:"connectionStateBroken"})}}():("updates"in e?e.updates:[e]).forEach((e=>{if(!(e instanceof ue.Api.UpdateConfig))return;const t=e._entities?.find((e=>e instanceof ue.Api.User&&fe(e.id,"user")===no));t instanceof ue.Api.User&&so({isPremium:Boolean(t.premium)})}))}async function uo(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const{shouldThrow:n,shouldIgnoreUpdates:s,dcId:a,shouldIgnoreErrors:i,abortControllerChatId:o,abortControllerThreadId:r,shouldRetryOnTimeout:d,abortControllerGroup:u}=t,l=Boolean(t.shouldReturnTrue);let p;if(o){let e=Zi.get(o);e||(e=new Ji,Zi.set(o,e)),p=r?e.getThreadSignal(r):e.signal}if(u){let e=eo.get(u);e||(e=new AbortController,eo.set(u,e)),p=e.signal}try{c&&Je("INVOKE",e.className);const t=await to.invoke(e,a,p,d);return wa(t),c&&Je("RESPONSE",e.className,t),!s&&function(e){return e instanceof ue.Api.UpdatesTooLong||e instanceof ue.Api.UpdateShortMessage||e instanceof ue.Api.UpdateShortChatMessage||e instanceof ue.Api.UpdateShort||e instanceof ue.Api.UpdatesCombined||e instanceof ue.Api.Updates||e instanceof ue.Api.UpdateShortSentMessage}(t)&&ni(t),l?t&&!0:t}catch(t){if(i)return;if(c&&(Je("INVOKE ERROR",e.className),console.debug("invokeRequest failed with payload",e),console.error(t)),n)throw t;return void function(e,t){const n=e.message.startsWith("A wait of")&&(t instanceof ue.Api.messages.SendMessage||t instanceof ue.Api.messages.SendMedia||t instanceof ue.Api.messages.SendMultiMedia),{message:s}=e;Xe({"@type":"error",error:{message:s,isSlowMode:n,hasErrorKey:!0}})}(t,e)}}function lo(e,t){c&&Je("BEACON",e.className),to.invokeBeacon(e,t)}async function po(e,t){try{return await zi(e,to,t)}catch(n){if(n.message.startsWith("FILE_REFERENCE")){if(await _o({url:e.url}))return zi(e,to,t);c&&console.error("Failed to repair file reference",e.url)}if("FILE_ID_INVALID"===n.message&&e.url.includes("avatar"))return void(c&&console.warn("Inaccessible avatar image",e.url));throw c&&console.error("Failed to download media",e.url,n),n}}function fo(e,t){return to.uploadFile({file:e,onProgress:t,workers:h})}function go(e){return to.updateTwoFaSettings(e)}function ho(e){const{chatId:t,threadId:n}=e,s=Zi.get(t);if(!n)return s?.abort("Chat change"),void Zi.delete(t);s?.abortThread(n,"Thread change")}function mo(e){eo.get(e)?.abort(),eo.delete(e)}async function yo(){const e=await uo(new ue.Api.users.GetFullUser({id:new ue.Api.InputUserSelf}));if(!(e&&e.users[0]instanceof ue.Api.User))return;const t=e.users[0];We(t);const n=Hs(e),s=Os(t);var a;a=s.id,ps=a,function(e,t){Xe({"@type":"updateCurrentUser",currentUser:e,currentUserFullInfo:t})}(s,n),no=s.id,so({isPremium:Boolean(s.isPremium)})}async function _o(e){let{url:t}=e;const n=$i(t);if(!n)return;const{entityId:s,mediaMatchType:a}=n;if("document"===a||"photo"===a||"webDocument"===a){const e="document"===a?Te.documents[s]:"webDocument"===a?Te.webDocuments[s]:Te.photos[s];if(!e)return!1;const t=e;if(!t.localRepairInfo)return!1;const{localRepairInfo:n}=t;if("story"===n.type)return await async function(e,t){const n=Ut(e);if(!n)return!1;const s=await uo(new ue.Api.stories.GetStoriesByID({peer:n,id:[t]}),{shouldIgnoreErrors:!0});return!!s&&(s.stories.forEach((t=>{const n=Cs(e,t);n&&!("isDeleted"in n)&&(Ge(t,e),Xe({"@type":"updateStory",peerId:e,story:n}))})),!0)}(n.peerId,n.id);if("message"===n.type)return await async function(e,t){const n=Et(e),s=Ut(e);if(!s)return!1;const a=await uo("channel"===n?new ue.Api.channels.GetMessages({channel:s,id:[new ue.Api.InputMessageID({id:t})]}):new ue.Api.messages.GetMessages({id:[new ue.Api.InputMessageID({id:t})]}),{shouldIgnoreErrors:!0});if(!a||a instanceof ue.Api.messages.MessagesNotModified)return!1;s&&"pts"in a&&si(e,a.pts);const i=a.messages[0];if(i instanceof ue.Api.MessageEmpty)return!1;va(i);const o=hs(i);return o&&Xe({"@type":"updateMessage",chatId:o.chatId,id:o.id,message:o}),!0}(n.peerId,n.id)}return!1}function bo(e){to.setForceHttpTransport(e)}function wo(e){to.setAllowHttpTransport(e)}function vo(e){to.setShouldDebugExportedSenders(e)}function So(e){ri(e)}async function Io(e){let{peer:t,reason:n,description:s}=e;return await uo(new ue.Api.account.ReportPeer({peer:Dt(t.id,t.accessHash),reason:Xt(n),message:s}))}async function Ao(e){let{peer:t,photo:n,reason:s,description:a}=e;const i=Wt(n);if(i)return await uo(new ue.Api.account.ReportProfilePhoto({peer:Dt(t.id,t.accessHash),photoId:i,reason:Xt(s),message:a}))}async function Po(e){let{hash:t,areCallsEnabled:n,areSecretChatsEnabled:s,isConfirmed:a}=e;return await uo(new ue.Api.account.ChangeAuthorizationSettings({hash:_e()(t),...void 0!==n?{callRequestsDisabled:!n}:void 0,...void 0!==s?{encryptedRequestsDisabled:!s}:void 0,...a&&{confirmed:a}}))}async function Co(e){let{days:t}=e;return await uo(new ue.Api.account.SetAuthorizationTTL({authorizationTtlDays:t}))}async function Mo(e){let{slug:t}=e;const n=await uo(new ue.Api.account.ResolveBusinessChatLink({slug:t}),{shouldIgnoreErrors:!0});var s;if(n)return{chatLink:{chatId:ge((s=n).peer),text:Gn(s.message,s.entities)}}}function Ro(e){let{enabled:t}=e;return uo(new ue.Api.account.ToggleSponsoredMessages({enabled:t}),{shouldReturnTrue:!0})}async function ko(e){let{limit:t,offsetDate:n,offsetPeer:s,offsetId:a,archived:i,withPinned:o,lastLocalServiceMessageId:r}=e;const c=s&&Dt(s.id,s.accessHash)||new ue.Api.InputPeerEmpty,d=await uo(new ue.Api.messages.GetDialogs({offsetPeer:c,offsetId:a,limit:t,offsetDate:n,...o&&{excludePinned:!0}})),u=o?await uo(new ue.Api.messages.GetPinnedDialogs({folderId:i?Q:void 0})):void 0;if(!d||d instanceof ue.Api.messages.DialogsNotModified)return;const l=(u?u.messages:[]).concat(d.messages).map(hs).filter(Boolean),p=Sr(d);u&&Object.assign(p,Sr(u,p));const f=[],g={},h=(u?.dialogs||[]).concat(d.dialogs),m=[],y={};h.forEach((e=>{if(!(e instanceof ue.Api.Dialog)||!i&&e.folderId===Q||i&&e.folderId!==Q)return;const t=Ks(e,p[Zs(e.peer)]);if(y[t.id]=e.topMessage,e.pts&&si(t.id,e.pts),t.id===z&&r&&r>e.topMessage&&(y[t.id]=r),t.isListed=!0,f.push(t),Ga(t.id,t.muteUntil,Xe),o&&e.pinned&&m.push(t.id),e.draft){const n=ys(e.draft);n&&(g[t.id]=n)}}));const _=f.map((e=>e.id)),b=d.users.map(Os).filter(Boolean),w=js((u?.users||[]).concat(d.users));let v;v=d instanceof ue.Api.messages.DialogsSlice?d.count:_.length;const S=f[f.length-1],I=y[S?.id],A=I,P=S?.id,C=l.reverse().find((e=>e.chatId===S?.id&&e.id===I))?.date;return{chatIds:_,chats:f,users:b,userStatusesById:w,draftsById:g,orderedPinnedIds:o?m:void 0,totalChatCount:v,lastMessageByChatId:y,messages:l,nextOffsetId:A,nextOffsetPeerId:P,nextOffsetDate:C}}async function To(e){let{limit:t,offsetDate:n,offsetPeer:s,offsetId:a,withPinned:i}=e;const o=s&&Dt(s.id,s.accessHash)||new ue.Api.InputPeerEmpty,r=await uo(new ue.Api.messages.GetSavedDialogs({offsetPeer:o,offsetId:a,limit:t,offsetDate:n,...i&&{excludePinned:!0}})),c=i?await uo(new ue.Api.messages.GetPinnedSavedDialogs):void 0;if(!r||r instanceof ue.Api.messages.SavedDialogsNotModified)return;const d=c&&!(c instanceof ue.Api.messages.SavedDialogsNotModified),u=(d?c.messages:[]).concat(r.messages).map(hs).filter(Boolean),l=Sr(r);d&&Object.assign(l,Sr(c,l));const p=(d?c.dialogs:[]).concat(r.dialogs),f=[],g=[],h={},m=[];p.forEach((e=>{const t=function(e,t){const{peer:n}=e;return{id:ge(n),type:Ys(t),title:ea(n,t),...zs(t)}}(e,l[Zs(e.peer)]),n=ge(e.peer);f.push(n),i&&e.pinned&&g.push(n),h[n]=e.topMessage,m.push(t)}));const y=r.users.map(Os).filter(Boolean),_=js((d?c.users:[]).concat(r.users));let b;b=r instanceof ue.Api.messages.SavedDialogsSlice?r.count:f.length;const w=m[m.length-1],v=h[w?.id],S=v,I=w?.id,A=u.reverse().find((e=>e.chatId===w?.id&&e.id===v))?.date;return{chatIds:f,chats:m,users:y,userStatusesById:_,orderedPinnedIds:i?g:void 0,totalChatCount:b,lastMessageByChatId:h,messages:u,draftsById:{},nextOffsetId:S,nextOffsetPeerId:I,nextOffsetDate:A}}function Eo(e){const{id:t,accessHash:n}=e;return xt(t,n)instanceof ue.Api.InputChannel?async function(e){const{id:t,adminRights:n}=e,s=e.accessHash,a=await uo(new ue.Api.channels.GetFullChannel({channel:xt(t,s)}));if(!(a&&a.fullChat instanceof ue.Api.ChannelFull))return;const{about:i,onlineCount:o,exportedInvite:r,slowmodeSeconds:c,slowmodeNextSendDate:d,migratedFromChatId:u,migratedFromMaxId:l,canViewParticipants:p,canViewStats:f,linkedChatId:g,hiddenPrehistory:h,call:m,botInfo:y,availableReactions:_,reactionsLimit:b,defaultSendAs:w,requestsPending:v,recentRequesters:S,statsDc:I,participantsCount:A,stickerset:P,chatPhoto:C,participantsHidden:M,translationsDisabled:R,storiesPinnedAvailable:k,viewForumAsMessages:T,emojiset:E,boostsApplied:B,boostsUnrestrict:D,canViewRevenue:U,paidReactionsAvailable:x}=a.fullChat;C&&He(C);const V=r instanceof ue.Api.ChatInviteExported?r.link:void 0,{members:N,userStatusesById:F}=p&&await pr(t,s)||{},{members:q,userStatusesById:G}=p&&n&&await pr(t,s,"kicked")||{},{members:H,userStatusesById:O}=p&&await pr(t,s,"admin")||{},L=y?ra(y):void 0,j=e.isNotJoined||"chatTypeChannel"!==e.type?void 0:await fr({chat:e}),W=j?.member,z=W?.joinedDate?{joinedDate:W.joinedDate,inviter:W.inviterId,isViaRequest:W.isViaRequest}:void 0,K=a.chats.map((e=>Xs(e))).filter(Boolean);if(a?.chats?.length>1){const[,e]=a.chats,t=Xs(e);t&&Xe({"@type":"updateChat",id:t.id,chat:t})}a.fullChat.pts&&si(e.id,a.fullChat.pts);const $={...F,...G,...O};return{fullInfo:{...C instanceof ue.Api.Photo&&{profilePhoto:Cn(C)},about:i,onlineCount:o,inviteLink:V,slowMode:c?{seconds:c,nextSendDate:d}:void 0,migratedFrom:u?{chatId:fe(u,"chat"),maxMessageId:l}:void 0,canViewMembers:p,canViewStatistics:f,canViewMonetization:U,isPreHistoryHidden:h,joinInfo:z,members:N,kickedMembers:q,adminMembersById:H?mt(H,"userId"):void 0,groupCallId:m?String(m.id):void 0,linkedChatId:g?fe(g,"channel"):void 0,botCommands:L,enabledReactions:ua(_),reactionsLimit:b,sendAsId:w?ge(w):void 0,requestsPending:v,recentRequesterIds:S?.map((e=>fe(e,"user"))),statisticsDcId:I,stickerSet:P?xn(P):void 0,emojiSet:E?xn(E):void 0,areParticipantsHidden:M,isTranslationDisabled:R,hasPinnedStories:Boolean(k),boostsApplied:B,boostsToUnrestrict:D,isPaidReactionAvailable:x},chats:K,userStatusesById:$,groupCall:m?{chatId:t,isLoaded:!1,id:m.id.toString(),accessHash:m?.accessHash.toString(),participants:{},version:0,participantsCount:0,connectionState:"disconnected"}:void 0,membersCount:A,...T&&{isForumAsMessages:!0}}}(e):async function(e){const t=await uo(new ue.Api.messages.GetFullChat({chatId:xt(e)}));if(!(t&&t.fullChat instanceof ue.Api.ChatFull))return;const{about:n,participants:s,exportedInvite:a,botInfo:i,call:o,availableReactions:r,recentRequesters:c,requestsPending:d,chatPhoto:u,translationsDisabled:l,reactionsLimit:p}=t.fullChat;u&&He(u);const f=sa(s),g=f?f.filter((e=>{let{isAdmin:t,isOwner:n}=e;return t||n})):void 0,h=i?ra(i):void 0,m=a instanceof ue.Api.ChatInviteExported?a.link:void 0,y=js(t.users),_=t.chats.map((e=>Xs(e))).filter(Boolean);return{fullInfo:{...u instanceof ue.Api.Photo&&{profilePhoto:Cn(u)},about:n,members:f,adminMembersById:g?mt(g,"userId"):void 0,canViewMembers:!0,botCommands:h,inviteLink:m,groupCallId:o?.id.toString(),enabledReactions:ua(r),reactionsLimit:p,requestsPending:d,recentRequesterIds:c?.map((e=>fe(e,"user"))),isTranslationDisabled:l,isPreHistoryHidden:!0},chats:_,userStatusesById:y,groupCall:o?{chatId:e,isLoaded:!1,id:o.id.toString(),accessHash:o.accessHash.toString(),connectionState:"disconnected",participantsCount:0,version:0,participants:{}}:void 0,membersCount:f?.length}}(t)}async function Bo(e){const{id:t,accessHash:n}=e,s=await uo(new ue.Api.messages.GetPeerSettings({peer:Dt(t,n)}),{abortControllerChatId:t});if(s)return{settings:da(s.settings)}}async function Do(e){let{query:t}=e;const n=await uo(new ue.Api.contacts.Search({q:t,limit:m}));if(!n)return;const s=n.myResults.map(ge),a=n.results.map(ge).filter((e=>!s.includes(e)));return{accountResultIds:s,globalResultIds:a}}async function Uo(e){let t,{type:n,user:s}=e;if("self"===n||"user"===n){const e=await uo(new ue.Api.users.GetUsers({id:["user"===n&&s?xt(s.id,s.accessHash):new ue.Api.InputUserSelf]}));if(!e||!e.length)return;[t]=e}else if("support"===n){const e=await uo(new ue.Api.help.GetSupport);if(!e||!e.user)return;t=e.user}const a=Xs(t,"support"===n);if(a)return Xe({"@type":"updateChat",id:a.id,chat:a}),{chatId:a.id}}async function xo(e){let{chat:t,lastLocalMessage:n,noLastMessage:s}=e;const{id:a,accessHash:i}=t,o=await uo(new ue.Api.messages.GetPeerDialogs({peers:[new ue.Api.InputDialogPeer({peer:Dt(a,i)})]}));if(!o)return;const r=o.dialogs[0];if(!(r&&r instanceof ue.Api.Dialog))return;const c=Sr(o)[Zs(r.peer)];if(!c)return;const d=hs(o.messages[0]),u=n&&(!d||n.date>d.date)?n:d,l=Ks(r,c);Xe({"@type":"updateChat",id:a,chat:l}),!s&&u&&Xe({"@type":"updateChatLastMessage",id:a,lastMessage:u}),ti(o.state),Ga(l.id,l.muteUntil,Xe)}function Vo(e){let{chat:t,draft:n}=e;return uo(new ue.Api.messages.SaveDraft({peer:Dt(t.id,t.accessHash),message:n?.text?.text||"",entities:n?.text?.entities?.map(jt),replyTo:n?.replyInfo&&dn(n.replyInfo)}))}async function No(e){let{chat:t,isMuted:n,muteUntil:s=0}=e;n&&!s&&(s=E),await uo(new ue.Api.account.UpdateNotifySettings({peer:new ue.Api.InputNotifyPeer({peer:Dt(t.id,t.accessHash)}),settings:new ue.Api.InputPeerNotifySettings({muteUntil:s})})),Xe({"@type":"updateNotifyExceptions",chatId:t.id,isMuted:n}),xo({chat:t,noLastMessage:!0})}async function Fo(e){let{chat:t,topicId:n,isMuted:s,muteUntil:a=0}=e;s&&!a&&(a=E),await uo(new ue.Api.account.UpdateNotifySettings({peer:new ue.Api.InputNotifyForumTopic({peer:Dt(t.id,t.accessHash),topMsgId:n}),settings:new ue.Api.InputPeerNotifySettings({muteUntil:a})})),Xe({"@type":"updateTopicNotifyExceptions",chatId:t.id,topicId:n,isMuted:s})}async function qo(e){let{title:t,about:n="",users:s}=e;const a=await uo(new ue.Api.channels.CreateChannel({broadcast:!0,title:t,about:n}),{shouldThrow:!0});if(!(a instanceof ue.Api.Updates))return void(c&&console.error("Unexpected channel creation update",a));const i=a.chats[0];if(!(i&&i instanceof ue.Api.Channel))return void(c&&console.error("Created channel not found",a));const o=Xs(i);let r;if(s?.length){const e=await uo(new ue.Api.channels.InviteToChannel({channel:xt(o.id,o.accessHash),users:s.map((e=>{let{id:t,accessHash:n}=e;return xt(t,n)}))}));if(!e)return;co(e.updates),r=e.missingInvitees.map(ga)}return{channel:o,missingUsers:r}}function Go(e){let{channelId:t,accessHash:n}=e;return uo(new ue.Api.channels.JoinChannel({channel:xt(t,n)}),{shouldReturnTrue:!0,shouldThrow:!0})}function Ho(e){let{chat:t,user:n}=e;if("chatTypeBasicGroup"===t.type)return uo(new ue.Api.messages.DeleteChatUser({chatId:xt(t.id,t.accessHash),userId:xt(n.id,n.accessHash)}),{shouldReturnTrue:!0})}function Oo(e){let{chatId:t}=e;return uo(new ue.Api.messages.DeleteChat({chatId:xt(t)}),{shouldReturnTrue:!0})}function Lo(e){let{channelId:t,accessHash:n}=e;return uo(new ue.Api.channels.LeaveChannel({channel:xt(t,n)}),{shouldReturnTrue:!0})}function jo(e){let{channelId:t,accessHash:n}=e;return uo(new ue.Api.channels.DeleteChannel({channel:xt(t,n)}),{shouldReturnTrue:!0})}async function Wo(e){let{title:t,users:n}=e;const s=await uo(new ue.Api.messages.CreateChat({title:t,users:n.map((e=>{let{id:t,accessHash:n}=e;return xt(t,n)}))}));if(!s)return;co(s.updates);const a=s.missingInvitees.map(ga),i=s.updates.chats[0];if(i&&i instanceof ue.Api.Chat)return{chat:Xs(i),missingUsers:a};c&&console.error("Created chat not found",s.updates)}async function zo(e){let{chatId:t,accessHash:n,photo:s}=e;const a=xt(t,n);let i;if(s instanceof File){const e=await fo(s);i=new ue.Api.InputChatUploadedPhoto({file:e})}else if(s){const e=Wt(s);if(!e)return!1;i=new ue.Api.InputChatPhoto({id:e})}else i=new ue.Api.InputChatPhotoEmpty;return uo(a instanceof ue.Api.InputChannel?new ue.Api.channels.EditPhoto({channel:a,photo:i}):new ue.Api.messages.EditChatPhoto({chatId:a,photo:i}),{shouldReturnTrue:!0})}async function Ko(e){let{chat:t,shouldBePinned:n}=e;const{id:s,accessHash:a}=t;await uo(new ue.Api.messages.ToggleDialogPin({peer:new ue.Api.InputDialogPeer({peer:Dt(s,a)}),pinned:n||void 0}))&&Xe({"@type":"updateChatPinned",id:t.id,isPinned:n})}async function $o(e){let{chat:t,shouldBePinned:n}=e;const{id:s,accessHash:a}=t;await uo(new ue.Api.messages.ToggleSavedDialogPin({peer:new ue.Api.InputDialogPeer({peer:Dt(s,a)}),pinned:n||void 0}))&&Xe({"@type":"updateSavedDialogPinned",id:t.id,isPinned:n})}function Jo(e){let{chat:t,folderId:n}=e;const{id:s,accessHash:a}=t;return uo(new ue.Api.folders.EditPeerFolders({folderPeers:[new ue.Api.InputFolderPeer({peer:Dt(s,a),folderId:n})]}),{shouldReturnTrue:!0})}async function Qo(){const e=await uo(new ue.Api.messages.GetDialogFilters);if(!e)return;const{filters:t}=e,n=t.findIndex((e=>e instanceof ue.Api.DialogFilterDefault)),s=t.filter(Ne),a=s.map((e=>{let{id:t}=e;return t}));return-1!==n&&a.splice(n,0,J),{byId:mt(s.map(ia),"id"),orderedIds:a}}async function Xo(){const e=await uo(new ue.Api.messages.GetSuggestedDialogFilters);if(e)return e.map(oa).filter(Boolean)}async function Yo(e){let{id:t,folderUpdate:n}=e;n.excludedChatIds=n.excludedChatIds.filter((e=>!n.includedChatIds.includes(e)));const s=function(e){const{emoticon:t,contacts:n,nonContacts:s,groups:a,channels:i,bots:o,excludeArchived:r,excludeMuted:c,excludeRead:d,pinnedChatIds:u,includedChatIds:l,excludedChatIds:p}=e,f=u?u.map(Ut).filter(Boolean):[],g=l?l.map(Ut).filter(Boolean):[],h=p?p.map(Ut).filter(Boolean):[];return e.isChatList?new ue.Api.DialogFilterChatlist({id:e.id,title:e.title,emoticon:t||void 0,pinnedPeers:f,includePeers:g,hasMyInvites:e.hasMyInvites}):new ue.Api.DialogFilter({id:e.id,title:e.title,emoticon:t||void 0,contacts:n||void 0,nonContacts:s||void 0,groups:a||void 0,bots:o||void 0,excludeArchived:r||void 0,excludeMuted:c||void 0,excludeRead:d||void 0,broadcasts:i||void 0,pinnedPeers:f,includePeers:g,excludePeers:h})}(n);await uo(new ue.Api.messages.UpdateDialogFilter({id:t,filter:s}))&&Xe({"@type":"updateChatFolder",id:t,folder:n})}async function Zo(e){const t=await uo(new ue.Api.messages.UpdateDialogFilter({id:e,filter:void 0})),n=await Xo();t&&Xe({"@type":"updateChatFolder",id:e,folder:void 0}),n&&Xe({"@type":"updateRecommendedChatFolders",folders:n})}function er(e){return uo(new ue.Api.messages.UpdateDialogFiltersOrder({order:e}))}async function tr(e){let{chat:t,hasUnreadMark:n}=e;const{id:s,accessHash:a}=t;await uo(new ue.Api.messages.MarkDialogUnread({peer:new ue.Api.InputDialogPeer({peer:Dt(s,a)}),unread:n||void 0}))&&Xe({"@type":"updateChat",id:t.id,chat:{hasUnreadMark:n}})}async function nr(e){return ar(await uo(new ue.Api.contacts.ResolvePhone({phone:e})))}async function sr(e){return ar(await uo(new ue.Api.contacts.ResolveUsername({username:e})))}function ar(e){if(!e)return;const{users:t,chats:n}=e,s=n.length?Xs(n[0]):Xs(t[0]);return s?{chat:s,user:Os(t[0])}:void 0}function ir(e){let{chat:t,isEnabled:n}=e;const{id:s,accessHash:a}=t,i=xt(s,a);return uo(new ue.Api.channels.TogglePreHistoryHidden({channel:i,enabled:n}),{shouldReturnTrue:!0})}function or(e){let{chat:t,bannedRights:n}=e;const{id:s,accessHash:a}=t,i=Dt(s,a);return uo(new ue.Api.messages.EditChatDefaultBannedRights({peer:i,bannedRights:Kt(n)}),{shouldReturnTrue:!0})}function rr(e){let{chat:t,user:n,bannedRights:s,untilDate:a}=e;const i=xt(t.id,t.accessHash),o=Dt(n.id,n.accessHash);return uo(new ue.Api.channels.EditBanned({channel:i,participant:o,bannedRights:Kt(s,a)}),{shouldReturnTrue:!0})}function cr(e){let{chat:t,user:n,adminRights:s,customTitle:a=""}=e;const i=xt(t.id,t.accessHash),o=xt(n.id,n.accessHash);return uo(new ue.Api.channels.EditAdmin({channel:i,userId:o,adminRights:$t(s),rank:a}),{shouldReturnTrue:!0})}async function dr(e,t){const n=xt(e.id,e.accessHash);await uo(n instanceof ue.Api.InputChannel?new ue.Api.channels.EditTitle({channel:n,title:t}):new ue.Api.messages.EditChatTitle({chatId:n,title:t}),{shouldReturnTrue:!0})}async function ur(e,t){await uo(new ue.Api.messages.EditChatAbout({peer:Dt(e.id,e.accessHash),about:t}))&&Xe({"@type":"updateChatFullInfo",id:e.id,fullInfo:{about:t}})}function lr(e){let{chat:t,areSignaturesEnabled:n,areProfilesEnabled:s}=e;const{id:a,accessHash:i}=t,o=xt(a,i);return uo(new ue.Api.channels.ToggleSignatures({channel:o,signaturesEnabled:n||void 0,profilesEnabled:s||void 0}),{shouldReturnTrue:!0})}async function pr(e,t){let n,s=arguments.length>3?arguments[3]:void 0;switch(arguments.length>2&&void 0!==arguments[2]?arguments[2]:"recent"){case"kicked":n=new ue.Api.ChannelParticipantsKicked({q:""});break;case"admin":n=new ue.Api.ChannelParticipantsAdmins;break;default:n=new ue.Api.ChannelParticipantsRecent}const a=await uo(new ue.Api.channels.GetParticipants({channel:xt(e,t),filter:n,offset:s,limit:y}),{abortControllerChatId:e});if(!a||a instanceof ue.Api.channels.ChannelParticipantsNotModified)return;const i=js(a.users);return{members:sa(a),userStatusesById:i}}async function fr(e){let{chat:t,peer:n}=e;const s=n?Dt(n.id,n.accessHash):new ue.Api.InputPeerSelf,a=await uo(new ue.Api.channels.GetParticipant({channel:xt(t.id,t.accessHash),participant:s}),{abortControllerChatId:t.id});if(!a)return;const i=js(a.users),o=na(a.participant);return o?{member:o,userStatusesById:i}:void 0}async function gr(){const e=await uo(new ue.Api.channels.GetGroupsForDiscussion);if(e)return e.chats.map((e=>Xs(e)))}function hr(e){let{channel:t,chat:n}=e;return uo(new ue.Api.channels.SetDiscussionGroup({broadcast:Dt(t.id,t.accessHash),group:n?Dt(n.id,n.accessHash):new ue.Api.InputChannelEmpty}),{shouldReturnTrue:!0})}async function mr(e){const t=await uo(new ue.Api.messages.MigrateChat({chatId:xt(e.id)}),{shouldThrow:!0});if(!(t&&t instanceof ue.Api.Updates))return void(c&&console.error("Unexpected channel creation update",t));const n=t.updates.find((e=>e instanceof ue.Api.UpdateChannel)).channelId;return Xs(t.chats.find((e=>e instanceof ue.Api.Channel&&e.id.toString()===n.toString())))}async function yr(e){const t=await uo(new ue.Api.messages.CheckChatInvite({hash:e}));if(!t)return;if(t instanceof ue.Api.ChatInvite)return{chat:void 0,invite:ha(t),users:t.participants?.map(Os).filter(Boolean)};const n=Xs(t.chat);return n?{chat:n,invite:void 0,users:void 0}:void 0}async function _r(e,t){try{if("chatTypeChannel"===e.type||"chatTypeSuperGroup"===e.type){const n=await uo(new ue.Api.channels.InviteToChannel({channel:xt(e.id,e.accessHash),users:t.map((e=>xt(e.id,e.accessHash)))}));if(!n)return;return co(n.updates),n.missingInvitees.map(ga)}const n=await Promise.all(t.map((async t=>{const n=await uo(new ue.Api.messages.AddChatUser({chatId:xt(e.id),userId:xt(t.id,t.accessHash)}));if(n)return co(n.updates),n.missingInvitees.map(ga)})));if(n)return n.flat().filter(Boolean)}catch(e){Xe({"@type":"error",error:{message:e.message}})}}function br(e,t){return"chatTypeChannel"===e.type||"chatTypeSuperGroup"===e.type?rr({chat:e,user:t,bannedRights:{viewMessages:!0,sendMessages:!0,sendMedia:!0,sendStickers:!0,sendGifs:!0,sendGames:!0,sendInline:!0,embedLinks:!0,sendPolls:!0,changeInfo:!0,inviteUsers:!0,pinMessages:!0,manageTopics:!0,sendPhotos:!0,sendVideos:!0,sendRoundvideos:!0,sendAudios:!0,sendVoices:!0,sendDocs:!0,sendPlain:!0},untilDate:E}):uo(new ue.Api.messages.DeleteChatUser({chatId:xt(e.id),userId:xt(t.id,t.accessHash)}),{shouldReturnTrue:!0})}function wr(e,t){return uo(new ue.Api.channels.ToggleJoinToSend({channel:xt(e.id,e.accessHash),enabled:t}),{shouldReturnTrue:!0})}function vr(e,t){return uo(new ue.Api.channels.ToggleJoinRequest({channel:xt(e.id,e.accessHash),enabled:t}),{shouldReturnTrue:!0})}function Sr(e,t){const n={};return e.chats?.forEach((e=>{const s=`chat${e.id}`;t?.[s]&&"min"in e&&e.min||(n[s]=e)})),e.users?.forEach((e=>{const s=`user${e.id}`;t?.[s]&&"min"in e&&e.min||(n[s]=e)})),n}async function Ir(e){let{hash:t}=e;const n=await uo(new ue.Api.messages.ImportChatInvite({hash:t}));if(n instanceof ue.Api.Updates&&n.chats.length)return Xs(n.chats[0])}function Ar(e){let{chat:t,enabledReactions:n,reactionsLimit:s}=e;return uo(new ue.Api.messages.SetChatAvailableReactions({peer:Dt(t.id,t.accessHash),availableReactions:(a=n,"all"===a?.type?new ue.Api.ChatReactionsAll({allowCustom:a.areCustomAllowed}):"some"===a?.type?new ue.Api.ChatReactionsSome({reactions:a.allowed.map(an)}):new ue.Api.ChatReactionsNone),reactionsLimit:s}),{shouldReturnTrue:!0});var a}function Pr(e){let{chat:t,isProtected:n}=e;const{id:s,accessHash:a}=t;return uo(new ue.Api.messages.ToggleNoForwards({peer:Dt(s,a),enabled:n}),{shouldReturnTrue:!0})}function Cr(e){let{chat:t,isEnabled:n}=e;const{id:s,accessHash:a}=t;return uo(new ue.Api.channels.ToggleParticipantsHidden({channel:Dt(s,a),enabled:n}),{shouldReturnTrue:!0})}function Mr(e){let{chat:t,isEnabled:n}=e;const{id:s,accessHash:a}=t;return uo(new ue.Api.channels.ToggleForum({channel:Dt(s,a),enabled:n}),{shouldReturnTrue:!0,shouldThrow:!0})}async function Rr(e){let{chat:t,title:n,iconColor:s,iconEmojiId:a,sendAs:i}=e;const{id:o,accessHash:r}=t,c=await uo(new ue.Api.channels.CreateForumTopic({channel:Dt(o,r),title:n,iconColor:s,iconEmojiId:a?_e()(a):void 0,sendAs:i?Dt(i.id,i.accessHash):void 0,randomId:Gt()}));if(c instanceof ue.Api.Updates&&c.updates.length)return c.updates?.find((e=>e instanceof ue.Api.UpdateMessageID))?.id}async function kr(e){let{chat:t,query:n,offsetTopicId:s,offsetId:a,offsetDate:i,limit:o=k}=e;const{id:r,accessHash:c}=t,d=await uo(new ue.Api.channels.GetForumTopics({channel:Dt(r,c),limit:o,q:n,offsetTopic:s,offsetId:a,offsetDate:i}));if(!d)return;const{count:u,orderByCreateDate:l}=d;return{topics:d.topics.map(pa).filter(Boolean),messages:d.messages.map(hs).filter(Boolean),count:u+1,shouldOrderByCreateDate:l,draftsById:d.topics.reduce(((e,t)=>(t instanceof ue.Api.ForumTopic&&t.draft&&(e[t.id]=ys(t.draft)),e)),{}),readInboxMessageIdByTopicId:d.topics.reduce(((e,t)=>(t instanceof ue.Api.ForumTopic&&t.readInboxMaxId&&(e[t.id]=t.readInboxMaxId),e)),{})}}async function Tr(e){let{chat:t,topicId:n}=e;const{id:s,accessHash:a}=t,i=await uo(new ue.Api.channels.GetForumTopicsByID({channel:Dt(s,a),topics:[n]}));if(!(i?.topics.length&&i.topics[0]instanceof ue.Api.ForumTopic))return;const o=i.messages.map(hs).filter(Boolean);return{topic:pa(i.topics[0]),messages:o}}async function Er(e){let{chat:t,topicId:n}=e;const{id:s,accessHash:a}=t,i=await uo(new ue.Api.channels.DeleteTopicHistory({channel:Dt(s,a),topMsgId:n}));i&&(gi(t,i),i.offset&&await Er({chat:t,topicId:n}))}function Br(e){let{chat:t,topicId:n,isPinned:s}=e;const{id:a,accessHash:i}=t;return uo(new ue.Api.channels.UpdatePinnedForumTopic({channel:Dt(a,i),topicId:n,pinned:s}),{shouldReturnTrue:!0})}function Dr(e){let{chat:t,topicId:n,title:s,iconEmojiId:a,isClosed:i,isHidden:o}=e;const{id:r,accessHash:c}=t;return uo(new ue.Api.channels.EditForumTopic({channel:Dt(r,c),topicId:n,title:s,iconEmojiId:n!==Z&&a?_e()(a):void 0,closed:i,hidden:o}),{shouldReturnTrue:!0})}async function Ur(e){let{slug:t}=e;const n=await uo(new ue.Api.chatlists.CheckChatlistInvite({slug:t})),s=function(e,t){return e instanceof ue.Api.chatlists.ChatlistInvite?{slug:t,title:e.title,emoticon:e.emoticon,peerIds:e.peers.map(ge).filter(Boolean)}:e instanceof ue.Api.chatlists.ChatlistInviteAlready?{slug:t,folderId:e.filterId,missingPeerIds:e.missingPeers.map(ge).filter(Boolean),alreadyPeerIds:e.alreadyPeers.map(ge).filter(Boolean)}:void 0}(n,t);if(n&&s)return{invite:s}}function xr(e){let{slug:t,peers:n}=e;return uo(new ue.Api.chatlists.JoinChatlistInvite({slug:t,peers:n.map((e=>Dt(e.id,e.accessHash)))}),{shouldReturnTrue:!0,shouldThrow:!0})}async function Vr(e){let{folderId:t}=e;const n=await uo(new ue.Api.chatlists.GetLeaveChatlistSuggestions({chatlist:new ue.Api.InputChatlistDialogFilter({filterId:t})}));if(n)return n.map(ge)}function Nr(e){let{folderId:t,peers:n}=e;return uo(new ue.Api.chatlists.LeaveChatlist({chatlist:new ue.Api.InputChatlistDialogFilter({filterId:t}),peers:n.map((e=>Dt(e.id,e.accessHash)))}),{shouldReturnTrue:!0})}async function Fr(e){let{folderId:t,title:n,peers:s}=e;const a=await uo(new ue.Api.chatlists.ExportChatlistInvite({chatlist:new ue.Api.InputChatlistDialogFilter({filterId:t}),title:n||"",peers:s.map((e=>Dt(e.id,e.accessHash)))}),{shouldThrow:!0});if(a&&!(a.filter instanceof ue.Api.DialogFilterDefault))return{filter:ia(a.filter),invite:fa(a.invite)}}function qr(e){let{folderId:t,slug:n}=e;return uo(new ue.Api.chatlists.DeleteExportedInvite({chatlist:new ue.Api.InputChatlistDialogFilter({filterId:t}),slug:n}))}async function Gr(e){let{folderId:t,slug:n,title:s,peers:a}=e;const i=await uo(new ue.Api.chatlists.EditExportedInvite({chatlist:new ue.Api.InputChatlistDialogFilter({filterId:t}),slug:n,title:s,peers:a.map((e=>Dt(e.id,e.accessHash)))}),{shouldThrow:!0});if(i)return fa(i)}async function Hr(e){let{folderId:t}=e;const n=await uo(new ue.Api.chatlists.GetExportedInvites({chatlist:new ue.Api.InputChatlistDialogFilter({filterId:t})}));if(n)return{invites:n.invites.map(fa).filter(Boolean)}}function Or(e){let{chat:t,isEnabled:n}=e;return uo(new ue.Api.messages.TogglePeerTranslations({disabled:!n||void 0,peer:Dt(t.id,t.accessHash)}))}function Lr(e){let{chat:t,isEnabled:n}=e;const{id:s,accessHash:a}=t,i=xt(s,a);return uo(new ue.Api.channels.ToggleViewForumAsMessages({channel:i,enabled:Boolean(n)}),{shouldReturnTrue:!0})}async function jr(e){let{chat:t}=e;const n=await uo(new ue.Api.channels.GetChannelRecommendations({channel:t&&xt(t.id,t.accessHash)}));if(!n)return;const s=n?.chats.map((e=>Xs(e))).filter(Boolean);return{similarChannels:s,count:n instanceof ue.Api.messages.ChatsSlice?n.count:s.length}}async function Wr(e){let{chat:t,randomId:n,option:s}=e;const{id:a,accessHash:i}=t,o=xt(a,i);try{const e=await uo(new ue.Api.channels.ReportSponsoredMessage({channel:o,randomId:$e(n),option:$e(s)}),{shouldThrow:!0});if(!e)return;return function(e){return e instanceof ue.Api.channels.SponsoredMessageReportResultReported?{type:"reported"}:e instanceof ue.Api.channels.SponsoredMessageReportResultAdsHidden?{type:"hidden"}:{type:"selectOption",title:e.title,options:e.options.map((e=>({text:e.text,option:Ke(e.option)})))}}(e)}catch(e){return e instanceof Error&&"PREMIUM_ACCOUNT_REQUIRED"===e.message?{type:"premiumRequired"}:void 0}}function zr(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}"undefined"==typeof File&&(self.File=class extends Blob{constructor(e,t,n){if(n){const{type:t,...s}=n;super(e,{type:t}),zr(this,"name",void 0),Object.assign(this,s)}else super(e),zr(this,"name",void 0);this.name=t}});var Kr=n(48287).hp;const $r=1e3,Jr=63;async function Qr(e){let{chat:t,threadId:n,offsetId:s,isSavedDialog:a,...i}=e;const o=n===rt?ue.Api.messages.GetHistory:a?ue.Api.messages.GetSavedHistory:ue.Api.messages.GetReplies;let r;try{r=await uo(new o({peer:Dt(t.id,t.accessHash),...n!==rt&&!a&&{msgId:Number(n)},...s&&{offsetId:Math.min(s,E)},...i}),{shouldThrow:!0,abortControllerChatId:t.id,abortControllerThreadId:n})}catch(e){"CHANNEL_PRIVATE"===e.message&&Xe({"@type":"updateChat",id:t.id,chat:{isRestricted:!0}})}if(r&&!(r instanceof ue.Api.messages.MessagesNotModified)&&r.messages)return{messages:r.messages.map(hs).filter(Boolean),users:r.users.map(Os).filter(Boolean),chats:r.chats.map((e=>Xs(e))).filter(Boolean),count:!(r instanceof ue.Api.messages.Messages)&&r.count}}async function Xr(e){let{chat:t,messageId:n}=e;const s="channel"===Et(t.id);let a;try{a=await uo(s?new ue.Api.channels.GetMessages({channel:xt(t.id,t.accessHash),id:[new ue.Api.InputMessageID({id:n})]}):new ue.Api.messages.GetMessages({id:[new ue.Api.InputMessageID({id:n})]}),{shouldThrow:!0,abortControllerChatId:t.id})}catch(e){const{message:t}=e;"CHANNEL_PRIVATE"!==t&&Xe({"@type":"error",error:{message:t,isSlowMode:!1,hasErrorKey:!0}})}if(!a||a instanceof ue.Api.messages.MessagesNotModified)return;"pts"in a&&si(t.id,a.pts);const i=a.messages[0];if(!i)return;if(i instanceof ue.Api.MessageEmpty)return ct;va(i);const o=hs(i);return o?{message:o}:void 0}let Yr=Promise.resolve();function Zr(e,t){let{chat:n,lastMessageId:s,text:a,entities:i,replyInfo:o,attachment:r,sticker:d,story:u,gif:l,poll:p,contact:f,isSilent:g,scheduledAt:h,groupedId:m,noWebPage:y,sendAs:_,shouldUpdateStickerSetOrder:b,wasDrafted:w,isInvertedMedia:v,effectId:S}=e;const I=function(e,t,n,s,a,i,o,r,c,d,u,l,p,f,g,h){const m=gs(t),y=i&&Ss(i),_="chatTypeChannel"===e.type,b=a&&(S=a,I=e.isForum,"story"===S.type?{type:"story",peerId:S.peerId,storyId:S.storyId}:{type:"message",replyToMsgId:S.replyToMsgId,replyToTopId:S.replyToTopId,replyToPeerId:S.replyToPeerId,quoteText:S.quoteText,isForumTopic:!(!I||!S.replyToTopId)||void 0,...Boolean(S.quoteText)&&{isQuote:!0}}),w={id:m,chatId:e.id,content:{...n&&{text:{text:n,entities:s}},...y,...o&&{sticker:o},...r&&{video:r},...c&&{poll:vs(c,m)},...d&&{contact:d},...f&&{storyData:{mediaType:"storyData",...f}}},date:l||Math.round(Date.now()/1e3)+Pt(),isOutgoing:!_,senderId:p?.id||ps,replyInfo:b,...u&&{groupedId:u,...y&&(y.photo||y.video)&&{isInAlbum:!0}},...l&&{isScheduled:!0},isForwardingAllowed:!0,isInvertedMedia:g,effectId:h},v=ht(w.content,w.groupedId);var S,I;return{...w,...v&&{emojiOnlyCount:v}}}(n,s,a,i,o,r,d,l,p,f,m,h,_,u,v,S);Xe({"@type":I.isScheduled?"newScheduledMessage":"newMessage",id:I.id,chatId:n.id,message:I,wasDrafted:w});const A=setTimeout((()=>{Xe({"@type":I.isScheduled?"updateScheduledMessage":"updateMessage",id:I.id,chatId:n.id,message:{sendingState:"messageSendingStatePending"}})}),$r),P=Gt();if(m)return function(e,t,n,s){let{chat:a,text:i,entities:o,replyInfo:r,attachment:d,groupedId:u,isSilent:l,scheduledAt:p,sendAs:f}=e,g=-1;ec[u]||(ec[u]={counter:0,singleMediaByIndex:{},localMessages:{}}),g=ec[u].counter++;const h=Yr;return Yr=(async()=>{let e;try{e=await sc(n,d,s)}catch(e){return c&&console.warn(e),ec[u].counter--,void await h}const m=await async function(e,t){const n=await uo(new ue.Api.messages.UploadMedia({peer:e,media:t})),s=t.spoiler;if(n instanceof ue.Api.MessageMediaPhoto&&n.photo&&n.photo instanceof ue.Api.Photo){const{photo:{id:e,accessHash:t,fileReference:a}}=n;return new ue.Api.InputMediaPhoto({id:new ue.Api.InputPhoto({id:e,accessHash:t,fileReference:a}),spoiler:s})}if(n instanceof ue.Api.MessageMediaDocument&&n.document&&n.document instanceof ue.Api.Document){const{document:{id:e,accessHash:t,fileReference:a}}=n;return new ue.Api.InputMediaDocument({id:new ue.Api.InputDocument({id:e,accessHash:t,fileReference:a}),spoiler:s})}}(Dt(a.id,a.accessHash),e);if(await h,!m)return ec[u].counter--,void(c&&console.warn("Failed to upload grouped media"));if(ec[u].singleMediaByIndex[g]=new ue.Api.InputSingleMedia({media:m,randomId:t,message:i||"",entities:o?o.map(jt):void 0}),ec[u].localMessages[t.toString()]=n,Object.keys(ec[u].singleMediaByIndex).length<ec[u].counter)return;const{singleMediaByIndex:y,localMessages:_}=ec[u];delete ec[u];const b=await uo(new ue.Api.messages.SendMultiMedia({clearDraft:!0,peer:Dt(a.id,a.accessHash),multiMedia:Object.values(y),replyTo:r&&dn(r),...l&&{silent:l},...p&&{scheduleDate:p},...f&&{sendAs:Dt(f.id,f.accessHash)}}),{shouldIgnoreUpdates:!0});b&&Lc(_,b)})(),Yr}({chat:n,text:a,entities:i,replyInfo:o,attachment:r,groupedId:m,isSilent:g,scheduledAt:h},P,I,t);const C=(async()=>{let e;if(r)try{e=await sc(I,r,t)}catch(e){return c&&console.warn(e),void await Yr}else d?e=Ft(d):l?e=Ft(l):p?e=function(e,t){const{summary:n,quiz:s}=e,a=new ue.Api.Poll({id:t,publicVoters:n.isPublic,question:rn(n.question),answers:n.answers.map((e=>{let{text:t,option:n}=e;return new ue.Api.PollAnswer({text:rn(t),option:$e(n)})})),quiz:n.quiz,multipleChoice:n.multipleChoice});if(!s)return new ue.Api.InputMediaPoll({poll:a});const i=s.correctAnswers.map($e),{solution:o}=s,r=s.solutionEntities?s.solutionEntities.map(jt):[];return new ue.Api.InputMediaPoll({poll:a,correctAnswers:i,...o&&{solution:o,solutionEntities:r}})}(p,P):u?e=function(e){const t=Ut(e.peerId);return new ue.Api.InputMediaStory({peer:t,id:e.id})}(u):f&&(e=new ue.Api.InputMediaContact({phoneNumber:f.phoneNumber,firstName:f.firstName,lastName:f.lastName,vcard:""}));const s=e?ue.Api.messages.SendMedia:ue.Api.messages.SendMessage;try{const t=await uo(new s({clearDraft:!0,message:a||"",entities:i?i.map(jt):void 0,peer:Dt(n.id,n.accessHash),randomId:P,replyTo:o&&dn(o),...g&&{silent:g},...h&&{scheduleDate:h},...e&&{media:e},...y&&{noWebpage:y},..._&&{sendAs:Dt(_.id,_.accessHash)},...b&&{updateStickersetsOrder:b},...v&&{invertMedia:v},...S&&{effect:_e()(S)}}),{shouldThrow:!0,shouldIgnoreUpdates:!0});t&&jc(I,t)}catch(e){"PRIVACY_PREMIUM_REQUIRED"===e.message&&Xe({"@type":"updateRequestUserUpdate",id:n.id}),Xe({"@type":"updateMessageSendFailed",chatId:n.id,localId:I.id,error:e.message}),clearTimeout(A)}})();return C}const ec={};async function tc(e,t){let{chat:n,message:s,text:a,entities:i,attachment:o,noWebPage:r}=e;const d=1e3*s.date>Date.now()+1e3*Pt(),u=o&&Ss(o),l=a&&!o?.shouldSendAsFile?s.isInvertedMedia:void 0,p={...u||s.content,...a&&{text:{text:a,entities:i}}},f={...s,content:p,emojiOnlyCount:ht(p,s.groupedId),isInvertedMedia:l};Xe({"@type":d?"updateScheduledMessage":"updateMessage",id:s.id,chatId:n.id,message:f});try{let e;o&&(e=await sc(s,o,t));const c=i&&i.map(jt);await uo(new ue.Api.messages.EditMessage({message:a||"",entities:c,media:e,peer:Dt(n.id,n.accessHash),id:s.id,...d&&{scheduleDate:s.date},...r&&{noWebpage:r},...l&&{invertMedia:l}}),{shouldThrow:!0})}catch(e){c&&console.warn(e);const{message:t}=e;Xe({"@type":"error",error:{message:t,hasErrorKey:!0}}),Xe({"@type":d?"updateScheduledMessage":"updateMessage",id:s.id,chatId:n.id,message:s})}}async function nc(e){let{chat:t,message:n,scheduledAt:s}=e;await uo(new ue.Api.messages.EditMessage({peer:Dt(t.id,t.accessHash),id:n.id,scheduleDate:s}))}async function sc(e,t,n){const{filename:s,blobUrl:a,mimeType:i,quick:o,voice:r,audio:c,previewBlobUrl:d,shouldSendAsFile:u,shouldSendAsSpoiler:l,ttlSeconds:p}=t,f=t=>{n.isCanceled?f.isCanceled=!0:n(t,function(e){const{chatId:t}=e;return function(e,t){return`msg${e}-${t}`}(t,"randomId"in e?Number(e.randomId):e.previousLocalId||e.id)}(e))},g=async(e,t)=>fo(await async function(e,t){const n=await async function(e){return(await fetch(e)).blob()}(e);return function(e,t){return new File([e],t,{lastModified:Date.now(),type:e.type})}(n,t)}(e,s),t),h=O.has(i),m=c||h||u,[y,_]=await Promise.all(St([g(a,f),m&&d&&g(d)])),b=[new ue.Api.DocumentAttributeFilename({fileName:s})];if(!u){if(o){if(H.has(i)&&i!==F)return new ue.Api.InputMediaUploadedPhoto({file:y,spoiler:l});if(h){const{width:e,height:t,duration:n}=o;void 0!==n&&b.push(new ue.Api.DocumentAttributeVideo({duration:n,w:e,h:t,supportsStreaming:!0}))}}if(c){const{duration:e,title:t,performer:n}=c;b.push(new ue.Api.DocumentAttributeAudio({duration:e,title:t,performer:n}))}if(r){const{duration:e,waveform:t}=r,{data:n}=Mt(t,Jr);b.push(new ue.Api.DocumentAttributeAudio({voice:!0,duration:e,waveform:Kr.from(n)}))}}return new ue.Api.InputMediaUploadedDocument({file:y,mimeType:i,attributes:b,thumb:_,forceFile:u,spoiler:l,ttlSeconds:p})}async function ac(e){let{chat:t,messageId:n,isUnpin:s,isOneSide:a,isSilent:i}=e;await uo(new ue.Api.messages.UpdatePinnedMessage({peer:Dt(t.id,t.accessHash),id:n,...s&&{unpin:!0},...a&&{pmOneside:!0},...i&&{silent:!0}}))}async function ic(e){let{chat:t,threadId:n}=e;const s=await uo(new ue.Api.messages.UnpinAllMessages({peer:Dt(t.id,t.accessHash),...n&&{topMsgId:Number(n)}}));s&&(gi(t,s),s.offset&&await ic({chat:t,threadId:n}))}async function oc(e){let{chat:t,messageIds:n,shouldDeleteForAll:s}=e;const a="channel"===Et(t.id),i=await uo(a?new ue.Api.channels.DeleteMessages({channel:xt(t.id,t.accessHash),id:n}):new ue.Api.messages.DeleteMessages({id:n,...s&&{revoke:!0}}));i&&(gi(t,i),Xe({"@type":"deleteMessages",ids:n,...a&&{chatId:t.id}}))}function rc(e){let{chat:t,messageIds:n}=e;uo(new ue.Api.messages.DeleteScheduledMessages({peer:Dt(t.id,t.accessHash),id:n}))}async function cc(e){let{chat:t,shouldDeleteForAll:n}=e;const s="channel"===Et(t.id),a=await uo(s?new ue.Api.channels.DeleteHistory({channel:xt(t.id,t.accessHash)}):new ue.Api.messages.DeleteHistory({peer:Dt(t.id,t.accessHash),...n&&{revoke:!0},...!n&&{just_clear:!0}}));a&&("offset"in a&&(gi(t,a),a.offset)?await cc({chat:t,shouldDeleteForAll:n}):Xe({"@type":"deleteHistory",chatId:t.id}))}async function dc(e){let{chat:t}=e;const n=await uo(new ue.Api.messages.DeleteSavedHistory({peer:Dt(t.id,t.accessHash)}));n&&(gi(t,n),n.offset?await dc({chat:t}):Xe({"@type":"deleteSavedHistory",chatId:t.id}))}async function uc(e){let{peer:t,messageIds:n,reason:s,description:a}=e;return await uo(new ue.Api.messages.Report({peer:Dt(t.id,t.accessHash),id:n,reason:Xt(s),message:a}))}async function lc(e){let{peer:t,threadId:n,action:s}=e;const a=function(e){switch(e.type){case"cancel":return new ue.Api.SendMessageCancelAction;case"typing":return new ue.Api.SendMessageTypingAction;case"recordAudio":return new ue.Api.SendMessageRecordAudioAction;case"chooseSticker":return new ue.Api.SendMessageChooseStickerAction;case"playingGame":return new ue.Api.SendMessageGamePlayAction}}(s);if(a)try{return await uo(new ue.Api.messages.SetTyping({peer:Dt(t.id,t.accessHash),topMsgId:Number(n),action:a}),{shouldThrow:!0,abortControllerChatId:t.id,abortControllerThreadId:n})}catch(e){}else c&&console.warn("Unsupported message action",s)}async function pc(e){let{chat:t,threadId:n,maxId:s=0}=e;const a="channel"===Et(t.id),i=Math.min(s,E);if(a&&n===rt)await uo(new ue.Api.channels.ReadHistory({channel:xt(t.id,t.accessHash),maxId:i}));else if(a)await uo(new ue.Api.messages.ReadDiscussion({peer:Dt(t.id,t.accessHash),msgId:Number(n),readMaxId:i}));else{const e=await uo(new ue.Api.messages.ReadHistory({peer:Dt(t.id,t.accessHash),maxId:i}));e&&gi(t,e)}n===rt?xo({chat:t,noLastMessage:!0}):t.isForum&&Xe({"@type":"updateTopic",chatId:t.id,topicId:Number(n)})}async function fc(e){let{chat:t,messageIds:n}=e;const s="channel"===Et(t.id),a=await uo(s?new ue.Api.channels.ReadMessageContents({channel:xt(t.id,t.accessHash),id:n}):new ue.Api.messages.ReadMessageContents({id:n}));a&&(!0!==a&&gi(t,a),Xe({...s?{"@type":"updateChannelMessages",channelId:t.id}:{"@type":"updateCommonBoxMessages"},ids:n,messageUpdate:{hasUnreadMention:!1,isMediaUnread:!1}}))}async function gc(e){let{chat:t,ids:n,shouldIncrement:s}=e;const a=It(n,S),i=await Promise.all(a.map((e=>uo(new ue.Api.messages.GetMessagesViews({peer:Dt(t.id,t.accessHash),id:e,increment:s})))));if(!i||i.some((e=>!e)))return;const o=i.flatMap((e=>e.views));return{viewsInfo:n.map(((e,n)=>{const{views:s,forwards:a,replies:i}=o[n];return{id:e,views:s,forwards:a,threadInfo:i?As(i,e,t.id):void 0}}))}}async function hc(e){let{chat:t,ids:n}=e;const s=It(n,S),a=await Promise.all(s.map((e=>uo(new ue.Api.messages.GetFactCheck({peer:Dt(t.id,t.accessHash),msgId:e})))));if(a&&!a.some((e=>!e)))return a.flatMap((e=>e)).map(ws)}function mc(){return uo(new ue.Api.messages.GetPaidReactionPrivacy,{shouldReturnTrue:!0})}async function yc(e){let{chat:t,messageId:n}=e;const[s,a]=await Promise.all([uo(new ue.Api.messages.GetDiscussionMessage({peer:Dt(t.id,t.accessHash),msgId:n}),{abortControllerChatId:t.id,abortControllerThreadId:n}),Qr({chat:t,threadId:n,offsetId:1,addOffset:-1,limit:1})]);if(!s||!a)return;const i=s.messages.map(hs).filter(Boolean),o=i.concat(a.messages),r=s.messages[s.messages.length-1]?.id;if(!r)return;const{unreadCount:c,maxId:d,readInboxMaxId:u,readOutboxMaxId:l}=s;return{messages:o,topMessages:i,unreadCount:c,threadId:r,lastReadInboxMessageId:u,lastReadOutboxMessageId:l,lastMessageId:d,chatId:i[0]?.chatId,firstMessageId:a.messages[0]?.id}}async function _c(e){let t,{chat:n,isSavedDialog:s,savedTag:a,type:i,query:o="",threadId:r,minDate:c,maxDate:d,...u}=e;switch(i){case"media":t=new ue.Api.InputMessagesFilterPhotoVideo;break;case"documents":t=new ue.Api.InputMessagesFilterDocument;break;case"links":t=new ue.Api.InputMessagesFilterUrl;break;case"audio":t=new ue.Api.InputMessagesFilterMusic;break;case"voice":t=new ue.Api.InputMessagesFilterRoundVoice;break;case"profilePhoto":t=new ue.Api.InputMessagesFilterChatPhotos;break;default:t=new ue.Api.InputMessagesFilterEmpty}const l=Dt(n.id,n.accessHash),p=await uo(new ue.Api.messages.Search({peer:s?new ue.Api.InputPeerSelf:l,savedPeerId:s?l:void 0,savedReaction:a&&[an(a)],topMsgId:r===rt||s?void 0:Number(r),filter:t,q:o,minDate:c,maxDate:d,...u}),{abortControllerChatId:n.id,abortControllerThreadId:r});if(!p||p instanceof ue.Api.messages.MessagesNotModified||!p.messages)return;const f=js(p.users),g=p.messages.map(hs).filter(Boolean);let h,m=g.length;return(p instanceof ue.Api.messages.MessagesSlice||p instanceof ue.Api.messages.ChannelMessages)&&(m=p.count,g.length&&(h=g[g.length-1].id)),{userStatusesById:f,messages:g,totalCount:m,nextOffsetId:h}}async function bc(e){let t,{query:n,offsetRate:s=0,offsetPeer:a,offsetId:i,limit:o,type:r="text",minDate:c,maxDate:d}=e;switch(r){case"media":t=new ue.Api.InputMessagesFilterPhotoVideo;break;case"documents":t=new ue.Api.InputMessagesFilterDocument;break;case"links":t=new ue.Api.InputMessagesFilterUrl;break;case"audio":t=new ue.Api.InputMessagesFilterMusic;break;case"voice":t=new ue.Api.InputMessagesFilterRoundVoice;break;default:if(!(n||d&&c))return;t=new ue.Api.InputMessagesFilterEmpty}const u=a&&Dt(a.id,a.accessHash)||new ue.Api.InputPeerEmpty,l=await uo(new ue.Api.messages.SearchGlobal({q:n,offsetRate:s,offsetPeer:u,offsetId:i,broadcastsOnly:"channels"===r||void 0,limit:o,filter:t,minDate:c,maxDate:d}));if(!l||l instanceof ue.Api.messages.MessagesNotModified||!l.messages)return;const p=js(l.users),f=l.messages.map(hs).filter(Boolean);let g=f.length;g=l instanceof ue.Api.messages.MessagesSlice||l instanceof ue.Api.messages.ChannelMessages?l.count:l.messages.length;const h=l.messages[l.messages.length-1],m=Ve(h),y="nextRate"in l&&l.nextRate?l.nextRate:void 0,_=h?.id;return{messages:f,userStatusesById:p,totalCount:g,nextOffsetRate:y,nextOffsetPeerId:m,nextOffsetId:_}}async function wc(e){let{hashtag:t,offsetRate:n,offsetPeer:s,offsetId:a,limit:i}=e;const o=s&&Dt(s.id,s.accessHash)||new ue.Api.InputPeerEmpty,r=await uo(new ue.Api.channels.SearchPosts({hashtag:t,offsetRate:n,offsetId:a,offsetPeer:o,limit:i}));if(!r||r instanceof ue.Api.messages.MessagesNotModified)return;const c=js(r.users),d=r.messages.map(hs).filter(Boolean);let u=d.length;u=r instanceof ue.Api.messages.MessagesSlice||r instanceof ue.Api.messages.ChannelMessages?r.count:r.messages.length;const l=r.messages[r.messages.length-1],p=Ve(l),f="nextRate"in r&&r.nextRate?r.nextRate:void 0,g=l?.id;return{messages:d,userStatusesById:c,totalCount:u,nextOffsetRate:f,nextOffsetPeerId:p,nextOffsetId:g}}async function vc(e){let{text:t}=e;const n=rn(t),s=await uo(new ue.Api.messages.GetWebPagePreview({message:n.text,entities:n.entities}));return s&&$n(s)}async function Sc(e){let{chat:t,messageId:n,options:s}=e;const{id:a,accessHash:i}=t;await uo(new ue.Api.messages.SendVote({peer:Dt(a,i),msgId:n,options:s.map($e)}))}async function Ic(e){let{chat:t,messageId:n,poll:s}=e;const{id:a,accessHash:i}=t;await uo(new ue.Api.messages.EditMessage({peer:Dt(a,i),id:n,media:qt(s,!0)}))}async function Ac(e){let{chat:t,messageId:n,option:s,offset:a,limit:i,shouldResetVoters:o}=e;const{id:r,accessHash:c}=t,d=await uo(new ue.Api.messages.GetPollVotes({peer:Dt(r,c),id:n,...s&&{option:$e(s)},...a&&{offset:a},...i&&{limit:i}}));if(!d)return;const u=d.votes.map((e=>({peerId:ge(e.peer),date:e.date})));return{count:d.count,votes:u,nextOffset:d.nextOffset,shouldResetVoters:o}}async function Pc(e){let{chat:t,ids:n}=e;await uo(new ue.Api.messages.GetExtendedMedia({peer:Dt(t.id,t.accessHash),id:n}))}async function Cc(e){let{fromChat:t,toChat:n,toThreadId:s,messages:a,isSilent:i,scheduledAt:o,sendAs:r,withMyScore:c,noAuthors:d,noCaptions:u,isCurrentUserPremium:l,wasDrafted:p,lastMessageId:f}=e;const g=a.map((e=>{let{id:t}=e;return t})),h=a.map(Gt),m={};a.forEach(((e,t)=>{const a=function(e){let{toChat:t,toThreadId:n,message:s,scheduledAt:a,noAuthors:i,noCaptions:o,isCurrentUserPremium:r,lastMessageId:c}=e;const d=gs(c),{content:u,chatId:l,id:p,senderId:f,groupedId:g,isInAlbum:h,isInvertedMedia:m}=s,y=u.audio,_=t.id===ps&&(l!==t.id||s.forwardInfo)&&!y,b=Object.keys(u).length>1&&u.text&&o,w=!r,v=u.text?.entities&&w?{text:u.text.text,entities:u.text.entities.filter((e=>e.type!==ot.CustomEmoji))}:u.text,S=ht(u,g),I={...u,text:b?void 0:v},A=n&&n!==rt?{type:"message",replyToMsgId:n,replyToTopId:n,isForumTopic:t.isForum||void 0}:void 0;return{id:d,chatId:t.id,content:I,date:a||Math.round(Date.now()/1e3)+Pt(),isOutgoing:!_&&"chatTypeChannel"!==t.type,senderId:ps,sendingState:"messageSendingStatePending",groupedId:g,isInAlbum:h,isForwardingAllowed:!0,replyInfo:A,isInvertedMedia:m,...n&&t?.isForum&&{isTopicReply:!0},...S&&{emojiOnlyCount:S},...s.chatId!==ps&&!y&&!i&&{forwardInfo:{date:s.forwardInfo?.date||s.date,savedDate:s.date,isChannelPost:!1,fromChatId:l,fromMessageId:p,fromId:f,savedFromPeerId:s.chatId}},...s.chatId===ps&&!i&&{forwardInfo:s.forwardInfo},...a&&{isScheduled:!0}}}({toChat:n,toThreadId:Number(s),message:e,scheduledAt:o,noAuthors:d,noCaptions:u,isCurrentUserPremium:l,lastMessageId:f});m[h[t].toString()]=a,Xe({"@type":a.isScheduled?"newScheduledMessage":"newMessage",id:a.id,chatId:n.id,message:a,wasDrafted:p})}));try{const e=await uo(new ue.Api.messages.ForwardMessages({fromPeer:Dt(t.id,t.accessHash),toPeer:Dt(n.id,n.accessHash),randomId:h,id:g,withMyScore:c||void 0,silent:i||void 0,dropAuthor:d||void 0,dropMediaCaptions:u||void 0,...s&&{topMsgId:Number(s)},...o&&{scheduleDate:o},...r&&{sendAs:Dt(r.id,r.accessHash)}}),{shouldThrow:!0,shouldIgnoreUpdates:!0});e&&Lc(m,e)}catch(e){Object.values(m).forEach((t=>{Xe({"@type":"updateMessageSendFailed",chatId:n.id,localId:t.id,error:e.message})}))}}async function Mc(e){let{chat:t,timestamp:n}=e;const s=await uo(new ue.Api.messages.GetHistory({peer:Dt(t.id,t.accessHash),offsetDate:n,addOffset:-1,limit:1}));if(s&&!(s instanceof ue.Api.messages.MessagesNotModified)&&s.messages&&s.messages.length)return s.messages[0].id}async function Rc(e){let{chat:t}=e;const{id:n,accessHash:s}=t,a=await uo(new ue.Api.messages.GetScheduledHistory({peer:Dt(n,s)}),{abortControllerChatId:n});if(a&&!(a instanceof ue.Api.messages.MessagesNotModified)&&a.messages)return{messages:a.messages.map(hs).filter(Boolean)}}async function kc(e){let{chat:t,ids:n}=e;const{id:s,accessHash:a}=t;await uo(new ue.Api.messages.SendScheduledMessages({peer:Dt(s,a),id:n}))}async function Tc(e){let{chat:t,threadId:n}=e;const s=await uo(new ue.Api.messages.Search({peer:Dt(t.id,t.accessHash),filter:new ue.Api.InputMessagesFilterPinned,q:"",limit:_,topMsgId:Number(n)}),{abortControllerChatId:t.id,abortControllerThreadId:n});if(s&&!(s instanceof ue.Api.messages.MessagesNotModified)&&s.messages)return{messages:s.messages.map(hs).filter(Boolean)}}async function Ec(e){let{chat:t,messageId:n}=e;const s=await uo(new ue.Api.messages.GetMessageReadParticipants({peer:Dt(t.id,t.accessHash),msgId:n}));return s?s.reduce(((e,t)=>(e[t.userId.toString()]=t.date,e)),{}):void 0}async function Bc(e){let{chat:t}=e;const n=await uo(new ue.Api.channels.GetSendAs({peer:Dt(t.id,t.accessHash)}),{shouldIgnoreErrors:!0,abortControllerChatId:t.id});if(n)return{sendAs:n.peers.map(la)}}function Dc(e){let{sendAs:t,chat:n}=e;return uo(new ue.Api.messages.SaveDefaultSendAs({peer:Dt(n.id,n.accessHash),sendAs:Dt(t.id,t.accessHash)}))}async function Uc(e){let{chat:t}=e;const n=await uo(new ue.Api.channels.GetSponsoredMessages({channel:Dt(t.id,t.accessHash)}));if(n&&!(n instanceof ue.Api.messages.SponsoredMessagesEmpty)&&n.messages.length)return{messages:n.messages.map((e=>function(e,t){const{message:n,entities:s,randomId:a,recommended:i,sponsorInfo:o,additionalInfo:r,buttonText:c,canReport:d,title:u,url:l,color:p}=e;let f,g;return e.photo instanceof ue.Api.Photo&&(He(e.photo),f=Cn(e.photo)),e.media&&(g=Hn(e.media)),{chatId:t,randomId:Ke(a),expiresAt:Math.round(Date.now()/1e3)+T,isRecommended:i,sponsorInfo:o,additionalInfo:r,buttonText:c,canReport:d,title:u,url:l,peerColor:p&&he(p),photo:f,content:{...g,text:Gn(n,s)}}}(e,t.id))).filter(Boolean)}}async function xc(e){let{chat:t,random:n}=e;await uo(new ue.Api.channels.ViewSponsoredMessage({channel:Dt(t.id,t.accessHash),randomId:$e(n)}))}function Vc(e){let{chat:t,random:n,isMedia:s,isFullscreen:a}=e;return uo(new ue.Api.channels.ClickSponsoredMessage({media:s||void 0,fullscreen:a||void 0,channel:Dt(t.id,t.accessHash),randomId:$e(n)}))}async function Nc(e){let{chat:t}=e;const n=await uo(new ue.Api.messages.ReadMentions({peer:Dt(t.id,t.accessHash)}));n&&(gi(t,n),n.offset&&await Nc({chat:t}))}async function Fc(e){let{chat:t}=e;const n=await uo(new ue.Api.messages.ReadReactions({peer:Dt(t.id,t.accessHash)}));n&&(gi(t,n),n.offset&&await Fc({chat:t}))}async function qc(e){let{chat:t,...n}=e;const s=await uo(new ue.Api.messages.GetUnreadMentions({peer:Dt(t.id,t.accessHash),limit:R,...n}));if(s&&!(s instanceof ue.Api.messages.MessagesNotModified)&&s.messages)return{messages:s.messages.map(hs).filter(Boolean)}}async function Gc(e){let{chat:t,...n}=e;const s=await uo(new ue.Api.messages.GetUnreadReactions({peer:Dt(t.id,t.accessHash),limit:M,...n}));if(s&&!(s instanceof ue.Api.messages.MessagesNotModified)&&s.messages)return{messages:s.messages.map(hs).filter(Boolean)}}async function Hc(e){let{chat:t,messageId:n}=e;const s=await uo(new ue.Api.messages.TranscribeAudio({msgId:n,peer:Dt(t.id,t.accessHash)}));if(s)return Xe({"@type":"updateTranscribedAudio",isPending:s.pending,transcriptionId:s.transcriptionId.toString(),text:s.text}),s.transcriptionId.toString()}async function Oc(e){let t;const n="chat"in e;if(n){const{chat:n,messageIds:s,toLanguageCode:a}=e;t=await uo(new ue.Api.messages.TranslateText({peer:Dt(n.id,n.accessHash),id:s,toLang:a}))}else{const{text:n,toLanguageCode:s}=e;t=await uo(new ue.Api.messages.TranslateText({text:n.map((e=>rn(e))),toLang:s}))}if(!t)return;const s=t.result.map((e=>En(e)));return n&&Xe({"@type":"updateMessageTranslations",chatId:e.chat.id,messageIds:e.messageIds,translations:s,toLanguageCode:e.toLanguageCode}),s}function Lc(e,t){"updates"in t?t.updates.forEach((t=>{t instanceof ue.Api.UpdateMessageID?jc(e[t.randomId.toString()],t):co(t)})):co(t)}function jc(e,t){let n,s;if(t instanceof ue.Api.UpdateShortSentMessage||t instanceof ue.Api.UpdateMessageID?n=t:"updates"in t&&(n=t.updates.find((e=>e instanceof ue.Api.UpdateMessageID))),!n)return void co(t);n instanceof ue.Api.UpdateShortSentMessage&&(e.content.text&&n.entities&&(s={text:Gn(e.content.text.text,n.entities)}),n.media&&(s={...s,...Hn(n.media,{peerId:Bt(e.chatId),id:n.id})}),va(Lt(n.id,e.chatId,n)));const a="date"in n&&1e3*n.date<Date.now()+1e3*Pt();Xe({"@type":e.isScheduled&&!a?"updateScheduledMessageSendSucceeded":"updateMessageSendSucceeded",chatId:e.chatId,localId:e.id,message:{...e,...s&&{content:{...e.content,...s}},id:n.id,sendingState:void 0,..."date"in n&&{date:n.date}}}),co(t)}async function Wc(e){let{chat:t,messageId:n}=e;const{id:s,accessHash:a}=t,i=Dt(s,a),o=await uo(new ue.Api.messages.GetOutboxReadDate({peer:i,msgId:n}),{shouldThrow:!0});if(o)return{date:o.date}}async function zc(){const e=await uo(new ue.Api.messages.GetQuickReplies({}));if(e&&!(e instanceof ue.Api.messages.QuickRepliesNotModified))return{messages:e.messages.map(hs).filter(Boolean),quickReplies:e.quickReplies.map(Ps)}}async function Kc(e){let{chat:t,shortcutId:n}=e;const s=await uo(new ue.Api.messages.GetQuickReplyMessages({shortcutId:n}));if(!s||s instanceof ue.Api.messages.MessagesNotModified)return;const a=s.messages.map((e=>e.id)),i=a.map(Gt),o=await uo(new ue.Api.messages.SendQuickReplyMessages({peer:Dt(t.id,t.accessHash),shortcutId:n,id:a,randomId:i}),{shouldIgnoreUpdates:!0});if(o){if("updates"in o){const e=o.updates.filter((e=>!(e instanceof ue.Api.UpdateMessageID)));o.updates=e}co(o)}}async function $c(e){let{id:t,chat:n,shouldIncludeThread:s,shouldIncludeGrouped:a}=e;const i=await uo(new ue.Api.channels.ExportMessageLink({channel:xt(n.id,n.accessHash),id:t,thread:s||void 0,grouped:a||void 0}));return i?.link}async function Jc(e){let{id:t,accessHash:n}=e;const s=xt(t,n);if(!(s instanceof ue.Api.InputUser))return;const a=await uo(new ue.Api.users.GetFullUser({id:s}));if(!a)return;a.fullUser.profilePhoto&&He(a.fullUser.profilePhoto),a.fullUser.personalPhoto&&He(a.fullUser.personalPhoto),a.fullUser.fallbackPhoto&&He(a.fullUser.fallbackPhoto);const i=a.fullUser.botInfo;i?.descriptionPhoto&&He(i.descriptionPhoto),i?.descriptionDocument instanceof ue.Api.Document&&(Te.documents[i.descriptionDocument.id.toString()]=i.descriptionDocument),a.fullUser.businessIntro?.sticker instanceof ue.Api.Document&&(Te.documents[a.fullUser.businessIntro.sticker.id.toString()]=a.fullUser.businessIntro.sticker);const o=Hs(a),r=a.users.map(Os).filter(Boolean),c=a.chats.map((e=>Xs(e))).filter(Boolean),d=r.find((e=>{let{id:n}=e;return n===t}));return Xe({"@type":"updateUser",id:t,user:d,fullInfo:o}),{user:d,fullInfo:o,users:r,chats:c}}async function Qc(e,t){const n=await uo(new ue.Api.messages.GetCommonChats({userId:xt(e.id,e.accessHash),maxId:t?Zt(t,Et(t)):void 0}));if(!n)return;const s=n.chats.map((e=>Xs(e))).filter(Boolean).map((e=>{let{id:t}=e;return t}));return{chatIds:s,count:"count"in n?n.count:s.length}}async function Xc(){const e=await uo(new ue.Api.help.GetNearestDc);return e?.country}async function Yc(){const e=await uo(new ue.Api.contacts.GetTopPeers({correspondents:!0}));if(e instanceof ue.Api.contacts.TopPeers)return{ids:e.users.map(Os).filter((e=>Boolean(e)&&!e.isSelf)).map((e=>{let{id:t}=e;return t}))}}async function Zc(){const e=await uo(new ue.Api.contacts.GetContacts({hash:_e()("0")}));if(e&&!(e instanceof ue.Api.contacts.ContactsNotModified))return{users:e.users.map(Os).filter(Boolean),userStatusesById:js(e.users)}}async function ed(e){let{users:t}=e;const n=await uo(new ue.Api.users.GetUsers({id:t.map((e=>{let{id:t,accessHash:n}=e;return Dt(t,n)}))}));if(n&&n.length)return{users:n.map(Os).filter(Boolean),userStatusesById:js(n)}}async function td(e){let{phone:t,firstName:n,lastName:s}=e;const a=await uo(new ue.Api.contacts.ImportContacts({contacts:[zt({phone:t||"",firstName:n||"",lastName:s||""})]}));return a instanceof ue.Api.contacts.ImportedContacts&&a.users.length&&We(a.users[0]),a?.imported.length?fe(a.imported[0].userId,"user"):void 0}function nd(e){let{id:t,accessHash:n,phoneNumber:s="",firstName:a="",lastName:i="",shouldSharePhoneNumber:o=!1}=e;return uo(new ue.Api.contacts.AddContact({id:xt(t,n),firstName:a,lastName:i,phone:s,...o&&{addPhonePrivacyException:o}}),{shouldReturnTrue:!0})}async function sd(e){let{id:t,accessHash:n}=e;const s=xt(t,n);s instanceof ue.Api.InputUser&&await uo(new ue.Api.contacts.DeleteContacts({id:[s]}))&&Xe({"@type":"deleteContact",id:t})}async function ad(e){let{peer:t,offset:n=0,limit:s=0}=e;const a="title"in t?t:void 0,i=a?void 0:t;if(i){const{id:e,accessHash:t}=i,a=await uo(new ue.Api.photos.GetUserPhotos({userId:xt(e,t),limit:s,offset:n,maxId:_e()("0")}));if(!a)return;a.photos.forEach(He);const o=a instanceof ue.Api.photos.PhotosSlice?a.count:a.photos.length,r=n+a.photos.length,c=r<o?r:void 0;return{count:o,photos:a.photos.filter((e=>e instanceof ue.Api.Photo)).map((e=>Cn(e))),nextOffsetId:c}}if(a?.isRestricted)return;const o=await _c({chat:a,type:"profilePhoto",limit:s});if(!o)return;const{messages:r,totalCount:c,nextOffsetId:d}=o;return{count:c,photos:r.map((e=>e.content.action.photo)).filter(Boolean),nextOffsetId:d}}function id(e){const{id:t,accessHash:n}=e;return uo(new ue.Api.messages.ReportSpam({peer:Dt(t,n)}),{shouldReturnTrue:!0})}function od(e,t){return uo(new ue.Api.account.UpdateEmojiStatus({emojiStatus:on(e,t)}),{shouldReturnTrue:!0})}function rd(e){const t=e.map((e=>Zt(e,"user")));return uo(new ue.Api.contacts.EditCloseFriends({id:t}),{shouldReturnTrue:!0})}async function cd(e){let{hash:t="0"}=e;const n=await uo(new ue.Api.messages.GetEmojiStickers({hash:_e()(t)}));if(n&&!(n instanceof ue.Api.messages.AllStickersNotModified))return n.sets.forEach((e=>{(e.thumbs?.length||e.thumbDocumentId)&&(Te.stickerSets[String(e.id)]=e)})),{hash:String(n.hash),sets:n.sets.map(xn)}}async function dd(e){let{hash:t="0"}=e;const n=await uo(new ue.Api.messages.GetAllStickers({hash:_e()(t)}));if(n&&!(n instanceof ue.Api.messages.AllStickersNotModified))return n.sets.forEach((e=>{e.thumbs?.length&&(Te.stickerSets[String(e.id)]=e)})),{hash:String(n.hash),sets:n.sets.map(xn)}}async function ud(e){let{hash:t="0"}=e;const n=await uo(new ue.Api.messages.GetRecentStickers({hash:_e()(t)}));if(n&&!(n instanceof ue.Api.messages.RecentStickersNotModified))return{hash:String(n.hash),stickers:Fn(n.stickers.slice(0,U))}}async function ld(e){let{hash:t="0"}=e;const n=await uo(new ue.Api.messages.GetFavedStickers({hash:_e()(t)}));if(n&&!(n instanceof ue.Api.messages.FavedStickersNotModified))return{hash:String(n.hash),stickers:Fn(n.stickers)}}async function pd(e){let{hash:t="0"}=e;const n=await uo(new ue.Api.messages.GetFeaturedStickers({hash:_e()(t)}));if(n&&!(n instanceof ue.Api.messages.FeaturedStickersNotModified))return{hash:String(n.hash),isPremium:Boolean(n.premium),sets:n.sets.map(Vn)}}async function fd(){const e=await uo(new ue.Api.messages.GetFeaturedEmojiStickers({hash:_e()(0)}));if(e&&!(e instanceof ue.Api.messages.FeaturedStickersNotModified))return e.sets.forEach((e=>{let{set:t}=e;t.thumbDocumentId&&(Te.stickerSets[String(t.id)]=t)})),{isPremium:Boolean(e.premium),sets:e.sets.map(Vn)}}async function gd(e){let{sticker:t,unfave:n}=e;const s=new ue.Api.messages.FaveSticker({id:Nt(t),unfave:n});await uo(s)&&Xe({"@type":"updateFavoriteStickers"})}function hd(e){let{sticker:t}=e;return uo(new ue.Api.messages.SaveRecentSticker({id:Nt(t),unsave:!0}))}function md(){return uo(new ue.Api.messages.ClearRecentStickers)}async function yd(e){let{stickerSetInfo:t}=e;if("isMissing"in t)return;const n=await uo(new ue.Api.messages.GetStickerSet({stickerset:"id"in t?Vt(t.id,t.accessHash):(s=t.shortName,new ue.Api.InputStickerSetShortName({shortName:s}))}),{shouldThrow:!0});var s;return n instanceof ue.Api.messages.StickerSet?(Te.stickerSets[String(n.set.id)]=n.set,{set:xn(n.set),stickers:Fn(n.documents),packs:Nn(n.packs)}):void 0}async function _d(e){let{documentId:t}=e;if(!t.length)return;const n=await uo(new ue.Api.messages.GetCustomEmojiDocuments({documentId:t.map((e=>_e()(e)))}));return n?Fn(n):void 0}async function bd(){const e=await uo(new ue.Api.messages.GetStickerSet({stickerset:new ue.Api.InputStickerSetAnimatedEmoji}));if(e instanceof ue.Api.messages.StickerSet)return{set:xn(e.set),stickers:Fn(e.documents)}}async function wd(){const e=await uo(new ue.Api.messages.GetStickerSet({stickerset:new ue.Api.InputStickerSetAnimatedEmojiAnimations}));if(e instanceof ue.Api.messages.StickerSet)return{set:xn(e.set),stickers:Fn(e.documents)}}async function vd(){const e=await uo(new ue.Api.messages.GetStickerSet({stickerset:new ue.Api.InputStickerSetEmojiGenericAnimations}));if(e instanceof ue.Api.messages.StickerSet)return{set:xn(e.set),stickers:Fn(e.documents)}}async function Sd(){const e=await uo(new ue.Api.messages.GetStickerSet({stickerset:new ue.Api.InputStickerSetPremiumGifts}));if(e instanceof ue.Api.messages.StickerSet)return{set:xn(e.set),stickers:Fn(e.documents)}}async function Id(){const e=await uo(new ue.Api.messages.GetStickerSet({stickerset:new ue.Api.InputStickerSetEmojiDefaultTopicIcons}));if(e instanceof ue.Api.messages.StickerSet)return{set:xn(e.set),stickers:Fn(e.documents)}}async function Ad(){const e=await uo(new ue.Api.messages.GetStickerSet({stickerset:new ue.Api.InputStickerSetEmojiDefaultStatuses}));if(e instanceof ue.Api.messages.StickerSet)return{set:xn(e.set),stickers:Fn(e.documents)}}async function Pd(e){let{query:t,hash:n="0"}=e;const s=await uo(new ue.Api.messages.SearchStickerSets({q:t,hash:_e()(n)}));if(s&&!(s instanceof ue.Api.messages.FoundStickerSetsNotModified))return{hash:String(s.hash),sets:s.sets.map(Vn)}}async function Cd(e){let{hash:t="0"}=e;const n=await uo(new ue.Api.messages.GetSavedGifs({hash:_e()(t)}));if(n&&!(n instanceof ue.Api.messages.SavedGifsNotModified))return{hash:String(n.hash),gifs:xd(n.gifs)}}function Md(e){let{gif:t,shouldUnsave:n}=e;return uo(new ue.Api.messages.SaveGif({id:Nt(t),unsave:n}),{shouldReturnTrue:!0})}async function Rd(e){let{stickerSetId:t,accessHash:n}=e;await uo(new ue.Api.messages.InstallStickerSet({stickerset:Vt(t,n)}))&&Xe({"@type":"updateStickerSet",id:t,stickerSet:{installedDate:Date.now()}})}async function kd(e){let{stickerSetId:t,accessHash:n}=e;await uo(new ue.Api.messages.UninstallStickerSet({stickerset:Vt(t,n)}))&&Xe({"@type":"updateStickerSet",id:t,stickerSet:{installedDate:void 0}})}let Td;async function Ed(e){let{query:t,offset:n="",username:s=$}=e;if(!Td){const e=await uo(new ue.Api.contacts.ResolveUsername({username:s}));if(!(e&&e.users[0]instanceof ue.Api.User))return;Td=new ue.Api.InputUser({userId:e.peer.userId,accessHash:e.users[0].accessHash})}const a=await uo(new ue.Api.messages.GetInlineBotResults({bot:Td,peer:new ue.Api.InputPeerEmpty,query:t,offset:n}));if(!a)return;const i=a.results.map((e=>{if(e instanceof ue.Api.BotInlineMediaResult)return e.document})).filter(Boolean);return{nextOffset:a.nextOffset,gifs:xd(i)}}async function Bd(e){let{emoji:t,hash:n="0"}=e;const s=await uo(new ue.Api.messages.GetStickers({emoticon:t,hash:_e()(n)}));if(s&&!(s instanceof ue.Api.messages.StickersNotModified))return{stickers:Fn(s.stickers),hash:String(s.hash)}}async function Dd(e){let{language:t,fromVersion:n}=e;const s=await uo(new ue.Api.messages.GetEmojiKeywordsDifference({langCode:t,fromVersion:n}));if(s)return{language:s.langCode,version:s.version,keywords:s.keywords.reduce(((e,t)=>(e[t.keyword]=t.emoticons,e)),{})}}async function Ud(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"0";const t=await uo(new ue.Api.account.GetRecentEmojiStatuses({hash:_e()(e)}));if(!t||t instanceof ue.Api.account.EmojiStatusesNotModified)return;const n=t.statuses.slice(0,x).map(me).filter(Boolean).map((e=>{let{documentId:t}=e;return t})),s=await _d({documentId:n});return{hash:String(t.hash),emojiStatuses:s}}function xd(e){return e.map((e=>{if(e instanceof ue.Api.Document){const t=On(e);if(t)return Te.documents[String(e.id)]=e,t}})).filter(Boolean)}async function Vd(e){let{username:t}=e;try{return{result:await uo(new ue.Api.channels.CheckUsername({channel:new ue.Api.InputChannelEmpty,username:t}),{shouldThrow:!0}),error:void 0}}catch(e){const t=e.message;if(j.has(t))return{result:!1,error:t};throw e}}async function Nd(e){let{chat:t,username:n}=e;const s=await uo(new ue.Api.channels.UpdateUsername({channel:xt(t.id,t.accessHash),username:n}));let a=n?[{username:n,isEditable:!0,isActive:!0}]:[];return t.usernames&&(a=a.concat(t.usernames.filter((e=>e.username&&!e.isEditable)))),s&&Xe({"@type":"updateChat",id:t.id,chat:{usernames:a.length?a:void 0}}),s}async function Fd(e){let{chat:t}=e;const n=await uo(new ue.Api.channels.DeactivateAllUsernames({channel:xt(t.id,t.accessHash)}));if(n){const e=t.usernames?t.usernames.map((e=>({...e,isActive:!1}))).filter((e=>e.username)):void 0;Xe({"@type":"updateChat",id:t.id,chat:{usernames:e}})}return n}async function qd(e){let{chat:t,usageLimit:n,expireDate:s}=e;const a=await uo(new ue.Api.messages.ExportChatInvite({peer:Dt(t.id,t.accessHash),usageLimit:n,expireDate:s}));if(a instanceof ue.Api.ChatInviteExported)return Xe({"@type":"updateChatFullInfo",id:t.id,fullInfo:{inviteLink:a.link}}),a.link}async function Gd(e){let{peer:t,admin:n,limit:s=0,isRevoked:a}=e;const i=await uo(new ue.Api.messages.GetExportedChatInvites({peer:Dt(t.id,t.accessHash),adminId:xt(n.id,n.accessHash),limit:s,revoked:a||void 0}),{abortControllerChatId:t.id});if(i)return{invites:i.invites.filter((e=>e instanceof ue.Api.ChatInviteExported)).map(ca)}}async function Hd(e){let{peer:t,isRevoked:n,link:s,expireDate:a,usageLimit:i,isRequestNeeded:o,title:r}=e;const c=await uo(new ue.Api.messages.EditExportedChatInvite({link:s,peer:Dt(t.id,t.accessHash),expireDate:a,usageLimit:o?void 0:i,requestNeeded:o,title:r,revoked:n||void 0}));if(c){if(c instanceof ue.Api.messages.ExportedChatInvite&&c.invite instanceof ue.Api.ChatInviteExported){const e=ca(c.invite);return{oldInvite:e,newInvite:e}}if(c instanceof ue.Api.messages.ExportedChatInviteReplaced&&c.invite instanceof ue.Api.ChatInviteExported&&c.newInvite instanceof ue.Api.ChatInviteExported)return{oldInvite:ca(c.invite),newInvite:ca(c.newInvite)}}}async function Od(e){let{peer:t,expireDate:n,usageLimit:s,isRequestNeeded:a,title:i}=e;const o=await uo(new ue.Api.messages.ExportChatInvite({peer:Dt(t.id,t.accessHash),expireDate:n,usageLimit:a?void 0:s,requestNeeded:a||void 0,title:i}));if(o instanceof ue.Api.ChatInviteExported)return ca(o)}async function Ld(e){let{peer:t,link:n}=e;return await uo(new ue.Api.messages.DeleteExportedChatInvite({peer:Dt(t.id,t.accessHash),link:n}))}async function jd(e){let{peer:t,admin:n}=e;return await uo(new ue.Api.messages.DeleteRevokedExportedChatInvites({peer:Dt(t.id,t.accessHash),adminId:xt(n.id,n.accessHash)}))}async function Wd(e){let{peer:t,link:n,offsetDate:s=0,offsetUser:a,limit:i=0,isRequested:o}=e;const r=await uo(new ue.Api.messages.GetChatInviteImporters({peer:Dt(t.id,t.accessHash),link:n,offsetDate:s,offsetUser:a?xt(a.id,a.accessHash):new ue.Api.InputUserEmpty,limit:i,requested:o||void 0}),{abortControllerChatId:t.id});if(r)return{importers:r.importers.map((e=>function(e){const{userId:t,date:n,about:s,requested:a,viaChatlist:i}=e;return{userId:fe(t,"user"),date:n,about:s,isRequested:a,isFromChatList:i}}(e)))}}function zd(e){let{peer:t,user:n,isApproved:s}=e;return uo(new ue.Api.messages.HideChatJoinRequest({peer:Dt(t.id,t.accessHash),userId:xt(n.id,n.accessHash),approved:s||void 0}),{shouldReturnTrue:!0})}function Kd(e){let{peer:t,isApproved:n,link:s}=e;return uo(new ue.Api.messages.HideAllChatJoinRequests({peer:Dt(t.id,t.accessHash),approved:n||void 0,link:s}),{shouldReturnTrue:!0})}function $d(e){const{id:t,accessHash:n}=e;return uo(new ue.Api.messages.HidePeerSettingsBar({peer:Dt(t,n)}))}var Jd=n(48287).hp;function Qd(e){const{emojies_sounds:t}=e;return t?Object.keys(t).reduce(((e,n)=>{const s=t[n];return Te.documents[s.id]=new ue.Api.Document({id:_e()(s.id),accessHash:_e()(s.access_hash),dcId:1,mimeType:"audio/ogg",fileReference:Jd.alloc(0),size:_e()(0)}),e[n]=s.id,e}),{}):{}}function Xd(e,t,n){return[e[`${t}_default`]||se[n][0],e[`${t}_premium`]||se[n][1]]}const Yd=["ar","fa","id","ko","uz","en"];function Zd(e){let{firstName:t,lastName:n,about:s}=e;return uo(new ue.Api.account.UpdateProfile({firstName:t||"",lastName:n||"",about:s||""}),{shouldReturnTrue:!0})}async function eu(e){try{return{result:await uo(new ue.Api.account.CheckUsername({username:e}),{shouldThrow:!0}),error:void 0}}catch(e){const t=e.message;if(j.has(t))return{result:!1,error:t};throw e}}function tu(e){return uo(new ue.Api.account.UpdateUsername({username:e}),{shouldReturnTrue:!0})}async function nu(e,t){const n=e?Wt(e):new ue.Api.InputPhotoEmpty,s=await uo(new ue.Api.photos.UpdateProfilePhoto({id:n,...t?{fallback:!0}:void 0}));if(s)return s.photo instanceof ue.Api.Photo?(He(s.photo),{photo:Cn(s.photo)}):void 0}async function su(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,a=arguments.length>4?arguments[4]:void 0;const i=await fo(e),o=await uo(new ue.Api.photos.UploadProfilePhoto({...a?{bot:Dt(a.id,a.accessHash)}:void 0,...n?{video:i,videoStartTs:s}:{file:i},...t?{fallback:!0}:void 0}));if(o)return o.photo instanceof ue.Api.Photo?(He(o.photo),{photo:Cn(o.photo)}):void 0}async function au(e){let{file:t,isSuggest:n,user:s}=e;const a=t?await fo(t):void 0,i=await uo(new ue.Api.photos.UploadContactProfilePhoto({userId:xt(s.id,s.accessHash),file:a,...n?{suggest:!0}:{save:!0}}));if(i)return i.photo instanceof ue.Api.Photo?(He(i.photo),{photo:Cn(i.photo)}):{photo:void 0}}async function iu(e){const t=e.map(Wt).filter(Boolean),n=await uo(new ue.Api.photos.DeletePhotos({id:t}),{shouldReturnTrue:!0});return n&&e.forEach((e=>{delete Te.photos[e.id]})),n}async function ou(){const e=await uo(new ue.Api.account.GetWallPapers({hash:_e()("0")}));if(!e||e instanceof ue.Api.account.WallPapersNotModified)return;const t=e.wallpapers.filter((e=>e instanceof ue.Api.WallPaper&&e.document instanceof ue.Api.Document&&!e.pattern&&"application/x-tgwallpattern"!==e.document.mimeType));return t.forEach((e=>{Te.documents[String(e.document.id)]=e.document})),{wallpapers:t.map(Aa).filter(Boolean)}}async function ru(e){const t=await fo(e),n=await uo(new ue.Api.account.UploadWallPaper({file:t,mimeType:e.type,settings:new ue.Api.WallPaperSettings}));if(!(n&&n instanceof ue.Api.WallPaper))return;const s=Aa(n);return s?(Te.documents[String(n.document.id)]=n.document,{wallpaper:s}):void 0}async function cu(e){let{isOnlyStories:t}=e;const n=await uo(new ue.Api.contacts.GetBlocked({myStoriesFrom:t,limit:b}));if(n)return{blockedIds:n.blocked.map((e=>ge(e.peerId))),totalCount:n instanceof ue.Api.contacts.BlockedSlice?n.count:n.blocked.length}}function du(e){let{user:t,isOnlyStories:n}=e;return uo(new ue.Api.contacts.Block({id:Dt(t.id,t.accessHash),myStoriesFrom:n}))}function uu(e){let{user:t,isOnlyStories:n}=e;return uo(new ue.Api.contacts.Unblock({id:Dt(t.id,t.accessHash),myStoriesFrom:n}))}async function lu(){const e=await uo(new ue.Api.account.GetAuthorizations);if(e)return{authorizations:mt(e.authorizations.map(Pa),"hash"),ttlDays:e.authorizationTtlDays}}function pu(e){return uo(new ue.Api.account.ResetAuthorization({hash:_e()(e)}))}function fu(){return uo(new ue.Api.auth.ResetAuthorizations)}async function gu(){const e=await uo(new ue.Api.account.GetWebAuthorizations);if(e)return{webAuthorizations:mt(e.authorizations.map(Ca),"hash")}}function hu(e){return uo(new ue.Api.account.ResetWebAuthorization({hash:_e()(e)}))}function mu(){return uo(new ue.Api.account.ResetWebAuthorizations)}async function yu(){const e=await uo(new ue.Api.account.GetNotifyExceptions({compareSound:!0}),{shouldIgnoreUpdates:!0});if(e instanceof ue.Api.Updates||e instanceof ue.Api.UpdatesCombined)return e.updates.reduce(((e,t)=>t instanceof ue.Api.UpdateNotifySettings&&t.peer instanceof ue.Api.NotifyPeer?(e.push(Ma(t.notifySettings,t.peer.peer)),e):e),[])}async function _u(){const[e,t,n,s]=await Promise.all([uo(new ue.Api.account.GetContactSignUpNotification),uo(new ue.Api.account.GetNotifySettings({peer:new ue.Api.InputNotifyUsers})),uo(new ue.Api.account.GetNotifySettings({peer:new ue.Api.InputNotifyChats})),uo(new ue.Api.account.GetNotifySettings({peer:new ue.Api.InputNotifyBroadcasts}))]);if(!t||!n||!s)return!1;const{silent:a,muteUntil:i,showPreviews:o}=t,{silent:r,muteUntil:c,showPreviews:d}=n,{silent:u,muteUntil:l,showPreviews:p}=s;return{hasContactJoinedNotifications:!e,hasPrivateChatsNotifications:!(a||"number"==typeof i&&Ct()<i),hasPrivateChatsMessagePreview:o,hasGroupNotifications:!(r||"number"==typeof c&&Ct()<c),hasGroupMessagePreview:d,hasBroadcastNotifications:!(u||"number"==typeof l&&Ct()<l),hasBroadcastMessagePreview:p}}function bu(e){return uo(new ue.Api.account.SetContactSignUpNotification({silent:e}))}function wu(e,t){let n,{isSilent:s,shouldShowPreviews:a}=t;n="contact"===e?new ue.Api.InputNotifyUsers:"group"===e?new ue.Api.InputNotifyChats:new ue.Api.InputNotifyBroadcasts;const i={showPreviews:a,silent:s,muteUntil:s?E:0};return uo(new ue.Api.account.UpdateNotifySettings({peer:n,settings:new ue.Api.InputPeerNotifySettings(i)}))}async function vu(e){let{langPack:t,langCode:n}=e;const s=await uo(new ue.Api.langpack.GetLangPack({langPack:t,langCode:n}));if(!s)return;const{strings:a,keysToRemove:i}=Da(s.strings);return{version:s.version,strings:a,keysToRemove:i}}async function Su(e){let{langPack:t,langCode:n,fromVersion:s}=e;const a=await uo(new ue.Api.langpack.GetDifference({langPack:t,langCode:n,fromVersion:s}));if(!a)return;const{strings:i,keysToRemove:o}=Da(a.strings);return{version:a.version,strings:i,keysToRemove:o}}async function Iu(){const e=await uo(new ue.Api.langpack.GetLanguages({langPack:Y}));if(e)return e.map(Ua)}async function Au(e){let{langPack:t,langCode:n}=e;const s=await uo(new ue.Api.langpack.GetLanguage({langPack:t,langCode:n}));if(s)return Ua(s)}async function Pu(e){let{sourceLangPacks:t,langCode:n}=e;const s=(await Promise.all(t.map((e=>uo(new ue.Api.langpack.GetLangPack({langPack:e,langCode:Yd.includes(n)?`${n}-raw`:n})))))).filter(Boolean).map(Ea);if(s.length)return{langPack:Object.assign({},...s.reverse())}}async function Cu(e){let{langPack:t,langCode:n,keys:s}=e;const a=await uo(new ue.Api.langpack.GetStrings({langPack:t,langCode:Yd.includes(n)?`${n}-raw`:n,keys:s}));if(a)return a.map(Ba)}async function Mu(e){const t=Qt(e),n=await uo(new ue.Api.account.GetPrivacy({key:t}));if(n)return{rules:Tn(n.rules)}}function Ru(e){const t=to.session.getAuthKey().getKey();return uo(new ue.Api.account.RegisterDevice({tokenType:10,secret:t,appSandbox:!1,otherUids:[],token:e}))}function ku(e){return uo(new ue.Api.account.UnregisterDevice({tokenType:10,otherUids:[],token:e}))}async function Tu(e,t){const n=Qt(e),s=un(t),a=await uo(new ue.Api.account.SetPrivacy({key:n,rules:s}));if(a)return{rules:Tn(a.rules)}}async function Eu(e){await uo(new ue.Api.account.UpdateStatus({offline:!e}))}async function Bu(){const e=await uo(new ue.Api.account.GetContentSettings);if(e)return{isSensitiveEnabled:Boolean(e.sensitiveEnabled),canChangeSensitive:Boolean(e.sensitiveCanChange)}}function Du(e){return uo(new ue.Api.account.SetContentSettings({sensitiveEnabled:e||void 0}))}async function Uu(e){const t=await uo(new ue.Api.help.GetAppConfig({hash:e}));if(!t||t instanceof ue.Api.help.AppConfigNotModified)return;const{config:n,hash:s}=t;return function(e,t){const n=ka(e);return{emojiSounds:Qd(n),seenByMaxChatMembers:n.chat_read_mark_size_threshold,seenByExpiresAt:n.chat_read_mark_expire_period,readDateExpiresAt:n.pm_read_date_expire_period,autologinDomains:n.autologin_domains||[],urlAuthDomains:n.url_auth_domains||[],maxUniqueReactions:n.reactions_uniq_max??ne,premiumBotUsername:n.premium_bot_username,premiumInvoiceSlug:n.premium_invoice_slug,premiumPromoOrder:n.premium_promo_order,isPremiumPurchaseBlocked:n.premium_purchase_blocked,isGiveawayGiftsPurchaseAvailable:n.giveaway_gifts_purchase_available,defaultEmojiStatusesStickerSetId:n.default_emoji_statuses_stickerset_id,topicsPinnedLimit:n.topics_pinned_limit,maxUserReactionsDefault:n.reactions_user_max_default,maxUserReactionsPremium:n.reactions_user_max_premium,hiddenMembersMinCount:n.hidden_members_group_size_min,giveawayAddPeersMax:n.giveaway_add_peers_max,giveawayBoostsPerPremium:n.giveaway_boosts_per_premium,giveawayCountriesMax:n.giveaway_countries_max,boostsPerSentGift:n.boosts_per_sent_gift,canDisplayAutoarchiveSetting:n.autoarchive_setting_available,limits:{uploadMaxFileparts:Xd(n,"upload_max_fileparts","uploadMaxFileparts"),stickersFaved:Xd(n,"stickers_faved_limit","stickersFaved"),savedGifs:Xd(n,"saved_gifs_limit","savedGifs"),dialogFiltersChats:Xd(n,"dialog_filters_chats_limit","dialogFiltersChats"),dialogFilters:Xd(n,"dialog_filters_limit","dialogFilters"),dialogFolderPinned:Xd(n,"dialogs_pinned_limit","dialogFolderPinned"),captionLength:Xd(n,"caption_length_limit","captionLength"),channels:Xd(n,"channels_limit","channels"),channelsPublic:Xd(n,"channels_public_limit","channelsPublic"),aboutLength:Xd(n,"about_length_limit","aboutLength"),chatlistInvites:Xd(n,"chatlist_invites_limit","chatlistInvites"),chatlistJoined:Xd(n,"chatlist_joined_limit","chatlistJoined"),recommendedChannels:Xd(n,"recommended_channels_limit","recommendedChannels"),savedDialogsPinned:Xd(n,"saved_dialogs_pinned_limit","savedDialogsPinned")},hash:t,areStoriesHidden:n.stories_all_hidden,storyExpirePeriod:n.story_expire_period??ee,storyViewersExpirePeriod:n.story_viewers_expire_period??te,storyChangelogUserId:n.stories_changelog_user_id?.toString()??z,maxPinnedStoriesCount:n.stories_pinned_to_top_count_max,groupTranscribeLevelMin:n.group_transcribe_level_min,canLimitNewMessagesWithoutPremium:n.new_noncontact_peers_require_premium_without_ownpremium,bandwidthPremiumNotifyPeriod:n.upload_premium_speedup_notify_period,bandwidthPremiumUploadSpeedup:n.upload_premium_speedup_upload,bandwidthPremiumDownloadSpeedup:n.upload_premium_speedup_download,channelRestrictAdsLevelMin:n.channel_restrict_sponsored_level_min,paidReactionMaxAmount:n.stars_paid_reaction_amount_max,isChannelRevenueWithdrawalEnabled:n.channel_revenue_withdrawal_enabled,isStarsGiftsEnabled:n.stars_gifts_enabled}}(n,s)}async function xu(){const e=await uo(new ue.Api.help.GetConfig);if(e)return function(e){const t=e.reactionsDefault&&as(e.reactionsDefault);return{expiresAt:e.expires,gifSearchUsername:e.gifSearchUsername,defaultReaction:t,maxGroupSize:e.chatSizeMax,autologinToken:e.autologinToken}}(e)}async function Vu(e){const t=await uo(new ue.Api.help.GetPeerColors({hash:e}));if(!t)return;const n=function(e){if(e instanceof ue.Api.help.PeerColors)return yt(e.colors,(e=>[e.colorId,{isHidden:e.hidden,colors:e.colors&&xa(e.colors),darkColors:e.darkColors&&xa(e.darkColors)}]))}(t);return n?{colors:n,hash:t instanceof ue.Api.help.PeerColors?t.hash:void 0}:void 0}async function Nu(e){const t=await uo(new ue.Api.help.GetTimezonesList({hash:e}));if(t&&!(t instanceof ue.Api.help.TimezonesListNotModified))return{timezones:t.timezones.map(Va),hash:t.hash}}async function Fu(e){let{langCode:t="en"}=e;const n=await uo(new ue.Api.help.GetCountriesList({langCode:t}));if(n instanceof ue.Api.help.CountriesList)return function(e){const t=e.filter((e=>{let{hidden:t}=e;return!t}));return{phoneCodes:t.map((e=>e.countryCodes.map((t=>Ra(e,t))))).flat().sort(((e,t)=>e.name?e.name.localeCompare(t.name):e.defaultName.localeCompare(t.defaultName))),general:t.map((e=>Ra(e,e.countryCodes[0]))).sort(((e,t)=>e.name?e.name.localeCompare(t.name):e.defaultName.localeCompare(t.defaultName)))}}(n.countries)}async function qu(){const e=await uo(new ue.Api.account.GetGlobalPrivacySettings);if(e)return{shouldArchiveAndMuteNewNonContact:Boolean(e.archiveAndMuteNewNoncontactPeers),shouldHideReadMarks:Boolean(e.hideReadMarks),shouldNewNonContactPeersRequirePremium:Boolean(e.newNoncontactPeersRequirePremium)}}async function Gu(e){let{shouldArchiveAndMuteNewNonContact:t,shouldHideReadMarks:n,shouldNewNonContactPeersRequirePremium:s}=e;const a=await uo(new ue.Api.account.SetGlobalPrivacySettings({settings:new ue.Api.GlobalPrivacySettings({...t&&{archiveAndMuteNewNoncontactPeers:!0},...n&&{hideReadMarks:!0},...s&&{newNoncontactPeersRequirePremium:!0}})}));if(a)return{shouldArchiveAndMuteNewNonContact:Boolean(a.archiveAndMuteNewNoncontactPeers),shouldHideReadMarks:Boolean(a.hideReadMarks),shouldNewNonContactPeersRequirePremium:Boolean(a.newNoncontactPeersRequirePremium)}}function Hu(e){let{chatId:t,accessHash:n,username:s,isActive:a}=e;return uo(t?new ue.Api.channels.ToggleUsername({channel:xt(t,n),username:s,active:a}):new ue.Api.account.ToggleUsername({username:s,active:a}))}function Ou(e){let{chatId:t,accessHash:n,usernames:s}=e;return uo(t?new ue.Api.channels.ReorderUsernames({channel:xt(t,n),order:s}):new ue.Api.account.ReorderUsernames({order:s}))}const Lu={EMAIL_UNCONFIRMED:"Email unconfirmed",EMAIL_HASH_EXPIRED:"Email hash expired",NEW_SALT_INVALID:"The new salt is invalid",NEW_SETTINGS_INVALID:"The new password settings are invalid",CODE_INVALID:"Invalid Code",PASSWORD_HASH_INVALID:"Invalid Password",PASSWORD_MISSING:"You must enable 2FA before executing this operation"},ju={};async function Wu(){const e=await uo(new ue.Api.account.GetPassword);if(!e)return;const{hint:t,hasPassword:n}=e;return{hint:t,hasPassword:n}}function zu(e){return Xe({"@type":"updateTwoFaStateWaitCode",length:e}),new Promise(((e,t)=>{ju.resolve=e,ju.reject=t}))}function Ku(e,t){return function(e,t){return to.getTmpPassword(e,t)}(e,t)}function $u(e){try{return t={currentPassword:e,onPasswordCodeError:tl},to.getCurrentPassword(t)}catch(e){return void tl(e)}var t}async function Ju(e){try{return await go({isCheckPassword:!0,currentPassword:e}),!0}catch(e){return el(e),!1}}async function Qu(e){try{return await go({currentPassword:e}),!0}catch(e){return el(e),!1}}async function Xu(e,t,n,s){try{return await go({currentPassword:e,newPassword:t,hint:n,email:s,emailCodeCallback:zu,onEmailCodeError:el}),!0}catch(e){return el(e),!1}}async function Yu(e,t){try{return await go({currentPassword:e,newPassword:e,email:t,emailCodeCallback:zu,onEmailCodeError:el}),!0}catch(e){return el(e),!1}}function Zu(e){ju.resolve(e)}function el(e){let t;if(e instanceof ue.errors.FloodWaitError){const n=Math.ceil(Number(e.seconds)/60/60);t="Too many attempts. Try again in "+(n>1?`${n} hours`:"an hour")}else t=Lu[e.message];t||(t="Unexpected Error",c&&console.error(e)),Xe({"@type":"updateTwoFaError",message:t})}function tl(e){let t;if(e instanceof ue.errors.PasswordModifiedError){const n=Math.ceil(Number(e.seconds)/60/60);t="Too many attempts. Try again in "+(n>1?`${n} hours`:"an hour")}else t=Lu[e.message];t||(t="Unexpected Error",c&&console.error(e)),Xe({"@type":"updatePasswordError",error:t})}async function nl(e){let{chatId:t,accessHash:n,messageId:s,data:a,isGame:i}=e;const o=await uo(new ue.Api.messages.GetBotCallbackAnswer({peer:Dt(t,n),msgId:s,data:a?$e(a):void 0,game:i||void 0}));return o?ve(o):void 0}async function sl(){const e=await uo(new ue.Api.contacts.GetTopPeers({botsInline:!0}));if(e instanceof ue.Api.contacts.TopPeers)return{ids:e.users.map(Os).filter(Boolean).map((e=>{let{id:t}=e;return t}))}}async function al(){const e=await uo(new ue.Api.contacts.GetTopPeers({botsApp:!0}));if(e instanceof ue.Api.contacts.TopPeers)return{ids:e.users.map(Os).filter(Boolean).map((e=>{let{id:t}=e;return t}))}}async function il(e){let{username:t}=e;const n=await uo(new ue.Api.contacts.ResolveUsername({username:t}));if(n&&n.users[0]instanceof ue.Api.User&&n.users[0].bot&&n.users[0].botInlinePlaceholder)return We(n.users[0]),{user:Os(n.users[0]),chat:Xs(n.users[0])}}async function ol(e){let{bot:t,chat:n,query:s,offset:a=""}=e;const i=await uo(new ue.Api.messages.GetInlineBotResults({bot:Dt(t.id,t.accessHash),peer:Dt(n.id,n.accessHash),query:s,offset:a}));var o,r,c,d,u,l;if(i)return{isGallery:Boolean(i.gallery),help:t.botPlaceholder,nextOffset:(u=t.usernames[0].username,l=i.nextOffset,"gif"===u&&"0"===l?"":l),switchPm:(d=i.switchPm,d?_t(d,["text","startParam"]):void 0),switchWebview:(c=i.switchWebview,c?_t(c,["text","url"]):void 0),results:(o=String(i.queryId),r=i.results,r.map((e=>e instanceof ue.Api.BotInlineMediaResult?(e.document instanceof ue.Api.Document&&Oe(e.document),e.photo instanceof ue.Api.Photo&&He(e.photo),function(e,t){const{id:n,type:s,title:a,description:i,photo:o,document:r}=e;return{id:n,queryId:t,type:s,title:a,description:i,..."sticker"===s&&r instanceof ue.Api.Document&&{sticker:Un(r)},...o instanceof ue.Api.Photo&&{photo:Cn(o)},..."gif"===s&&r instanceof ue.Api.Document&&{gif:On(r)},..."video"===s&&r instanceof ue.Api.Document&&{thumbnail:An(r.thumbs)}}}(e,o)):(e.thumb&&ze(e.thumb),function(e,t){const{id:n,type:s,title:a,description:i,url:o,thumb:r}=e;return{id:n,queryId:t,type:s,title:a,description:i,url:o,webThumbnail:Xn(r)}}(e,o))))),cacheTime:i.cacheTime}}async function rl(e){let{chat:t,replyInfo:n,resultId:s,queryId:a,sendAs:i,isSilent:o,scheduleDate:r}=e;const c=Gt();await uo(new ue.Api.messages.SendInlineBotResult({clearDraft:!0,randomId:c,queryId:_e()(a),peer:Dt(t.id,t.accessHash),id:s,scheduleDate:r,replyTo:n&&dn(n),...o&&{silent:!0},...i&&{sendAs:Dt(i.id,i.accessHash)}}))}async function cl(e){let{bot:t,startParam:n}=e;const s=Gt();await uo(new ue.Api.messages.StartBot({bot:Dt(t.id,t.accessHash),peer:Dt(t.id,t.accessHash),randomId:s,startParam:n}))}async function dl(e){let{isSilent:t,peer:n,bot:s,url:a,startParam:i,replyInfo:o,theme:r,sendAs:c,isFromBotMenu:d}=e;const u=await uo(new ue.Api.messages.RequestWebView({silent:t||void 0,peer:Dt(n.id,n.accessHash),bot:Dt(s.id,s.accessHash),url:a,startParam:i,themeParams:r?Yt(r):void 0,fromBotMenu:d||void 0,platform:W,replyTo:o&&dn(o),...c&&{sendAs:Dt(c.id,c.accessHash)}}));if(u instanceof ue.Api.WebViewResultUrl)return{url:u.url,queryId:u.queryId?.toString()}}async function ul(e){let{peer:t,bot:n,startParam:s,theme:a}=e;const i=await uo(new ue.Api.messages.RequestMainWebView({peer:Dt(t.id,t.accessHash),bot:Dt(n.id,n.accessHash),startParam:s,themeParams:a?Yt(a):void 0,platform:W}));if(i instanceof ue.Api.WebViewResultUrl)return{url:i.url,queryId:i.queryId?.toString()}}async function ll(e){let{bot:t,url:n,theme:s,startParam:a,isFromSwitchWebView:i,isFromSideMenu:o}=e;const r=await uo(new ue.Api.messages.RequestSimpleWebView({url:n,bot:Dt(t.id,t.accessHash),themeParams:s?Yt(s):void 0,platform:W,startParam:a,fromSwitchWebview:i||void 0,fromSideMenu:o||void 0}));return r?.url}async function pl(e){let{bot:t,appName:n}=e;const s=await uo(new ue.Api.messages.GetBotApp({app:new ue.Api.InputBotAppShortName({botId:xt(t.id,t.accessHash),shortName:n})}));if(s&&!(s instanceof ue.Api.BotAppNotModified))return function(e){const{app:t,inactive:n,requestWriteAccess:s}=e,a=function(e){if(e instanceof ue.Api.BotAppNotModified)return;const{id:t,accessHash:n,title:s,description:a,shortName:i,photo:o,document:r}=e,c=o instanceof ue.Api.Photo?Cn(o):void 0,d=r instanceof ue.Api.Document?jn(r):void 0;return{id:t.toString(),accessHash:n.toString(),title:s,description:a,shortName:i,photo:c,document:d}}(t);if(a)return{...a,isInactive:n,shouldRequestWriteAccess:s}}(s)}async function fl(e){let{peer:t,app:n,startParam:s,theme:a,isWriteAllowed:i}=e;const o=await uo(new ue.Api.messages.RequestAppWebView({peer:Dt(t.id,t.accessHash),app:cn(n),startParam:s,themeParams:a?Yt(a):void 0,platform:W,writeAllowed:i||void 0}));return o?.url}function gl(e){let{isSilent:t,peer:n,bot:s,queryId:a,replyInfo:i,sendAs:o}=e;return uo(new ue.Api.messages.ProlongWebView({silent:t||void 0,peer:Dt(n.id,n.accessHash),bot:Dt(s.id,s.accessHash),queryId:_e()(a),replyTo:i&&dn(i),...o&&{sendAs:Dt(o.id,o.accessHash)}}))}async function hl(e){let{bot:t,buttonText:n,data:s}=e;const a=Gt();await uo(new ue.Api.messages.SendWebViewData({bot:Dt(t.id,t.accessHash),buttonText:n,data:s,randomId:a}))}async function ml(e){let{hash:t}=e;const n=await uo(new ue.Api.messages.GetAttachMenuBots({hash:t?_e()(t):void 0}));if(n instanceof ue.Api.AttachMenuBots)return{hash:n.hash.toString(),bots:mt(n.bots.map(Ds),"id")}}async function yl(e){let{bot:t}=e;const n=await uo(new ue.Api.messages.GetAttachMenuBot({bot:Dt(t.id,t.accessHash)}));if(n instanceof ue.Api.AttachMenuBotsBot)return{bot:Ds(n.bot)}}function _l(e){let{bot:t,isWriteAllowed:n,isEnabled:s}=e;return uo(new ue.Api.messages.ToggleBotInAttachMenu({bot:Dt(t.id,t.accessHash),writeAllowed:n||void 0,enabled:s}))}async function bl(e){let{chat:t,buttonId:n,messageId:s}=e;const a=await uo(new ue.Api.messages.RequestUrlAuth({peer:Dt(t.id,t.accessHash),buttonId:n,msgId:s}));if(!a)return;const i=Ta(a);return"request"===i?.type&&Xe({"@type":"updateUser",id:i.bot.id,user:i.bot}),i}async function wl(e){let{chat:t,messageId:n,buttonId:s,isWriteAllowed:a}=e;const i=await uo(new ue.Api.messages.AcceptUrlAuth({peer:Dt(t.id,t.accessHash),msgId:n,buttonId:s,writeAllowed:a||void 0}));if(!i)return;const o=Ta(i);return"request"===o?.type&&Xe({"@type":"updateUser",id:o.bot.id,user:o.bot}),o}async function vl(e){let{url:t}=e;const n=await uo(new ue.Api.messages.RequestUrlAuth({url:t}));if(!n)return;const s=Ta(n);return"request"===s?.type&&Xe({"@type":"updateUser",id:s.bot.id,user:s.bot}),s}async function Sl(e){let{url:t,isWriteAllowed:n}=e;const s=await uo(new ue.Api.messages.AcceptUrlAuth({url:t,writeAllowed:n||void 0}));if(!s)return;const a=Ta(s);return"request"===a?.type&&Xe({"@type":"updateUser",id:a.bot.id,user:a.bot}),a}function Il(e){let{bot:t}=e;return uo(new ue.Api.bots.CanSendMessage({bot:xt(t.id,t.accessHash)}))}function Al(e){let{bot:t}=e;return uo(new ue.Api.bots.AllowSendMessage({bot:xt(t.id,t.accessHash)}),{shouldReturnTrue:!0})}async function Pl(e){let{bot:t,customMethod:n,parameters:s}=e;try{const e=await uo(new ue.Api.bots.InvokeWebViewCustomMethod({bot:Dt(t.id,t.accessHash),params:new ue.Api.DataJSON({data:s}),customMethod:n}),{shouldThrow:!0});return{result:JSON.parse(e.data)}}catch(e){return{error:e.message}}}async function Cl(e){let{bot:t}=e;const n=await uo(new ue.Api.bots.GetPreviewMedias({bot:Dt(t.id,t.accessHash)}));if(n)return n.map((e=>({content:Hn(e.media),date:e.date})))}function Ml(e){let{bot:t,langCode:n,name:s,about:a,description:i}=e;return uo(new ue.Api.bots.SetBotInfo({bot:Dt(t.id,t.accessHash),langCode:n,name:s||"",about:a||"",description:i||""}),{shouldReturnTrue:!0})}async function Rl(e){let{offset:t="",limit:n}=e;const s=await uo(new ue.Api.bots.GetPopularAppBots({offset:t,limit:n}));if(s)return{peerIds:s.users.map(Os).filter(Boolean).map((e=>{let{id:t}=e;return t})),nextOffset:s.nextOffset}}var kl=n(48287).hp;async function Tl(e){let{call:t}=e;const n=await uo(new ue.Api.phone.GetGroupCall({call:en(t)}));if(n)return{groupCall:gn(n.call)}}function El(e){let{call:t}=e;return uo(new ue.Api.phone.DiscardGroupCall({call:en(t)}),{shouldReturnTrue:!0})}function Bl(e){let{call:t,participant:n,muted:s,presentationPaused:a,videoStopped:i,videoPaused:o,volume:r,raiseHand:c}=e;return uo(new ue.Api.phone.EditGroupCallParticipant({call:en(t),participant:Dt(n.id,n.accessHash),...void 0!==i&&{videoStopped:i},...void 0!==o&&{videoPaused:o},...void 0!==s&&{muted:s},...void 0!==a&&{presentationPaused:a},...void 0!==c&&{raiseHand:c},...void 0!==r&&{volume:r}}),{shouldReturnTrue:!0})}function Dl(e){let{groupCall:t,title:n}=e;return uo(new ue.Api.phone.EditGroupCallTitle({title:n,call:en(t)}),{shouldReturnTrue:!0})}async function Ul(e){let{call:t,canSelfUnmute:n}=e;const s=await uo(new ue.Api.phone.ExportGroupCallInvite({canSelfUnmute:n||void 0,call:en(t)}));if(s)return s.link}async function xl(e){let{call:t,offset:n}=e;const s=await uo(new ue.Api.phone.GetGroupParticipants({call:en(t),ids:[],sources:[],offset:n||"",limit:w}));s&&Xe({"@type":"updateGroupCallParticipants",groupCallId:t.id,participants:s.participants.map(ln),nextOffset:s.nextOffset})}function Vl(e){let{call:t,isPageUnload:n}=e;const s=new ue.Api.phone.LeaveGroupCall({call:en(t)});n?lo(s):uo(s,{shouldReturnTrue:!0})}async function Nl(e){let{call:t,inviteHash:n,params:s}=e;const a=await uo(new ue.Api.phone.JoinGroupCall({call:en(t),joinAs:new ue.Api.InputPeerSelf,muted:!0,videoStopped:!0,params:new ue.Api.DataJSON({data:JSON.stringify(s)}),inviteHash:n}),{shouldRetryOnTimeout:!0,abortControllerGroup:"call"});if(a&&a instanceof ue.Api.Updates){const e=a.updates.find((e=>e instanceof ue.Api.UpdateGroupCall));if(!(e instanceof ue.Api.UpdateGroupCall))return;return gn(e.call)}}async function Fl(e){let{peer:t}=e;const n=Ot(),s=await uo(new ue.Api.phone.CreateGroupCall({peer:Dt(t.id,t.accessHash),randomId:n}));if(s&&s instanceof ue.Api.Updates){const e=s.updates[0];if(e instanceof ue.Api.UpdateGroupCall)return gn(e.call)}}function ql(e){let{call:t,params:n}=e;return uo(new ue.Api.phone.JoinGroupCallPresentation({call:en(t),params:new ue.Api.DataJSON({data:JSON.stringify(n)})}),{shouldReturnTrue:!0})}function Gl(e){let{call:t,subscribed:n}=e;return uo(new ue.Api.phone.ToggleGroupCallStartSubscription({call:en(t),subscribed:n}),{shouldReturnTrue:!0,shouldIgnoreErrors:!0})}function Hl(e){let{call:t}=e;return uo(new ue.Api.phone.LeaveGroupCallPresentation({call:en(t)}),{shouldReturnTrue:!0})}async function Ol(){const e=await uo(new ue.Api.messages.GetDhConfig({}));if(e&&!(e instanceof ue.Api.messages.DhConfigNotModified))return{g:e.g,p:Array.from(e.p),random:Array.from(e.random)}}function Ll(e){let{call:t,isBusy:n,isPageUnload:s}=e;const a=new ue.Api.phone.DiscardCall({peer:tn(t),reason:n?new ue.Api.PhoneCallDiscardReasonBusy:new ue.Api.PhoneCallDiscardReasonHangup});s?lo(a):uo(a,{shouldReturnTrue:!0})}async function jl(e){let{user:t,gAHash:n,isVideo:s}=e;const a=await uo(new ue.Api.phone.RequestCall({randomId:Ot(),userId:Dt(t.id,t.accessHash),gAHash:kl.from(n),...s&&{video:!0},protocol:bn()}));if(a)return Xe({"@type":"updatePhoneCall",call:hn(a.phoneCall)}),!0}function Wl(e){let{call:t,rating:n,comment:s}=e;return uo(new ue.Api.phone.SetCallRating({rating:n,peer:tn(t),comment:s}),{shouldReturnTrue:!0})}function zl(e){let{call:t}=e;return uo(new ue.Api.phone.ReceivedCall({peer:tn(t)}))}async function Kl(e){let{call:t,gB:n}=e;const s=await uo(new ue.Api.phone.AcceptCall({peer:tn(t),gB:kl.from(n),protocol:bn()}));if(s)return t=hn(s.phoneCall),Xe({"@type":"updatePhoneCall",call:t}),!0}async function $l(e){let{call:t,gA:n,keyFingerprint:s}=e;const a=await uo(new ue.Api.phone.ConfirmCall({peer:tn(t),gA:kl.from(n),keyFingerprint:_e()(s),protocol:bn()}));if(a)return t=hn(a.phoneCall),Xe({"@type":"updatePhoneCall",call:t}),!0}function Jl(e){let{data:t,call:n}=e;return uo(new ue.Api.phone.SendSignalingData({data:kl.from(t),peer:tn(n)}))}function Ql(e){let{chat:t,emoticon:n}=e;return uo(new ue.Api.messages.SetTyping({peer:Dt(t.id,t.accessHash),action:new ue.Api.SendMessageEmojiInteractionSeen({emoticon:n})}),{abortControllerChatId:t.id})}function Xl(e){let{chat:t,emoticon:n,messageId:s,timestamps:a}=e;return uo(new ue.Api.messages.SetTyping({peer:Dt(t.id,t.accessHash),action:new ue.Api.SendMessageEmojiInteraction({emoticon:n,msgId:s,interaction:new ue.Api.DataJSON({data:JSON.stringify({v:1,a:a.map((e=>({t:e,i:1})))})})})}),{abortControllerChatId:t.id})}async function Yl(){const e=await uo(new ue.Api.messages.GetAvailableReactions({}));if(e&&!(e instanceof ue.Api.messages.AvailableReactionsNotModified))return e.reactions.forEach((e=>{e.staticIcon instanceof ue.Api.Document&&(Te.documents[String(e.staticIcon.id)]=e.staticIcon),e.selectAnimation instanceof ue.Api.Document&&(Te.documents[String(e.selectAnimation.id)]=e.selectAnimation),e.aroundAnimation instanceof ue.Api.Document&&(Te.documents[String(e.aroundAnimation.id)]=e.aroundAnimation),e.appearAnimation instanceof ue.Api.Document&&(Te.documents[String(e.appearAnimation.id)]=e.appearAnimation),e.centerIcon instanceof ue.Api.Document&&(Te.documents[String(e.centerIcon.id)]=e.centerIcon)})),e.reactions.map(os)}async function Zl(){const e=await uo(new ue.Api.messages.GetAvailableEffects({}));if(!e||e instanceof ue.Api.messages.AvailableEffectsNotModified)return;const t=new Map(e.documents.map((e=>[String(e.id),e])));e.documents.forEach((e=>{e instanceof ue.Api.Document&&(Te.documents[String(e.id)]=e)}));const n=e.effects.map(rs),s=[],a=[];for(const e of n)if(e.effectAnimationId){const n=t.get(e.effectStickerId),s=n&&Un(n,!1,e.isPremium);s&&a.push(s)}else{const t=Un(Te.documents[e.effectStickerId]);t&&s.push(t)}return{effects:n,emojis:a,stickers:s}}function ep(e){let{chat:t,messageId:n,reactions:s,shouldAddToRecent:a}=e;return uo(new ue.Api.messages.SendReaction({reaction:s?.map((e=>an(e))),peer:Dt(t.id,t.accessHash),msgId:n,...a&&{addToRecent:!0}}),{shouldReturnTrue:!0,shouldThrow:!0})}function tp(e){let{chat:t,messageId:n,count:s,isPrivate:a}=e;return uo(new ue.Api.messages.SendPaidReaction({peer:Dt(t.id,t.accessHash),msgId:n,randomId:Ht(),count:s,private:a||void 0}),{shouldReturnTrue:!0,shouldThrow:!0})}function np(e){let{ids:t,chat:n}=e;It(t,S).forEach((e=>{uo(new ue.Api.messages.GetMessagesReactions({id:e,peer:Dt(n.id,n.accessHash)}),{shouldReturnTrue:!0,abortControllerChatId:n.id})}))}async function sp(e){let{chat:t,messageId:n,reaction:s,offset:a}=e;const i=await uo(new ue.Api.messages.GetMessageReactionsList({peer:Dt(t.id,t.accessHash),id:n,...s&&{reaction:an(s)},limit:C,...a&&{offset:a}}));if(!i)return;const{nextOffset:o,reactions:r,count:c}=i;return{nextOffset:o,reactions:r.map(ss).filter(Boolean),count:c}}function ap(e){let{reaction:t}=e;return uo(new ue.Api.messages.SetDefaultReaction({reaction:an(t)}))}async function ip(e){let{hash:t="0"}=e;const n=await uo(new ue.Api.messages.GetTopReactions({limit:A,hash:_e()(t)}));if(n&&!(n instanceof ue.Api.messages.ReactionsNotModified))return{hash:String(n.hash),reactions:n.reactions.map((e=>as(e))).filter(Boolean)}}async function op(e){let{hash:t="0"}=e;const n=await uo(new ue.Api.messages.GetRecentReactions({limit:P,hash:_e()(t)}));if(n&&!(n instanceof ue.Api.messages.ReactionsNotModified))return{hash:String(n.hash),reactions:n.reactions.map((e=>as(e))).filter(Boolean)}}function rp(){return uo(new ue.Api.messages.ClearRecentReactions)}async function cp(e){let{hash:t="0"}=e;const n=await uo(new ue.Api.messages.GetDefaultTagReactions({hash:_e()(t)}));if(n&&!(n instanceof ue.Api.messages.ReactionsNotModified))return{hash:String(n.hash),reactions:n.reactions.map((e=>as(e))).filter(Boolean)}}async function dp(e){let{hash:t="0"}=e;const n=await uo(new ue.Api.messages.GetSavedReactionTags({hash:_e()(t)}));if(n&&!(n instanceof ue.Api.messages.SavedReactionTagsNotModified))return{hash:String(n.hash),tags:n.tags.map(is).filter(Boolean)}}function up(e){let{reaction:t,title:n}=e;return uo(new ue.Api.messages.UpdateSavedReactionTag({reaction:an(t),title:n}),{shouldReturnTrue:!0})}const lp=10**9;function pp(e){return e instanceof ue.Api.PostInteractionCountersMessage?{msgId:e.msgId,forwardsCount:e.forwards,viewsCount:e.views,reactionsCount:e.reactions}:e instanceof ue.Api.PostInteractionCountersStory?{storyId:e.storyId,reactionsCount:e.reactions,viewsCount:e.views,forwardsCount:e.forwards}:void 0}function fp(e){return{viewsGraph:mp(e.viewsGraph),reactionsGraph:mp(e.reactionsByEmotionGraph)}}function gp(e){if(e&&"messages"in e)return e.messages.map((t=>wp(t,e.chats)))}function hp(e){if(e&&"forwards"in e)return e.forwards.map((t=>{if(t instanceof ue.Api.PublicForwardMessage)return wp(t.message,e.chats);const{peer:n,story:s}=t;return{peerId:ge(n),storyId:s.id,viewsCount:s.views?.viewsCount||0,reactionsCount:s.views?.reactionsCount||0}}))}function mp(e,t,n,s){if(e.error)return;const a=JSON.parse(e.json.data),[i,...o]=a.columns,r=a.y_scaled;return{type:t?"area":a.types.y0,zoomToken:e.zoomToken,labelFormatter:a.xTickFormatter,tooltipFormatter:a.xTooltipFormatter,labels:i.slice(1),hideCaption:!a.subchart.show,hasSecondYAxis:r,isStacked:a.stacked&&!r,isPercentage:t,isCurrency:n,currencyRate:s,datasets:o.map((e=>{const t=e[0];return{name:a.names[t],color:(n=a.colors[t],n.substring(n.indexOf("#"))),values:e.slice(1)};var n})),...yp(a.subchart.defaultZoom,i.slice(1))}}function yp(e,t){const[n,s]=e;let a=0,i=t.length-1;return t.forEach(((e,t)=>{!a&&e>=n&&(a=t),!i&&e>=s&&(i=t)})),{minimapRange:{begin:Math.max(0,a/(t.length-1)),end:Math.min(1,i/(t.length-1))},labelFromIndex:a,labelToIndex:i}}function _p(e){let{current:t,previous:n}=e;const s=t-n;return{current:t,change:s,...n&&{percentage:(s?Math.abs(s)/n*100:0).toFixed(2)}}}function bp(e){return{part:e.part,total:e.total,percentage:(e.part/e.total*100).toFixed(2)}}function wp(e,t){const n=ge(e.peerId),s=t.find((e=>fe(e.id,"channel")===n)),a=s&&"photo"in s&&s.photo instanceof ue.Api.Photo?s.photo:void 0;return{messageId:e.id,views:e.views,title:s.title,chat:{id:n,type:"chatTypeChannel",title:s.title,usernames:kn(s),avatarPhotoId:a&&Dn(a),hasVideoAvatar:Boolean(a?.videoSizes)}}}function vp(e){let{currentBalance:t,availableBalance:n,overallRevenue:s,withdrawalEnabled:a}=e;return{currentBalance:Number(t)/lp,availableBalance:Number(n)/lp,overallRevenue:Number(s)/lp,isWithdrawalEnabled:a}}async function Sp(e){let{chat:t,dcId:n}=e;const s=await uo(new ue.Api.stats.GetBroadcastStats({channel:xt(t.id,t.accessHash)}),{dcId:n});var a;if(s)return{stats:(a=s,{growthGraph:mp(a.growthGraph),followersGraph:mp(a.followersGraph),muteGraph:mp(a.muteGraph),topHoursGraph:mp(a.topHoursGraph),languagesGraph:a.languagesGraph.token,viewsBySourceGraph:a.viewsBySourceGraph.token,newFollowersBySourceGraph:a.newFollowersBySourceGraph.token,interactionsGraph:a.interactionsGraph.token,reactionsByEmotionGraph:a.reactionsByEmotionGraph.token,storyInteractionsGraph:a.storyInteractionsGraph.token,storyReactionsByEmotionGraph:a.storyReactionsByEmotionGraph.token,followers:_p(a.followers),viewsPerPost:_p(a.viewsPerPost),sharesPerPost:_p(a.sharesPerPost),enabledNotifications:bp(a.enabledNotifications),reactionsPerPost:_p(a.reactionsPerPost),viewsPerStory:_p(a.viewsPerStory),sharesPerStory:_p(a.sharesPerStory),reactionsPerStory:_p(a.reactionsPerStory),recentPosts:a.recentPostsInteractions.map(pp).filter(Boolean)}),users:[]}}async function Ip(e){let{chat:t,dcId:n}=e;const s=await uo(new ue.Api.stats.GetBroadcastRevenueStats({channel:xt(t.id,t.accessHash)}),{dcId:n});var a;if(s)return{topHoursGraph:mp((a=s).topHoursGraph),revenueGraph:mp(a.revenueGraph,void 0,!0,a.usdRate),balances:vp(a.balances),usdRate:a.usdRate}}async function Ap(e){let{chat:t,dcId:n}=e;const s=await uo(new ue.Api.stats.GetMegagroupStats({channel:xt(t.id,t.accessHash)}),{dcId:n});var a,i;if(s)return{stats:(a=s,{growthGraph:mp(a.growthGraph),membersGraph:mp(a.membersGraph),topHoursGraph:mp(a.topHoursGraph),languagesGraph:a.languagesGraph.token,messagesGraph:a.messagesGraph.token,actionsGraph:a.actionsGraph.token,period:(i=a.period,{maxDate:i.maxDate,minDate:i.minDate}),members:_p(a.members),viewers:_p(a.viewers),messages:_p(a.messages),posters:_p(a.posters)})}}async function Pp(e){let{chat:t,messageId:n,dcId:s}=e;const a=await uo(new ue.Api.stats.GetMessageStats({channel:xt(t.id,t.accessHash),msgId:n}),{dcId:s});if(a)return fp(a)}async function Cp(e){let{chat:t,messageId:n,dcId:s,offset:a}=e;const i=await uo(new ue.Api.stats.GetMessagePublicForwards({channel:xt(t.id,t.accessHash),msgId:n,offset:a,limit:I}),{dcId:s});if(i)return{forwards:gp(i),count:i.count,nextOffset:i.nextOffset}}async function Mp(e){let{token:t,x:n,isPercentage:s,dcId:a}=e;const i=await uo(new ue.Api.stats.LoadAsyncGraph({token:t,...n&&{x:_e()(n)}}),{dcId:a});if(i)return mp(i,s)}async function Rp(e){let{chat:t,storyId:n,dcId:s}=e;const a=await uo(new ue.Api.stats.GetStoryStats({peer:Dt(t.id,t.accessHash),id:n}),{dcId:s});if(a)return fp(a)}async function kp(e){let{chat:t,storyId:n,dcId:s,offset:a}=e;const i=await uo(new ue.Api.stats.GetStoryPublicForwards({peer:Dt(t.id,t.accessHash),id:n,offset:a,limit:I}),{dcId:s});if(i)return{publicForwards:hp(i),count:i.count,nextOffset:i.nextOffset}}async function Tp(e){let{chat:t,currentPassword:n}=e;try{const e=await $u(n);if(!e||"error"in e)return;const s=await uo(new ue.Api.stats.GetBroadcastRevenueWithdrawalUrl({channel:xt(t.id,t.accessHash),password:e}),{shouldThrow:!0});if(!s)return;return s}catch(e){tl(e)}}var Ep=n(21051),Bp=n.n(Ep),Dp=n(51369),Up=n.n(Dp),xp=n(35897),Vp=n.n(xp),Np=n(48287).hp;function Fp(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}let qp;class Gp{constructor(e){this.isOutgoing=e,Fp(this,"state",void 0),Fp(this,"seq",0),Fp(this,"gA",void 0),Fp(this,"gB",void 0),Fp(this,"p",void 0),Fp(this,"random",void 0),Fp(this,"waitForState",void 0),Fp(this,"resolveState",void 0),this.waitForState=new Promise((e=>{this.resolveState=e}))}async requestCall(e){let{p:t,g:n,random:s}=e;const a=kt().readBigIntFromBuffer(Np.from(t),!1),i=kt().readBigIntFromBuffer(Np.from(s),!1),o=kt().modExp(_e()(n),i,a);this.gA=o,this.p=a,this.random=i;const r=await kt().sha256(kt().getByteArray(o));return Array.from(r)}acceptCall(e){let{p:t,g:n,random:s}=e;const a=kt().readBigIntFromBuffer(t,!1),i=kt().readBigIntFromBuffer(s,!1),o=kt().modExp(_e()(n),i,a);return this.gB=o,this.p=a,this.random=i,Array.from(kt().getByteArray(o))}async confirmCall(e,t,n){this.isOutgoing?this.gB=kt().readBigIntFromBuffer(Np.from(e),!1):this.gA=kt().readBigIntFromBuffer(Np.from(e),!1);const s=kt().modExp(this.isOutgoing?this.gB:this.gA,this.random,this.p),a=await kt().sha1(kt().getByteArray(s)),i=kt().readBigIntFromBuffer(a.slice(-8).reverse(),!1),o=await async function(e,t,n,s){const a=await kt().sha256(Np.concat([new Uint8Array(e),new Uint8Array(t)])),i=[],o=s.length-1;for(let e=0;e!==a.byteLength;e+=8){const t=(r=a.subarray(e,e+8),_e()(r[0]).and(127).shiftLeft(56).or(_e()(r[1]).shiftLeft(48)).or(_e()(r[2]).shiftLeft(40)).or(_e()(r[3]).shiftLeft(32)).or(_e()(r[4]).shiftLeft(24)).or(_e()(r[5]).shiftLeft(16)).or(_e()(r[6]).shiftLeft(8)).or(_e()(r[7]))).modPow(1,o).toJSNumber(),c=s[t],d=s[t+1]-c;i.push(String.fromCharCode(...n.subarray(c,c+d)))}var r;return i.join("")}(kt().getByteArray(s),kt().getByteArray(this.gA),t,n),r=new(Bp());return await r.setKey(kt().getByteArray(s)),this.state=new(Vp())(r,new(Up()),!0,this.isOutgoing),this.resolveState(),{gA:Array.from(kt().getByteArray(this.gA)),keyFingerprint:i.toString(),emojis:o}}async encode(e){if(!this.state)return;const t=new Uint32Array(1);t[0]=this.seq++;const n=await this.state.encryptMessageData(Np.concat([kt().convertToLittle(t),Np.from(e)]));return Array.from(n)}async decode(e){if(!this.state)return this.waitForState.then((()=>this.decode(e)));const t=await this.state.decryptMessageData(Np.from(e));return JSON.parse(t.toString())}}function Hp(e){qp=new Gp(...e)}function Op(){qp=void 0}function Lp(e){return qp.encode(...e)}async function jp(e){if(qp)return await qp.decode(...e)}function Wp(e){return qp.confirmCall(...e)}function zp(e){return qp.acceptCall(...e)}function Kp(e){return qp.requestCall(...e)}async function $p(e){let{stateHash:t,isFirstRequest:n=!1,isHidden:s=!1}=e;const a=n?s?{hidden:!0}:{}:{state:t,next:!0,...s&&{hidden:!0}},i=await uo(new ue.Api.stories.GetAllStories(a));if(!i)return;if(i instanceof ue.Api.stories.AllStoriesNotModified)return{state:i.state,stealthMode:ks(i.stealthMode)};const o=i.peerStories.reduce(((e,t)=>{const n=ge(t.peer),s=function(e){const t=ge(e.peer);return yt(e.stories,(e=>[e.id,Cs(t,e)]))}(t),{profileIds:a,orderedIds:i,lastUpdatedAt:o}=Object.values(s).reduce(((e,t)=>("isInProfile"in t&&t.isInProfile&&e.profileIds.push(t.id),"isDeleted"in t||(e.orderedIds.push(t.id),e.lastUpdatedAt=Math.max(t.date,e.lastUpdatedAt||0)),e)),{profileIds:[],orderedIds:[],lastUpdatedAt:void 0});return 0===i.length||(e[n]={byId:s,orderedIds:i,profileIds:a,lastUpdatedAt:o,lastReadId:t.maxReadId}),e}),{});return i.peerStories.forEach((e=>e.stories.forEach((t=>Ge(t,ge(e.peer)))))),{peerStories:o,hasMore:i.hasMore,state:i.state,stealthMode:ks(i.stealthMode)}}async function Jp(e){let{peer:t}=e;const n=await uo(new ue.Api.stories.GetPeerStories({peer:Dt(t.id,t.accessHash)}));if(!n)return;const s=yt(n.stories.stories,(e=>[e.id,Cs(t.id,e)]));return n.stories.stories.forEach((e=>Ge(e,t.id))),{stories:s,lastReadStoryId:n.stories.maxReadId}}function Qp(e){let{peer:t,offsetId:n}=e;return pf({method:new ue.Api.stories.GetPinnedStories({peer:Dt(t.id,t.accessHash),offsetId:n,limit:v}),peerId:t.id})}function Xp(e){let{peer:t,offsetId:n}=e;return pf({method:new ue.Api.stories.GetStoriesArchive({peer:t&&Dt(t.id,t.accessHash),offsetId:n,limit:v}),peerId:t.id})}async function Yp(e){let{peer:t,ids:n}=e;const s=await uo(new ue.Api.stories.GetStoriesByID({peer:Dt(t.id,t.accessHash),id:n}));if(!s)return;const a=n.reduce(((e,n)=>{const a=s.stories.find((e=>{let{id:t}=e;return t===n}));return e[n]=a?Cs(t.id,a):{id:n,peerId:t.id,isDeleted:!0},e}),{});return s.stories.forEach((e=>Ge(e,t.id))),{pinnedIds:s.pinnedToTop,stories:a}}function Zp(e){let{peer:t,storyId:n}=e;return uo(new ue.Api.stories.IncrementStoryViews({peer:Dt(t.id,t.accessHash),id:[n]}))}function ef(e){let{peer:t,storyId:n}=e;return uo(new ue.Api.stories.ReadStories({peer:Dt(t.id,t.accessHash),maxId:n}))}function tf(e){let{peer:t,storyId:n}=e;return uo(new ue.Api.stories.DeleteStories({peer:Dt(t.id,t.accessHash),id:[n]}))}function nf(e){let{peer:t,storyId:n,isInProfile:s}=e;return uo(new ue.Api.stories.TogglePinned({peer:Dt(t.id,t.accessHash),id:[n],pinned:s}))}function sf(e){let{peer:t,storyIds:n}=e;return uo(new ue.Api.stories.TogglePinnedToTop({peer:Dt(t.id,t.accessHash),id:n}))}async function af(e){let{peer:t,storyId:n,areJustContacts:s,query:a,areReactionsFirst:i,limit:o=v,offset:r=""}=e;const c=await uo(new ue.Api.stories.GetStoryViewsList({peer:Dt(t.id,t.accessHash),id:n,justContacts:s,q:a,reactionsFirst:i,limit:o,offset:r}));if(c)return{views:c.views.map(Rs).filter(Boolean),nextOffset:c.nextOffset,reactionsCount:c.reactionsCount,viewsCount:c.count}}async function of(e){let{peer:t,storyIds:n}=e;const s=await uo(new ue.Api.stories.GetStoriesViews({peer:Dt(t.id,t.accessHash),id:n}));if(s?.views[0])return{views:Ms(s.views[0])}}async function rf(e){let{peer:t,storyId:n}=e;const s=await uo(new ue.Api.stories.ExportStoryLink({peer:Dt(t.id,t.accessHash),id:n}));if(s)return s.link}function cf(e){let{peer:t,storyId:n,reason:s,description:a}=e;return uo(new ue.Api.stories.Report({peer:Dt(t.id,t.accessHash),id:[n],reason:Xt(s),message:a}))}function df(e){let{peer:t,id:n,privacy:s}=e;return uo(new ue.Api.stories.EditStory({peer:Dt(t.id,t.accessHash),id:n,privacyRules:un(s)}),{shouldReturnTrue:!0})}function uf(e){let{peer:t,isHidden:n}=e;return uo(new ue.Api.stories.TogglePeerStoriesHidden({peer:Dt(t.id,t.accessHash),hidden:n}))}function lf(e){let{peers:t}=e;return uo(new ue.Api.stories.GetPeerMaxIDs({id:t.map((e=>Dt(e.id,e.accessHash)))}),{shouldIgnoreErrors:!0})}async function pf(e){let{method:t,peerId:n}=e;const s=await uo(t);if(!s)return;const a=yt(s.stories,(e=>[e.id,Cs(n,e)]));return s.stories.forEach((e=>Ge(e,n))),{stories:a,pinnedIds:s.pinnedToTop}}function ff(e){let{peer:t,storyId:n,reaction:s,shouldAddToRecent:a}=e;return uo(new ue.Api.stories.SendReaction({reaction:s?an(s):new ue.Api.ReactionEmpty,peer:Dt(t.id,t.accessHash),storyId:n,...a&&{addToRecent:!0}}),{shouldReturnTrue:!0})}function gf(e){let{isForPast:t,isForFuture:n}=e;return uo(new ue.Api.stories.ActivateStealthMode({past:t,future:n}),{shouldReturnTrue:!0})}function hf(e){if(e)return Object.values(e).map((e=>({id:e.id,title:e.title,amount:e.prices.reduce(((e,t)=>e+t.amount.toJSNumber()),0),prices:e.prices.map((e=>{let{label:t,amount:n}=e;return{label:t,amount:n.toJSNumber()}}))})))}function mf(e){const{photo:t}=e;if(t&&ze(t),e instanceof ue.Api.payments.PaymentReceiptStars){const{botId:n,currency:s,date:a,description:i,title:o,totalAmount:r,transactionId:c}=e;return t&&ze(t),{type:"stars",currency:s,peer:{type:"peer",id:fe(n,"user")},date:a,text:i,title:o,totalAmount:-r.toJSNumber(),transactionId:c,photo:t&&Xn(t)}}const{invoice:n,info:s,shipping:a,currency:i,totalAmount:o,credentialsTitle:r,tipAmount:c,title:d,description:u}=e,{shippingAddress:l,phone:p,name:f}=s||{},{prices:g}=n,h=g.map((e=>{let{label:t,amount:n}=e;return{label:t,amount:n.toJSNumber()}}));let m,y;return a&&(m=a.prices.map((e=>{let{label:t,amount:n}=e;return{label:t,amount:n.toJSNumber()}})),y=a.title),{type:"regular",currency:i,prices:h,info:{shippingAddress:l,phone:p,name:f},totalAmount:o.toJSNumber(),credentialsTitle:r,shippingPrices:m,shippingMethod:y,tipAmount:c?c.toJSNumber():0,title:d,text:u,photo:t&&Xn(t)}}function yf(e){if(e instanceof ue.Api.payments.PaymentFormStars){const{botId:t,formId:n}=e;return{type:"stars",botId:fe(t,"user"),formId:String(n)}}const{formId:t,canSaveCredentials:n,passwordMissing:s,providerId:a,nativeProvider:i,nativeParams:o,savedInfo:r,invoice:c,savedCredentials:d,url:u,botId:l}=e,{test:p,nameRequested:f,phoneRequested:g,emailRequested:h,shippingAddressRequested:m,flexible:y,phoneToProvider:_,emailToProvider:b,currency:w,prices:v}=c,S=v.map((e=>{let{label:t,amount:n}=e;return{label:t,amount:n.toJSNumber()}})),{shippingAddress:I}=r||{},A=r?ve(r):void 0;A&&I&&(A.shippingAddress=ve(I));const P=o?JSON.parse(o.data):{};return{type:"regular",url:u,botId:fe(l,"user"),canSaveCredentials:n,isPasswordMissing:s,formId:String(t),providerId:String(a),nativeProvider:i,savedInfo:A,invoiceContainer:{isTest:p,isNameRequested:f,isPhoneRequested:g,isEmailRequested:h,isShippingAddressRequested:m,isFlexible:y,shouldSendPhoneToProvider:_,shouldSendEmailToProvider:b,currency:w,prices:S},nativeParams:{needCardholderName:Boolean(P?.need_cardholder_name),needCountry:Boolean(P?.need_country),needZip:Boolean(P?.need_zip),publishableKey:P?.publishable_key,publicToken:P?.public_token,tokenizeUrl:P?.tokenize_url},savedCredentials:d&&(C=d,C.map((e=>{let{id:t,title:n}=e;return{id:t,title:n}})))};var C}function _f(e){const{invoice:t,description:n,title:s,photo:a}=e,{test:i,currency:o,prices:r,recurring:c,termsUrl:d,maxTipAmount:u,suggestedTipAmounts:l}=t,p=r.reduce(((e,t)=>e+t.amount.toJSNumber()),0);return{mediaType:"invoice",text:n,title:s,photo:Xn(a),amount:p,currency:o,isTest:i,isRecurring:c,termsUrl:d,maxTipAmount:u?.toJSNumber(),...l&&{suggestedTipAmounts:l.map((e=>e.toJSNumber()))}}}function bf(e){const{statusText:t,statusEntities:n,videos:s,videoSections:a,periodOptions:i}=e;return{statusText:t,statusEntities:n.map(Bn),videoSections:a,videos:s.map(jn).filter(Boolean),options:i.map(wf)}}function wf(e){const{current:t,canPurchaseUpgrade:n,currency:s,amount:a,botUrl:i,months:o}=e;return{isCurrent:t,canPurchaseUpgrade:n,currency:s,amount:a.toJSNumber(),botUrl:i,months:o}}function vf(e){const{userId:t,multiplier:n,expires:s,giveaway:a,gift:i,stars:o}=e;return{userId:t&&fe(t,"user"),multiplier:n,expires:s,isFromGiveaway:a,isGift:i,stars:o?.toJSNumber()}}function Sf(e){const{date:t,expires:n,slot:s,cooldownUntilDate:a,peer:i}=e;return{date:t,expires:n,slot:s,cooldownUntil:a,chatId:i&&ge(i)}}function If(e){const{date:t,fromId:n,months:s,giveawayMsgId:a,toId:i,usedDate:o,viaGiveaway:r}=e;return{date:t,months:s,toId:i&&fe(i,"user"),fromId:n&&ge(n),usedAt:o,isFromGiveaway:r,giveawayMessageId:a}}function Af(e){const{amount:t,currency:n,months:s,users:a}=e;return{amount:t.toJSNumber(),currency:n,months:s,users:a}}function Pf(e){const{extended:t,stars:n,amount:s,currency:a}=e;return{isExtended:t,stars:n.toJSNumber(),amount:s.toJSNumber(),currency:a}}function Cf(e){const{extended:t,default:n,stars:s,yearlyBoosts:a,amount:i,winners:o,currency:r}=e,c=o?.map((e=>function(e){const{default:t,users:n,perUserStars:s}=e;return{isDefault:t,users:n,perUserStars:s.toJSNumber()}}(e))).filter(Boolean);return{isExtended:t,isDefault:n,yearlyBoosts:a,stars:s.toJSNumber(),amount:i.toJSNumber(),currency:r,winners:c}}function Mf(e){return e instanceof ue.Api.StarsTransactionPeerAppStore?{type:"appStore"}:e instanceof ue.Api.StarsTransactionPeerPlayMarket?{type:"playMarket"}:e instanceof ue.Api.StarsTransactionPeerPremiumBot?{type:"premiumBot"}:e instanceof ue.Api.StarsTransactionPeerFragment?{type:"fragment"}:e instanceof ue.Api.StarsTransactionPeerAds?{type:"ads"}:e instanceof ue.Api.StarsTransactionPeer?{type:"peer",id:ge(e.peer)}:{type:"unsupported"}}function Rf(e){const{date:t,id:n,peer:s,stars:a,description:i,photo:o,title:r,refund:c,extendedMedia:d,failed:u,msgId:l,pending:p,gift:f,reaction:g,subscriptionPeriod:h}=e;o&&ze(o);const m=d?.map((e=>Hn(e))).filter(Boolean);return{id:n,date:t,peer:Mf(s),stars:a.toJSNumber(),title:r,description:i,photo:o&&Xn(o),isRefund:c,hasFailed:u,isPending:p,messageId:l,isGift:f,extendedMedia:m,subscriptionPeriod:h,isReaction:g}}function kf(e){const{id:t,peer:n,pricing:s,untilDate:a,canRefulfill:i,canceled:o,chatInviteHash:r,missingBalance:c}=e;return{id:t,peerId:ge(n),until:a,pricing:ma(s),isCancelled:o,canRefulfill:i,hasMissingBalance:c,chatInviteHash:r}}function Tf(e){const{amount:t,currency:n,stars:s,extended:a}=e;return{amount:t.toJSNumber(),currency:n,stars:s.toJSNumber(),isExtended:a}}async function Ef(e){let{inputInvoice:t,requestInfo:n,shouldSave:s}=e;const a=await uo(new ue.Api.payments.ValidateRequestedInfo({invoice:sn(t),save:s||void 0,info:Jt(n)}));if(!a)return;const{id:i,shippingOptions:o}=a;return i?{id:i,shippingOptions:hf(o)}:void 0}async function Bf(e){let{inputInvoice:t,formId:n,requestedInfoId:s,shippingOptionId:a,credentials:i,savedCredentialId:o,temporaryPassword:r,tipAmount:c}=e;const d=r&&o?new ue.Api.InputPaymentCredentialsSaved({id:o,tmpPassword:$e(r)}):new ue.Api.InputPaymentCredentials({save:i.save,data:new ue.Api.DataJSON({data:JSON.stringify(i.data)})}),u=await uo(new ue.Api.payments.SendPaymentForm({formId:_e()(n),invoice:sn(t),requestedInfoId:s,shippingOptionId:a,credentials:d,...c&&{tipAmount:_e()(c)}}));return!!u&&(u instanceof ue.Api.payments.PaymentVerificationNeeded?void Xe({"@type":"updatePaymentVerificationNeeded",url:u.url}):(co(u.updates),Boolean(u)))}async function Df(e){let{formId:t,inputInvoice:n}=e;const s=await uo(new ue.Api.payments.SendStarsForm({formId:_e()(t),invoice:sn(n)}));if(s){if(!(s instanceof ue.Api.payments.PaymentVerificationNeeded)){if(co(s.updates),"chatInviteSubscription"===n.type){const e="updates"in s.updates?s.updates.updates:void 0,t=e?.find((e=>e instanceof ue.Api.UpdateChannel))?.channelId;if(!t)return;return{channelId:fe(t,"channel")}}return{completed:!0}}c&&console.warn("Unexpected PaymentVerificationNeeded in sendStarsForm")}}async function Uf(e,t){const n=await uo(new ue.Api.payments.GetPaymentForm({invoice:sn(e),themeParams:t?Yt(t):void 0}));if(n)return n.photo&&ze(n.photo),{form:yf(n),invoice:_f(n)}}async function xf(e,t){const n=await uo(new ue.Api.payments.GetPaymentReceipt({peer:Dt(e.id,e.accessHash),msgId:t}));if(n)return{receipt:mf(n)}}async function Vf(){const e=await uo(new ue.Api.help.GetPremiumPromo);if(e)return e.videos.forEach((e=>{e instanceof ue.Api.Document&&(Te.documents[e.id.toString()]=e)})),{promo:bf(e)}}async function Nf(e){const t=await Ku(e);if(t)return"error"in t?t:{value:Ke(t.tmpPassword),validUntil:t.validUntil}}async function Ff(){const e=await uo(new ue.Api.premium.GetMyBoosts);if(e)return{boosts:e.myBoosts.map(Sf)}}async function qf(e){let{chat:t,slots:n}=e;const s=await uo(new ue.Api.premium.ApplyBoost({peer:Dt(t.id,t.accessHash),slots:n}));if(s)return{boosts:s.myBoosts.map(Sf)}}async function Gf(e){let{chat:t}=e;const n=await uo(new ue.Api.premium.GetBoostsStatus({peer:Dt(t.id,t.accessHash)}));if(n)return function(e){const{level:t,boostUrl:n,boosts:s,giftBoosts:a,myBoost:i,currentLevelBoosts:o,nextLevelBoosts:r,premiumAudience:c,prepaidGiveaways:d}=e;return{level:t,currentLevelBoosts:o,boosts:s,hasMyBoost:Boolean(i),boostUrl:n,giftBoosts:a,nextLevelBoosts:r,...c&&{premiumSubscribers:bp(c)},...d&&{prepaidGiveaways:d.map((e=>{return(t=e)instanceof ue.Api.PrepaidGiveaway?{type:"giveaway",id:t.id.toString(),date:t.date,months:t.months,quantity:t.quantity}:{type:"starsGiveaway",id:t.id.toString(),stars:t.stars.toJSNumber(),quantity:t.quantity,boosts:t.boosts,date:t.date};var t}))}}}(n)}async function Hf(e){let{chat:t,isGifts:n,offset:s="",limit:a}=e;const i=await uo(new ue.Api.premium.GetBoostsList({peer:Dt(t.id,t.accessHash),gifts:n||void 0,offset:s,limit:a}));if(!i)return;const o=i.boosts.map(vf);return{count:i.count,boostList:o,nextOffset:i.nextOffset}}async function Of(e){let{peer:t,messageId:n}=e;const s=await uo(new ue.Api.payments.GetGiveawayInfo({peer:Dt(t.id,t.accessHash),msgId:n}));if(s)return function(e){if(e instanceof ue.Api.payments.GiveawayInfo){const{startDate:t,adminDisallowedChatId:n,disallowedCountry:s,joinedTooEarlyDate:a,participating:i,preparingResults:o}=e;return{type:"active",startDate:t,isParticipating:i,adminDisallowedChatId:n&&fe(n,"channel"),disallowedCountry:s,joinedTooEarlyDate:a,isPreparingResults:o}}{const{activatedCount:t,finishDate:n,giftCodeSlug:s,winner:a,refunded:i,startDate:o,winnersCount:r,starsPrize:c}=e;return{type:"results",startDate:o,activatedCount:t,finishDate:n,winnersCount:r,giftCodeSlug:s,isRefunded:i,isWinner:a,starsPrize:c?.toJSNumber()}}}(s)}async function Lf(e){let{slug:t}=e;const n=await uo(new ue.Api.payments.CheckGiftCode({slug:t}));if(n)return{code:If(n)}}function jf(e){let{slug:t}=e;return uo(new ue.Api.payments.ApplyGiftCode({slug:t}),{shouldReturnTrue:!0})}async function Wf(e){let{chat:t}=e;const n=await uo(new ue.Api.payments.GetPremiumGiftCodeOptions({boostPeer:t&&Dt(t.id,t.accessHash)}));if(n)return n.map(Af)}async function zf(e){let{chat:t}=e;const n=await uo(new ue.Api.payments.GetStarsGiftOptions({userId:t&&Dt(t.id,t.accessHash)}));if(n)return n.map(Pf)}async function Kf(){const e=await uo(new ue.Api.payments.GetStarsGiveawayOptions);if(e)return e.map(Cf)}function $f(e){let{chat:t,giveawayId:n,paymentPurpose:s}=e;return uo(new ue.Api.payments.LaunchPrepaidGiveaway({peer:Dt(t.id,t.accessHash),giveawayId:_e()(n),purpose:nn(s)}),{shouldReturnTrue:!0})}async function Jf(){const e=await uo(new ue.Api.payments.GetStarsStatus({peer:new ue.Api.InputPeerSelf}));if(e)return{nextHistoryOffset:e.nextOffset,history:e.history?.map(Rf),nextSubscriptionOffset:e.subscriptionsNextOffset,subscriptions:e.subscriptions?.map(kf),balance:e.balance.toJSNumber()}}async function Qf(e){let{peer:t,offset:n,isInbound:s,isOutbound:a}=e;const i=t?Dt(t.id,t.accessHash):new ue.Api.InputPeerSelf,o=await uo(new ue.Api.payments.GetStarsTransactions({peer:i,offset:n,inbound:s,outbound:a}));if(o)return{nextOffset:o.nextOffset,history:o.history?.map(Rf),balance:o.balance.toJSNumber()}}async function Xf(e){let{id:t,peer:n}=e;const s=n?Dt(n.id,n.accessHash):new ue.Api.InputPeerSelf,a=await uo(new ue.Api.payments.GetStarsTransactionsByID({peer:s,id:[new ue.Api.InputStarsTransaction({id:t})]}));if(a?.history?.[0])return{transaction:Rf(a.history[0])}}async function Yf(e){let{offset:t,peer:n}=e;const s=n?Dt(n.id,n.accessHash):new ue.Api.InputPeerSelf,a=await uo(new ue.Api.payments.GetStarsSubscriptions({peer:s,offset:t}));if(a?.subscriptions)return{nextOffset:a.subscriptionsNextOffset,subscriptions:a.subscriptions.map(kf),balance:a.balance.toJSNumber()}}async function Zf(e){let{peer:t,subscriptionId:n,isCancelled:s}=e;return await uo(new ue.Api.payments.ChangeStarsSubscription({peer:t?Dt(t.id,t.accessHash):new ue.Api.InputPeerSelf,subscriptionId:n,canceled:s}))}async function eg(e){let{peer:t,subscriptionId:n}=e;return await uo(new ue.Api.payments.FulfillStarsSubscription({peer:t?Dt(t.id,t.accessHash):new ue.Api.InputPeerSelf,subscriptionId:n}))}async function tg(){const e=await uo(new ue.Api.payments.GetStarsTopupOptions);if(e)return e.map(Tf)}async function ng(e){const t="username"in e?new ue.Api.InputCollectibleUsername({username:e.username}):new ue.Api.InputCollectiblePhone({phone:e.phone}),n=await uo(new ue.Api.fragment.GetCollectibleInfo({collectible:t}));if(n)return function(e){const{amount:t,currency:n,cryptoAmount:s,cryptoCurrency:a,purchaseDate:i,url:o}=e;return{amount:t.toJSNumber(),currency:n,cryptoAmount:s.toJSNumber(),cryptoCurrency:a,purchaseDate:i,url:o}}(n)}function sg(e,t,n){var s;!function(e){Qe=e}(e),n&&(s=n,Object.assign(ke,Re(s))),async function(e){c&&console.log(">>> START INIT API");const{userAgent:t,platform:n,sessionData:s,isTest:a,isWebmSupported:r,maxBufferSize:d,webAuthToken:u,dcId:l,mockScenario:p,shouldForceHttpTransport:f,shouldAllowHttpTransport:g,shouldDebugExportedSenders:h,langCode:m}=e,y=new ue.sessions.CallbackSession(s,ro);self.isWebmSupported=r,self.maxBufferSize=d,to=new(at())(y,"2496","8da85b0d5bfe62527e5b244c209159c3",{deviceModel:navigator.userAgent||t||Qi,systemVersion:n||Xi,appVersion:`10.9.19 ${i}`,useWSS:!0,additionalDcsDisabled:o,shouldDebugExportedSenders:h,shouldForceHttpTransport:f,shouldAllowHttpTransport:g,testServers:a,dcId:l,langCode:m}),to.addEventHandler(co,Yi);try{c&&(Je("CONNECTING"),self.invoke=uo,self.GramJs=ue.Api);try{to.setPingCallback(ui),await to.start({phoneNumber:Si,phoneCode:Ii,password:Ai,firstAndLastNames:Pi,qrCode:Ci,onError:Mi,initialMethod:"iOS"===n||"Android"===n?"phoneNumber":"qrCode",shouldThrowIfUnauthorized:Boolean(s),webAuthToken:u,webAuthTokenFailed:vi,mockScenario:p})}catch(e){if(console.error(e),"Disconnect"!==e.message&&"Cannot send requests while disconnected"!==e.message)return void Xe({"@type":"updateConnectionState",connectionState:"connectionStateBroken"})}c&&(console.log(">>> FINISH INIT API"),Je("CONNECTED")),Xe(Ri("authorizationStateReady")),ro(y.getSessionData()),Xe({"@type":"updateApiReady"}),async function(e){Ja=e,await hi(),Xa=!0,ci()}(uo),yo()}catch(e){throw c&&Je("CONNECTING ERROR",e),e}}(t)}const ag=ae.reduce(((e,t)=>(e[t]=console[t],e)),{});self.onerror=e=>{console.error(e),ug({type:"unhandledError",error:{message:e.error.message||"Uncaught exception in worker"}})},self.addEventListener("unhandledrejection",(e=>{console.error(e),ug({type:"unhandledError",error:{message:e.reason.message||"Uncaught rejection in worker"}})}));let ig=[],og=[],rg=[];const cg=new Map;c&&console.log(">>> FINISH LOAD WORKER"),onmessage=e=>{let{data:t}=e;t.payloads.forEach((async e=>{switch(e.type){case"initApi":{const{messageId:t,args:n}=e;await sg(lg,n[0],n[1]),t&&ug({type:"methodResponse",messageId:t,response:!0});break}case"callMethod":{const{messageId:t,name:n,args:s,withCallback:i}=e;try{if(t&&i){const e=function(){for(var e=arguments.length,n=new Array(e),s=0;s<e;s++)n[s]=arguments[s];const a=n[n.length-1];ug({type:"methodCallback",messageId:t,callbackArgs:n},a instanceof ArrayBuffer?a:void 0)};cg.set(t,e),s.push(e)}const e=await function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),s=1;s<t;s++)n[s-1]=arguments[s];return a[e](...n)}(n,...s);c&&"object"==typeof e&&"CONSTRUCTOR_ID"in e&&Je("UNEXPECTED RESPONSE",`${n}: ${e.className}`);const{arrayBuffer:o}="object"==typeof e&&"arrayBuffer"in e&&e||{};t&&ug({type:"methodResponse",messageId:t,response:e},o)}catch(e){c&&console.error(e),t&&ug({type:"methodResponse",messageId:t,error:{message:e.message}})}t&&cg.delete(t);break}case"cancelProgress":{const t=cg.get(e.messageId);t&&(t.isCanceled=!0);break}case"ping":ug({type:"methodResponse",messageId:e.messageId});break;case"toggleDebugMode":e.isEnabled?ae.forEach((e=>{console[e]=function(){for(var t=arguments.length,n=new Array(t),s=0;s<t;s++)n[s]=arguments[s];postMessage({type:"debugLog",level:e,args:JSON.parse(JSON.stringify(n,((e,t)=>"bigint"==typeof t?t.toString():t)))})}})):ae.forEach((e=>{console[e]=ag[e]}))}}))};const dg=oe((()=>{rg.length&&ig.unshift({type:"updates",updates:rg});const e={payloads:ig},t=og;rg=[],ig=[],og=[],t.length?postMessage(e,t):postMessage(e)}));function ug(e,t){ig.push(e),t&&og.push(t),dg()}function lg(e){c&&"updateUserStatus"!==e["@type"]&&"updateServerTimeOffset"!==e["@type"]&&Je("UPDATE",e["@type"],e),rg.push(e),dg()}},80071:(e,t,n)=>{var s=n(48287).hp;const a=n(92096),i=n(97157);function o(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],i=s.from(e);const o=i.length;t&&(i=i.reverse());let r=a(i.toString("hex"),16);return n&&Math.floor(r.toString(2).length/8)>=o&&(r=r.subtract(a(2).pow(a(8*o)))),r}function r(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:8;const n=a(e),i=[];for(let e=0;e<t;e++)i[e]=n.shiftRight(8*e).and(255);return s.from(i)}function c(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];const o=(e=a(e)).bitLength().toJSNumber();if(t<Math.ceil(o/8))throw new Error("OverflowError: int too big to convert");if(!i&&e.lesser(a(0)))throw new Error("Cannot convert to unsigned");let r=!1;e.lesser(a(0))&&(r=!0,e=e.abs());const c=e.toString(16).padStart(2*t,"0");let d=s.from(c,"hex");if(i&&r){d[d.length-1]=256-d[d.length-1];for(let e=0;e<d.length-1;e++)d[e]=255-d[e]}return n&&(d=d.reverse()),d}function d(e){return s.from(i.randomBytes(e))}function u(e){const t=i.createHash("sha1");return t.update(e),t.digest()}let l;e.exports={readBigIntFromBuffer:o,readBufferFromBigInt:c,generateRandomLong:function(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return o(d(8),!0,e)},mod:function(e,t){return(e%t+t)%t},crc32:function(e){l||(l=function(){let e;const t=[];for(let n=0;n<256;n++){e=n;for(let t=0;t<8;t++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}()),s.isBuffer(e)||(e=s.from(e));let t=-1;for(let n=0;n<e.length;n++){const s=e[n];t=l[255&(t^s)]^t>>>8}return~t>>>0},generateRandomBytes:d,generateKeyDataFromNonce:async function(e,t){e=r(e,16),t=r(t,32);const[n,a,i]=await Promise.all([u(s.concat([t,e])),u(s.concat([e,t])),u(s.concat([t,t]))]);return{key:s.concat([n,a.slice(0,12)]),iv:s.concat([a.slice(12,20),i,t.slice(0,4)])}},sha1:u,sha256:function(e){const t=i.createHash("sha256");return t.update(e),t.digest()},bigIntMod:function(e,t){return e.remainder(t).add(t).remainder(t)},modExp:function(e,t,n){e=e.remainder(n);let s=a.one,i=e;for(;t.greater(a.zero);){const e=t.remainder(a(2));t=t.divide(a(2)),e.eq(a.one)&&(s=s.multiply(i),s=s.remainder(n)),i=i.multiply(i),i=i.remainder(n)}return s},getRandomInt:function(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e},sleep:e=>new Promise((t=>{setTimeout(t,e)})),getByteArray:function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=e.toString(2).length,s=Math.floor((n+8-1)/8);return c(a(e),s,!1,t)},toSignedLittleBuffer:r,convertToLittle:function(e){const t=s.alloc(4*e.length);for(let n=0;n<e.length;n++)t.writeUInt32BE(e[n],4*n);return t},bufferXor:function(e,t){const n=[];for(let s=0;s<e.length;s++)n.push(e[s]^t[s]);return s.from(n)}}},61257:(e,t,n)=>{var s=n(48287).hp;const a=n(92096),{constructors:i}=n(43355),{readBigIntFromBuffer:o,readBufferFromBigInt:r,sha256:c,bigIntMod:d,modExp:u,generateRandomBytes:l}=n(80071),p=n(97157);function f(e,t){if(!s.from([199,28,174,185,198,177,201,4,142,108,82,47,112,241,63,115,152,13,64,35,142,62,33,193,73,52,208,55,86,61,147,15,72,25,138,10,167,193,64,88,34,148,147,210,37,48,244,219,250,51,111,110,10,201,37,19,149,67,174,212,76,206,124,55,32,253,81,246,148,88,112,90,198,140,212,254,107,107,19,171,220,151,70,81,41,105,50,132,84,241,143,175,140,89,95,100,36,119,254,150,187,42,148,29,91,205,29,74,200,204,73,136,7,8,250,155,55,142,60,79,58,144,96,190,230,124,249,164,164,166,149,129,16,81,144,126,22,39,83,181,107,15,107,65,13,186,116,216,168,75,42,20,179,20,78,14,241,40,71,84,253,23,237,149,13,89,101,180,185,221,70,88,45,177,23,141,22,156,107,196,101,176,214,255,156,163,146,143,239,91,154,228,228,24,252,21,232,62,190,160,248,127,169,255,94,237,112,5,13,237,40,73,244,123,249,89,217,86,133,12,233,41,133,31,13,129,21,246,53,177,5,238,46,78,21,208,75,36,84,191,111,79,173,240,52,177,4,3,17,156,216,227,185,47,204,91]).equals(e)||![3,4,5,7].includes(t))throw new Error("Changing passwords unsupported")}function g(e){return s.concat([s.alloc(256-e.length),e])}function h(e){return r(e,256,!1)}function m(e,t){const n=t.subtract(e);return!(n.lesser(a(0))||n.bitLength()<1984||e.bitLength()<1984||Math.floor((e.bitLength()+7)/8)>256)}function y(e,t){const n=Math.min(e.length,t.length);for(let s=0;s<n;s++)e[s]^=t[s];return e}async function _(e,t){const n=await c(s.concat([e.salt1,s.from(t,"utf-8"),e.salt1])),a=await c(s.concat([e.salt2,n,e.salt2])),i=await function(e,t,n){return p.pbkdf2(e,t,1e5,64,"sha512")}(a,e.salt1);return c(s.concat([e.salt2,i,e.salt2]))}e.exports={computeCheck:async function(e,t){const n=e.currentAlgo;if(!(n instanceof i.PasswordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow))throw new Error(`Unsupported password algorithm ${n.className}`);const r=await _(n,t),p=o(n.p,!1),{g:b}=n,w=o(e.srp_B,!1);try{f(n.p,b)}catch(e){throw new Error("bad /g in password")}if(!function(e,t){return e.greater(a(0))&&t.subtract(e).greater(a(0))}(w,p))throw new Error("bad b in check");const v=o(r,!1),S=g(n.p),I=h(b),A=g(e.srp_B),P=u(a(b),v,p),C=o(await c(s.concat([S,I])),!1),M=d(C.multiply(P),p),[R,k,T]=await(async()=>{for(;;){const e=l(256),t=o(e,!1),n=u(a(b),t,p);if(m(n,p)){const e=h(n),i=o(await c(s.concat([e,A])),!1);if(i.greater(a(0)))return[t,e,i]}}})(),E=d(w.subtract(M),p);if(!m(E,p))throw new Error("bad gB");const B=T.multiply(v),D=R.add(B),U=u(E,D,p),[x,V,N,F,q]=await Promise.all([c(h(U)),c(S),c(I),c(n.salt1),c(n.salt2)]),G=await c(s.concat([y(V,N),F,q,k,A,x]));return new i.InputCheckPasswordSRP({srpId:e.srpId,A:s.from(k),M1:G})},computeDigest:async function(e,t){try{f(e.p,e.g)}catch(e){throw new Error("bad p/g in password")}return h(u(a(e.g),o(await _(e,t),!1),o(e.p,!1)))}}},56215:(e,t,n)=>{var s=n(48287).hp;const{constructors:a}=n(43355),i=s.from("ffd8ffe000104a46494600010100000100010000ffdb004300281c1e231e19282321232d2b28303c64413c37373c7b585d4964918099968f808c8aa0b4e6c3a0aadaad8a8cc8ffcbdaeef5ffffff9bc1fffffffaffe6fdfff8ffdb0043012b2d2d3c353c76414176f8a58ca5f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8ffc00011080000000003012200021101031101ffc4001f0000010501010101010100000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a1082342b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b51100020102040403040705040400010277000102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a434445464748494a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00","hex"),o=s.from("ffd9","hex");function r(e,t){throw new Error(`Cannot cast ${e.className} to any kind of ${t}`)}e.exports={getMessageId:function(e){if(void 0!==e){if("number"==typeof e)return e;if(2030045667===e.SUBCLASS_OF_ID)return e.id;throw new Error(`Invalid message type: ${e.constructor.name}`)}},getInputPeer:function e(t){let n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(void 0===t.SUBCLASS_OF_ID){if(n&&"inputEntity"in t)return t.inputEntity;if("entity"in t)return e(t.entity);r(t,"InputPeer")}if(3374092470===t.SUBCLASS_OF_ID)return t;if(t instanceof a.User){if(t.isSelf&&n)return new a.InputPeerSelf;if(void 0===t.accessHash&&s)throw new Error("User without accessHash or min info cannot be input");return new a.InputPeerUser({userId:t.id,accessHash:t.accessHash})}if(t instanceof a.Chat||t instanceof a.ChatEmpty||t instanceof a.ChatForbidden)return new a.InputPeerChat({chatId:t.id});if(t instanceof a.Channel){if(void 0===t.accessHash&&s)throw new TypeError("Channel without accessHash or min info cannot be input");return new a.InputPeerChannel({channelId:t.id,accessHash:t.accessHash})}return t instanceof a.ChannelForbidden?new a.InputPeerChannel({channelId:t.id,accessHash:t.accessHash}):t instanceof a.InputUser?new a.InputPeerUser({userId:t.userId,accessHash:t.accessHash}):t instanceof a.InputChannel?new a.InputPeerChannel({channelId:t.channelId,accessHash:t.accessHash}):t instanceof a.UserEmpty?new a.InputPeerEmpty:t instanceof a.UserFull?e(t.user):t instanceof a.ChatFull?new a.InputPeerChat({chatId:t.id}):t instanceof a.PeerChat?new a.InputPeerChat(t.chatId):void r(t,"InputPeer")},getDisplayName:function(e){return e instanceof a.User?e.lastName&&e.firstName?`${e.firstName} ${e.lastName}`:e.firstName?e.firstName:e.lastName?e.lastName:"":e instanceof a.Chat||e instanceof a.Channel?e.title:""},getDownloadPartSize:function(e){if(e<=65536)return 64;if(e<=104857600)return 128;if(e<=786432e3)return 256;if(e<=2097152e3)return 512;if(e<=4194304e3)return 1024;throw new Error("File size too large")},getUploadPartSize:function(e){if(e<=104857600)return 128;if(e<=786432e3)return 256;if(e<=2097152e3)return 512;if(e<=4194304e3)return 512;throw new Error("File size too large")},strippedPhotoToJpg:function(e){if(e.length<3||1!==e[0])return e;const t=s.from(i);return t[164]=e[1],t[166]=e[2],s.concat([t,e.slice(3),o])},getDC:function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];switch(e){case 1:return{id:1,ipAddress:`zws1${t?"-1":""}.web.telegram.org`,port:443};case 2:return{id:2,ipAddress:`zws2${t?"-1":""}.web.telegram.org`,port:443};case 3:return{id:3,ipAddress:`zws3${t?"-1":""}.web.telegram.org`,port:443};case 4:return{id:4,ipAddress:`zws4${t?"-1":""}.web.telegram.org`,port:443};case 5:return{id:5,ipAddress:`zws5${t?"-1":""}.web.telegram.org`,port:443};default:throw new Error(`Cannot find the DC with the ID of ${e}`)}}}},58946:e=>{e.exports="0.0.2"},31837:(e,t,n)=>{"use strict";n.r(t),n.d(t,{getCurrentPassword:()=>p,getTmpPassword:()=>l,updateTwoFaSettings:()=>u});var s=n(9396),a=n.n(s),i=n(96847),o=n.n(i),r=n(80071),c=n(61257),d=n(48287).hp;async function u(e,t){let{isCheckPassword:n,currentPassword:s,newPassword:i,hint:u="",email:l,emailCodeCallback:p,onEmailCodeError:f}=t;if(!i&&!s)throw new Error("Neither `currentPassword` nor `newPassword` is present");if(l&&(!p||!f))throw new Error("`email` present without `emailCodeCallback` and `onEmailCodeError`");const g=await e.invoke(new(o().account.GetPassword));g.newAlgo instanceof o().PasswordKdfAlgoUnknown||(g.newAlgo.salt1=d.concat([g.newAlgo.salt1,(0,r.generateRandomBytes)(32)])),!g.hasPassword&&s&&(s=void 0);const h=s?await(0,c.computeCheck)(g,s):new(o().InputCheckPasswordEmpty);if(n)await e.invoke(new(o().auth.CheckPassword)({password:h}));else try{await e.invoke(new(o().account.UpdatePasswordSettings)({password:h,newSettings:new(o().account.PasswordInputSettings)({newAlgo:g.newAlgo,newPasswordHash:i?await(0,c.computeDigest)(g.newAlgo,i):d.alloc(0),hint:u,email:l,newSecureSettings:void 0})}))}catch(t){if(!(t instanceof a().EmailUnconfirmedError))throw t;for(;;)try{const n=await p(t.codeLength);if(!n)throw new Error("Code is empty");await e.invoke(new(o().account.ConfirmPasswordEmail)({code:n}));break}catch(e){f(e)}}}async function l(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:60;const s=await e.invoke(new(o().account.GetPassword));if(!s)return;const a=await(0,c.computeCheck)(s,t);try{return await e.invoke(new(o().account.GetTmpPassword)({password:a,period:n}))}catch(e){if("PASSWORD_HASH_INVALID"===e.message)return{error:e.message};throw e}}async function p(e,t){let{currentPassword:n,onPasswordCodeError:s}=t;const i=await e.invoke(new(o().account.GetPassword));if(i)try{return n?await(0,c.computeCheck)(i,n):new(o().InputCheckPasswordEmpty)}catch(e){if(e instanceof a().PasswordModifiedError)return s(e);if("PASSWORD_HASH_INVALID"===e.message)return{error:e.message};throw e}}},26462:(e,t,n)=>{var s=n(48287).hp;const a=n(51072),i=n(51369),{sleep:o}=n(80071),r=n(9396),c=n(90155),d=n(80071),u=n(56215),l=n(79258),{LAYER:p}=n(50114),{constructors:f,requests:g}=n(43355),{ConnectionTCPObfuscated:h,MTProtoSender:m,UpdateConnectionState:y,HttpConnection:_}=n(51227),{authFlow:b,checkAuthorization:w}=n(53386),{downloadFile:v}=n(32538),{uploadFile:S}=n(38751),{updateTwoFaSettings:I,getTmpPassword:A,getCurrentPassword:P}=n(31837),C=n(83701),M=n(9705).A,R=131072,k=["u","v","w","y","d","x","c","m","b","a","s","f"];class T{constructor(e,t,n){let s=arguments.length>3&&void 0!==arguments[3]?arguments[3]:T.DEFAULT_OPTIONS;if(!t||!n)throw Error('Your API ID or Hash are invalid. Please read "Requirements" on README.md');const o={...T.DEFAULT_OPTIONS,...s};if(this.apiId=t,this.apiHash=n,this.defaultDcId=o.dcId||2,this._useIPV6=o.useIPV6,this._shouldForceHttpTransport=o.shouldForceHttpTransport,this._shouldAllowHttpTransport=o.shouldAllowHttpTransport,this._shouldDebugExportedSenders=o.shouldDebugExportedSenders,"string"==typeof o.baseLogger?this._log=new i:this._log=o.baseLogger,"string"!=typeof e&&e){if(!(e instanceof l))throw new Error("The given session must be str or a session instance")}else try{throw new Error("not implemented")}catch(t){e=new c}this.floodSleepLimit=o.floodSleepLimit,this._eventBuilders=[],this._phoneCodeHash={},this.session=e,this.apiId=parseInt(t,10),this.apiHash=n,this._requestRetries=o.requestRetries,this._connectionRetries=o.connectionRetries,this._connectionRetriesToFallback=o.connectionRetriesToFallback,this._retryDelay=o.retryDelay||0,this._retryMainConnectionDelay=o.retryMainConnectionDelay||0,o.proxy&&this._log.warn("proxies are not supported"),this._proxy=o.proxy,this._timeout=o.timeout,this._autoReconnect=o.autoReconnect,this._connection=o.connection,this._fallbackConnection=o.fallbackConnection,this._floodWaitedRequests={},this._initWith=e=>new g.InvokeWithLayer({layer:p,query:new g.InitConnection({apiId:this.apiId,deviceModel:o.deviceModel||a.type().toString()||"Unknown",systemVersion:o.systemVersion||a.release().toString()||"1.0",appVersion:o.appVersion||"1.0",langCode:o.langCode,langPack:"weba",systemLangCode:o.systemLangCode,query:e,proxy:void 0})}),this._args=o,this._config=void 0,this.phoneCodeHashes=[],this._exportedSenderPromises={},this._exportedSenderRefCounter={},this._waitingForAuthKey={},this._exportedSenderReleaseTimeouts={},this._additionalDcsDisabled=o.additionalDcsDisabled,this._loopStarted=!1,this._isSwitchingDc=!1,this._destroyed=!1,this._connectedDeferred=new M}async connect(){await this._initSession(),void 0===this._sender&&(this._sender=new m(this.session.getAuthKey(),{logger:this._log,dcId:this.session.dcId,retries:this._connectionRetries,retriesToFallback:this._connectionRetriesToFallback,shouldForceHttpTransport:this._shouldForceHttpTransport,shouldAllowHttpTransport:this._shouldAllowHttpTransport,delay:this._retryDelay,retryMainConnectionDelay:this._retryMainConnectionDelay,autoReconnect:this._autoReconnect,connectTimeout:this._timeout,authKeyCallback:this._authKeyCallback.bind(this),updateCallback:this._handleUpdate.bind(this),getShouldDebugExportedSenders:this.getShouldDebugExportedSenders.bind(this),isMainSender:!0})),this._sender.userDisconnected=!1,this._sender._user_connected=!1,this._sender.isReconnecting=!1,this._sender._disconnected=!0;const e=new this._connection(this.session.serverAddress,this.session.port,this.session.dcId,this._log,this._args.testServers),t=new this._fallbackConnection(this.session.serverAddress,this.session.port,this.session.dcId,this._log,this._args.testServers);if(!await this._sender.connect(e,void 0,t))return void(this._loopStarted||(this._updateLoop(),this._loopStarted=!0));this.session.setAuthKey(this._sender.authKey),await this._sender.send(this._initWith(new g.help.GetConfig({}))),this._loopStarted||(this._updateLoop(),this._loopStarted=!0),this._connectedDeferred.resolve(),this._isSwitchingDc=!1;const n=await this._borrowExportedSender(this.session.dcId,!1,void 0,0,this.isPremium);n&&this.releaseExportedSender(n)}async _initSession(){if(await this.session.load(),!this.session.serverAddress||this.session.serverAddress.includes(":")!==this._useIPV6){const e=u.getDC(this.defaultDcId);this.session.setDC(this.defaultDcId,e.ipAddress,this._args.useWSS?443:80)}}setPingCallback(e){this.pingCallback=e}async setForceHttpTransport(e){this._shouldForceHttpTransport=e,await this.disconnect(),this._sender=void 0,await this.connect()}async setAllowHttpTransport(e){this._shouldAllowHttpTransport=e,await this.disconnect(),this._sender=void 0,await this.connect()}setShouldDebugExportedSenders(e){this._shouldDebugExportedSenders=e}getShouldDebugExportedSenders(){return this._shouldDebugExportedSenders}async _updateLoop(){let e;for(;!this._destroyed;)if(await d.sleep(3e3),this._sender.isReconnecting||this._isSwitchingDc)e=void 0;else{try{const t=()=>{if(!this._destroyed)return this._sender.send(new g.PingDelayDisconnect({pingId:d.getRandomInt(Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER),disconnectDelay:6e4}))},n=Date.now(),s=e?n-e:void 0;if(!s||s<5e3)await V((()=>x(t,5e3)),3,100);else{let e=setTimeout((()=>{this._handleUpdate(new y(y.disconnected)),e=void 0}),1e3);await x(t,3e3),e&&(clearTimeout(e),e=void 0),this._handleUpdate(new y(y.connected))}e=Date.now()}catch(t){if(console.warn(t),e=void 0,this._sender.isReconnecting||this._isSwitchingDc)continue;if(this._destroyed)break;this._sender.reconnect()}if(Date.now()-this._lastRequest>18e5){try{await this.pingCallback()}catch(e){}e=void 0}}await this.disconnect()}async disconnect(){this._sender&&await this._sender.disconnect(),await Promise.all(Object.values(this._exportedSenderPromises).map((e=>Object.values(e).map((e=>e&&e.then((e=>{if(e)return e.disconnect()})))))).flat()),Object.values(this._exportedSenderReleaseTimeouts).forEach((e=>{Object.values(e).forEach((e=>{clearTimeout(e)}))})),this._exportedSenderRefCounter={},this._exportedSenderPromises={},this._waitingForAuthKey={}}async destroy(){this._destroyed=!0;try{await this.disconnect(),this._sender.destroy()}catch(e){}this.session.delete(),this._eventBuilders=[]}async _switchDC(e){this._log.info(`Reconnecting to new data center ${e}`);const t=u.getDC(e);return this.session.setDC(e,t.ipAddress,t.port),await this._sender.authKey.setKey(void 0),this.session.setAuthKey(void 0),this._isSwitchingDc=!0,await this.disconnect(),this._sender=void 0,this.connect()}_authKeyCallback(e,t){this.session.setAuthKey(e,t)}async _cleanupExportedSender(e,t){this.session.dcId!==e&&this.session.setAuthKey(void 0,e),this._shouldDebugExportedSenders&&console.log(`🧹 Cleanup idx=${t} dcId=${e}`);const n=await this._exportedSenderPromises[e][t];delete this._exportedSenderPromises[e][t],delete this._exportedSenderRefCounter[e][t],await n.disconnect()}async _cleanupExportedSenders(e){const t=Object.values(this._exportedSenderPromises[e]);t.length&&(this.session.dcId!==e&&this.session.setAuthKey(void 0,e),this._exportedSenderPromises[e]={},this._exportedSenderRefCounter[e]={},await Promise.all(t.map((async e=>{const t=await e;await t.disconnect()}))))}async _connectSender(e,t,n){let s,a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],i=Boolean(e.authKey.getKey());if(!i)if(this._waitingForAuthKey[t]){await this._waitingForAuthKey[t];const n=this.session.getAuthKey(t);await e.authKey.setKey(n.getKey()),i=Boolean(e.authKey.getKey())}else this._waitingForAuthKey[t]=new Promise((e=>{s=e}));const o=u.getDC(t,i);for(;;)try{if(await e.connect(new this._connection(o.ipAddress,o.port,t,this._log,this._args.testServers,!!i&&a),void 0,new this._fallbackConnection(o.ipAddress,o.port,t,this._log,this._args.testServers,!!i&&a)),this.session.dcId!==t&&!e._authenticated){this._log.info(`Exporting authorization for data center ${o.ipAddress}`);const n=await this.invoke(new g.auth.ExportAuthorization({dcId:t})),s=this._initWith(new g.auth.ImportAuthorization({id:n.id,bytes:n.bytes}));await e.send(s),e._authenticated=!0}return e.dcId=t,e.userDisconnected=!1,s&&(s(),delete this._waitingForAuthKey[t]),this._shouldDebugExportedSenders&&console.warn(`✅ Connected to exported sender idx=${n} dc=${t}`),e}catch(s){this._shouldDebugExportedSenders&&console.error(`☠️ ERROR! idx=${n} dcId=${t} ${s.message}`),console.error(s),await d.sleep(1e3),await e.disconnect()}}releaseExportedSender(e){const t=e._dcId,n=e._senderIndex;this._exportedSenderRefCounter[t]&&this._exportedSenderRefCounter[t][n]&&(this._exportedSenderRefCounter[t][n]-=1,this._exportedSenderRefCounter[t][n]<=0&&(this._exportedSenderReleaseTimeouts[t]||(this._exportedSenderReleaseTimeouts[t]={}),this._exportedSenderReleaseTimeouts[t][n]=setTimeout((()=>{this._shouldDebugExportedSenders&&console.log(`[CC] [idx=${n} dcId=${t}] 🚪 Release`),e.disconnect(),this._exportedSenderReleaseTimeouts[t][n]=void 0,this._exportedSenderPromises[t][n]=void 0}),3e4)))}async _borrowExportedSender(e,t,n,s,a){if(this._additionalDcsDisabled)return;const i=s||0;let o;this._exportedSenderPromises[e]||(this._exportedSenderPromises[e]={}),this._exportedSenderRefCounter[e]||(this._exportedSenderRefCounter[e]={}),this._exportedSenderPromises[e][i]&&!t||(this._shouldDebugExportedSenders&&console.warn(`🕒 Connecting to exported sender idx=${i} dc=${e} `+(t?"(reconnect)":"")),this._exportedSenderRefCounter[e][i]=0,this._exportedSenderPromises[e][i]=this._connectSender(n||this._createExportedSender(e,i),e,s,a));try{if(o=await this._exportedSenderPromises[e][i],!o.isConnected())return o.isConnecting?(await d.sleep(1e3),this._borrowExportedSender(e,!1,o,i,a)):this._borrowExportedSender(e,!0,o,i,a)}catch(t){return console.error(t),this._borrowExportedSender(e,!0,void 0,i,a)}return this._exportedSenderRefCounter[e][i]+=1,this._exportedSenderReleaseTimeouts[e]||(this._exportedSenderReleaseTimeouts[e]={}),this._exportedSenderReleaseTimeouts[e][i]&&(clearTimeout(this._exportedSenderReleaseTimeouts[e][i]),this._exportedSenderReleaseTimeouts[e][i]=void 0),o}_createExportedSender(e,t){return new m(this.session.getAuthKey(e),{logger:this._log,dcId:e,senderIndex:t,retries:this._connectionRetries,retriesToFallback:this._connectionRetriesToFallback,delay:this._retryDelay,retryMainConnectionDelay:this._retryMainConnectionDelay,shouldForceHttpTransport:this._shouldForceHttpTransport,shouldAllowHttpTransport:this._shouldAllowHttpTransport,autoReconnect:this._autoReconnect,connectTimeout:this._timeout,authKeyCallback:this._authKeyCallback.bind(this),isMainSender:e===this.session.dcId,isExported:!0,updateCallback:this._handleUpdate.bind(this),getShouldDebugExportedSenders:this.getShouldDebugExportedSenders.bind(this),onConnectionBreak:()=>this._cleanupExportedSender(e,t)})}getSender(e,t,n){return e?this._borrowExportedSender(e,void 0,void 0,t,n):Promise.resolve(this._sender)}downloadFile(e){return v(this,e,arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},this._shouldDebugExportedSenders)}downloadMedia(e,t){let n;if(n=e instanceof f.Message||e instanceof f.StoryItem?e.media:e instanceof f.MessageService?e.action.photo:e,"string"==typeof n)throw new Error("not implemented");return n instanceof f.MessageMediaWebPage&&n.webpage instanceof f.WebPage&&(n=n.webpage.document||n.webpage.photo),n instanceof f.MessageMediaPhoto||n instanceof f.Photo?this._downloadPhoto(n,t):n instanceof f.MessageMediaDocument||n instanceof f.Document?this._downloadDocument(n,t):n instanceof f.MessageMediaContact?this._downloadContact(n,t):n instanceof f.WebDocument||n instanceof f.WebDocumentNoProxy?this._downloadWebDocument(n,t):void 0}downloadProfilePhoto(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];const n=e.photo;if(!(n instanceof f.UserProfilePhoto||n instanceof f.ChatPhoto))return;const s=n.dcId,a=new f.InputPeerPhotoFileLocation({peer:u.getInputPeer(e),photoId:n.photoId,big:t});return this.downloadFile(a,{dcId:s})}downloadStickerSetThumb(e){if(!e.thumbs?.length&&!e.thumbDocumentId)return;const{thumbVersion:t}=e;return e.thumbDocumentId?this.invoke(new f.messages.GetCustomEmojiDocuments({documentId:[e.thumbDocumentId]})).then((e=>{const t=e[0];return this.downloadFile(new f.InputDocumentFileLocation({id:t.id,accessHash:t.accessHash,fileReference:t.fileReference,thumbSize:""}),{fileSize:t.size.toJSNumber(),dcId:t.dcId})})):this.downloadFile(new f.InputStickerSetThumb({stickerset:new f.InputStickerSetID({id:e.id,accessHash:e.accessHash}),thumbVersion:t}),{dcId:e.thumbDcId})}_pickFileSize(e,t){if(!t||!e||!e.length)return;let n;for(let s=k.indexOf(t);s<k.length;s++)if(n=e.find((e=>e.type===k[s])),n)return n}_downloadCachedPhotoSize(e){let t;return t=e instanceof f.PhotoStrippedSize?u.strippedPhotoToJpg(e.bytes):e.bytes,t}_downloadPhoto(e,t){if(e instanceof f.MessageMediaPhoto&&(e=e.photo),!(e instanceof f.Photo))return;const n=e.sizes.reduce(((e,t)=>t.w?e.w>t.w?e:t:e)),s="u"===t.sizeType||"v"===t.sizeType,a=t.sizeType?this._pickFileSize(s?[...e.videoSizes,...e.sizes]:e.sizes,t.sizeType):n;return!a||a instanceof f.PhotoSizeEmpty?void 0:a instanceof f.PhotoCachedSize||a instanceof f.PhotoStrippedSize?this._downloadCachedPhotoSize(a):this.downloadFile(new f.InputPhotoFileLocation({id:e.id,accessHash:e.accessHash,fileReference:e.fileReference,thumbSize:a.type}),{dcId:e.dcId,fileSize:a.size||Math.max(...a.sizes||[]),progressCallback:t.progressCallback})}_downloadDocument(e,t){if(e instanceof f.MessageMediaDocument&&(e=e.document),!(e instanceof f.Document))return;let n;if(t.sizeType){if(n=e.thumbs?this._pickFileSize([...e.videoThumbs||[],...e.thumbs],t.sizeType):void 0,!n&&e.mimeType.startsWith("video/"))return;if(n&&(n instanceof f.PhotoCachedSize||n instanceof f.PhotoStrippedSize))return this._downloadCachedPhotoSize(n)}return this.downloadFile(new f.InputDocumentFileLocation({id:e.id,accessHash:e.accessHash,fileReference:e.fileReference,thumbSize:n?n.type:""}),{fileSize:n?n.size:e.size.toJSNumber(),progressCallback:t.progressCallback,start:t.start,end:t.end,dcId:e.dcId,workers:t.workers})}_downloadContact(e,t){throw new Error("not implemented")}async _downloadWebDocument(e){if(e.url&&!("accessHash"in e)){const t=await fetch(e.url).then((e=>e.arrayBuffer()));return s.from(t)}try{const t=[];let n=0;for(;;){const s=new g.upload.GetWebFile({location:new f.InputWebFileLocation({url:e.url,accessHash:e.accessHash}),offset:n,limit:R}),a=await this._borrowExportedSender(this._config?.webfileDcId||4),i=await a.send(s);if(this.releaseExportedSender(a),n+=131072,!i.bytes.length)break;if(t.push(i.bytes),i.bytes.length<R)break}return s.concat(t)}catch(e){if("WEBFILE_NOT_AVAILABLE"===e.message)return s.alloc(0);throw e}}async downloadStaticMap(e,t,n,a,i,c,d,u){try{const l=[];let p=0;for(;;)try{const s=new g.upload.GetWebFile({location:new f.InputWebFileGeoPointLocation({geoPoint:new f.InputGeoPoint({lat:n,long:t,accuracyRadius:u}),accessHash:e,w:a,h:i,zoom:c,scale:d}),offset:p,limit:R}),o=await this._borrowExportedSender(4),r=await o.send(s);if(this.releaseExportedSender(o),p+=131072,!r.bytes.length)break;if(l.push(r.bytes),r.bytes.length<R)break}catch(e){if(e instanceof r.FloodWaitError){console.warn(`getWebFile: sleeping for ${e.seconds}s on flood wait`),await o(1e3*e.seconds);continue}}return s.concat(l)}catch(e){if("WEBFILE_NOT_AVAILABLE"===e.message)return s.alloc(0);throw e}}async invoke(e,t,n){let s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if("request"!==e.classType)throw new Error("You can only invoke MTProtoRequests");const a=void 0!==t;let i=a?await this.getSender(t):this._sender;this._lastRequest=Date.now(),await this._connectedDeferred.promise;const c=new C(e,n);let d=0;for(d=0;d<this._requestRetries;d++){i.addStateToQueue(c);try{const e=await c.promise;return c.finished.resolve(),a&&this.releaseExportedSender(i),e}catch(e){if(e instanceof r.ServerError||"RPC_CALL_FAIL"===e.message||"RPC_MCGET_FAIL"===e.message||e.message.match(/INTERDC_\d_CALL(_RICH)?_ERROR/))this._log.warn(`Telegram is having internal issues ${e.constructor.name}`),await o(2e3);else if(e instanceof r.FloodWaitError||e instanceof r.FloodTestPhoneWaitError){if(!(e.seconds<=this.floodSleepLimit))throw c.finished.resolve(),a&&this.releaseExportedSender(i),e;this._log.info(`Sleeping for ${e.seconds}s on flood wait`),await o(1e3*e.seconds)}else if(e instanceof r.PhoneMigrateError||e instanceof r.NetworkMigrateError||e instanceof r.UserMigrateError){if(this._log.info(`Phone migrated to ${e.newDc}`),(e instanceof r.PhoneMigrateError||e instanceof r.NetworkMigrateError)&&await w(this))throw c.finished.resolve(),a&&this.releaseExportedSender(i),e;await this._switchDC(e.newDc),a&&this.releaseExportedSender(i),i=void 0===t?this._sender:await this.getSender(t)}else if(e instanceof r.MsgWaitError)await c.isReady(),c.after=void 0;else if("CONNECTION_NOT_INITED"===e.message)await this.disconnect(),await o(2e3),await this.connect();else{if(!(e instanceof r.TimedOutError))throw c.finished.resolve(),a&&this.releaseExportedSender(i),e;if(!s)throw c.finished.resolve(),a&&this.releaseExportedSender(i),e}}c.resetPromise()}throw a&&this.releaseExportedSender(i),new Error(`Request was unsuccessful ${d} time(s)`)}async invokeBeacon(e,t){if("request"!==e.classType)throw new Error("You can only invoke MTProtoRequests");const n=void 0!==t,s=n?await this.getSender(t):this._sender;s.sendBeacon(e),n&&this.releaseExportedSender(s)}setIsPremium(e){this.isPremium=e}async getMe(){try{return(await this.invoke(new g.users.GetUsers({id:[new f.InputUserSelf]})))[0]}catch(e){this._log.warn("error while getting me"),this._log.warn(e)}}async loadConfig(){this._config||(this._config=await this.invoke(new g.help.GetConfig))}async start(e){if(this.isConnected()||await this.connect(),this.loadConfig(),await w(this,e.shouldThrowIfUnauthorized))return;const t={apiId:this.apiId,apiHash:this.apiHash};await b(this,t,e)}uploadFile(e){return S(this,e,this._shouldDebugExportedSenders)}updateTwoFaSettings(e){return I(this,e)}getTmpPassword(e,t){return A(this,e,t)}getCurrentPassword(e){return P(this,e)}addEventHandler(e,t){this._eventBuilders.push([t,e])}_handleUpdate(e){if(e instanceof f.Updates||e instanceof f.UpdatesCombined){const t=[];for(const n of[...e.users,...e.chats])t.push(n);this._processUpdate(e,t)}else e instanceof f.UpdateShort?this._processUpdate(e.update,void 0):this._processUpdate(e,void 0)}_processUpdate(e,t){e._entities=t||[];const n={update:e};this._dispatchUpdate(n)}async _dispatchUpdate(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{update:void 0};for(const[t,n]of this._eventBuilders){const s=t.build(e.update);s&&await n(s)}}isConnected(){return!(!this._sender||!this._sender.isConnected())}}var E,B,D,U;function x(e,t){let n=!1;return Promise.race([e(),d.sleep(t).then((()=>n?void 0:Promise.reject(new Error("TIMEOUT"))))]).finally((()=>{n=!0}))}async function V(e,t,n){for(let s=0;s<t;s++)try{return await e()}catch(e){if(s===t-1)throw e;await d.sleep(n)}}E=T,D={connection:h,fallbackConnection:_,useIPV6:!1,proxy:void 0,timeout:10,requestRetries:5,connectionRetries:1/0,connectionRetriesToFallback:1,retryDelay:1e3,retryMainConnectionDelay:1e4,autoReconnect:!0,sequentialUpdates:!1,floodSleepLimit:60,deviceModel:void 0,systemVersion:void 0,appVersion:void 0,langCode:"en",systemLangCode:"en",baseLogger:"gramjs",useWSS:!1,additionalDcsDisabled:!1,testServers:!1,dcId:2,shouldAllowHttpTransport:!1,shouldForceHttpTransport:!1,shouldDebugExportedSenders:!1},(B="symbol"==typeof(U=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(B="DEFAULT_OPTIONS"))?U:U+"")in E?Object.defineProperty(E,B,{value:D,enumerable:!0,configurable:!0,writable:!0}):E[B]=D,e.exports=T},53386:(e,t,n)=>{"use strict";n.r(t),n.d(t,{authFlow:()=>l,checkAuthorization:()=>f,signInUserWithPreferredMethod:()=>p});var s=n(96847),a=n.n(s),i=n(80071),o=n(61257),r=n(56215),c=n.n(r);const d="phoneNumber",u=3e4;async function l(e,t,n){let s;s="botAuthToken"in n?await async function(e,t,n){const{apiId:s,apiHash:i}=t,{botAuthToken:o}=n,{user:r}=await e.invoke(new(a().auth.ImportBotAuthorization)({apiId:s,apiHash:i,botAuthToken:o}));return r}(e,t,n):"webAuthToken"in n&&n.webAuthToken?await async function(e,t,n){try{const{apiId:s,apiHash:i}=t,o=await e.invoke(new(a().auth.ImportWebTokenAuthorization)({webAuthToken:n.webAuthToken,apiId:s,apiHash:i}));if(o instanceof a().auth.Authorization)return o.user;throw new Error("SIGN_UP_REQUIRED")}catch(s){return"SESSION_PASSWORD_NEEDED"===s.message?y(e,t,n,!0):(e._log.error(`Failed to login with web token: ${s}`),n.webAuthTokenFailed(),p(e,t,{...n,webAuthToken:void 0}))}}(e,t,n):await p(e,t,n),e._log.info("Signed in successfully as",c().getDisplayName(s))}function p(e,t,n){const{initialMethod:s=d}=n;return"phoneNumber"===s?g(e,t,n):h(e,t,n)}async function f(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];try{return await e.invoke(new(a().updates.GetState)),!0}catch(e){if("Disconnect"===e.message||t)throw e;return!1}}async function g(e,t,n){let s,i,o,r=!1;for(;;)try{if("function"==typeof n.phoneNumber)try{s=await n.phoneNumber()}catch(s){if("RESTART_AUTH_WITH_QR"===s.message)return h(e,t,n);throw s}else s=n.phoneNumber;const a=await m(e,t,s,n.forceSMS);if(i=a.phoneCodeHash,r=a.isCodeViaApp,"string"!=typeof i)throw new Error("Failed to retrieve phone code hash");break}catch(e){if("function"!=typeof n.phoneNumber)throw e;n.onError(e)}let c,d=!1;for(;;)try{try{o=await n.phoneCode(r)}catch(s){if("RESTART_AUTH"===s.message)return g(e,t,n)}if(!o)throw new Error("Code is empty");const u=await e.invoke(new(a().auth.SignIn)({phoneNumber:s,phoneCodeHash:i,phoneCode:o}));if(u instanceof a().auth.AuthorizationSignUpRequired){d=!0,c=u.termsOfService;break}return u.user}catch(s){if("SESSION_PASSWORD_NEEDED"===s.message)return y(e,t,n);n.onError(s)}if(d)for(;;)try{const[t,o]=await n.firstAndLastNames();if(!t)throw new Error("First name is required");const{user:r}=await e.invoke(new(a().auth.SignUp)({phoneNumber:s,phoneCodeHash:i,firstName:t,lastName:o}));return c&&await e.invoke(new(a().help.AcceptTermsOfService)({id:c.id})),r}catch(e){n.onError(e)}return n.onError(new Error("Auth failed")),g(e,t,n)}async function h(e,t,n){let s=!1;const o=(async()=>{for(;!s;){const t=await e.invoke(new(a().auth.ExportLoginToken)({apiId:Number("2496"),apiHash:"8da85b0d5bfe62527e5b244c209159c3",exceptIds:[]}));if(!(t instanceof a().auth.LoginToken))throw new Error("Unexpected");const{token:s,expires:o}=t;await Promise.race([n.qrCode({token:s,expires:o}),(0,i.sleep)(u)])}})(),r=new Promise((t=>{e.addEventHandler((e=>{e instanceof a().UpdateLoginToken&&t()}),{build:e=>e})}));try{await Promise.race([r,o])}catch(s){if("RESTART_AUTH"===s.message)return await g(e,t,n);throw s}finally{s=!0}try{const t=await e.invoke(new(a().auth.ExportLoginToken)({apiId:Number("2496"),apiHash:"8da85b0d5bfe62527e5b244c209159c3",exceptIds:[]}));if(t instanceof a().auth.LoginTokenSuccess&&t.authorization instanceof a().auth.Authorization)return t.authorization.user;if(t instanceof a().auth.LoginTokenMigrateTo){await e._switchDC(t.dcId);const n=await e.invoke(new(a().auth.ImportLoginToken)({token:t.token}));if(n instanceof a().auth.LoginTokenSuccess&&n.authorization instanceof a().auth.Authorization)return n.authorization.user}}catch(s){if("SESSION_PASSWORD_NEEDED"===s.message)return y(e,t,n);throw s}throw void 0}async function m(e,t,n){let s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];try{const{apiId:i,apiHash:o}=t,r=await e.invoke(new(a().auth.SendCode)({phoneNumber:n,apiId:i,apiHash:o,settings:new(a().CodeSettings)}));if(!(r instanceof a().auth.SentCode))throw Error("Unexpected SentCodeSuccess");if(!s||r.type instanceof a().auth.SentCodeTypeSms)return{phoneCodeHash:r.phoneCodeHash,isCodeViaApp:r.type instanceof a().auth.SentCodeTypeApp};const c=await e.invoke(new(a().auth.ResendCode)({phoneNumber:n,phoneCodeHash:r.phoneCodeHash}));if(!(c instanceof a().auth.SentCode))throw Error("Unexpected SentCodeSuccess");return{phoneCodeHash:c.phoneCodeHash,isCodeViaApp:c.type instanceof a().auth.SentCodeTypeApp}}catch(a){if("AUTH_RESTART"===a.message)return m(e,t,n,s);throw a}}async function y(e,t,n){let s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];for(;;)try{const t=await e.invoke(new(a().account.GetPassword)),i=await n.password(t.hint,s);if(!i)throw new Error("Password is empty");const r=await(0,o.computeCheck)(t,i),{user:c}=await e.invoke(new(a().auth.CheckPassword)({password:r}));return c}catch(e){n.onError(e)}}},32538:(e,t,n)=>{"use strict";n.r(t),n.d(t,{downloadFile:()=>I});var s=n(92096),a=n.n(s),i=n(9705),o=n(84846),r=n(9396),c=n.n(r),d=n(96847),u=n.n(d),l=n(86453),p=n(80071),f=n(56215),g=n(48287).hp;function h(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const m=4096,y=64,_=1048576,b=1e3,w=6e4,v=5;class S{constructor(e){h(this,"type",void 0),h(this,"size",void 0),h(this,"buffer",void 0),h(this,"largeFile",void 0),h(this,"largeFileAccessHandle",void 0),this.size=e,this.type=e&&e>self.maxBufferSize?"opfs":"memory"}async init(){if("opfs"===this.type){if(!FileSystemFileHandle?.prototype.createSyncAccessHandle)throw new Error("`createSyncAccessHandle` is not available. Cannot download files larger than 2GB.");const e=await navigator.storage.getDirectory(),t=await e.getDirectoryHandle("downloads",{create:!0});this.largeFile=await t.getFileHandle(Math.random().toString(),{create:!0}),this.largeFileAccessHandle=await this.largeFile.createSyncAccessHandle()}else this.buffer=this.size?g.alloc(this.size):g.alloc(0)}write(e,t){if("opfs"===this.type)this.largeFileAccessHandle.write(e,{at:t});else if(this.size)for(let n=0;n<e.length;n++){if(t+n>=this.buffer.length)return;this.buffer.writeUInt8(e[n],t+n)}else this.buffer=g.concat([this.buffer,e])}getData(){return"opfs"===this.type?this.largeFile.getFile():Promise.resolve(this.buffer)}}async function I(e,t,n,s){const{dcId:a}=n;for(let i=0;i<v;i++)try{return await R(e,t,n,s)}catch(t){if(!((t.message.startsWith("SESSION_REVOKED")||t.message.startsWith("CONNECTION_NOT_INITED"))&&i<v-1))throw t;await e._cleanupExportedSenders(a)}}const A=3,P=6,C=10485760,M=Array(P).fill(void 0).map((()=>new o.j(10)));async function R(e,t,n,s){let{partSizeKb:o,end:r}=n;const{fileSize:d}=n,g="id"in t?t.id:void 0,h=function(){if(s){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];console.log(`⬇️ [${g}/${n.dcId}]`,...t)}};h("Downloading file...");const v=Boolean(e.isPremium),{dcId:I,progressCallback:R,start:k=0}=n;r=r&&r<d?r:d-1,o||(o=d?(0,f.getDownloadPartSize)(k?r-k+1:d):y);const T=1024*o,E=r?Math.ceil((r+1-k+1)/T):1,B=!r,D=d&&d>=C&&!B;let U;if(T%m!=0)throw new Error(`The part size must be evenly divisible by ${m}`);e._log.info(`Downloading file in chunks of ${T} bytes`);const x=new S(r-k+1),V=[];let N=k;const F=M.map((e=>{let{activeWorkers:t}=e;return t}));let q=F.indexOf(Math.min(...F)),G=!1,H=0;R&&R(H);let O=!1;for(await x.init();;){let n=T,o=!1;Math.floor(N/_)!==Math.floor((N+n-1)/_)&&(n=_-N%_,o=!0),N%m==0&&n%m==0||(o=!0);const d=D?q%(v?P:A):0;if(await M[d].requestWorker(),U&&await U.promise,B&&(U=new i.A),G){M[d].releaseWorker();break}const f=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];h(`[${d}/${I}]`,...t)};if(V.push((async i=>{for(;;){let g;try{let c=!1;s&&setTimeout((()=>{c||f(`❗️️ getSender took too long ${i}`)}),8e3),g=await e.getSender(I,d,v),c=!0;let l=!1;s&&setTimeout((()=>{l||f(`❗️️ sender.send took too long ${i}`)}),6e3);const h=await Promise.race([g.send(new(u().upload.GetFile)({location:t,offset:a()(i),limit:n,precise:o||void 0})),(0,p.sleep)(w).then((()=>I===e.session.dcId?(f(`Download timed out ${i}`),Promise.reject(new Error("USER_CANCELED"))):(f(`Download timed out [not main] ${i}`),Promise.reject(new Error("SESSION_REVOKED")))))]);if(e.releaseExportedSender(g),l=!0,R){if(R.isCanceled)throw new Error("USER_CANCELED");H+=1/E,f(`⬇️️ ${100*H}%`),R(H)}return!r&&h.bytes.length<n&&(G=!0),M[d].releaseWorker(),U&&U.resolve(),void x.write(h.bytes,i-k)}catch(t){if(g&&!g.isConnected()){await(0,p.sleep)(b);continue}if(t instanceof c().FloodWaitError){t instanceof c().FloodPremiumWaitError&&!O&&(g?._updateCallback(new l.A(!1)),O=!0),await(0,p.sleep)(1e3*t.seconds);continue}throw f(`Ended not gracefully ${i}`),M[d].releaseWorker(),U&&U.resolve(),G=!0,e.releaseExportedSender(g),t}}})(N)),N+=n,q++,r&&N>r)break}return await Promise.all(V),x.getData()}},38751:(e,t,n)=>{"use strict";n.r(t),n.d(t,{uploadFile:()=>_});var s=n(84846),a=n(9396),i=n.n(a),o=n(96847),r=n.n(o),c=n(86453),d=n(80071),u=n(56215),l=n(48287).hp;const p=1024,f=10485760,g=1e3,h=3,m=6,y=Array(m).fill(void 0).map((()=>new s.j(10)));async function _(e,t,n){const{file:s,onProgress:a}=t,o=Boolean(e.isPremium),{name:_,size:b}=s,w=(0,d.readBigIntFromBuffer)((0,d.generateRandomBytes)(8),!0,!0),v=b>f,S=function(){if(n){for(var e=arguments.length,t=new Array(e),s=0;s<e;s++)t[s]=arguments[s];console.log(`⬆️ [${w}]`,...t)}};S("Uploading file...");const I=(0,u.getUploadPartSize)(b)*p,A=Math.floor((b+I-1)/I),P=y.map((e=>{let{activeWorkers:t}=e;return t}));let C=P.indexOf(Math.min(...P)),M=0;a&&a(M);let R=!1;const k=[];for(let t=0;t<A;t++){const u=C%(o?m:h);if(await y[u].requestWorker(),a?.isCanceled){y[u].releaseWorker();break}const p=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];S(`[${u}]`,...t)},f=s.slice(t*I,(t+1)*I);k.push((async(t,s)=>{for(;;){let f;try{let a=!1;n&&setTimeout((()=>{a||p(`❗️️ getSender took too long j=${t}`)}),8e3),f=await e.getSender(e.session.dcId,u,o),a=!0;let i=!1;const c=await s.arrayBuffer();n&&setTimeout((()=>{i||p(`❗️️ sender.send took too long j=${t}`)}),6e3),await f.send(v?new(r().upload.SaveBigFilePart)({fileId:w,filePart:t,fileTotalParts:A,bytes:l.from(c)}):new(r().upload.SaveFilePart)({fileId:w,filePart:t,bytes:l.from(c)})),e.releaseExportedSender(f),i=!0}catch(n){if(p(`Upload part failed ${n?.toString()} j=${t}`),f&&!f.isConnected()){await(0,d.sleep)(g);continue}if(n instanceof i().FloodWaitError){n instanceof i().FloodPremiumWaitError&&!R&&(f?._updateCallback(new c.A(!0)),R=!0),await(0,d.sleep)(1e3*n.seconds);continue}throw y[u].releaseWorker(),e.releaseExportedSender(f),n}if(y[u].releaseWorker(),a){if(a.isCanceled)throw new Error("USER_CANCELED");M+=1/A,p(100*M+"%"),a(M)}break}})(t,f)),C++}return await Promise.all(k),v?new(r().InputFileBig)({id:w,parts:A,name:_}):new(r().InputFile)({id:w,parts:A,name:_,md5Checksum:""})}},21051:(e,t,n)=>{var s=n(48287).hp;const{sha1:a,toSignedLittleBuffer:i,readBufferFromBigInt:o,readBigIntFromBuffer:r}=n(80071),c=n(28427),{sleep:d}=n(80071);class u{constructor(e,t){if(!t||!e)return;this._key=e,this._hash=t;const n=new c(t);this.auxHash=n.readLong(!1),n.read(4),this.keyId=n.readLong(!1)}async setKey(e){if(!e)return this._key=void 0,this.auxHash=void 0,this.keyId=void 0,void(this._hash=void 0);if(e instanceof u)return this._key=e._key,this.auxHash=e.auxHash,this.keyId=e.keyId,void(this._hash=e._hash);this._key=e,this._hash=await a(this._key);const t=new c(this._hash);this.auxHash=t.readLong(!1),t.read(4),this.keyId=t.readLong(!1)}async waitForKey(){for(;!this.keyId;)await d(20)}getKey(){return this._key}async calcNewNonceHash(e,t){e=i(e,32);const n=s.alloc(1);n.writeUInt8(t,0);const c=s.concat([e,s.concat([n,o(this.auxHash,8,!0)])]),d=(await a(c)).slice(4,20);return r(d,!0,!0)}equals(e){return e instanceof this.constructor&&this._key&&e.getKey()&&e.getKey().equals(this._key)}}e.exports=u},52637:(e,t,n)=>{var s=n(48287).hp;const a=n(97157);e.exports=class{constructor(e,t){if(!s.isBuffer(e)||!s.isBuffer(t)||16!==t.length)throw new Error("Key and iv need to be a buffer");this.cipher=a.createCipheriv("AES-256-CTR",e,t)}encrypt(e){return s.from(this.cipher.update(e))}}},25356:(e,t,n)=>{const s=n(92096),{modExp:a}=n(80071);class i{static gcd(e,t){for(;t.neq(s.zero);){const n=t;t=e.remainder(t),e=n}return e}static factorize(e){if(e.remainder(2).equals(s.zero))return{p:s(2),q:e.divide(s(2))};let t=s.randBetween(s(1),e.minus(1));const n=s.randBetween(s(1),e.minus(1)),o=s.randBetween(s(1),e.minus(1));let r,c=s.one,d=s.one,u=s.one,l=s.zero,p=s.zero;for(;c.eq(s.one);){l=t;for(let i=0;s(i).lesser(d);i++)t=a(t,s(2),e).add(n).remainder(e);for(r=s.zero;r.lesser(d)&&c.eq(s.one);){p=t;const f=s.min(o,d.minus(r));for(let i=0;s(i).lesser(f);i++)t=a(t,s(2),e).add(n).remainder(e),u=u.multiply(l.minus(t).abs()).remainder(e);c=i.gcd(u,e),r=r.add(o)}d=d.multiply(2)}if(c.eq(e))for(;p=a(p,s(2),e).add(n).remainder(e),c=i.gcd(l.minus(p).abs(),e),!c.greater(1););const f=c;return u=e.divide(c),f<u?{p:f,q:u}:{p:u,q:f}}}e.exports=i},72469:(e,t,n)=>{var s=n(48287).hp;const{IGE:a}=n(7692),i=n(80071);e.exports=class{constructor(e,t){this.ige=new a(e,t)}decryptIge(e){return i.convertToLittle(this.ige.decrypt(e))}encryptIge(e){const t=e.length%16;return t&&(e=s.concat([e,i.generateRandomBytes(16-t)])),i.convertToLittle(this.ige.encrypt(e))}}},76611:(e,t,n)=>{"use strict";function s(e){const t=new Uint8Array(4*e.length);let n=0;for(let s=0;s<e.length;s++){const a=e[s];t[n++]=a>>>24,t[n++]=a>>16&255,t[n++]=a>>8&255,t[n++]=255&a}return t.buffer}function a(e){return e.buffer}function i(e){const t=new Uint8Array(e),n=new Uint32Array(t.length/4);for(let e=0;e<t.length;e+=4)n[e/4]=t[e]<<24^t[e+1]<<16^t[e+2]<<8^t[e+3];return n}function o(e){return new Uint32Array(e)}n.r(t),n.d(t,{ab2i:()=>d,ab2iBig:()=>o,ab2iLow:()=>i,i2ab:()=>c,i2abBig:()=>a,i2abLow:()=>s,isBigEndian:()=>r});const r=1===new Uint8Array(new Uint32Array([16909060]))[0],c=r?a:s,d=r?o:i},97157:(e,t,n)=>{var s=n(48287).hp;const a=n(7692).default,{i2ab:i,ab2i:o}=n(76611),{getWords:r}=n(86001);class c{constructor(e){this.setBytes(e)}setBytes(e){e=s.from(e),this._counter=e}increment(){for(let e=15;e>=0;e--){if(255!==this._counter[e]){this._counter[e]++;break}this._counter[e]=0}}}class d{constructor(e,t){t instanceof c||(t=new c(t)),this._counter=t,this._remainingCounter=void 0,this._remainingCounterIndex=16,this._aes=new a(r(e))}update(e){return this.encrypt(e)}encrypt(e){const t=s.from(e);for(let e=0;e<t.length;e++)16===this._remainingCounterIndex&&(this._remainingCounter=s.from(i(this._aes.encrypt(o(this._counter._counter)))),this._remainingCounterIndex=0,this._counter.increment()),t[e]^=this._remainingCounter[this._remainingCounterIndex++];return t}}class u{constructor(e){this.algorithm=e}update(e){this.data=new Uint8Array(e)}async digest(){return"sha1"===this.algorithm?s.from(await self.crypto.subtle.digest("SHA-1",this.data)):"sha256"===this.algorithm?s.from(await self.crypto.subtle.digest("SHA-256",this.data)):void 0}}e.exports={createCipheriv:function(e,t,n){if(e.includes("ECB"))throw new Error("Not supported");return new d(t,n)},createDecipheriv:function(e,t,n){if(e.includes("ECB"))throw new Error("Not supported");return new d(t,n)},randomBytes:function(e){const t=new Uint8Array(e);return crypto.getRandomValues(t),t},createHash:function(e){return new u(e)},pbkdf2:async function(e,t,n){const a=await crypto.subtle.importKey("raw",e,{name:"PBKDF2"},!1,["deriveBits"]);return s.from(await crypto.subtle.deriveBits({name:"PBKDF2",hash:"SHA-512",salt:t,iterations:n},a,512))}}},86001:(e,t,n)=>{"use strict";function s(e,t){return e.charCodeAt(t)<<24^e.charCodeAt(t+1)<<16^e.charCodeAt(t+2)<<8^e.charCodeAt(t+3)}function a(e){if(e instanceof Uint32Array)return e;if("string"==typeof e){if(e.length%4!=0)for(let t=e.length%4;t<=4;t++)e+="\0x00";const t=new Uint32Array(e.length/4);for(let n=0;n<e.length;n+=4)t[n/4]=s(e,n);return t}if(e instanceof Uint8Array){const t=new Uint32Array(e.length/4);for(let n=0;n<e.length;n+=4)t[n/4]=e[n]<<24^e[n+1]<<16^e[n+2]<<8^e[n+3];return t}throw new Error("Unable to create 32-bit words")}function i(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e;for(let s=0;s<e.length;s++)n[s]=e[s]^t[s]}n.r(t),n.d(t,{getWords:()=>a,s2i:()=>s,xor:()=>i})},48383:e=>{class t extends Error{constructor(){super("The read operation was cancelled.")}}class n extends Error{constructor(e,t){super(`Could not find a matching Constructor ID for the TLObject that was supposed to be\n read with ID ${e}. Most likely, a TLObject was trying to be read when\n it should not be read. Remaining bytes: ${t.length}`),"undefined"!=typeof alert&&alert(`Missing MTProto Entity: Please, make sure to add TL definition for ID ${e}`),this.invalidConstructorId=e,this.remaining=t}}class s extends Error{constructor(e,t){super(`Invalid checksum (${e} when ${t} was expected). This packet should be skipped.`),this.checksum=e,this.validChecksum=t}}class a extends Error{constructor(e){let t;4===e.length?(t=-e.readInt32LE(0),super(`Invalid response buffer (HTTP code ${t})`)):super(`Invalid response buffer (too short ${e})`),this.code=t,this.payload=e}}class i extends Error{constructor(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];t.length||(t=["A security check failed."]),super(...t)}}class o extends Error{constructor(e,t){let n=o.ErrorMessages[t]||`Unknown error code (this should not happen): ${t}.`;n+=` Caused by ${e.className}`,super(n),this.message=n,this.code=t}}var r,c,d,u;r=o,d={16:"msg_id too low (most likely, client time is wrong it would be worthwhile to synchronize it using msg_id notifications and re-send the original message with the “correct” msg_id or wrap it in a container with a new msg_id if the original message had waited too long on the client to be transmitted).",17:"msg_id too high (similar to the previous case, the client time has to be synchronized, and the message re-sent with the correct msg_id).",18:"Incorrect two lower order msg_id bits (the server expects client message msg_id to be divisible by 4).",19:"Container msg_id is the same as msg_id of a previously received message (this must never happen).",20:"Message too old, and it cannot be verified whether the server has received a message with this msg_id or not.",32:"msg_seqno too low (the server has already received a message with a lower msg_id but with either a higher or an equal and odd seqno).",33:"msg_seqno too high (similarly, there is a message with a higher msg_id but with either a lower or an equal and odd seqno).",34:"An even msg_seqno expected (irrelevant message), but odd received.",35:"Odd msg_seqno expected (relevant message), but even received.",48:"Incorrect server salt (in this case, the bad_server_salt response is received with the correct salt, and the message is to be re-sent with it).",64:"Invalid container."},(c="symbol"==typeof(u=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(c="ErrorMessages"))?u:u+"")in r?Object.defineProperty(r,c,{value:d,enumerable:!0,configurable:!0,writable:!0}):r[c]=d,e.exports={ReadCancelledError:t,TypeNotFoundError:n,InvalidChecksumError:s,InvalidBufferError:a,SecurityError:i,CdnFileTamperedError:class extends i{constructor(){super("The CDN file has been altered and its download cancelled.")}},BadMessageError:o}},74681:e=>{function t(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class n extends Error{constructor(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;super("RPCError {0}: {1}{2}".replace("{0}",s).replace("{1}",e).replace("{2}",n._fmtRequest(t))),this.code=s,this.message=e}static _fmtRequest(e){return e?` (caused by ${e.className})`:""}}e.exports={RPCError:n,InvalidDCError:class extends n{constructor(e,t,n){super(t,e,n),this.code=n||303,this.message=t||"ERROR_SEE_OTHER"}},BadRequestError:class extends n{constructor(){super(...arguments),t(this,"code",400),t(this,"message","BAD_REQUEST")}},UnauthorizedError:class extends n{constructor(){super(...arguments),t(this,"code",401),t(this,"message","UNAUTHORIZED")}},ForbiddenError:class extends n{constructor(){super(...arguments),t(this,"code",403),t(this,"message","FORBIDDEN")}},NotFoundError:class extends n{constructor(){super(...arguments),t(this,"code",404),t(this,"message","NOT_FOUND")}},AuthKeyError:class extends n{constructor(){super(...arguments),t(this,"code",406),t(this,"message","AUTH_KEY")}},FloodError:class extends n{constructor(){super(...arguments),t(this,"code",420),t(this,"message","FLOOD")}},ServerError:class extends n{constructor(){super(...arguments),t(this,"code",500),t(this,"message","INTERNAL")}},TimedOutError:class extends n{constructor(){super(...arguments),t(this,"code",503),t(this,"message","Timeout")}}}},77389:(e,t,n)=>{const{RPCError:s,InvalidDCError:a,FloodError:i,BadRequestError:o,TimedOutError:r}=n(74681);class c extends a{constructor(e){const t=Number(e.capture||0);super(`The user whose identity is being used to execute queries is associated with DC ${t}${s._fmtRequest(e.request)}`),this.message=`The user whose identity is being used to execute queries is associated with DC ${t}${s._fmtRequest(e.request)}`,this.newDc=t}}class d extends a{constructor(e){const t=Number(e.capture||0);super(`The phone number a user is trying to use for authorization is associated with DC ${t}${s._fmtRequest(e.request)}`),this.message=`The phone number a user is trying to use for authorization is associated with DC ${t}${s._fmtRequest(e.request)}`,this.newDc=t}}class u extends i{constructor(e){const t=Number(e.capture||0);super(`A wait of ${t} seconds is required before sending another message in this chat${s._fmtRequest(e.request)}`),this.message=`A wait of ${t} seconds is required before sending another message in this chat${s._fmtRequest(e.request)}`,this.seconds=t}}class l extends i{constructor(e){const t=Number(e.capture||0);super(`A wait of ${t} seconds is required${s._fmtRequest(e.request)}`),this.message=`A wait of ${t} seconds is required${s._fmtRequest(e.request)}`,this.seconds=t}}class p extends l{constructor(e){const t=Number(e.capture||0);super(`A wait of ${t} seconds is required${s._fmtRequest(e.request)}`),this.message=`A wait of ${t} seconds is required${s._fmtRequest(e.request)}`,this.seconds=t}}class f extends i{constructor(e){super(`Message failed to be sent.${s._fmtRequest(e.request)}`),this.message=`Message failed to be sent.${s._fmtRequest(e.request)}`}}class g extends i{constructor(e){const t=Number(e.capture||0);super(`A wait of ${t} seconds is required in the test servers${s._fmtRequest(e.request)}`),this.message=`A wait of ${t} seconds is required in the test servers${s._fmtRequest(e.request)}`,this.seconds=t}}class h extends a{constructor(e){const t=Number(e.capture||0);super(`The file to be accessed is currently stored in DC ${t}${s._fmtRequest(e.request)}`),this.message=`The file to be accessed is currently stored in DC ${t}${s._fmtRequest(e.request)}`,this.newDc=t}}class m extends a{constructor(e){const t=Number(e.capture||0);super(`The source IP address is associated with DC ${t}${s._fmtRequest(e.request)}`),this.message=`The source IP address is associated with DC ${t}${s._fmtRequest(e.request)}`,this.newDc=t}}class y extends o{constructor(e){const t=Number(e.capture||0);super(`Email unconfirmed, the length of the code must be ${t}${s._fmtRequest(e.request)}`),this.message=`Email unconfirmed, the length of the code must be ${t}${s._fmtRequest(e.request)}`,this.codeLength=t}}class _ extends o{constructor(e){const t=Number(e.capture||0);super(`The password was modified less than 24 hours ago, try again in ${t} seconds.`),this.message=`The password was modified less than 24 hours ago, try again in ${t} seconds.`,this.seconds=t}}const b=[[/FILE_MIGRATE_(\d+)/,h],[/FLOOD_TEST_PHONE_WAIT_(\d+)/,g],[/FLOOD_WAIT_(\d+)/,l],[/FLOOD_PREMIUM_WAIT_(\d+)/,p],[/MSG_WAIT_(.*)/,f],[/PHONE_MIGRATE_(\d+)/,d],[/SLOWMODE_WAIT_(\d+)/,u],[/USER_MIGRATE_(\d+)/,c],[/NETWORK_MIGRATE_(\d+)/,m],[/EMAIL_UNCONFIRMED_(\d+)/,y],[/PASSWORD_TOO_FRESH_(\d+)/,_],[/^Timeout$/,r]];e.exports={rpcErrorRe:b,FileMigrateError:h,FloodTestPhoneWaitError:g,FloodWaitError:l,FloodPremiumWaitError:p,PhoneMigrateError:d,SlowModeWaitError:u,UserMigrateError:c,NetworkMigrateError:m,MsgWaitError:f,EmailUnconfirmedError:y,PasswordModifiedError:_}},9396:(e,t,n)=>{const{RPCError:s}=n(74681),{rpcErrorRe:a}=n(77389),i=n(48383),o=n(74681),r=n(77389);e.exports={RPCMessageToError:function(e,t){for(const[n,s]of a){const a=e.errorMessage.match(n);if(a)return new s({request:t,capture:2===a.length?parseInt(a[1],10):void 0})}return new s(e.errorMessage,t)},...i,...o,...r}},55769:()=>{},73300:(e,t,n)=>{const{EventBuilder:s}=n(53505);e.exports=class extends s{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{types:void 0,func:void 0};super(),e.types?this.types=e.types:this.types=!0}build(e){return e}}},53505:e=>{e.exports={EventBuilder:class{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{chats:void 0,blacklistChats:void 0,func:void 0};this.chats=e.chats,this.blacklistChats=Boolean(e.blacklistChats),this.resolved=!1,this.func=e.func}build(e){}}}},65230:(e,t,n)=>{const s=n(55769),a=n(73300);class i extends Error{}e.exports={NewMessage:s,StopPropagation:i,Raw:a}},60010:e=>{e.exports=class{constructor(){this._queue=[],this.canGet=new Promise((e=>{this.resolveGet=e})),this.canPush=!0}async push(e){await this.canPush,this._queue.push(e),this.resolveGet(!0),this.canPush=new Promise((e=>{this.resolvePush=e}))}async pop(){await this.canGet;const e=this._queue.pop();return this.resolvePush(!0),this.canGet=new Promise((e=>{this.resolveGet=e})),e}}},28427:(e,t,n)=>{const{TypeNotFoundError:s}=n(48383),{coreObjects:a}=n(48075),{tlobjects:i}=n(50114),{readBigIntFromBuffer:o}=n(80071);e.exports=class{constructor(e){this.stream=e,this._last=void 0,this.offset=0}readByte(){return this.read(1)[0]}readInt(){let e;return e=arguments.length>0&&void 0!==arguments[0]&&!arguments[0]?this.stream.readUInt32LE(this.offset):this.stream.readInt32LE(this.offset),this.offset+=4,e}readLong(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this.readLargeInt(64,e)}readFloat(){return this.read(4).readFloatLE(0)}readDouble(){return this.read(8).readDoubleLE(0)}readLargeInt(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];const n=this.read(Math.floor(e/8));return o(n,!0,t)}read(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:-1;-1===e&&(e=this.stream.length-this.offset);const t=this.stream.slice(this.offset,this.offset+e);if(this.offset+=e,t.length!==e)throw Error(`No more data left to read (need ${e}, got ${t.length}: ${t}); last read ${this._last}`);return this._last=t,t}getBuffer(){return this.stream}tgReadBytes(){const e=this.readByte();let t,n;254===e?(n=this.readByte()|this.readByte()<<8|this.readByte()<<16,t=n%4):(n=e,t=(n+1)%4);const s=this.read(n);return t>0&&(t=4-t,this.read(t)),s}tgReadString(){return this.tgReadBytes().toString("utf-8")}tgReadBool(){const e=this.readInt(!1);if(2574415285===e)return!0;if(3162085175===e)return!1;throw new Error(`Invalid boolean code ${e.toString("16")}`)}tgReadDate(){const e=this.readInt();return new Date(1e3*e)}tgReadObject(){const e=this.readInt(!1);let t=i[e];if(void 0===t){if(2574415285===e)return!0;if(3162085175===e)return!1;if(481674261===e){const e=[],t=this.readInt();for(let n=0;n<t;n++)e.push(this.tgReadObject());return e}if(t=a[e],void 0===t){this.seek(-4);const t=this.tellPosition(),n=new s(e,this.read());throw this.setPosition(t),n}}return t.fromReader(this)}tgReadVector(){if(481674261!==this.readInt(!1))throw new Error("Invalid constructor code, vector was expected");const e=this.readInt(),t=[];for(let n=0;n<e;n++)t.push(this.tgReadObject());return t}close(){this.stream=void 0}tellPosition(){return this.offset}setPosition(e){this.offset=e}seek(e){this.offset+=e}}},70747:(e,t,n)=>{var s=n(48287).hp;e.exports=class{constructor(e){this._stream=e}write(e){this._stream=s.concat([this._stream,e])}getValue(){return this._stream}}},93671:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var s,a=n(48287).hp;function i(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const o=new Error("HttpStream was closed");(s=AbortSignal).timeout??(s.timeout=function(e){const t=new AbortController;return setTimeout((()=>t.abort()),e),t.signal});class r{constructor(e){i(this,"url",void 0),i(this,"isClosed",void 0),i(this,"stream",[]),i(this,"canRead",Promise.resolve()),i(this,"resolveRead",void 0),i(this,"rejectRead",void 0),i(this,"disconnectedCallback",void 0),this.isClosed=!0,this.disconnectedCallback=e}async read(){await this.canRead;const e=this.stream.shift();return 0===this.stream.length&&(this.canRead=new Promise(((e,t)=>{this.resolveRead=e,this.rejectRead=t}))),e}static getURL(e,t,n,s){return 443===t?`https://${e}:${t}/apiw1${n?"_test":""}${s?"_premium":""}`:`http://${e}:${t}/apiw1${n?"_test":""}${s?"_premium":""}`}async connect(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this.stream=[],this.canRead=new Promise(((e,t)=>{this.resolveRead=e,this.rejectRead=t})),this.url=r.getURL(t,e,n,s),await fetch(this.url,{method:"POST",body:a.from([]),mode:"cors",signal:AbortSignal.timeout(1e4)}),this.isClosed=!1}write(e){if(this.isClosed||!this.url)throw this.handleDisconnect(),o;return fetch(this.url,{method:"POST",body:e,mode:"cors",signal:AbortSignal.timeout(1e4)}).then((async e=>{if(this.isClosed)return void this.handleDisconnect();if(200!==e.status)throw o;const t=await e.arrayBuffer();this.stream=this.stream.concat(a.from(t)),this.resolveRead&&!this.isClosed&&this.resolveRead()})).catch((e=>{throw this.handleDisconnect(),e}))}handleDisconnect(){this.disconnectedCallback?.(),this.rejectRead&&this.rejectRead()}close(){this.isClosed=!0,this.handleDisconnect(),this.disconnectedCallback=void 0}}const c=r},51369:e=>{let t;class n{constructor(e){t||(t=e||"debug"),this.colors={start:"%c",warn:"color : #ff00ff",info:"color : #ffff00",debug:"color : #00ffff",error:"color : #ff0000",end:""},this.messageFormat="[%t] [%l] - [%m]"}static setLevel(e){t=e}canSend(e){return n.LEVEL_MAP.get(t).has(e)}warn(e){this._log("warn",e,this.colors.warn)}info(e){this._log("info",e,this.colors.info)}debug(e){this._log("debug",e,this.colors.debug)}error(e){this._log("error",e,this.colors.error)}format(e,t){return this.messageFormat.replace("%t",(new Date).toISOString()).replace("%l",t.toUpperCase()).replace("%m",e)}_log(e,n,s){t&&this.canSend(e)&&console.log(this.colors.start+this.format(n,e),s)}}var s,a,i,o;s=n,a="LEVEL_MAP",i=new Map([["error",new Set(["error"])],["warn",new Set(["error","warn"])],["info",new Set(["error","warn","info"])],["debug",new Set(["error","warn","info","debug"])]]),(a="symbol"==typeof(o=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(a))?o:o+"")in s?Object.defineProperty(s,a,{value:i,enumerable:!0,configurable:!0,writable:!0}):s[a]=i,e.exports=n},77552:(e,t,n)=>{var s=n(48287).hp;const a=n(30293),i=n(61028),o=n(70747),r=new Set(["messages.SendMessage","messages.SendMedia","messages.SendMultiMedia","messages.ForwardMessages","messages.SendInlineBotResult"]);e.exports=class{constructor(e,t){this._state=e,this._queue=[],this._pendingStates=[],this._ready=new Promise((e=>{this.setReady=e})),this._log=t}values(){return this._queue}clear(){this._queue=[],this.append(void 0)}append(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(e&&r.has(e.request.className))if(n){for(let t=0;t<this._queue.length;t++)if(r.has(this._queue[t]?.request.className)){this._queue[t].after=e;break}}else for(let t=this._queue.length-1;t>=0;t--)if(r.has(this._queue[t]?.request.className)){e.after=this._queue[t];break}n?this._queue.unshift(e):this._queue.push(e),t&&this.setReady(!0),e&&1658238041!==e.request.CONSTRUCTOR_ID&&(this._pendingStates.push(e),e.promise.catch((()=>{})).finally((()=>{this._pendingStates=this._pendingStates.filter((t=>t!==e))})))}prepend(e){e.reverse().forEach((e=>{this.append(e,!1,!0)})),this.setReady(!0)}extend(e){e.forEach((e=>{this.append(e,!1)})),this.setReady(!0)}async getBeacon(e){const t=new o(s.alloc(0));if(e.data.length+i.SIZE_OVERHEAD<=a.MAXIMUM_SIZE){let n;return e.after&&(n=e.after.msgId),e.msgId=await this._state.writeDataAsMessage(t,e.data,"request"===e.request.classType,n),this._log.debug(`Assigned msgId = ${e.msgId} to ${e.request.className||e.request.constructor.name}`),t.getValue()}this._log.warn(`Message payload for ${e.request.className||e.request.constructor.name} is too long ${e.data.length} and cannot be sent`),e.reject("Request Payload is too big")}async wait(){this._queue.length||(this._ready=new Promise((e=>{this.setReady=e})),await this._ready)}async get(){if(!this._queue[this._queue.length-1])return void(this._queue=this._queue.filter(Boolean));let e,t=new o(s.alloc(0));const n=[];let r=0;for(;this._queue.length&&n.length<=a.MAXIMUM_LENGTH;){const e=this._queue.shift();if(e)if(e.abortSignal?.aborted)e.reject(new Error("Request aborted"));else if(r+=e.data.length+i.SIZE_OVERHEAD,r<=a.MAXIMUM_SIZE){let s;e.after&&(s=e.after.msgId),e.msgId=await this._state.writeDataAsMessage(t,e.data,"request"===e.request.classType,s),this._log.debug(`Assigned msgId = ${e.msgId} to ${e.request.className||e.request.constructor.name}`),n.push(e)}else{if(n.length){this._queue.unshift(e);break}this._log.warn(`Message payload for ${e.request.className||e.request.constructor.name} is too long ${e.data.length} and cannot be sent`),e.reject("Request Payload is too big"),r=0}}if(n.length){if(n.length>1){const i=s.alloc(8);i.writeUInt32LE(a.CONSTRUCTOR_ID,0),i.writeInt32LE(n.length,4),e=s.concat([i,t.getValue()]),t=new o(s.alloc(0));const r=await this._state.writeDataAsMessage(t,e,!1);for(const e of n)e.containerId=r}return e=t.getValue(),{batch:n,data:e}}}}},40041:e=>{e.exports=class{constructor(){this._pending=new Map}set(e,t){this._pending.set(e.toString(),t)}get(e){return this._pending.get(e.toString())}getAndDelete(e){const t=this.get(e);return this.delete(e),t}values(){return Array.from(this._pending.values())}delete(e){this._pending.delete(e.toString())}clear(){this._pending.clear()}}},68338:(e,t,n)=>{var s=n(48287).hp;const{Mutex:a}=n(56693),i=new a,o=new Error("WebSocket was closed");e.exports=class{constructor(e){this.client=void 0,this.closed=!0,this.disconnectedCallback=e,this.timeout=3e3}async readExactly(e){let t=s.alloc(0);for(;;){const n=await this.read(e);if(t=s.concat([t,n]),!(e-=n.length))return t}}async read(e){if(this.closed)throw o;if(await this.canRead,this.closed)throw o;const t=this.stream.slice(0,e);return this.stream=this.stream.slice(e),0===this.stream.length&&(this.canRead=new Promise((e=>{this.resolveRead=e}))),t}async readAll(){if(this.closed||!await this.canRead)throw o;const e=this.stream;return this.stream=s.alloc(0),this.canRead=new Promise((e=>{this.resolveRead=e})),e}getWebSocketLink(e,t,n,s){return 443===t?`wss://${e}:${t}/apiws${n?"_test":""}${s?"_premium":""}`:`ws://${e}:${t}/apiws${n?"_test":""}${s?"_premium":""}`}connect(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],a=arguments.length>3&&void 0!==arguments[3]&&arguments[3];return this.stream=s.alloc(0),this.canRead=new Promise((e=>{this.resolveRead=e})),this.closed=!1,this.website=this.getWebSocketLink(t,e,n,a),this.client=new WebSocket(this.website,"binary"),new Promise(((e,n)=>{let s,a=!1;this.client.onopen=()=>{this.receive(),e(this),a=!0,s&&clearTimeout(s)},this.client.onerror=e=>{console.error("WebSocket error",e),n(e),a=!0,s&&clearTimeout(s)},this.client.onclose=e=>{const{code:n,reason:i,wasClean:o}=e;1e3!==n&&console.error(`Socket ${t} closed. Code: ${n}, reason: ${i}, was clean: ${o}`),this.resolveRead(!1),this.closed=!0,this.disconnectedCallback&&this.disconnectedCallback(),a=!0,s&&clearTimeout(s)},s=setTimeout((()=>{a||(n(new Error("WebSocket connection timeout")),this.resolveRead(!1),this.closed=!0,this.disconnectedCallback&&this.disconnectedCallback(),this.client.close(),this.timeout*=2,this.timeout=Math.min(this.timeout,3e4),s=void 0)}),this.timeout),self.addEventListener("offline",(async()=>{await this.close(),this.resolveRead(!1)}))}))}write(e){if(this.closed)throw o;this.client.send(e)}async close(){await this.client.close(),this.closed=!0}receive(){this.client.onmessage=async e=>{await i.runExclusive((async()=>{const t=e.data instanceof ArrayBuffer?s.from(e.data):s.from(await new Response(e.data).arrayBuffer());this.stream=s.concat([this.stream,t]),this.resolveRead(!0)}))}}}},4681:(e,t,n)=>{const s=n(51369),a=n(70747),i=n(28427),o=n(68338),r=n(77552),c=n(60010);e.exports={BinaryWriter:a,BinaryReader:i,MessagePacker:r,AsyncQueue:c,Logger:s,PromisedWebSockets:o}},45174:(e,t,n)=>{const s=n(96847),a=n(26462),i=n(51227),o=n(43355),r=n(58946),c=n(65230),d=n(56215),u=n(9396),l=n(47306),p=n(4681),f=n(80071);e.exports={Api:s,TelegramClient:a,sessions:l,connection:i,extensions:p,tl:o,version:r,events:c,utils:d,errors:u,helpers:f}},83620:(e,t,n)=>{"use strict";n.r(t),n.d(t,{doAuthentication:()=>y});var s=n(96847),a=n.n(s),i=n(9396),o=n(92096),r=n.n(o);n(80071),n(48287).hp;const c=[{fingerprint:r()("-3414540481677951611"),n:r()("29379598170669337022986177149456128565388431120058863768162556424047512191330847455146576344487764408661701890505066208632169112269581063774293102577308490531282748465986139880977280302242772832972539403531316010870401287642763009136156734339538042419388722777357134487746169093539093850251243897188928735903389451772730245253062963384108812842079887538976360465290946139638691491496062099570836476454855996319192747663615955633778034897140982517446405334423701359108810182097749467210509584293428076654573384828809574217079944388301239431309115013843331317877374435868468779972014486325557807783825502498215169806323"),e:65537},{fingerprint:r()("-5595554452916591101"),n:r()("25342889448840415564971689590713473206898847759084779052582026594546022463853940585885215951168491965708222649399180603818074200620463776135424884632162512403163793083921641631564740959529419359595852941166848940585952337613333022396096584117954892216031229237302943701877588456738335398602461675225081791820393153757504952636234951323237820036543581047826906120927972487366805292115792231423684261262330394324750785450942589751755390156647751460719351439969059949569615302809050721500330239005077889855323917509948255722081644689442127297605422579707142646660768825302832201908302295573257427896031830742328565032949"),e:65537}].reduce(((e,t)=>{let{fingerprint:n,...s}=t;return e.set(n.toString(),s),e}),new Map);var d=n(48287).hp;const u=n(92096),l=n(72469),p=n(21051),f=n(25356),g=n(80071),h=n(28427),m=20;async function y(e,t){let n=g.generateRandomBytes(16);const s=g.readBigIntFromBuffer(n,!1,!0),o=await e.send(new(a().ReqPqMulti)({nonce:s}));if(t.debug("Starting authKey generation step 1"),!(o instanceof a().ResPQ))throw new i.SecurityError(`Step 1 answer was ${o}`);if(o.nonce.neq(s))throw new i.SecurityError("Step 1 invalid nonce from server");const r=g.readBigIntFromBuffer(o.pq,!1,!0);t.debug("Finished authKey generation step 1");const{p:y,q:_}=f.factorize(r),b=g.getByteArray(y),w=g.getByteArray(_);n=g.generateRandomBytes(32);const v=g.readBigIntFromBuffer(n,!0,!0),S=new(a().PQInnerData)({pq:g.getByteArray(r),p:b,q:w,nonce:o.nonce,serverNonce:o.serverNonce,newNonce:v}).getBytes();if(S.length>144)throw new i.SecurityError("Step 1 invalid nonce from server");let I,A;for(const e of o.serverPublicKeyFingerprints)if(A=c.get(e.toString()),void 0!==A){I=e;break}if(void 0===I||void 0===A)throw new i.SecurityError("Step 2 could not find a valid key for fingerprints");const P=g.generateRandomBytes(192-S.length),C=d.concat([S,P]),M=d.from(C).reverse();let R;for(let e=0;e<m;e++){const e=g.generateRandomBytes(32),n=await g.sha256(d.concat([e,C])),s=d.concat([M,n]),a=new l(e,d.alloc(32)).encryptIge(s),i=g.bufferXor(e,await g.sha256(a)),o=d.concat([i,a]),r=g.readBigIntFromBuffer(o,!1,!1);if(r.greaterOrEquals(A.n)){t.debug("Aes key greater than RSA. retrying");continue}const c=g.modExp(r,u(A.e),A.n);R=g.readBufferFromBigInt(c,256,!1,!1);break}if(void 0===R)throw new i.SecurityError("Step 2 could create a secure encrypted key");t.debug("Step 2 : Generated a secure aes encrypted data");const k=await e.send(new(a().ReqDHParams)({nonce:o.nonce,serverNonce:o.serverNonce,p:b,q:w,publicKeyFingerprint:I,encryptedData:R}));if(!(k instanceof a().ServerDHParamsOk||k instanceof a().ServerDHParamsFail))throw new Error(`Step 2.1 answer was ${k}`);if(k.nonce.neq(o.nonce))throw new i.SecurityError("Step 2 invalid nonce from server");if(k.serverNonce.neq(o.serverNonce))throw new i.SecurityError("Step 2 invalid server nonce from server");if(k instanceof a().ServerDHParamsFail){const e=await g.sha1(g.toSignedLittleBuffer(v,32).slice(4,20)),t=g.readBigIntFromBuffer(e,!0,!0);if(k.newNonceHash.neq(t))throw new i.SecurityError("Step 2 invalid DH fail nonce from server")}if(!(k instanceof a().ServerDHParamsOk))throw new Error(`Step 2.2 answer was ${k}`);t.debug("Finished authKey generation step 2"),t.debug("Starting authKey generation step 3");const{key:T,iv:E}=await g.generateKeyDataFromNonce(o.serverNonce,v);if(k.encryptedAnswer.length%16!=0)throw new i.SecurityError("Step 3 AES block size mismatch");const B=new l(T,E),D=B.decryptIge(k.encryptedAnswer),U=new h(D),x=U.read(20),V=U.tgReadObject();if(!(V instanceof a().ServerDHInnerData))throw new Error(`Step 3 answer was ${V}`);const N=await g.sha1(V.getBytes());if(!x.equals(N))throw new i.SecurityError("Step 3 Invalid hash answer");if(V.nonce.neq(o.nonce))throw new i.SecurityError("Step 3 Invalid nonce in encrypted answer");if(V.serverNonce.neq(o.serverNonce))throw new i.SecurityError("Step 3 Invalid server nonce in encrypted answer");if(3!==V.g||"c71caeb9c6b1c9048e6c522f70f13f73980d40238e3e21c14934d037563d930f48198a0aa7c14058229493d22530f4dbfa336f6e0ac925139543aed44cce7c3720fd51f69458705ac68cd4fe6b6b13abdc9746512969328454f18faf8c595f642477fe96bb2a941d5bcd1d4ac8cc49880708fa9b378e3c4f3a9060bee67cf9a4a4a695811051907e162753b56b0f6b410dba74d8a84b2a14b3144e0ef1284754fd17ed950d5965b4b9dd46582db1178d169c6bc465b0d6ff9ca3928fef5b9ae4e418fc15e83ebea0f87fa9ff5eed70050ded2849f47bf959d956850ce929851f0d8115f635b105ee2e4e15d04b2454bf6f4fadf034b10403119cd8e3b92fcc5b"!==V.dhPrime.toString("hex"))throw new i.SecurityError("Step 3 invalid dhPrime or g");const F=g.readBigIntFromBuffer(V.dhPrime,!1,!1),q=g.readBigIntFromBuffer(V.gA,!1,!1),G=V.serverTime-Math.floor(Date.now()/1e3),H=g.readBigIntFromBuffer(g.generateRandomBytes(256),!1,!1),O=g.modExp(u(V.g),H,F),L=g.modExp(q,H,F);if(q.lesserOrEquals(1))throw new i.SecurityError("Step 3 failed ga > 1 check");if(O.lesserOrEquals(1))throw new i.SecurityError("Step 3 failed gb > 1 check");if(q.greater(F.minus(1)))throw new i.SecurityError("Step 3 failed ga > dh_prime - 1 check");const j=u(2).pow(1984);if(!q.greaterOrEquals(j)||!q.lesserOrEquals(F.minus(j)))throw new i.SecurityError("Step 3 failed dh_prime - 2^{2048-64} < ga < 2^{2048-64} check");if(!O.greaterOrEquals(j)||!O.lesserOrEquals(F.minus(j)))throw new i.SecurityError("Step 3 failed dh_prime - 2^{2048-64} < gb < 2^{2048-64} check");const W=new(a().ClientDHInnerData)({nonce:o.nonce,serverNonce:o.serverNonce,retryId:u.zero,gB:g.getByteArray(O,!1)}).getBytes(),z=d.concat([await g.sha1(W),W]),K=B.encryptIge(z),$=await e.send(new(a().SetClientDHParams)({nonce:o.nonce,serverNonce:o.serverNonce,encryptedData:K})),J=[a().DhGenOk,a().DhGenRetry,a().DhGenFail];if(!($ instanceof J[0]||$ instanceof J[1]||$ instanceof J[2]))throw new Error(`Step 3.1 answer was ${$}`);const{name:Q}=$.constructor;if($.nonce.neq(o.nonce))throw new i.SecurityError(`Step 3 invalid ${Q} nonce from server`);if($.serverNonce.neq(o.serverNonce))throw new i.SecurityError(`Step 3 invalid ${Q} server nonce from server`);const X=new p;await X.setKey(g.getByteArray(L));const Y=1+["DhGenOk","DhGenRetry","DhGenFail"].indexOf($.className),Z=await X.calcNewNonceHash(v,Y);if($[`newNonceHash${Y}`].neq(Z))throw new i.SecurityError("Step 3 invalid new nonce hash");if(!($ instanceof a().DhGenOk))throw new Error(`Step 3.2 answer was ${$}`);return t.debug("Finished authKey generation step 3"),{authKey:X,timeOffset:G}}},83821:(e,t,n)=>{var s=n(48287).hp;const a=n(92096),i=n(35897),o=n(28427),{InvalidBufferError:r}=n(48383),{toSignedLittleBuffer:c}=n(80071);e.exports=class{constructor(e,t){this._state=new i(e,t),this._connection=e}async send(e){let t=e.getBytes(),n=this._state._getNewMsgId();const i=c(n,8),d=s.alloc(4);d.writeInt32LE(t.length,0);const u=s.concat([s.concat([s.alloc(8),i,d]),t]);if(await this._connection.send(u),t=await this._connection.recv(),t.length<8)throw new r(t);const l=new o(t);if(l.readLong().neq(a(0)))throw new Error("Bad authKeyId");if(n=l.readLong(),n.eq(a(0)))throw new Error("Bad msgId");if(l.readInt()<=0)throw new Error("Bad length");return l.tgReadObject()}}},11523:(e,t,n)=>{function s(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{RPCError:a}=n(9396),i=n(83821),o=n(35897),r=n(80071),c=n(21051),{doAuthentication:d}=n(83620),u=n(9309),l=n(30293),p=n(31187),f=n(83701),{MsgsAck:g,upload:h,MsgsStateInfo:m,Pong:y}=n(43355).constructors,_=n(77552),b=n(28427),w=n(40041),{UpdateConnectionState:v,UpdateServerTimeOffset:S}=n(44337),{BadMessageError:I}=n(48383),{BadServerSalt:A,BadMsgNotification:P,MsgDetailedInfo:C,MsgNewDetailedInfo:M,NewSessionCreated:R,FutureSalts:k,MsgsStateReq:T,MsgResendReq:E,MsgsAllInfo:B,HttpWait:D}=n(43355).constructors,{SecurityError:U}=n(48383),{InvalidBufferError:x}=n(48383),{RPCMessageToError:V}=n(9396),{TypeNotFoundError:N}=n(48383);class F{constructor(e,t){s(this,"logWithIndex",{debug:this.logWithIndexCallback("debug"),log:this.logWithIndexCallback("log"),warn:this.logWithIndexCallback("warn"),error:this.logWithIndexCallback("error")});const n={...F.DEFAULT_OPTIONS,...t};this._connection=void 0,this._fallbackConnection=void 0,this._shouldForceHttpTransport=n.shouldForceHttpTransport,this._shouldAllowHttpTransport=n.shouldAllowHttpTransport,this._log=n.logger,this._dcId=n.dcId,this._senderIndex=n.senderIndex,this._retries=n.retries,this._retriesToFallback=n.retriesToFallback,this._delay=n.delay,this._retryMainConnectionDelay=n.retryMainConnectionDelay,this._autoReconnect=n.autoReconnect,this._connectTimeout=n.connectTimeout,this._authKeyCallback=n.authKeyCallback,this._updateCallback=n.updateCallback,this._autoReconnectCallback=n.autoReconnectCallback,this._isMainSender=n.isMainSender,this._isExported=n.isExported,this._onConnectionBreak=n.onConnectionBreak,this._isFallback=!1,this._getShouldDebugExportedSenders=n.getShouldDebugExportedSenders,this.userDisconnected=!1,this._user_connected=!1,this.isReconnecting=!1,this._disconnected=!0,this._send_loop_handle=void 0,this._long_poll_loop_handle=void 0,this._recv_loop_handle=void 0,this.authKey=e||new c,this._state=new o(this.authKey,this._log),this._send_queue=new _(this._state,this._log),this._send_queue_long_poll=new _(this._state,this._log),this._pending_state=new w,this._pending_ack=new Set,this._last_acks=[],this._handlers={[u.CONSTRUCTOR_ID]:this._handleRPCResult.bind(this),[l.CONSTRUCTOR_ID]:this._handleContainer.bind(this),[p.CONSTRUCTOR_ID]:this._handleGzipPacked.bind(this),[y.CONSTRUCTOR_ID]:this._handlePong.bind(this),[A.CONSTRUCTOR_ID]:this._handleBadServerSalt.bind(this),[P.CONSTRUCTOR_ID]:this._handleBadNotification.bind(this),[C.CONSTRUCTOR_ID]:this._handleDetailedInfo.bind(this),[M.CONSTRUCTOR_ID]:this._handleNewDetailedInfo.bind(this),[R.CONSTRUCTOR_ID]:this._handleNewSessionCreated.bind(this),[g.CONSTRUCTOR_ID]:this._handleAck.bind(this),[k.CONSTRUCTOR_ID]:this._handleFutureSalts.bind(this),[T.CONSTRUCTOR_ID]:this._handleStateForgotten.bind(this),[E.CONSTRUCTOR_ID]:this._handleStateForgotten.bind(this),[B.CONSTRUCTOR_ID]:this._handleMsgAll.bind(this)}}logWithIndexCallback(e){var t=this;return function(){if(t._getShouldDebugExportedSenders&&t._getShouldDebugExportedSenders()){for(var n=arguments.length,s=new Array(n),a=0;a<n;a++)s[a]=arguments[a];console[e](`[${t._isExported?`idx=${t._senderIndex} `:"M "}dcId=${t._dcId}]`,...s)}}}getConnection(){return this._isFallback?this._fallbackConnection:this._connection}async connect(e,t,n){if(this.userDisconnected=!1,this._user_connected&&!t)return this._log.info("User is already connected!"),!1;this.isConnecting=!0,this._isFallback=this._shouldForceHttpTransport&&this._shouldAllowHttpTransport,this._connection=e,this._fallbackConnection=n;for(let e=0;e<this._retries+this._retriesToFallback;e++)try{e>=this._retriesToFallback&&this._shouldAllowHttpTransport&&(this._isFallback=!0,this.logWithIndex.warn("Using fallback connection"),this._log.warn("Using fallback connection")),this.logWithIndex.warn("Connecting..."),await this._connect(this.getConnection()),this.logWithIndex.warn("Connected!"),this._isExported||this._updateCallback?.(new v(v.connected));break}catch(t){this._isExported||0!==e||this._updateCallback?.(new v(v.disconnected)),this._log.error(`${this._isFallback?"HTTP":"WebSocket"} connection failed attempt: ${e+1}`),console.error(t),await r.sleep(this._delay)}return this.isConnecting=!1,this._isFallback&&!this._shouldForceHttpTransport&&this.tryReconnectToMain(),!0}async tryReconnectToMain(){if(this.isConnecting||!this._isFallback||this._isReconnectingToMain||this.isReconnecting||this._shouldForceHttpTransport||this._isExported)await r.sleep(this._retryMainConnectionDelay);else{this._log.debug("Trying to reconnect to main connection"),this._isReconnectingToMain=!0;try{await this._connection.connect(),this._log.info("Reconnected to main connection"),this.logWithIndex.warn("Reconnected to main connection"),this.isReconnecting=!0,await this._disconnect(this._fallbackConnection),await this.connect(this._connection,!0,this._fallbackConnection),this.isReconnecting=!1,this._isReconnectingToMain=!1}catch(e){this.isReconnecting=!1,this._isReconnectingToMain=!1,this._log.error(`Failed to reconnect to main connection, retrying in ${this._retryMainConnectionDelay}ms`),await r.sleep(this._retryMainConnectionDelay),this.tryReconnectToMain()}}}isConnected(){return this._user_connected}async disconnect(){this.userDisconnected=!0,this.logWithIndex.warn("Disconnecting..."),await this._disconnect(this.getConnection())}destroy(){this._send_queue.clear()}send(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];const s=new f(e,t);return n?this._send_queue_long_poll.append(s):(this.logWithIndex.debug(`Send ${e.className}`),this._send_queue.append(s)),s.promise}addStateToQueue(e){this._send_queue.append(e)}async sendBeacon(e){if(!this._user_connected)throw new Error("Cannot send requests while disconnected");const t=new f(e,void 0),n=await this._send_queue.getBeacon(t),s=await this._state.encryptMessageData(n);postMessage({type:"sendBeacon",data:s,url:this._fallbackConnection.href})}async _connect(e){if(e.isConnected()||(this._log.info("Connecting to {0}...".replace("{0}",e)),await e.connect(),this._log.debug("Connection success!")),this.authKey.getKey())this._authenticated=!0,this._log.debug("Already have an auth key ...");else{const t=new i(e,this._log);this._log.debug("New auth_key attempt ...");const n=await d(t,this._log);this._log.debug("Generated new auth_key successfully"),await this.authKey.setKey(n.authKey),this._state.timeOffset=n.timeOffset,this._isExported||this._updateCallback?.(new S(this._state.timeOffset)),this._authKeyCallback&&await this._authKeyCallback(this.authKey,this._dcId)}this._user_connected=!0,this.isReconnecting=!1,this._send_loop_handle||(this._log.debug("Starting send loop"),this._send_loop_handle=this._sendLoop()),this._recv_loop_handle||(this._log.debug("Starting receive loop"),this._recv_loop_handle=this._recvLoop()),!this._long_poll_loop_handle&&e.shouldLongPoll&&(this._log.debug("Starting long-poll loop"),this._long_poll_loop_handle=this._longPollLoop()),this._log.info("Connection to %s complete!".replace("%s",e.toString()))}async _disconnect(e){this._isExported||this._updateCallback?.(new v(v.disconnected)),void 0!==e?(this._log.info("Disconnecting from %s...".replace("%s",e.toString())),this._user_connected=!1,this._log.debug("Closing current connection..."),this.logWithIndex.warn("Disconnecting"),await e.disconnect()):this._log.info("Not disconnecting (already have no connection)")}async _longPollLoop(){for(;this._user_connected&&!this.isReconnecting&&this._isFallback&&this.getConnection().shouldLongPoll;){await this._send_queue_long_poll.wait();const e=await this._send_queue_long_poll.get();if(this.isReconnecting||!this._isFallback)return void(this._long_poll_loop_handle=void 0);if(!e)continue;let{data:t}=e;const{batch:n}=e;this._log.debug(`Encrypting ${n.length} message(s) in ${t.length} bytes for sending`),t=await this._state.encryptMessageData(t);try{await this._fallbackConnection.send(t)}catch(e){return this._log.error(e),this._log.info("Connection closed while sending data"),this._long_poll_loop_handle=void 0,this.isSendingLongPoll=!1,void(this.userDisconnected||this.reconnect())}this.isSendingLongPoll=!1,this.checkLongPoll()}this._long_poll_loop_handle=void 0}async _sendLoop(){for(this._send_queue.prepend(this._pending_state.values()),this._pending_state.clear();this._user_connected&&!this.isReconnecting;){const e=()=>{if(this._pending_ack.size){const e=new f(new g({msgIds:Array(...this._pending_ack)}));this._send_queue.append(e),this._last_acks.push(e),this._last_acks.length>=10&&this._last_acks.shift(),this._pending_ack.clear()}};e(),this.logWithIndex.debug(`Waiting for messages to send... ${this.isReconnecting}`),this._log.debug(`Waiting for messages to send... ${this.isReconnecting}`),await this._send_queue.wait(),this._isFallback&&this.send(new D({maxDelay:0,waitAfter:0,maxWait:0})),e();const t=await this._send_queue.get();if(this.logWithIndex.debug(`Got ${t?.batch.length} message(s) to send`),!t)continue;let{data:n}=t;const{batch:s}=t;for(const e of s)if(Array.isArray(e))for(const t of e)"request"===t.request.classType&&"HttpWait"!==t.request.className&&this._pending_state.set(t.msgId,t);else"request"===e.request.classType&&"HttpWait"!==e.request.className&&this._pending_state.set(e.msgId,e);if(this.isReconnecting)return this.logWithIndex.debug("Reconnecting :("),void(this._send_loop_handle=void 0);this._log.debug(`Encrypting ${s.length} message(s) in ${n.length} bytes for sending`),this.logWithIndex.debug("Sending",s.map((e=>e.request.className))),n=await this._state.encryptMessageData(n);try{await this.getConnection().send(n)}catch(e){return this.logWithIndex.debug(`Connection closed while sending data ${e}`),this._log.error(e),this._log.info("Connection closed while sending data"),this._send_loop_handle=void 0,void(this.userDisconnected||this.reconnect())}finally{for(const e of s)if(Array.isArray(e))for(const t of e)"HttpWait"===t.request.className&&e.resolve();else"HttpWait"===e.request.className&&e.resolve();this.logWithIndex.debug("Encrypted messages put in a queue to be sent"),this._log.debug("Encrypted messages put in a queue to be sent")}}this._send_loop_handle=void 0}async _recvLoop(){let e,t;for(;this._user_connected&&!this.isReconnecting;){this._log.debug("Receiving items from the network..."),this.logWithIndex.debug("Receiving items from the network...");try{e=await this.getConnection().recv()}catch(e){return this.userDisconnected||(this._log.error(e),this._log.warn("Connection closed while receiving data"),this.reconnect()),void(this._recv_loop_handle=void 0)}try{t=await this._state.decryptMessageData(e)}catch(e){if(this.logWithIndex.debug(`Error while receiving items from the network ${e.toString()}`),e instanceof N){this._log.info(`Type ${e.invalidConstructorId} not found, remaining data ${e.remaining}`);continue}if(e instanceof U){this._log.warn(`Security error while unpacking a received message: ${e}`);continue}return e instanceof x?(404===e.code?this._handleBadAuthKey():(this._log.warn(`Invalid buffer ${e.code} for dc ${this._dcId}`),this.reconnect()),void(this._recv_loop_handle=void 0)):(this._log.error("Unhandled error while receiving data"),this._log.error(e),this.reconnect(),void(this._recv_loop_handle=void 0))}try{await this._processMessage(t)}catch(e){e instanceof a?"AUTH_KEY_UNREGISTERED"!==e.message&&"SESSION_REVOKED"!==e.message||this._handleBadAuthKey(!0):(this._log.error("Unhandled error while receiving data"),this._log.error(e))}this.checkLongPoll()}this._recv_loop_handle=void 0}checkLongPoll(){!this.isSendingLongPoll&&this._isFallback&&(this.isSendingLongPoll=!0,this.send(new D({maxDelay:500,waitAfter:150,maxWait:3e3}),void 0,!0))}_handleBadAuthKey(e){e&&this._isMainSender||(this._log.warn(`Broken authorization key for dc ${this._dcId}, resetting...`),this._isMainSender&&!this._isExported?this._updateCallback?.(new v(v.broken)):!this._isMainSender&&this._onConnectionBreak&&this._onConnectionBreak(this._dcId))}async _processMessage(e){if("MsgsAck"===e.obj.className)return;this.logWithIndex.debug(`Process message ${e.obj.className}`),this._pending_ack.add(e.msgId),this.getConnection().shouldLongPoll&&this._send_queue.setReady(!0),e.obj=await e.obj;let t=this._handlers[e.obj.CONSTRUCTOR_ID];t||(t=this._handleUpdate.bind(this)),await t(e)}_popStates(e){const t=this._pending_state.getAndDelete(e);if(t)return[t];const n=[];for(const t of this._pending_state.values())t.containerId?.equals(e)&&n.push(t.msgId);if(n.length){const e=[];for(const t of n)e.push(this._pending_state.getAndDelete(t));return e}for(const t of this._last_acks)if(t.msgId===e)return[t];return[]}_handleRPCResult(e){const t=e.obj,n=this._pending_state.getAndDelete(t.reqMsgId);if(this._log.debug(`Handling RPC result for message ${t.reqMsgId}`),n){if(t.error){const e=V(t.error,n.request);throw this._send_queue.append(new f(new g({msgIds:[n.msgId]}))),n.reject(e),e}try{const e=new b(t.body),s=n.request.readResult(e);this.logWithIndex.debug("Handling RPC result",s),n.resolve(s)}catch(e){throw n.reject(e),e}}else try{if(!(new b(t.body).tgReadObject()instanceof h.File))throw new N("Not an upload.File")}catch(e){if(e instanceof N)return void this._log.info(`Received response without parent request: ${t.body}`);if(this._isFallback)return;throw e}}async _handleContainer(e){this._log.debug("Handling container");for(const t of e.obj.messages)await this._processMessage(t)}async _handleGzipPacked(e){this._log.debug("Handling gzipped data");const t=new b(e.obj.data);e.obj=t.tgReadObject(),await this._processMessage(e)}_handleUpdate(e){2331323052===e.obj.SUBCLASS_OF_ID?(this._log.debug(`Handling update ${e.obj.className}`),this._isExported||this._updateCallback?.(e.obj)):this._log.warn(`Note: ${e.obj.className} is not an update, not dispatching it`)}_handlePong(e){const t=e.obj,n=this._state.updateTimeOffset(e.msgId);this._isExported||this._updateCallback?.(new S(n)),this._log.debug(`Handling pong for message ${t.msgId}`);const s=this._pending_state.getAndDelete(t.msgId);s&&s.resolve(t)}_handleBadServerSalt(e){const t=e.obj;this._log.debug(`Handling bad salt for message ${t.badMsgId}`),this._state.salt=t.newServerSalt;const n=this._popStates(t.badMsgId);this._send_queue.extend(n),this._log.debug(`${n.length} message(s) will be resent`)}_handleBadNotification(e){const t=e.obj,n=this._popStates(t.badMsgId);if(this._log.debug(`Handling bad msg ${JSON.stringify(t)}`),[16,17].includes(t.errorCode)){const t=this._state.updateTimeOffset(e.msgId);this._isExported||this._updateCallback?.(new S(t)),this._log.info(`System clock is wrong, set time offset to ${t}s`)}else if(32===t.errorCode)this._state._sequence+=64;else{if(33!==t.errorCode){for(const e of n)e.reject(new I(e.request,t.errorCode));return}this._state._sequence-=16}this._send_queue.extend(n),this._log.debug(`${n.length} messages will be resent due to bad msg`)}_handleDetailedInfo(e){const t=e.obj.answerMsgId;this._log.debug(`Handling detailed info for message ${t}`),this._pending_ack.add(t)}_handleNewDetailedInfo(e){const t=e.obj.answerMsgId;this._log.debug(`Handling new detailed info for message ${t}`),this._pending_ack.add(t)}_handleNewSessionCreated(e){this._log.debug("Handling new session created"),this._state.salt=e.obj.serverSalt}_handleAck(){}_handleFutureSalts(e){this._log.debug(`Handling future salts for message ${e.msgId}`);const t=this._pending_state.getAndDelete(e.msgId);t&&t.resolve(e.obj)}_handleStateForgotten(e){this._send_queue.append(new f(new m({msgId:e.msgId,query:String.fromCharCode(1).repeat(e.obj.msgIds)})))}_handleMsgAll(e){}reconnect(){this._user_connected&&!this.isReconnecting&&(this.isReconnecting=!0,r.sleep(1e3).then((()=>{this.logWithIndex.log("Reconnecting..."),this._log.info("Started reconnecting"),this._reconnect()})))}async _reconnect(){this._log.debug("Closing current connection...");try{this.logWithIndex.warn("[Reconnect] Closing current connection..."),await this._disconnect(this.getConnection())}catch(e){this._log.warn(e)}this._send_queue.append(void 0),this._state.reset();const e=new this._connection.constructor(this._connection._ip,this._connection._port,this._connection._dcId,this._connection._log,this._connection._testServers),t=new this._fallbackConnection.constructor(this._connection._ip,this._connection._port,this._connection._dcId,this._connection._log,this._connection._testServers);await this.connect(e,!0,t),this.isReconnecting=!1,this._send_queue.prepend(this._pending_state.values()),this._pending_state.clear(),this._autoReconnectCallback&&await this._autoReconnectCallback()}}s(F,"DEFAULT_OPTIONS",{logger:void 0,retries:1/0,retriesToFallback:1,delay:2e3,retryMainConnectionDelay:1e4,shouldForceHttpTransport:!1,shouldAllowHttpTransport:!1,autoReconnect:!0,connectTimeout:void 0,authKeyCallback:void 0,updateCallback:void 0,autoReconnectCallback:void 0,isMainSender:void 0,onConnectionBreak:void 0,isExported:void 0,getShouldDebugExportedSenders:void 0}),e.exports=F},35897:(e,t,n)=>{var s=n(48287).hp;const a=n(92096),i=n(7692),o=n(80071),r=n(72469),c=n(28427),d=n(31187),{TLMessage:u}=n(48075),{SecurityError:l,InvalidBufferError:p}=n(48383),{InvokeAfterMsg:f}=n(43355).requests,{toSignedLittleBuffer:g}=n(80071);e.exports=class{constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this.authKey=e,this._log=t,this._isCall=n,this._isOutgoing=s,this.timeOffset=0,this.salt=0,this.id=void 0,this._sequence=void 0,this._lastMsgId=void 0,this.msgIds=[],this.reset()}reset(){this.id=o.generateRandomLong(!0),this._sequence=0,this._lastMsgId=a(0),this.msgIds=[]}updateMessageId(e){e.msgId=this._getNewMsgId()}async _calcKey(e,t,n){const a=this._isCall?128+(this._isOutgoing^n?8:0):!0===n?0:8,[i,r]=await Promise.all([o.sha256(s.concat([t,e.slice(a,a+36)])),o.sha256(s.concat([e.slice(a+40,a+76),t]))]),c=s.concat([i.slice(0,8),r.slice(8,24),i.slice(24,32)]);return this._isCall?{key:c,iv:s.concat([r.slice(0,4),i.slice(8,16),r.slice(24,28)])}:{key:c,iv:s.concat([r.slice(0,8),i.slice(8,24),r.slice(24,32)])}}async writeDataAsMessage(e,t,n,a){const i=this._getNewMsgId(),o=this._getSeqNo(n);let r;r=a?await d.gzipIfSmaller(n,new f({msgId:a,query:{getBytes:()=>t}}).getBytes()):await d.gzipIfSmaller(n,t);const c=s.alloc(4);c.writeInt32LE(o,0);const u=s.alloc(4);u.writeInt32LE(r.length,0);const l=g(i,8);return e.write(s.concat([l,c,u])),e.write(r),i}async encryptMessageData(e){if(await this.authKey.waitForKey(),this._isCall){const t=128+(this._isOutgoing?0:8),n=e.length;e=s.from(e),n%4!=0&&(e=s.concat([e,s.from(new Array(4-n%4).fill(32))]));const a=(await o.sha256(s.concat([this.authKey.getKey().slice(88+t,88+t+32),s.from(e)]))).slice(8,24),{iv:r,key:c}=await this._calcKey(this.authKey.getKey(),a,!0);return e=o.convertToLittle(new i.CTR(c,r).encrypt(e)),s.concat([a,e])}{const t=g(this.salt,8),n=g(this.id,8);e=s.concat([s.concat([t,n]),e]);const a=o.generateRandomBytes(o.mod(-(e.length+12),16)+12),i=(await o.sha256(s.concat([this.authKey.getKey().slice(88,120),e,a]))).slice(8,24),{iv:c,key:d}=await this._calcKey(this.authKey.getKey(),i,!0),u=o.readBufferFromBigInt(this.authKey.keyId,8);return s.concat([u,i,new r(d,c).encryptIge(s.concat([e,a]))])}}async decryptMessageData(e){if(e.length<8)throw new p(e);if(e.length<0)throw new l("Server replied with negative length");if(e.length%4!=0&&!this._isCall)throw new l("Server replied with length not divisible by 4");if(!this._isCall&&o.readBigIntFromBuffer(e.slice(0,8)).neq(this.authKey.keyId))throw new l("Server replied with an invalid auth key");const t=this._isCall?e.slice(0,16):e.slice(8,24),n=this._isCall?128+(this.isOutgoing?8:0):void 0,{iv:a,key:d}=await this._calcKey(this.authKey.getKey(),t,!1);if(this._isCall){const t=(e=e.slice(16)).length;e=s.concat([e,s.from(new Array(4-t%4).fill(0))]),e=(e=o.convertToLittle(new i.CTR(d,a).decrypt(e))).slice(0,t)}else e=new r(d,a).decryptIge(this._isCall?e.slice(16):e.slice(24));const f=this._isCall?await o.sha256(s.concat([this.authKey.getKey().slice(88+n,88+n+32),e])):await o.sha256(s.concat([this.authKey.getKey().slice(96,128),e]));if(!this._isCall&&!t.equals(f.slice(8,24)))throw new l("Received msg_key doesn't match with expected one");const g=new c(e);if(this._isCall)return g.readInt(!1),g.read(e.length-4);{if(g.readLong(),!g.readLong().eq(this.id))throw new l("Server replied with a wrong session ID");const t=g.readLong();if(this.msgIds.includes(t.toString()))throw new l("Duplicate msgIds");this.msgIds.length>500&&this.msgIds.shift();const n=g.readInt(),s=g.readInt(),a=e.length-s;if(a<12||a>1024)throw new l("Server replied with the wrong message padding");const i=await g.tgReadObject();if(i?.className?.startsWith("Update")){const e=Math.floor(Date.now()/1e3),n=this.getMsgIdTimeLocal(t);if(n&&(n-e>30||e-n>300))throw new l("The message time is incorrect.")}return i&&!("errorCode"in i)&&this.msgIds.push(t.toString()),new u(t,n,i)}}_getNewMsgId(){const e=Date.now()/1e3+this.timeOffset,t=Math.floor(1e9*(e-Math.floor(e)));let n=a(Math.floor(e)).shiftLeft(a(32)).or(a(t).shiftLeft(a(2)));return this._lastMsgId.greaterOrEquals(n)&&(n=this._lastMsgId.add(a(4))),this._lastMsgId=n,n}getMsgIdTimeLocal(e){return!this._lastMsgId.eq(0)&&e.shiftRight(a(32)).toJSNumber()-this.timeOffset}updateTimeOffset(e){const t=this._getNewMsgId(),n=this.timeOffset,s=Math.floor(Date.now()/1e3),i=e.shiftRight(a(32));return this.timeOffset=i-s,this.timeOffset!==n&&(this._lastMsgId=a(0),this._log.debug(`Updated time offset (old offset ${n}, bad ${t}, good ${e}, new ${this.timeOffset})`)),this.timeOffset}_getSeqNo(e){if(e){const e=2*this._sequence+1;return this._sequence+=1,e}return 2*this._sequence}}},83701:(e,t,n)=>{const s=n(9705).A;e.exports=class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0;this.containerId=void 0,this.msgId=void 0,this.request=e,this.data=e.getBytes(),this.after=void 0,this.result=void 0,this.abortSignal=t,this.finished=new s,this.resetPromise()}isReady(){return!this.after||this.after.finished.promise}resetPromise(){this.reject?.(),this.promise=new Promise(((e,t)=>{this.resolve=e,this.reject=t}))}}},46026:(e,t,n)=>{function s(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const a=n(68338),i=n(93671).A,o=n(60010);class r{constructor(e,t,n,i,r,c){s(this,"PacketCodecClass",void 0),this._ip=e,this._port=t,this._dcId=n,this._log=i,this._testServers=r,this._isPremium=c,this._connected=!1,this._sendTask=void 0,this._recvTask=void 0,this._codec=void 0,this._obfuscation=void 0,this._sendArray=new o,this._recvArray=new o,this.shouldLongPoll=!1,this.socket=new a(this.disconnectCallback.bind(this))}isConnected(){return this._connected}async disconnectCallback(){await this.disconnect(!0)}async _connect(){this._log.debug("Connecting"),this._codec=new this.PacketCodecClass(this),await this.socket.connect(this._port,this._ip,this._testServers,this._isPremium),this._log.debug("Finished connecting"),await this._initConn()}async connect(){await this._connect(),this._connected=!0,this._sendTask||(this._sendTask=this._sendLoop()),this._recvTask=this._recvLoop()}async disconnect(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this._connected&&(this._connected=!1,this._recvArray.push(void 0),e||await this.socket.close())}async send(e){if(!this._connected)throw new Error("Not connected");await this._sendArray.push(e)}async recv(){for(;this._connected;){const e=await this._recvArray.pop();if(e)return e}throw new Error("Not connected")}async _sendLoop(){try{for(;this._connected;){const e=await this._sendArray.pop();if(!e)return void(this._sendTask=void 0);await this._send(e)}}catch(e){this._log.info("The server closed the connection while sending")}}async _recvLoop(){let e;for(;this._connected;){try{if(e=await this._recv(),!e)throw new Error("no data received")}catch(e){return this._log.info("connection closed"),void this.disconnect()}await this._recvArray.push(e)}}async _initConn(){this._codec.tag&&await this.socket.write(this._codec.tag)}_send(e){const t=this._codec.encodePacket(e);this.socket.write(t)}_recv(){return this._codec.readPacket(this.socket)}toString(){return`${this._ip}:${this._port}/${this.constructor.name.replace("Connection","")}`}}e.exports={Connection:r,PacketCodec:class{constructor(e){this._conn=e}encodePacket(e){throw new Error("Not Implemented")}readPacket(e){throw new Error("Not Implemented")}},ObfuscatedConnection:class extends r{constructor(){super(...arguments),s(this,"ObfuscatedIO",void 0)}_initConn(){this._obfuscation=new this.ObfuscatedIO(this),this.socket.write(this._obfuscation.header)}_send(e){this._obfuscation.write(this._codec.encodePacket(e))}_recv(){return this._codec.readPacket(this._obfuscation)}},HttpConnection:class extends r{constructor(e,t,n,s,a,o){super(e,t,n,s,a,o),this.shouldLongPoll=!0,this.socket=new i(this.disconnectCallback.bind(this)),this.href=i.getURL(this._ip,this._port,this._testServers,this._isPremium)}send(e){return this.socket.write(e)}recv(){return this.socket.read()}async _connect(){this._log.debug("Connecting"),await this.socket.connect(this._port,this._ip,this._testServers,this._isPremium),this._log.debug("Finished connecting")}async connect(){await this._connect(),this._connected=!0}}}},47677:(e,t,n)=>{var s=n(48287).hp;function a(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const i=n(92096),{readBufferFromBigInt:o}=n(80071),{Connection:r,PacketCodec:c}=n(46026);class d extends c{constructor(e){super(e),this.tag=d.tag,this.obfuscateTag=d.obfuscateTag}encodePacket(e){let t=e.length>>2;if(t<127){const e=s.alloc(1);e.writeUInt8(t,0),t=e}else t=s.concat([s.from("7f","hex"),o(i(t),3)]);return s.concat([t,e])}async readPacket(e){let t=(await e.read(1))[0];return t>=127&&(t=s.concat([await e.read(3),s.alloc(1)]).readInt32LE(0)),e.read(t<<2)}}a(d,"tag",s.from("ef","hex")),a(d,"obfuscateTag",s.from("efefefef","hex")),e.exports={ConnectionTCPAbridged:class extends r{constructor(){super(...arguments),a(this,"PacketCodecClass",d)}},AbridgedPacketCodec:d}},34886:()=>{},7433:(e,t,n)=>{var s=n(48287).hp;function a(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{generateRandomBytes:i}=n(80071),{ObfuscatedConnection:o}=n(46026),{AbridgedPacketCodec:r}=n(47677),c=n(52637);class d{constructor(e){a(this,"header",void 0),this.connection=e.socket;const t=this.initHeader(e.PacketCodecClass);this.header=t.random,this._encrypt=t.encryptor,this._decrypt=t.decryptor}initHeader(e){const t=[s.from("50567247","hex"),s.from("474554","hex"),s.from("504f5354","hex"),s.from("eeeeeeee","hex")];let n;for(;;)if(n=i(64),239!==n[0]&&!n.slice(4,8).equals(s.alloc(4))){let e=!0;for(const s of t)if(s.equals(n.slice(0,4))){e=!1;break}if(e)break}n=n.toJSON().data;const a=s.from(n.slice(8,56)).reverse(),o=s.from(n.slice(8,40)),r=s.from(n.slice(40,56)),d=s.from(a.slice(0,32)),u=s.from(a.slice(32,48)),l=new c(o,r),p=new c(d,u);return n=s.concat([s.from(n.slice(0,56)),e.obfuscateTag,s.from(n.slice(60))]),n=s.concat([s.from(n.slice(0,56)),s.from(l.encrypt(n).slice(56,64)),s.from(n.slice(64))]),{random:n,encryptor:l,decryptor:p}}async read(e){const t=await this.connection.readExactly(e);return this._decrypt.encrypt(t)}write(e){this.connection.write(this._encrypt.encrypt(e))}}e.exports={ConnectionTCPObfuscated:class extends o{constructor(){super(...arguments),a(this,"ObfuscatedIO",d),a(this,"PacketCodecClass",r)}}}},99200:(e,t,n)=>{const{Connection:s,HttpConnection:a}=n(46026),{ConnectionTCPFull:i}=n(34886),{ConnectionTCPAbridged:o}=n(47677),{ConnectionTCPObfuscated:r}=n(7433);e.exports={Connection:s,HttpConnection:a,ConnectionTCPFull:i,ConnectionTCPAbridged:o,ConnectionTCPObfuscated:r}},51227:(e,t,n)=>{const s=n(83821),a=n(11523),{Connection:i,ConnectionTCPFull:o,ConnectionTCPAbridged:r,ConnectionTCPObfuscated:c,HttpConnection:d}=n(99200),{UpdateConnectionState:u,UpdateServerTimeOffset:l}=n(44337);e.exports={Connection:i,HttpConnection:d,ConnectionTCPFull:o,ConnectionTCPAbridged:r,ConnectionTCPObfuscated:c,MTProtoPlainSender:s,MTProtoSender:a,UpdateConnectionState:u,UpdateServerTimeOffset:l}},44337:e=>{function t(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class n{constructor(e,t){this.state=e,this.origin=t}}t(n,"disconnected",-1),t(n,"connected",1),t(n,"broken",0),e.exports={UpdateConnectionState:n,UpdateServerTimeOffset:class{constructor(e){this.timeOffset=e}}}},79258:e=>{e.exports=class{get dcId(){throw new Error("Not Implemented")}get serverAddress(){throw new Error("Not Implemented")}get port(){throw new Error("Not Implemented")}get authKey(){throw new Error("Not Implemented")}set authKey(e){throw new Error("Not Implemented")}setDC(e,t,n){throw new Error("Not implemented")}save(){throw new Error("Not Implemented")}delete(){throw new Error("Not Implemented")}}},25340:(e,t,n)=>{const s=n(75139),a="GramJs";e.exports=class extends s{async _delete(){const e=new Request(this._storageKey);return(await self.caches.open(a)).delete(e)}async _fetchFromCache(){const e=new Request(this._storageKey),t=await self.caches.open(a),n=await t.match(e);return n?n.text():void 0}async _saveToCache(e){const t=new Request(this._storageKey),n=new Response(e);return(await self.caches.open(a)).put(t,n)}}},70095:(e,t,n)=>{var s=n(48287).hp;const a=n(90155),i=n(21051),o=n(56215);e.exports=class extends a{constructor(e,t){super(),this._sessionData=e,this._callback=t,this._authKeys={}}get authKey(){throw new Error("Not supported")}set authKey(e){throw new Error("Not supported")}async load(){if(!this._sessionData)return;const{mainDcId:e,keys:t,hashes:n}=this._sessionData,{ipAddress:a,port:r}=o.getDC(e);this.setDC(e,a,r,!0),await Promise.all(Object.keys(t).map((async e=>{const a="string"==typeof t[e]?s.from(t[e],"hex"):s.from(t[e]);if(n[e]){const t="string"==typeof n[e]?s.from(n[e],"hex"):s.from(n[e]);this._authKeys[e]=new i(a,t)}else this._authKeys[e]=new i,await this._authKeys[e].setKey(a,!0)})))}setDC(e,t,n){let s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this._dcId=e,this._serverAddress=t,this._port=n,delete this._authKeys[e],s||this._onUpdate()}getAuthKey(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._dcId;return this._authKeys[e]}setAuthKey(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._dcId;this._authKeys[t]=e,this._onUpdate()}getSessionData(){const e={mainDcId:this._dcId,keys:{},hashes:{}};return Object.keys(this._authKeys).forEach((t=>{const n=this._authKeys[t];n&&n._key&&(e.keys[t]=n._key.toString("hex"),e.hashes[t]=n._hash.toString("hex"))})),e}_onUpdate(){this._callback(this.getSessionData())}delete(){this._callback(void 0)}}},89127:(e,t,n)=>{const s=n(77783),a=n(75139),i="GramJs";e.exports=class extends a{_delete(){return s.del(`${i}:${this._storageKey}`)}_fetchFromCache(){return s.get(`${i}:${this._storageKey}`)}_saveToCache(e){return s.set(`${i}:${this._storageKey}`,e)}}},86074:(e,t,n)=>{const s=n(75139);e.exports=class extends s{_delete(){return localStorage.removeItem(this._storageKey)}_fetchFromCache(){return localStorage.getItem(this._storageKey)}_saveToCache(e){return localStorage.setItem(this._storageKey,e)}}},90155:(e,t,n)=>{const s=n(79258);e.exports=class extends s{constructor(){super(),this._serverAddress=void 0,this._dcId=0,this._port=void 0,this._takeoutId=void 0,this._entities=new Set,this._updateStates={}}get dcId(){return this._dcId}get serverAddress(){return this._serverAddress}get port(){return this._port}get authKey(){return this._authKey}set authKey(e){this._authKey=e}setDC(e,t,n){this._dcId=0|e,this._serverAddress=t,this._port=n}}},75139:(e,t,n)=>{var s=n(48287).hp;const a=n(90155),i=n(21051),o=n(56215);e.exports=class extends a{constructor(e){super(),this._authKeys={},e&&e.startsWith("session:")?this._sessionString=e:e&&(this._storageKey=e)}get authKey(){throw new Error("Not supported")}set authKey(e){throw new Error("Not supported")}async load(){if(this._sessionString)await this._loadFromSessionString();else if(this._storageKey)try{const e=await this._fetchFromCache(),{mainDcId:t,keys:n,hashes:a}=JSON.parse(e),{ipAddress:r,port:c}=o.getDC(t);this.setDC(t,r,c,!0),Object.keys(n).forEach((e=>{n[e]&&a[e]&&(this._authKeys[e]=new i(s.from(n[e].data),s.from(a[e].data)))}))}catch(e){console.warn("Failed to retrieve or parse session from storage"),console.warn(e)}}setDC(e,t,n){let s=arguments.length>3&&void 0!==arguments[3]&&arguments[3];this._dcId=e,this._serverAddress=t,this._port=n,delete this._authKeys[e],s||this._updateStorage()}async save(){return this._storageKey||(this._storageKey=`GramJs-session-${Date.now()}`),await this._updateStorage(),this._storageKey}getAuthKey(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this._dcId;return this._authKeys[e]}setAuthKey(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._dcId;this._authKeys[t]=e,this._updateStorage()}getSessionData(e){const t={mainDcId:this._dcId,keys:{},hashes:{}};return Object.keys(this._authKeys).forEach((n=>{const s=this._authKeys[n];s._key&&(t.keys[n]=e?s._key.toString("hex"):s._key,t.hashes[n]=e?s._hash.toString("hex"):s._hash)})),t}async _loadFromSessionString(){const[,e,t]=this._sessionString.split(":"),n=Number(e),{ipAddress:a,port:r}=o.getDC(n);this.setDC(n,a,r);const c=new i;await c.setKey(s.from(t,"hex"),!0),this.setAuthKey(c,n)}async _updateStorage(){if(this._storageKey)try{await this._saveToCache(JSON.stringify(this.getSessionData()))}catch(e){console.warn("Failed to update session in storage"),console.warn(e)}}async delete(){try{return await this._delete()}catch(e){console.warn("Failed to delete session from storage"),console.warn(e)}}_delete(){throw new Error("Not Implemented")}_fetchFromCache(){throw new Error("Not Implemented")}_saveToCache(e){throw new Error("Not Implemented")}}},10909:(e,t,n)=>{var s=n(48287).hp;const a=n(90155),i=n(21051),o=n(28427);class r extends a{constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;if(super(),e){if("1"!==e[0])throw new Error("Not a valid string");e=e.slice(1);const t=r.decode(e),n=new o(t);this._dcId=n.read(1).readUInt8(0);const s=n.read(2).readInt16BE(0);this._serverAddress=String(n.read(s)),this._port=n.read(2).readInt16BE(0),this._key=n.read(-1)}}static encode(e){return e.toString("base64")}static decode(e){return s.from(e,"base64")}async load(){this._key&&(this._authKey=new i,await this._authKey.setKey(this._key))}save(){if(!this.authKey)return"";const e=s.from([this.dcId]),t=s.from(this.serverAddress),n=s.alloc(2);n.writeInt16BE(t.length,0);const a=s.alloc(2);return a.writeInt16BE(this.port,0),"1"+r.encode(s.concat([e,n,t,a,this.authKey.getKey()]))}getAuthKey(e){if(!e||e===this.dcId)return this.authKey}setAuthKey(e,t){t&&t!==this.dcId||(this.authKey=e)}}e.exports=r},47306:(e,t,n)=>{const s=n(90155),a=n(10909),i=n(25340),o=n(86074),r=n(89127),c=n(70095);e.exports={Memory:s,StringSession:a,CacheApiSession:i,LocalStorageSession:o,IdbSession:r,CallbackSession:c}},50114:(e,t,n)=>{const s=n(96847),a={};for(const e of Object.values(s))if(e.CONSTRUCTOR_ID)a[e.CONSTRUCTOR_ID]=e;else for(const t of Object.values(e))a[t.CONSTRUCTOR_ID]=t;e.exports={LAYER:188,tlobjects:a}},96847:(e,t,n)=>{var s=n(48287).hp;function a(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{parseTl:i,serializeBytes:o,serializeDate:r}=n(73192),{toSignedLittleBuffer:c}=n(80071),d=n(59759),u=n(68656),l="undefined"!=typeof self&&void 0!==self.localStorage,p="GramJs:apiCache";function f(e){const t=i(e),n=[],s=[];for(const e of t)e.isFunction?s.push(e):n.push(e);return[n,s]}function g(e,t){switch(t){case"int":{const t=s.alloc(4);return t.writeInt32LE(e,0),t}case"long":return c(e,8);case"int128":return c(e,16);case"int256":return c(e,32);case"double":{const t=s.alloc(8);return t.writeDoubleLE(e,0),t}case"string":case"bytes":return o(e);case"Bool":return e?s.from("b5757299","hex"):s.from("379779bc","hex");case"true":return s.alloc(0);case"date":return r(e);default:return e.getBytes()}}function h(e,t){if(t.isVector){t.useVectorId&&e.readInt();const n=[],s=e.readInt();t.isVector=!1;for(let a=0;a<s;a++)n.push(h(e,t));return t.isVector=!0,n}if(t.flagIndicator)return e.readInt();switch(t.type){case"int":return e.readInt();case"long":return e.readLong();case"int128":return e.readLargeInt(128);case"int256":return e.readLargeInt(256);case"double":return e.readDouble();case"string":return e.tgReadString();case"Bool":return e.tgReadBool();case"true":return!0;case"bytes":return e.tgReadBytes();case"date":return e.tgReadDate();default:if(t.skipConstructorId)throw new Error(`Unknown type ${t}`);return e.tgReadObject()}}function m(e,t){const n={};for(const i of t){const{name:t,constructorId:o,subclassOfId:r,argsConfig:c,namespace:d,result:u}=i,l=[d,t].join(".").replace(/^\./,"");class p{constructor(t){a(this,"CONSTRUCTOR_ID",o),a(this,"SUBCLASS_OF_ID",r),a(this,"className",l),a(this,"classType",e),t=t||{},Object.keys(t).forEach((e=>{this[e]=t[e]}))}static fromReader(e){const t={};for(const n in c)if(c.hasOwnProperty(n)){const s=c[n];if(s.isFlag){const a=t[`flags${s.flagGroup>1?s.flagGroup:""}`]&1<<s.flagIndex;if("true"===s.type){t[n]=Boolean(a);continue}t[n]=a?h(e,s):void 0}else t[n]=h(e,s)}return new p(t)}getBytes(){const e=this.CONSTRUCTOR_ID,t=s.alloc(4);t.writeUInt32LE(e,0);const n=[t];for(const e in c)if(c.hasOwnProperty(e)){if(c[e].isFlag&&(!1===this[e]&&"true"===c[e].type||void 0===this[e]))continue;if(c[e].isVector){c[e].useVectorId&&n.push(s.from("15c4b51c","hex"));const t=s.alloc(4);t.writeInt32LE(this[e].length,0),n.push(t,s.concat(this[e].map((t=>g(t,c[e].type)))))}else if(c[e].flagIndicator)if(Object.values(c).some((e=>e.isFlag))){let e=0;for(const t in c)c[t].isFlag&&(!1===this[t]&&"true"===c[t].type||void 0===this[t]?e|=0:e|=1<<c[t].flagIndex);const t=s.alloc(4);t.writeUInt32LE(e,0),n.push(t)}else n.push(s.alloc(4));else if(n.push(g(this[e],c[e].type)),this[e]&&"function"==typeof this[e].getBytes){let t=c[e].type.charAt(c[e].type.indexOf(".")+1);t=t===t.toUpperCase(),t||n.shift()}}return s.concat(n)}readResult(t){if("request"!==e)throw new Error("`readResult()` called for non-request instance");const n=u.match(/Vector<(int|long)>/);if(n){t.readInt();const e=[],s=t.readInt();if("int"===n[1])for(let n=0;n<s;n++)e.push(t.readInt());else for(let n=0;n<s;n++)e.push(t.readLong());return e}return t.tgReadObject()}}a(p,"CONSTRUCTOR_ID",o),a(p,"SUBCLASS_OF_ID",r),a(p,"className",l),a(p,"classType",e),d?(n[d]||(n[d]={}),n[d][t]=p):n[t]=p}return n}e.exports=function(){let e;const t=l&&function(){const e=localStorage.getItem(p);return e&&JSON.parse(e)}();return t?e=t:(e=function(){const[e,t]=f(d),[n,s]=f(u);return{constructors:[].concat(e,n),requests:[].concat(t,s)}}(),l&&localStorage.setItem(p,JSON.stringify(e))),function(e,t){const n={...e};return Object.keys(t).forEach((e=>{"function"!=typeof t[e]&&n[e]?Object.assign(n[e],t[e]):n[e]=t[e]})),n}(m("constructor",e.constructors),m("request",e.requests))}()},59759:e=>{e.exports="boolFalse#bc799737 = Bool;\nboolTrue#997275b5 = Bool;\ntrue#3fedd339 = True;\nvector#1cb5c415 {t:Type} # [ t ] = Vector t;\nerror#c4b9f9bb code:int text:string = Error;\nnull#56730bcc = Null;\ninputPeerEmpty#7f3b18ea = InputPeer;\ninputPeerSelf#7da07ec9 = InputPeer;\ninputPeerChat#35a95cb9 chat_id:long = InputPeer;\ninputPeerUser#dde8a54c user_id:long access_hash:long = InputPeer;\ninputPeerChannel#27bcbbfc channel_id:long access_hash:long = InputPeer;\ninputPeerUserFromMessage#a87b0a1c peer:InputPeer msg_id:int user_id:long = InputPeer;\ninputPeerChannelFromMessage#bd2a0840 peer:InputPeer msg_id:int channel_id:long = InputPeer;\ninputUserEmpty#b98886cf = InputUser;\ninputUserSelf#f7c1b13f = InputUser;\ninputUser#f21158c6 user_id:long access_hash:long = InputUser;\ninputUserFromMessage#1da448e2 peer:InputPeer msg_id:int user_id:long = InputUser;\ninputPhoneContact#f392b7f4 client_id:long phone:string first_name:string last_name:string = InputContact;\ninputFile#f52ff27f id:long parts:int name:string md5_checksum:string = InputFile;\ninputFileBig#fa4f0bb5 id:long parts:int name:string = InputFile;\ninputFileStoryDocument#62dc8b48 id:InputDocument = InputFile;\ninputMediaEmpty#9664f57f = InputMedia;\ninputMediaUploadedPhoto#1e287d04 flags:# spoiler:flags.2?true file:InputFile stickers:flags.0?Vector<InputDocument> ttl_seconds:flags.1?int = InputMedia;\ninputMediaPhoto#b3ba0635 flags:# spoiler:flags.1?true id:InputPhoto ttl_seconds:flags.0?int = InputMedia;\ninputMediaGeoPoint#f9c44144 geo_point:InputGeoPoint = InputMedia;\ninputMediaContact#f8ab7dfb phone_number:string first_name:string last_name:string vcard:string = InputMedia;\ninputMediaUploadedDocument#5b38c6c1 flags:# nosound_video:flags.3?true force_file:flags.4?true spoiler:flags.5?true file:InputFile thumb:flags.2?InputFile mime_type:string attributes:Vector<DocumentAttribute> stickers:flags.0?Vector<InputDocument> ttl_seconds:flags.1?int = InputMedia;\ninputMediaDocument#33473058 flags:# spoiler:flags.2?true id:InputDocument ttl_seconds:flags.0?int query:flags.1?string = InputMedia;\ninputMediaVenue#c13d1c11 geo_point:InputGeoPoint title:string address:string provider:string venue_id:string venue_type:string = InputMedia;\ninputMediaPhotoExternal#e5bbfe1a flags:# spoiler:flags.1?true url:string ttl_seconds:flags.0?int = InputMedia;\ninputMediaDocumentExternal#fb52dc99 flags:# spoiler:flags.1?true url:string ttl_seconds:flags.0?int = InputMedia;\ninputMediaGame#d33f43f3 id:InputGame = InputMedia;\ninputMediaInvoice#405fef0d flags:# title:string description:string photo:flags.0?InputWebDocument invoice:Invoice payload:bytes provider:flags.3?string provider_data:DataJSON start_param:flags.1?string extended_media:flags.2?InputMedia = InputMedia;\ninputMediaGeoLive#971fa843 flags:# stopped:flags.0?true geo_point:InputGeoPoint heading:flags.2?int period:flags.1?int proximity_notification_radius:flags.3?int = InputMedia;\ninputMediaPoll#f94e5f1 flags:# poll:Poll correct_answers:flags.0?Vector<bytes> solution:flags.1?string solution_entities:flags.1?Vector<MessageEntity> = InputMedia;\ninputMediaDice#e66fbf7b emoticon:string = InputMedia;\ninputMediaStory#89fdd778 peer:InputPeer id:int = InputMedia;\ninputMediaWebPage#c21b8849 flags:# force_large_media:flags.0?true force_small_media:flags.1?true optional:flags.2?true url:string = InputMedia;\ninputMediaPaidMedia#c4103386 flags:# stars_amount:long extended_media:Vector<InputMedia> payload:flags.0?string = InputMedia;\ninputChatPhotoEmpty#1ca48f57 = InputChatPhoto;\ninputChatUploadedPhoto#bdcdaec0 flags:# file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double video_emoji_markup:flags.3?VideoSize = InputChatPhoto;\ninputChatPhoto#8953ad37 id:InputPhoto = InputChatPhoto;\ninputGeoPointEmpty#e4c123d6 = InputGeoPoint;\ninputGeoPoint#48222faf flags:# lat:double long:double accuracy_radius:flags.0?int = InputGeoPoint;\ninputPhotoEmpty#1cd7bf0d = InputPhoto;\ninputPhoto#3bb3b94a id:long access_hash:long file_reference:bytes = InputPhoto;\ninputFileLocation#dfdaabe1 volume_id:long local_id:int secret:long file_reference:bytes = InputFileLocation;\ninputEncryptedFileLocation#f5235d55 id:long access_hash:long = InputFileLocation;\ninputDocumentFileLocation#bad07584 id:long access_hash:long file_reference:bytes thumb_size:string = InputFileLocation;\ninputSecureFileLocation#cbc7ee28 id:long access_hash:long = InputFileLocation;\ninputTakeoutFileLocation#29be5899 = InputFileLocation;\ninputPhotoFileLocation#40181ffe id:long access_hash:long file_reference:bytes thumb_size:string = InputFileLocation;\ninputPhotoLegacyFileLocation#d83466f3 id:long access_hash:long file_reference:bytes volume_id:long local_id:int secret:long = InputFileLocation;\ninputPeerPhotoFileLocation#37257e99 flags:# big:flags.0?true peer:InputPeer photo_id:long = InputFileLocation;\ninputStickerSetThumb#9d84f3db stickerset:InputStickerSet thumb_version:int = InputFileLocation;\ninputGroupCallStream#598a92a flags:# call:InputGroupCall time_ms:long scale:int video_channel:flags.0?int video_quality:flags.0?int = InputFileLocation;\npeerUser#59511722 user_id:long = Peer;\npeerChat#36c6019a chat_id:long = Peer;\npeerChannel#a2a5371e channel_id:long = Peer;\nstorage.fileUnknown#aa963b05 = storage.FileType;\nstorage.filePartial#40bc6f52 = storage.FileType;\nstorage.fileJpeg#7efe0e = storage.FileType;\nstorage.fileGif#cae1aadf = storage.FileType;\nstorage.filePng#a4f63c0 = storage.FileType;\nstorage.filePdf#ae1e508d = storage.FileType;\nstorage.fileMp3#528a0677 = storage.FileType;\nstorage.fileMov#4b09ebbc = storage.FileType;\nstorage.fileMp4#b3cea0e4 = storage.FileType;\nstorage.fileWebp#1081464c = storage.FileType;\nuserEmpty#d3bc4b7a id:long = User;\nuser#83314fca flags:# self:flags.10?true contact:flags.11?true mutual_contact:flags.12?true deleted:flags.13?true bot:flags.14?true bot_chat_history:flags.15?true bot_nochats:flags.16?true verified:flags.17?true restricted:flags.18?true min:flags.20?true bot_inline_geo:flags.21?true support:flags.23?true scam:flags.24?true apply_min_photo:flags.25?true fake:flags.26?true bot_attach_menu:flags.27?true premium:flags.28?true attach_menu_enabled:flags.29?true flags2:# bot_can_edit:flags2.1?true close_friend:flags2.2?true stories_hidden:flags2.3?true stories_unavailable:flags2.4?true contact_require_premium:flags2.10?true bot_business:flags2.11?true bot_has_main_app:flags2.13?true id:long access_hash:flags.0?long first_name:flags.1?string last_name:flags.2?string username:flags.3?string phone:flags.4?string photo:flags.5?UserProfilePhoto status:flags.6?UserStatus bot_info_version:flags.14?int restriction_reason:flags.18?Vector<RestrictionReason> bot_inline_placeholder:flags.19?string lang_code:flags.22?string emoji_status:flags.30?EmojiStatus usernames:flags2.0?Vector<Username> stories_max_id:flags2.5?int color:flags2.8?PeerColor profile_color:flags2.9?PeerColor bot_active_users:flags2.12?int = User;\nuserProfilePhotoEmpty#4f11bae1 = UserProfilePhoto;\nuserProfilePhoto#82d1f706 flags:# has_video:flags.0?true personal:flags.2?true photo_id:long stripped_thumb:flags.1?bytes dc_id:int = UserProfilePhoto;\nuserStatusEmpty#9d05049 = UserStatus;\nuserStatusOnline#edb93949 expires:int = UserStatus;\nuserStatusOffline#8c703f was_online:int = UserStatus;\nuserStatusRecently#7b197dc8 flags:# by_me:flags.0?true = UserStatus;\nuserStatusLastWeek#541a1d1a flags:# by_me:flags.0?true = UserStatus;\nuserStatusLastMonth#65899777 flags:# by_me:flags.0?true = UserStatus;\nchatEmpty#29562865 id:long = Chat;\nchat#41cbf256 flags:# creator:flags.0?true left:flags.2?true deactivated:flags.5?true call_active:flags.23?true call_not_empty:flags.24?true noforwards:flags.25?true id:long title:string photo:ChatPhoto participants_count:int date:int version:int migrated_to:flags.6?InputChannel admin_rights:flags.14?ChatAdminRights default_banned_rights:flags.18?ChatBannedRights = Chat;\nchatForbidden#6592a1a7 id:long title:string = Chat;\nchannel#fe4478bd flags:# creator:flags.0?true left:flags.2?true broadcast:flags.5?true verified:flags.7?true megagroup:flags.8?true restricted:flags.9?true signatures:flags.11?true min:flags.12?true scam:flags.19?true has_link:flags.20?true has_geo:flags.21?true slowmode_enabled:flags.22?true call_active:flags.23?true call_not_empty:flags.24?true fake:flags.25?true gigagroup:flags.26?true noforwards:flags.27?true join_to_send:flags.28?true join_request:flags.29?true forum:flags.30?true flags2:# stories_hidden:flags2.1?true stories_hidden_min:flags2.2?true stories_unavailable:flags2.3?true signature_profiles:flags2.12?true id:long access_hash:flags.13?long title:string username:flags.6?string photo:ChatPhoto date:int restriction_reason:flags.9?Vector<RestrictionReason> admin_rights:flags.14?ChatAdminRights banned_rights:flags.15?ChatBannedRights default_banned_rights:flags.18?ChatBannedRights participants_count:flags.17?int usernames:flags2.0?Vector<Username> stories_max_id:flags2.4?int color:flags2.7?PeerColor profile_color:flags2.8?PeerColor emoji_status:flags2.9?EmojiStatus level:flags2.10?int subscription_until_date:flags2.11?int = Chat;\nchannelForbidden#17d493d5 flags:# broadcast:flags.5?true megagroup:flags.8?true id:long access_hash:long title:string until_date:flags.16?int = Chat;\nchatFull#2633421b flags:# can_set_username:flags.7?true has_scheduled:flags.8?true translations_disabled:flags.19?true id:long about:string participants:ChatParticipants chat_photo:flags.2?Photo notify_settings:PeerNotifySettings exported_invite:flags.13?ExportedChatInvite bot_info:flags.3?Vector<BotInfo> pinned_msg_id:flags.6?int folder_id:flags.11?int call:flags.12?InputGroupCall ttl_period:flags.14?int groupcall_default_join_as:flags.15?Peer theme_emoticon:flags.16?string requests_pending:flags.17?int recent_requesters:flags.17?Vector<long> available_reactions:flags.18?ChatReactions reactions_limit:flags.20?int = ChatFull;\nchannelFull#bbab348d flags:# can_view_participants:flags.3?true can_set_username:flags.6?true can_set_stickers:flags.7?true hidden_prehistory:flags.10?true can_set_location:flags.16?true has_scheduled:flags.19?true can_view_stats:flags.20?true blocked:flags.22?true flags2:# can_delete_channel:flags2.0?true antispam:flags2.1?true participants_hidden:flags2.2?true translations_disabled:flags2.3?true stories_pinned_available:flags2.5?true view_forum_as_messages:flags2.6?true restricted_sponsored:flags2.11?true can_view_revenue:flags2.12?true paid_media_allowed:flags2.14?true can_view_stars_revenue:flags2.15?true paid_reactions_available:flags2.16?true id:long about:string participants_count:flags.0?int admins_count:flags.1?int kicked_count:flags.2?int banned_count:flags.2?int online_count:flags.13?int read_inbox_max_id:int read_outbox_max_id:int unread_count:int chat_photo:Photo notify_settings:PeerNotifySettings exported_invite:flags.23?ExportedChatInvite bot_info:Vector<BotInfo> migrated_from_chat_id:flags.4?long migrated_from_max_id:flags.4?int pinned_msg_id:flags.5?int stickerset:flags.8?StickerSet available_min_id:flags.9?int folder_id:flags.11?int linked_chat_id:flags.14?long location:flags.15?ChannelLocation slowmode_seconds:flags.17?int slowmode_next_send_date:flags.18?int stats_dc:flags.12?int pts:int call:flags.21?InputGroupCall ttl_period:flags.24?int pending_suggestions:flags.25?Vector<string> groupcall_default_join_as:flags.26?Peer theme_emoticon:flags.27?string requests_pending:flags.28?int recent_requesters:flags.28?Vector<long> default_send_as:flags.29?Peer available_reactions:flags.30?ChatReactions reactions_limit:flags2.13?int stories:flags2.4?PeerStories wallpaper:flags2.7?WallPaper boosts_applied:flags2.8?int boosts_unrestrict:flags2.9?int emojiset:flags2.10?StickerSet = ChatFull;\nchatParticipant#c02d4007 user_id:long inviter_id:long date:int = ChatParticipant;\nchatParticipantCreator#e46bcee4 user_id:long = ChatParticipant;\nchatParticipantAdmin#a0933f5b user_id:long inviter_id:long date:int = ChatParticipant;\nchatParticipantsForbidden#8763d3e1 flags:# chat_id:long self_participant:flags.0?ChatParticipant = ChatParticipants;\nchatParticipants#3cbc93f8 chat_id:long participants:Vector<ChatParticipant> version:int = ChatParticipants;\nchatPhotoEmpty#37c1011c = ChatPhoto;\nchatPhoto#1c6e1c11 flags:# has_video:flags.0?true photo_id:long stripped_thumb:flags.1?bytes dc_id:int = ChatPhoto;\nmessageEmpty#90a6ca84 flags:# id:int peer_id:flags.0?Peer = Message;\nmessage#94345242 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true from_scheduled:flags.18?true legacy:flags.19?true edit_hide:flags.21?true pinned:flags.24?true noforwards:flags.26?true invert_media:flags.27?true flags2:# offline:flags2.1?true id:int from_id:flags.8?Peer from_boosts_applied:flags.29?int peer_id:Peer saved_peer_id:flags.28?Peer fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long via_business_bot_id:flags2.0?long reply_to:flags.3?MessageReplyHeader date:int message:string media:flags.9?MessageMedia reply_markup:flags.6?ReplyMarkup entities:flags.7?Vector<MessageEntity> views:flags.10?int forwards:flags.10?int replies:flags.23?MessageReplies edit_date:flags.15?int post_author:flags.16?string grouped_id:flags.17?long reactions:flags.20?MessageReactions restriction_reason:flags.22?Vector<RestrictionReason> ttl_period:flags.25?int quick_reply_shortcut_id:flags.30?int effect:flags2.2?long factcheck:flags2.3?FactCheck = Message;\nmessageService#2b085862 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true post:flags.14?true legacy:flags.19?true id:int from_id:flags.8?Peer peer_id:Peer reply_to:flags.3?MessageReplyHeader date:int action:MessageAction ttl_period:flags.25?int = Message;\nmessageMediaEmpty#3ded6320 = MessageMedia;\nmessageMediaPhoto#695150d7 flags:# spoiler:flags.3?true photo:flags.0?Photo ttl_seconds:flags.2?int = MessageMedia;\nmessageMediaGeo#56e0d474 geo:GeoPoint = MessageMedia;\nmessageMediaContact#70322949 phone_number:string first_name:string last_name:string vcard:string user_id:long = MessageMedia;\nmessageMediaUnsupported#9f84f49e = MessageMedia;\nmessageMediaDocument#dd570bd5 flags:# nopremium:flags.3?true spoiler:flags.4?true video:flags.6?true round:flags.7?true voice:flags.8?true document:flags.0?Document alt_documents:flags.5?Vector<Document> ttl_seconds:flags.2?int = MessageMedia;\nmessageMediaWebPage#ddf10c3b flags:# force_large_media:flags.0?true force_small_media:flags.1?true manual:flags.3?true safe:flags.4?true webpage:WebPage = MessageMedia;\nmessageMediaVenue#2ec0533f geo:GeoPoint title:string address:string provider:string venue_id:string venue_type:string = MessageMedia;\nmessageMediaGame#fdb19008 game:Game = MessageMedia;\nmessageMediaInvoice#f6a548d3 flags:# shipping_address_requested:flags.1?true test:flags.3?true title:string description:string photo:flags.0?WebDocument receipt_msg_id:flags.2?int currency:string total_amount:long start_param:string extended_media:flags.4?MessageExtendedMedia = MessageMedia;\nmessageMediaGeoLive#b940c666 flags:# geo:GeoPoint heading:flags.0?int period:int proximity_notification_radius:flags.1?int = MessageMedia;\nmessageMediaPoll#4bd6e798 poll:Poll results:PollResults = MessageMedia;\nmessageMediaDice#3f7ee58b value:int emoticon:string = MessageMedia;\nmessageMediaStory#68cb6283 flags:# via_mention:flags.1?true peer:Peer id:int story:flags.0?StoryItem = MessageMedia;\nmessageMediaGiveaway#aa073beb flags:# only_new_subscribers:flags.0?true winners_are_visible:flags.2?true channels:Vector<long> countries_iso2:flags.1?Vector<string> prize_description:flags.3?string quantity:int months:flags.4?int stars:flags.5?long until_date:int = MessageMedia;\nmessageMediaGiveawayResults#ceaa3ea1 flags:# only_new_subscribers:flags.0?true refunded:flags.2?true channel_id:long additional_peers_count:flags.3?int launch_msg_id:int winners_count:int unclaimed_count:int winners:Vector<long> months:flags.4?int stars:flags.5?long prize_description:flags.1?string until_date:int = MessageMedia;\nmessageMediaPaidMedia#a8852491 stars_amount:long extended_media:Vector<MessageExtendedMedia> = MessageMedia;\nmessageActionEmpty#b6aef7b0 = MessageAction;\nmessageActionChatCreate#bd47cbad title:string users:Vector<long> = MessageAction;\nmessageActionChatEditTitle#b5a1ce5a title:string = MessageAction;\nmessageActionChatEditPhoto#7fcb13a8 photo:Photo = MessageAction;\nmessageActionChatDeletePhoto#95e3fbef = MessageAction;\nmessageActionChatAddUser#15cefd00 users:Vector<long> = MessageAction;\nmessageActionChatDeleteUser#a43f30cc user_id:long = MessageAction;\nmessageActionChatJoinedByLink#31224c3 inviter_id:long = MessageAction;\nmessageActionChannelCreate#95d2ac92 title:string = MessageAction;\nmessageActionChatMigrateTo#e1037f92 channel_id:long = MessageAction;\nmessageActionChannelMigrateFrom#ea3948e9 title:string chat_id:long = MessageAction;\nmessageActionPinMessage#94bd38ed = MessageAction;\nmessageActionHistoryClear#9fbab604 = MessageAction;\nmessageActionGameScore#92a72876 game_id:long score:int = MessageAction;\nmessageActionPaymentSentMe#8f31b327 flags:# recurring_init:flags.2?true recurring_used:flags.3?true currency:string total_amount:long payload:bytes info:flags.0?PaymentRequestedInfo shipping_option_id:flags.1?string charge:PaymentCharge = MessageAction;\nmessageActionPaymentSent#96163f56 flags:# recurring_init:flags.2?true recurring_used:flags.3?true currency:string total_amount:long invoice_slug:flags.0?string = MessageAction;\nmessageActionPhoneCall#80e11a7f flags:# video:flags.2?true call_id:long reason:flags.0?PhoneCallDiscardReason duration:flags.1?int = MessageAction;\nmessageActionScreenshotTaken#4792929b = MessageAction;\nmessageActionCustomAction#fae69f56 message:string = MessageAction;\nmessageActionBotAllowed#c516d679 flags:# attach_menu:flags.1?true from_request:flags.3?true domain:flags.0?string app:flags.2?BotApp = MessageAction;\nmessageActionSecureValuesSentMe#1b287353 values:Vector<SecureValue> credentials:SecureCredentialsEncrypted = MessageAction;\nmessageActionSecureValuesSent#d95c6154 types:Vector<SecureValueType> = MessageAction;\nmessageActionContactSignUp#f3f25f76 = MessageAction;\nmessageActionGeoProximityReached#98e0d697 from_id:Peer to_id:Peer distance:int = MessageAction;\nmessageActionGroupCall#7a0d7f42 flags:# call:InputGroupCall duration:flags.0?int = MessageAction;\nmessageActionInviteToGroupCall#502f92f7 call:InputGroupCall users:Vector<long> = MessageAction;\nmessageActionSetMessagesTTL#3c134d7b flags:# period:int auto_setting_from:flags.0?long = MessageAction;\nmessageActionGroupCallScheduled#b3a07661 call:InputGroupCall schedule_date:int = MessageAction;\nmessageActionSetChatTheme#aa786345 emoticon:string = MessageAction;\nmessageActionChatJoinedByRequest#ebbca3cb = MessageAction;\nmessageActionWebViewDataSentMe#47dd8079 text:string data:string = MessageAction;\nmessageActionWebViewDataSent#b4c38cb5 text:string = MessageAction;\nmessageActionGiftPremium#c83d6aec flags:# currency:string amount:long months:int crypto_currency:flags.0?string crypto_amount:flags.0?long = MessageAction;\nmessageActionTopicCreate#d999256 flags:# title:string icon_color:int icon_emoji_id:flags.0?long = MessageAction;\nmessageActionTopicEdit#c0944820 flags:# title:flags.0?string icon_emoji_id:flags.1?long closed:flags.2?Bool hidden:flags.3?Bool = MessageAction;\nmessageActionSuggestProfilePhoto#57de635e photo:Photo = MessageAction;\nmessageActionRequestedPeer#31518e9b button_id:int peers:Vector<Peer> = MessageAction;\nmessageActionSetChatWallPaper#5060a3f4 flags:# same:flags.0?true for_both:flags.1?true wallpaper:WallPaper = MessageAction;\nmessageActionGiftCode#678c2e09 flags:# via_giveaway:flags.0?true unclaimed:flags.2?true boost_peer:flags.1?Peer months:int slug:string currency:flags.2?string amount:flags.2?long crypto_currency:flags.3?string crypto_amount:flags.3?long = MessageAction;\nmessageActionGiveawayLaunch#a80f51e4 flags:# stars:flags.0?long = MessageAction;\nmessageActionGiveawayResults#87e2f155 flags:# stars:flags.0?true winners_count:int unclaimed_count:int = MessageAction;\nmessageActionBoostApply#cc02aa6d boosts:int = MessageAction;\nmessageActionRequestedPeerSentMe#93b31848 button_id:int peers:Vector<RequestedPeer> = MessageAction;\nmessageActionPaymentRefunded#41b3e202 flags:# peer:Peer currency:string total_amount:long payload:flags.0?bytes charge:PaymentCharge = MessageAction;\nmessageActionGiftStars#45d5b021 flags:# currency:string amount:long stars:long crypto_currency:flags.0?string crypto_amount:flags.0?long transaction_id:flags.1?string = MessageAction;\nmessageActionPrizeStars#b00c47a2 flags:# unclaimed:flags.0?true stars:long transaction_id:string boost_peer:Peer giveaway_msg_id:int = MessageAction;\ndialog#d58a08c6 flags:# pinned:flags.2?true unread_mark:flags.3?true view_forum_as_messages:flags.6?true peer:Peer top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int notify_settings:PeerNotifySettings pts:flags.0?int draft:flags.1?DraftMessage folder_id:flags.4?int ttl_period:flags.5?int = Dialog;\ndialogFolder#71bd134c flags:# pinned:flags.2?true folder:Folder peer:Peer top_message:int unread_muted_peers_count:int unread_unmuted_peers_count:int unread_muted_messages_count:int unread_unmuted_messages_count:int = Dialog;\nphotoEmpty#2331b22d id:long = Photo;\nphoto#fb197a65 flags:# has_stickers:flags.0?true id:long access_hash:long file_reference:bytes date:int sizes:Vector<PhotoSize> video_sizes:flags.1?Vector<VideoSize> dc_id:int = Photo;\nphotoSizeEmpty#e17e23c type:string = PhotoSize;\nphotoSize#75c78e60 type:string w:int h:int size:int = PhotoSize;\nphotoCachedSize#21e1ad6 type:string w:int h:int bytes:bytes = PhotoSize;\nphotoStrippedSize#e0b0bc2e type:string bytes:bytes = PhotoSize;\nphotoSizeProgressive#fa3efb95 type:string w:int h:int sizes:Vector<int> = PhotoSize;\nphotoPathSize#d8214d41 type:string bytes:bytes = PhotoSize;\ngeoPointEmpty#1117dd5f = GeoPoint;\ngeoPoint#b2a2f663 flags:# long:double lat:double access_hash:long accuracy_radius:flags.0?int = GeoPoint;\nauth.sentCode#5e002502 flags:# type:auth.SentCodeType phone_code_hash:string next_type:flags.1?auth.CodeType timeout:flags.2?int = auth.SentCode;\nauth.sentCodeSuccess#2390fe44 authorization:auth.Authorization = auth.SentCode;\nauth.authorization#2ea2c0d4 flags:# setup_password_required:flags.1?true otherwise_relogin_days:flags.1?int tmp_sessions:flags.0?int future_auth_token:flags.2?bytes user:User = auth.Authorization;\nauth.authorizationSignUpRequired#44747e9a flags:# terms_of_service:flags.0?help.TermsOfService = auth.Authorization;\nauth.exportedAuthorization#b434e2b8 id:long bytes:bytes = auth.ExportedAuthorization;\ninputNotifyPeer#b8bc5b0c peer:InputPeer = InputNotifyPeer;\ninputNotifyUsers#193b4417 = InputNotifyPeer;\ninputNotifyChats#4a95e84e = InputNotifyPeer;\ninputNotifyBroadcasts#b1db7c7e = InputNotifyPeer;\ninputNotifyForumTopic#5c467992 peer:InputPeer top_msg_id:int = InputNotifyPeer;\ninputPeerNotifySettings#cacb6ae2 flags:# show_previews:flags.0?Bool silent:flags.1?Bool mute_until:flags.2?int sound:flags.3?NotificationSound stories_muted:flags.6?Bool stories_hide_sender:flags.7?Bool stories_sound:flags.8?NotificationSound = InputPeerNotifySettings;\npeerNotifySettings#99622c0c flags:# show_previews:flags.0?Bool silent:flags.1?Bool mute_until:flags.2?int ios_sound:flags.3?NotificationSound android_sound:flags.4?NotificationSound other_sound:flags.5?NotificationSound stories_muted:flags.6?Bool stories_hide_sender:flags.7?Bool stories_ios_sound:flags.8?NotificationSound stories_android_sound:flags.9?NotificationSound stories_other_sound:flags.10?NotificationSound = PeerNotifySettings;\npeerSettings#acd66c5e flags:# report_spam:flags.0?true add_contact:flags.1?true block_contact:flags.2?true share_contact:flags.3?true need_contacts_exception:flags.4?true report_geo:flags.5?true autoarchived:flags.7?true invite_members:flags.8?true request_chat_broadcast:flags.10?true business_bot_paused:flags.11?true business_bot_can_reply:flags.12?true geo_distance:flags.6?int request_chat_title:flags.9?string request_chat_date:flags.9?int business_bot_id:flags.13?long business_bot_manage_url:flags.13?string = PeerSettings;\nwallPaper#a437c3ed id:long flags:# creator:flags.0?true default:flags.1?true pattern:flags.3?true dark:flags.4?true access_hash:long slug:string document:Document settings:flags.2?WallPaperSettings = WallPaper;\nwallPaperNoFile#e0804116 id:long flags:# default:flags.1?true dark:flags.4?true settings:flags.2?WallPaperSettings = WallPaper;\ninputReportReasonSpam#58dbcab8 = ReportReason;\ninputReportReasonViolence#1e22c78d = ReportReason;\ninputReportReasonPornography#2e59d922 = ReportReason;\ninputReportReasonChildAbuse#adf44ee3 = ReportReason;\ninputReportReasonOther#c1e4a2b1 = ReportReason;\ninputReportReasonCopyright#9b89f93a = ReportReason;\ninputReportReasonGeoIrrelevant#dbd4feed = ReportReason;\ninputReportReasonFake#f5ddd6e7 = ReportReason;\ninputReportReasonIllegalDrugs#a8eb2be = ReportReason;\ninputReportReasonPersonalDetails#9ec7863d = ReportReason;\nuserFull#cc997720 flags:# blocked:flags.0?true phone_calls_available:flags.4?true phone_calls_private:flags.5?true can_pin_message:flags.7?true has_scheduled:flags.12?true video_calls_available:flags.13?true voice_messages_forbidden:flags.20?true translations_disabled:flags.23?true stories_pinned_available:flags.26?true blocked_my_stories_from:flags.27?true wallpaper_overridden:flags.28?true contact_require_premium:flags.29?true read_dates_private:flags.30?true flags2:# sponsored_enabled:flags2.7?true id:long about:flags.1?string settings:PeerSettings personal_photo:flags.21?Photo profile_photo:flags.2?Photo fallback_photo:flags.22?Photo notify_settings:PeerNotifySettings bot_info:flags.3?BotInfo pinned_msg_id:flags.6?int common_chats_count:int folder_id:flags.11?int ttl_period:flags.14?int theme_emoticon:flags.15?string private_forward_name:flags.16?string bot_group_admin_rights:flags.17?ChatAdminRights bot_broadcast_admin_rights:flags.18?ChatAdminRights premium_gifts:flags.19?Vector<PremiumGiftOption> wallpaper:flags.24?WallPaper stories:flags.25?PeerStories business_work_hours:flags2.0?BusinessWorkHours business_location:flags2.1?BusinessLocation business_greeting_message:flags2.2?BusinessGreetingMessage business_away_message:flags2.3?BusinessAwayMessage business_intro:flags2.4?BusinessIntro birthday:flags2.5?Birthday personal_channel_id:flags2.6?long personal_channel_message:flags2.6?int = UserFull;\ncontact#145ade0b user_id:long mutual:Bool = Contact;\nimportedContact#c13e3c50 user_id:long client_id:long = ImportedContact;\ncontactStatus#16d9703b user_id:long status:UserStatus = ContactStatus;\ncontacts.contactsNotModified#b74ba9d2 = contacts.Contacts;\ncontacts.contacts#eae87e42 contacts:Vector<Contact> saved_count:int users:Vector<User> = contacts.Contacts;\ncontacts.importedContacts#77d01c3b imported:Vector<ImportedContact> popular_invites:Vector<PopularContact> retry_contacts:Vector<long> users:Vector<User> = contacts.ImportedContacts;\ncontacts.blocked#ade1591 blocked:Vector<PeerBlocked> chats:Vector<Chat> users:Vector<User> = contacts.Blocked;\ncontacts.blockedSlice#e1664194 count:int blocked:Vector<PeerBlocked> chats:Vector<Chat> users:Vector<User> = contacts.Blocked;\nmessages.dialogs#15ba6c40 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;\nmessages.dialogsSlice#71e094f3 count:int dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Dialogs;\nmessages.dialogsNotModified#f0e3e596 count:int = messages.Dialogs;\nmessages.messages#8c718e87 messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;\nmessages.messagesSlice#3a54685e flags:# inexact:flags.1?true count:int next_rate:flags.0?int offset_id_offset:flags.2?int messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.Messages;\nmessages.channelMessages#c776ba4e flags:# inexact:flags.1?true pts:int count:int offset_id_offset:flags.2?int messages:Vector<Message> topics:Vector<ForumTopic> chats:Vector<Chat> users:Vector<User> = messages.Messages;\nmessages.messagesNotModified#74535f21 count:int = messages.Messages;\nmessages.chats#64ff9fd5 chats:Vector<Chat> = messages.Chats;\nmessages.chatsSlice#9cd81144 count:int chats:Vector<Chat> = messages.Chats;\nmessages.chatFull#e5d7d19c full_chat:ChatFull chats:Vector<Chat> users:Vector<User> = messages.ChatFull;\nmessages.affectedHistory#b45c69d1 pts:int pts_count:int offset:int = messages.AffectedHistory;\ninputMessagesFilterEmpty#57e2f66c = MessagesFilter;\ninputMessagesFilterPhotos#9609a51c = MessagesFilter;\ninputMessagesFilterVideo#9fc00e65 = MessagesFilter;\ninputMessagesFilterPhotoVideo#56e9f0e4 = MessagesFilter;\ninputMessagesFilterDocument#9eddf188 = MessagesFilter;\ninputMessagesFilterUrl#7ef0dd87 = MessagesFilter;\ninputMessagesFilterGif#ffc86587 = MessagesFilter;\ninputMessagesFilterVoice#50f5c392 = MessagesFilter;\ninputMessagesFilterMusic#3751b49e = MessagesFilter;\ninputMessagesFilterChatPhotos#3a20ecb8 = MessagesFilter;\ninputMessagesFilterPhoneCalls#80c99768 flags:# missed:flags.0?true = MessagesFilter;\ninputMessagesFilterRoundVoice#7a7c17a4 = MessagesFilter;\ninputMessagesFilterRoundVideo#b549da53 = MessagesFilter;\ninputMessagesFilterMyMentions#c1f8e69a = MessagesFilter;\ninputMessagesFilterGeo#e7026d0d = MessagesFilter;\ninputMessagesFilterContacts#e062db83 = MessagesFilter;\ninputMessagesFilterPinned#1bb00451 = MessagesFilter;\nupdateNewMessage#1f2b0afd message:Message pts:int pts_count:int = Update;\nupdateMessageID#4e90bfd6 id:int random_id:long = Update;\nupdateDeleteMessages#a20db0e5 messages:Vector<int> pts:int pts_count:int = Update;\nupdateUserTyping#c01e857f user_id:long action:SendMessageAction = Update;\nupdateChatUserTyping#83487af0 chat_id:long from_id:Peer action:SendMessageAction = Update;\nupdateChatParticipants#7761198 participants:ChatParticipants = Update;\nupdateUserStatus#e5bdf8de user_id:long status:UserStatus = Update;\nupdateUserName#a7848924 user_id:long first_name:string last_name:string usernames:Vector<Username> = Update;\nupdateNewAuthorization#8951abef flags:# unconfirmed:flags.0?true hash:long date:flags.0?int device:flags.0?string location:flags.0?string = Update;\nupdateNewEncryptedMessage#12bcbd9a message:EncryptedMessage qts:int = Update;\nupdateEncryptedChatTyping#1710f156 chat_id:int = Update;\nupdateEncryption#b4a2e88d chat:EncryptedChat date:int = Update;\nupdateEncryptedMessagesRead#38fe25b7 chat_id:int max_date:int date:int = Update;\nupdateChatParticipantAdd#3dda5451 chat_id:long user_id:long inviter_id:long date:int version:int = Update;\nupdateChatParticipantDelete#e32f3d77 chat_id:long user_id:long version:int = Update;\nupdateDcOptions#8e5e9873 dc_options:Vector<DcOption> = Update;\nupdateNotifySettings#bec268ef peer:NotifyPeer notify_settings:PeerNotifySettings = Update;\nupdateServiceNotification#ebe46819 flags:# popup:flags.0?true invert_media:flags.2?true inbox_date:flags.1?int type:string message:string media:MessageMedia entities:Vector<MessageEntity> = Update;\nupdatePrivacy#ee3b272a key:PrivacyKey rules:Vector<PrivacyRule> = Update;\nupdateUserPhone#5492a13 user_id:long phone:string = Update;\nupdateReadHistoryInbox#9c974fdf flags:# folder_id:flags.0?int peer:Peer max_id:int still_unread_count:int pts:int pts_count:int = Update;\nupdateReadHistoryOutbox#2f2f21bf peer:Peer max_id:int pts:int pts_count:int = Update;\nupdateWebPage#7f891213 webpage:WebPage pts:int pts_count:int = Update;\nupdateReadMessagesContents#f8227181 flags:# messages:Vector<int> pts:int pts_count:int date:flags.0?int = Update;\nupdateChannelTooLong#108d941f flags:# channel_id:long pts:flags.0?int = Update;\nupdateChannel#635b4c09 channel_id:long = Update;\nupdateNewChannelMessage#62ba04d9 message:Message pts:int pts_count:int = Update;\nupdateReadChannelInbox#922e6e10 flags:# folder_id:flags.0?int channel_id:long max_id:int still_unread_count:int pts:int = Update;\nupdateDeleteChannelMessages#c32d5b12 channel_id:long messages:Vector<int> pts:int pts_count:int = Update;\nupdateChannelMessageViews#f226ac08 channel_id:long id:int views:int = Update;\nupdateChatParticipantAdmin#d7ca61a2 chat_id:long user_id:long is_admin:Bool version:int = Update;\nupdateNewStickerSet#688a30aa stickerset:messages.StickerSet = Update;\nupdateStickerSetsOrder#bb2d201 flags:# masks:flags.0?true emojis:flags.1?true order:Vector<long> = Update;\nupdateStickerSets#31c24808 flags:# masks:flags.0?true emojis:flags.1?true = Update;\nupdateSavedGifs#9375341e = Update;\nupdateBotInlineQuery#496f379c flags:# query_id:long user_id:long query:string geo:flags.0?GeoPoint peer_type:flags.1?InlineQueryPeerType offset:string = Update;\nupdateBotInlineSend#12f12a07 flags:# user_id:long query:string geo:flags.0?GeoPoint id:string msg_id:flags.1?InputBotInlineMessageID = Update;\nupdateEditChannelMessage#1b3f4df7 message:Message pts:int pts_count:int = Update;\nupdateBotCallbackQuery#b9cfc48d flags:# query_id:long user_id:long peer:Peer msg_id:int chat_instance:long data:flags.0?bytes game_short_name:flags.1?string = Update;\nupdateEditMessage#e40370a3 message:Message pts:int pts_count:int = Update;\nupdateInlineBotCallbackQuery#691e9052 flags:# query_id:long user_id:long msg_id:InputBotInlineMessageID chat_instance:long data:flags.0?bytes game_short_name:flags.1?string = Update;\nupdateReadChannelOutbox#b75f99a9 channel_id:long max_id:int = Update;\nupdateDraftMessage#1b49ec6d flags:# peer:Peer top_msg_id:flags.0?int draft:DraftMessage = Update;\nupdateReadFeaturedStickers#571d2742 = Update;\nupdateRecentStickers#9a422c20 = Update;\nupdateConfig#a229dd06 = Update;\nupdatePtsChanged#3354678f = Update;\nupdateChannelWebPage#2f2ba99f channel_id:long webpage:WebPage pts:int pts_count:int = Update;\nupdateDialogPinned#6e6fe51c flags:# pinned:flags.0?true folder_id:flags.1?int peer:DialogPeer = Update;\nupdatePinnedDialogs#fa0f3ca2 flags:# folder_id:flags.1?int order:flags.0?Vector<DialogPeer> = Update;\nupdateBotWebhookJSON#8317c0c3 data:DataJSON = Update;\nupdateBotWebhookJSONQuery#9b9240a6 query_id:long data:DataJSON timeout:int = Update;\nupdateBotShippingQuery#b5aefd7d query_id:long user_id:long payload:bytes shipping_address:PostAddress = Update;\nupdateBotPrecheckoutQuery#8caa9a96 flags:# query_id:long user_id:long payload:bytes info:flags.0?PaymentRequestedInfo shipping_option_id:flags.1?string currency:string total_amount:long = Update;\nupdatePhoneCall#ab0f6b1e phone_call:PhoneCall = Update;\nupdateLangPackTooLong#46560264 lang_code:string = Update;\nupdateLangPack#56022f4d difference:LangPackDifference = Update;\nupdateFavedStickers#e511996d = Update;\nupdateChannelReadMessagesContents#ea29055d flags:# channel_id:long top_msg_id:flags.0?int messages:Vector<int> = Update;\nupdateContactsReset#7084a7be = Update;\nupdateChannelAvailableMessages#b23fc698 channel_id:long available_min_id:int = Update;\nupdateDialogUnreadMark#e16459c3 flags:# unread:flags.0?true peer:DialogPeer = Update;\nupdateMessagePoll#aca1657b flags:# poll_id:long poll:flags.0?Poll results:PollResults = Update;\nupdateChatDefaultBannedRights#54c01850 peer:Peer default_banned_rights:ChatBannedRights version:int = Update;\nupdateFolderPeers#19360dc0 folder_peers:Vector<FolderPeer> pts:int pts_count:int = Update;\nupdatePeerSettings#6a7e7366 peer:Peer settings:PeerSettings = Update;\nupdatePeerLocated#b4afcfb0 peers:Vector<PeerLocated> = Update;\nupdateNewScheduledMessage#39a51dfb message:Message = Update;\nupdateDeleteScheduledMessages#90866cee peer:Peer messages:Vector<int> = Update;\nupdateTheme#8216fba3 theme:Theme = Update;\nupdateGeoLiveViewed#871fb939 peer:Peer msg_id:int = Update;\nupdateLoginToken#564fe691 = Update;\nupdateMessagePollVote#24f40e77 poll_id:long peer:Peer options:Vector<bytes> qts:int = Update;\nupdateDialogFilter#26ffde7d flags:# id:int filter:flags.0?DialogFilter = Update;\nupdateDialogFilterOrder#a5d72105 order:Vector<int> = Update;\nupdateDialogFilters#3504914f = Update;\nupdatePhoneCallSignalingData#2661bf09 phone_call_id:long data:bytes = Update;\nupdateChannelMessageForwards#d29a27f4 channel_id:long id:int forwards:int = Update;\nupdateReadChannelDiscussionInbox#d6b19546 flags:# channel_id:long top_msg_id:int read_max_id:int broadcast_id:flags.0?long broadcast_post:flags.0?int = Update;\nupdateReadChannelDiscussionOutbox#695c9e7c channel_id:long top_msg_id:int read_max_id:int = Update;\nupdatePeerBlocked#ebe07752 flags:# blocked:flags.0?true blocked_my_stories_from:flags.1?true peer_id:Peer = Update;\nupdateChannelUserTyping#8c88c923 flags:# channel_id:long top_msg_id:flags.0?int from_id:Peer action:SendMessageAction = Update;\nupdatePinnedMessages#ed85eab5 flags:# pinned:flags.0?true peer:Peer messages:Vector<int> pts:int pts_count:int = Update;\nupdatePinnedChannelMessages#5bb98608 flags:# pinned:flags.0?true channel_id:long messages:Vector<int> pts:int pts_count:int = Update;\nupdateChat#f89a6a4e chat_id:long = Update;\nupdateGroupCallParticipants#f2ebdb4e call:InputGroupCall participants:Vector<GroupCallParticipant> version:int = Update;\nupdateGroupCall#14b24500 chat_id:long call:GroupCall = Update;\nupdatePeerHistoryTTL#bb9bb9a5 flags:# peer:Peer ttl_period:flags.0?int = Update;\nupdateChatParticipant#d087663a flags:# chat_id:long date:int actor_id:long user_id:long prev_participant:flags.0?ChatParticipant new_participant:flags.1?ChatParticipant invite:flags.2?ExportedChatInvite qts:int = Update;\nupdateChannelParticipant#985d3abb flags:# via_chatlist:flags.3?true channel_id:long date:int actor_id:long user_id:long prev_participant:flags.0?ChannelParticipant new_participant:flags.1?ChannelParticipant invite:flags.2?ExportedChatInvite qts:int = Update;\nupdateBotStopped#c4870a49 user_id:long date:int stopped:Bool qts:int = Update;\nupdateGroupCallConnection#b783982 flags:# presentation:flags.0?true params:DataJSON = Update;\nupdateBotCommands#4d712f2e peer:Peer bot_id:long commands:Vector<BotCommand> = Update;\nupdatePendingJoinRequests#7063c3db peer:Peer requests_pending:int recent_requesters:Vector<long> = Update;\nupdateBotChatInviteRequester#11dfa986 peer:Peer date:int user_id:long about:string invite:ExportedChatInvite qts:int = Update;\nupdateMessageReactions#5e1b3cb8 flags:# peer:Peer msg_id:int top_msg_id:flags.0?int reactions:MessageReactions = Update;\nupdateAttachMenuBots#17b7a20b = Update;\nupdateWebViewResultSent#1592b79d query_id:long = Update;\nupdateBotMenuButton#14b85813 bot_id:long button:BotMenuButton = Update;\nupdateSavedRingtones#74d8be99 = Update;\nupdateTranscribedAudio#84cd5a flags:# pending:flags.0?true peer:Peer msg_id:int transcription_id:long text:string = Update;\nupdateReadFeaturedEmojiStickers#fb4c496c = Update;\nupdateUserEmojiStatus#28373599 user_id:long emoji_status:EmojiStatus = Update;\nupdateRecentEmojiStatuses#30f443db = Update;\nupdateRecentReactions#6f7863f4 = Update;\nupdateMoveStickerSetToTop#86fccf85 flags:# masks:flags.0?true emojis:flags.1?true stickerset:long = Update;\nupdateMessageExtendedMedia#d5a41724 peer:Peer msg_id:int extended_media:Vector<MessageExtendedMedia> = Update;\nupdateChannelPinnedTopic#192efbe3 flags:# pinned:flags.0?true channel_id:long topic_id:int = Update;\nupdateChannelPinnedTopics#fe198602 flags:# channel_id:long order:flags.0?Vector<int> = Update;\nupdateUser#20529438 user_id:long = Update;\nupdateAutoSaveSettings#ec05b097 = Update;\nupdateStory#75b3b798 peer:Peer story:StoryItem = Update;\nupdateReadStories#f74e932b peer:Peer max_id:int = Update;\nupdateStoryID#1bf335b9 id:int random_id:long = Update;\nupdateStoriesStealthMode#2c084dc1 stealth_mode:StoriesStealthMode = Update;\nupdateSentStoryReaction#7d627683 peer:Peer story_id:int reaction:Reaction = Update;\nupdateBotChatBoost#904dd49c peer:Peer boost:Boost qts:int = Update;\nupdateChannelViewForumAsMessages#7b68920 channel_id:long enabled:Bool = Update;\nupdatePeerWallpaper#ae3f101d flags:# wallpaper_overridden:flags.1?true peer:Peer wallpaper:flags.0?WallPaper = Update;\nupdateBotMessageReaction#ac21d3ce peer:Peer msg_id:int date:int actor:Peer old_reactions:Vector<Reaction> new_reactions:Vector<Reaction> qts:int = Update;\nupdateBotMessageReactions#9cb7759 peer:Peer msg_id:int date:int reactions:Vector<ReactionCount> qts:int = Update;\nupdateSavedDialogPinned#aeaf9e74 flags:# pinned:flags.0?true peer:DialogPeer = Update;\nupdatePinnedSavedDialogs#686c85a6 flags:# order:flags.0?Vector<DialogPeer> = Update;\nupdateSavedReactionTags#39c67432 = Update;\nupdateSmsJob#f16269d4 job_id:string = Update;\nupdateQuickReplies#f9470ab2 quick_replies:Vector<QuickReply> = Update;\nupdateNewQuickReply#f53da717 quick_reply:QuickReply = Update;\nupdateDeleteQuickReply#53e6f1ec shortcut_id:int = Update;\nupdateQuickReplyMessage#3e050d0f message:Message = Update;\nupdateDeleteQuickReplyMessages#566fe7cd shortcut_id:int messages:Vector<int> = Update;\nupdateBotBusinessConnect#8ae5c97a connection:BotBusinessConnection qts:int = Update;\nupdateBotNewBusinessMessage#9ddb347c flags:# connection_id:string message:Message reply_to_message:flags.0?Message qts:int = Update;\nupdateBotEditBusinessMessage#7df587c flags:# connection_id:string message:Message reply_to_message:flags.0?Message qts:int = Update;\nupdateBotDeleteBusinessMessage#a02a982e connection_id:string peer:Peer messages:Vector<int> qts:int = Update;\nupdateNewStoryReaction#1824e40b story_id:int peer:Peer reaction:Reaction = Update;\nupdateBroadcastRevenueTransactions#dfd961f5 peer:Peer balances:BroadcastRevenueBalances = Update;\nupdateStarsBalance#fb85198 balance:long = Update;\nupdateBusinessBotCallbackQuery#1ea2fda7 flags:# query_id:long user_id:long connection_id:string message:Message reply_to_message:flags.2?Message chat_instance:long data:flags.0?bytes = Update;\nupdateStarsRevenueStatus#a584b019 peer:Peer status:StarsRevenueStatus = Update;\nupdateBotPurchasedPaidMedia#283bd312 user_id:long payload:string qts:int = Update;\nupdatePaidReactionPrivacy#51ca7aec private:Bool = Update;\nupdates.state#a56c2a3e pts:int qts:int date:int seq:int unread_count:int = updates.State;\nupdates.differenceEmpty#5d75a138 date:int seq:int = updates.Difference;\nupdates.difference#f49ca0 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> state:updates.State = updates.Difference;\nupdates.differenceSlice#a8fb1981 new_messages:Vector<Message> new_encrypted_messages:Vector<EncryptedMessage> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> intermediate_state:updates.State = updates.Difference;\nupdates.differenceTooLong#4afe8f6d pts:int = updates.Difference;\nupdatesTooLong#e317af7e = Updates;\nupdateShortMessage#313bc7f8 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int user_id:long message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;\nupdateShortChatMessage#4d6deea5 flags:# out:flags.1?true mentioned:flags.4?true media_unread:flags.5?true silent:flags.13?true id:int from_id:long chat_id:long message:string pts:int pts_count:int date:int fwd_from:flags.2?MessageFwdHeader via_bot_id:flags.11?long reply_to:flags.3?MessageReplyHeader entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;\nupdateShort#78d4dec1 update:Update date:int = Updates;\nupdatesCombined#725b04c3 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq_start:int seq:int = Updates;\nupdates#74ae4240 updates:Vector<Update> users:Vector<User> chats:Vector<Chat> date:int seq:int = Updates;\nupdateShortSentMessage#9015e101 flags:# out:flags.1?true id:int pts:int pts_count:int date:int media:flags.9?MessageMedia entities:flags.7?Vector<MessageEntity> ttl_period:flags.25?int = Updates;\nphotos.photos#8dca6aa5 photos:Vector<Photo> users:Vector<User> = photos.Photos;\nphotos.photosSlice#15051f54 count:int photos:Vector<Photo> users:Vector<User> = photos.Photos;\nphotos.photo#20212ca8 photo:Photo users:Vector<User> = photos.Photo;\nupload.file#96a18d5 type:storage.FileType mtime:int bytes:bytes = upload.File;\nupload.fileCdnRedirect#f18cda44 dc_id:int file_token:bytes encryption_key:bytes encryption_iv:bytes file_hashes:Vector<FileHash> = upload.File;\ndcOption#18b7a10d flags:# ipv6:flags.0?true media_only:flags.1?true tcpo_only:flags.2?true cdn:flags.3?true static:flags.4?true this_port_only:flags.5?true id:int ip_address:string port:int secret:flags.10?bytes = DcOption;\nconfig#cc1a241e flags:# default_p2p_contacts:flags.3?true preload_featured_stickers:flags.4?true revoke_pm_inbox:flags.6?true blocked_mode:flags.8?true force_try_ipv6:flags.14?true date:int expires:int test_mode:Bool this_dc:int dc_options:Vector<DcOption> dc_txt_domain_name:string chat_size_max:int megagroup_size_max:int forwarded_count_max:int online_update_period_ms:int offline_blur_timeout_ms:int offline_idle_timeout_ms:int online_cloud_timeout_ms:int notify_cloud_delay_ms:int notify_default_delay_ms:int push_chat_period_ms:int push_chat_limit:int edit_time_limit:int revoke_time_limit:int revoke_pm_time_limit:int rating_e_decay:int stickers_recent_limit:int channels_read_media_period:int tmp_sessions:flags.0?int call_receive_timeout_ms:int call_ring_timeout_ms:int call_connect_timeout_ms:int call_packet_timeout_ms:int me_url_prefix:string autoupdate_url_prefix:flags.7?string gif_search_username:flags.9?string venue_search_username:flags.10?string img_search_username:flags.11?string static_maps_provider:flags.12?string caption_length_max:int message_length_max:int webfile_dc_id:int suggested_lang_code:flags.2?string lang_pack_version:flags.2?int base_lang_pack_version:flags.2?int reactions_default:flags.15?Reaction autologin_token:flags.16?string = Config;\nnearestDc#8e1a1775 country:string this_dc:int nearest_dc:int = NearestDc;\nhelp.appUpdate#ccbbce30 flags:# can_not_skip:flags.0?true id:int version:string text:string entities:Vector<MessageEntity> document:flags.1?Document url:flags.2?string sticker:flags.3?Document = help.AppUpdate;\nhelp.noAppUpdate#c45a6536 = help.AppUpdate;\nhelp.inviteText#18cb9f78 message:string = help.InviteText;\nencryptedChatEmpty#ab7ec0a0 id:int = EncryptedChat;\nencryptedChatWaiting#66b25953 id:int access_hash:long date:int admin_id:long participant_id:long = EncryptedChat;\nencryptedChatRequested#48f1d94c flags:# folder_id:flags.0?int id:int access_hash:long date:int admin_id:long participant_id:long g_a:bytes = EncryptedChat;\nencryptedChat#61f0d4c7 id:int access_hash:long date:int admin_id:long participant_id:long g_a_or_b:bytes key_fingerprint:long = EncryptedChat;\nencryptedChatDiscarded#1e1c7c45 flags:# history_deleted:flags.0?true id:int = EncryptedChat;\ninputEncryptedChat#f141b5e1 chat_id:int access_hash:long = InputEncryptedChat;\nencryptedFileEmpty#c21f497e = EncryptedFile;\nencryptedFile#a8008cd8 id:long access_hash:long size:long dc_id:int key_fingerprint:int = EncryptedFile;\ninputEncryptedFileEmpty#1837c364 = InputEncryptedFile;\ninputEncryptedFileUploaded#64bd0306 id:long parts:int md5_checksum:string key_fingerprint:int = InputEncryptedFile;\ninputEncryptedFile#5a17b5e5 id:long access_hash:long = InputEncryptedFile;\ninputEncryptedFileBigUploaded#2dc173c8 id:long parts:int key_fingerprint:int = InputEncryptedFile;\nencryptedMessage#ed18c118 random_id:long chat_id:int date:int bytes:bytes file:EncryptedFile = EncryptedMessage;\nencryptedMessageService#23734b06 random_id:long chat_id:int date:int bytes:bytes = EncryptedMessage;\nmessages.dhConfigNotModified#c0e24635 random:bytes = messages.DhConfig;\nmessages.dhConfig#2c221edd g:int p:bytes version:int random:bytes = messages.DhConfig;\nmessages.sentEncryptedMessage#560f8935 date:int = messages.SentEncryptedMessage;\nmessages.sentEncryptedFile#9493ff32 date:int file:EncryptedFile = messages.SentEncryptedMessage;\ninputDocumentEmpty#72f0eaae = InputDocument;\ninputDocument#1abfb575 id:long access_hash:long file_reference:bytes = InputDocument;\ndocumentEmpty#36f8c871 id:long = Document;\ndocument#8fd4c4d8 flags:# id:long access_hash:long file_reference:bytes date:int mime_type:string size:long thumbs:flags.0?Vector<PhotoSize> video_thumbs:flags.1?Vector<VideoSize> dc_id:int attributes:Vector<DocumentAttribute> = Document;\nhelp.support#17c6b5f6 phone_number:string user:User = help.Support;\nnotifyPeer#9fd40bd8 peer:Peer = NotifyPeer;\nnotifyUsers#b4c83b4c = NotifyPeer;\nnotifyChats#c007cec3 = NotifyPeer;\nnotifyBroadcasts#d612e8ef = NotifyPeer;\nnotifyForumTopic#226e6308 peer:Peer top_msg_id:int = NotifyPeer;\nsendMessageTypingAction#16bf744e = SendMessageAction;\nsendMessageCancelAction#fd5ec8f5 = SendMessageAction;\nsendMessageRecordVideoAction#a187d66f = SendMessageAction;\nsendMessageUploadVideoAction#e9763aec progress:int = SendMessageAction;\nsendMessageRecordAudioAction#d52f73f7 = SendMessageAction;\nsendMessageUploadAudioAction#f351d7ab progress:int = SendMessageAction;\nsendMessageUploadPhotoAction#d1d34a26 progress:int = SendMessageAction;\nsendMessageUploadDocumentAction#aa0cd9e4 progress:int = SendMessageAction;\nsendMessageGeoLocationAction#176f8ba1 = SendMessageAction;\nsendMessageChooseContactAction#628cbc6f = SendMessageAction;\nsendMessageGamePlayAction#dd6a8f48 = SendMessageAction;\nsendMessageRecordRoundAction#88f27fbc = SendMessageAction;\nsendMessageUploadRoundAction#243e1c66 progress:int = SendMessageAction;\nspeakingInGroupCallAction#d92c2285 = SendMessageAction;\nsendMessageHistoryImportAction#dbda9246 progress:int = SendMessageAction;\nsendMessageChooseStickerAction#b05ac6b1 = SendMessageAction;\nsendMessageEmojiInteraction#25972bcb emoticon:string msg_id:int interaction:DataJSON = SendMessageAction;\nsendMessageEmojiInteractionSeen#b665902e emoticon:string = SendMessageAction;\ncontacts.found#b3134d9d my_results:Vector<Peer> results:Vector<Peer> chats:Vector<Chat> users:Vector<User> = contacts.Found;\ninputPrivacyKeyStatusTimestamp#4f96cb18 = InputPrivacyKey;\ninputPrivacyKeyChatInvite#bdfb0426 = InputPrivacyKey;\ninputPrivacyKeyPhoneCall#fabadc5f = InputPrivacyKey;\ninputPrivacyKeyPhoneP2P#db9e70d2 = InputPrivacyKey;\ninputPrivacyKeyForwards#a4dd4c08 = InputPrivacyKey;\ninputPrivacyKeyProfilePhoto#5719bacc = InputPrivacyKey;\ninputPrivacyKeyPhoneNumber#352dafa = InputPrivacyKey;\ninputPrivacyKeyAddedByPhone#d1219bdd = InputPrivacyKey;\ninputPrivacyKeyVoiceMessages#aee69d68 = InputPrivacyKey;\ninputPrivacyKeyAbout#3823cc40 = InputPrivacyKey;\ninputPrivacyKeyBirthday#d65a11cc = InputPrivacyKey;\nprivacyKeyStatusTimestamp#bc2eab30 = PrivacyKey;\nprivacyKeyChatInvite#500e6dfa = PrivacyKey;\nprivacyKeyPhoneCall#3d662b7b = PrivacyKey;\nprivacyKeyPhoneP2P#39491cc8 = PrivacyKey;\nprivacyKeyForwards#69ec56a3 = PrivacyKey;\nprivacyKeyProfilePhoto#96151fed = PrivacyKey;\nprivacyKeyPhoneNumber#d19ae46d = PrivacyKey;\nprivacyKeyAddedByPhone#42ffd42b = PrivacyKey;\nprivacyKeyVoiceMessages#697f414 = PrivacyKey;\nprivacyKeyAbout#a486b761 = PrivacyKey;\nprivacyKeyBirthday#2000a518 = PrivacyKey;\ninputPrivacyValueAllowContacts#d09e07b = InputPrivacyRule;\ninputPrivacyValueAllowAll#184b35ce = InputPrivacyRule;\ninputPrivacyValueAllowUsers#131cc67f users:Vector<InputUser> = InputPrivacyRule;\ninputPrivacyValueDisallowContacts#ba52007 = InputPrivacyRule;\ninputPrivacyValueDisallowAll#d66b66c9 = InputPrivacyRule;\ninputPrivacyValueDisallowUsers#90110467 users:Vector<InputUser> = InputPrivacyRule;\ninputPrivacyValueAllowChatParticipants#840649cf chats:Vector<long> = InputPrivacyRule;\ninputPrivacyValueDisallowChatParticipants#e94f0f86 chats:Vector<long> = InputPrivacyRule;\ninputPrivacyValueAllowCloseFriends#2f453e49 = InputPrivacyRule;\ninputPrivacyValueAllowPremium#77cdc9f1 = InputPrivacyRule;\nprivacyValueAllowContacts#fffe1bac = PrivacyRule;\nprivacyValueAllowAll#65427b82 = PrivacyRule;\nprivacyValueAllowUsers#b8905fb2 users:Vector<long> = PrivacyRule;\nprivacyValueDisallowContacts#f888fa1a = PrivacyRule;\nprivacyValueDisallowAll#8b73e763 = PrivacyRule;\nprivacyValueDisallowUsers#e4621141 users:Vector<long> = PrivacyRule;\nprivacyValueAllowChatParticipants#6b134e8e chats:Vector<long> = PrivacyRule;\nprivacyValueDisallowChatParticipants#41c87565 chats:Vector<long> = PrivacyRule;\nprivacyValueAllowCloseFriends#f7e8d89b = PrivacyRule;\nprivacyValueAllowPremium#ece9814b = PrivacyRule;\naccount.privacyRules#50a04e45 rules:Vector<PrivacyRule> chats:Vector<Chat> users:Vector<User> = account.PrivacyRules;\naccountDaysTTL#b8d0afdf days:int = AccountDaysTTL;\ndocumentAttributeImageSize#6c37c15c w:int h:int = DocumentAttribute;\ndocumentAttributeAnimated#11b58939 = DocumentAttribute;\ndocumentAttributeSticker#6319d612 flags:# mask:flags.1?true alt:string stickerset:InputStickerSet mask_coords:flags.0?MaskCoords = DocumentAttribute;\ndocumentAttributeVideo#43c57c48 flags:# round_message:flags.0?true supports_streaming:flags.1?true nosound:flags.3?true duration:double w:int h:int preload_prefix_size:flags.2?int video_start_ts:flags.4?double video_codec:flags.5?string = DocumentAttribute;\ndocumentAttributeAudio#9852f9c6 flags:# voice:flags.10?true duration:int title:flags.0?string performer:flags.1?string waveform:flags.2?bytes = DocumentAttribute;\ndocumentAttributeFilename#15590068 file_name:string = DocumentAttribute;\ndocumentAttributeHasStickers#9801d2f7 = DocumentAttribute;\ndocumentAttributeCustomEmoji#fd149899 flags:# free:flags.0?true text_color:flags.1?true alt:string stickerset:InputStickerSet = DocumentAttribute;\nmessages.stickersNotModified#f1749a22 = messages.Stickers;\nmessages.stickers#30a6ec7e hash:long stickers:Vector<Document> = messages.Stickers;\nstickerPack#12b299d4 emoticon:string documents:Vector<long> = StickerPack;\nmessages.allStickersNotModified#e86602c3 = messages.AllStickers;\nmessages.allStickers#cdbbcebb hash:long sets:Vector<StickerSet> = messages.AllStickers;\nmessages.affectedMessages#84d19185 pts:int pts_count:int = messages.AffectedMessages;\nwebPageEmpty#211a1788 flags:# id:long url:flags.0?string = WebPage;\nwebPagePending#b0d13e47 flags:# id:long url:flags.0?string date:int = WebPage;\nwebPage#e89c45b2 flags:# has_large_media:flags.13?true id:long url:string display_url:string hash:int type:flags.0?string site_name:flags.1?string title:flags.2?string description:flags.3?string photo:flags.4?Photo embed_url:flags.5?string embed_type:flags.5?string embed_width:flags.6?int embed_height:flags.6?int duration:flags.7?int author:flags.8?string document:flags.9?Document cached_page:flags.10?Page attributes:flags.12?Vector<WebPageAttribute> = WebPage;\nwebPageNotModified#7311ca11 flags:# cached_page_views:flags.0?int = WebPage;\nauthorization#ad01d61d flags:# current:flags.0?true official_app:flags.1?true password_pending:flags.2?true encrypted_requests_disabled:flags.3?true call_requests_disabled:flags.4?true unconfirmed:flags.5?true hash:long device_model:string platform:string system_version:string api_id:int app_name:string app_version:string date_created:int date_active:int ip:string country:string region:string = Authorization;\naccount.authorizations#4bff8ea0 authorization_ttl_days:int authorizations:Vector<Authorization> = account.Authorizations;\naccount.password#957b50fb flags:# has_recovery:flags.0?true has_secure_values:flags.1?true has_password:flags.2?true current_algo:flags.2?PasswordKdfAlgo srp_B:flags.2?bytes srp_id:flags.2?long hint:flags.3?string email_unconfirmed_pattern:flags.4?string new_algo:PasswordKdfAlgo new_secure_algo:SecurePasswordKdfAlgo secure_random:bytes pending_reset_date:flags.5?int login_email_pattern:flags.6?string = account.Password;\naccount.passwordSettings#9a5c33e5 flags:# email:flags.0?string secure_settings:flags.1?SecureSecretSettings = account.PasswordSettings;\naccount.passwordInputSettings#c23727c9 flags:# new_algo:flags.0?PasswordKdfAlgo new_password_hash:flags.0?bytes hint:flags.0?string email:flags.1?string new_secure_settings:flags.2?SecureSecretSettings = account.PasswordInputSettings;\nauth.passwordRecovery#137948a5 email_pattern:string = auth.PasswordRecovery;\nreceivedNotifyMessage#a384b779 id:int flags:int = ReceivedNotifyMessage;\nchatInviteExported#a22cbd96 flags:# revoked:flags.0?true permanent:flags.5?true request_needed:flags.6?true link:string admin_id:long date:int start_date:flags.4?int expire_date:flags.1?int usage_limit:flags.2?int usage:flags.3?int requested:flags.7?int subscription_expired:flags.10?int title:flags.8?string subscription_pricing:flags.9?StarsSubscriptionPricing = ExportedChatInvite;\nchatInvitePublicJoinRequests#ed107ab7 = ExportedChatInvite;\nchatInviteAlready#5a686d7c chat:Chat = ChatInvite;\nchatInvite#fe65389d flags:# channel:flags.0?true broadcast:flags.1?true public:flags.2?true megagroup:flags.3?true request_needed:flags.6?true verified:flags.7?true scam:flags.8?true fake:flags.9?true can_refulfill_subscription:flags.11?true title:string about:flags.5?string photo:Photo participants_count:int participants:flags.4?Vector<User> color:int subscription_pricing:flags.10?StarsSubscriptionPricing subscription_form_id:flags.12?long = ChatInvite;\nchatInvitePeek#61695cb0 chat:Chat expires:int = ChatInvite;\ninputStickerSetEmpty#ffb62b95 = InputStickerSet;\ninputStickerSetID#9de7a269 id:long access_hash:long = InputStickerSet;\ninputStickerSetShortName#861cc8a0 short_name:string = InputStickerSet;\ninputStickerSetAnimatedEmoji#28703c8 = InputStickerSet;\ninputStickerSetDice#e67f520e emoticon:string = InputStickerSet;\ninputStickerSetAnimatedEmojiAnimations#cde3739 = InputStickerSet;\ninputStickerSetPremiumGifts#c88b3b02 = InputStickerSet;\ninputStickerSetEmojiGenericAnimations#4c4d4ce = InputStickerSet;\ninputStickerSetEmojiDefaultStatuses#29d0f5ee = InputStickerSet;\ninputStickerSetEmojiDefaultTopicIcons#44c1f8e9 = InputStickerSet;\ninputStickerSetEmojiChannelDefaultStatuses#49748553 = InputStickerSet;\nstickerSet#2dd14edc flags:# archived:flags.1?true official:flags.2?true masks:flags.3?true emojis:flags.7?true text_color:flags.9?true channel_emoji_status:flags.10?true creator:flags.11?true installed_date:flags.0?int id:long access_hash:long title:string short_name:string thumbs:flags.4?Vector<PhotoSize> thumb_dc_id:flags.4?int thumb_version:flags.4?int thumb_document_id:flags.8?long count:int hash:int = StickerSet;\nmessages.stickerSet#6e153f16 set:StickerSet packs:Vector<StickerPack> keywords:Vector<StickerKeyword> documents:Vector<Document> = messages.StickerSet;\nmessages.stickerSetNotModified#d3f924eb = messages.StickerSet;\nbotCommand#c27ac8c7 command:string description:string = BotCommand;\nbotInfo#82437e74 flags:# has_preview_medias:flags.6?true user_id:flags.0?long description:flags.1?string description_photo:flags.4?Photo description_document:flags.5?Document commands:flags.2?Vector<BotCommand> menu_button:flags.3?BotMenuButton privacy_policy_url:flags.7?string = BotInfo;\nkeyboardButton#a2fa4880 text:string = KeyboardButton;\nkeyboardButtonUrl#258aff05 text:string url:string = KeyboardButton;\nkeyboardButtonCallback#35bbdb6b flags:# requires_password:flags.0?true text:string data:bytes = KeyboardButton;\nkeyboardButtonRequestPhone#b16a6c29 text:string = KeyboardButton;\nkeyboardButtonRequestGeoLocation#fc796b3f text:string = KeyboardButton;\nkeyboardButtonSwitchInline#93b9fbb5 flags:# same_peer:flags.0?true text:string query:string peer_types:flags.1?Vector<InlineQueryPeerType> = KeyboardButton;\nkeyboardButtonGame#50f41ccf text:string = KeyboardButton;\nkeyboardButtonBuy#afd93fbb text:string = KeyboardButton;\nkeyboardButtonUrlAuth#10b78d29 flags:# text:string fwd_text:flags.0?string url:string button_id:int = KeyboardButton;\ninputKeyboardButtonUrlAuth#d02e7fd4 flags:# request_write_access:flags.0?true text:string fwd_text:flags.1?string url:string bot:InputUser = KeyboardButton;\nkeyboardButtonRequestPoll#bbc7515d flags:# quiz:flags.0?Bool text:string = KeyboardButton;\ninputKeyboardButtonUserProfile#e988037b text:string user_id:InputUser = KeyboardButton;\nkeyboardButtonUserProfile#308660c1 text:string user_id:long = KeyboardButton;\nkeyboardButtonWebView#13767230 text:string url:string = KeyboardButton;\nkeyboardButtonSimpleWebView#a0c0505c text:string url:string = KeyboardButton;\nkeyboardButtonRequestPeer#53d7bfd8 text:string button_id:int peer_type:RequestPeerType max_quantity:int = KeyboardButton;\ninputKeyboardButtonRequestPeer#c9662d05 flags:# name_requested:flags.0?true username_requested:flags.1?true photo_requested:flags.2?true text:string button_id:int peer_type:RequestPeerType max_quantity:int = KeyboardButton;\nkeyboardButtonCopy#75d2698e text:string copy_text:string = KeyboardButton;\nkeyboardButtonRow#77608b83 buttons:Vector<KeyboardButton> = KeyboardButtonRow;\nreplyKeyboardHide#a03e5b85 flags:# selective:flags.2?true = ReplyMarkup;\nreplyKeyboardForceReply#86b40b08 flags:# single_use:flags.1?true selective:flags.2?true placeholder:flags.3?string = ReplyMarkup;\nreplyKeyboardMarkup#85dd99d1 flags:# resize:flags.0?true single_use:flags.1?true selective:flags.2?true persistent:flags.4?true rows:Vector<KeyboardButtonRow> placeholder:flags.3?string = ReplyMarkup;\nreplyInlineMarkup#48a30254 rows:Vector<KeyboardButtonRow> = ReplyMarkup;\nmessageEntityUnknown#bb92ba95 offset:int length:int = MessageEntity;\nmessageEntityMention#fa04579d offset:int length:int = MessageEntity;\nmessageEntityHashtag#6f635b0d offset:int length:int = MessageEntity;\nmessageEntityBotCommand#6cef8ac7 offset:int length:int = MessageEntity;\nmessageEntityUrl#6ed02538 offset:int length:int = MessageEntity;\nmessageEntityEmail#64e475c2 offset:int length:int = MessageEntity;\nmessageEntityBold#bd610bc9 offset:int length:int = MessageEntity;\nmessageEntityItalic#826f8b60 offset:int length:int = MessageEntity;\nmessageEntityCode#28a20571 offset:int length:int = MessageEntity;\nmessageEntityPre#73924be0 offset:int length:int language:string = MessageEntity;\nmessageEntityTextUrl#76a6d327 offset:int length:int url:string = MessageEntity;\nmessageEntityMentionName#dc7b1140 offset:int length:int user_id:long = MessageEntity;\ninputMessageEntityMentionName#208e68c9 offset:int length:int user_id:InputUser = MessageEntity;\nmessageEntityPhone#9b69e34b offset:int length:int = MessageEntity;\nmessageEntityCashtag#4c4e743f offset:int length:int = MessageEntity;\nmessageEntityUnderline#9c4e7e8b offset:int length:int = MessageEntity;\nmessageEntityStrike#bf0693d4 offset:int length:int = MessageEntity;\nmessageEntityBankCard#761e6af4 offset:int length:int = MessageEntity;\nmessageEntitySpoiler#32ca960f offset:int length:int = MessageEntity;\nmessageEntityCustomEmoji#c8cf05f8 offset:int length:int document_id:long = MessageEntity;\nmessageEntityBlockquote#f1ccaaac flags:# collapsed:flags.0?true offset:int length:int = MessageEntity;\ninputChannelEmpty#ee8c1e86 = InputChannel;\ninputChannel#f35aec28 channel_id:long access_hash:long = InputChannel;\ninputChannelFromMessage#5b934f9d peer:InputPeer msg_id:int channel_id:long = InputChannel;\ncontacts.resolvedPeer#7f077ad9 peer:Peer chats:Vector<Chat> users:Vector<User> = contacts.ResolvedPeer;\nmessageRange#ae30253 min_id:int max_id:int = MessageRange;\nupdates.channelDifferenceEmpty#3e11affb flags:# final:flags.0?true pts:int timeout:flags.1?int = updates.ChannelDifference;\nupdates.channelDifferenceTooLong#a4bcc6fe flags:# final:flags.0?true timeout:flags.1?int dialog:Dialog messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = updates.ChannelDifference;\nupdates.channelDifference#2064674e flags:# final:flags.0?true pts:int timeout:flags.1?int new_messages:Vector<Message> other_updates:Vector<Update> chats:Vector<Chat> users:Vector<User> = updates.ChannelDifference;\nchannelMessagesFilterEmpty#94d42ee7 = ChannelMessagesFilter;\nchannelMessagesFilter#cd77d957 flags:# exclude_new_messages:flags.1?true ranges:Vector<MessageRange> = ChannelMessagesFilter;\nchannelParticipant#cb397619 flags:# user_id:long date:int subscription_until_date:flags.0?int = ChannelParticipant;\nchannelParticipantSelf#4f607bef flags:# via_request:flags.0?true user_id:long inviter_id:long date:int subscription_until_date:flags.1?int = ChannelParticipant;\nchannelParticipantCreator#2fe601d3 flags:# user_id:long admin_rights:ChatAdminRights rank:flags.0?string = ChannelParticipant;\nchannelParticipantAdmin#34c3bb53 flags:# can_edit:flags.0?true self:flags.1?true user_id:long inviter_id:flags.1?long promoted_by:long date:int admin_rights:ChatAdminRights rank:flags.2?string = ChannelParticipant;\nchannelParticipantBanned#6df8014e flags:# left:flags.0?true peer:Peer kicked_by:long date:int banned_rights:ChatBannedRights = ChannelParticipant;\nchannelParticipantLeft#1b03f006 peer:Peer = ChannelParticipant;\nchannelParticipantsRecent#de3f3c79 = ChannelParticipantsFilter;\nchannelParticipantsAdmins#b4608969 = ChannelParticipantsFilter;\nchannelParticipantsKicked#a3b54985 q:string = ChannelParticipantsFilter;\nchannelParticipantsBots#b0d1865b = ChannelParticipantsFilter;\nchannelParticipantsBanned#1427a5e1 q:string = ChannelParticipantsFilter;\nchannelParticipantsSearch#656ac4b q:string = ChannelParticipantsFilter;\nchannelParticipantsContacts#bb6ae88d q:string = ChannelParticipantsFilter;\nchannelParticipantsMentions#e04b5ceb flags:# q:flags.0?string top_msg_id:flags.1?int = ChannelParticipantsFilter;\nchannels.channelParticipants#9ab0feaf count:int participants:Vector<ChannelParticipant> chats:Vector<Chat> users:Vector<User> = channels.ChannelParticipants;\nchannels.channelParticipantsNotModified#f0173fe9 = channels.ChannelParticipants;\nchannels.channelParticipant#dfb80317 participant:ChannelParticipant chats:Vector<Chat> users:Vector<User> = channels.ChannelParticipant;\nhelp.termsOfService#780a0310 flags:# popup:flags.0?true id:DataJSON text:string entities:Vector<MessageEntity> min_age_confirm:flags.1?int = help.TermsOfService;\nmessages.savedGifsNotModified#e8025ca2 = messages.SavedGifs;\nmessages.savedGifs#84a02a0d hash:long gifs:Vector<Document> = messages.SavedGifs;\ninputBotInlineMessageMediaAuto#3380c786 flags:# invert_media:flags.3?true message:string entities:flags.1?Vector<MessageEntity> reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;\ninputBotInlineMessageText#3dcd7a87 flags:# no_webpage:flags.0?true invert_media:flags.3?true message:string entities:flags.1?Vector<MessageEntity> reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;\ninputBotInlineMessageMediaGeo#96929a85 flags:# geo_point:InputGeoPoint heading:flags.0?int period:flags.1?int proximity_notification_radius:flags.3?int reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;\ninputBotInlineMessageMediaVenue#417bbf11 flags:# geo_point:InputGeoPoint title:string address:string provider:string venue_id:string venue_type:string reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;\ninputBotInlineMessageMediaContact#a6edbffd flags:# phone_number:string first_name:string last_name:string vcard:string reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;\ninputBotInlineMessageGame#4b425864 flags:# reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;\ninputBotInlineMessageMediaInvoice#d7e78225 flags:# title:string description:string photo:flags.0?InputWebDocument invoice:Invoice payload:bytes provider:string provider_data:DataJSON reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;\ninputBotInlineMessageMediaWebPage#bddcc510 flags:# invert_media:flags.3?true force_large_media:flags.4?true force_small_media:flags.5?true optional:flags.6?true message:string entities:flags.1?Vector<MessageEntity> url:string reply_markup:flags.2?ReplyMarkup = InputBotInlineMessage;\ninputBotInlineResult#88bf9319 flags:# id:string type:string title:flags.1?string description:flags.2?string url:flags.3?string thumb:flags.4?InputWebDocument content:flags.5?InputWebDocument send_message:InputBotInlineMessage = InputBotInlineResult;\ninputBotInlineResultPhoto#a8d864a7 id:string type:string photo:InputPhoto send_message:InputBotInlineMessage = InputBotInlineResult;\ninputBotInlineResultDocument#fff8fdc4 flags:# id:string type:string title:flags.1?string description:flags.2?string document:InputDocument send_message:InputBotInlineMessage = InputBotInlineResult;\ninputBotInlineResultGame#4fa417f2 id:string short_name:string send_message:InputBotInlineMessage = InputBotInlineResult;\nbotInlineMessageMediaAuto#764cf810 flags:# invert_media:flags.3?true message:string entities:flags.1?Vector<MessageEntity> reply_markup:flags.2?ReplyMarkup = BotInlineMessage;\nbotInlineMessageText#8c7f65e2 flags:# no_webpage:flags.0?true invert_media:flags.3?true message:string entities:flags.1?Vector<MessageEntity> reply_markup:flags.2?ReplyMarkup = BotInlineMessage;\nbotInlineMessageMediaGeo#51846fd flags:# geo:GeoPoint heading:flags.0?int period:flags.1?int proximity_notification_radius:flags.3?int reply_markup:flags.2?ReplyMarkup = BotInlineMessage;\nbotInlineMessageMediaVenue#8a86659c flags:# geo:GeoPoint title:string address:string provider:string venue_id:string venue_type:string reply_markup:flags.2?ReplyMarkup = BotInlineMessage;\nbotInlineMessageMediaContact#18d1cdc2 flags:# phone_number:string first_name:string last_name:string vcard:string reply_markup:flags.2?ReplyMarkup = BotInlineMessage;\nbotInlineMessageMediaInvoice#354a9b09 flags:# shipping_address_requested:flags.1?true test:flags.3?true title:string description:string photo:flags.0?WebDocument currency:string total_amount:long reply_markup:flags.2?ReplyMarkup = BotInlineMessage;\nbotInlineMessageMediaWebPage#809ad9a6 flags:# invert_media:flags.3?true force_large_media:flags.4?true force_small_media:flags.5?true manual:flags.7?true safe:flags.8?true message:string entities:flags.1?Vector<MessageEntity> url:string reply_markup:flags.2?ReplyMarkup = BotInlineMessage;\nbotInlineResult#11965f3a flags:# id:string type:string title:flags.1?string description:flags.2?string url:flags.3?string thumb:flags.4?WebDocument content:flags.5?WebDocument send_message:BotInlineMessage = BotInlineResult;\nbotInlineMediaResult#17db940b flags:# id:string type:string photo:flags.0?Photo document:flags.1?Document title:flags.2?string description:flags.3?string send_message:BotInlineMessage = BotInlineResult;\nmessages.botResults#e021f2f6 flags:# gallery:flags.0?true query_id:long next_offset:flags.1?string switch_pm:flags.2?InlineBotSwitchPM switch_webview:flags.3?InlineBotWebView results:Vector<BotInlineResult> cache_time:int users:Vector<User> = messages.BotResults;\nexportedMessageLink#5dab1af4 link:string html:string = ExportedMessageLink;\nmessageFwdHeader#4e4df4bb flags:# imported:flags.7?true saved_out:flags.11?true from_id:flags.0?Peer from_name:flags.5?string date:int channel_post:flags.2?int post_author:flags.3?string saved_from_peer:flags.4?Peer saved_from_msg_id:flags.4?int saved_from_id:flags.8?Peer saved_from_name:flags.9?string saved_date:flags.10?int psa_type:flags.6?string = MessageFwdHeader;\nauth.codeTypeSms#72a3158c = auth.CodeType;\nauth.codeTypeCall#741cd3e3 = auth.CodeType;\nauth.codeTypeFlashCall#226ccefb = auth.CodeType;\nauth.codeTypeMissedCall#d61ad6ee = auth.CodeType;\nauth.codeTypeFragmentSms#6ed998c = auth.CodeType;\nauth.sentCodeTypeApp#3dbb5986 length:int = auth.SentCodeType;\nauth.sentCodeTypeSms#c000bba2 length:int = auth.SentCodeType;\nauth.sentCodeTypeCall#5353e5a7 length:int = auth.SentCodeType;\nauth.sentCodeTypeFlashCall#ab03c6d9 pattern:string = auth.SentCodeType;\nauth.sentCodeTypeMissedCall#82006484 prefix:string length:int = auth.SentCodeType;\nauth.sentCodeTypeEmailCode#f450f59b flags:# apple_signin_allowed:flags.0?true google_signin_allowed:flags.1?true email_pattern:string length:int reset_available_period:flags.3?int reset_pending_date:flags.4?int = auth.SentCodeType;\nauth.sentCodeTypeSetUpEmailRequired#a5491dea flags:# apple_signin_allowed:flags.0?true google_signin_allowed:flags.1?true = auth.SentCodeType;\nauth.sentCodeTypeFragmentSms#d9565c39 url:string length:int = auth.SentCodeType;\nauth.sentCodeTypeFirebaseSms#9fd736 flags:# nonce:flags.0?bytes play_integrity_project_id:flags.2?long play_integrity_nonce:flags.2?bytes receipt:flags.1?string push_timeout:flags.1?int length:int = auth.SentCodeType;\nauth.sentCodeTypeSmsWord#a416ac81 flags:# beginning:flags.0?string = auth.SentCodeType;\nauth.sentCodeTypeSmsPhrase#b37794af flags:# beginning:flags.0?string = auth.SentCodeType;\nmessages.botCallbackAnswer#36585ea4 flags:# alert:flags.1?true has_url:flags.3?true native_ui:flags.4?true message:flags.0?string url:flags.2?string cache_time:int = messages.BotCallbackAnswer;\nmessages.messageEditData#26b5dde6 flags:# caption:flags.0?true = messages.MessageEditData;\ninputBotInlineMessageID#890c3d89 dc_id:int id:long access_hash:long = InputBotInlineMessageID;\ninputBotInlineMessageID64#b6d915d7 dc_id:int owner_id:long id:int access_hash:long = InputBotInlineMessageID;\ninlineBotSwitchPM#3c20629f text:string start_param:string = InlineBotSwitchPM;\nmessages.peerDialogs#3371c354 dialogs:Vector<Dialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> state:updates.State = messages.PeerDialogs;\ntopPeer#edcdc05b peer:Peer rating:double = TopPeer;\ntopPeerCategoryBotsPM#ab661b5b = TopPeerCategory;\ntopPeerCategoryBotsInline#148677e2 = TopPeerCategory;\ntopPeerCategoryCorrespondents#637b7ed = TopPeerCategory;\ntopPeerCategoryGroups#bd17a14a = TopPeerCategory;\ntopPeerCategoryChannels#161d9628 = TopPeerCategory;\ntopPeerCategoryPhoneCalls#1e76a78c = TopPeerCategory;\ntopPeerCategoryForwardUsers#a8406ca9 = TopPeerCategory;\ntopPeerCategoryForwardChats#fbeec0f0 = TopPeerCategory;\ntopPeerCategoryBotsApp#fd9e7bec = TopPeerCategory;\ntopPeerCategoryPeers#fb834291 category:TopPeerCategory count:int peers:Vector<TopPeer> = TopPeerCategoryPeers;\ncontacts.topPeersNotModified#de266ef5 = contacts.TopPeers;\ncontacts.topPeers#70b772a8 categories:Vector<TopPeerCategoryPeers> chats:Vector<Chat> users:Vector<User> = contacts.TopPeers;\ncontacts.topPeersDisabled#b52c939d = contacts.TopPeers;\ndraftMessageEmpty#1b0c841a flags:# date:flags.0?int = DraftMessage;\ndraftMessage#2d65321f flags:# no_webpage:flags.1?true invert_media:flags.6?true reply_to:flags.4?InputReplyTo message:string entities:flags.3?Vector<MessageEntity> media:flags.5?InputMedia date:int effect:flags.7?long = DraftMessage;\nmessages.featuredStickersNotModified#c6dc0c66 count:int = messages.FeaturedStickers;\nmessages.featuredStickers#be382906 flags:# premium:flags.0?true hash:long count:int sets:Vector<StickerSetCovered> unread:Vector<long> = messages.FeaturedStickers;\nmessages.recentStickersNotModified#b17f890 = messages.RecentStickers;\nmessages.recentStickers#88d37c56 hash:long packs:Vector<StickerPack> stickers:Vector<Document> dates:Vector<int> = messages.RecentStickers;\nmessages.archivedStickers#4fcba9c8 count:int sets:Vector<StickerSetCovered> = messages.ArchivedStickers;\nmessages.stickerSetInstallResultSuccess#38641628 = messages.StickerSetInstallResult;\nmessages.stickerSetInstallResultArchive#35e410a8 sets:Vector<StickerSetCovered> = messages.StickerSetInstallResult;\nstickerSetCovered#6410a5d2 set:StickerSet cover:Document = StickerSetCovered;\nstickerSetMultiCovered#3407e51b set:StickerSet covers:Vector<Document> = StickerSetCovered;\nstickerSetFullCovered#40d13c0e set:StickerSet packs:Vector<StickerPack> keywords:Vector<StickerKeyword> documents:Vector<Document> = StickerSetCovered;\nstickerSetNoCovered#77b15d1c set:StickerSet = StickerSetCovered;\nmaskCoords#aed6dbb2 n:int x:double y:double zoom:double = MaskCoords;\ninputStickeredMediaPhoto#4a992157 id:InputPhoto = InputStickeredMedia;\ninputStickeredMediaDocument#438865b id:InputDocument = InputStickeredMedia;\ngame#bdf9653b flags:# id:long access_hash:long short_name:string title:string description:string photo:Photo document:flags.0?Document = Game;\ninputGameID#32c3e77 id:long access_hash:long = InputGame;\ninputGameShortName#c331e80a bot_id:InputUser short_name:string = InputGame;\nhighScore#73a379eb pos:int user_id:long score:int = HighScore;\nmessages.highScores#9a3bfd99 scores:Vector<HighScore> users:Vector<User> = messages.HighScores;\ntextEmpty#dc3d824f = RichText;\ntextPlain#744694e0 text:string = RichText;\ntextBold#6724abc4 text:RichText = RichText;\ntextItalic#d912a59c text:RichText = RichText;\ntextUnderline#c12622c4 text:RichText = RichText;\ntextStrike#9bf8bb95 text:RichText = RichText;\ntextFixed#6c3f19b9 text:RichText = RichText;\ntextUrl#3c2884c1 text:RichText url:string webpage_id:long = RichText;\ntextEmail#de5a0dd6 text:RichText email:string = RichText;\ntextConcat#7e6260d7 texts:Vector<RichText> = RichText;\ntextSubscript#ed6a8504 text:RichText = RichText;\ntextSuperscript#c7fb5e01 text:RichText = RichText;\ntextMarked#34b8621 text:RichText = RichText;\ntextPhone#1ccb966a text:RichText phone:string = RichText;\ntextImage#81ccf4f document_id:long w:int h:int = RichText;\ntextAnchor#35553762 text:RichText name:string = RichText;\npageBlockUnsupported#13567e8a = PageBlock;\npageBlockTitle#70abc3fd text:RichText = PageBlock;\npageBlockSubtitle#8ffa9a1f text:RichText = PageBlock;\npageBlockAuthorDate#baafe5e0 author:RichText published_date:int = PageBlock;\npageBlockHeader#bfd064ec text:RichText = PageBlock;\npageBlockSubheader#f12bb6e1 text:RichText = PageBlock;\npageBlockParagraph#467a0766 text:RichText = PageBlock;\npageBlockPreformatted#c070d93e text:RichText language:string = PageBlock;\npageBlockFooter#48870999 text:RichText = PageBlock;\npageBlockDivider#db20b188 = PageBlock;\npageBlockAnchor#ce0d37b0 name:string = PageBlock;\npageBlockList#e4e88011 items:Vector<PageListItem> = PageBlock;\npageBlockBlockquote#263d7c26 text:RichText caption:RichText = PageBlock;\npageBlockPullquote#4f4456d3 text:RichText caption:RichText = PageBlock;\npageBlockPhoto#1759c560 flags:# photo_id:long caption:PageCaption url:flags.0?string webpage_id:flags.0?long = PageBlock;\npageBlockVideo#7c8fe7b6 flags:# autoplay:flags.0?true loop:flags.1?true video_id:long caption:PageCaption = PageBlock;\npageBlockCover#39f23300 cover:PageBlock = PageBlock;\npageBlockEmbed#a8718dc5 flags:# full_width:flags.0?true allow_scrolling:flags.3?true url:flags.1?string html:flags.2?string poster_photo_id:flags.4?long w:flags.5?int h:flags.5?int caption:PageCaption = PageBlock;\npageBlockEmbedPost#f259a80b url:string webpage_id:long author_photo_id:long author:string date:int blocks:Vector<PageBlock> caption:PageCaption = PageBlock;\npageBlockCollage#65a0fa4d items:Vector<PageBlock> caption:PageCaption = PageBlock;\npageBlockSlideshow#31f9590 items:Vector<PageBlock> caption:PageCaption = PageBlock;\npageBlockChannel#ef1751b5 channel:Chat = PageBlock;\npageBlockAudio#804361ea audio_id:long caption:PageCaption = PageBlock;\npageBlockKicker#1e148390 text:RichText = PageBlock;\npageBlockTable#bf4dea82 flags:# bordered:flags.0?true striped:flags.1?true title:RichText rows:Vector<PageTableRow> = PageBlock;\npageBlockOrderedList#9a8ae1e1 items:Vector<PageListOrderedItem> = PageBlock;\npageBlockDetails#76768bed flags:# open:flags.0?true blocks:Vector<PageBlock> title:RichText = PageBlock;\npageBlockRelatedArticles#16115a96 title:RichText articles:Vector<PageRelatedArticle> = PageBlock;\npageBlockMap#a44f3ef6 geo:GeoPoint zoom:int w:int h:int caption:PageCaption = PageBlock;\nphoneCallDiscardReasonMissed#85e42301 = PhoneCallDiscardReason;\nphoneCallDiscardReasonDisconnect#e095c1a0 = PhoneCallDiscardReason;\nphoneCallDiscardReasonHangup#57adc690 = PhoneCallDiscardReason;\nphoneCallDiscardReasonBusy#faf7e8c9 = PhoneCallDiscardReason;\ndataJSON#7d748d04 data:string = DataJSON;\nlabeledPrice#cb296bf8 label:string amount:long = LabeledPrice;\ninvoice#5db95a15 flags:# test:flags.0?true name_requested:flags.1?true phone_requested:flags.2?true email_requested:flags.3?true shipping_address_requested:flags.4?true flexible:flags.5?true phone_to_provider:flags.6?true email_to_provider:flags.7?true recurring:flags.9?true currency:string prices:Vector<LabeledPrice> max_tip_amount:flags.8?long suggested_tip_amounts:flags.8?Vector<long> terms_url:flags.10?string = Invoice;\npaymentCharge#ea02c27e id:string provider_charge_id:string = PaymentCharge;\npostAddress#1e8caaeb street_line1:string street_line2:string city:string state:string country_iso2:string post_code:string = PostAddress;\npaymentRequestedInfo#909c3f94 flags:# name:flags.0?string phone:flags.1?string email:flags.2?string shipping_address:flags.3?PostAddress = PaymentRequestedInfo;\npaymentSavedCredentialsCard#cdc27a1f id:string title:string = PaymentSavedCredentials;\nwebDocument#1c570ed1 url:string access_hash:long size:int mime_type:string attributes:Vector<DocumentAttribute> = WebDocument;\nwebDocumentNoProxy#f9c8bcc6 url:string size:int mime_type:string attributes:Vector<DocumentAttribute> = WebDocument;\ninputWebDocument#9bed434d url:string size:int mime_type:string attributes:Vector<DocumentAttribute> = InputWebDocument;\ninputWebFileLocation#c239d686 url:string access_hash:long = InputWebFileLocation;\ninputWebFileGeoPointLocation#9f2221c9 geo_point:InputGeoPoint access_hash:long w:int h:int zoom:int scale:int = InputWebFileLocation;\ninputWebFileAudioAlbumThumbLocation#f46fe924 flags:# small:flags.2?true document:flags.0?InputDocument title:flags.1?string performer:flags.1?string = InputWebFileLocation;\nupload.webFile#21e753bc size:int mime_type:string file_type:storage.FileType mtime:int bytes:bytes = upload.WebFile;\npayments.paymentForm#a0058751 flags:# can_save_credentials:flags.2?true password_missing:flags.3?true form_id:long bot_id:long title:string description:string photo:flags.5?WebDocument invoice:Invoice provider_id:long url:string native_provider:flags.4?string native_params:flags.4?DataJSON additional_methods:flags.6?Vector<PaymentFormMethod> saved_info:flags.0?PaymentRequestedInfo saved_credentials:flags.1?Vector<PaymentSavedCredentials> users:Vector<User> = payments.PaymentForm;\npayments.paymentFormStars#7bf6b15c flags:# form_id:long bot_id:long title:string description:string photo:flags.5?WebDocument invoice:Invoice users:Vector<User> = payments.PaymentForm;\npayments.validatedRequestedInfo#d1451883 flags:# id:flags.0?string shipping_options:flags.1?Vector<ShippingOption> = payments.ValidatedRequestedInfo;\npayments.paymentResult#4e5f810d updates:Updates = payments.PaymentResult;\npayments.paymentVerificationNeeded#d8411139 url:string = payments.PaymentResult;\npayments.paymentReceipt#70c4fe03 flags:# date:int bot_id:long provider_id:long title:string description:string photo:flags.2?WebDocument invoice:Invoice info:flags.0?PaymentRequestedInfo shipping:flags.1?ShippingOption tip_amount:flags.3?long currency:string total_amount:long credentials_title:string users:Vector<User> = payments.PaymentReceipt;\npayments.paymentReceiptStars#dabbf83a flags:# date:int bot_id:long title:string description:string photo:flags.2?WebDocument invoice:Invoice currency:string total_amount:long transaction_id:string users:Vector<User> = payments.PaymentReceipt;\npayments.savedInfo#fb8fe43c flags:# has_saved_credentials:flags.1?true saved_info:flags.0?PaymentRequestedInfo = payments.SavedInfo;\ninputPaymentCredentialsSaved#c10eb2cf id:string tmp_password:bytes = InputPaymentCredentials;\ninputPaymentCredentials#3417d728 flags:# save:flags.0?true data:DataJSON = InputPaymentCredentials;\ninputPaymentCredentialsApplePay#aa1c39f payment_data:DataJSON = InputPaymentCredentials;\ninputPaymentCredentialsGooglePay#8ac32801 payment_token:DataJSON = InputPaymentCredentials;\naccount.tmpPassword#db64fd34 tmp_password:bytes valid_until:int = account.TmpPassword;\nshippingOption#b6213cdf id:string title:string prices:Vector<LabeledPrice> = ShippingOption;\ninputStickerSetItem#32da9e9c flags:# document:InputDocument emoji:string mask_coords:flags.0?MaskCoords keywords:flags.1?string = InputStickerSetItem;\ninputPhoneCall#1e36fded id:long access_hash:long = InputPhoneCall;\nphoneCallEmpty#5366c915 id:long = PhoneCall;\nphoneCallWaiting#c5226f17 flags:# video:flags.6?true id:long access_hash:long date:int admin_id:long participant_id:long protocol:PhoneCallProtocol receive_date:flags.0?int = PhoneCall;\nphoneCallRequested#14b0ed0c flags:# video:flags.6?true id:long access_hash:long date:int admin_id:long participant_id:long g_a_hash:bytes protocol:PhoneCallProtocol = PhoneCall;\nphoneCallAccepted#3660c311 flags:# video:flags.6?true id:long access_hash:long date:int admin_id:long participant_id:long g_b:bytes protocol:PhoneCallProtocol = PhoneCall;\nphoneCall#30535af5 flags:# p2p_allowed:flags.5?true video:flags.6?true id:long access_hash:long date:int admin_id:long participant_id:long g_a_or_b:bytes key_fingerprint:long protocol:PhoneCallProtocol connections:Vector<PhoneConnection> start_date:int custom_parameters:flags.7?DataJSON = PhoneCall;\nphoneCallDiscarded#50ca4de1 flags:# need_rating:flags.2?true need_debug:flags.3?true video:flags.6?true id:long reason:flags.0?PhoneCallDiscardReason duration:flags.1?int = PhoneCall;\nphoneConnection#9cc123c7 flags:# tcp:flags.0?true id:long ip:string ipv6:string port:int peer_tag:bytes = PhoneConnection;\nphoneConnectionWebrtc#635fe375 flags:# turn:flags.0?true stun:flags.1?true id:long ip:string ipv6:string port:int username:string password:string = PhoneConnection;\nphoneCallProtocol#fc878fc8 flags:# udp_p2p:flags.0?true udp_reflector:flags.1?true min_layer:int max_layer:int library_versions:Vector<string> = PhoneCallProtocol;\nphone.phoneCall#ec82e140 phone_call:PhoneCall users:Vector<User> = phone.PhoneCall;\nupload.cdnFileReuploadNeeded#eea8e46e request_token:bytes = upload.CdnFile;\nupload.cdnFile#a99fca4f bytes:bytes = upload.CdnFile;\ncdnPublicKey#c982eaba dc_id:int public_key:string = CdnPublicKey;\ncdnConfig#5725e40a public_keys:Vector<CdnPublicKey> = CdnConfig;\nlangPackString#cad181f6 key:string value:string = LangPackString;\nlangPackStringPluralized#6c47ac9f flags:# key:string zero_value:flags.0?string one_value:flags.1?string two_value:flags.2?string few_value:flags.3?string many_value:flags.4?string other_value:string = LangPackString;\nlangPackStringDeleted#2979eeb2 key:string = LangPackString;\nlangPackDifference#f385c1f6 lang_code:string from_version:int version:int strings:Vector<LangPackString> = LangPackDifference;\nlangPackLanguage#eeca5ce3 flags:# official:flags.0?true rtl:flags.2?true beta:flags.3?true name:string native_name:string lang_code:string base_lang_code:flags.1?string plural_code:string strings_count:int translated_count:int translations_url:string = LangPackLanguage;\nchannelAdminLogEventActionChangeTitle#e6dfb825 prev_value:string new_value:string = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangeAbout#55188a2e prev_value:string new_value:string = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangeUsername#6a4afc38 prev_value:string new_value:string = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangePhoto#434bd2af prev_photo:Photo new_photo:Photo = ChannelAdminLogEventAction;\nchannelAdminLogEventActionToggleInvites#1b7907ae new_value:Bool = ChannelAdminLogEventAction;\nchannelAdminLogEventActionToggleSignatures#26ae0971 new_value:Bool = ChannelAdminLogEventAction;\nchannelAdminLogEventActionUpdatePinned#e9e82c18 message:Message = ChannelAdminLogEventAction;\nchannelAdminLogEventActionEditMessage#709b2405 prev_message:Message new_message:Message = ChannelAdminLogEventAction;\nchannelAdminLogEventActionDeleteMessage#42e047bb message:Message = ChannelAdminLogEventAction;\nchannelAdminLogEventActionParticipantJoin#183040d3 = ChannelAdminLogEventAction;\nchannelAdminLogEventActionParticipantLeave#f89777f2 = ChannelAdminLogEventAction;\nchannelAdminLogEventActionParticipantInvite#e31c34d8 participant:ChannelParticipant = ChannelAdminLogEventAction;\nchannelAdminLogEventActionParticipantToggleBan#e6d83d7e prev_participant:ChannelParticipant new_participant:ChannelParticipant = ChannelAdminLogEventAction;\nchannelAdminLogEventActionParticipantToggleAdmin#d5676710 prev_participant:ChannelParticipant new_participant:ChannelParticipant = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangeStickerSet#b1c3caa7 prev_stickerset:InputStickerSet new_stickerset:InputStickerSet = ChannelAdminLogEventAction;\nchannelAdminLogEventActionTogglePreHistoryHidden#5f5c95f1 new_value:Bool = ChannelAdminLogEventAction;\nchannelAdminLogEventActionDefaultBannedRights#2df5fc0a prev_banned_rights:ChatBannedRights new_banned_rights:ChatBannedRights = ChannelAdminLogEventAction;\nchannelAdminLogEventActionStopPoll#8f079643 message:Message = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangeLinkedChat#50c7ac8 prev_value:long new_value:long = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangeLocation#e6b76ae prev_value:ChannelLocation new_value:ChannelLocation = ChannelAdminLogEventAction;\nchannelAdminLogEventActionToggleSlowMode#53909779 prev_value:int new_value:int = ChannelAdminLogEventAction;\nchannelAdminLogEventActionStartGroupCall#23209745 call:InputGroupCall = ChannelAdminLogEventAction;\nchannelAdminLogEventActionDiscardGroupCall#db9f9140 call:InputGroupCall = ChannelAdminLogEventAction;\nchannelAdminLogEventActionParticipantMute#f92424d2 participant:GroupCallParticipant = ChannelAdminLogEventAction;\nchannelAdminLogEventActionParticipantUnmute#e64429c0 participant:GroupCallParticipant = ChannelAdminLogEventAction;\nchannelAdminLogEventActionToggleGroupCallSetting#56d6a247 join_muted:Bool = ChannelAdminLogEventAction;\nchannelAdminLogEventActionParticipantJoinByInvite#fe9fc158 flags:# via_chatlist:flags.0?true invite:ExportedChatInvite = ChannelAdminLogEventAction;\nchannelAdminLogEventActionExportedInviteDelete#5a50fca4 invite:ExportedChatInvite = ChannelAdminLogEventAction;\nchannelAdminLogEventActionExportedInviteRevoke#410a134e invite:ExportedChatInvite = ChannelAdminLogEventAction;\nchannelAdminLogEventActionExportedInviteEdit#e90ebb59 prev_invite:ExportedChatInvite new_invite:ExportedChatInvite = ChannelAdminLogEventAction;\nchannelAdminLogEventActionParticipantVolume#3e7f6847 participant:GroupCallParticipant = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangeHistoryTTL#6e941a38 prev_value:int new_value:int = ChannelAdminLogEventAction;\nchannelAdminLogEventActionParticipantJoinByRequest#afb6144a invite:ExportedChatInvite approved_by:long = ChannelAdminLogEventAction;\nchannelAdminLogEventActionToggleNoForwards#cb2ac766 new_value:Bool = ChannelAdminLogEventAction;\nchannelAdminLogEventActionSendMessage#278f2868 message:Message = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangeAvailableReactions#be4e0ef8 prev_value:ChatReactions new_value:ChatReactions = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangeUsernames#f04fb3a9 prev_value:Vector<string> new_value:Vector<string> = ChannelAdminLogEventAction;\nchannelAdminLogEventActionToggleForum#2cc6383 new_value:Bool = ChannelAdminLogEventAction;\nchannelAdminLogEventActionCreateTopic#58707d28 topic:ForumTopic = ChannelAdminLogEventAction;\nchannelAdminLogEventActionEditTopic#f06fe208 prev_topic:ForumTopic new_topic:ForumTopic = ChannelAdminLogEventAction;\nchannelAdminLogEventActionDeleteTopic#ae168909 topic:ForumTopic = ChannelAdminLogEventAction;\nchannelAdminLogEventActionPinTopic#5d8d353b flags:# prev_topic:flags.0?ForumTopic new_topic:flags.1?ForumTopic = ChannelAdminLogEventAction;\nchannelAdminLogEventActionToggleAntiSpam#64f36dfc new_value:Bool = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangePeerColor#5796e780 prev_value:PeerColor new_value:PeerColor = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangeProfilePeerColor#5e477b25 prev_value:PeerColor new_value:PeerColor = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangeWallpaper#31bb5d52 prev_value:WallPaper new_value:WallPaper = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangeEmojiStatus#3ea9feb1 prev_value:EmojiStatus new_value:EmojiStatus = ChannelAdminLogEventAction;\nchannelAdminLogEventActionChangeEmojiStickerSet#46d840ab prev_stickerset:InputStickerSet new_stickerset:InputStickerSet = ChannelAdminLogEventAction;\nchannelAdminLogEventActionToggleSignatureProfiles#60a79c79 new_value:Bool = ChannelAdminLogEventAction;\nchannelAdminLogEventActionParticipantSubExtend#64642db3 prev_participant:ChannelParticipant new_participant:ChannelParticipant = ChannelAdminLogEventAction;\nchannelAdminLogEvent#1fad68cd id:long date:int user_id:long action:ChannelAdminLogEventAction = ChannelAdminLogEvent;\nchannels.adminLogResults#ed8af74d events:Vector<ChannelAdminLogEvent> chats:Vector<Chat> users:Vector<User> = channels.AdminLogResults;\nchannelAdminLogEventsFilter#ea107ae4 flags:# join:flags.0?true leave:flags.1?true invite:flags.2?true ban:flags.3?true unban:flags.4?true kick:flags.5?true unkick:flags.6?true promote:flags.7?true demote:flags.8?true info:flags.9?true settings:flags.10?true pinned:flags.11?true edit:flags.12?true delete:flags.13?true group_call:flags.14?true invites:flags.15?true send:flags.16?true forums:flags.17?true sub_extend:flags.18?true = ChannelAdminLogEventsFilter;\npopularContact#5ce14175 client_id:long importers:int = PopularContact;\nmessages.favedStickersNotModified#9e8fa6d3 = messages.FavedStickers;\nmessages.favedStickers#2cb51097 hash:long packs:Vector<StickerPack> stickers:Vector<Document> = messages.FavedStickers;\nrecentMeUrlUnknown#46e1d13d url:string = RecentMeUrl;\nrecentMeUrlUser#b92c09e2 url:string user_id:long = RecentMeUrl;\nrecentMeUrlChat#b2da71d2 url:string chat_id:long = RecentMeUrl;\nrecentMeUrlChatInvite#eb49081d url:string chat_invite:ChatInvite = RecentMeUrl;\nrecentMeUrlStickerSet#bc0a57dc url:string set:StickerSetCovered = RecentMeUrl;\nhelp.recentMeUrls#e0310d7 urls:Vector<RecentMeUrl> chats:Vector<Chat> users:Vector<User> = help.RecentMeUrls;\ninputSingleMedia#1cc6e91f flags:# media:InputMedia random_id:long message:string entities:flags.0?Vector<MessageEntity> = InputSingleMedia;\nwebAuthorization#a6f8f452 hash:long bot_id:long domain:string browser:string platform:string date_created:int date_active:int ip:string region:string = WebAuthorization;\naccount.webAuthorizations#ed56c9fc authorizations:Vector<WebAuthorization> users:Vector<User> = account.WebAuthorizations;\ninputMessageID#a676a322 id:int = InputMessage;\ninputMessageReplyTo#bad88395 id:int = InputMessage;\ninputMessagePinned#86872538 = InputMessage;\ninputMessageCallbackQuery#acfa1a7e id:int query_id:long = InputMessage;\ninputDialogPeer#fcaafeb7 peer:InputPeer = InputDialogPeer;\ninputDialogPeerFolder#64600527 folder_id:int = InputDialogPeer;\ndialogPeer#e56dbf05 peer:Peer = DialogPeer;\ndialogPeerFolder#514519e2 folder_id:int = DialogPeer;\nmessages.foundStickerSetsNotModified#d54b65d = messages.FoundStickerSets;\nmessages.foundStickerSets#8af09dd2 hash:long sets:Vector<StickerSetCovered> = messages.FoundStickerSets;\nfileHash#f39b035c offset:long limit:int hash:bytes = FileHash;\ninputClientProxy#75588b3f address:string port:int = InputClientProxy;\nhelp.termsOfServiceUpdateEmpty#e3309f7f expires:int = help.TermsOfServiceUpdate;\nhelp.termsOfServiceUpdate#28ecf961 expires:int terms_of_service:help.TermsOfService = help.TermsOfServiceUpdate;\ninputSecureFileUploaded#3334b0f0 id:long parts:int md5_checksum:string file_hash:bytes secret:bytes = InputSecureFile;\ninputSecureFile#5367e5be id:long access_hash:long = InputSecureFile;\nsecureFileEmpty#64199744 = SecureFile;\nsecureFile#7d09c27e id:long access_hash:long size:long dc_id:int date:int file_hash:bytes secret:bytes = SecureFile;\nsecureData#8aeabec3 data:bytes data_hash:bytes secret:bytes = SecureData;\nsecurePlainPhone#7d6099dd phone:string = SecurePlainData;\nsecurePlainEmail#21ec5a5f email:string = SecurePlainData;\nsecureValueTypePersonalDetails#9d2a81e3 = SecureValueType;\nsecureValueTypePassport#3dac6a00 = SecureValueType;\nsecureValueTypeDriverLicense#6e425c4 = SecureValueType;\nsecureValueTypeIdentityCard#a0d0744b = SecureValueType;\nsecureValueTypeInternalPassport#99a48f23 = SecureValueType;\nsecureValueTypeAddress#cbe31e26 = SecureValueType;\nsecureValueTypeUtilityBill#fc36954e = SecureValueType;\nsecureValueTypeBankStatement#89137c0d = SecureValueType;\nsecureValueTypeRentalAgreement#8b883488 = SecureValueType;\nsecureValueTypePassportRegistration#99e3806a = SecureValueType;\nsecureValueTypeTemporaryRegistration#ea02ec33 = SecureValueType;\nsecureValueTypePhone#b320aadb = SecureValueType;\nsecureValueTypeEmail#8e3ca7ee = SecureValueType;\nsecureValue#187fa0ca flags:# type:SecureValueType data:flags.0?SecureData front_side:flags.1?SecureFile reverse_side:flags.2?SecureFile selfie:flags.3?SecureFile translation:flags.6?Vector<SecureFile> files:flags.4?Vector<SecureFile> plain_data:flags.5?SecurePlainData hash:bytes = SecureValue;\ninputSecureValue#db21d0a7 flags:# type:SecureValueType data:flags.0?SecureData front_side:flags.1?InputSecureFile reverse_side:flags.2?InputSecureFile selfie:flags.3?InputSecureFile translation:flags.6?Vector<InputSecureFile> files:flags.4?Vector<InputSecureFile> plain_data:flags.5?SecurePlainData = InputSecureValue;\nsecureValueHash#ed1ecdb0 type:SecureValueType hash:bytes = SecureValueHash;\nsecureValueErrorData#e8a40bd9 type:SecureValueType data_hash:bytes field:string text:string = SecureValueError;\nsecureValueErrorFrontSide#be3dfa type:SecureValueType file_hash:bytes text:string = SecureValueError;\nsecureValueErrorReverseSide#868a2aa5 type:SecureValueType file_hash:bytes text:string = SecureValueError;\nsecureValueErrorSelfie#e537ced6 type:SecureValueType file_hash:bytes text:string = SecureValueError;\nsecureValueErrorFile#7a700873 type:SecureValueType file_hash:bytes text:string = SecureValueError;\nsecureValueErrorFiles#666220e9 type:SecureValueType file_hash:Vector<bytes> text:string = SecureValueError;\nsecureValueError#869d758f type:SecureValueType hash:bytes text:string = SecureValueError;\nsecureValueErrorTranslationFile#a1144770 type:SecureValueType file_hash:bytes text:string = SecureValueError;\nsecureValueErrorTranslationFiles#34636dd8 type:SecureValueType file_hash:Vector<bytes> text:string = SecureValueError;\nsecureCredentialsEncrypted#33f0ea47 data:bytes hash:bytes secret:bytes = SecureCredentialsEncrypted;\naccount.authorizationForm#ad2e1cd8 flags:# required_types:Vector<SecureRequiredType> values:Vector<SecureValue> errors:Vector<SecureValueError> users:Vector<User> privacy_policy_url:flags.0?string = account.AuthorizationForm;\naccount.sentEmailCode#811f854f email_pattern:string length:int = account.SentEmailCode;\nhelp.deepLinkInfoEmpty#66afa166 = help.DeepLinkInfo;\nhelp.deepLinkInfo#6a4ee832 flags:# update_app:flags.0?true message:string entities:flags.1?Vector<MessageEntity> = help.DeepLinkInfo;\nsavedPhoneContact#1142bd56 phone:string first_name:string last_name:string date:int = SavedContact;\naccount.takeout#4dba4501 id:long = account.Takeout;\npasswordKdfAlgoUnknown#d45ab096 = PasswordKdfAlgo;\npasswordKdfAlgoSHA256SHA256PBKDF2HMACSHA512iter100000SHA256ModPow#3a912d4a salt1:bytes salt2:bytes g:int p:bytes = PasswordKdfAlgo;\nsecurePasswordKdfAlgoUnknown#4a8537 = SecurePasswordKdfAlgo;\nsecurePasswordKdfAlgoPBKDF2HMACSHA512iter100000#bbf2dda0 salt:bytes = SecurePasswordKdfAlgo;\nsecurePasswordKdfAlgoSHA512#86471d92 salt:bytes = SecurePasswordKdfAlgo;\nsecureSecretSettings#1527bcac secure_algo:SecurePasswordKdfAlgo secure_secret:bytes secure_secret_id:long = SecureSecretSettings;\ninputCheckPasswordEmpty#9880f658 = InputCheckPasswordSRP;\ninputCheckPasswordSRP#d27ff082 srp_id:long A:bytes M1:bytes = InputCheckPasswordSRP;\nsecureRequiredType#829d99da flags:# native_names:flags.0?true selfie_required:flags.1?true translation_required:flags.2?true type:SecureValueType = SecureRequiredType;\nsecureRequiredTypeOneOf#27477b4 types:Vector<SecureRequiredType> = SecureRequiredType;\nhelp.passportConfigNotModified#bfb9f457 = help.PassportConfig;\nhelp.passportConfig#a098d6af hash:int countries_langs:DataJSON = help.PassportConfig;\ninputAppEvent#1d1b1245 time:double type:string peer:long data:JSONValue = InputAppEvent;\njsonObjectValue#c0de1bd9 key:string value:JSONValue = JSONObjectValue;\njsonNull#3f6d7b68 = JSONValue;\njsonBool#c7345e6a value:Bool = JSONValue;\njsonNumber#2be0dfa4 value:double = JSONValue;\njsonString#b71e767a value:string = JSONValue;\njsonArray#f7444763 value:Vector<JSONValue> = JSONValue;\njsonObject#99c1d49d value:Vector<JSONObjectValue> = JSONValue;\npageTableCell#34566b6a flags:# header:flags.0?true align_center:flags.3?true align_right:flags.4?true valign_middle:flags.5?true valign_bottom:flags.6?true text:flags.7?RichText colspan:flags.1?int rowspan:flags.2?int = PageTableCell;\npageTableRow#e0c0c5e5 cells:Vector<PageTableCell> = PageTableRow;\npageCaption#6f747657 text:RichText credit:RichText = PageCaption;\npageListItemText#b92fb6cd text:RichText = PageListItem;\npageListItemBlocks#25e073fc blocks:Vector<PageBlock> = PageListItem;\npageListOrderedItemText#5e068047 num:string text:RichText = PageListOrderedItem;\npageListOrderedItemBlocks#98dd8936 num:string blocks:Vector<PageBlock> = PageListOrderedItem;\npageRelatedArticle#b390dc08 flags:# url:string webpage_id:long title:flags.0?string description:flags.1?string photo_id:flags.2?long author:flags.3?string published_date:flags.4?int = PageRelatedArticle;\npage#98657f0d flags:# part:flags.0?true rtl:flags.1?true v2:flags.2?true url:string blocks:Vector<PageBlock> photos:Vector<Photo> documents:Vector<Document> views:flags.3?int = Page;\nhelp.supportName#8c05f1c9 name:string = help.SupportName;\nhelp.userInfoEmpty#f3ae2eed = help.UserInfo;\nhelp.userInfo#1eb3758 message:string entities:Vector<MessageEntity> author:string date:int = help.UserInfo;\npollAnswer#ff16e2ca text:TextWithEntities option:bytes = PollAnswer;\npoll#58747131 id:long flags:# closed:flags.0?true public_voters:flags.1?true multiple_choice:flags.2?true quiz:flags.3?true question:TextWithEntities answers:Vector<PollAnswer> close_period:flags.4?int close_date:flags.5?int = Poll;\npollAnswerVoters#3b6ddad2 flags:# chosen:flags.0?true correct:flags.1?true option:bytes voters:int = PollAnswerVoters;\npollResults#7adf2420 flags:# min:flags.0?true results:flags.1?Vector<PollAnswerVoters> total_voters:flags.2?int recent_voters:flags.3?Vector<Peer> solution:flags.4?string solution_entities:flags.4?Vector<MessageEntity> = PollResults;\nchatOnlines#f041e250 onlines:int = ChatOnlines;\nstatsURL#47a971e0 url:string = StatsURL;\nchatAdminRights#5fb224d5 flags:# change_info:flags.0?true post_messages:flags.1?true edit_messages:flags.2?true delete_messages:flags.3?true ban_users:flags.4?true invite_users:flags.5?true pin_messages:flags.7?true add_admins:flags.9?true anonymous:flags.10?true manage_call:flags.11?true other:flags.12?true manage_topics:flags.13?true post_stories:flags.14?true edit_stories:flags.15?true delete_stories:flags.16?true = ChatAdminRights;\nchatBannedRights#9f120418 flags:# view_messages:flags.0?true send_messages:flags.1?true send_media:flags.2?true send_stickers:flags.3?true send_gifs:flags.4?true send_games:flags.5?true send_inline:flags.6?true embed_links:flags.7?true send_polls:flags.8?true change_info:flags.10?true invite_users:flags.15?true pin_messages:flags.17?true manage_topics:flags.18?true send_photos:flags.19?true send_videos:flags.20?true send_roundvideos:flags.21?true send_audios:flags.22?true send_voices:flags.23?true send_docs:flags.24?true send_plain:flags.25?true until_date:int = ChatBannedRights;\ninputWallPaper#e630b979 id:long access_hash:long = InputWallPaper;\ninputWallPaperSlug#72091c80 slug:string = InputWallPaper;\ninputWallPaperNoFile#967a462e id:long = InputWallPaper;\naccount.wallPapersNotModified#1c199183 = account.WallPapers;\naccount.wallPapers#cdc3858c hash:long wallpapers:Vector<WallPaper> = account.WallPapers;\ncodeSettings#ad253d78 flags:# allow_flashcall:flags.0?true current_number:flags.1?true allow_app_hash:flags.4?true allow_missed_call:flags.5?true allow_firebase:flags.7?true unknown_number:flags.9?true logout_tokens:flags.6?Vector<bytes> token:flags.8?string app_sandbox:flags.8?Bool = CodeSettings;\nwallPaperSettings#372efcd0 flags:# blur:flags.1?true motion:flags.2?true background_color:flags.0?int second_background_color:flags.4?int third_background_color:flags.5?int fourth_background_color:flags.6?int intensity:flags.3?int rotation:flags.4?int emoticon:flags.7?string = WallPaperSettings;\nautoDownloadSettings#baa57628 flags:# disabled:flags.0?true video_preload_large:flags.1?true audio_preload_next:flags.2?true phonecalls_less_data:flags.3?true stories_preload:flags.4?true photo_size_max:int video_size_max:long file_size_max:long video_upload_maxbitrate:int small_queue_active_operations_max:int large_queue_active_operations_max:int = AutoDownloadSettings;\naccount.autoDownloadSettings#63cacf26 low:AutoDownloadSettings medium:AutoDownloadSettings high:AutoDownloadSettings = account.AutoDownloadSettings;\nemojiKeyword#d5b3b9f9 keyword:string emoticons:Vector<string> = EmojiKeyword;\nemojiKeywordDeleted#236df622 keyword:string emoticons:Vector<string> = EmojiKeyword;\nemojiKeywordsDifference#5cc761bd lang_code:string from_version:int version:int keywords:Vector<EmojiKeyword> = EmojiKeywordsDifference;\nemojiURL#a575739d url:string = EmojiURL;\nemojiLanguage#b3fb5361 lang_code:string = EmojiLanguage;\nfolder#ff544e65 flags:# autofill_new_broadcasts:flags.0?true autofill_public_groups:flags.1?true autofill_new_correspondents:flags.2?true id:int title:string photo:flags.3?ChatPhoto = Folder;\ninputFolderPeer#fbd2c296 peer:InputPeer folder_id:int = InputFolderPeer;\nfolderPeer#e9baa668 peer:Peer folder_id:int = FolderPeer;\nmessages.searchCounter#e844ebff flags:# inexact:flags.1?true filter:MessagesFilter count:int = messages.SearchCounter;\nurlAuthResultRequest#92d33a0e flags:# request_write_access:flags.0?true bot:User domain:string = UrlAuthResult;\nurlAuthResultAccepted#8f8c0e4e url:string = UrlAuthResult;\nurlAuthResultDefault#a9d6db1f = UrlAuthResult;\nchannelLocationEmpty#bfb5ad8b = ChannelLocation;\nchannelLocation#209b82db geo_point:GeoPoint address:string = ChannelLocation;\npeerLocated#ca461b5d peer:Peer expires:int distance:int = PeerLocated;\npeerSelfLocated#f8ec284b expires:int = PeerLocated;\nrestrictionReason#d072acb4 platform:string reason:string text:string = RestrictionReason;\ninputTheme#3c5693e9 id:long access_hash:long = InputTheme;\ninputThemeSlug#f5890df1 slug:string = InputTheme;\ntheme#a00e67d6 flags:# creator:flags.0?true default:flags.1?true for_chat:flags.5?true id:long access_hash:long slug:string title:string document:flags.2?Document settings:flags.3?Vector<ThemeSettings> emoticon:flags.6?string installs_count:flags.4?int = Theme;\naccount.themesNotModified#f41eb622 = account.Themes;\naccount.themes#9a3d8c6d hash:long themes:Vector<Theme> = account.Themes;\nauth.loginToken#629f1980 expires:int token:bytes = auth.LoginToken;\nauth.loginTokenMigrateTo#68e9916 dc_id:int token:bytes = auth.LoginToken;\nauth.loginTokenSuccess#390d5c5e authorization:auth.Authorization = auth.LoginToken;\naccount.contentSettings#57e28221 flags:# sensitive_enabled:flags.0?true sensitive_can_change:flags.1?true = account.ContentSettings;\nmessages.inactiveChats#a927fec5 dates:Vector<int> chats:Vector<Chat> users:Vector<User> = messages.InactiveChats;\nbaseThemeClassic#c3a12462 = BaseTheme;\nbaseThemeDay#fbd81688 = BaseTheme;\nbaseThemeNight#b7b31ea8 = BaseTheme;\nbaseThemeTinted#6d5f77ee = BaseTheme;\nbaseThemeArctic#5b11125a = BaseTheme;\ninputThemeSettings#8fde504f flags:# message_colors_animated:flags.2?true base_theme:BaseTheme accent_color:int outbox_accent_color:flags.3?int message_colors:flags.0?Vector<int> wallpaper:flags.1?InputWallPaper wallpaper_settings:flags.1?WallPaperSettings = InputThemeSettings;\nthemeSettings#fa58b6d4 flags:# message_colors_animated:flags.2?true base_theme:BaseTheme accent_color:int outbox_accent_color:flags.3?int message_colors:flags.0?Vector<int> wallpaper:flags.1?WallPaper = ThemeSettings;\nwebPageAttributeTheme#54b56617 flags:# documents:flags.0?Vector<Document> settings:flags.1?ThemeSettings = WebPageAttribute;\nwebPageAttributeStory#2e94c3e7 flags:# peer:Peer id:int story:flags.0?StoryItem = WebPageAttribute;\nwebPageAttributeStickerSet#50cc03d3 flags:# emojis:flags.0?true text_color:flags.1?true stickers:Vector<Document> = WebPageAttribute;\nmessages.votesList#4899484e flags:# count:int votes:Vector<MessagePeerVote> chats:Vector<Chat> users:Vector<User> next_offset:flags.0?string = messages.VotesList;\nbankCardOpenUrl#f568028a url:string name:string = BankCardOpenUrl;\npayments.bankCardData#3e24e573 title:string open_urls:Vector<BankCardOpenUrl> = payments.BankCardData;\ndialogFilter#5fb5523b flags:# contacts:flags.0?true non_contacts:flags.1?true groups:flags.2?true broadcasts:flags.3?true bots:flags.4?true exclude_muted:flags.11?true exclude_read:flags.12?true exclude_archived:flags.13?true id:int title:string emoticon:flags.25?string color:flags.27?int pinned_peers:Vector<InputPeer> include_peers:Vector<InputPeer> exclude_peers:Vector<InputPeer> = DialogFilter;\ndialogFilterDefault#363293ae = DialogFilter;\ndialogFilterChatlist#9fe28ea4 flags:# has_my_invites:flags.26?true id:int title:string emoticon:flags.25?string color:flags.27?int pinned_peers:Vector<InputPeer> include_peers:Vector<InputPeer> = DialogFilter;\ndialogFilterSuggested#77744d4a filter:DialogFilter description:string = DialogFilterSuggested;\nstatsDateRangeDays#b637edaf min_date:int max_date:int = StatsDateRangeDays;\nstatsAbsValueAndPrev#cb43acde current:double previous:double = StatsAbsValueAndPrev;\nstatsPercentValue#cbce2fe0 part:double total:double = StatsPercentValue;\nstatsGraphAsync#4a27eb2d token:string = StatsGraph;\nstatsGraphError#bedc9822 error:string = StatsGraph;\nstatsGraph#8ea464b6 flags:# json:DataJSON zoom_token:flags.0?string = StatsGraph;\nstats.broadcastStats#396ca5fc period:StatsDateRangeDays followers:StatsAbsValueAndPrev views_per_post:StatsAbsValueAndPrev shares_per_post:StatsAbsValueAndPrev reactions_per_post:StatsAbsValueAndPrev views_per_story:StatsAbsValueAndPrev shares_per_story:StatsAbsValueAndPrev reactions_per_story:StatsAbsValueAndPrev enabled_notifications:StatsPercentValue growth_graph:StatsGraph followers_graph:StatsGraph mute_graph:StatsGraph top_hours_graph:StatsGraph interactions_graph:StatsGraph iv_interactions_graph:StatsGraph views_by_source_graph:StatsGraph new_followers_by_source_graph:StatsGraph languages_graph:StatsGraph reactions_by_emotion_graph:StatsGraph story_interactions_graph:StatsGraph story_reactions_by_emotion_graph:StatsGraph recent_posts_interactions:Vector<PostInteractionCounters> = stats.BroadcastStats;\nhelp.promoDataEmpty#98f6ac75 expires:int = help.PromoData;\nhelp.promoData#8c39793f flags:# proxy:flags.0?true expires:int peer:Peer chats:Vector<Chat> users:Vector<User> psa_type:flags.1?string psa_message:flags.2?string = help.PromoData;\nvideoSize#de33b094 flags:# type:string w:int h:int size:int video_start_ts:flags.0?double = VideoSize;\nvideoSizeEmojiMarkup#f85c413c emoji_id:long background_colors:Vector<int> = VideoSize;\nvideoSizeStickerMarkup#da082fe stickerset:InputStickerSet sticker_id:long background_colors:Vector<int> = VideoSize;\nstatsGroupTopPoster#9d04af9b user_id:long messages:int avg_chars:int = StatsGroupTopPoster;\nstatsGroupTopAdmin#d7584c87 user_id:long deleted:int kicked:int banned:int = StatsGroupTopAdmin;\nstatsGroupTopInviter#535f779d user_id:long invitations:int = StatsGroupTopInviter;\nstats.megagroupStats#ef7ff916 period:StatsDateRangeDays members:StatsAbsValueAndPrev messages:StatsAbsValueAndPrev viewers:StatsAbsValueAndPrev posters:StatsAbsValueAndPrev growth_graph:StatsGraph members_graph:StatsGraph new_members_by_source_graph:StatsGraph languages_graph:StatsGraph messages_graph:StatsGraph actions_graph:StatsGraph top_hours_graph:StatsGraph weekdays_graph:StatsGraph top_posters:Vector<StatsGroupTopPoster> top_admins:Vector<StatsGroupTopAdmin> top_inviters:Vector<StatsGroupTopInviter> users:Vector<User> = stats.MegagroupStats;\nglobalPrivacySettings#734c4ccb flags:# archive_and_mute_new_noncontact_peers:flags.0?true keep_archived_unmuted:flags.1?true keep_archived_folders:flags.2?true hide_read_marks:flags.3?true new_noncontact_peers_require_premium:flags.4?true = GlobalPrivacySettings;\nhelp.countryCode#4203c5ef flags:# country_code:string prefixes:flags.0?Vector<string> patterns:flags.1?Vector<string> = help.CountryCode;\nhelp.country#c3878e23 flags:# hidden:flags.0?true iso2:string default_name:string name:flags.1?string country_codes:Vector<help.CountryCode> = help.Country;\nhelp.countriesListNotModified#93cc1f32 = help.CountriesList;\nhelp.countriesList#87d0759e countries:Vector<help.Country> hash:int = help.CountriesList;\nmessageViews#455b853d flags:# views:flags.0?int forwards:flags.1?int replies:flags.2?MessageReplies = MessageViews;\nmessages.messageViews#b6c4f543 views:Vector<MessageViews> chats:Vector<Chat> users:Vector<User> = messages.MessageViews;\nmessages.discussionMessage#a6341782 flags:# messages:Vector<Message> max_id:flags.0?int read_inbox_max_id:flags.1?int read_outbox_max_id:flags.2?int unread_count:int chats:Vector<Chat> users:Vector<User> = messages.DiscussionMessage;\nmessageReplyHeader#afbc09db flags:# reply_to_scheduled:flags.2?true forum_topic:flags.3?true quote:flags.9?true reply_to_msg_id:flags.4?int reply_to_peer_id:flags.0?Peer reply_from:flags.5?MessageFwdHeader reply_media:flags.8?MessageMedia reply_to_top_id:flags.1?int quote_text:flags.6?string quote_entities:flags.7?Vector<MessageEntity> quote_offset:flags.10?int = MessageReplyHeader;\nmessageReplyStoryHeader#e5af939 peer:Peer story_id:int = MessageReplyHeader;\nmessageReplies#83d60fc2 flags:# comments:flags.0?true replies:int replies_pts:int recent_repliers:flags.1?Vector<Peer> channel_id:flags.0?long max_id:flags.2?int read_max_id:flags.3?int = MessageReplies;\npeerBlocked#e8fd8014 peer_id:Peer date:int = PeerBlocked;\nstats.messageStats#7fe91c14 views_graph:StatsGraph reactions_by_emotion_graph:StatsGraph = stats.MessageStats;\ngroupCallDiscarded#7780bcb4 id:long access_hash:long duration:int = GroupCall;\ngroupCall#d597650c flags:# join_muted:flags.1?true can_change_join_muted:flags.2?true join_date_asc:flags.6?true schedule_start_subscribed:flags.8?true can_start_video:flags.9?true record_video_active:flags.11?true rtmp_stream:flags.12?true listeners_hidden:flags.13?true id:long access_hash:long participants_count:int title:flags.3?string stream_dc_id:flags.4?int record_start_date:flags.5?int schedule_date:flags.7?int unmuted_video_count:flags.10?int unmuted_video_limit:int version:int = GroupCall;\ninputGroupCall#d8aa840f id:long access_hash:long = InputGroupCall;\ngroupCallParticipant#eba636fe flags:# muted:flags.0?true left:flags.1?true can_self_unmute:flags.2?true just_joined:flags.4?true versioned:flags.5?true min:flags.8?true muted_by_you:flags.9?true volume_by_admin:flags.10?true self:flags.12?true video_joined:flags.15?true peer:Peer date:int active_date:flags.3?int source:int volume:flags.7?int about:flags.11?string raise_hand_rating:flags.13?long video:flags.6?GroupCallParticipantVideo presentation:flags.14?GroupCallParticipantVideo = GroupCallParticipant;\nphone.groupCall#9e727aad call:GroupCall participants:Vector<GroupCallParticipant> participants_next_offset:string chats:Vector<Chat> users:Vector<User> = phone.GroupCall;\nphone.groupParticipants#f47751b6 count:int participants:Vector<GroupCallParticipant> next_offset:string chats:Vector<Chat> users:Vector<User> version:int = phone.GroupParticipants;\ninlineQueryPeerTypeSameBotPM#3081ed9d = InlineQueryPeerType;\ninlineQueryPeerTypePM#833c0fac = InlineQueryPeerType;\ninlineQueryPeerTypeChat#d766c50a = InlineQueryPeerType;\ninlineQueryPeerTypeMegagroup#5ec4be43 = InlineQueryPeerType;\ninlineQueryPeerTypeBroadcast#6334ee9a = InlineQueryPeerType;\ninlineQueryPeerTypeBotPM#e3b2d0c = InlineQueryPeerType;\nmessages.historyImport#1662af0b id:long = messages.HistoryImport;\nmessages.historyImportParsed#5e0fb7b9 flags:# pm:flags.0?true group:flags.1?true title:flags.2?string = messages.HistoryImportParsed;\nmessages.affectedFoundMessages#ef8d3e6c pts:int pts_count:int offset:int messages:Vector<int> = messages.AffectedFoundMessages;\nchatInviteImporter#8c5adfd9 flags:# requested:flags.0?true via_chatlist:flags.3?true user_id:long date:int about:flags.2?string approved_by:flags.1?long = ChatInviteImporter;\nmessages.exportedChatInvites#bdc62dcc count:int invites:Vector<ExportedChatInvite> users:Vector<User> = messages.ExportedChatInvites;\nmessages.exportedChatInvite#1871be50 invite:ExportedChatInvite users:Vector<User> = messages.ExportedChatInvite;\nmessages.exportedChatInviteReplaced#222600ef invite:ExportedChatInvite new_invite:ExportedChatInvite users:Vector<User> = messages.ExportedChatInvite;\nmessages.chatInviteImporters#81b6b00a count:int importers:Vector<ChatInviteImporter> users:Vector<User> = messages.ChatInviteImporters;\nchatAdminWithInvites#f2ecef23 admin_id:long invites_count:int revoked_invites_count:int = ChatAdminWithInvites;\nmessages.chatAdminsWithInvites#b69b72d7 admins:Vector<ChatAdminWithInvites> users:Vector<User> = messages.ChatAdminsWithInvites;\nmessages.checkedHistoryImportPeer#a24de717 confirm_text:string = messages.CheckedHistoryImportPeer;\nphone.joinAsPeers#afe5623f peers:Vector<Peer> chats:Vector<Chat> users:Vector<User> = phone.JoinAsPeers;\nphone.exportedGroupCallInvite#204bd158 link:string = phone.ExportedGroupCallInvite;\ngroupCallParticipantVideoSourceGroup#dcb118b7 semantics:string sources:Vector<int> = GroupCallParticipantVideoSourceGroup;\ngroupCallParticipantVideo#67753ac8 flags:# paused:flags.0?true endpoint:string source_groups:Vector<GroupCallParticipantVideoSourceGroup> audio_source:flags.1?int = GroupCallParticipantVideo;\nstickers.suggestedShortName#85fea03f short_name:string = stickers.SuggestedShortName;\nbotCommandScopeDefault#2f6cb2ab = BotCommandScope;\nbotCommandScopeUsers#3c4f04d8 = BotCommandScope;\nbotCommandScopeChats#6fe1a881 = BotCommandScope;\nbotCommandScopeChatAdmins#b9aa606a = BotCommandScope;\nbotCommandScopePeer#db9d897d peer:InputPeer = BotCommandScope;\nbotCommandScopePeerAdmins#3fd863d1 peer:InputPeer = BotCommandScope;\nbotCommandScopePeerUser#a1321f3 peer:InputPeer user_id:InputUser = BotCommandScope;\naccount.resetPasswordFailedWait#e3779861 retry_date:int = account.ResetPasswordResult;\naccount.resetPasswordRequestedWait#e9effc7d until_date:int = account.ResetPasswordResult;\naccount.resetPasswordOk#e926d63e = account.ResetPasswordResult;\nsponsoredMessage#4d93a990 flags:# recommended:flags.5?true can_report:flags.12?true random_id:bytes url:string title:string message:string entities:flags.1?Vector<MessageEntity> photo:flags.6?Photo media:flags.14?MessageMedia color:flags.13?PeerColor button_text:string sponsor_info:flags.7?string additional_info:flags.8?string = SponsoredMessage;\nmessages.sponsoredMessages#c9ee1d87 flags:# posts_between:flags.0?int messages:Vector<SponsoredMessage> chats:Vector<Chat> users:Vector<User> = messages.SponsoredMessages;\nmessages.sponsoredMessagesEmpty#1839490f = messages.SponsoredMessages;\nsearchResultsCalendarPeriod#c9b0539f date:int min_msg_id:int max_msg_id:int count:int = SearchResultsCalendarPeriod;\nmessages.searchResultsCalendar#147ee23c flags:# inexact:flags.0?true count:int min_date:int min_msg_id:int offset_id_offset:flags.1?int periods:Vector<SearchResultsCalendarPeriod> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.SearchResultsCalendar;\nsearchResultPosition#7f648b67 msg_id:int date:int offset:int = SearchResultsPosition;\nmessages.searchResultsPositions#53b22baf count:int positions:Vector<SearchResultsPosition> = messages.SearchResultsPositions;\nchannels.sendAsPeers#f496b0c6 peers:Vector<SendAsPeer> chats:Vector<Chat> users:Vector<User> = channels.SendAsPeers;\nusers.userFull#3b6d152e full_user:UserFull chats:Vector<Chat> users:Vector<User> = users.UserFull;\nmessages.peerSettings#6880b94d settings:PeerSettings chats:Vector<Chat> users:Vector<User> = messages.PeerSettings;\nauth.loggedOut#c3a2835f flags:# future_auth_token:flags.0?bytes = auth.LoggedOut;\nreactionCount#a3d1cb80 flags:# chosen_order:flags.0?int reaction:Reaction count:int = ReactionCount;\nmessageReactions#a339f0b flags:# min:flags.0?true can_see_list:flags.2?true reactions_as_tags:flags.3?true results:Vector<ReactionCount> recent_reactions:flags.1?Vector<MessagePeerReaction> top_reactors:flags.4?Vector<MessageReactor> = MessageReactions;\nmessages.messageReactionsList#31bd492d flags:# count:int reactions:Vector<MessagePeerReaction> chats:Vector<Chat> users:Vector<User> next_offset:flags.0?string = messages.MessageReactionsList;\navailableReaction#c077ec01 flags:# inactive:flags.0?true premium:flags.2?true reaction:string title:string static_icon:Document appear_animation:Document select_animation:Document activate_animation:Document effect_animation:Document around_animation:flags.1?Document center_icon:flags.1?Document = AvailableReaction;\nmessages.availableReactionsNotModified#9f071957 = messages.AvailableReactions;\nmessages.availableReactions#768e3aad hash:int reactions:Vector<AvailableReaction> = messages.AvailableReactions;\nmessagePeerReaction#8c79b63c flags:# big:flags.0?true unread:flags.1?true my:flags.2?true peer_id:Peer date:int reaction:Reaction = MessagePeerReaction;\ngroupCallStreamChannel#80eb48af channel:int scale:int last_timestamp_ms:long = GroupCallStreamChannel;\nphone.groupCallStreamChannels#d0e482b2 channels:Vector<GroupCallStreamChannel> = phone.GroupCallStreamChannels;\nphone.groupCallStreamRtmpUrl#2dbf3432 url:string key:string = phone.GroupCallStreamRtmpUrl;\nattachMenuBotIconColor#4576f3f0 name:string color:int = AttachMenuBotIconColor;\nattachMenuBotIcon#b2a7386b flags:# name:string icon:Document colors:flags.0?Vector<AttachMenuBotIconColor> = AttachMenuBotIcon;\nattachMenuBot#d90d8dfe flags:# inactive:flags.0?true has_settings:flags.1?true request_write_access:flags.2?true show_in_attach_menu:flags.3?true show_in_side_menu:flags.4?true side_menu_disclaimer_needed:flags.5?true bot_id:long short_name:string peer_types:flags.3?Vector<AttachMenuPeerType> icons:Vector<AttachMenuBotIcon> = AttachMenuBot;\nattachMenuBotsNotModified#f1d88a5c = AttachMenuBots;\nattachMenuBots#3c4301c0 hash:long bots:Vector<AttachMenuBot> users:Vector<User> = AttachMenuBots;\nattachMenuBotsBot#93bf667f bot:AttachMenuBot users:Vector<User> = AttachMenuBotsBot;\nwebViewResultUrl#4d22ff98 flags:# fullsize:flags.1?true query_id:flags.0?long url:string = WebViewResult;\nwebViewMessageSent#c94511c flags:# msg_id:flags.0?InputBotInlineMessageID = WebViewMessageSent;\nbotMenuButtonDefault#7533a588 = BotMenuButton;\nbotMenuButtonCommands#4258c205 = BotMenuButton;\nbotMenuButton#c7b57ce6 text:string url:string = BotMenuButton;\naccount.savedRingtonesNotModified#fbf6e8b1 = account.SavedRingtones;\naccount.savedRingtones#c1e92cc5 hash:long ringtones:Vector<Document> = account.SavedRingtones;\nnotificationSoundDefault#97e8bebe = NotificationSound;\nnotificationSoundNone#6f0c34df = NotificationSound;\nnotificationSoundLocal#830b9ae4 title:string data:string = NotificationSound;\nnotificationSoundRingtone#ff6c8049 id:long = NotificationSound;\naccount.savedRingtone#b7263f6d = account.SavedRingtone;\naccount.savedRingtoneConverted#1f307eb7 document:Document = account.SavedRingtone;\nattachMenuPeerTypeSameBotPM#7d6be90e = AttachMenuPeerType;\nattachMenuPeerTypeBotPM#c32bfa1a = AttachMenuPeerType;\nattachMenuPeerTypePM#f146d31f = AttachMenuPeerType;\nattachMenuPeerTypeChat#509113f = AttachMenuPeerType;\nattachMenuPeerTypeBroadcast#7bfbdefc = AttachMenuPeerType;\ninputInvoiceMessage#c5b56859 peer:InputPeer msg_id:int = InputInvoice;\ninputInvoiceSlug#c326caef slug:string = InputInvoice;\ninputInvoicePremiumGiftCode#98986c0d purpose:InputStorePaymentPurpose option:PremiumGiftCodeOption = InputInvoice;\ninputInvoiceStars#65f00ce3 purpose:InputStorePaymentPurpose = InputInvoice;\ninputInvoiceChatInviteSubscription#34e793f1 hash:string = InputInvoice;\npayments.exportedInvoice#aed0cbd9 url:string = payments.ExportedInvoice;\nmessages.transcribedAudio#cfb9d957 flags:# pending:flags.0?true transcription_id:long text:string trial_remains_num:flags.1?int trial_remains_until_date:flags.1?int = messages.TranscribedAudio;\nhelp.premiumPromo#5334759c status_text:string status_entities:Vector<MessageEntity> video_sections:Vector<string> videos:Vector<Document> period_options:Vector<PremiumSubscriptionOption> users:Vector<User> = help.PremiumPromo;\ninputStorePaymentPremiumSubscription#a6751e66 flags:# restore:flags.0?true upgrade:flags.1?true = InputStorePaymentPurpose;\ninputStorePaymentGiftPremium#616f7fe8 user_id:InputUser currency:string amount:long = InputStorePaymentPurpose;\ninputStorePaymentPremiumGiftCode#a3805f3f flags:# users:Vector<InputUser> boost_peer:flags.0?InputPeer currency:string amount:long = InputStorePaymentPurpose;\ninputStorePaymentPremiumGiveaway#160544ca flags:# only_new_subscribers:flags.0?true winners_are_visible:flags.3?true boost_peer:InputPeer additional_peers:flags.1?Vector<InputPeer> countries_iso2:flags.2?Vector<string> prize_description:flags.4?string random_id:long until_date:int currency:string amount:long = InputStorePaymentPurpose;\ninputStorePaymentStarsTopup#dddd0f56 stars:long currency:string amount:long = InputStorePaymentPurpose;\ninputStorePaymentStarsGift#1d741ef7 user_id:InputUser stars:long currency:string amount:long = InputStorePaymentPurpose;\ninputStorePaymentStarsGiveaway#751f08fa flags:# only_new_subscribers:flags.0?true winners_are_visible:flags.3?true stars:long boost_peer:InputPeer additional_peers:flags.1?Vector<InputPeer> countries_iso2:flags.2?Vector<string> prize_description:flags.4?string random_id:long until_date:int currency:string amount:long users:int = InputStorePaymentPurpose;\npremiumGiftOption#74c34319 flags:# months:int currency:string amount:long bot_url:string store_product:flags.0?string = PremiumGiftOption;\npaymentFormMethod#88f8f21b url:string title:string = PaymentFormMethod;\nemojiStatusEmpty#2de11aae = EmojiStatus;\nemojiStatus#929b619d document_id:long = EmojiStatus;\nemojiStatusUntil#fa30a8c7 document_id:long until:int = EmojiStatus;\naccount.emojiStatusesNotModified#d08ce645 = account.EmojiStatuses;\naccount.emojiStatuses#90c467d1 hash:long statuses:Vector<EmojiStatus> = account.EmojiStatuses;\nreactionEmpty#79f5d419 = Reaction;\nreactionEmoji#1b2286b8 emoticon:string = Reaction;\nreactionCustomEmoji#8935fc73 document_id:long = Reaction;\nreactionPaid#523da4eb = Reaction;\nchatReactionsNone#eafc32bc = ChatReactions;\nchatReactionsAll#52928bca flags:# allow_custom:flags.0?true = ChatReactions;\nchatReactionsSome#661d4037 reactions:Vector<Reaction> = ChatReactions;\nmessages.reactionsNotModified#b06fdbdf = messages.Reactions;\nmessages.reactions#eafdf716 hash:long reactions:Vector<Reaction> = messages.Reactions;\nemailVerifyPurposeLoginSetup#4345be73 phone_number:string phone_code_hash:string = EmailVerifyPurpose;\nemailVerifyPurposeLoginChange#527d22eb = EmailVerifyPurpose;\nemailVerifyPurposePassport#bbf51685 = EmailVerifyPurpose;\nemailVerificationCode#922e55a9 code:string = EmailVerification;\nemailVerificationGoogle#db909ec2 token:string = EmailVerification;\nemailVerificationApple#96d074fd token:string = EmailVerification;\naccount.emailVerified#2b96cd1b email:string = account.EmailVerified;\naccount.emailVerifiedLogin#e1bb0d61 email:string sent_code:auth.SentCode = account.EmailVerified;\npremiumSubscriptionOption#5f2d1df2 flags:# current:flags.1?true can_purchase_upgrade:flags.2?true transaction:flags.3?string months:int currency:string amount:long bot_url:string store_product:flags.0?string = PremiumSubscriptionOption;\nsendAsPeer#b81c7034 flags:# premium_required:flags.0?true peer:Peer = SendAsPeer;\nmessageExtendedMediaPreview#ad628cc8 flags:# w:flags.0?int h:flags.0?int thumb:flags.1?PhotoSize video_duration:flags.2?int = MessageExtendedMedia;\nmessageExtendedMedia#ee479c64 media:MessageMedia = MessageExtendedMedia;\nstickerKeyword#fcfeb29c document_id:long keyword:Vector<string> = StickerKeyword;\nusername#b4073647 flags:# editable:flags.0?true active:flags.1?true username:string = Username;\nforumTopicDeleted#23f109b id:int = ForumTopic;\nforumTopic#71701da9 flags:# my:flags.1?true closed:flags.2?true pinned:flags.3?true short:flags.5?true hidden:flags.6?true id:int date:int title:string icon_color:int icon_emoji_id:flags.0?long top_message:int read_inbox_max_id:int read_outbox_max_id:int unread_count:int unread_mentions_count:int unread_reactions_count:int from_id:Peer notify_settings:PeerNotifySettings draft:flags.4?DraftMessage = ForumTopic;\nmessages.forumTopics#367617d3 flags:# order_by_create_date:flags.0?true count:int topics:Vector<ForumTopic> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> pts:int = messages.ForumTopics;\ndefaultHistoryTTL#43b46b20 period:int = DefaultHistoryTTL;\nexportedContactToken#41bf109b url:string expires:int = ExportedContactToken;\nrequestPeerTypeUser#5f3b8a00 flags:# bot:flags.0?Bool premium:flags.1?Bool = RequestPeerType;\nrequestPeerTypeChat#c9f06e1b flags:# creator:flags.0?true bot_participant:flags.5?true has_username:flags.3?Bool forum:flags.4?Bool user_admin_rights:flags.1?ChatAdminRights bot_admin_rights:flags.2?ChatAdminRights = RequestPeerType;\nrequestPeerTypeBroadcast#339bef6c flags:# creator:flags.0?true has_username:flags.3?Bool user_admin_rights:flags.1?ChatAdminRights bot_admin_rights:flags.2?ChatAdminRights = RequestPeerType;\nemojiListNotModified#481eadfa = EmojiList;\nemojiList#7a1e11d1 hash:long document_id:Vector<long> = EmojiList;\nemojiGroup#7a9abda9 title:string icon_emoji_id:long emoticons:Vector<string> = EmojiGroup;\nemojiGroupGreeting#80d26cc7 title:string icon_emoji_id:long emoticons:Vector<string> = EmojiGroup;\nemojiGroupPremium#93bcf34 title:string icon_emoji_id:long = EmojiGroup;\nmessages.emojiGroupsNotModified#6fb4ad87 = messages.EmojiGroups;\nmessages.emojiGroups#881fb94b hash:int groups:Vector<EmojiGroup> = messages.EmojiGroups;\ntextWithEntities#751f3146 text:string entities:Vector<MessageEntity> = TextWithEntities;\nmessages.translateResult#33db32f8 result:Vector<TextWithEntities> = messages.TranslatedText;\nautoSaveSettings#c84834ce flags:# photos:flags.0?true videos:flags.1?true video_max_size:flags.2?long = AutoSaveSettings;\nautoSaveException#81602d47 peer:Peer settings:AutoSaveSettings = AutoSaveException;\naccount.autoSaveSettings#4c3e069d users_settings:AutoSaveSettings chats_settings:AutoSaveSettings broadcasts_settings:AutoSaveSettings exceptions:Vector<AutoSaveException> chats:Vector<Chat> users:Vector<User> = account.AutoSaveSettings;\nhelp.appConfigNotModified#7cde641d = help.AppConfig;\nhelp.appConfig#dd18782e hash:int config:JSONValue = help.AppConfig;\ninputBotAppID#a920bd7a id:long access_hash:long = InputBotApp;\ninputBotAppShortName#908c0407 bot_id:InputUser short_name:string = InputBotApp;\nbotAppNotModified#5da674b7 = BotApp;\nbotApp#95fcd1d6 flags:# id:long access_hash:long short_name:string title:string description:string photo:Photo document:flags.0?Document hash:long = BotApp;\nmessages.botApp#eb50adf5 flags:# inactive:flags.0?true request_write_access:flags.1?true has_settings:flags.2?true app:BotApp = messages.BotApp;\ninlineBotWebView#b57295d5 text:string url:string = InlineBotWebView;\nreadParticipantDate#4a4ff172 user_id:long date:int = ReadParticipantDate;\ninputChatlistDialogFilter#f3e0da33 filter_id:int = InputChatlist;\nexportedChatlistInvite#c5181ac flags:# title:string url:string peers:Vector<Peer> = ExportedChatlistInvite;\nchatlists.exportedChatlistInvite#10e6e3a6 filter:DialogFilter invite:ExportedChatlistInvite = chatlists.ExportedChatlistInvite;\nchatlists.exportedInvites#10ab6dc7 invites:Vector<ExportedChatlistInvite> chats:Vector<Chat> users:Vector<User> = chatlists.ExportedInvites;\nchatlists.chatlistInviteAlready#fa87f659 filter_id:int missing_peers:Vector<Peer> already_peers:Vector<Peer> chats:Vector<Chat> users:Vector<User> = chatlists.ChatlistInvite;\nchatlists.chatlistInvite#1dcd839d flags:# title:string emoticon:flags.0?string peers:Vector<Peer> chats:Vector<Chat> users:Vector<User> = chatlists.ChatlistInvite;\nchatlists.chatlistUpdates#93bd878d missing_peers:Vector<Peer> chats:Vector<Chat> users:Vector<User> = chatlists.ChatlistUpdates;\nbots.botInfo#e8a775b0 name:string about:string description:string = bots.BotInfo;\nmessagePeerVote#b6cc2d5c peer:Peer option:bytes date:int = MessagePeerVote;\nmessagePeerVoteInputOption#74cda504 peer:Peer date:int = MessagePeerVote;\nmessagePeerVoteMultiple#4628f6e6 peer:Peer options:Vector<bytes> date:int = MessagePeerVote;\nstoryViews#8d595cd6 flags:# has_viewers:flags.1?true views_count:int forwards_count:flags.2?int reactions:flags.3?Vector<ReactionCount> reactions_count:flags.4?int recent_viewers:flags.0?Vector<long> = StoryViews;\nstoryItemDeleted#51e6ee4f id:int = StoryItem;\nstoryItemSkipped#ffadc913 flags:# close_friends:flags.8?true id:int date:int expire_date:int = StoryItem;\nstoryItem#79b26a24 flags:# pinned:flags.5?true public:flags.7?true close_friends:flags.8?true min:flags.9?true noforwards:flags.10?true edited:flags.11?true contacts:flags.12?true selected_contacts:flags.13?true out:flags.16?true id:int date:int from_id:flags.18?Peer fwd_from:flags.17?StoryFwdHeader expire_date:int caption:flags.0?string entities:flags.1?Vector<MessageEntity> media:MessageMedia media_areas:flags.14?Vector<MediaArea> privacy:flags.2?Vector<PrivacyRule> views:flags.3?StoryViews sent_reaction:flags.15?Reaction = StoryItem;\nstories.allStoriesNotModified#1158fe3e flags:# state:string stealth_mode:StoriesStealthMode = stories.AllStories;\nstories.allStories#6efc5e81 flags:# has_more:flags.0?true count:int state:string peer_stories:Vector<PeerStories> chats:Vector<Chat> users:Vector<User> stealth_mode:StoriesStealthMode = stories.AllStories;\nstories.stories#63c3dd0a flags:# count:int stories:Vector<StoryItem> pinned_to_top:flags.0?Vector<int> chats:Vector<Chat> users:Vector<User> = stories.Stories;\nstoryView#b0bdeac5 flags:# blocked:flags.0?true blocked_my_stories_from:flags.1?true user_id:long date:int reaction:flags.2?Reaction = StoryView;\nstoryViewPublicForward#9083670b flags:# blocked:flags.0?true blocked_my_stories_from:flags.1?true message:Message = StoryView;\nstoryViewPublicRepost#bd74cf49 flags:# blocked:flags.0?true blocked_my_stories_from:flags.1?true peer_id:Peer story:StoryItem = StoryView;\nstories.storyViewsList#59d78fc5 flags:# count:int views_count:int forwards_count:int reactions_count:int views:Vector<StoryView> chats:Vector<Chat> users:Vector<User> next_offset:flags.0?string = stories.StoryViewsList;\nstories.storyViews#de9eed1d views:Vector<StoryViews> users:Vector<User> = stories.StoryViews;\ninputReplyToMessage#22c0f6d5 flags:# reply_to_msg_id:int top_msg_id:flags.0?int reply_to_peer_id:flags.1?InputPeer quote_text:flags.2?string quote_entities:flags.3?Vector<MessageEntity> quote_offset:flags.4?int = InputReplyTo;\ninputReplyToStory#5881323a peer:InputPeer story_id:int = InputReplyTo;\nexportedStoryLink#3fc9053b link:string = ExportedStoryLink;\nstoriesStealthMode#712e27fd flags:# active_until_date:flags.0?int cooldown_until_date:flags.1?int = StoriesStealthMode;\nmediaAreaCoordinates#cfc9e002 flags:# x:double y:double w:double h:double rotation:double radius:flags.0?double = MediaAreaCoordinates;\nmediaAreaVenue#be82db9c coordinates:MediaAreaCoordinates geo:GeoPoint title:string address:string provider:string venue_id:string venue_type:string = MediaArea;\ninputMediaAreaVenue#b282217f coordinates:MediaAreaCoordinates query_id:long result_id:string = MediaArea;\nmediaAreaGeoPoint#cad5452d flags:# coordinates:MediaAreaCoordinates geo:GeoPoint address:flags.0?GeoPointAddress = MediaArea;\nmediaAreaSuggestedReaction#14455871 flags:# dark:flags.0?true flipped:flags.1?true coordinates:MediaAreaCoordinates reaction:Reaction = MediaArea;\nmediaAreaChannelPost#770416af coordinates:MediaAreaCoordinates channel_id:long msg_id:int = MediaArea;\ninputMediaAreaChannelPost#2271f2bf coordinates:MediaAreaCoordinates channel:InputChannel msg_id:int = MediaArea;\nmediaAreaUrl#37381085 coordinates:MediaAreaCoordinates url:string = MediaArea;\nmediaAreaWeather#49a6549c coordinates:MediaAreaCoordinates emoji:string temperature_c:double color:int = MediaArea;\npeerStories#9a35e999 flags:# peer:Peer max_read_id:flags.0?int stories:Vector<StoryItem> = PeerStories;\nstories.peerStories#cae68768 stories:PeerStories chats:Vector<Chat> users:Vector<User> = stories.PeerStories;\nmessages.webPage#fd5e12bd webpage:WebPage chats:Vector<Chat> users:Vector<User> = messages.WebPage;\npremiumGiftCodeOption#257e962b flags:# users:int months:int store_product:flags.0?string store_quantity:flags.1?int currency:string amount:long = PremiumGiftCodeOption;\npayments.checkedGiftCode#284a1096 flags:# via_giveaway:flags.2?true from_id:flags.4?Peer giveaway_msg_id:flags.3?int to_id:flags.0?long date:int months:int used_date:flags.1?int chats:Vector<Chat> users:Vector<User> = payments.CheckedGiftCode;\npayments.giveawayInfo#4367daa0 flags:# participating:flags.0?true preparing_results:flags.3?true start_date:int joined_too_early_date:flags.1?int admin_disallowed_chat_id:flags.2?long disallowed_country:flags.4?string = payments.GiveawayInfo;\npayments.giveawayInfoResults#e175e66f flags:# winner:flags.0?true refunded:flags.1?true start_date:int gift_code_slug:flags.3?string stars_prize:flags.4?long finish_date:int winners_count:int activated_count:flags.2?int = payments.GiveawayInfo;\nprepaidGiveaway#b2539d54 id:long months:int quantity:int date:int = PrepaidGiveaway;\nprepaidStarsGiveaway#9a9d77e0 id:long stars:long quantity:int boosts:int date:int = PrepaidGiveaway;\nboost#4b3e14d6 flags:# gift:flags.1?true giveaway:flags.2?true unclaimed:flags.3?true id:string user_id:flags.0?long giveaway_msg_id:flags.2?int date:int expires:int used_gift_slug:flags.4?string multiplier:flags.5?int stars:flags.6?long = Boost;\npremium.boostsList#86f8613c flags:# count:int boosts:Vector<Boost> next_offset:flags.0?string users:Vector<User> = premium.BoostsList;\nmyBoost#c448415c flags:# slot:int peer:flags.0?Peer date:int expires:int cooldown_until_date:flags.1?int = MyBoost;\npremium.myBoosts#9ae228e2 my_boosts:Vector<MyBoost> chats:Vector<Chat> users:Vector<User> = premium.MyBoosts;\npremium.boostsStatus#4959427a flags:# my_boost:flags.2?true level:int current_level_boosts:int boosts:int gift_boosts:flags.4?int next_level_boosts:flags.0?int premium_audience:flags.1?StatsPercentValue boost_url:string prepaid_giveaways:flags.3?Vector<PrepaidGiveaway> my_boost_slots:flags.2?Vector<int> = premium.BoostsStatus;\nstoryFwdHeader#b826e150 flags:# modified:flags.3?true from:flags.0?Peer from_name:flags.1?string story_id:flags.2?int = StoryFwdHeader;\npostInteractionCountersMessage#e7058e7f msg_id:int views:int forwards:int reactions:int = PostInteractionCounters;\npostInteractionCountersStory#8a480e27 story_id:int views:int forwards:int reactions:int = PostInteractionCounters;\nstats.storyStats#50cd067c views_graph:StatsGraph reactions_by_emotion_graph:StatsGraph = stats.StoryStats;\npublicForwardMessage#1f2bf4a message:Message = PublicForward;\npublicForwardStory#edf3add0 peer:Peer story:StoryItem = PublicForward;\nstats.publicForwards#93037e20 flags:# count:int forwards:Vector<PublicForward> next_offset:flags.0?string chats:Vector<Chat> users:Vector<User> = stats.PublicForwards;\npeerColor#b54b5acf flags:# color:flags.0?int background_emoji_id:flags.1?long = PeerColor;\nhelp.peerColorSet#26219a58 colors:Vector<int> = help.PeerColorSet;\nhelp.peerColorProfileSet#767d61eb palette_colors:Vector<int> bg_colors:Vector<int> story_colors:Vector<int> = help.PeerColorSet;\nhelp.peerColorOption#adec6ebe flags:# hidden:flags.0?true color_id:int colors:flags.1?help.PeerColorSet dark_colors:flags.2?help.PeerColorSet channel_min_level:flags.3?int group_min_level:flags.4?int = help.PeerColorOption;\nhelp.peerColorsNotModified#2ba1f5ce = help.PeerColors;\nhelp.peerColors#f8ed08 hash:int colors:Vector<help.PeerColorOption> = help.PeerColors;\nstoryReaction#6090d6d5 peer_id:Peer date:int reaction:Reaction = StoryReaction;\nstoryReactionPublicForward#bbab2643 message:Message = StoryReaction;\nstoryReactionPublicRepost#cfcd0f13 peer_id:Peer story:StoryItem = StoryReaction;\nstories.storyReactionsList#aa5f789c flags:# count:int reactions:Vector<StoryReaction> chats:Vector<Chat> users:Vector<User> next_offset:flags.0?string = stories.StoryReactionsList;\nsavedDialog#bd87cb6c flags:# pinned:flags.2?true peer:Peer top_message:int = SavedDialog;\nmessages.savedDialogs#f83ae221 dialogs:Vector<SavedDialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.SavedDialogs;\nmessages.savedDialogsSlice#44ba9dd9 count:int dialogs:Vector<SavedDialog> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.SavedDialogs;\nmessages.savedDialogsNotModified#c01f6fe8 count:int = messages.SavedDialogs;\nsavedReactionTag#cb6ff828 flags:# reaction:Reaction title:flags.0?string count:int = SavedReactionTag;\nmessages.savedReactionTagsNotModified#889b59ef = messages.SavedReactionTags;\nmessages.savedReactionTags#3259950a tags:Vector<SavedReactionTag> hash:long = messages.SavedReactionTags;\noutboxReadDate#3bb842ac date:int = OutboxReadDate;\nsmsjobs.eligibleToJoin#dc8b44cf terms_url:string monthly_sent_sms:int = smsjobs.EligibilityToJoin;\nsmsjobs.status#2aee9191 flags:# allow_international:flags.0?true recent_sent:int recent_since:int recent_remains:int total_sent:int total_since:int last_gift_slug:flags.1?string terms_url:string = smsjobs.Status;\nsmsJob#e6a1eeb8 job_id:string phone_number:string text:string = SmsJob;\nbusinessWeeklyOpen#120b1ab9 start_minute:int end_minute:int = BusinessWeeklyOpen;\nbusinessWorkHours#8c92b098 flags:# open_now:flags.0?true timezone_id:string weekly_open:Vector<BusinessWeeklyOpen> = BusinessWorkHours;\nbusinessLocation#ac5c1af7 flags:# geo_point:flags.0?GeoPoint address:string = BusinessLocation;\ninputBusinessRecipients#6f8b32aa flags:# existing_chats:flags.0?true new_chats:flags.1?true contacts:flags.2?true non_contacts:flags.3?true exclude_selected:flags.5?true users:flags.4?Vector<InputUser> = InputBusinessRecipients;\nbusinessRecipients#21108ff7 flags:# existing_chats:flags.0?true new_chats:flags.1?true contacts:flags.2?true non_contacts:flags.3?true exclude_selected:flags.5?true users:flags.4?Vector<long> = BusinessRecipients;\nbusinessAwayMessageScheduleAlways#c9b9e2b9 = BusinessAwayMessageSchedule;\nbusinessAwayMessageScheduleOutsideWorkHours#c3f2f501 = BusinessAwayMessageSchedule;\nbusinessAwayMessageScheduleCustom#cc4d9ecc start_date:int end_date:int = BusinessAwayMessageSchedule;\ninputBusinessGreetingMessage#194cb3b shortcut_id:int recipients:InputBusinessRecipients no_activity_days:int = InputBusinessGreetingMessage;\nbusinessGreetingMessage#e519abab shortcut_id:int recipients:BusinessRecipients no_activity_days:int = BusinessGreetingMessage;\ninputBusinessAwayMessage#832175e0 flags:# offline_only:flags.0?true shortcut_id:int schedule:BusinessAwayMessageSchedule recipients:InputBusinessRecipients = InputBusinessAwayMessage;\nbusinessAwayMessage#ef156a5c flags:# offline_only:flags.0?true shortcut_id:int schedule:BusinessAwayMessageSchedule recipients:BusinessRecipients = BusinessAwayMessage;\ntimezone#ff9289f5 id:string name:string utc_offset:int = Timezone;\nhelp.timezonesListNotModified#970708cc = help.TimezonesList;\nhelp.timezonesList#7b74ed71 timezones:Vector<Timezone> hash:int = help.TimezonesList;\nquickReply#697102b shortcut_id:int shortcut:string top_message:int count:int = QuickReply;\ninputQuickReplyShortcut#24596d41 shortcut:string = InputQuickReplyShortcut;\ninputQuickReplyShortcutId#1190cf1 shortcut_id:int = InputQuickReplyShortcut;\nmessages.quickReplies#c68d6695 quick_replies:Vector<QuickReply> messages:Vector<Message> chats:Vector<Chat> users:Vector<User> = messages.QuickReplies;\nmessages.quickRepliesNotModified#5f91eb5b = messages.QuickReplies;\nconnectedBot#bd068601 flags:# can_reply:flags.0?true bot_id:long recipients:BusinessBotRecipients = ConnectedBot;\naccount.connectedBots#17d7f87b connected_bots:Vector<ConnectedBot> users:Vector<User> = account.ConnectedBots;\nmessages.dialogFilters#2ad93719 flags:# tags_enabled:flags.0?true filters:Vector<DialogFilter> = messages.DialogFilters;\nbirthday#6c8e1e06 flags:# day:int month:int year:flags.0?int = Birthday;\nbotBusinessConnection#896433b4 flags:# can_reply:flags.0?true disabled:flags.1?true connection_id:string user_id:long dc_id:int date:int = BotBusinessConnection;\ninputBusinessIntro#9c469cd flags:# title:string description:string sticker:flags.0?InputDocument = InputBusinessIntro;\nbusinessIntro#5a0a066d flags:# title:string description:string sticker:flags.0?Document = BusinessIntro;\nmessages.myStickers#faff629d count:int sets:Vector<StickerSetCovered> = messages.MyStickers;\ninputCollectibleUsername#e39460a9 username:string = InputCollectible;\ninputCollectiblePhone#a2e214a4 phone:string = InputCollectible;\nfragment.collectibleInfo#6ebdff91 purchase_date:int currency:string amount:long crypto_currency:string crypto_amount:long url:string = fragment.CollectibleInfo;\ninputBusinessBotRecipients#c4e5921e flags:# existing_chats:flags.0?true new_chats:flags.1?true contacts:flags.2?true non_contacts:flags.3?true exclude_selected:flags.5?true users:flags.4?Vector<InputUser> exclude_users:flags.6?Vector<InputUser> = InputBusinessBotRecipients;\nbusinessBotRecipients#b88cf373 flags:# existing_chats:flags.0?true new_chats:flags.1?true contacts:flags.2?true non_contacts:flags.3?true exclude_selected:flags.5?true users:flags.4?Vector<long> exclude_users:flags.6?Vector<long> = BusinessBotRecipients;\ncontactBirthday#1d998733 contact_id:long birthday:Birthday = ContactBirthday;\ncontacts.contactBirthdays#114ff30d contacts:Vector<ContactBirthday> users:Vector<User> = contacts.ContactBirthdays;\nmissingInvitee#628c9224 flags:# premium_would_allow_invite:flags.0?true premium_required_for_pm:flags.1?true user_id:long = MissingInvitee;\nmessages.invitedUsers#7f5defa6 updates:Updates missing_invitees:Vector<MissingInvitee> = messages.InvitedUsers;\ninputBusinessChatLink#11679fa7 flags:# message:string entities:flags.0?Vector<MessageEntity> title:flags.1?string = InputBusinessChatLink;\nbusinessChatLink#b4ae666f flags:# link:string message:string entities:flags.0?Vector<MessageEntity> title:flags.1?string views:int = BusinessChatLink;\naccount.businessChatLinks#ec43a2d1 links:Vector<BusinessChatLink> chats:Vector<Chat> users:Vector<User> = account.BusinessChatLinks;\naccount.resolvedBusinessChatLinks#9a23af21 flags:# peer:Peer message:string entities:flags.0?Vector<MessageEntity> chats:Vector<Chat> users:Vector<User> = account.ResolvedBusinessChatLinks;\nrequestedPeerUser#d62ff46a flags:# user_id:long first_name:flags.0?string last_name:flags.0?string username:flags.1?string photo:flags.2?Photo = RequestedPeer;\nrequestedPeerChat#7307544f flags:# chat_id:long title:flags.0?string photo:flags.2?Photo = RequestedPeer;\nrequestedPeerChannel#8ba403e4 flags:# channel_id:long title:flags.0?string username:flags.1?string photo:flags.2?Photo = RequestedPeer;\nsponsoredMessageReportOption#430d3150 text:string option:bytes = SponsoredMessageReportOption;\nchannels.sponsoredMessageReportResultChooseOption#846f9e42 title:string options:Vector<SponsoredMessageReportOption> = channels.SponsoredMessageReportResult;\nchannels.sponsoredMessageReportResultAdsHidden#3e3bcf2f = channels.SponsoredMessageReportResult;\nchannels.sponsoredMessageReportResultReported#ad798849 = channels.SponsoredMessageReportResult;\nstats.broadcastRevenueStats#5407e297 top_hours_graph:StatsGraph revenue_graph:StatsGraph balances:BroadcastRevenueBalances usd_rate:double = stats.BroadcastRevenueStats;\nstats.broadcastRevenueWithdrawalUrl#ec659737 url:string = stats.BroadcastRevenueWithdrawalUrl;\nbroadcastRevenueTransactionProceeds#557e2cc4 amount:long from_date:int to_date:int = BroadcastRevenueTransaction;\nbroadcastRevenueTransactionWithdrawal#5a590978 flags:# pending:flags.0?true failed:flags.2?true amount:long date:int provider:string transaction_date:flags.1?int transaction_url:flags.1?string = BroadcastRevenueTransaction;\nbroadcastRevenueTransactionRefund#42d30d2e amount:long date:int provider:string = BroadcastRevenueTransaction;\nstats.broadcastRevenueTransactions#87158466 count:int transactions:Vector<BroadcastRevenueTransaction> = stats.BroadcastRevenueTransactions;\nreactionNotificationsFromContacts#bac3a61a = ReactionNotificationsFrom;\nreactionNotificationsFromAll#4b9e22a0 = ReactionNotificationsFrom;\nreactionsNotifySettings#56e34970 flags:# messages_notify_from:flags.0?ReactionNotificationsFrom stories_notify_from:flags.1?ReactionNotificationsFrom sound:NotificationSound show_previews:Bool = ReactionsNotifySettings;\nbroadcastRevenueBalances#c3ff71e7 flags:# withdrawal_enabled:flags.0?true current_balance:long available_balance:long overall_revenue:long = BroadcastRevenueBalances;\navailableEffect#93c3e27e flags:# premium_required:flags.2?true id:long emoticon:string static_icon_id:flags.0?long effect_sticker_id:long effect_animation_id:flags.1?long = AvailableEffect;\nmessages.availableEffectsNotModified#d1ed9a5b = messages.AvailableEffects;\nmessages.availableEffects#bddb616e hash:int effects:Vector<AvailableEffect> documents:Vector<Document> = messages.AvailableEffects;\nfactCheck#b89bfccf flags:# need_check:flags.0?true country:flags.1?string text:flags.1?TextWithEntities hash:long = FactCheck;\nstarsTransactionPeerUnsupported#95f2bfe4 = StarsTransactionPeer;\nstarsTransactionPeerAppStore#b457b375 = StarsTransactionPeer;\nstarsTransactionPeerPlayMarket#7b560a0b = StarsTransactionPeer;\nstarsTransactionPeerPremiumBot#250dbaf8 = StarsTransactionPeer;\nstarsTransactionPeerFragment#e92fd902 = StarsTransactionPeer;\nstarsTransactionPeer#d80da15d peer:Peer = StarsTransactionPeer;\nstarsTransactionPeerAds#60682812 = StarsTransactionPeer;\nstarsTopupOption#bd915c0 flags:# extended:flags.1?true stars:long store_product:flags.0?string currency:string amount:long = StarsTopupOption;\nstarsTransaction#ee7522d5 flags:# refund:flags.3?true pending:flags.4?true failed:flags.6?true gift:flags.10?true reaction:flags.11?true id:string stars:long date:int peer:StarsTransactionPeer title:flags.0?string description:flags.1?string photo:flags.2?WebDocument transaction_date:flags.5?int transaction_url:flags.5?string bot_payload:flags.7?bytes msg_id:flags.8?int extended_media:flags.9?Vector<MessageMedia> subscription_period:flags.12?int giveaway_post_id:flags.13?int = StarsTransaction;\npayments.starsStatus#bbfa316c flags:# balance:long subscriptions:flags.1?Vector<StarsSubscription> subscriptions_next_offset:flags.2?string subscriptions_missing_balance:flags.4?long history:flags.3?Vector<StarsTransaction> next_offset:flags.0?string chats:Vector<Chat> users:Vector<User> = payments.StarsStatus;\nfoundStory#e87acbc0 peer:Peer story:StoryItem = FoundStory;\nstories.foundStories#e2de7737 flags:# count:int stories:Vector<FoundStory> next_offset:flags.0?string chats:Vector<Chat> users:Vector<User> = stories.FoundStories;\ngeoPointAddress#de4c5d93 flags:# country_iso2:string state:flags.0?string city:flags.1?string street:flags.2?string = GeoPointAddress;\nstarsRevenueStatus#79342946 flags:# withdrawal_enabled:flags.0?true current_balance:long available_balance:long overall_revenue:long next_withdrawal_at:flags.1?int = StarsRevenueStatus;\npayments.starsRevenueStats#c92bb73b revenue_graph:StatsGraph status:StarsRevenueStatus usd_rate:double = payments.StarsRevenueStats;\npayments.starsRevenueWithdrawalUrl#1dab80b7 url:string = payments.StarsRevenueWithdrawalUrl;\npayments.starsRevenueAdsAccountUrl#394e7f21 url:string = payments.StarsRevenueAdsAccountUrl;\ninputStarsTransaction#206ae6d1 flags:# refund:flags.0?true id:string = InputStarsTransaction;\nstarsGiftOption#5e0589f1 flags:# extended:flags.1?true stars:long store_product:flags.0?string currency:string amount:long = StarsGiftOption;\nbots.popularAppBots#1991b13b flags:# next_offset:flags.0?string users:Vector<User> = bots.PopularAppBots;\nbotPreviewMedia#23e91ba3 date:int media:MessageMedia = BotPreviewMedia;\nbots.previewInfo#ca71d64 media:Vector<BotPreviewMedia> lang_codes:Vector<string> = bots.PreviewInfo;\nstarsSubscriptionPricing#5416d58 period:int amount:long = StarsSubscriptionPricing;\nstarsSubscription#538ecf18 flags:# canceled:flags.0?true can_refulfill:flags.1?true missing_balance:flags.2?true id:string peer:Peer until_date:int pricing:StarsSubscriptionPricing chat_invite_hash:flags.3?string = StarsSubscription;\nmessageReactor#4ba3a95a flags:# top:flags.0?true my:flags.1?true anonymous:flags.2?true peer_id:flags.3?Peer count:int = MessageReactor;\nstarsGiveawayOption#94ce852a flags:# extended:flags.0?true default:flags.1?true stars:long yearly_boosts:int store_product:flags.2?string currency:string amount:long winners:Vector<StarsGiveawayWinnersOption> = StarsGiveawayOption;\nstarsGiveawayWinnersOption#54236209 flags:# default:flags.0?true users:int per_user_stars:long = StarsGiveawayWinnersOption;\n---functions---\ninvokeAfterMsg#cb9f372d {X:Type} msg_id:long query:!X = X;\ninitConnection#c1cd5ea9 {X:Type} flags:# api_id:int device_model:string system_version:string app_version:string system_lang_code:string lang_pack:string lang_code:string proxy:flags.0?InputClientProxy params:flags.1?JSONValue query:!X = X;\ninvokeWithLayer#da9b0d0d {X:Type} layer:int query:!X = X;\nauth.sendCode#a677244f phone_number:string api_id:int api_hash:string settings:CodeSettings = auth.SentCode;\nauth.signUp#aac7b717 flags:# no_joined_notifications:flags.0?true phone_number:string phone_code_hash:string first_name:string last_name:string = auth.Authorization;\nauth.signIn#8d52a951 flags:# phone_number:string phone_code_hash:string phone_code:flags.0?string email_verification:flags.1?EmailVerification = auth.Authorization;\nauth.logOut#3e72ba19 = auth.LoggedOut;\nauth.resetAuthorizations#9fab0d1a = Bool;\nauth.exportAuthorization#e5bfffcd dc_id:int = auth.ExportedAuthorization;\nauth.importAuthorization#a57a7dad id:long bytes:bytes = auth.Authorization;\nauth.bindTempAuthKey#cdd42a05 perm_auth_key_id:long nonce:long expires_at:int encrypted_message:bytes = Bool;\nauth.checkPassword#d18b4d16 password:InputCheckPasswordSRP = auth.Authorization;\nauth.requestPasswordRecovery#d897bc66 = auth.PasswordRecovery;\nauth.resendCode#cae47523 flags:# phone_number:string phone_code_hash:string reason:flags.0?string = auth.SentCode;\nauth.cancelCode#1f040578 phone_number:string phone_code_hash:string = Bool;\nauth.dropTempAuthKeys#8e48a188 except_auth_keys:Vector<long> = Bool;\nauth.exportLoginToken#b7e085fe api_id:int api_hash:string except_ids:Vector<long> = auth.LoginToken;\nauth.importLoginToken#95ac5ce4 token:bytes = auth.LoginToken;\nauth.importWebTokenAuthorization#2db873a9 api_id:int api_hash:string web_auth_token:string = auth.Authorization;\naccount.registerDevice#ec86017a flags:# no_muted:flags.0?true token_type:int token:string app_sandbox:Bool secret:bytes other_uids:Vector<long> = Bool;\naccount.unregisterDevice#6a0d3206 token_type:int token:string other_uids:Vector<long> = Bool;\naccount.updateNotifySettings#84be5b93 peer:InputNotifyPeer settings:InputPeerNotifySettings = Bool;\naccount.getNotifySettings#12b3ad31 peer:InputNotifyPeer = PeerNotifySettings;\naccount.updateProfile#78515775 flags:# first_name:flags.0?string last_name:flags.1?string about:flags.2?string = User;\naccount.updateStatus#6628562c offline:Bool = Bool;\naccount.getWallPapers#7967d36 hash:long = account.WallPapers;\naccount.reportPeer#c5ba3d86 peer:InputPeer reason:ReportReason message:string = Bool;\naccount.checkUsername#2714d86c username:string = Bool;\naccount.updateUsername#3e0bdd7c username:string = User;\naccount.getPrivacy#dadbc950 key:InputPrivacyKey = account.PrivacyRules;\naccount.setPrivacy#c9f81ce8 key:InputPrivacyKey rules:Vector<InputPrivacyRule> = account.PrivacyRules;\naccount.getAuthorizations#e320c158 = account.Authorizations;\naccount.resetAuthorization#df77f3bc hash:long = Bool;\naccount.getPassword#548a30f5 = account.Password;\naccount.getPasswordSettings#9cd4eaf9 password:InputCheckPasswordSRP = account.PasswordSettings;\naccount.updatePasswordSettings#a59b102f password:InputCheckPasswordSRP new_settings:account.PasswordInputSettings = Bool;\naccount.sendConfirmPhoneCode#1b3faa88 hash:string settings:CodeSettings = auth.SentCode;\naccount.confirmPhone#5f2178c3 phone_code_hash:string phone_code:string = Bool;\naccount.getTmpPassword#449e0b51 password:InputCheckPasswordSRP period:int = account.TmpPassword;\naccount.getWebAuthorizations#182e6d6f = account.WebAuthorizations;\naccount.resetWebAuthorization#2d01b9ef hash:long = Bool;\naccount.resetWebAuthorizations#682d2594 = Bool;\naccount.sendVerifyPhoneCode#a5a356f9 phone_number:string settings:CodeSettings = auth.SentCode;\naccount.confirmPasswordEmail#8fdf1920 code:string = Bool;\naccount.getContactSignUpNotification#9f07c728 = Bool;\naccount.setContactSignUpNotification#cff43f61 silent:Bool = Bool;\naccount.getNotifyExceptions#53577479 flags:# compare_sound:flags.1?true compare_stories:flags.2?true peer:flags.0?InputNotifyPeer = Updates;\naccount.uploadWallPaper#e39a8f03 flags:# for_chat:flags.0?true file:InputFile mime_type:string settings:WallPaperSettings = WallPaper;\naccount.setContentSettings#b574b16b flags:# sensitive_enabled:flags.0?true = Bool;\naccount.getContentSettings#8b9b4dae = account.ContentSettings;\naccount.getGlobalPrivacySettings#eb2b4cf6 = GlobalPrivacySettings;\naccount.setGlobalPrivacySettings#1edaaac2 settings:GlobalPrivacySettings = GlobalPrivacySettings;\naccount.reportProfilePhoto#fa8cc6f5 peer:InputPeer photo_id:InputPhoto reason:ReportReason message:string = Bool;\naccount.setAuthorizationTTL#bf899aa0 authorization_ttl_days:int = Bool;\naccount.changeAuthorizationSettings#40f48462 flags:# confirmed:flags.3?true hash:long encrypted_requests_disabled:flags.0?Bool call_requests_disabled:flags.1?Bool = Bool;\naccount.updateEmojiStatus#fbd3de6b emoji_status:EmojiStatus = Bool;\naccount.getRecentEmojiStatuses#f578105 hash:long = account.EmojiStatuses;\naccount.reorderUsernames#ef500eab order:Vector<string> = Bool;\naccount.toggleUsername#58d6b376 username:string active:Bool = Bool;\naccount.resolveBusinessChatLink#5492e5ee slug:string = account.ResolvedBusinessChatLinks;\naccount.toggleSponsoredMessages#b9d9a38d enabled:Bool = Bool;\nusers.getUsers#d91a548 id:Vector<InputUser> = Vector<User>;\nusers.getFullUser#b60f5918 id:InputUser = users.UserFull;\ncontacts.getContacts#5dd69e12 hash:long = contacts.Contacts;\ncontacts.importContacts#2c800be5 contacts:Vector<InputContact> = contacts.ImportedContacts;\ncontacts.deleteContacts#96a0e00 id:Vector<InputUser> = Updates;\ncontacts.block#2e2e8734 flags:# my_stories_from:flags.0?true id:InputPeer = Bool;\ncontacts.unblock#b550d328 flags:# my_stories_from:flags.0?true id:InputPeer = Bool;\ncontacts.getBlocked#9a868f80 flags:# my_stories_from:flags.0?true offset:int limit:int = contacts.Blocked;\ncontacts.search#11f812d8 q:string limit:int = contacts.Found;\ncontacts.resolveUsername#f93ccba3 username:string = contacts.ResolvedPeer;\ncontacts.getTopPeers#973478b6 flags:# correspondents:flags.0?true bots_pm:flags.1?true bots_inline:flags.2?true phone_calls:flags.3?true forward_users:flags.4?true forward_chats:flags.5?true groups:flags.10?true channels:flags.15?true bots_app:flags.16?true offset:int limit:int hash:long = contacts.TopPeers;\ncontacts.addContact#e8f463d0 flags:# add_phone_privacy_exception:flags.0?true id:InputUser first_name:string last_name:string phone:string = Updates;\ncontacts.resolvePhone#8af94344 phone:string = contacts.ResolvedPeer;\ncontacts.editCloseFriends#ba6705f0 id:Vector<long> = Bool;\nmessages.getMessages#63c66506 id:Vector<InputMessage> = messages.Messages;\nmessages.getDialogs#a0f4cb4f flags:# exclude_pinned:flags.0?true folder_id:flags.1?int offset_date:int offset_id:int offset_peer:InputPeer limit:int hash:long = messages.Dialogs;\nmessages.getHistory#4423e6c5 peer:InputPeer offset_id:int offset_date:int add_offset:int limit:int max_id:int min_id:int hash:long = messages.Messages;\nmessages.search#29ee847a flags:# peer:InputPeer q:string from_id:flags.0?InputPeer saved_peer_id:flags.2?InputPeer saved_reaction:flags.3?Vector<Reaction> top_msg_id:flags.1?int filter:MessagesFilter min_date:int max_date:int offset_id:int add_offset:int limit:int max_id:int min_id:int hash:long = messages.Messages;\nmessages.readHistory#e306d3a peer:InputPeer max_id:int = messages.AffectedMessages;\nmessages.deleteHistory#b08f922a flags:# just_clear:flags.0?true revoke:flags.1?true peer:InputPeer max_id:int min_date:flags.2?int max_date:flags.3?int = messages.AffectedHistory;\nmessages.deleteMessages#e58e95d2 flags:# revoke:flags.0?true id:Vector<int> = messages.AffectedMessages;\nmessages.receivedMessages#5a954c0 max_id:int = Vector<ReceivedNotifyMessage>;\nmessages.setTyping#58943ee2 flags:# peer:InputPeer top_msg_id:flags.0?int action:SendMessageAction = Bool;\nmessages.sendMessage#983f9745 flags:# no_webpage:flags.1?true silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true peer:InputPeer reply_to:flags.0?InputReplyTo message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut effect:flags.18?long = Updates;\nmessages.sendMedia#7852834e flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true peer:InputPeer reply_to:flags.0?InputReplyTo media:InputMedia message:string random_id:long reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut effect:flags.18?long = Updates;\nmessages.forwardMessages#d5039208 flags:# silent:flags.5?true background:flags.6?true with_my_score:flags.8?true drop_author:flags.11?true drop_media_captions:flags.12?true noforwards:flags.14?true from_peer:InputPeer id:Vector<int> random_id:Vector<long> to_peer:InputPeer top_msg_id:flags.9?int schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut = Updates;\nmessages.reportSpam#cf1592db peer:InputPeer = Bool;\nmessages.getPeerSettings#efd9a6a2 peer:InputPeer = messages.PeerSettings;\nmessages.report#8953ab4e peer:InputPeer id:Vector<int> reason:ReportReason message:string = Bool;\nmessages.getChats#49e9528f id:Vector<long> = messages.Chats;\nmessages.getFullChat#aeb00b34 chat_id:long = messages.ChatFull;\nmessages.editChatTitle#73783ffd chat_id:long title:string = Updates;\nmessages.editChatPhoto#35ddd674 chat_id:long photo:InputChatPhoto = Updates;\nmessages.addChatUser#cbc6d107 chat_id:long user_id:InputUser fwd_limit:int = messages.InvitedUsers;\nmessages.deleteChatUser#a2185cab flags:# revoke_history:flags.0?true chat_id:long user_id:InputUser = Updates;\nmessages.createChat#92ceddd4 flags:# users:Vector<InputUser> title:string ttl_period:flags.0?int = messages.InvitedUsers;\nmessages.getDhConfig#26cf8950 version:int random_length:int = messages.DhConfig;\nmessages.readMessageContents#36a73f77 id:Vector<int> = messages.AffectedMessages;\nmessages.getStickers#d5a5d3a1 emoticon:string hash:long = messages.Stickers;\nmessages.getAllStickers#b8a0a1a8 hash:long = messages.AllStickers;\nmessages.getWebPagePreview#8b68b0cc flags:# message:string entities:flags.3?Vector<MessageEntity> = MessageMedia;\nmessages.exportChatInvite#a455de90 flags:# legacy_revoke_permanent:flags.2?true request_needed:flags.3?true peer:InputPeer expire_date:flags.0?int usage_limit:flags.1?int title:flags.4?string subscription_pricing:flags.5?StarsSubscriptionPricing = ExportedChatInvite;\nmessages.checkChatInvite#3eadb1bb hash:string = ChatInvite;\nmessages.importChatInvite#6c50051c hash:string = Updates;\nmessages.getStickerSet#c8a0ec74 stickerset:InputStickerSet hash:int = messages.StickerSet;\nmessages.installStickerSet#c78fe460 stickerset:InputStickerSet archived:Bool = messages.StickerSetInstallResult;\nmessages.uninstallStickerSet#f96e55de stickerset:InputStickerSet = Bool;\nmessages.startBot#e6df7378 bot:InputUser peer:InputPeer random_id:long start_param:string = Updates;\nmessages.getMessagesViews#5784d3e1 peer:InputPeer id:Vector<int> increment:Bool = messages.MessageViews;\nmessages.migrateChat#a2875319 chat_id:long = Updates;\nmessages.searchGlobal#4bc6589a flags:# broadcasts_only:flags.1?true folder_id:flags.0?int q:string filter:MessagesFilter min_date:int max_date:int offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;\nmessages.getDocumentByHash#b1f2061f sha256:bytes size:long mime_type:string = Document;\nmessages.getSavedGifs#5cf09635 hash:long = messages.SavedGifs;\nmessages.saveGif#327a30cb id:InputDocument unsave:Bool = Bool;\nmessages.getInlineBotResults#514e999d flags:# bot:InputUser peer:InputPeer geo_point:flags.0?InputGeoPoint query:string offset:string = messages.BotResults;\nmessages.sendInlineBotResult#3ebee86a flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true hide_via:flags.11?true peer:InputPeer reply_to:flags.0?InputReplyTo random_id:long query_id:long id:string schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut = Updates;\nmessages.editMessage#dfd14005 flags:# no_webpage:flags.1?true invert_media:flags.16?true peer:InputPeer id:int message:flags.11?string media:flags.14?InputMedia reply_markup:flags.2?ReplyMarkup entities:flags.3?Vector<MessageEntity> schedule_date:flags.15?int quick_reply_shortcut_id:flags.17?int = Updates;\nmessages.getBotCallbackAnswer#9342ca07 flags:# game:flags.1?true peer:InputPeer msg_id:int data:flags.0?bytes password:flags.2?InputCheckPasswordSRP = messages.BotCallbackAnswer;\nmessages.getPeerDialogs#e470bcfd peers:Vector<InputDialogPeer> = messages.PeerDialogs;\nmessages.saveDraft#d372c5ce flags:# no_webpage:flags.1?true invert_media:flags.6?true reply_to:flags.4?InputReplyTo peer:InputPeer message:string entities:flags.3?Vector<MessageEntity> media:flags.5?InputMedia effect:flags.7?long = Bool;\nmessages.getFeaturedStickers#64780b14 hash:long = messages.FeaturedStickers;\nmessages.readFeaturedStickers#5b118126 id:Vector<long> = Bool;\nmessages.getRecentStickers#9da9403b flags:# attached:flags.0?true hash:long = messages.RecentStickers;\nmessages.saveRecentSticker#392718f8 flags:# attached:flags.0?true id:InputDocument unsave:Bool = Bool;\nmessages.clearRecentStickers#8999602d flags:# attached:flags.0?true = Bool;\nmessages.getCommonChats#e40ca104 user_id:InputUser max_id:long limit:int = messages.Chats;\nmessages.getWebPage#8d9692a3 url:string hash:int = messages.WebPage;\nmessages.toggleDialogPin#a731e257 flags:# pinned:flags.0?true peer:InputDialogPeer = Bool;\nmessages.getPinnedDialogs#d6b94df2 folder_id:int = messages.PeerDialogs;\nmessages.uploadMedia#14967978 flags:# business_connection_id:flags.0?string peer:InputPeer media:InputMedia = MessageMedia;\nmessages.getFavedStickers#4f1aaa9 hash:long = messages.FavedStickers;\nmessages.faveSticker#b9ffc55b id:InputDocument unfave:Bool = Bool;\nmessages.getUnreadMentions#f107e790 flags:# peer:InputPeer top_msg_id:flags.0?int offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages;\nmessages.readMentions#36e5bf4d flags:# peer:InputPeer top_msg_id:flags.0?int = messages.AffectedHistory;\nmessages.sendMultiMedia#37b74355 flags:# silent:flags.5?true background:flags.6?true clear_draft:flags.7?true noforwards:flags.14?true update_stickersets_order:flags.15?true invert_media:flags.16?true peer:InputPeer reply_to:flags.0?InputReplyTo multi_media:Vector<InputSingleMedia> schedule_date:flags.10?int send_as:flags.13?InputPeer quick_reply_shortcut:flags.17?InputQuickReplyShortcut effect:flags.18?long = Updates;\nmessages.searchStickerSets#35705b8a flags:# exclude_featured:flags.0?true q:string hash:long = messages.FoundStickerSets;\nmessages.markDialogUnread#c286d98f flags:# unread:flags.0?true peer:InputDialogPeer = Bool;\nmessages.updatePinnedMessage#d2aaf7ec flags:# silent:flags.0?true unpin:flags.1?true pm_oneside:flags.2?true peer:InputPeer id:int = Updates;\nmessages.sendVote#10ea6184 peer:InputPeer msg_id:int options:Vector<bytes> = Updates;\nmessages.getOnlines#6e2be050 peer:InputPeer = ChatOnlines;\nmessages.editChatAbout#def60797 peer:InputPeer about:string = Bool;\nmessages.editChatDefaultBannedRights#a5866b41 peer:InputPeer banned_rights:ChatBannedRights = Updates;\nmessages.getEmojiKeywordsDifference#1508b6af lang_code:string from_version:int = EmojiKeywordsDifference;\nmessages.requestUrlAuth#198fb446 flags:# peer:flags.1?InputPeer msg_id:flags.1?int button_id:flags.1?int url:flags.2?string = UrlAuthResult;\nmessages.acceptUrlAuth#b12c7125 flags:# write_allowed:flags.0?true peer:flags.1?InputPeer msg_id:flags.1?int button_id:flags.1?int url:flags.2?string = UrlAuthResult;\nmessages.hidePeerSettingsBar#4facb138 peer:InputPeer = Bool;\nmessages.getScheduledHistory#f516760b peer:InputPeer hash:long = messages.Messages;\nmessages.sendScheduledMessages#bd38850a peer:InputPeer id:Vector<int> = Updates;\nmessages.deleteScheduledMessages#59ae2b16 peer:InputPeer id:Vector<int> = Updates;\nmessages.getPollVotes#b86e380e flags:# peer:InputPeer id:int option:flags.0?bytes offset:flags.1?string limit:int = messages.VotesList;\nmessages.getDialogFilters#efd48c89 = messages.DialogFilters;\nmessages.getSuggestedDialogFilters#a29cd42c = Vector<DialogFilterSuggested>;\nmessages.updateDialogFilter#1ad4a04a flags:# id:int filter:flags.0?DialogFilter = Bool;\nmessages.updateDialogFiltersOrder#c563c1e4 order:Vector<int> = Bool;\nmessages.getReplies#22ddd30c peer:InputPeer msg_id:int offset_id:int offset_date:int add_offset:int limit:int max_id:int min_id:int hash:long = messages.Messages;\nmessages.getDiscussionMessage#446972fd peer:InputPeer msg_id:int = messages.DiscussionMessage;\nmessages.readDiscussion#f731a9f4 peer:InputPeer msg_id:int read_max_id:int = Bool;\nmessages.unpinAllMessages#ee22b9a8 flags:# peer:InputPeer top_msg_id:flags.0?int = messages.AffectedHistory;\nmessages.deleteChat#5bd0ee50 chat_id:long = Bool;\nmessages.getExportedChatInvites#a2b5a3f6 flags:# revoked:flags.3?true peer:InputPeer admin_id:InputUser offset_date:flags.2?int offset_link:flags.2?string limit:int = messages.ExportedChatInvites;\nmessages.editExportedChatInvite#bdca2f75 flags:# revoked:flags.2?true peer:InputPeer link:string expire_date:flags.0?int usage_limit:flags.1?int request_needed:flags.3?Bool title:flags.4?string = messages.ExportedChatInvite;\nmessages.deleteRevokedExportedChatInvites#56987bd5 peer:InputPeer admin_id:InputUser = Bool;\nmessages.deleteExportedChatInvite#d464a42b peer:InputPeer link:string = Bool;\nmessages.getChatInviteImporters#df04dd4e flags:# requested:flags.0?true subscription_expired:flags.3?true peer:InputPeer link:flags.1?string q:flags.2?string offset_date:int offset_user:InputUser limit:int = messages.ChatInviteImporters;\nmessages.getMessageReadParticipants#31c1c44f peer:InputPeer msg_id:int = Vector<ReadParticipantDate>;\nmessages.hideChatJoinRequest#7fe7e815 flags:# approved:flags.0?true peer:InputPeer user_id:InputUser = Updates;\nmessages.hideAllChatJoinRequests#e085f4ea flags:# approved:flags.0?true peer:InputPeer link:flags.1?string = Updates;\nmessages.toggleNoForwards#b11eafa2 peer:InputPeer enabled:Bool = Updates;\nmessages.saveDefaultSendAs#ccfddf96 peer:InputPeer send_as:InputPeer = Bool;\nmessages.sendReaction#d30d78d4 flags:# big:flags.1?true add_to_recent:flags.2?true peer:InputPeer msg_id:int reaction:flags.0?Vector<Reaction> = Updates;\nmessages.getMessagesReactions#8bba90e6 peer:InputPeer id:Vector<int> = Updates;\nmessages.getMessageReactionsList#461b3f48 flags:# peer:InputPeer id:int reaction:flags.0?Reaction offset:flags.1?string limit:int = messages.MessageReactionsList;\nmessages.setChatAvailableReactions#864b2581 flags:# peer:InputPeer available_reactions:ChatReactions reactions_limit:flags.0?int paid_enabled:flags.1?Bool = Updates;\nmessages.getAvailableReactions#18dea0ac hash:int = messages.AvailableReactions;\nmessages.setDefaultReaction#4f47a016 reaction:Reaction = Bool;\nmessages.translateText#63183030 flags:# peer:flags.0?InputPeer id:flags.0?Vector<int> text:flags.1?Vector<TextWithEntities> to_lang:string = messages.TranslatedText;\nmessages.getUnreadReactions#3223495b flags:# peer:InputPeer top_msg_id:flags.0?int offset_id:int add_offset:int limit:int max_id:int min_id:int = messages.Messages;\nmessages.readReactions#54aa7f8e flags:# peer:InputPeer top_msg_id:flags.0?int = messages.AffectedHistory;\nmessages.getAttachMenuBots#16fcc2cb hash:long = AttachMenuBots;\nmessages.getAttachMenuBot#77216192 bot:InputUser = AttachMenuBotsBot;\nmessages.toggleBotInAttachMenu#69f59d69 flags:# write_allowed:flags.0?true bot:InputUser enabled:Bool = Bool;\nmessages.requestWebView#269dc2c1 flags:# from_bot_menu:flags.4?true silent:flags.5?true compact:flags.7?true peer:InputPeer bot:InputUser url:flags.1?string start_param:flags.3?string theme_params:flags.2?DataJSON platform:string reply_to:flags.0?InputReplyTo send_as:flags.13?InputPeer = WebViewResult;\nmessages.prolongWebView#b0d81a83 flags:# silent:flags.5?true peer:InputPeer bot:InputUser query_id:long reply_to:flags.0?InputReplyTo send_as:flags.13?InputPeer = Bool;\nmessages.requestSimpleWebView#413a3e73 flags:# from_switch_webview:flags.1?true from_side_menu:flags.2?true compact:flags.7?true bot:InputUser url:flags.3?string start_param:flags.4?string theme_params:flags.0?DataJSON platform:string = WebViewResult;\nmessages.sendWebViewResultMessage#a4314f5 bot_query_id:string result:InputBotInlineResult = WebViewMessageSent;\nmessages.sendWebViewData#dc0242c8 bot:InputUser random_id:long button_text:string data:string = Updates;\nmessages.transcribeAudio#269e9a49 peer:InputPeer msg_id:int = messages.TranscribedAudio;\nmessages.getCustomEmojiDocuments#d9ab0f54 document_id:Vector<long> = Vector<Document>;\nmessages.getEmojiStickers#fbfca18f hash:long = messages.AllStickers;\nmessages.getFeaturedEmojiStickers#ecf6736 hash:long = messages.FeaturedStickers;\nmessages.getTopReactions#bb8125ba limit:int hash:long = messages.Reactions;\nmessages.getRecentReactions#39461db2 limit:int hash:long = messages.Reactions;\nmessages.clearRecentReactions#9dfeefb4 = Bool;\nmessages.getExtendedMedia#84f80814 peer:InputPeer id:Vector<int> = Updates;\nmessages.togglePeerTranslations#e47cb579 flags:# disabled:flags.0?true peer:InputPeer = Bool;\nmessages.getBotApp#34fdc5c3 app:InputBotApp hash:long = messages.BotApp;\nmessages.requestAppWebView#53618bce flags:# write_allowed:flags.0?true compact:flags.7?true peer:InputPeer app:InputBotApp start_param:flags.1?string theme_params:flags.2?DataJSON platform:string = WebViewResult;\nmessages.getSavedDialogs#5381d21a flags:# exclude_pinned:flags.0?true offset_date:int offset_id:int offset_peer:InputPeer limit:int hash:long = messages.SavedDialogs;\nmessages.getSavedHistory#3d9a414d peer:InputPeer offset_id:int offset_date:int add_offset:int limit:int max_id:int min_id:int hash:long = messages.Messages;\nmessages.deleteSavedHistory#6e98102b flags:# peer:InputPeer max_id:int min_date:flags.2?int max_date:flags.3?int = messages.AffectedHistory;\nmessages.getPinnedSavedDialogs#d63d94e0 = messages.SavedDialogs;\nmessages.toggleSavedDialogPin#ac81bbde flags:# pinned:flags.0?true peer:InputDialogPeer = Bool;\nmessages.getSavedReactionTags#3637e05b flags:# peer:flags.0?InputPeer hash:long = messages.SavedReactionTags;\nmessages.updateSavedReactionTag#60297dec flags:# reaction:Reaction title:flags.0?string = Bool;\nmessages.getDefaultTagReactions#bdf93428 hash:long = messages.Reactions;\nmessages.getOutboxReadDate#8c4bfe5d peer:InputPeer msg_id:int = OutboxReadDate;\nmessages.getQuickReplies#d483f2a8 hash:long = messages.QuickReplies;\nmessages.getQuickReplyMessages#94a495c3 flags:# shortcut_id:int id:flags.0?Vector<int> hash:long = messages.Messages;\nmessages.sendQuickReplyMessages#6c750de1 peer:InputPeer shortcut_id:int id:Vector<int> random_id:Vector<long> = Updates;\nmessages.getAvailableEffects#dea20a39 hash:int = messages.AvailableEffects;\nmessages.getFactCheck#b9cdc5ee peer:InputPeer msg_id:Vector<int> = Vector<FactCheck>;\nmessages.requestMainWebView#c9e01e7b flags:# compact:flags.7?true peer:InputPeer bot:InputUser start_param:flags.1?string theme_params:flags.0?DataJSON platform:string = WebViewResult;\nmessages.sendPaidReaction#9dd6a67b flags:# peer:InputPeer msg_id:int count:int random_id:long private:flags.0?Bool = Updates;\nmessages.getPaidReactionPrivacy#472455aa = Updates;\nupdates.getState#edd4882a = updates.State;\nupdates.getDifference#19c2f763 flags:# pts:int pts_limit:flags.1?int pts_total_limit:flags.0?int date:int qts:int qts_limit:flags.2?int = updates.Difference;\nupdates.getChannelDifference#3173d78 flags:# force:flags.0?true channel:InputChannel filter:ChannelMessagesFilter pts:int limit:int = updates.ChannelDifference;\nphotos.updateProfilePhoto#9e82039 flags:# fallback:flags.0?true bot:flags.1?InputUser id:InputPhoto = photos.Photo;\nphotos.uploadProfilePhoto#388a3b5 flags:# fallback:flags.3?true bot:flags.5?InputUser file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double video_emoji_markup:flags.4?VideoSize = photos.Photo;\nphotos.deletePhotos#87cf7f2f id:Vector<InputPhoto> = Vector<long>;\nphotos.getUserPhotos#91cd32a8 user_id:InputUser offset:int max_id:long limit:int = photos.Photos;\nphotos.uploadContactProfilePhoto#e14c4a71 flags:# suggest:flags.3?true save:flags.4?true user_id:InputUser file:flags.0?InputFile video:flags.1?InputFile video_start_ts:flags.2?double video_emoji_markup:flags.5?VideoSize = photos.Photo;\nupload.saveFilePart#b304a621 file_id:long file_part:int bytes:bytes = Bool;\nupload.getFile#be5335be flags:# precise:flags.0?true cdn_supported:flags.1?true location:InputFileLocation offset:long limit:int = upload.File;\nupload.saveBigFilePart#de7b673d file_id:long file_part:int file_total_parts:int bytes:bytes = Bool;\nupload.getWebFile#24e6818d location:InputWebFileLocation offset:int limit:int = upload.WebFile;\nhelp.getConfig#c4f9186b = Config;\nhelp.getNearestDc#1fb33026 = NearestDc;\nhelp.getSupport#9cdf08cd = help.Support;\nhelp.acceptTermsOfService#ee72f79a id:DataJSON = Bool;\nhelp.getAppConfig#61e3f854 hash:int = help.AppConfig;\nhelp.getCountriesList#735787a8 lang_code:string hash:int = help.CountriesList;\nhelp.getPremiumPromo#b81b93d4 = help.PremiumPromo;\nhelp.getPeerColors#da80f42f hash:int = help.PeerColors;\nhelp.getTimezonesList#49b30240 hash:int = help.TimezonesList;\nchannels.readHistory#cc104937 channel:InputChannel max_id:int = Bool;\nchannels.deleteMessages#84c1fd4e channel:InputChannel id:Vector<int> = messages.AffectedMessages;\nchannels.getMessages#ad8c9a23 channel:InputChannel id:Vector<InputMessage> = messages.Messages;\nchannels.getParticipants#77ced9d0 channel:InputChannel filter:ChannelParticipantsFilter offset:int limit:int hash:long = channels.ChannelParticipants;\nchannels.getParticipant#a0ab6cc6 channel:InputChannel participant:InputPeer = channels.ChannelParticipant;\nchannels.getChannels#a7f6bbb id:Vector<InputChannel> = messages.Chats;\nchannels.getFullChannel#8736a09 channel:InputChannel = messages.ChatFull;\nchannels.createChannel#91006707 flags:# broadcast:flags.0?true megagroup:flags.1?true for_import:flags.3?true forum:flags.5?true title:string about:string geo_point:flags.2?InputGeoPoint address:flags.2?string ttl_period:flags.4?int = Updates;\nchannels.editAdmin#d33c8902 channel:InputChannel user_id:InputUser admin_rights:ChatAdminRights rank:string = Updates;\nchannels.editTitle#566decd0 channel:InputChannel title:string = Updates;\nchannels.editPhoto#f12e57c9 channel:InputChannel photo:InputChatPhoto = Updates;\nchannels.checkUsername#10e6bd2c channel:InputChannel username:string = Bool;\nchannels.updateUsername#3514b3de channel:InputChannel username:string = Bool;\nchannels.joinChannel#24b524c5 channel:InputChannel = Updates;\nchannels.leaveChannel#f836aa95 channel:InputChannel = Updates;\nchannels.inviteToChannel#c9e33d54 channel:InputChannel users:Vector<InputUser> = messages.InvitedUsers;\nchannels.deleteChannel#c0111fe3 channel:InputChannel = Updates;\nchannels.exportMessageLink#e63fadeb flags:# grouped:flags.0?true thread:flags.1?true channel:InputChannel id:int = ExportedMessageLink;\nchannels.toggleSignatures#418d549c flags:# signatures_enabled:flags.0?true profiles_enabled:flags.1?true channel:InputChannel = Updates;\nchannels.editBanned#96e6cd81 channel:InputChannel participant:InputPeer banned_rights:ChatBannedRights = Updates;\nchannels.readMessageContents#eab5dc38 channel:InputChannel id:Vector<int> = Bool;\nchannels.togglePreHistoryHidden#eabbb94c channel:InputChannel enabled:Bool = Updates;\nchannels.getGroupsForDiscussion#f5dad378 = messages.Chats;\nchannels.setDiscussionGroup#40582bb2 broadcast:InputChannel group:InputChannel = Bool;\nchannels.viewSponsoredMessage#beaedb94 channel:InputChannel random_id:bytes = Bool;\nchannels.getSponsoredMessages#ec210fbf channel:InputChannel = messages.SponsoredMessages;\nchannels.getSendAs#dc770ee peer:InputPeer = channels.SendAsPeers;\nchannels.toggleJoinToSend#e4cb9580 channel:InputChannel enabled:Bool = Updates;\nchannels.toggleJoinRequest#4c2985b6 channel:InputChannel enabled:Bool = Updates;\nchannels.reorderUsernames#b45ced1d channel:InputChannel order:Vector<string> = Bool;\nchannels.toggleUsername#50f24105 channel:InputChannel username:string active:Bool = Bool;\nchannels.deactivateAllUsernames#a245dd3 channel:InputChannel = Bool;\nchannels.toggleForum#a4298b29 channel:InputChannel enabled:Bool = Updates;\nchannels.createForumTopic#f40c0224 flags:# channel:InputChannel title:string icon_color:flags.0?int icon_emoji_id:flags.3?long random_id:long send_as:flags.2?InputPeer = Updates;\nchannels.getForumTopics#de560d1 flags:# channel:InputChannel q:flags.0?string offset_date:int offset_id:int offset_topic:int limit:int = messages.ForumTopics;\nchannels.getForumTopicsByID#b0831eb9 channel:InputChannel topics:Vector<int> = messages.ForumTopics;\nchannels.editForumTopic#f4dfa185 flags:# channel:InputChannel topic_id:int title:flags.0?string icon_emoji_id:flags.1?long closed:flags.2?Bool hidden:flags.3?Bool = Updates;\nchannels.updatePinnedForumTopic#6c2d9026 channel:InputChannel topic_id:int pinned:Bool = Updates;\nchannels.deleteTopicHistory#34435f2d channel:InputChannel top_msg_id:int = messages.AffectedHistory;\nchannels.toggleParticipantsHidden#6a6e7854 channel:InputChannel enabled:Bool = Updates;\nchannels.clickSponsoredMessage#1445d75 flags:# media:flags.0?true fullscreen:flags.1?true channel:InputChannel random_id:bytes = Bool;\nchannels.toggleViewForumAsMessages#9738bb15 channel:InputChannel enabled:Bool = Updates;\nchannels.getChannelRecommendations#25a71742 flags:# channel:flags.0?InputChannel = messages.Chats;\nchannels.reportSponsoredMessage#af8ff6b9 channel:InputChannel random_id:bytes option:bytes = channels.SponsoredMessageReportResult;\nchannels.searchPosts#d19f987b hashtag:string offset_rate:int offset_peer:InputPeer offset_id:int limit:int = messages.Messages;\nbots.setBotInfo#10cf3123 flags:# bot:flags.2?InputUser lang_code:string name:flags.3?string about:flags.0?string description:flags.1?string = Bool;\nbots.canSendMessage#1359f4e6 bot:InputUser = Bool;\nbots.allowSendMessage#f132e3ef bot:InputUser = Updates;\nbots.invokeWebViewCustomMethod#87fc5e7 bot:InputUser custom_method:string params:DataJSON = DataJSON;\nbots.getPopularAppBots#c2510192 offset:string limit:int = bots.PopularAppBots;\nbots.getPreviewMedias#a2a5594d bot:InputUser = Vector<BotPreviewMedia>;\npayments.getPaymentForm#37148dbb flags:# invoice:InputInvoice theme_params:flags.0?DataJSON = payments.PaymentForm;\npayments.getPaymentReceipt#2478d1cc peer:InputPeer msg_id:int = payments.PaymentReceipt;\npayments.validateRequestedInfo#b6c8f12b flags:# save:flags.0?true invoice:InputInvoice info:PaymentRequestedInfo = payments.ValidatedRequestedInfo;\npayments.sendPaymentForm#2d03522f flags:# form_id:long invoice:InputInvoice requested_info_id:flags.0?string shipping_option_id:flags.1?string credentials:InputPaymentCredentials tip_amount:flags.2?long = payments.PaymentResult;\npayments.getSavedInfo#227d824b = payments.SavedInfo;\npayments.getPremiumGiftCodeOptions#2757ba54 flags:# boost_peer:flags.0?InputPeer = Vector<PremiumGiftCodeOption>;\npayments.checkGiftCode#8e51b4c1 slug:string = payments.CheckedGiftCode;\npayments.applyGiftCode#f6e26854 slug:string = Updates;\npayments.getGiveawayInfo#f4239425 peer:InputPeer msg_id:int = payments.GiveawayInfo;\npayments.launchPrepaidGiveaway#5ff58f20 peer:InputPeer giveaway_id:long purpose:InputStorePaymentPurpose = Updates;\npayments.getStarsTopupOptions#c00ec7d3 = Vector<StarsTopupOption>;\npayments.getStarsStatus#104fcfa7 peer:InputPeer = payments.StarsStatus;\npayments.getStarsTransactions#69da4557 flags:# inbound:flags.0?true outbound:flags.1?true ascending:flags.2?true subscription_id:flags.3?string peer:InputPeer offset:string limit:int = payments.StarsStatus;\npayments.sendStarsForm#2bb731d flags:# form_id:long invoice:InputInvoice = payments.PaymentResult;\npayments.refundStarsCharge#25ae8f4a user_id:InputUser charge_id:string = Updates;\npayments.getStarsTransactionsByID#27842d2e peer:InputPeer id:Vector<InputStarsTransaction> = payments.StarsStatus;\npayments.getStarsGiftOptions#d3c96bc8 flags:# user_id:flags.0?InputUser = Vector<StarsGiftOption>;\npayments.getStarsSubscriptions#32512c5 flags:# missing_balance:flags.0?true peer:InputPeer offset:string = payments.StarsStatus;\npayments.changeStarsSubscription#c7770878 flags:# peer:InputPeer subscription_id:string canceled:flags.0?Bool = Bool;\npayments.fulfillStarsSubscription#cc5bebb3 peer:InputPeer subscription_id:string = Bool;\npayments.getStarsGiveawayOptions#bd1efd3e = Vector<StarsGiveawayOption>;\nphone.requestCall#42ff96ed flags:# video:flags.0?true user_id:InputUser random_id:int g_a_hash:bytes protocol:PhoneCallProtocol = phone.PhoneCall;\nphone.acceptCall#3bd2b4a0 peer:InputPhoneCall g_b:bytes protocol:PhoneCallProtocol = phone.PhoneCall;\nphone.confirmCall#2efe1722 peer:InputPhoneCall g_a:bytes key_fingerprint:long protocol:PhoneCallProtocol = phone.PhoneCall;\nphone.receivedCall#17d54f61 peer:InputPhoneCall = Bool;\nphone.discardCall#b2cbc1c0 flags:# video:flags.0?true peer:InputPhoneCall duration:int reason:PhoneCallDiscardReason connection_id:long = Updates;\nphone.setCallRating#59ead627 flags:# user_initiative:flags.0?true peer:InputPhoneCall rating:int comment:string = Updates;\nphone.saveCallDebug#277add7e peer:InputPhoneCall debug:DataJSON = Bool;\nphone.sendSignalingData#ff7a9383 peer:InputPhoneCall data:bytes = Bool;\nphone.createGroupCall#48cdc6d8 flags:# rtmp_stream:flags.2?true peer:InputPeer random_id:int title:flags.0?string schedule_date:flags.1?int = Updates;\nphone.joinGroupCall#b132ff7b flags:# muted:flags.0?true video_stopped:flags.2?true call:InputGroupCall join_as:InputPeer invite_hash:flags.1?string params:DataJSON = Updates;\nphone.leaveGroupCall#500377f9 call:InputGroupCall source:int = Updates;\nphone.discardGroupCall#7a777135 call:InputGroupCall = Updates;\nphone.getGroupCall#41845db call:InputGroupCall limit:int = phone.GroupCall;\nphone.getGroupParticipants#c558d8ab call:InputGroupCall ids:Vector<InputPeer> sources:Vector<int> offset:string limit:int = phone.GroupParticipants;\nphone.editGroupCallParticipant#a5273abf flags:# call:InputGroupCall participant:InputPeer muted:flags.0?Bool volume:flags.1?int raise_hand:flags.2?Bool video_stopped:flags.3?Bool video_paused:flags.4?Bool presentation_paused:flags.5?Bool = Updates;\nphone.exportGroupCallInvite#e6aa647f flags:# can_self_unmute:flags.0?true call:InputGroupCall = phone.ExportedGroupCallInvite;\nphone.toggleGroupCallStartSubscription#219c34e6 call:InputGroupCall subscribed:Bool = Updates;\nphone.joinGroupCallPresentation#cbea6bc4 call:InputGroupCall params:DataJSON = Updates;\nphone.leaveGroupCallPresentation#1c50d144 call:InputGroupCall = Updates;\nlangpack.getLangPack#f2f2330a lang_pack:string lang_code:string = LangPackDifference;\nlangpack.getStrings#efea3803 lang_pack:string lang_code:string keys:Vector<string> = Vector<LangPackString>;\nlangpack.getDifference#cd984aa5 lang_pack:string lang_code:string from_version:int = LangPackDifference;\nlangpack.getLanguages#42c6978f lang_pack:string = Vector<LangPackLanguage>;\nlangpack.getLanguage#6a596502 lang_pack:string lang_code:string = LangPackLanguage;\nfolders.editPeerFolders#6847d0ab folder_peers:Vector<InputFolderPeer> = Updates;\nstats.getBroadcastStats#ab42441a flags:# dark:flags.0?true channel:InputChannel = stats.BroadcastStats;\nstats.loadAsyncGraph#621d5fa0 flags:# token:string x:flags.0?long = StatsGraph;\nstats.getMegagroupStats#dcdf8607 flags:# dark:flags.0?true channel:InputChannel = stats.MegagroupStats;\nstats.getMessagePublicForwards#5f150144 channel:InputChannel msg_id:int offset:string limit:int = stats.PublicForwards;\nstats.getMessageStats#b6e0a3f5 flags:# dark:flags.0?true channel:InputChannel msg_id:int = stats.MessageStats;\nstats.getStoryStats#374fef40 flags:# dark:flags.0?true peer:InputPeer id:int = stats.StoryStats;\nstats.getStoryPublicForwards#a6437ef6 peer:InputPeer id:int offset:string limit:int = stats.PublicForwards;\nstats.getBroadcastRevenueStats#75dfb671 flags:# dark:flags.0?true channel:InputChannel = stats.BroadcastRevenueStats;\nstats.getBroadcastRevenueWithdrawalUrl#2a65ef73 channel:InputChannel password:InputCheckPasswordSRP = stats.BroadcastRevenueWithdrawalUrl;\nchatlists.exportChatlistInvite#8472478e chatlist:InputChatlist title:string peers:Vector<InputPeer> = chatlists.ExportedChatlistInvite;\nchatlists.deleteExportedInvite#719c5c5e chatlist:InputChatlist slug:string = Bool;\nchatlists.editExportedInvite#653db63d flags:# chatlist:InputChatlist slug:string title:flags.1?string peers:flags.2?Vector<InputPeer> = ExportedChatlistInvite;\nchatlists.getExportedInvites#ce03da83 chatlist:InputChatlist = chatlists.ExportedInvites;\nchatlists.checkChatlistInvite#41c10fff slug:string = chatlists.ChatlistInvite;\nchatlists.joinChatlistInvite#a6b1e39a slug:string peers:Vector<InputPeer> = Updates;\nchatlists.getLeaveChatlistSuggestions#fdbcd714 chatlist:InputChatlist = Vector<Peer>;\nchatlists.leaveChatlist#74fae13a chatlist:InputChatlist peers:Vector<InputPeer> = Updates;\nstories.editStory#b583ba46 flags:# peer:InputPeer id:int media:flags.0?InputMedia media_areas:flags.3?Vector<MediaArea> caption:flags.1?string entities:flags.1?Vector<MessageEntity> privacy_rules:flags.2?Vector<InputPrivacyRule> = Updates;\nstories.deleteStories#ae59db5f peer:InputPeer id:Vector<int> = Vector<int>;\nstories.togglePinned#9a75a1ef peer:InputPeer id:Vector<int> pinned:Bool = Vector<int>;\nstories.getAllStories#eeb0d625 flags:# next:flags.1?true hidden:flags.2?true state:flags.0?string = stories.AllStories;\nstories.getPinnedStories#5821a5dc peer:InputPeer offset_id:int limit:int = stories.Stories;\nstories.getStoriesArchive#b4352016 peer:InputPeer offset_id:int limit:int = stories.Stories;\nstories.getStoriesByID#5774ca74 peer:InputPeer id:Vector<int> = stories.Stories;\nstories.readStories#a556dac8 peer:InputPeer max_id:int = Vector<int>;\nstories.incrementStoryViews#b2028afb peer:InputPeer id:Vector<int> = Bool;\nstories.getStoryViewsList#7ed23c57 flags:# just_contacts:flags.0?true reactions_first:flags.2?true forwards_first:flags.3?true peer:InputPeer q:flags.1?string id:int offset:string limit:int = stories.StoryViewsList;\nstories.getStoriesViews#28e16cc8 peer:InputPeer id:Vector<int> = stories.StoryViews;\nstories.exportStoryLink#7b8def20 peer:InputPeer id:int = ExportedStoryLink;\nstories.report#1923fa8c peer:InputPeer id:Vector<int> reason:ReportReason message:string = Bool;\nstories.activateStealthMode#57bbd166 flags:# past:flags.0?true future:flags.1?true = Updates;\nstories.sendReaction#7fd736b2 flags:# add_to_recent:flags.0?true peer:InputPeer story_id:int reaction:Reaction = Updates;\nstories.getPeerStories#2c4ada50 peer:InputPeer = stories.PeerStories;\nstories.getPeerMaxIDs#535983c3 id:Vector<InputPeer> = Vector<int>;\nstories.togglePeerStoriesHidden#bd0415c4 peer:InputPeer hidden:Bool = Bool;\nstories.togglePinnedToTop#b297e9b peer:InputPeer id:Vector<int> = Bool;\npremium.getBoostsList#60f67660 flags:# gifts:flags.0?true peer:InputPeer offset:string limit:int = premium.BoostsList;\npremium.getMyBoosts#be77b4a = premium.MyBoosts;\npremium.applyBoost#6b7da746 flags:# slots:flags.0?Vector<int> peer:InputPeer = premium.MyBoosts;\npremium.getBoostsStatus#42f1f61 peer:InputPeer = premium.BoostsStatus;\nfragment.getCollectibleInfo#be1e85ba collectible:InputCollectible = fragment.CollectibleInfo;"},31187:(e,t,n)=>{var s=n(48287).hp;function a(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{inflate:i}=n(87784),{serializeBytes:o}=n(43355);class r{constructor(e){this.data=e,this.CONSTRUCTOR_ID=812830625,this.classType="constructor"}static async gzipIfSmaller(e,t){if(e&&t.length>512){const e=await new r(t).toBytes();if(e.length<t.length)return e}return t}static gzip(e){return s.from(e)}static ungzip(e){return s.from(i(e))}static read(e){if(e.readInt(!1)!==r.CONSTRUCTOR_ID)throw new Error("not equal");return r.gzip(e.tgReadBytes())}static async fromReader(e){return new r(await r.ungzip(e.tgReadBytes()))}async toBytes(){const e=s.alloc(4);return e.writeUInt32LE(r.CONSTRUCTOR_ID,0),s.concat([e,o(await r.gzip(this.data))])}}a(r,"CONSTRUCTOR_ID",812830625),a(r,"classType","constructor"),e.exports=r},30293:(e,t,n)=>{function s(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const a=n(61028);class i{constructor(e){this.CONSTRUCTOR_ID=1945237724,this.messages=e,this.classType="constructor"}static fromReader(e){const t=[],n=e.readInt();for(let s=0;s<n;s++){const n=e.readLong(),s=e.readInt(),i=e.readInt(),o=e.tellPosition(),r=e.tgReadObject();e.setPosition(o+i);const c=new a(n,s,r);t.push(c)}return new i(t)}}s(i,"CONSTRUCTOR_ID",1945237724),s(i,"classType","constructor"),s(i,"MAXIMUM_SIZE",1044448),s(i,"MAXIMUM_LENGTH",100),e.exports=i},9309:(e,t,n)=>{function s(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const{RpcError:a}=n(43355).constructors,i=n(31187);class o{constructor(e,t,n){this.CONSTRUCTOR_ID=4082920705,this.reqMsgId=e,this.body=t,this.error=n,this.classType="constructor"}static async fromReader(e){const t=e.readLong(),n=e.readInt(!1);return n===a.CONSTRUCTOR_ID?new o(t,void 0,a.fromReader(e)):n===i.CONSTRUCTOR_ID?new o(t,(await i.fromReader(e)).data):(e.seek(-4),new o(t,e.read(),void 0))}}s(o,"CONSTRUCTOR_ID",4082920705),s(o,"classType","constructor"),e.exports=o},61028:e=>{function t(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class n{constructor(e,t,n){this.msgId=e,this.seqNo=t,this.obj=n,this.classType="constructor"}}t(n,"SIZE_OVERHEAD",12),t(n,"classType","constructor"),e.exports=n},48075:(e,t,n)=>{const s=n(61028),a=n(9309),i=n(30293),o=n(31187),r={[a.CONSTRUCTOR_ID]:a,[o.CONSTRUCTOR_ID]:o,[i.CONSTRUCTOR_ID]:i};e.exports={TLMessage:s,RPCResult:a,MessageContainer:i,GZIPPacked:o,coreObjects:r}},73192:(e,t,n)=>{var s=n(48287).hp;const a=e=>e.replace(/(?:^|_)([a-z])/g,((e,t)=>t.toUpperCase())).replace(/_/g,""),i=e=>e.replace(/([-_][a-z])/g,(e=>e.toUpperCase().replace("-","").replace("_",""))),o=new Set([3162085175,2574415285,1072550713,3300522427,1450380236]),r=new Set([85337187,2211011308,2851430293,1013613780,1459478408,3504867164,3045658042,1715713620,3608339646,4110704415,812830625]);let c;function d(e){c||(c=function(){let e;const t=[];for(let n=0;n<256;n++){e=n;for(let t=0;t<8;t++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}()),s.isBuffer(e)||(e=s.from(e));let t=-1;for(let n=0;n<e.length;n++){const s=e[n];t=c[255&(t^s)]^t>>>8}return~t>>>0}const u=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];e.flags.includes("g")||(e=new RegExp(e.source,"g"));const s=e.exec(t);return s&&(n.push(s.slice(1)),u(e,t,n)),n},l=(e,t)=>{const n=e.match(/([\w.]+)(?:#([0-9a-fA-F]+))?(?:\s{?\w+:[\w\d<>#.?!]+}?)*\s=\s([\w\d<>#.?]+);$/);if(!n)throw new Error(`Cannot parse TLObject ${e}`);const o=u(/({)?(\w+):([\w\d<>#.?!]+)}?/,e),r={name:n[1],constructorId:parseInt(n[2],16),argsConfig:{},subclassOfId:d(n[3]),result:n[3],isFunction:t,namespace:void 0};if(!r.constructorId){const e="";let t;t=Object.values(r.argsConfig).length?` ${Object.keys(r.argsConfig).map((e=>e.toString())).join(" ")}`:"";const n=`${r.name}${e}${t} = ${r.result}`.replace(/(:|\?)bytes /g,"$1string ").replace(/</g," ").replace(/>|{|}/g,"").replace(/ \w+:flags\d*\.\d+\?true/g,"");"inputMediaInvoice"===r.name&&r.name,r.constructorId=d(s.from(n,"utf8"))}for(const[e,t,n]of o)void 0===e&&(r.argsConfig[i(t)]=p(t,n));return r.name.includes(".")&&([r.namespace,r.name]=r.name.split(/\.(.+)/)),r.name=a(r.name),r};function p(e,t){e="self"===e?"is_self":e;const n={isVector:!1,isFlag:!1,skipConstructorId:!1,flagGroup:0,flagIndex:-1,flagIndicator:!0,type:void 0,useVectorId:void 0};if("#"!==t){n.flagIndicator=!1,n.type=t.replace(/^!+/,"");const e=n.type.match(/flags(\d*)\.(\d+)\?([\w<>.]+)/);e&&(n.isFlag=!0,n.flagGroup=Number(e[1]||1),n.flagIndex=Number(e[2]),[,,,n.type]=e);const s=n.type.match(/[Vv]ector<([\w\d.]+)>/);s&&(n.isVector=!0,n.useVectorId="V"===n.type.charAt(0),[,n.type]=s),/^[a-z]$/.test(n.type.split(".").pop().charAt(0))&&(n.skipConstructorId=!0)}return n}e.exports={findAll:u,parseTl:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:o;return function*(){(t||[]).reduce(((e,t)=>({...e,[t.name]:t})),{});const s=[],a={},i={},o=e;let c=!1;for(let e of o.split("\n")){const t=e.indexOf("//");if(-1!==t&&(e=e.slice(0,t)),e=e.trim(),!e)continue;const o=e.match(/---(\w+)---/);if(o){const[,e]=o;c="functions"===e}else try{const t=l(e,c);if(n.has(t.constructorId))continue;s.push(t),t.isFunction||(i[t.result]||(i[t.result]=[]),a[t.name]=t,i[t.result].push(t))}catch(e){if(!e.toString().includes("vector#1cb5c415"))throw e}}for(const e of s)if(r.has(e.constructorId))for(const t in e.argsConfig)"string"===e.argsConfig[t].type&&(e.argsConfig[t].type="bytes");for(const e of s)yield e}()},buildArgConfig:p,fromLine:l,CORE_TYPES:o,serializeDate:function(e){if(!e)return s.alloc(4).fill(0);if(e instanceof Date&&(e=Math.floor((Date.now()-e.getTime())/1e3)),"number"==typeof e){const t=s.alloc(4);return t.writeInt32LE(e,0),t}throw Error(`Cannot interpret "${e}" as a date`)},serializeBytes:function(e){if(!(e instanceof s)){if("string"!=typeof e)throw Error(`Bytes or str expected, not ${e.constructor.name}`);e=s.from(e)}const t=[];let n;return e.length<254?(n=(e.length+1)%4,0!==n&&(n=4-n),t.push(s.from([e.length])),t.push(e)):(n=e.length%4,0!==n&&(n=4-n),t.push(s.from([254,e.length%256,(e.length>>8)%256,(e.length>>16)%256])),t.push(e)),t.push(s.alloc(n).fill(0)),s.concat(t)},snakeToCamelCase:a,variableSnakeToCamelCase:i}},43355:(e,t,n)=>{const s=n(96847),{serializeBytes:a,serializeDate:i}=n(73192);e.exports={constructors:s,requests:s,serializeBytes:a,serializeDate:i}},68656:e=>{e.exports="resPQ#05162463 nonce:int128 server_nonce:int128 pq:string server_public_key_fingerprints:Vector<long> = ResPQ;\np_q_inner_data#83c95aec pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 = P_Q_inner_data;\np_q_inner_data_dc#a9f55f95 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 dc:int = P_Q_inner_data;\np_q_inner_data_temp#3c6a84d4 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 expires_in:int = P_Q_inner_data;\np_q_inner_data_temp_dc#56fddf88 pq:string p:string q:string nonce:int128 server_nonce:int128 new_nonce:int256 dc:int expires_in:int = P_Q_inner_data;\nserver_DH_params_fail#79cb045d nonce:int128 server_nonce:int128 new_nonce_hash:int128 = Server_DH_Params;\nserver_DH_params_ok#d0e8075c nonce:int128 server_nonce:int128 encrypted_answer:string = Server_DH_Params;\nserver_DH_inner_data#b5890dba nonce:int128 server_nonce:int128 g:int dh_prime:string g_a:string server_time:int = Server_DH_inner_data;\nclient_DH_inner_data#6643b654 nonce:int128 server_nonce:int128 retry_id:long g_b:string = Client_DH_Inner_Data;\ndh_gen_ok#3bcbf734 nonce:int128 server_nonce:int128 new_nonce_hash1:int128 = Set_client_DH_params_answer;\ndh_gen_retry#46dc1fb9 nonce:int128 server_nonce:int128 new_nonce_hash2:int128 = Set_client_DH_params_answer;\ndh_gen_fail#a69dae02 nonce:int128 server_nonce:int128 new_nonce_hash3:int128 = Set_client_DH_params_answer;\ndestroy_auth_key_ok#f660e1d4 = DestroyAuthKeyRes;\ndestroy_auth_key_none#0a9f2259 = DestroyAuthKeyRes;\ndestroy_auth_key_fail#ea109b13 = DestroyAuthKeyRes;\n---functions---\nreq_pq#60469778 nonce:int128 = ResPQ;\nreq_pq_multi#be7e8ef1 nonce:int128 = ResPQ;\nreq_pq_multi_new#51b410fd nonce:int128 = ResPQ;\nreq_DH_params#d712e4be nonce:int128 server_nonce:int128 p:string q:string public_key_fingerprint:long encrypted_data:string = Server_DH_Params;\nset_client_DH_params#f5045f1f nonce:int128 server_nonce:int128 encrypted_data:string = Set_client_DH_params_answer;\ndestroy_auth_key#d1435160 = DestroyAuthKeyRes;\n---types---\nmsgs_ack#62d6b459 msg_ids:Vector<long> = MsgsAck;\nbad_msg_notification#a7eff811 bad_msg_id:long bad_msg_seqno:int error_code:int = BadMsgNotification;\nbad_server_salt#edab447b bad_msg_id:long bad_msg_seqno:int error_code:int new_server_salt:long = BadMsgNotification;\nmsgs_state_req#da69fb52 msg_ids:Vector<long> = MsgsStateReq;\nmsgs_state_info#04deb57d req_msg_id:long info:string = MsgsStateInfo;\nmsgs_all_info#8cc0d131 msg_ids:Vector<long> info:string = MsgsAllInfo;\nmsg_detailed_info#276d3ec6 msg_id:long answer_msg_id:long bytes:int status:int = MsgDetailedInfo;\nmsg_new_detailed_info#809db6df answer_msg_id:long bytes:int status:int = MsgDetailedInfo;\nmsg_resend_req#7d861a08 msg_ids:Vector<long> = MsgResendReq;\nrpc_error#2144ca19 error_code:int error_message:string = RpcError;\nrpc_answer_unknown#5e2ad36e = RpcDropAnswer;\nrpc_answer_dropped_running#cd78e586 = RpcDropAnswer;\nrpc_answer_dropped#a43ad8b7 msg_id:long seq_no:int bytes:int = RpcDropAnswer;\nfuture_salt#0949d9dc valid_since:int valid_until:int salt:long = FutureSalt;\nfuture_salts#ae500895 req_msg_id:long now:int salts:vector<future_salt> = FutureSalts;\npong#347773c5 msg_id:long ping_id:long = Pong;\ndestroy_session_ok#e22045fc session_id:long = DestroySessionRes;\ndestroy_session_none#62d350c9 session_id:long = DestroySessionRes;\nnew_session_created#9ec20908 first_msg_id:long unique_id:long server_salt:long = NewSession;\nhttp_wait#9299359f max_delay:int wait_after:int max_wait:int = HttpWait;\nipPort#d433ad73 ipv4:int port:int = IpPort;\nipPortSecret#37982646 ipv4:int port:int secret:bytes = IpPort;\naccessPointRule#4679b65f phone_prefix_rules:string dc_id:int ips:vector<IpPort> = AccessPointRule;\nhelp.configSimple#5a592a6c date:int expires:int rules:vector<AccessPointRule> = help.ConfigSimple;\ntlsClientHello blocks:vector<TlsBlock> = TlsClientHello;\ntlsBlockString data:string = TlsBlock;\ntlsBlockRandom length:int = TlsBlock;\ntlsBlockZero length:int = TlsBlock;\ntlsBlockDomain = TlsBlock;\ntlsBlockGrease seed:int = TlsBlock;\ntlsBlockScope entries:Vector<TlsBlock> = TlsBlock;\n---functions---\nping#7abe77ec ping_id:long = Pong;\nping_delay_disconnect#f3427b8c ping_id:long disconnect_delay:int = Pong;"},9705:(e,t,n)=>{"use strict";function s(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}n.d(t,{A:()=>a});class a{constructor(){s(this,"promise",void 0),s(this,"reject",void 0),s(this,"resolve",void 0),this.promise=new Promise(((e,t)=>{this.reject=t,this.resolve=e}))}static resolved(e){const t=new a;return t.resolve(e),t}}},84846:(e,t,n)=>{"use strict";n.d(t,{j:()=>i});var s=n(9705);function a(e,t,n){var s;return(t="symbol"==typeof(s=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var s=n.call(e,"string");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(t))?s:s+"")in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class i{constructor(e){this.maxWorkers=e,a(this,"deferreds",[]),a(this,"activeWorkers",0)}requestWorker(){if(this.activeWorkers===this.maxWorkers){const e=new s.A;return this.deferreds.push(e),e.promise}return this.activeWorkers++,Promise.resolve()}releaseWorker(){this.deferreds.length&&this.activeWorkers===this.maxWorkers?this.deferreds.shift().resolve():this.activeWorkers--}}}},s={};function a(e){var t=s[e];if(void 0!==t)return t.exports;var i=s[e]={id:e,loaded:!1,exports:{}};return n[e].call(i.exports,i,i.exports,a),i.loaded=!0,i.exports}a.m=n,a.x=()=>{var e=a.O(void 0,[7784,8287,3046],(()=>a(3559)));return a.O(e)},e=[],a.O=(t,n,s,i)=>{if(!n){var o=1/0;for(u=0;u<e.length;u++){for(var[n,s,i]=e[u],r=!0,c=0;c<n.length;c++)(!1&i||o>=i)&&Object.keys(a.O).every((e=>a.O[e](n[c])))?n.splice(c--,1):(r=!1,i<o&&(o=i));if(r){e.splice(u--,1);var d=s();void 0!==d&&(t=d)}}return t}i=i||0;for(var u=e.length;u>0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[n,s,i]},a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.f={},a.e=e=>Promise.all(Object.keys(a.f).reduce(((t,n)=>(a.f[n](e,t),t)),[])),a.u=e=>e+"."+{3046:"1fba2d7e327c53d1e37e",7784:"4e167a928464165e6412",8287:"9cf863b4d9b47c10d271"}[e]+".js",a.miniCssF=e=>{},a.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{var e;a.g.importScripts&&(e=a.g.location+"");var t=a.g.document;if(!e&&t&&(t.currentScript&&(e=t.currentScript.src),!e)){var n=t.getElementsByTagName("script");if(n.length)for(var s=n.length-1;s>-1&&(!e||!/^http(s?):/.test(e));)e=n[s--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=e})(),(()=>{var e={3559:1};a.f.i=(t,n)=>{e[t]||importScripts(a.p+a.u(t))};var t=self.webpackChunktelegram_t=self.webpackChunktelegram_t||[],n=t.push.bind(t);t.push=t=>{var[s,i,o]=t;for(var r in i)a.o(i,r)&&(a.m[r]=i[r]);for(o&&o(a);s.length;)e[s.pop()]=1;n(t)}})(),t=a.x,a.x=()=>Promise.all([7784,8287,3046].map(a.e,a)).then(t),a.x()})();
//# sourceMappingURL=3559.3d5feb13846a3912f9fd.js.map