diff --git a/js/app.js b/js/app.js index 9e6967d2..3d64b67c 100644 --- a/js/app.js +++ b/js/app.js @@ -7,19 +7,19 @@ Config.Schema.API={constructors:[{id:"-1132882121",predicate:"boolFalse",params: params:[],type:"SendMessageAction"},{id:"-44119819",predicate:"sendMessageCancelAction",params:[],type:"SendMessageAction"},{id:"-1584933265",predicate:"sendMessageRecordVideoAction",params:[],type:"SendMessageAction"},{id:"-378127636",predicate:"sendMessageUploadVideoAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"-718310409",predicate:"sendMessageRecordAudioAction",params:[],type:"SendMessageAction"},{id:"-212740181",predicate:"sendMessageUploadAudioAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"-774682074",predicate:"sendMessageUploadPhotoAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"-1441998364",predicate:"sendMessageUploadDocumentAction",params:[{name:"progress",type:"int"}],type:"SendMessageAction"},{id:"393186209",predicate:"sendMessageGeoLocationAction",params:[],type:"SendMessageAction"},{id:"1653390447",predicate:"sendMessageChooseContactAction",params:[],type:"SendMessageAction"},{id:"446822276",predicate:"contacts.found",params:[{name:"results",type:"Vector"},{name:"chats",type:"Vector"},{name:"users",type:"Vector"}],type:"contacts.Found"},{id:"942527460",predicate:"updateServiceNotification",params:[{name:"type",type:"string"},{name:"message",type:"string"},{name:"media",type:"MessageMedia"},{name:"popup",type:"Bool"}],type:"Update"},{id:"-496024847",predicate:"userStatusRecently",params:[],type:"UserStatus"},{id:"129960444",predicate:"userStatusLastWeek",params:[],type:"UserStatus"},{id:"2011940674",predicate:"userStatusLastMonth",params:[],type:"UserStatus"},{id:"-298113238",predicate:"updatePrivacy",params:[{name:"key",type:"PrivacyKey"},{name:"rules",type:"Vector"}],type:"Update"},{id:"1335282456",predicate:"inputPrivacyKeyStatusTimestamp",params:[],type:"InputPrivacyKey"},{id:"-1137792208",predicate:"privacyKeyStatusTimestamp",params:[],type:"PrivacyKey"},{id:"218751099",predicate:"inputPrivacyValueAllowContacts",params:[],type:"InputPrivacyRule"},{id:"407582158",predicate:"inputPrivacyValueAllowAll",params:[],type:"InputPrivacyRule"},{id:"320652927",predicate:"inputPrivacyValueAllowUsers",params:[{name:"users",type:"Vector"}],type:"InputPrivacyRule"},{id:"195371015",predicate:"inputPrivacyValueDisallowContacts",params:[],type:"InputPrivacyRule"},{id:"-697604407",predicate:"inputPrivacyValueDisallowAll",params:[],type:"InputPrivacyRule"},{id:"-1877932953",predicate:"inputPrivacyValueDisallowUsers",params:[{name:"users",type:"Vector"}],type:"InputPrivacyRule"},{id:"-123988",predicate:"privacyValueAllowContacts",params:[],type:"PrivacyRule"},{id:"1698855810",predicate:"privacyValueAllowAll",params:[],type:"PrivacyRule"},{id:"1297858060",predicate:"privacyValueAllowUsers",params:[{name:"users",type:"Vector"}],type:"PrivacyRule"},{id:"-125240806",predicate:"privacyValueDisallowContacts",params:[],type:"PrivacyRule"},{id:"-1955338397",predicate:"privacyValueDisallowAll",params:[],type:"PrivacyRule"},{id:"209668535",predicate:"privacyValueDisallowUsers",params:[{name:"users",type:"Vector"}],type:"PrivacyRule"},{id:"1430961007",predicate:"account.privacyRules",params:[{name:"rules",type:"Vector"},{name:"users",type:"Vector"}],type:"account.PrivacyRules"},{id:"-1194283041",predicate:"accountDaysTTL",params:[{name:"days",type:"int"}],type:"AccountDaysTTL"},{id:"314130811",predicate:"updateUserPhone",params:[{name:"user_id",type:"int"},{name:"phone",type:"string"}],type:"Update"},{id:"1815593308",predicate:"documentAttributeImageSize",params:[{name:"w",type:"int"},{name:"h",type:"int"}],type:"DocumentAttribute"},{id:"297109817",predicate:"documentAttributeAnimated",params:[],type:"DocumentAttribute"},{id:"1662637586",predicate:"documentAttributeSticker",params:[{name:"flags",type:"#"},{name:"mask",type:"flags.1?true"},{name:"alt",type:"string"},{name:"stickerset",type:"InputStickerSet"},{name:"mask_coords",type:"flags.0?MaskCoords"}],type:"DocumentAttribute"},{id:"1494273227",predicate:"documentAttributeVideo",params:[{name:"duration",type:"int"},{name:"w",type:"int"},{name:"h",type:"int"}],type:"DocumentAttribute"},{id:"-1739392570",predicate:"documentAttributeAudio",params:[{name:"flags",type:"#"},{name:"voice",type:"flags.10?true"},{name:"duration",type:"int"},{name:"title",type:"flags.0?string"},{name:"performer",type:"flags.1?string"},{name:"waveform",type:"flags.2?bytes"}],type:"DocumentAttribute"},{id:"358154344",predicate:"documentAttributeFilename",params:[{name:"file_name",type:"string"}],type:"DocumentAttribute"},{id:"-244016606",predicate:"messages.stickersNotModified",params:[],type:"messages.Stickers"},{id:"-1970352846",predicate:"messages.stickers",params:[{name:"hash",type:"string"},{name:"stickers",type:"Vector"}],type:"messages.Stickers"},{id:"313694676",predicate:"stickerPack",params:[{name:"emoticon",type:"string"},{name:"documents",type:"Vector"}],type:"StickerPack"},{id:"-395967805",predicate:"messages.allStickersNotModified",params:[],type:"messages.AllStickers"},{id:"-302170017",predicate:"messages.allStickers",params:[{name:"hash",type:"int"},{name:"sets",type:"Vector"}],type:"messages.AllStickers"},{id:"-1369215196",predicate:"disabledFeature",params:[{name:"feature",type:"string"},{name:"description",type:"string"}],type:"DisabledFeature"},{id:"-1721631396",predicate:"updateReadHistoryInbox",params:[{name:"peer",type:"Peer"},{name:"max_id",type:"int"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"791617983",predicate:"updateReadHistoryOutbox",params:[{name:"peer",type:"Peer"},{name:"max_id",type:"int"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-2066640507",predicate:"messages.affectedMessages",params:[{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"messages.AffectedMessages"},{id:"1599050311",predicate:"contactLinkUnknown",params:[],type:"ContactLink"},{id:"-17968211",predicate:"contactLinkNone",params:[],type:"ContactLink"},{id:"646922073",predicate:"contactLinkHasPhone",params:[],type:"ContactLink"},{id:"-721239344",predicate:"contactLinkContact",params:[],type:"ContactLink"},{id:"2139689491",predicate:"updateWebPage",params:[{name:"webpage",type:"WebPage"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-350980120",predicate:"webPageEmpty",params:[{name:"id",type:"long"}],type:"WebPage"},{id:"-981018084",predicate:"webPagePending",params:[{name:"id",type:"long"},{name:"date",type:"int"}],type:"WebPage"},{id:"-897446185",predicate:"webPage",params:[{name:"flags",type:"#"},{name:"id",type:"long"},{name:"url",type:"string"},{name:"display_url",type:"string"},{name:"type",type:"flags.0?string"},{name:"site_name",type:"flags.1?string"},{name:"title",type:"flags.2?string"},{name:"description",type:"flags.3?string"},{name:"photo",type:"flags.4?Photo"},{name:"embed_url",type:"flags.5?string"},{name:"embed_type",type:"flags.5?string"},{name:"embed_width",type:"flags.6?int"},{name:"embed_height",type:"flags.6?int"},{name:"duration",type:"flags.7?int"},{name:"author",type:"flags.8?string"},{name:"document",type:"flags.9?Document"}],type:"WebPage"},{id:"-1557277184",predicate:"messageMediaWebPage",params:[{name:"webpage",type:"WebPage"}],type:"MessageMedia"},{id:"2079516406",predicate:"authorization",params:[{name:"hash",type:"long"},{name:"flags",type:"int"},{name:"device_model",type:"string"},{name:"platform",type:"string"},{name:"system_version",type:"string"},{name:"api_id",type:"int"},{name:"app_name",type:"string"},{name:"app_version",type:"string"},{name:"date_created",type:"int"},{name:"date_active",type:"int"},{name:"ip",type:"string"},{name:"country",type:"string"},{name:"region",type:"string"}],type:"Authorization"},{id:"307276766",predicate:"account.authorizations",params:[{name:"authorizations",type:"Vector"}],type:"account.Authorizations"},{id:"-1764049896",predicate:"account.noPassword",params:[{name:"new_salt",type:"bytes"},{name:"email_unconfirmed_pattern",type:"string"}],type:"account.Password"},{id:"2081952796",predicate:"account.password",params:[{name:"current_salt",type:"bytes"},{name:"new_salt",type:"bytes"},{name:"hint",type:"string"},{name:"has_recovery",type:"Bool"},{name:"email_unconfirmed_pattern",type:"string"}],type:"account.Password"},{id:"-1212732749",predicate:"account.passwordSettings",params:[{name:"email",type:"string"}],type:"account.PasswordSettings"},{id:"-2037289493",predicate:"account.passwordInputSettings",params:[{name:"flags",type:"#"},{name:"new_salt",type:"flags.0?bytes"},{name:"new_password_hash",type:"flags.0?bytes"},{name:"hint",type:"flags.0?string"},{name:"email",type:"flags.1?string"}],type:"account.PasswordInputSettings"},{id:"326715557",predicate:"auth.passwordRecovery",params:[{name:"email_pattern",type:"string"}],type:"auth.PasswordRecovery"},{id:"673687578",predicate:"inputMediaVenue",params:[{name:"geo_point",type:"InputGeoPoint"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"provider",type:"string"},{name:"venue_id",type:"string"}],type:"InputMedia"},{id:"2031269663",predicate:"messageMediaVenue",params:[{name:"geo",type:"GeoPoint"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"provider",type:"string"},{name:"venue_id",type:"string"}],type:"MessageMedia"},{id:"-1551583367",predicate:"receivedNotifyMessage",params:[{name:"id",type:"int"},{name:"flags",type:"int"}],type:"ReceivedNotifyMessage"},{id:"1776236393",predicate:"chatInviteEmpty",params:[],type:"ExportedChatInvite"},{id:"-64092740",predicate:"chatInviteExported",params:[{name:"link",type:"string"}],type:"ExportedChatInvite"},{id:"1516793212",predicate:"chatInviteAlready",params:[{name:"chat",type:"Chat"}],type:"ChatInvite"},{id:"-613092008",predicate:"chatInvite",params:[{name:"flags",type:"#"},{name:"channel",type:"flags.0?true"},{name:"broadcast",type:"flags.1?true"},{name:"public",type:"flags.2?true"},{name:"megagroup",type:"flags.3?true"},{name:"title",type:"string"},{name:"photo",type:"ChatPhoto"},{name:"participants_count",type:"int"},{name:"participants",type:"flags.4?Vector"}],type:"ChatInvite"},{id:"-123931160",predicate:"messageActionChatJoinedByLink",params:[{name:"inviter_id",type:"int"}],type:"MessageAction"},{id:"1757493555",predicate:"updateReadMessagesContents",params:[{name:"messages",type:"Vector"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-4838507",predicate:"inputStickerSetEmpty",params:[],type:"InputStickerSet"},{id:"-1645763991",predicate:"inputStickerSetID",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputStickerSet"},{id:"-2044933984",predicate:"inputStickerSetShortName",params:[{name:"short_name",type:"string"}],type:"InputStickerSet"},{id:"-852477119",predicate:"stickerSet",params:[{name:"flags",type:"#"},{name:"installed",type:"flags.0?true"},{name:"archived",type:"flags.1?true"},{name:"official",type:"flags.2?true"},{name:"masks",type:"flags.3?true"},{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"title",type:"string"},{name:"short_name",type:"string"},{name:"count",type:"int"},{name:"hash",type:"int"}],type:"StickerSet"},{id:"-1240849242",predicate:"messages.stickerSet",params:[{name:"set",type:"StickerSet"},{name:"packs",type:"Vector"},{name:"documents",type:"Vector"}],type:"messages.StickerSet"},{id:"-787638374",predicate:"user",params:[{name:"flags",type:"#"},{name:"self",type:"flags.10?true"},{name:"contact",type:"flags.11?true"},{name:"mutual_contact",type:"flags.12?true"},{name:"deleted",type:"flags.13?true"},{name:"bot",type:"flags.14?true"},{name:"bot_chat_history",type:"flags.15?true"},{name:"bot_nochats",type:"flags.16?true"},{name:"verified",type:"flags.17?true"},{name:"restricted",type:"flags.18?true"},{name:"min",type:"flags.20?true"},{name:"bot_inline_geo",type:"flags.21?true"},{name:"id",type:"int"},{name:"access_hash",type:"flags.0?long"},{name:"first_name",type:"flags.1?string"},{name:"last_name",type:"flags.2?string"},{name:"username",type:"flags.3?string"},{name:"phone",type:"flags.4?string"},{name:"photo",type:"flags.5?UserProfilePhoto"},{name:"status",type:"flags.6?UserStatus"},{name:"bot_info_version",type:"flags.14?int"},{name:"restriction_reason",type:"flags.18?string"},{name:"bot_inline_placeholder",type:"flags.19?string"}],type:"User"},{id:"-1032140601",predicate:"botCommand",params:[{name:"command",type:"string"},{name:"description",type:"string"}],type:"BotCommand"},{id:"-1729618630",predicate:"botInfo",params:[{name:"user_id",type:"int"},{name:"description",type:"string"},{name:"commands",type:"Vector"}],type:"BotInfo"},{id:"-1560655744",predicate:"keyboardButton",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"2002815875",predicate:"keyboardButtonRow",params:[{name:"buttons",type:"Vector"}],type:"KeyboardButtonRow"},{id:"-1606526075",predicate:"replyKeyboardHide",params:[{name:"flags",type:"#"},{name:"selective",type:"flags.2?true"}],type:"ReplyMarkup"},{id:"-200242528",predicate:"replyKeyboardForceReply",params:[{name:"flags",type:"#"},{name:"single_use",type:"flags.1?true"},{name:"selective",type:"flags.2?true"}],type:"ReplyMarkup"},{id:"889353612",predicate:"replyKeyboardMarkup",params:[{name:"flags",type:"#"},{name:"resize",type:"flags.0?true"},{name:"single_use",type:"flags.1?true"},{name:"selective",type:"flags.2?true"},{name:"rows",type:"Vector"}],type:"ReplyMarkup"},{id:"2072935910",predicate:"inputPeerUser",params:[{name:"user_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputPeer"},{id:"-668391402",predicate:"inputUser",params:[{name:"user_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputUser"},{id:"-1350696044",predicate:"help.appChangelogEmpty",params:[],type:"help.AppChangelog"},{id:"1181279933",predicate:"help.appChangelog",params:[{name:"text",type:"string"}],type:"help.AppChangelog"},{id:"-1148011883",predicate:"messageEntityUnknown",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"-100378723",predicate:"messageEntityMention",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1868782349",predicate:"messageEntityHashtag",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1827637959",predicate:"messageEntityBotCommand",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1859134776",predicate:"messageEntityUrl",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1692693954",predicate:"messageEntityEmail",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"-1117713463",predicate:"messageEntityBold",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"-2106619040",predicate:"messageEntityItalic",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"681706865",predicate:"messageEntityCode",params:[{name:"offset",type:"int"},{name:"length",type:"int"}],type:"MessageEntity"},{id:"1938967520",predicate:"messageEntityPre",params:[{name:"offset",type:"int"},{name:"length",type:"int"},{name:"language",type:"string"}],type:"MessageEntity"},{id:"1990644519",predicate:"messageEntityTextUrl",params:[{name:"offset",type:"int"},{name:"length",type:"int"},{name:"url",type:"string"}],type:"MessageEntity"},{id:"301019932",predicate:"updateShortSentMessage",params:[{name:"flags",type:"#"},{name:"out",type:"flags.1?true"},{name:"id",type:"int"},{name:"pts",type:"int"},{name:"pts_count",type:"int"},{name:"date",type:"int"},{name:"media",type:"flags.9?MessageMedia"},{name:"entities",type:"flags.7?Vector"}],type:"Updates"},{id:"-292807034",predicate:"inputChannelEmpty",params:[],type:"InputChannel"},{id:"-1343524562",predicate:"inputChannel",params:[{name:"channel_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputChannel"},{id:"-1109531342",predicate:"peerChannel",params:[{name:"channel_id",type:"int"}],type:"Peer"},{id:"548253432",predicate:"inputPeerChannel",params:[{name:"channel_id",type:"int"},{name:"access_hash",type:"long"}],type:"InputPeer"},{id:"-1588737454",predicate:"channel",params:[{name:"flags",type:"#"},{name:"creator",type:"flags.0?true"},{name:"kicked",type:"flags.1?true"},{name:"left",type:"flags.2?true"},{name:"editor",type:"flags.3?true"},{name:"moderator",type:"flags.4?true"},{name:"broadcast",type:"flags.5?true"},{name:"verified",type:"flags.7?true"},{name:"megagroup",type:"flags.8?true"},{name:"restricted",type:"flags.9?true"},{name:"democracy",type:"flags.10?true"},{name:"signatures",type:"flags.11?true"},{name:"min",type:"flags.12?true"},{name:"id",type:"int"},{name:"access_hash",type:"flags.13?long"},{name:"title",type:"string"},{name:"username",type:"flags.6?string"},{name:"photo",type:"ChatPhoto"},{name:"date",type:"int"},{name:"version",type:"int"},{name:"restriction_reason",type:"flags.9?string"}],type:"Chat"},{id:"-2059962289",predicate:"channelForbidden",params:[{name:"flags",type:"#"},{name:"broadcast",type:"flags.5?true"},{name:"megagroup",type:"flags.8?true"},{name:"id",type:"int"},{name:"access_hash",type:"long"},{name:"title",type:"string"}],type:"Chat"},{id:"2131196633",predicate:"contacts.resolvedPeer",params:[{name:"peer",type:"Peer"},{name:"chats",type:"Vector"},{name:"users",type:"Vector"}],type:"contacts.ResolvedPeer"},{id:"-1009430225",predicate:"channelFull",params:[{name:"flags",type:"#"},{name:"can_view_participants",type:"flags.3?true"},{name:"can_set_username",type:"flags.6?true"},{name:"id",type:"int"},{name:"about",type:"string"},{name:"participants_count",type:"flags.0?int"},{name:"admins_count",type:"flags.1?int"},{name:"kicked_count",type:"flags.2?int"},{name:"read_inbox_max_id",type:"int"},{name:"read_outbox_max_id",type:"int"},{name:"unread_count",type:"int"},{name:"chat_photo",type:"Photo"},{name:"notify_settings",type:"PeerNotifySettings"},{name:"exported_invite",type:"ExportedChatInvite"},{name:"bot_info",type:"Vector"},{name:"migrated_from_chat_id",type:"flags.4?int"},{name:"migrated_from_max_id",type:"flags.4?int"},{name:"pinned_msg_id",type:"flags.5?int"}],type:"ChatFull"},{id:"182649427",predicate:"messageRange",params:[{name:"min_id",type:"int"},{name:"max_id",type:"int"}],type:"MessageRange"},{id:"-1725551049",predicate:"messages.channelMessages",params:[{name:"flags",type:"#"},{name:"pts",type:"int"},{name:"count",type:"int"},{name:"messages",type:"Vector"},{name:"chats",type:"Vector"},{name:"users",type:"Vector"}],type:"messages.Messages"},{id:"-1781355374",predicate:"messageActionChannelCreate",params:[{name:"title",type:"string"}],type:"MessageAction"},{id:"-352032773",predicate:"updateChannelTooLong",params:[{name:"flags",type:"#"},{name:"channel_id",type:"int"},{name:"pts",type:"flags.0?int"}],type:"Update"},{id:"-1227598250",predicate:"updateChannel",params:[{name:"channel_id",type:"int"}],type:"Update"},{id:"1656358105",predicate:"updateNewChannelMessage",params:[{name:"message",type:"Message"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"1108669311",predicate:"updateReadChannelInbox",params:[{name:"channel_id",type:"int"},{name:"max_id",type:"int"}],type:"Update"},{id:"-1015733815",predicate:"updateDeleteChannelMessages",params:[{name:"channel_id",type:"int"},{name:"messages",type:"Vector"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-1734268085",predicate:"updateChannelMessageViews",params:[{name:"channel_id",type:"int"},{name:"id",type:"int"},{name:"views",type:"int"}],type:"Update"},{id:"1041346555",predicate:"updates.channelDifferenceEmpty",params:[{name:"flags",type:"#"},{name:"final",type:"flags.0?true"},{name:"pts",type:"int"},{name:"timeout",type:"flags.1?int"}],type:"updates.ChannelDifference"},{id:"1091431943",predicate:"updates.channelDifferenceTooLong",params:[{name:"flags",type:"#"},{name:"final",type:"flags.0?true"},{name:"pts",type:"int"},{name:"timeout",type:"flags.1?int"},{name:"top_message",type:"int"},{name:"read_inbox_max_id",type:"int"},{name:"read_outbox_max_id",type:"int"},{name:"unread_count",type:"int"},{name:"messages",type:"Vector"},{name:"chats",type:"Vector"},{name:"users",type:"Vector"}],type:"updates.ChannelDifference"},{id:"543450958",predicate:"updates.channelDifference",params:[{name:"flags",type:"#"},{name:"final",type:"flags.0?true"},{name:"pts",type:"int"},{name:"timeout",type:"flags.1?int"},{name:"new_messages",type:"Vector"},{name:"other_updates",type:"Vector"},{name:"chats",type:"Vector"},{name:"users",type:"Vector"}],type:"updates.ChannelDifference"},{id:"-1798033689",predicate:"channelMessagesFilterEmpty",params:[],type:"ChannelMessagesFilter"},{id:"-847783593",predicate:"channelMessagesFilter",params:[{name:"flags",type:"#"},{name:"exclude_new_messages",type:"flags.1?true"},{name:"ranges",type:"Vector"}],type:"ChannelMessagesFilter"},{id:"367766557",predicate:"channelParticipant",params:[{name:"user_id",type:"int"},{name:"date",type:"int"}],type:"ChannelParticipant"},{id:"-1557620115",predicate:"channelParticipantSelf",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChannelParticipant"},{id:"-1861910545",predicate:"channelParticipantModerator",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChannelParticipant"},{id:"-1743180447",predicate:"channelParticipantEditor",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChannelParticipant"},{id:"-1933187430",predicate:"channelParticipantKicked",params:[{name:"user_id",type:"int"},{name:"kicked_by",type:"int"},{name:"date",type:"int"}],type:"ChannelParticipant"},{id:"-471670279",predicate:"channelParticipantCreator",params:[{name:"user_id",type:"int"}],type:"ChannelParticipant"},{id:"-566281095",predicate:"channelParticipantsRecent",params:[],type:"ChannelParticipantsFilter"},{id:"-1268741783",predicate:"channelParticipantsAdmins",params:[],type:"ChannelParticipantsFilter"},{id:"1010285434",predicate:"channelParticipantsKicked",params:[],type:"ChannelParticipantsFilter"},{id:"-1299865402",predicate:"channelRoleEmpty",params:[],type:"ChannelParticipantRole"},{id:"-1776756363",predicate:"channelRoleModerator",params:[],type:"ChannelParticipantRole"},{id:"-2113143156",predicate:"channelRoleEditor",params:[],type:"ChannelParticipantRole"},{id:"-177282392",predicate:"channels.channelParticipants",params:[{name:"count",type:"int"},{name:"participants",type:"Vector"},{name:"users",type:"Vector"}],type:"channels.ChannelParticipants"},{id:"-791039645",predicate:"channels.channelParticipant",params:[{name:"participant",type:"ChannelParticipant"},{name:"users",type:"Vector"}],type:"channels.ChannelParticipant"},{id:"-636267638",predicate:"chatParticipantCreator",params:[{name:"user_id",type:"int"}],type:"ChatParticipant"},{id:"-489233354",predicate:"chatParticipantAdmin",params:[{name:"user_id",type:"int"},{name:"inviter_id",type:"int"},{name:"date",type:"int"}],type:"ChatParticipant"},{id:"1855224129",predicate:"updateChatAdmins",params:[{name:"chat_id",type:"int"},{name:"enabled",type:"Bool"},{name:"version",type:"int"}],type:"Update"},{id:"-1232070311",predicate:"updateChatParticipantAdmin",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"int"},{name:"is_admin",type:"Bool"},{name:"version",type:"int"}],type:"Update"},{id:"1371385889",predicate:"messageActionChatMigrateTo",params:[{name:"channel_id",type:"int"}],type:"MessageAction"},{id:"-1336546578",predicate:"messageActionChannelMigrateFrom",params:[{name:"title",type:"string"},{name:"chat_id",type:"int"}],type:"MessageAction"},{id:"-1328445861",predicate:"channelParticipantsBots",params:[],type:"ChannelParticipantsFilter"},{id:"-236044656",predicate:"help.termsOfService",params:[{name:"text",type:"string"}],type:"help.TermsOfService"},{id:"1753886890",predicate:"updateNewStickerSet",params:[{name:"stickerset",type:"messages.StickerSet"}],type:"Update"},{id:"196268545",predicate:"updateStickerSetsOrder",params:[{name:"flags",type:"#"},{name:"masks",type:"flags.0?true"},{name:"order",type:"Vector"}],type:"Update"},{id:"1135492588",predicate:"updateStickerSets",params:[],type:"Update"},{id:"372165663",predicate:"foundGif",params:[{name:"url",type:"string"},{name:"thumb_url",type:"string"},{name:"content_url",type:"string"},{name:"content_type",type:"string"},{name:"w",type:"int"},{name:"h",type:"int"}],type:"FoundGif"},{id:"-1670052855",predicate:"foundGifCached",params:[{name:"url",type:"string"},{name:"photo",type:"Photo"},{name:"document",type:"Document"}],type:"FoundGif"},{id:"1212395773",predicate:"inputMediaGifExternal",params:[{name:"url",type:"string"},{name:"q",type:"string"}],type:"InputMedia"},{id:"1158290442",predicate:"messages.foundGifs",params:[{name:"next_offset",type:"int"},{name:"results",type:"Vector"}],type:"messages.FoundGifs"},{id:"-402498398",predicate:"messages.savedGifsNotModified",params:[],type:"messages.SavedGifs"},{id:"772213157",predicate:"messages.savedGifs",params:[{name:"hash",type:"int"},{name:"gifs",type:"Vector"}],type:"messages.SavedGifs"},{id:"-1821035490",predicate:"updateSavedGifs",params:[],type:"Update"},{id:"691006739",predicate:"inputBotInlineMessageMediaAuto",params:[{name:"flags",type:"#"},{name:"caption",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"1036876423",predicate:"inputBotInlineMessageText",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.0?true"},{name:"message",type:"string"},{name:"entities",type:"flags.1?Vector"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"750510426",predicate:"inputBotInlineResult",params:[{name:"flags",type:"#"},{name:"id",type:"string"},{name:"type",type:"string"},{name:"title",type:"flags.1?string"},{name:"description",type:"flags.2?string"},{name:"url",type:"flags.3?string"},{name:"thumb_url",type:"flags.4?string"},{name:"content_url",type:"flags.5?string"},{name:"content_type",type:"flags.5?string"},{name:"w",type:"flags.6?int"},{name:"h",type:"flags.6?int"},{name:"duration",type:"flags.7?int"},{name:"send_message",type:"InputBotInlineMessage"}],type:"InputBotInlineResult"},{id:"175419739",predicate:"botInlineMessageMediaAuto",params:[{name:"flags",type:"#"},{name:"caption",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"-1937807902",predicate:"botInlineMessageText",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.0?true"},{name:"message",type:"string"},{name:"entities",type:"flags.1?Vector"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"-1679053127",predicate:"botInlineResult",params:[{name:"flags",type:"#"},{name:"id",type:"string"},{name:"type",type:"string"},{name:"title",type:"flags.1?string"},{name:"description",type:"flags.2?string"},{name:"url",type:"flags.3?string"},{name:"thumb_url",type:"flags.4?string"},{name:"content_url",type:"flags.5?string"},{name:"content_type",type:"flags.5?string"},{name:"w",type:"flags.6?int"},{name:"h",type:"flags.6?int"},{name:"duration",type:"flags.7?int"},{name:"send_message",type:"BotInlineMessage"}],type:"BotInlineResult"},{id:"627509670",predicate:"messages.botResults",params:[{name:"flags",type:"#"},{name:"gallery",type:"flags.0?true"},{name:"query_id",type:"long"},{name:"next_offset",type:"flags.1?string"},{name:"switch_pm",type:"flags.2?InlineBotSwitchPM"},{name:"results",type:"Vector"}],type:"messages.BotResults"},{id:"1417832080",predicate:"updateBotInlineQuery",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"user_id",type:"int"},{name:"query",type:"string"},{name:"geo",type:"flags.0?GeoPoint"},{name:"offset",type:"string"}],type:"Update"},{id:"239663460",predicate:"updateBotInlineSend",params:[{name:"flags",type:"#"},{name:"user_id",type:"int"},{name:"query",type:"string"},{name:"geo",type:"flags.0?GeoPoint"},{name:"id",type:"string"},{name:"msg_id",type:"flags.1?InputBotInlineMessageID"}],type:"Update"},{id:"1358283666",predicate:"inputMessagesFilterVoice",params:[],type:"MessagesFilter"},{id:"928101534",predicate:"inputMessagesFilterMusic",params:[],type:"MessagesFilter"},{id:"-1107622874",predicate:"inputPrivacyKeyChatInvite",params:[],type:"InputPrivacyKey"},{id:"1343122938",predicate:"privacyKeyChatInvite",params:[],type:"PrivacyKey"},{id:"524838915",predicate:"exportedMessageLink",params:[{name:"link",type:"string"}],type:"ExportedMessageLink"},{id:"-947462709",predicate:"messageFwdHeader",params:[{name:"flags",type:"#"},{name:"from_id",type:"flags.0?int"},{name:"date",type:"int"},{name:"channel_id",type:"flags.1?int"},{name:"channel_post",type:"flags.2?int"}],type:"MessageFwdHeader"},{id:"457133559",predicate:"updateEditChannelMessage",params:[{name:"message",type:"Message"},{name:"pts",type:"int"},{name:"pts_count",type:"int"}],type:"Update"},{id:"-1738988427",predicate:"updateChannelPinnedMessage",params:[{name:"channel_id",type:"int"},{name:"id",type:"int"}],type:"Update"},{id:"-1799538451",predicate:"messageActionPinMessage",params:[],type:"MessageAction"},{id:"1923290508",predicate:"auth.codeTypeSms",params:[],type:"auth.CodeType"},{id:"1948046307",predicate:"auth.codeTypeCall",params:[],type:"auth.CodeType"},{id:"577556219",predicate:"auth.codeTypeFlashCall",params:[],type:"auth.CodeType"},{id:"1035688326",predicate:"auth.sentCodeTypeApp",params:[{name:"length",type:"int"}],type:"auth.SentCodeType"},{id:"-1073693790",predicate:"auth.sentCodeTypeSms",params:[{name:"length",type:"int"}],type:"auth.SentCodeType"},{id:"1398007207",predicate:"auth.sentCodeTypeCall",params:[{name:"length",type:"int"}],type:"auth.SentCodeType"},{id:"-1425815847",predicate:"auth.sentCodeTypeFlashCall",params:[{name:"pattern",type:"string"}],type:"auth.SentCodeType"},{id:"629866245",predicate:"keyboardButtonUrl",params:[{name:"text",type:"string"},{name:"url",type:"string"}],type:"KeyboardButton"},{id:"1748655686",predicate:"keyboardButtonCallback",params:[{name:"text",type:"string"},{name:"data",type:"bytes"}],type:"KeyboardButton"},{id:"-1318425559",predicate:"keyboardButtonRequestPhone",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"-59151553",predicate:"keyboardButtonRequestGeoLocation",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"90744648",predicate:"keyboardButtonSwitchInline",params:[{name:"flags",type:"#"},{name:"same_peer",type:"flags.0?true"},{name:"text",type:"string"},{name:"query",type:"string"}],type:"KeyboardButton"},{id:"1218642516",predicate:"replyInlineMarkup",params:[{name:"rows",type:"Vector"}],type:"ReplyMarkup"},{id:"-1324486149",predicate:"messages.botCallbackAnswer",params:[{name:"flags",type:"#"},{name:"alert",type:"flags.1?true"},{name:"has_url",type:"flags.3?true"},{name:"message",type:"flags.0?string"},{name:"url",type:"flags.2?string"}],type:"messages.BotCallbackAnswer"},{id:"-415938591",predicate:"updateBotCallbackQuery",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"user_id",type:"int"},{name:"peer",type:"Peer"},{name:"msg_id",type:"int"},{name:"chat_instance",type:"long"},{name:"data",type:"flags.0?bytes"},{name:"game_short_name",type:"flags.1?string"}],type:"Update"},{id:"649453030",predicate:"messages.messageEditData",params:[{name:"flags",type:"#"},{name:"caption",type:"flags.0?true"}],type:"messages.MessageEditData"},{id:"-469536605",predicate:"updateEditMessage",params:[{name:"message",type:"Message"},{name:"pts",type:"int"},{name:"pts_count", type:"int"}],type:"Update"},{id:"-190472735",predicate:"inputBotInlineMessageMediaGeo",params:[{name:"flags",type:"#"},{name:"geo_point",type:"InputGeoPoint"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"-1431327288",predicate:"inputBotInlineMessageMediaVenue",params:[{name:"flags",type:"#"},{name:"geo_point",type:"InputGeoPoint"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"provider",type:"string"},{name:"venue_id",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"766443943",predicate:"inputBotInlineMessageMediaContact",params:[{name:"flags",type:"#"},{name:"phone_number",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"982505656",predicate:"botInlineMessageMediaGeo",params:[{name:"flags",type:"#"},{name:"geo",type:"GeoPoint"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"1130767150",predicate:"botInlineMessageMediaVenue",params:[{name:"flags",type:"#"},{name:"geo",type:"GeoPoint"},{name:"title",type:"string"},{name:"address",type:"string"},{name:"provider",type:"string"},{name:"venue_id",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"904770772",predicate:"botInlineMessageMediaContact",params:[{name:"flags",type:"#"},{name:"phone_number",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"BotInlineMessage"},{id:"-1462213465",predicate:"inputBotInlineResultPhoto",params:[{name:"id",type:"string"},{name:"type",type:"string"},{name:"photo",type:"InputPhoto"},{name:"send_message",type:"InputBotInlineMessage"}],type:"InputBotInlineResult"},{id:"-459324",predicate:"inputBotInlineResultDocument",params:[{name:"flags",type:"#"},{name:"id",type:"string"},{name:"type",type:"string"},{name:"title",type:"flags.1?string"},{name:"description",type:"flags.2?string"},{name:"document",type:"InputDocument"},{name:"send_message",type:"InputBotInlineMessage"}],type:"InputBotInlineResult"},{id:"400266251",predicate:"botInlineMediaResult",params:[{name:"flags",type:"#"},{name:"id",type:"string"},{name:"type",type:"string"},{name:"photo",type:"flags.0?Photo"},{name:"document",type:"flags.1?Document"},{name:"title",type:"flags.2?string"},{name:"description",type:"flags.3?string"},{name:"send_message",type:"BotInlineMessage"}],type:"BotInlineResult"},{id:"-1995686519",predicate:"inputBotInlineMessageID",params:[{name:"dc_id",type:"int"},{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputBotInlineMessageID"},{id:"-103646630",predicate:"updateInlineBotCallbackQuery",params:[{name:"flags",type:"#"},{name:"query_id",type:"long"},{name:"user_id",type:"int"},{name:"msg_id",type:"InputBotInlineMessageID"},{name:"chat_instance",type:"long"},{name:"data",type:"flags.0?bytes"},{name:"game_short_name",type:"flags.1?string"}],type:"Update"},{id:"1008755359",predicate:"inlineBotSwitchPM",params:[{name:"text",type:"string"},{name:"start_param",type:"string"}],type:"InlineBotSwitchPM"},{id:"863093588",predicate:"messages.peerDialogs",params:[{name:"dialogs",type:"Vector"},{name:"messages",type:"Vector"},{name:"chats",type:"Vector"},{name:"users",type:"Vector"},{name:"state",type:"updates.State"}],type:"messages.PeerDialogs"},{id:"-305282981",predicate:"topPeer",params:[{name:"peer",type:"Peer"},{name:"rating",type:"double"}],type:"TopPeer"},{id:"-1419371685",predicate:"topPeerCategoryBotsPM",params:[],type:"TopPeerCategory"},{id:"344356834",predicate:"topPeerCategoryBotsInline",params:[],type:"TopPeerCategory"},{id:"104314861",predicate:"topPeerCategoryCorrespondents",params:[],type:"TopPeerCategory"},{id:"-1122524854",predicate:"topPeerCategoryGroups",params:[],type:"TopPeerCategory"},{id:"371037736",predicate:"topPeerCategoryChannels",params:[],type:"TopPeerCategory"},{id:"-75283823",predicate:"topPeerCategoryPeers",params:[{name:"category",type:"TopPeerCategory"},{name:"count",type:"int"},{name:"peers",type:"Vector"}],type:"TopPeerCategoryPeers"},{id:"-567906571",predicate:"contacts.topPeersNotModified",params:[],type:"contacts.TopPeers"},{id:"1891070632",predicate:"contacts.topPeers",params:[{name:"categories",type:"Vector"},{name:"chats",type:"Vector"},{name:"users",type:"Vector"}],type:"contacts.TopPeers"},{id:"892193368",predicate:"messageEntityMentionName",params:[{name:"offset",type:"int"},{name:"length",type:"int"},{name:"user_id",type:"int"}],type:"MessageEntity"},{id:"546203849",predicate:"inputMessageEntityMentionName",params:[{name:"offset",type:"int"},{name:"length",type:"int"},{name:"user_id",type:"InputUser"}],type:"MessageEntity"},{id:"975236280",predicate:"inputMessagesFilterChatPhotos",params:[],type:"MessagesFilter"},{id:"634833351",predicate:"updateReadChannelOutbox",params:[{name:"channel_id",type:"int"},{name:"max_id",type:"int"}],type:"Update"},{id:"-299124375",predicate:"updateDraftMessage",params:[{name:"peer",type:"Peer"},{name:"draft",type:"DraftMessage"}],type:"Update"},{id:"-1169445179",predicate:"draftMessageEmpty",params:[],type:"DraftMessage"},{id:"-40996577",predicate:"draftMessage",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"message",type:"string"},{name:"entities",type:"flags.3?Vector"},{name:"date",type:"int"}],type:"DraftMessage"},{id:"-1615153660",predicate:"messageActionHistoryClear",params:[],type:"MessageAction"},{id:"82699215",predicate:"messages.featuredStickersNotModified",params:[],type:"messages.FeaturedStickers"},{id:"-123893531",predicate:"messages.featuredStickers",params:[{name:"hash",type:"int"},{name:"sets",type:"Vector"},{name:"unread",type:"Vector"}],type:"messages.FeaturedStickers"},{id:"1461528386",predicate:"updateReadFeaturedStickers",params:[],type:"Update"},{id:"186120336",predicate:"messages.recentStickersNotModified",params:[],type:"messages.RecentStickers"},{id:"1558317424",predicate:"messages.recentStickers",params:[{name:"hash",type:"int"},{name:"stickers",type:"Vector"}],type:"messages.RecentStickers"},{id:"-1706939360",predicate:"updateRecentStickers",params:[],type:"Update"},{id:"1338747336",predicate:"messages.archivedStickers",params:[{name:"count",type:"int"},{name:"sets",type:"Vector"}],type:"messages.ArchivedStickers"},{id:"946083368",predicate:"messages.stickerSetInstallResultSuccess",params:[],type:"messages.StickerSetInstallResult"},{id:"904138920",predicate:"messages.stickerSetInstallResultArchive",params:[{name:"sets",type:"Vector"}],type:"messages.StickerSetInstallResult"},{id:"1678812626",predicate:"stickerSetCovered",params:[{name:"set",type:"StickerSet"},{name:"cover",type:"Document"}],type:"StickerSetCovered"},{id:"-1574314746",predicate:"updateConfig",params:[],type:"Update"},{id:"861169551",predicate:"updatePtsChanged",params:[],type:"Update"},{id:"-1252045032",predicate:"inputMediaPhotoExternal",params:[{name:"url",type:"string"},{name:"caption",type:"string"}],type:"InputMedia"},{id:"-437690244",predicate:"inputMediaDocumentExternal",params:[{name:"url",type:"string"},{name:"caption",type:"string"}],type:"InputMedia"},{id:"872932635",predicate:"stickerSetMultiCovered",params:[{name:"set",type:"StickerSet"},{name:"covers",type:"Vector"}],type:"StickerSetCovered"},{id:"-1361650766",predicate:"maskCoords",params:[{name:"n",type:"int"},{name:"x",type:"double"},{name:"y",type:"double"},{name:"zoom",type:"double"}],type:"MaskCoords"},{id:"-1744710921",predicate:"documentAttributeHasStickers",params:[],type:"DocumentAttribute"},{id:"1251549527",predicate:"inputStickeredMediaPhoto",params:[{name:"id",type:"InputPhoto"}],type:"InputStickeredMedia"},{id:"70813275",predicate:"inputStickeredMediaDocument",params:[{name:"id",type:"InputDocument"}],type:"InputStickeredMedia"},{id:"-1107729093",predicate:"game",params:[{name:"flags",type:"#"},{name:"id",type:"long"},{name:"access_hash",type:"long"},{name:"short_name",type:"string"},{name:"title",type:"string"},{name:"description",type:"string"},{name:"photo",type:"Photo"},{name:"document",type:"flags.0?Document"}],type:"Game"},{id:"1336154098",predicate:"inputBotInlineResultGame",params:[{name:"id",type:"string"},{name:"short_name",type:"string"},{name:"send_message",type:"InputBotInlineMessage"}],type:"InputBotInlineResult"},{id:"1262639204",predicate:"inputBotInlineMessageGame",params:[{name:"flags",type:"#"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"InputBotInlineMessage"},{id:"-580219064",predicate:"sendMessageGamePlayAction",params:[],type:"SendMessageAction"},{id:"-38694904",predicate:"messageMediaGame",params:[{name:"game",type:"Game"}],type:"MessageMedia"},{id:"-750828557",predicate:"inputMediaGame",params:[{name:"id",type:"InputGame"}],type:"InputMedia"},{id:"53231223",predicate:"inputGameID",params:[{name:"id",type:"long"},{name:"access_hash",type:"long"}],type:"InputGame"},{id:"-1020139510",predicate:"inputGameShortName",params:[{name:"bot_id",type:"InputUser"},{name:"short_name",type:"string"}],type:"InputGame"},{id:"1358175439",predicate:"keyboardButtonGame",params:[{name:"text",type:"string"}],type:"KeyboardButton"},{id:"-1834538890",predicate:"messageActionGameScore",params:[{name:"game_id",type:"long"},{name:"score",type:"int"}],type:"MessageAction"},{id:"1493171408",predicate:"highScore",params:[{name:"pos",type:"int"},{name:"user_id",type:"int"},{name:"score",type:"int"}],type:"HighScore"},{id:"-1707344487",predicate:"messages.highScores",params:[{name:"scores",type:"Vector"},{name:"users",type:"Vector"}],type:"messages.HighScores"}],methods:[{id:"-878758099",method:"invokeAfterMsg",params:[{name:"msg_id",type:"long"},{name:"query",type:"!X"}],type:"X"},{id:"1036301552",method:"invokeAfterMsgs",params:[{name:"msg_ids",type:"Vector"},{name:"query",type:"!X"}],type:"X"},{id:"1877286395",method:"auth.checkPhone",params:[{name:"phone_number",type:"string"}],type:"auth.CheckedPhone"},{id:"-2035355412",method:"auth.sendCode",params:[{name:"flags",type:"#"},{name:"allow_flashcall",type:"flags.0?true"},{name:"phone_number",type:"string"},{name:"current_number",type:"flags.0?Bool"},{name:"api_id",type:"int"},{name:"api_hash",type:"string"}],type:"auth.SentCode"},{id:"453408308",method:"auth.signUp",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"},{name:"first_name",type:"string"},{name:"last_name",type:"string"}],type:"auth.Authorization"},{id:"-1126886015",method:"auth.signIn",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"}],type:"auth.Authorization"},{id:"1461180992",method:"auth.logOut",params:[],type:"Bool"},{id:"-1616179942",method:"auth.resetAuthorizations",params:[],type:"Bool"},{id:"1998331287",method:"auth.sendInvites",params:[{name:"phone_numbers",type:"Vector"},{name:"message",type:"string"}],type:"Bool"},{id:"-440401971",method:"auth.exportAuthorization",params:[{name:"dc_id",type:"int"}],type:"auth.ExportedAuthorization"},{id:"-470837741",method:"auth.importAuthorization",params:[{name:"id",type:"int"},{name:"bytes",type:"bytes"}],type:"auth.Authorization"},{id:"-841733627",method:"auth.bindTempAuthKey",params:[{name:"perm_auth_key_id",type:"long"},{name:"nonce",type:"long"},{name:"expires_at",type:"int"},{name:"encrypted_message",type:"bytes"}],type:"Bool"},{id:"1669245048",method:"account.registerDevice",params:[{name:"token_type",type:"int"},{name:"token",type:"string"}],type:"Bool"},{id:"1707432768",method:"account.unregisterDevice",params:[{name:"token_type",type:"int"},{name:"token",type:"string"}],type:"Bool"},{id:"-2067899501",method:"account.updateNotifySettings",params:[{name:"peer",type:"InputNotifyPeer"},{name:"settings",type:"InputPeerNotifySettings"}],type:"Bool"},{id:"313765169",method:"account.getNotifySettings",params:[{name:"peer",type:"InputNotifyPeer"}],type:"PeerNotifySettings"},{id:"-612493497",method:"account.resetNotifySettings",params:[],type:"Bool"},{id:"2018596725",method:"account.updateProfile",params:[{name:"flags",type:"#"},{name:"first_name",type:"flags.0?string"},{name:"last_name",type:"flags.1?string"},{name:"about",type:"flags.2?string"}],type:"User"},{id:"1713919532",method:"account.updateStatus",params:[{name:"offline",type:"Bool"}],type:"Bool"},{id:"-1068696894",method:"account.getWallPapers",params:[],type:"Vector"},{id:"-1374118561",method:"account.reportPeer",params:[{name:"peer",type:"InputPeer"},{name:"reason",type:"ReportReason"}],type:"Bool"},{id:"227648840",method:"users.getUsers",params:[{name:"id",type:"Vector"}],type:"Vector"},{id:"-902781519",method:"users.getFullUser",params:[{name:"id",type:"InputUser"}],type:"UserFull"},{id:"-995929106",method:"contacts.getStatuses",params:[],type:"Vector"},{id:"583445000",method:"contacts.getContacts",params:[{name:"hash",type:"string"}],type:"contacts.Contacts"},{id:"-634342611",method:"contacts.importContacts",params:[{name:"contacts",type:"Vector"},{name:"replace",type:"Bool"}],type:"contacts.ImportedContacts"},{id:"-1902823612",method:"contacts.deleteContact",params:[{name:"id",type:"InputUser"}],type:"contacts.Link"},{id:"1504393374",method:"contacts.deleteContacts",params:[{name:"id",type:"Vector"}],type:"Bool"},{id:"858475004",method:"contacts.block",params:[{name:"id",type:"InputUser"}],type:"Bool"},{id:"-448724803",method:"contacts.unblock",params:[{name:"id",type:"InputUser"}],type:"Bool"},{id:"-176409329",method:"contacts.getBlocked",params:[{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"contacts.Blocked"},{id:"-2065352905",method:"contacts.exportCard",params:[],type:"Vector"},{id:"1340184318",method:"contacts.importCard",params:[{name:"export_card",type:"Vector"}],type:"User"},{id:"1109588596",method:"messages.getMessages",params:[{name:"id",type:"Vector"}],type:"messages.Messages"},{id:"1799878989",method:"messages.getDialogs",params:[{name:"offset_date",type:"int"},{name:"offset_id",type:"int"},{name:"offset_peer",type:"InputPeer"},{name:"limit",type:"int"}],type:"messages.Dialogs"},{id:"-1347868602",method:"messages.getHistory",params:[{name:"peer",type:"InputPeer"},{name:"offset_id",type:"int"},{name:"offset_date",type:"int"},{name:"add_offset",type:"int"},{name:"limit",type:"int"},{name:"max_id",type:"int"},{name:"min_id",type:"int"}],type:"messages.Messages"},{id:"-732523960",method:"messages.search",params:[{name:"flags",type:"#"},{name:"peer",type:"InputPeer"},{name:"q",type:"string"},{name:"filter",type:"MessagesFilter"},{name:"min_date",type:"int"},{name:"max_date",type:"int"},{name:"offset",type:"int"},{name:"max_id",type:"int"},{name:"limit",type:"int"}],type:"messages.Messages"},{id:"238054714",method:"messages.readHistory",params:[{name:"peer",type:"InputPeer"},{name:"max_id",type:"int"}],type:"messages.AffectedMessages"},{id:"469850889",method:"messages.deleteHistory",params:[{name:"flags",type:"#"},{name:"just_clear",type:"flags.0?true"},{name:"peer",type:"InputPeer"},{name:"max_id",type:"int"}],type:"messages.AffectedHistory"},{id:"-1510897371",method:"messages.deleteMessages",params:[{name:"id",type:"Vector"}],type:"messages.AffectedMessages"},{id:"94983360",method:"messages.receivedMessages",params:[{name:"max_id",type:"int"}],type:"Vector"},{id:"-1551737264",method:"messages.setTyping",params:[{name:"peer",type:"InputPeer"},{name:"action",type:"SendMessageAction"}],type:"Bool"},{id:"-91733382",method:"messages.sendMessage",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"clear_draft",type:"flags.7?true"},{name:"peer",type:"InputPeer"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"message",type:"string"},{name:"random_id",type:"long"},{name:"reply_markup",type:"flags.2?ReplyMarkup"},{name:"entities",type:"flags.3?Vector"}],type:"Updates"},{id:"-923703407",method:"messages.sendMedia",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"clear_draft",type:"flags.7?true"},{name:"peer",type:"InputPeer"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"media",type:"InputMedia"},{name:"random_id",type:"long"},{name:"reply_markup",type:"flags.2?ReplyMarkup"}],type:"Updates"},{id:"1888354709",method:"messages.forwardMessages",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"with_my_score",type:"flags.8?true"},{name:"from_peer",type:"InputPeer"},{name:"id",type:"Vector"},{name:"random_id",type:"Vector"},{name:"to_peer",type:"InputPeer"}],type:"Updates"},{id:"-820669733",method:"messages.reportSpam",params:[{name:"peer",type:"InputPeer"}],type:"Bool"},{id:"-1460572005",method:"messages.hideReportSpam",params:[{name:"peer",type:"InputPeer"}],type:"Bool"},{id:"913498268",method:"messages.getPeerSettings",params:[{name:"peer",type:"InputPeer"}],type:"PeerSettings"},{id:"1013621127",method:"messages.getChats",params:[{name:"id",type:"Vector"}],type:"messages.Chats"},{id:"998448230",method:"messages.getFullChat",params:[{name:"chat_id",type:"int"}],type:"messages.ChatFull"},{id:"-599447467",method:"messages.editChatTitle",params:[{name:"chat_id",type:"int"},{name:"title",type:"string"}],type:"Updates"},{id:"-900957736",method:"messages.editChatPhoto",params:[{name:"chat_id",type:"int"},{name:"photo",type:"InputChatPhoto"}],type:"Updates"},{id:"-106911223",method:"messages.addChatUser",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"InputUser"},{name:"fwd_limit",type:"int"}],type:"Updates"},{id:"-530505962",method:"messages.deleteChatUser",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"InputUser"}],type:"Updates"},{id:"164303470",method:"messages.createChat",params:[{name:"users",type:"Vector"},{name:"title",type:"string"}],type:"Updates"},{id:"-304838614",method:"updates.getState",params:[],type:"updates.State"},{id:"168039573",method:"updates.getDifference",params:[{name:"pts",type:"int"},{name:"date",type:"int"},{name:"qts",type:"int"}],type:"updates.Difference"},{id:"-256159406",method:"photos.updateProfilePhoto",params:[{name:"id",type:"InputPhoto"}],type:"UserProfilePhoto"},{id:"1328726168",method:"photos.uploadProfilePhoto",params:[{name:"file",type:"InputFile"}],type:"photos.Photo"},{id:"-2016444625",method:"photos.deletePhotos",params:[{name:"id",type:"Vector"}],type:"Vector"},{id:"-1291540959",method:"upload.saveFilePart",params:[{name:"file_id",type:"long"},{name:"file_part",type:"int"},{name:"bytes",type:"bytes"}],type:"Bool"},{id:"-475607115",method:"upload.getFile",params:[{name:"location",type:"InputFileLocation"},{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"upload.File"},{id:"-990308245",method:"help.getConfig",params:[],type:"Config"},{id:"531836966",method:"help.getNearestDc",params:[],type:"NearestDc"},{id:"-1372724842",method:"help.getAppUpdate",params:[],type:"help.AppUpdate"},{id:"1862465352",method:"help.saveAppLog",params:[{name:"events",type:"Vector"}],type:"Bool"},{id:"1295590211",method:"help.getInviteText",params:[],type:"help.InviteText"},{id:"-1848823128",method:"photos.getUserPhotos",params:[{name:"user_id",type:"InputUser"},{name:"offset",type:"int"},{name:"max_id",type:"long"},{name:"limit",type:"int"}],type:"photos.Photos"},{id:"865483769",method:"messages.forwardMessage",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"random_id",type:"long"}],type:"Updates"},{id:"651135312",method:"messages.getDhConfig",params:[{name:"version",type:"int"},{name:"random_length",type:"int"}],type:"messages.DhConfig"},{id:"-162681021",method:"messages.requestEncryption",params:[{name:"user_id",type:"InputUser"},{name:"random_id",type:"int"},{name:"g_a",type:"bytes"}],type:"EncryptedChat"},{id:"1035731989",method:"messages.acceptEncryption",params:[{name:"peer",type:"InputEncryptedChat"},{name:"g_b",type:"bytes"},{name:"key_fingerprint",type:"long"}],type:"EncryptedChat"},{id:"-304536635",method:"messages.discardEncryption",params:[{name:"chat_id",type:"int"}],type:"Bool"},{id:"2031374829",method:"messages.setEncryptedTyping",params:[{name:"peer",type:"InputEncryptedChat"},{name:"typing",type:"Bool"}],type:"Bool"},{id:"2135648522",method:"messages.readEncryptedHistory",params:[{name:"peer",type:"InputEncryptedChat"},{name:"max_date",type:"int"}],type:"Bool"},{id:"-1451792525",method:"messages.sendEncrypted",params:[{name:"peer",type:"InputEncryptedChat"},{name:"random_id",type:"long"},{name:"data",type:"bytes"}],type:"messages.SentEncryptedMessage"},{id:"-1701831834",method:"messages.sendEncryptedFile",params:[{name:"peer",type:"InputEncryptedChat"},{name:"random_id",type:"long"},{name:"data",type:"bytes"},{name:"file",type:"InputEncryptedFile"}],type:"messages.SentEncryptedMessage"},{id:"852769188",method:"messages.sendEncryptedService",params:[{name:"peer",type:"InputEncryptedChat"},{name:"random_id",type:"long"},{name:"data",type:"bytes"}],type:"messages.SentEncryptedMessage"},{id:"1436924774",method:"messages.receivedQueue",params:[{name:"max_qts",type:"int"}],type:"Vector"},{id:"-562337987",method:"upload.saveBigFilePart",params:[{name:"file_id",type:"long"},{name:"file_part",type:"int"},{name:"file_total_parts",type:"int"},{name:"bytes",type:"bytes"}],type:"Bool"},{id:"1769565673",method:"initConnection",params:[{name:"api_id",type:"int"},{name:"device_model",type:"string"},{name:"system_version",type:"string"},{name:"app_version",type:"string"},{name:"lang_code",type:"string"},{name:"query",type:"!X"}],type:"X"},{id:"-1663104819",method:"help.getSupport",params:[],type:"help.Support"},{id:"916930423",method:"messages.readMessageContents",params:[{name:"id",type:"Vector"}],type:"messages.AffectedMessages"},{id:"655677548",method:"account.checkUsername",params:[{name:"username",type:"string"}],type:"Bool"},{id:"1040964988",method:"account.updateUsername",params:[{name:"username",type:"string"}],type:"User"},{id:"301470424",method:"contacts.search",params:[{name:"q",type:"string"},{name:"limit",type:"int"}],type:"contacts.Found"},{id:"-623130288",method:"account.getPrivacy",params:[{name:"key",type:"InputPrivacyKey"}],type:"account.PrivacyRules"},{id:"-906486552",method:"account.setPrivacy",params:[{name:"key",type:"InputPrivacyKey"},{name:"rules",type:"Vector"}],type:"account.PrivacyRules"},{id:"1099779595",method:"account.deleteAccount",params:[{name:"reason",type:"string"}],type:"Bool"},{id:"150761757",method:"account.getAccountTTL",params:[],type:"AccountDaysTTL"},{id:"608323678",method:"account.setAccountTTL",params:[{name:"ttl",type:"AccountDaysTTL"}],type:"Bool"},{id:"-627372787",method:"invokeWithLayer",params:[{name:"layer",type:"int"},{name:"query",type:"!X"}],type:"X"},{id:"-113456221",method:"contacts.resolveUsername",params:[{name:"username",type:"string"}],type:"contacts.ResolvedPeer"},{id:"149257707",method:"account.sendChangePhoneCode",params:[{name:"flags",type:"#"},{name:"allow_flashcall",type:"flags.0?true"},{name:"phone_number",type:"string"},{name:"current_number",type:"flags.0?Bool"}],type:"auth.SentCode"},{id:"1891839707",method:"account.changePhone",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"}],type:"User"},{id:"479598769",method:"messages.getAllStickers",params:[{name:"hash",type:"int"}],type:"messages.AllStickers"},{id:"954152242",method:"account.updateDeviceLocked",params:[{name:"period",type:"int"}],type:"Bool"},{id:"1738800940",method:"auth.importBotAuthorization",params:[{name:"flags",type:"int"},{name:"api_id",type:"int"},{name:"api_hash",type:"string"},{name:"bot_auth_token",type:"string"}],type:"auth.Authorization"},{id:"623001124",method:"messages.getWebPagePreview",params:[{name:"message",type:"string"}],type:"MessageMedia"},{id:"-484392616",method:"account.getAuthorizations",params:[],type:"account.Authorizations"},{id:"-545786948",method:"account.resetAuthorization",params:[{name:"hash",type:"long"}],type:"Bool"},{id:"1418342645",method:"account.getPassword",params:[],type:"account.Password"},{id:"-1131605573",method:"account.getPasswordSettings",params:[{name:"current_password_hash",type:"bytes"}],type:"account.PasswordSettings"},{id:"-92517498",method:"account.updatePasswordSettings",params:[{name:"current_password_hash",type:"bytes"},{name:"new_settings",type:"account.PasswordInputSettings"}],type:"Bool"},{id:"174260510",method:"auth.checkPassword",params:[{name:"password_hash",type:"bytes"}],type:"auth.Authorization"},{id:"-661144474",method:"auth.requestPasswordRecovery",params:[],type:"auth.PasswordRecovery"},{id:"1319464594",method:"auth.recoverPassword",params:[{name:"code",type:"string"}],type:"auth.Authorization"},{id:"-1080796745",method:"invokeWithoutUpdates",params:[{name:"query",type:"!X"}],type:"X"},{id:"2106086025",method:"messages.exportChatInvite",params:[{name:"chat_id",type:"int"}],type:"ExportedChatInvite"},{id:"1051570619",method:"messages.checkChatInvite",params:[{name:"hash",type:"string"}],type:"ChatInvite"},{id:"1817183516",method:"messages.importChatInvite",params:[{name:"hash",type:"string"}],type:"Updates"},{id:"639215886",method:"messages.getStickerSet",params:[{name:"stickerset",type:"InputStickerSet"}],type:"messages.StickerSet"},{id:"-946871200",method:"messages.installStickerSet",params:[{name:"stickerset",type:"InputStickerSet"},{name:"archived",type:"Bool"}],type:"messages.StickerSetInstallResult"},{id:"-110209570",method:"messages.uninstallStickerSet",params:[{name:"stickerset",type:"InputStickerSet"}],type:"Bool"},{id:"-421563528",method:"messages.startBot",params:[{name:"bot",type:"InputUser"},{name:"peer",type:"InputPeer"},{name:"random_id",type:"long"},{name:"start_param",type:"string"}],type:"Updates"},{id:"-1189013126",method:"help.getAppChangelog",params:[],type:"help.AppChangelog"},{id:"-993483427",method:"messages.getMessagesViews",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"Vector"},{name:"increment",type:"Bool"}],type:"Vector"},{id:"-871347913",method:"channels.readHistory",params:[{name:"channel",type:"InputChannel"},{name:"max_id",type:"int"}],type:"Bool"},{id:"-2067661490",method:"channels.deleteMessages",params:[{name:"channel",type:"InputChannel"},{name:"id",type:"Vector"}],type:"messages.AffectedMessages"},{id:"-787622117",method:"channels.deleteUserHistory",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"}],type:"messages.AffectedHistory"},{id:"-32999408",method:"channels.reportSpam",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"},{name:"id",type:"Vector"}],type:"Bool"},{id:"-1814580409",method:"channels.getMessages",params:[{name:"channel",type:"InputChannel"},{name:"id",type:"Vector"}],type:"messages.Messages"},{id:"618237842",method:"channels.getParticipants",params:[{name:"channel",type:"InputChannel"},{name:"filter",type:"ChannelParticipantsFilter"},{name:"offset",type:"int"},{name:"limit",type:"int"}],type:"channels.ChannelParticipants"},{id:"1416484774",method:"channels.getParticipant",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"}],type:"channels.ChannelParticipant"},{id:"176122811",method:"channels.getChannels",params:[{name:"id",type:"Vector"}],type:"messages.Chats"},{id:"141781513",method:"channels.getFullChannel",params:[{name:"channel",type:"InputChannel"}],type:"messages.ChatFull"},{id:"-192332417",method:"channels.createChannel",params:[{name:"flags",type:"#"},{name:"broadcast",type:"flags.0?true"},{name:"megagroup",type:"flags.1?true"},{name:"title",type:"string"},{name:"about",type:"string"}],type:"Updates"},{id:"333610782",method:"channels.editAbout",params:[{name:"channel",type:"InputChannel"},{name:"about",type:"string"}],type:"Bool"},{id:"-344583728",method:"channels.editAdmin",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"},{name:"role",type:"ChannelParticipantRole"}],type:"Updates"},{id:"1450044624",method:"channels.editTitle",params:[{name:"channel",type:"InputChannel"},{name:"title",type:"string"}],type:"Updates"},{id:"-248621111",method:"channels.editPhoto",params:[{name:"channel",type:"InputChannel"},{name:"photo",type:"InputChatPhoto"}],type:"Updates"},{id:"283557164",method:"channels.checkUsername",params:[{name:"channel",type:"InputChannel"},{name:"username",type:"string"}],type:"Bool"},{id:"890549214",method:"channels.updateUsername",params:[{name:"channel",type:"InputChannel"},{name:"username",type:"string"}],type:"Bool"},{id:"615851205",method:"channels.joinChannel",params:[{name:"channel",type:"InputChannel"}],type:"Updates"},{id:"-130635115",method:"channels.leaveChannel",params:[{name:"channel",type:"InputChannel"}],type:"Updates"},{id:"429865580",method:"channels.inviteToChannel",params:[{name:"channel",type:"InputChannel"},{name:"users",type:"Vector"}],type:"Updates"},{id:"-1502421484",method:"channels.kickFromChannel",params:[{name:"channel",type:"InputChannel"},{name:"user_id",type:"InputUser"},{name:"kicked",type:"Bool"}],type:"Updates"},{id:"-950663035",method:"channels.exportInvite",params:[{name:"channel",type:"InputChannel"}],type:"ExportedChatInvite"},{id:"-1072619549",method:"channels.deleteChannel",params:[{name:"channel",type:"InputChannel"}],type:"Updates"},{id:"-1154295872",method:"updates.getChannelDifference",params:[{name:"channel",type:"InputChannel"},{name:"filter",type:"ChannelMessagesFilter"},{name:"pts",type:"int"},{name:"limit",type:"int"}],type:"updates.ChannelDifference"},{id:"-326379039",method:"messages.toggleChatAdmins",params:[{name:"chat_id",type:"int"},{name:"enabled",type:"Bool"}],type:"Updates"},{id:"-1444503762",method:"messages.editChatAdmin",params:[{name:"chat_id",type:"int"},{name:"user_id",type:"InputUser"},{name:"is_admin",type:"Bool"}],type:"Bool"},{id:"363051235",method:"messages.migrateChat",params:[{name:"chat_id",type:"int"}],type:"Updates"},{id:"-1640190800",method:"messages.searchGlobal",params:[{name:"q",type:"string"},{name:"offset_date",type:"int"},{name:"offset_peer",type:"InputPeer"},{name:"offset_id",type:"int"},{name:"limit",type:"int"}],type:"messages.Messages"},{id:"889286899",method:"help.getTermsOfService",params:[],type:"help.TermsOfService"},{id:"2016638777",method:"messages.reorderStickerSets",params:[{name:"flags",type:"#"},{name:"masks",type:"flags.0?true"},{name:"order",type:"Vector"}],type:"Bool"},{id:"864953444",method:"messages.getDocumentByHash",params:[{name:"sha256",type:"bytes"},{name:"size",type:"int"},{name:"mime_type",type:"string"}],type:"Document"},{id:"-1080395925",method:"messages.searchGifs",params:[{name:"q",type:"string"},{name:"offset",type:"int"}],type:"messages.FoundGifs"},{id:"-2084618926",method:"messages.getSavedGifs",params:[{name:"hash",type:"int"}],type:"messages.SavedGifs"},{id:"846868683",method:"messages.saveGif",params:[{name:"id",type:"InputDocument"},{name:"unsave",type:"Bool"}],type:"Bool"},{id:"1364105629",method:"messages.getInlineBotResults",params:[{name:"flags",type:"#"},{name:"bot",type:"InputUser"},{name:"peer",type:"InputPeer"},{name:"geo_point",type:"flags.0?InputGeoPoint"},{name:"query",type:"string"},{name:"offset",type:"string"}],type:"messages.BotResults"},{id:"-346119674",method:"messages.setInlineBotResults",params:[{name:"flags",type:"#"},{name:"gallery",type:"flags.0?true"},{name:"private",type:"flags.1?true"},{name:"query_id", type:"long"},{name:"results",type:"Vector"},{name:"cache_time",type:"int"},{name:"next_offset",type:"flags.2?string"},{name:"switch_pm",type:"flags.3?InlineBotSwitchPM"}],type:"Bool"},{id:"-1318189314",method:"messages.sendInlineBotResult",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.5?true"},{name:"background",type:"flags.6?true"},{name:"clear_draft",type:"flags.7?true"},{name:"peer",type:"InputPeer"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"random_id",type:"long"},{name:"query_id",type:"long"},{name:"id",type:"string"}],type:"Updates"},{id:"1231065863",method:"channels.toggleInvites",params:[{name:"channel",type:"InputChannel"},{name:"enabled",type:"Bool"}],type:"Updates"},{id:"-934882771",method:"channels.exportMessageLink",params:[{name:"channel",type:"InputChannel"},{name:"id",type:"int"}],type:"ExportedMessageLink"},{id:"527021574",method:"channels.toggleSignatures",params:[{name:"channel",type:"InputChannel"},{name:"enabled",type:"Bool"}],type:"Updates"},{id:"-1490162350",method:"channels.updatePinnedMessage",params:[{name:"flags",type:"#"},{name:"silent",type:"flags.0?true"},{name:"channel",type:"InputChannel"},{name:"id",type:"int"}],type:"Updates"},{id:"1056025023",method:"auth.resendCode",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"}],type:"auth.SentCode"},{id:"520357240",method:"auth.cancelCode",params:[{name:"phone_number",type:"string"},{name:"phone_code_hash",type:"string"}],type:"Bool"},{id:"-39416522",method:"messages.getMessageEditData",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"int"}],type:"messages.MessageEditData"},{id:"-829299510",method:"messages.editMessage",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"message",type:"flags.11?string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"},{name:"entities",type:"flags.3?Vector"}],type:"Updates"},{id:"319564933",method:"messages.editInlineBotMessage",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"id",type:"InputBotInlineMessageID"},{name:"message",type:"flags.11?string"},{name:"reply_markup",type:"flags.2?ReplyMarkup"},{name:"entities",type:"flags.3?Vector"}],type:"Bool"},{id:"-2130010132",method:"messages.getBotCallbackAnswer",params:[{name:"flags",type:"#"},{name:"game",type:"flags.1?true"},{name:"peer",type:"InputPeer"},{name:"msg_id",type:"int"},{name:"data",type:"flags.0?bytes"}],type:"messages.BotCallbackAnswer"},{id:"-920136629",method:"messages.setBotCallbackAnswer",params:[{name:"flags",type:"#"},{name:"alert",type:"flags.1?true"},{name:"query_id",type:"long"},{name:"message",type:"flags.0?string"},{name:"url",type:"flags.2?string"}],type:"Bool"},{id:"-728224331",method:"contacts.getTopPeers",params:[{name:"flags",type:"#"},{name:"correspondents",type:"flags.0?true"},{name:"bots_pm",type:"flags.1?true"},{name:"bots_inline",type:"flags.2?true"},{name:"groups",type:"flags.10?true"},{name:"channels",type:"flags.15?true"},{name:"offset",type:"int"},{name:"limit",type:"int"},{name:"hash",type:"int"}],type:"contacts.TopPeers"},{id:"451113900",method:"contacts.resetTopPeerRating",params:[{name:"category",type:"TopPeerCategory"},{name:"peer",type:"InputPeer"}],type:"Bool"},{id:"764901049",method:"messages.getPeerDialogs",params:[{name:"peers",type:"Vector"}],type:"messages.PeerDialogs"},{id:"-1137057461",method:"messages.saveDraft",params:[{name:"flags",type:"#"},{name:"no_webpage",type:"flags.1?true"},{name:"reply_to_msg_id",type:"flags.0?int"},{name:"peer",type:"InputPeer"},{name:"message",type:"string"},{name:"entities",type:"flags.3?Vector"}],type:"Bool"},{id:"1782549861",method:"messages.getAllDrafts",params:[],type:"Updates"},{id:"766298703",method:"messages.getFeaturedStickers",params:[{name:"hash",type:"int"}],type:"messages.FeaturedStickers"},{id:"1527873830",method:"messages.readFeaturedStickers",params:[{name:"id",type:"Vector"}],type:"Bool"},{id:"1587647177",method:"messages.getRecentStickers",params:[{name:"flags",type:"#"},{name:"attached",type:"flags.0?true"},{name:"hash",type:"int"}],type:"messages.RecentStickers"},{id:"958863608",method:"messages.saveRecentSticker",params:[{name:"flags",type:"#"},{name:"attached",type:"flags.0?true"},{name:"id",type:"InputDocument"},{name:"unsave",type:"Bool"}],type:"Bool"},{id:"-1986437075",method:"messages.clearRecentStickers",params:[{name:"flags",type:"#"},{name:"attached",type:"flags.0?true"}],type:"Bool"},{id:"1475442322",method:"messages.getArchivedStickers",params:[{name:"flags",type:"#"},{name:"masks",type:"flags.0?true"},{name:"offset_id",type:"long"},{name:"limit",type:"int"}],type:"messages.ArchivedStickers"},{id:"353818557",method:"account.sendConfirmPhoneCode",params:[{name:"flags",type:"#"},{name:"allow_flashcall",type:"flags.0?true"},{name:"hash",type:"string"},{name:"current_number",type:"flags.0?Bool"}],type:"auth.SentCode"},{id:"1596029123",method:"account.confirmPhone",params:[{name:"phone_code_hash",type:"string"},{name:"phone_code",type:"string"}],type:"Bool"},{id:"-1920105769",method:"channels.getAdminedPublicChannels",params:[],type:"messages.Chats"},{id:"1706608543",method:"messages.getMaskStickers",params:[{name:"hash",type:"int"}],type:"messages.AllStickers"},{id:"-866424884",method:"messages.getAttachedStickers",params:[{name:"media",type:"InputStickeredMedia"}],type:"Vector"},{id:"-1907842680",method:"auth.dropTempAuthKeys",params:[{name:"except_auth_keys",type:"Vector"}],type:"Bool"},{id:"-1896289088",method:"messages.setGameScore",params:[{name:"flags",type:"#"},{name:"edit_message",type:"flags.0?true"},{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"user_id",type:"InputUser"},{name:"score",type:"int"}],type:"Updates"},{id:"363700068",method:"messages.setInlineGameScore",params:[{name:"flags",type:"#"},{name:"edit_message",type:"flags.0?true"},{name:"id",type:"InputBotInlineMessageID"},{name:"user_id",type:"InputUser"},{name:"score",type:"int"}],type:"Bool"},{id:"-400399203",method:"messages.getGameHighScores",params:[{name:"peer",type:"InputPeer"},{name:"id",type:"int"},{name:"user_id",type:"InputUser"}],type:"messages.HighScores"},{id:"258170395",method:"messages.getInlineGameHighScores",params:[{name:"id",type:"InputBotInlineMessageID"},{name:"user_id",type:"InputUser"}],type:"messages.HighScores"}]},Config.Schema.API.layer=57,Config.Emoji={"00a9":["©",["copyright"]],"00ae":["®",["registered"]],"203c":["‼",["bangbang"]],2049:["⁉",["interrobang"]],2122:["™",["tm"]],2139:["ℹ",["information_source"]],2194:["↔",["left_right_arrow"]],2195:["↕",["arrow_up_down"]],2196:["↖",["arrow_upper_left"]],2197:["↗",["arrow_upper_right"]],2198:["↘",["arrow_lower_right"]],2199:["↙",["arrow_lower_left"]],"21a9":["↩",["leftwards_arrow_with_hook"]],"21aa":["↪",["arrow_right_hook"]],"231a":["⌚",["watch"]],"231b":["⌛",["hourglass"]],"23e9":["⏩",["fast_forward"]],"23ea":["⏪",["rewind"]],"23eb":["⏫",["arrow_double_up"]],"23ec":["⏬",["arrow_double_down"]],"23f0":["⏰",["alarm_clock"]],"23f3":["⏳",["hourglass_flowing_sand"]],"24c2":["Ⓜ",["m"]],"25aa":["▪",["black_small_square"]],"25ab":["▫",["white_small_square"]],"25b6":["▶",["arrow_forward"]],"25c0":["◀",["arrow_backward"]],"25fb":["◻",["white_medium_square"]],"25fc":["◼",["black_medium_square"]],"25fd":["◽",["white_medium_small_square"]],"25fe":["◾",["black_medium_small_square"]],2600:["☀",["sunny"]],2601:["☁",["cloud"]],"260e":["☎",["phone","telephone"]],2611:["☑",["ballot_box_with_check"]],2614:["☔",["umbrella"]],2615:["☕",["coffee"]],"261d":["☝",["point_up"]],"263a":["☺",["relaxed"]],2648:["♈",["aries"]],2649:["♉",["taurus"]],"264a":["♊",["gemini"]],"264b":["♋",["cancer"]],"264c":["♌",["leo"]],"264d":["♍",["virgo"]],"264e":["♎",["libra"]],"264f":["♏",["scorpius"]],2650:["♐",["sagittarius"]],2651:["♑",["capricorn"]],2652:["♒",["aquarius"]],2653:["♓",["pisces"]],2660:["♠",["spades"]],2663:["♣",["clubs"]],2665:["♥",["hearts"]],2666:["♦",["diamonds"]],2668:["♨",["hotsprings"]],"267b":["♻",["recycle"]],"267f":["♿",["wheelchair"]],2693:["⚓",["anchor"]],"26a0":["⚠",["warning"]],"26a1":["⚡",["zap"]],"26aa":["⚪",["white_circle"]],"26ab":["⚫",["black_circle"]],"26bd":["⚽",["soccer"]],"26be":["⚾",["baseball"]],"26c4":["⛄",["snowman"]],"26c5":["⛅",["partly_sunny"]],"26ce":["⛎",["ophiuchus"]],"26d4":["⛔",["no_entry"]],"26ea":["⛪",["church"]],"26f2":["⛲",["fountain"]],"26f3":["⛳",["golf"]],"26f5":["⛵",["boat","sailboat"]],"26fa":["⛺",["tent"]],"26fd":["⛽",["fuelpump"]],2702:["✂",["scissors"]],2705:["✅",["white_check_mark"]],2708:["✈",["airplane"]],2709:["✉",["email","envelope"]],"270a":["✊",["fist"]],"270b":["✋",["hand","raised_hand"]],"270c":["✌",["v"]],"270f":["✏",["pencil2"]],2712:["✒",["black_nib"]],2714:["✔",["heavy_check_mark"]],2716:["✖",["heavy_multiplication_x"]],2728:["✨",["sparkles"]],2733:["✳",["eight_spoked_asterisk"]],2734:["✴",["eight_pointed_black_star"]],2744:["❄",["snowflake"]],2747:["❇",["sparkle"]],"274c":["❌",["x"]],"274e":["❎",["negative_squared_cross_mark"]],2753:["❓",["question"]],2754:["❔",["grey_question"]],2755:["❕",["grey_exclamation"]],2757:["❗",["exclamation","heavy_exclamation_mark"]],2764:["❤",["heart"],"<3"],2795:["➕",["heavy_plus_sign"]],2796:["➖",["heavy_minus_sign"]],2797:["➗",["heavy_division_sign"]],"27a1":["➡",["arrow_right"]],"27b0":["➰",["curly_loop"]],"27bf":["➿",["loop"]],2934:["⤴",["arrow_heading_up"]],2935:["⤵",["arrow_heading_down"]],"2b05":["⬅",["arrow_left"]],"2b06":["⬆",["arrow_up"]],"2b07":["⬇",["arrow_down"]],"2b1b":["⬛",["black_large_square"]],"2b1c":["⬜",["white_large_square"]],"2b50":["⭐",["star"]],"2b55":["⭕",["o"]],3030:["〰",["wavy_dash"]],"303d":["〽",["part_alternation_mark"]],3297:["㊗",["congratulations"]],3299:["㊙",["secret"]],"1f004":["🀄",["mahjong"]],"1f0cf":["🃏",["black_joker"]],"1f170":["🅰",["a"]],"1f171":["🅱",["b"]],"1f17e":["🅾",["o2"]],"1f17f":["🅿",["parking"]],"1f18e":["🆎",["ab"]],"1f191":["🆑",["cl"]],"1f192":["🆒",["cool"]],"1f193":["🆓",["free"]],"1f194":["🆔",["id"]],"1f195":["🆕",["new"]],"1f196":["🆖",["ng"]],"1f197":["🆗",["ok"]],"1f198":["🆘",["sos"]],"1f199":["🆙",["up"]],"1f19a":["🆚",["vs"]],"1f201":["🈁",["koko"]],"1f202":["🈂",["sa"]],"1f21a":["🈚",["u7121"]],"1f22f":["🈯",["u6307"]],"1f232":["🈲",["u7981"]],"1f233":["🈳",["u7a7a"]],"1f234":["🈴",["u5408"]],"1f235":["🈵",["u6e80"]],"1f236":["🈶",["u6709"]],"1f237":["🈷",["u6708"]],"1f238":["🈸",["u7533"]],"1f239":["🈹",["u5272"]],"1f23a":["🈺",["u55b6"]],"1f250":["🉐",["ideograph_advantage"]],"1f251":["🉑",["accept"]],"1f300":["🌀",["cyclone"]],"1f301":["🌁",["foggy"]],"1f302":["🌂",["closed_umbrella"]],"1f303":["🌃",["night_with_stars"]],"1f304":["🌄",["sunrise_over_mountains"]],"1f305":["🌅",["sunrise"]],"1f306":["🌆",["city_sunset"]],"1f307":["🌇",["city_sunrise"]],"1f308":["🌈",["rainbow"]],"1f309":["🌉",["bridge_at_night"]],"1f30a":["🌊",["ocean"]],"1f30b":["🌋",["volcano"]],"1f30c":["🌌",["milky_way"]],"1f30d":["🌍",["earth_africa"]],"1f30e":["🌎",["earth_americas"]],"1f30f":["🌏",["earth_asia"]],"1f310":["🌐",["globe_with_meridians"]],"1f311":["🌑",["new_moon"]],"1f312":["🌒",["waxing_crescent_moon"]],"1f313":["🌓",["first_quarter_moon"]],"1f314":["🌔",["moon","waxing_gibbous_moon"]],"1f315":["🌕",["full_moon"]],"1f316":["🌖",["waning_gibbous_moon"]],"1f317":["🌗",["last_quarter_moon"]],"1f318":["🌘",["waning_crescent_moon"]],"1f319":["🌙",["crescent_moon"]],"1f320":["🌠",["stars"]],"1f31a":["🌚",["new_moon_with_face"]],"1f31b":["🌛",["first_quarter_moon_with_face"]],"1f31c":["🌜",["last_quarter_moon_with_face"]],"1f31d":["🌝",["full_moon_with_face"]],"1f31e":["🌞",["sun_with_face"]],"1f31f":["🌟",["star2"]],"1f330":["🌰",["chestnut"]],"1f331":["🌱",["seedling"]],"1f332":["🌲",["evergreen_tree"]],"1f333":["🌳",["deciduous_tree"]],"1f334":["🌴",["palm_tree"]],"1f335":["🌵",["cactus"]],"1f337":["🌷",["tulip"]],"1f338":["🌸",["cherry_blossom"]],"1f339":["🌹",["rose"]],"1f33a":["🌺",["hibiscus"]],"1f33b":["🌻",["sunflower"]],"1f33c":["🌼",["blossom"]],"1f33d":["🌽",["corn"]],"1f33e":["🌾",["ear_of_rice"]],"1f33f":["🌿",["herb"]],"1f340":["🍀",["four_leaf_clover"]],"1f341":["🍁",["maple_leaf"]],"1f342":["🍂",["fallen_leaf"]],"1f343":["🍃",["leaves"]],"1f344":["🍄",["mushroom"]],"1f345":["🍅",["tomato"]],"1f346":["🍆",["eggplant"]],"1f347":["🍇",["grapes"]],"1f348":["🍈",["melon"]],"1f349":["🍉",["watermelon"]],"1f34a":["🍊",["tangerine"]],"1f34b":["🍋",["lemon"]],"1f34c":["🍌",["banana"]],"1f34d":["🍍",["pineapple"]],"1f34e":["🍎",["apple"]],"1f34f":["🍏",["green_apple"]],"1f350":["🍐",["pear"]],"1f351":["🍑",["peach"]],"1f352":["🍒",["cherries"]],"1f353":["🍓",["strawberry"]],"1f354":["🍔",["hamburger"]],"1f355":["🍕",["pizza"]],"1f356":["🍖",["meat_on_bone"]],"1f357":["🍗",["poultry_leg"]],"1f358":["🍘",["rice_cracker"]],"1f359":["🍙",["rice_ball"]],"1f35a":["🍚",["rice"]],"1f35b":["🍛",["curry"]],"1f35c":["🍜",["ramen"]],"1f35d":["🍝",["spaghetti"]],"1f35e":["🍞",["bread"]],"1f35f":["🍟",["fries"]],"1f360":["🍠",["sweet_potato"]],"1f361":["🍡",["dango"]],"1f362":["🍢",["oden"]],"1f363":["🍣",["sushi"]],"1f364":["🍤",["fried_shrimp"]],"1f365":["🍥",["fish_cake"]],"1f366":["🍦",["icecream"]],"1f367":["🍧",["shaved_ice"]],"1f368":["🍨",["ice_cream"]],"1f369":["🍩",["doughnut"]],"1f36a":["🍪",["cookie"]],"1f36b":["🍫",["chocolate_bar"]],"1f36c":["🍬",["candy"]],"1f36d":["🍭",["lollipop"]],"1f36e":["🍮",["custard"]],"1f36f":["🍯",["honey_pot"]],"1f370":["🍰",["cake"]],"1f371":["🍱",["bento"]],"1f372":["🍲",["stew"]],"1f373":["🍳",["egg"]],"1f374":["🍴",["fork_and_knife"]],"1f375":["🍵",["tea"]],"1f376":["🍶",["sake"]],"1f377":["🍷",["wine_glass"]],"1f378":["🍸",["cocktail"]],"1f379":["🍹",["tropical_drink"]],"1f37a":["🍺",["beer"]],"1f37b":["🍻",["beers"]],"1f37c":["🍼",["baby_bottle"]],"1f380":["🎀",["ribbon"]],"1f381":["🎁",["gift"]],"1f382":["🎂",["birthday"]],"1f383":["🎃",["jack_o_lantern"]],"1f384":["🎄",["christmas_tree"]],"1f385":["🎅",["santa"]],"1f386":["🎆",["fireworks"]],"1f387":["🎇",["sparkler"]],"1f388":["🎈",["balloon"]],"1f389":["🎉",["tada"]],"1f38a":["🎊",["confetti_ball"]],"1f38b":["🎋",["tanabata_tree"]],"1f38c":["🎌",["crossed_flags"]],"1f38d":["🎍",["bamboo"]],"1f38e":["🎎",["dolls"]],"1f38f":["🎏",["flags"]],"1f390":["🎐",["wind_chime"]],"1f391":["🎑",["rice_scene"]],"1f392":["🎒",["school_satchel"]],"1f393":["🎓",["mortar_board"]],"1f3a0":["🎠",["carousel_horse"]],"1f3a1":["🎡",["ferris_wheel"]],"1f3a2":["🎢",["roller_coaster"]],"1f3a3":["🎣",["fishing_pole_and_fish"]],"1f3a4":["🎤",["microphone"]],"1f3a5":["🎥",["movie_camera"]],"1f3a6":["🎦",["cinema"]],"1f3a7":["🎧",["headphones"]],"1f3a8":["🎨",["art"]],"1f3a9":["🎩",["tophat"]],"1f3aa":["🎪",["circus_tent"]],"1f3ab":["🎫",["ticket"]],"1f3ac":["🎬",["clapper"]],"1f3ad":["🎭",["performing_arts"]],"1f3ae":["🎮",["video_game"]],"1f3af":["🎯",["dart"]],"1f3b0":["🎰",["slot_machine"]],"1f3b1":["🎱",["8ball"]],"1f3b2":["🎲",["game_die"]],"1f3b3":["🎳",["bowling"]],"1f3b4":["🎴",["flower_playing_cards"]],"1f3b5":["🎵",["musical_note"]],"1f3b6":["🎶",["notes"]],"1f3b7":["🎷",["saxophone"]],"1f3b8":["🎸",["guitar"]],"1f3b9":["🎹",["musical_keyboard"]],"1f3ba":["🎺",["trumpet"]],"1f3bb":["🎻",["violin"]],"1f3bc":["🎼",["musical_score"]],"1f3bd":["🎽",["running_shirt_with_sash"]],"1f3be":["🎾",["tennis"]],"1f3bf":["🎿",["ski"]],"1f3c0":["🏀",["basketball"]],"1f3c1":["🏁",["checkered_flag"]],"1f3c2":["🏂",["snowboarder"]],"1f3c3":["🏃",["runner","running"]],"1f3c4":["🏄",["surfer"]],"1f3c6":["🏆",["trophy"]],"1f3c7":["🏇",["horse_racing"]],"1f3c8":["🏈",["football"]],"1f3c9":["🏉",["rugby_football"]],"1f3ca":["🏊",["swimmer"]],"1f3e0":["🏠",["house"]],"1f3e1":["🏡",["house_with_garden"]],"1f3e2":["🏢",["office"]],"1f3e3":["🏣",["post_office"]],"1f3e4":["🏤",["european_post_office"]],"1f3e5":["🏥",["hospital"]],"1f3e6":["🏦",["bank"]],"1f3e7":["🏧",["atm"]],"1f3e8":["🏨",["hotel"]],"1f3e9":["🏩",["love_hotel"]],"1f3ea":["🏪",["convenience_store"]],"1f3eb":["🏫",["school"]],"1f3ec":["🏬",["department_store"]],"1f3ed":["🏭",["factory"]],"1f3ee":["🏮",["izakaya_lantern","lantern"]],"1f3ef":["🏯",["japanese_castle"]],"1f3f0":["🏰",["european_castle"]],"1f400":["🐀",["rat"]],"1f401":["🐁",["mouse2"]],"1f402":["🐂",["ox"]],"1f403":["🐃",["water_buffalo"]],"1f404":["🐄",["cow2"]],"1f405":["🐅",["tiger2"]],"1f406":["🐆",["leopard"]],"1f407":["🐇",["rabbit2"]],"1f408":["🐈",["cat2"]],"1f409":["🐉",["dragon"]],"1f40a":["🐊",["crocodile"]],"1f40b":["🐋",["whale2"]],"1f40c":["🐌",["snail"]],"1f40d":["🐍",["snake"]],"1f40e":["🐎",["racehorse"]],"1f40f":["🐏",["ram"]],"1f410":["🐐",["goat"]],"1f411":["🐑",["sheep"]],"1f412":["🐒",["monkey"]],"1f413":["🐓",["rooster"]],"1f414":["🐔",["chicken"]],"1f415":["🐕",["dog2"]],"1f416":["🐖",["pig2"]],"1f417":["🐗",["boar"]],"1f418":["🐘",["elephant"]],"1f419":["🐙",["octopus"]],"1f41a":["🐚",["shell"]],"1f41b":["🐛",["bug"]],"1f41c":["🐜",["ant"]],"1f41d":["🐝",["bee","honeybee"]],"1f41e":["🐞",["beetle"]],"1f41f":["🐟",["fish"]],"1f420":["🐠",["tropical_fish"]],"1f421":["🐡",["blowfish"]],"1f422":["🐢",["turtle"]],"1f423":["🐣",["hatching_chick"]],"1f424":["🐤",["baby_chick"]],"1f425":["🐥",["hatched_chick"]],"1f426":["🐦",["bird"]],"1f427":["🐧",["penguin"]],"1f428":["🐨",["koala"]],"1f429":["🐩",["poodle"]],"1f42a":["🐪",["dromedary_camel"]],"1f42b":["🐫",["camel"]],"1f42c":["🐬",["dolphin","flipper"]],"1f42d":["🐭",["mouse"]],"1f42e":["🐮",["cow"]],"1f42f":["🐯",["tiger"]],"1f430":["🐰",["rabbit"]],"1f431":["🐱",["cat"]],"1f432":["🐲",["dragon_face"]],"1f433":["🐳",["whale"]],"1f434":["🐴",["horse"]],"1f435":["🐵",["monkey_face"]],"1f436":["🐶",["dog"]],"1f437":["🐷",["pig"]],"1f438":["🐸",["frog"]],"1f439":["🐹",["hamster"]],"1f43a":["🐺",["wolf"]],"1f43b":["🐻",["bear"]],"1f43c":["🐼",["panda_face"]],"1f43d":["🐽",["pig_nose"]],"1f43e":["🐾",["feet","paw_prints"]],"1f440":["👀",["eyes"]],"1f442":["👂",["ear"]],"1f443":["👃",["nose"]],"1f444":["👄",["lips"]],"1f445":["👅",["tongue"]],"1f446":["👆",["point_up_2"]],"1f447":["👇",["point_down"]],"1f448":["👈",["point_left"]],"1f449":["👉",["point_right"]],"1f44a":["👊",["facepunch","punch"]],"1f44b":["👋",["wave"]],"1f44c":["👌",["ok_hand"]],"1f44d":["👍",["+1","thumbsup"]],"1f44e":["👎",["-1","thumbsdown"]],"1f44f":["👏",["clap"]],"1f450":["👐",["open_hands"]],"1f451":["👑",["crown"]],"1f452":["👒",["womans_hat"]],"1f453":["👓",["eyeglasses"]],"1f454":["👔",["necktie"]],"1f455":["👕",["shirt","tshirt"]],"1f456":["👖",["jeans"]],"1f457":["👗",["dress"]],"1f458":["👘",["kimono"]],"1f459":["👙",["bikini"]],"1f45a":["👚",["womans_clothes"]],"1f45b":["👛",["purse"]],"1f45c":["👜",["handbag"]],"1f45d":["👝",["pouch"]],"1f45e":["👞",["mans_shoe","shoe"]],"1f45f":["👟",["athletic_shoe"]],"1f460":["👠",["high_heel"]],"1f461":["👡",["sandal"]],"1f462":["👢",["boot"]],"1f463":["👣",["footprints"]],"1f464":["👤",["bust_in_silhouette"]],"1f465":["👥",["busts_in_silhouette"]],"1f466":["👦",["boy"]],"1f467":["👧",["girl"]],"1f468":["👨",["man"]],"1f469":["👩",["woman"]],"1f46a":["👪",["family"]],"1f46b":["👫",["couple"]],"1f46c":["👬",["two_men_holding_hands"]],"1f46d":["👭",["two_women_holding_hands"]],"1f46e":["👮",["cop"]],"1f46f":["👯",["dancers"]],"1f470":["👰",["bride_with_veil"]],"1f471":["👱",["person_with_blond_hair"]],"1f472":["👲",["man_with_gua_pi_mao"]],"1f473":["👳",["man_with_turban"]],"1f474":["👴",["older_man"]],"1f475":["👵",["older_woman"]],"1f476":["👶",["baby"]],"1f477":["👷",["construction_worker"]],"1f478":["👸",["princess"]],"1f479":["👹",["japanese_ogre"]],"1f47a":["👺",["japanese_goblin"]],"1f47b":["👻",["ghost"]],"1f47c":["👼",["angel"]],"1f47d":["👽",["alien"]],"1f47e":["👾",["space_invader"]],"1f47f":["👿",["imp"]],"1f480":["💀",["skull"]],"1f481":["💁",["information_desk_person"]],"1f482":["💂",["guardsman"]],"1f483":["💃",["dancer"]],"1f484":["💄",["lipstick"]],"1f485":["💅",["nail_care"]],"1f486":["💆",["massage"]],"1f487":["💇",["haircut"]],"1f488":["💈",["barber"]],"1f489":["💉",["syringe"]],"1f48a":["💊",["pill"]],"1f48b":["💋",["kiss"]],"1f48c":["💌",["love_letter"]],"1f48d":["💍",["ring"]],"1f48e":["💎",["gem"]],"1f48f":["💏",["couplekiss"]],"1f490":["💐",["bouquet"]],"1f491":["💑",["couple_with_heart"]],"1f492":["💒",["wedding"]],"1f493":["💓",["heartbeat"]],"1f494":["💔",["broken_heart"],"10&&s<480}$("head").append(''),n||(n=(navigator.language||"").toLowerCase(),n=Config.I18n.aliases[n]||n);for(var r=0;r").appendTo("body").on("load",function(){i.i18n_ng=!0,o()}).attr("src","vendor/angular/i18n/angular-locale_"+Config.I18n.locale+".js")})})}(),function(){function e(){t||safeConfirm({type:"WEBOGRAM_UPDATED_RELOAD",message:"A new version of Webogram is downloaded. Launch it?"},function(e){e?window.location.reload():t=!0})}if(window.safeConfirm=function(e,t){"string"==typeof e&&(e={message:e});var n=!1;try{n=confirm(e.message)}catch(a){n=!0}setTimeout(function(){t(n)},10)},(navigator.serviceWorker||window.applicationCache)&&!Config.Modes.packed&&window.addEventListener){var t=!1;if(navigator.serviceWorker)navigator.serviceWorker.register("service_worker.js").then(function(t){console.log("Offline worker registered"),t.addEventListener("updatefound",function(){var t=this.installing;t.addEventListener("statechange",function(){switch(t.state){case"installed":navigator.serviceWorker.controller&&e();break;case"redundant":console.error("The installing service worker became redundant.")}})})});else{var n=window.applicationCache,a=!1,i=function(e){clearTimeout(a),a=setTimeout(function(){try{n.update()}catch(e){console.log("appCache.update: "+e)}},e||3e5)};i(3e3),window.addEventListener("load",function(){n.addEventListener("updateready",function(){n.status==n.UPDATEREADY&&e()},!1),n.addEventListener("noupdate",function(){i()},!1),n.addEventListener("error",function(){i()},!1)})}}}(),function(e,t,n){"use strict";var a,i,o,s,r,l,c,d,u,p,m,g,h,f,_,v,y,b,w,k,$,S,C,M,x,I,A,E,T,D,P;C={paneClass:"nano-pane",sliderClass:"nano-slider",contentClass:"nano-content",iOSNativeScrolling:!1,preventPageScrolling:!1,disableResize:!1,alwaysVisible:!1,flashDelay:1500,sliderMinHeight:20,sliderMaxHeight:null,documentContext:null,windowContext:null},b="scrollbar",y="scroll",u="mousedown",p="mouseenter",m="mousemove",h="mousewheel",g="mouseup",v="resize",r="drag",l="enter",k="up",_="panedown",o="DOMMouseScroll",s="down",$="wheel",c="keydown",d="keyup",w="touchmove",a="Microsoft Internet Explorer"===t.navigator.appName&&/msie 7./i.test(t.navigator.appVersion)&&t.ActiveXObject,i=null,A=t.requestAnimationFrame,S=t.cancelAnimationFrame,T=n.createElement("div").style,P=function(){var e,t,n,a,i,o;for(a=["t","webkitT","MozT","msT","OT"],e=i=0,o=a.length;i23)},f=function(){function c(a,o){this.el=a,this.options=o,i||(i=M()),this.$el=e(this.el),this.doc=e(this.options.documentContext||n),this.win=e(this.options.windowContext||t),this.body=this.doc.find("body"),this.$content=this.$el.children("."+o.contentClass),this.$content.attr("tabindex",this.options.tabIndex||0),this.content=this.$content[0],this.previousPosition=0,this.options.iOSNativeScrolling&&(null!=this.el.style.WebkitOverflowScrolling||navigator.userAgent.match(/mobi.+Gecko/i))?this.nativeScrolling():this.generate(),this.createEvents(),this.addEvents(),this.reset()}return c.prototype.preventScrolling=function(e,t){if(this.isActive)if(e.type===o)(t===s&&e.originalEvent.detail>0||t===k&&e.originalEvent.detail<0)&&e.preventDefault();else if(e.type===h){if(!e.originalEvent||!e.originalEvent.wheelDelta)return;(t===s&&e.originalEvent.wheelDelta<0||t===k&&e.originalEvent.wheelDelta>0)&&e.preventDefault()}},c.prototype.nativeScrolling=function(){this.$content.css({WebkitOverflowScrolling:"touch"}),this.iOSNativeScrolling=!0,this.isActive=!0},c.prototype.updateScrollValues=function(){var e,t;e=this.content,this.maxScrollTop=e.scrollHeight-e.clientHeight,this.prevScrollTop=this.contentScrollTop||0,this.contentScrollTop=e.scrollTop,t=this.contentScrollTop>this.previousPosition?"down":this.contentScrollTop=e.maxScrollTop&&e.prevScrollTop!==e.maxScrollTop?e.$el.trigger("scrollend"):0===e.contentScrollTop&&0!==e.prevScrollTop&&e.$el.trigger("scrolltop"),!1}}(this),up:function(e){return function(t){return e.isBeingDragged=!1,e.pane.removeClass("active"),e.doc.unbind(m,e.events[r]).unbind(g,e.events[k]),e.body.unbind(p,e.events[l]),!1}}(this),resize:function(e){return function(t){e.reset()}}(this),panedown:function(e){return function(t){return e.sliderY=(t.offsetY||t.originalEvent.layerY)-.5*e.sliderHeight,e.scroll(),e.events.down(t),!1}}(this),scroll:function(e){return function(t){e.updateScrollValues(),e.isBeingDragged||(e.iOSNativeScrolling||(e.sliderY=e.sliderTop,e.setOnScrollStyles()),null!=t&&(e.contentScrollTop>=e.maxScrollTop?(e.options.preventPageScrolling&&e.preventScrolling(t,s),e.prevScrollTop!==e.maxScrollTop&&e.$el.trigger("scrollend")):0===e.contentScrollTop&&(e.options.preventPageScrolling&&e.preventScrolling(t,k),0!==e.prevScrollTop&&e.$el.trigger("scrolltop"))))}}(this),wheel:function(e){return function(t){var n;if(null!=t)return n=t.delta||t.wheelDelta||t.originalEvent&&t.originalEvent.wheelDelta||-t.detail||t.originalEvent&&-t.originalEvent.detail,n&&(e.sliderY+=-n/3),e.scroll(),!1}}(this),enter:function(e){return function(t){var n;if(e.isBeingDragged)return 1!==(t.buttons||t.which)?(n=e.events)[k].apply(n,arguments):void 0}}(this)}},c.prototype.addEvents=function(){var e;this.removeEvents(),e=this.events,this.options.disableResize||this.win.bind(v,e[v]),this.iOSNativeScrolling||(this.slider.bind(u,e[s]),this.pane.bind(u,e[_]).bind(""+h+" "+o,e[$])),this.$content.bind(""+y+" "+h+" "+o+" "+w,e[y])},c.prototype.removeEvents=function(){var e;e=this.events,this.win.unbind(v,e[v]),this.iOSNativeScrolling||(this.slider.unbind(),this.pane.unbind()),this.$content.unbind(""+y+" "+h+" "+o+" "+w,e[y])},c.prototype.generate=function(){var e,n,a,o,s,r,l;return o=this.options,r=o.paneClass,l=o.sliderClass,e=o.contentClass,(s=this.$el.children("."+r)).length||s.children("."+l).length||this.$el.append('
'),this.pane=this.$el.children("."+r),this.slider=this.pane.find("."+l),0===i&&I()?(a=t.getComputedStyle(this.content,null).getPropertyValue("padding-right").replace(/[^0-9.]+/g,""),n={right:-14,paddingRight:+a+14}):i&&(n={right:-i},this.$el.addClass("has-scrollbar")),null!=n&&this.$content.css(n),this},c.prototype.restore=function(){this.stopped=!1,this.iOSNativeScrolling||this.pane.show(),this.addEvents()},c.prototype.reset=function(){var e,t,n,o,s,r,l,c,d,u,p,m;return this.iOSNativeScrolling?void(this.contentHeight=this.content.scrollHeight):(this.$el.find("."+this.options.paneClass).length||this.generate().stop(),this.stopped&&this.restore(),e=this.content,o=e.style,s=o.overflowY,a&&this.$content.css({height:this.$content.height()}),t=e.scrollHeight+i,u=parseInt(this.$el.css("max-height"),10),u>0&&(this.$el.height(""),this.$el.height(e.scrollHeight>u?u:e.scrollHeight)),l=this.pane.outerHeight(!1),d=parseInt(this.pane.css("top"),10),r=parseInt(this.pane.css("bottom"),10),c=l+d+r,m=Math.round(c/t*c),mthis.options.sliderMaxHeight&&(m=this.options.sliderMaxHeight),s===y&&o.overflowX!==y&&(m+=i),this.maxSliderTop=c-m,this.contentHeight=t,this.paneHeight=l,this.paneOuterHeight=c,this.sliderHeight=m,this.paneTop=d,this.slider.height(m),this.events.scroll(),this.pane.show(),this.isActive=!0,e.scrollHeight===e.clientHeight||this.pane.outerHeight(!0)>=e.scrollHeight&&s!==y?(this.pane.hide(),this.isActive=!1):this.el.clientHeight===e.scrollHeight&&s===y?this.slider.hide():this.slider.show(),this.$el.toggleClass("active-scrollbar",this.isActive),this.pane.css({opacity:this.options.alwaysVisible?1:"",visibility:this.options.alwaysVisible?"visible":""}),n=this.$content.css("position"),"static"!==n&&"relative"!==n||(p=parseInt(this.$content.css("right"),10),p&&this.$content.css({right:"",marginRight:p})),this)},c.prototype.scroll=function(){if(this.isActive)return this.sliderY=Math.max(0,this.sliderY), -this.sliderY=Math.min(this.maxSliderTop,this.sliderY),this.$content.scrollTop(this.maxScrollTop*this.sliderY/this.maxSliderTop),this.iOSNativeScrolling||(this.updateScrollValues(),this.setOnScrollStyles()),this},c.prototype.scrollBottom=function(e){if(this.isActive)return this.$content.scrollTop(this.contentHeight-this.$content.height()-e).trigger(h),this.stop().restore(),this},c.prototype.scrollTop=function(e){if(this.isActive)return this.$content.scrollTop(+e).trigger(h),this.stop().restore(),this},c.prototype.scrollTo=function(e){if(this.isActive)return this.scrollTop(this.$el.find(e).get(0).offsetTop),this},c.prototype.stop=function(){return S&&this.scrollRAF&&(S(this.scrollRAF),this.scrollRAF=null),this.stopped=!0,this.removeEvents(),this.iOSNativeScrolling||this.pane.hide(),this},c.prototype.destroy=function(){return this.stopped||this.stop(),!this.iOSNativeScrolling&&this.pane.length&&this.pane.remove(),a&&this.$content.height(""),this.$content.removeAttr("tabindex"),this.$el.hasClass("has-scrollbar")&&(this.$el.removeClass("has-scrollbar"),this.$content.css({right:""})),this},c.prototype.flash=function(){if(!this.iOSNativeScrolling&&this.isActive)return this.reset(),this.pane.addClass("flashed"),setTimeout(function(e){return function(){e.pane.removeClass("flashed")}}(this),this.options.flashDelay),this},c}(),e.fn.nanoScroller=function(t){return this.each(function(){var n,a;if((a=this.nanoscroller)||(n=e.extend({},C,t),this.nanoscroller=a=new f(this,n)),t&&"object"==typeof t){if(e.extend(a.options,t),null!=t.scrollBottom)return a.scrollBottom(t.scrollBottom);if(null!=t.scrollTop)return a.scrollTop(t.scrollTop);if(t.scrollTo)return a.scrollTo(t.scrollTo);if("bottom"===t.scroll)return a.scrollBottom(0);if("top"===t.scroll)return a.scrollTop(0);if(t.scroll&&t.scroll instanceof e)return a.scrollTo(t.scroll);if(t.stop)return a.stop();if(t.destroy)return a.destroy();if(t.flash)return a.flash()}return a.reset()})},e.fn.nanoScroller.Constructor=f}(jQuery,window,document),function(e){"use strict";function t(e,t){return t=t||Error,function(){var n,a,i=2,o=arguments,s=o[0],r="["+(e?e+":":"")+s+"] ",l=o[1];for(r+=l.replace(/\{\d+\}/g,function(e){var t=+e.slice(1,-1),n=t+i;return n=0&&(t-1 in e||e instanceof Array)||"function"==typeof e.item)}function a(e,t,i){var o,s;if(e)if(S(e))for(o in e)"prototype"==o||"length"==o||"name"==o||e.hasOwnProperty&&!e.hasOwnProperty(o)||t.call(i,e[o],o,e);else if(Ya(e)||n(e)){var r="object"!=typeof e;for(o=0,s=e.length;o=0&&e.splice(n,1),n}function B(e,t){function n(e,t){var n,a=t.$$hashKey;if(Ya(e))for(var o=0,s=e.length;o2?H(arguments,2):[];return!S(t)||t instanceof RegExp?t:n.length?function(){return arguments.length?t.apply(e,j(n,arguments,0)):t.apply(e,n)}:function(){return arguments.length?t.apply(e,arguments):t.call(e)}}function V(t,n){var a=n;return"string"==typeof t&&"$"===t.charAt(0)&&"$"===t.charAt(1)?a=void 0:M(n)?a="$WINDOW":n&&e.document===n?a="$DOCUMENT":x(n)&&(a="$SCOPE"),a}function z(e,t){if(!_(e))return k(t)||(t=t?2:null),JSON.stringify(e,V,t)}function W(e){return w(e)?JSON.parse(e):e}function G(e,t){e=e.replace(ti,"");var n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function K(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function Y(e,t,n){n=n?-1:1;var a=e.getTimezoneOffset(),i=G(t,a);return K(e,n*(i-a))}function Z(e){e=Ua(e).clone();try{e.empty()}catch(t){}var n=Ua("
").append(e).html();try{return e[0].nodeType===ri?Pa(n):n.match(/^(<[^>]+>)/)[1].replace(/^<([\w\-]+)/,function(e,t){return"<"+Pa(t)})}catch(t){return Pa(n)}}function X(e){try{return decodeURIComponent(e)}catch(t){}}function J(e){var t={};return a((e||"").split("&"),function(e){var n,a,i;e&&(a=e=e.replace(/\+/g,"%20"),n=e.indexOf("="),n!==-1&&(a=e.substring(0,n),i=e.substring(n+1)),a=X(a),v(a)&&(i=!v(i)||X(i),Da.call(t,a)?Ya(t[a])?t[a].push(i):t[a]=[t[a],i]:t[a]=i))}),t}function Q(e){var t=[];return a(e,function(e,n){Ya(e)?a(e,function(e){t.push(te(n,!0)+(e===!0?"":"="+te(e,!0)))}):t.push(te(n,!0)+(e===!0?"":"="+te(e,!0)))}),t.length?t.join("&"):""}function ee(e){return te(e,!0).replace(/%26/gi,"&").replace(/%3D/gi,"=").replace(/%2B/gi,"+")}function te(e,t){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%3B/gi,";").replace(/%20/g,t?"%20":"+")}function ne(e,t){var n,a,i=ni.length;for(a=0;a/,">"))}n=n||[],n.unshift(["$provide",function(e){e.value("$rootElement",t)}]),i.debugInfoEnabled&&n.push(["$compileProvider",function(e){e.debugInfoEnabled(!0)}]),n.unshift("ng");var o=at(n,i.strictDi);return o.invoke(["$rootScope","$rootElement","$compile","$injector",function(e,t,n,a){e.$apply(function(){t.data("$injector",a),n(t)(e)})}]),o},r=/^NG_ENABLE_DEBUG_INFO!/,l=/^NG_DEFER_BOOTSTRAP!/;return e&&r.test(e.name)&&(i.debugInfoEnabled=!0,e.name=e.name.replace(r,"")),e&&!l.test(e.name)?s():(e.name=e.name.replace(l,""),Ga.resumeBootstrap=function(e){return a(e,function(e){n.push(e)}),s()},void(S(Ga.resumeDeferredBootstrap)&&Ga.resumeDeferredBootstrap()))}function oe(){e.name="NG_ENABLE_DEBUG_INFO!"+e.name,e.location.reload()}function se(e){var t=Ga.element(e).injector();if(!t)throw Wa("test","no injector found for element argument to getTestability");return t.get("$$testability")}function re(e,t){return t=t||"_",e.replace(ai,function(e,n){return(n?t:"")+e.toLowerCase()})}function le(){var t;if(!ii){var n=ei();Ba=_(n)?e.jQuery:n?e[n]:void 0,Ba&&Ba.fn.on?(Ua=Ba,c(Ba.fn,{scope:Mi.scope,isolateScope:Mi.isolateScope,controller:Mi.controller,injector:Mi.injector,inheritedData:Mi.inheritedData}),t=Ba.cleanData,Ba.cleanData=function(e){for(var n,a,i=0;null!=(a=e[i]);i++)n=Ba._data(a,"events"),n&&n.$destroy&&Ba(a).triggerHandler("$destroy");t(e)}):Ua=Ae,Ga.element=Ua,ii=!0}}function ce(e,t,n){if(!e)throw Wa("areq","Argument '{0}' is {1}",t||"?",n||"required");return e}function de(e,t,n){return n&&Ya(e)&&(e=e[e.length-1]),ce(S(e),t,"not a function, got "+(e&&"object"==typeof e?e.constructor.name||"Object":typeof e)),e}function ue(e,t){if("hasOwnProperty"===e)throw Wa("badname","hasOwnProperty is not a valid {0} name",t)}function pe(e,t,n){if(!t)return e;for(var a,i=t.split("."),o=e,s=i.length,r=0;r=0)return"...";t.push(n)}return n})}function ve(e){return"function"==typeof e?e.toString().replace(/ \{[\s\S]*$/,""):_(e)?"undefined":"string"!=typeof e?_e(e):e}function ye(n){c(n,{bootstrap:ie,copy:B,extend:c,merge:d,equals:L,element:Ua,forEach:a,injector:at,noop:m,bind:q,toJson:z,fromJson:W,identity:g,isUndefined:_,isDefined:v,isString:w,isFunction:S,isObject:y,isNumber:k,isElement:N,isArray:Ya,version:ui,isDate:$,lowercase:Pa,uppercase:Fa,callbacks:{counter:0},getTestability:se,$$minErr:t,$$csp:Qa,reloadWithDebugInfo:oe}),(La=he(e))("ng",["ngLocale"],["$provide",function(e){e.provider({$$sanitizeUri:Cn}),e.provider("$compile",gt).directive({a:Fo,input:Qo,textarea:Qo,form:Bo,script:Ks,select:Xs,style:Qs,option:Js,ngBind:ns,ngBindHtml:is,ngBindTemplate:as,ngClass:ss,ngClassEven:ls,ngClassOdd:rs,ngCloak:cs,ngController:ds,ngForm:Lo,ngHide:js,ngIf:ms,ngInclude:gs,ngInit:fs,ngNonBindable:Ds,ngPluralize:Rs,ngRepeat:Os,ngShow:Ls,ngStyle:Hs,ngSwitch:qs,ngSwitchWhen:Vs,ngSwitchDefault:zs,ngOptions:Ns,ngTransclude:Gs,ngModel:As,ngList:_s,ngChange:os,pattern:tr,ngPattern:tr,required:er,ngRequired:er,minlength:ar,ngMinlength:ar,maxlength:nr,ngMaxlength:nr,ngValue:ts,ngModelOptions:Ts}).directive({ngInclude:hs}).directive(No).directive(us),e.provider({$anchorScroll:it,$animate:Hi,$animateCss:zi,$$animateJs:Li,$$animateQueue:ji,$$AnimateRunner:Vi,$$animateAsyncRun:qi,$browser:dt,$cacheFactory:ut,$controller:bt,$document:wt,$exceptionHandler:kt,$filter:Bn,$$forceReflow:Xi,$interpolate:Rt,$interval:Ot,$http:Dt,$httpParamSerializer:St,$httpParamSerializerJQLike:Ct,$httpBackend:Ft,$xhrFactory:Pt,$location:Jt,$log:Qt,$parse:yn,$rootScope:Sn,$q:bn,$$q:wn,$sce:An,$sceDelegate:In,$sniffer:En,$templateCache:pt,$templateRequest:Tn,$$testability:Dn,$timeout:Pn,$window:Rn,$$rAF:$n,$$jqLite:Ze,$$HashMap:Ei,$$cookieReader:Un})}])}function be(){return++mi}function we(e){return e.replace(fi,function(e,t,n,a){return a?n.toUpperCase():n}).replace(_i,"Moz$1")}function ke(e){return!wi.test(e)}function $e(e){var t=e.nodeType;return t===oi||!t||t===ci}function Se(e){for(var t in pi[e.ng339])return!0;return!1}function Ce(e){for(var t=0,n=e.length;t")+o[2],s=o[0];s--;)n=n.lastChild;l=j(l,n.childNodes),n=r.firstChild,n.textContent=""}return r.textContent="",r.innerHTML="",a(l,function(e){r.appendChild(e)}),r}function xe(t,n){n=n||e.document;var a;return(a=bi.exec(t))?[n.createElement(a[1])]:(a=Me(t,n))?a.childNodes:[]}function Ie(e,t){var n=e.parentNode;n&&n.replaceChild(t,e),t.appendChild(e)}function Ae(e){if(e instanceof Ae)return e;var t;if(w(e)&&(e=Xa(e),t=!0),!(this instanceof Ae)){if(t&&"<"!=e.charAt(0))throw yi("nosel","Looking up elements via selectors is not supported by jqLite! See: http://docs.angularjs.org/api/angular.element");return new Ae(e)}t?Be(this,xe(e)):Be(this,e)}function Ee(e){return e.cloneNode(!0)}function Te(e,t){if(t||Pe(e),e.querySelectorAll)for(var n=e.querySelectorAll("*"),a=0,i=n.length;a0||(hi(e,t,r),delete s[t])};a(t.split(" "),function(e){l(e),vi[e]&&l(vi[e])})}else for(t in s)"$destroy"!==t&&hi(e,t,r),delete s[t]}function Pe(e,t){var n=e.ng339,a=n&&pi[n];if(a){if(t)return void delete a.data[t];a.handle&&(a.events.$destroy&&a.handle({},"$destroy"),De(e)),delete pi[n],e.ng339=void 0}}function Fe(e,t){var n=e.ng339,a=n&&pi[n];return t&&!a&&(e.ng339=n=be(),a=pi[n]={events:{},data:{},handle:void 0}),a}function Ne(e,t,n){if($e(e)){var a=v(n),i=!a&&t&&!y(t),o=!t,s=Fe(e,!i),r=s&&s.data;if(a)r[t]=n;else{if(o)return r;if(i)return r&&r[t];c(r,t)}}}function Re(e,t){return!!e.getAttribute&&(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").indexOf(" "+t+" ")>-1}function Oe(e,t){t&&e.setAttribute&&a(t.split(" "),function(t){e.setAttribute("class",Xa((" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ").replace(" "+Xa(t)+" "," ")))})}function Ue(e,t){if(t&&e.setAttribute){var n=(" "+(e.getAttribute("class")||"")+" ").replace(/[\n\t]/g," ");a(t.split(" "),function(e){e=Xa(e),n.indexOf(" "+e+" ")===-1&&(n+=e+" ")}),e.setAttribute("class",Xa(n))}}function Be(e,t){if(t)if(t.nodeType)e[e.length++]=t;else{var n=t.length;if("number"==typeof n&&t.window!==t){if(n)for(var a=0;a1&&(i=fe(i));for(var l=0;ld&&this.remove(m.key),t}},get:function(e){if(d";var a=be.firstChild.attributes,i=a[0];a.removeNamedItem(i.name),i.value=n,e.attributes.setNamedItem(i)}function R(e,t){try{e.addClass(t)}catch(n){}}function B(t,n,a,i,o){t instanceof Ua||(t=Ua(t));for(var s=/\S+/,r=0,l=t.length;r").append(t).html())):n?Mi.clone.call(t):t,s)for(var c in s)l.data("$"+c+"Controller",s[c].instance);return B.$$addScopeInfo(l,e),n&&n(l,e),d&&d(e,l,l,i),l}}function j(e){var t=e&&e[0];return t&&"foreignobject"!==O(t)&&Va.call(t).match(/SVG/)?"svg":"html"}function V(e,t,n,a,i,o){ -function s(e,n,a,i){var o,s,r,l,c,d,u,p,h;if(m){var f=n.length;for(h=new Array(f),c=0;c0)}else a.push(e);return Ua(a)}function K(e,t,n){return function(a,i,o,s,r){return i=G(i[0],t,n),e(a,i,o,s,r)}}function Y(e,t,n,a,i,o){var s;return e?B(t,n,a,i,o):function(){return s||(s=B(t,n,a,i,o),t=n=o=null),s.apply(this,arguments)}}function X(e,t,n,o,s,r,l,d,u){function p(e,t,n,a){e&&(n&&(e=K(e,n,a)),e.require=g.require,e.directiveName=h,(C===g||g.$$isolateScope)&&(e=he(e,{isolateScope:!0})),l.push(e)),t&&(n&&(t=K(t,n,a)),t.require=g.require,t.directiveName=h,(C===g||g.$$isolateScope)&&(t=he(t,{isolateScope:!0})),d.push(t))}function m(e,o,s,r,u){function p(e,t,n,a){var i;if(x(e)||(a=n,n=t,t=e,e=void 0),T&&(i=b),n||(n=T?I.parent():I),!a)return u(e,t,i,n,U);var o=u.$$slots[a];if(o)return o(e,t,i,n,U);if(_(o))throw Wi("noslot",'No parent directive that requires a transclusion with slot name "{0}". Element: {1}',a,Z(I))}var m,g,h,f,v,b,w,I,A,E;t===s?(A=n,I=n.$$element):(I=Ua(s),A=new F(I,n)),v=o,C?f=o.$new(!0):k&&(v=o.$parent),u&&(w=p,w.$$boundTransclude=u,w.isSlotFilled=function(e){return!!u.$$slots[e]}),$&&(b=Q(I,A,w,$,f,o,C)),C&&(B.$$addScopeInfo(I,f,!0,!(M&&(M===C||M===C.$$originalDirective))),B.$$addScopeClass(I,!0),f.$$isolateBindings=C.$$isolateBindings,E=_e(o,A,f,f.$$isolateBindings,C),E.removeWatches&&f.$on("$destroy",E.removeWatches));for(var D in b){var P=$[D],N=b[D],R=P.$$bindings.bindToController;N.identifier&&R?N.bindingInfo=_e(v,A,N.instance,R,P):N.bindingInfo={};var O=N();O!==N.instance&&(N.instance=O,I.data("$"+P.name+"Controller",O),N.bindingInfo.removeWatches&&N.bindingInfo.removeWatches(),N.bindingInfo=_e(v,A,N.instance,R,P))}for(a($,function(e,t){var n=e.require;e.bindToController&&!Ya(n)&&y(n)&&c(b[t].instance,J(t,n,I,b))}),a(b,function(e){var t=e.instance;if(S(t.$onChanges))try{t.$onChanges(e.bindingInfo.initialChanges)}catch(n){i(n)}if(S(t.$onInit))try{t.$onInit()}catch(n){i(n)}S(t.$onDestroy)&&v.$on("$destroy",function(){t.$onDestroy()})}),m=0,g=l.length;m=0;m--)h=d[m],fe(h,h.isolateScope?f:o,I,A,h.require&&J(h.directiveName,h.require,I,b),w);a(b,function(e){var t=e.instance;S(t.$postLink)&&t.$postLink()})}u=u||{};for(var g,h,f,v,b,w=-Number.MAX_VALUE,k=u.newScopeDirective,$=u.controllerDirectives,C=u.newIsolateScopeDirective,M=u.templateDirective,I=u.nonTlbTranscludeDirective,A=!1,E=!1,T=u.hasElementTranscludeDirective,D=n.$$element=Ua(t),P=r,N=o,R=!1,U=!1,L=0,j=e.length;Lg.priority)break;if((b=g.scope)&&(g.templateUrl||(y(b)?(se("new/isolated scope",C||k,g,D),C=g):se("new/isolated scope",C,g,D)),k=k||g),h=g.name,!R&&(g.replace&&(g.templateUrl||g.template)||g.transclude&&!g.$$tlb)){for(var X,te=L+1;X=e[te++];)if(X.transclude&&!X.$$tlb||X.replace&&(X.templateUrl||X.template)){U=!0;break}R=!0}if(!g.templateUrl&&g.controller&&(b=g.controller,$=$||ge(),se("'"+h+"' controller",$[h],g,D),$[h]=g),b=g.transclude)if(A=!0,g.$$tlb||(se("transclusion",I,g,D),I=g),"element"==b)T=!0,w=g.priority,f=D,D=n.$$element=Ua(B.$$createComment(h,n[h])),t=D[0],me(s,H(f),t),f[0].$$parentNode=f[0].parentNode,N=Y(U,f,o,w,P&&P.name,{nonTlbTranscludeDirective:I});else{var ne=ge();if(f=Ua(Ee(t)).contents(),y(b)){f=[];var oe=ge(),re=ge();a(b,function(e,t){var n="?"===e.charAt(0);e=n?e.substring(1):e,oe[e]=t,ne[t]=null,re[t]=n}),a(D.contents(),function(e){var t=oe[ft(O(e))];t?(re[t]=!0,ne[t]=ne[t]||[],ne[t].push(e)):f.push(e)}),a(re,function(e,t){if(!e)throw Wi("reqslot","Required transclusion slot `{0}` was not filled.",t)});for(var le in ne)ne[le]&&(ne[le]=Y(U,ne[le],o))}D.empty(),N=Y(U,f,o,void 0,void 0,{needsNewScope:g.$$isolateScope||g.$$newScope}),N.$$slots=ne}if(g.template)if(E=!0,se("template",M,g,D),M=g,b=S(g.template)?g.template(D,n):g.template,b=Ce(b),g.replace){if(P=g,f=ke(b)?[]:vt(de(g.templateNamespace,Xa(b))),t=f[0],1!=f.length||t.nodeType!==oi)throw Wi("tplrt","Template for directive '{0}' must have exactly one root element. {1}",h,"");me(s,D,t);var ce={$attr:{}},ue=W(t,[],ce),pe=e.splice(L+1,e.length-(L+1));(C||k)&&ee(ue,C,k),e=e.concat(ue).concat(pe),ae(n,ce),j=e.length}else D.html(b);if(g.templateUrl)E=!0,se("template",M,g,D),M=g,g.replace&&(P=g),m=ie(e.splice(L,e.length-L),D,n,s,A&&N,l,d,{controllerDirectives:$,newScopeDirective:k!==g&&k,newIsolateScopeDirective:C,templateDirective:M,nonTlbTranscludeDirective:I}),j=e.length;else if(g.compile)try{v=g.compile(D,n,N);var ve=g.$$originalDirective||g;S(v)?p(null,q(ve,v),V,z):v&&p(q(ve,v.pre),q(ve,v.post),V,z)}catch(ye){i(ye,Z(D))}g.terminal&&(m.terminal=!0,w=Math.max(w,g.priority))}return m.scope=k&&k.scope===!0,m.transcludeOnThisElement=A,m.templateOnThisElement=E,m.transclude=N,u.hasElementTranscludeDirective=T,m}function J(e,t,n,i){var o;if(w(t)){var s=t.match($),r=t.substring(s[0].length),l=s[1]||s[3],c="?"===s[2];if("^^"===l?n=n.parent():(o=i&&i[r],o=o&&o.instance),!o){var d="$"+r+"Controller";o=l?n.inheritedData(d):n.data(d)}if(!o&&!c)throw Wi("ctreq","Controller '{0}', required by directive '{1}', can't be found!",r,e)}else if(Ya(t)){o=[];for(var u=0,p=t.length;ug.priority)&&g.restrict.indexOf(a)!=-1){if(l&&(g=p(g,{$$start:l,$$end:c})),!g.$$bindings){var b=g.$$bindings=s(g,g.name);y(b.isolateScope)&&(g.$$isolateBindings=b.isolateScope)}e.push(g),m=g}}catch(w){i(w)}return m}function ne(e){if(d.hasOwnProperty(e))for(var n,a=t.get(e+u),i=0,o=a.length;i"+n+"",a.childNodes[0].childNodes;default:return n}}function ue(e,t){if("srcdoc"==t)return M.HTML;var n=O(e);return"xlinkHref"==t||"form"==n&&"action"==t||"img"!=n&&("src"==t||"ngSrc"==t)?M.RESOURCE_URL:void 0}function pe(e,t,a,i,o){var s=ue(e,i);o=k[i]||o;var r=n(a,!0,s,o);if(r){if("multiple"===i&&"select"===O(e))throw Wi("selmulti","Binding to the 'multiple' attribute is not supported. Element: {0}",Z(e));t.push({priority:100,compile:function(){return{pre:function(e,t,l){var c=l.$$observers||(l.$$observers=ge());if(C.test(i))throw Wi("nodomevents","Interpolations for HTML DOM event attributes are disallowed. Please use the ng- versions (such as ng-click instead of onclick) instead.");var d=l[i];d!==a&&(r=d&&n(d,!0,s,o),a=d),r&&(l[i]=r(e),(c[i]||(c[i]=[])).$$inter=!0,(l.$$observers&&l.$$observers[i].$$scope||e).$watch(r,function(e,t){"class"===i&&e!=t?l.$updateClass(e,t):l.$set(i,e)}))}}}})}}function me(t,n,a){var i,o,s=n[0],r=n.length,l=s.parentNode;if(t)for(i=0,o=t.length;i0&&E.addClass(this.$$element,e)},$removeClass:function(e){e&&e.length>0&&E.removeClass(this.$$element,e)},$updateClass:function(e,t){var n=_t(e,t);n&&n.length&&E.addClass(this.$$element,n);var a=_t(t,e);a&&a.length&&E.removeClass(this.$$element,a)},$set:function(e,t,n,o){var s,r=this.$$element[0],l=ze(r,e),c=We(e),d=e;if(l?(this.$$element.prop(e,t),o=l):c&&(this[c]=t,d=c),this[e]=t,o?this.$attr[e]=o:(o=this.$attr[e],o||(this.$attr[e]=o=re(e,"-"))),s=O(this.$$element),"a"===s&&("href"===e||"xlinkHref"===e)||"img"===s&&"src"===e)this[e]=t=D(t,"src"===e);else if("img"===s&&"srcset"===e&&v(t)){for(var u="",p=Xa(t),m=/(\s+\d+x\s*,|\s+\d+w\s*,|\s+,|,\s+)/,g=/\s/.test(p)?m:/(,)/,h=p.split(g),f=Math.floor(h.length/2),y=0;y0?" ":"")+s}return n}function vt(e){e=Ua(e);var t=e.length;if(t<=1)return e;for(;t--;){var n=e[t];n.nodeType===li&&Ha.call(e,t,1)}return e}function yt(e,t){if(t&&w(t))return t;if(w(e)){var n=Zi.exec(e);if(n)return n[3]}}function bt(){var e={},n=!1;this.has=function(t){return e.hasOwnProperty(t)},this.register=function(t,n){ue(t,"controller"),y(t)?c(e,t):e[t]=n},this.allowGlobals=function(){n=!0},this.$get=["$injector","$window",function(a,i){function o(e,n,a,i){if(!e||!y(e.$scope))throw t("$controller")("noscp","Cannot export controller '{0}' as '{1}'! No $scope object provided via `locals`.",i,n);e.$scope[n]=a}return function(t,s,r,l){var d,u,p,m;if(r=r===!0,l&&w(l)&&(m=l),w(t)){if(u=t.match(Zi),!u)throw Yi("ctrlfmt","Badly formed controller string '{0}'. Must match `__name__ as __id__` or `__name__`.",t);p=u[1],m=m||u[3],t=e.hasOwnProperty(p)?e[p]:pe(s.$scope,p,!0)||(n?pe(i,p,!0):void 0),de(t,p,!0)}if(r){var g=(Ya(t)?t[t.length-1]:t).prototype;d=Object.create(g||null),m&&o(s,m,d,p||t.name);var h;return h=c(function(){var e=a.invoke(t,d,s,p);return e!==d&&(y(e)||S(e))&&(d=e,m&&o(s,m,d,p||t.name)),d},{instance:d,identifier:m})}return d=a.instantiate(t,s,p),m&&o(s,m,d,p||t.name),d}}]}function wt(){this.$get=["$window",function(e){return Ua(e.document)}]}function kt(){this.$get=["$log",function(e){return function(t,n){e.error.apply(e,arguments)}}]}function $t(e){return y(e)?$(e)?e.toISOString():z(e):e}function St(){this.$get=function(){return function(e){if(!e)return"";var t=[];return i(e,function(e,n){null===e||_(e)||(Ya(e)?a(e,function(e){t.push(te(n)+"="+te($t(e)))}):t.push(te(n)+"="+te($t(e))))}),t.join("&")}}}function Ct(){this.$get=function(){return function(e){function t(e,o,s){null===e||_(e)||(Ya(e)?a(e,function(e,n){t(e,o+"["+(y(e)?n:"")+"]")}):y(e)&&!$(e)?i(e,function(e,n){t(e,o+(s?"":"[")+n+(s?"":"]"))}):n.push(te(o)+"="+te($t(e))))}if(!e)return"";var n=[];return t(e,"",!0),n.join("&")}}}function Mt(e,t){if(w(e)){var n=e.replace(no,"").trim();if(n){var a=t("Content-Type");(a&&0===a.indexOf(Ji)||xt(n))&&(e=W(n))}}return e}function xt(e){var t=e.match(eo);return t&&to[t[0]].test(e)}function It(e){function t(e,t){e&&(i[e]=i[e]?i[e]+", "+t:t)}var n,i=ge();return w(e)?a(e.split("\n"),function(e){n=e.indexOf(":"),t(Pa(Xa(e.substr(0,n))),Xa(e.substr(n+1)))}):y(e)&&a(e,function(e,n){t(Pa(n),Xa(e))}),i}function At(e){var t;return function(n){if(t||(t=It(e)),n){var a=t[Pa(n)];return void 0===a&&(a=null),a}return t}}function Et(e,t,n,i){return S(i)?i(e,t,n):(a(i,function(a){e=a(e,t,n)}),e)}function Tt(e){return 200<=e&&e<300}function Dt(){var e=this.defaults={transformResponse:[Mt],transformRequest:[function(e){return!y(e)||I(e)||E(e)||A(e)?e:z(e)}],headers:{common:{Accept:"application/json, text/plain, */*"},post:fe(Qi),put:fe(Qi),patch:fe(Qi)},xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",paramSerializer:"$httpParamSerializer"},n=!1;this.useApplyAsync=function(e){return v(e)?(n=!!e,this):n};var i=!0;this.useLegacyPromiseExtensions=function(e){return v(e)?(i=!!e,this):i};var o=this.interceptors=[];this.$get=["$httpBackend","$$cookieReader","$cacheFactory","$rootScope","$q","$injector",function(s,r,l,d,u,p){function m(n){function o(e){var t=c({},e);return t.data=Et(e.data,e.headers,e.status,l.transformResponse),Tt(e.status)?t:u.reject(t)}function s(e,t){var n,i={};return a(e,function(e,a){S(e)?(n=e(t),null!=n&&(i[a]=n)):i[a]=e}),i}function r(t){var n,a,i,o=e.headers,r=c({},t.headers);o=c({},o.common,o[Pa(t.method)]);e:for(n in o){a=Pa(n);for(i in r)if(Pa(i)===a)continue e;r[n]=o[n]}return s(r,fe(t))}if(!y(n))throw t("$http")("badreq","Http request configuration must be an object. Received: {0}",n);if(!w(n.url))throw t("$http")("badreq","Http request configuration url must be a string. Received: {0}",n.url);var l=c({method:"get",transformRequest:e.transformRequest,transformResponse:e.transformResponse,paramSerializer:e.paramSerializer},n);l.headers=r(n),l.method=Fa(l.method),l.paramSerializer=w(l.paramSerializer)?p.get(l.paramSerializer):l.paramSerializer;var d=function(t){var n=t.headers,i=Et(t.data,At(n),void 0,t.transformRequest);return _(i)&&a(n,function(e,t){"content-type"===Pa(t)&&delete n[t]}),_(t.withCredentials)&&!_(e.withCredentials)&&(t.withCredentials=e.withCredentials),f(t,i).then(o,o)},m=[d,void 0],g=u.when(l);for(a($,function(e){(e.request||e.requestError)&&m.unshift(e.request,e.requestError),(e.response||e.responseError)&&m.push(e.response,e.responseError)});m.length;){var h=m.shift(),v=m.shift();g=g.then(h,v)}return i?(g.success=function(e){return de(e,"fn"),g.then(function(t){e(t.data,t.status,t.headers,l)}),g},g.error=function(e){return de(e,"fn"),g.then(null,function(t){e(t.data,t.status,t.headers,l)}),g}):(g.success=io("success"),g.error=io("error")),g}function g(e){a(arguments,function(e){m[e]=function(t,n){return m(c({},n||{},{method:e,url:t}))}})}function h(e){a(arguments,function(e){m[e]=function(t,n,a){return m(c({},a||{},{method:e,url:t,data:n}))}})}function f(t,i){function o(e){if(e){var t={};return a(e,function(e,a){t[a]=function(t){function a(){e(t)}n?d.$applyAsync(a):d.$$phase?a():d.$apply(a)}}),t}}function l(e,t,a,i){function o(){c(t,e,a,i)}h&&(Tt(e)?h.put(C,[e,t,It(a),i]):h.remove(C)),n?d.$applyAsync(o):(o(),d.$$phase||d.$apply())}function c(e,n,a,i){n=n>=-1?n:0,(Tt(n)?w.resolve:w.reject)({data:e,status:n,headers:At(a),config:t,statusText:i})}function p(e){c(e.data,e.status,fe(e.headers()),e.statusText)}function g(){var e=m.pendingRequests.indexOf(t);e!==-1&&m.pendingRequests.splice(e,1)}var h,f,w=u.defer(),$=w.promise,S=t.headers,C=b(t.url,t.paramSerializer(t.params));if(m.pendingRequests.push(t),$.then(g,g),!t.cache&&!e.cache||t.cache===!1||"GET"!==t.method&&"JSONP"!==t.method||(h=y(t.cache)?t.cache:y(e.cache)?e.cache:k),h&&(f=h.get(C),v(f)?D(f)?f.then(p,p):Ya(f)?c(f[1],f[0],fe(f[2]),f[3]):c(f,200,{},"OK"):h.put(C,$)),_(f)){var M=Nn(t.url)?r()[t.xsrfCookieName||e.xsrfCookieName]:void 0;M&&(S[t.xsrfHeaderName||e.xsrfHeaderName]=M),s(t.method,C,i,l,S,t.timeout,t.withCredentials,t.responseType,o(t.eventHandlers),o(t.uploadEventHandlers))}return $}function b(e,t){return t.length>0&&(e+=(e.indexOf("?")==-1?"?":"&")+t),e}var k=l("$http");e.paramSerializer=w(e.paramSerializer)?p.get(e.paramSerializer):e.paramSerializer;var $=[];return a(o,function(e){$.unshift(w(e)?p.get(e):p.invoke(e))}),m.pendingRequests=[],g("get","delete","head","jsonp"),h("post","put","patch"),m.defaults=e,m}]}function Pt(){this.$get=function(){return function(){return new e.XMLHttpRequest}}}function Ft(){this.$get=["$browser","$window","$document","$xhrFactory",function(e,t,n,a){return Nt(e,a,e.defer,t.angular.callbacks,n[0])}]}function Nt(e,t,n,i,o){function s(e,t,n){var a=o.createElement("script"),s=null;return a.type="text/javascript",a.src=e,a.async=!0,s=function(e){hi(a,"load",s),hi(a,"error",s),o.body.removeChild(a),a=null;var r=-1,l="unknown";e&&("load"!==e.type||i[t].called||(e={type:"error"}),l=e.type,r="error"===e.type?404:200),n&&n(r,l)},gi(a,"load",s),gi(a,"error",s),o.body.appendChild(a),s}return function(o,r,l,c,d,u,p,g,h,f){function y(){k&&k(),$&&$.abort()}function b(t,a,i,o,s){v(M)&&n.cancel(M),k=$=null,t(a,i,o,s),e.$$completeOutstandingRequest(m)}if(e.$$incOutstandingRequestCount(),r=r||e.url(),"jsonp"==Pa(o)){var w="_"+(i.counter++).toString(36);i[w]=function(e){i[w].data=e,i[w].called=!0};var k=s(r.replace("JSON_CALLBACK","angular.callbacks."+w),w,function(e,t){b(c,e,i[w].data,"",t),i[w]=m})}else{var $=t(o,r);$.open(o,r,!0),a(d,function(e,t){v(e)&&$.setRequestHeader(t,e)}),$.onload=function(){var e=$.statusText||"",t="response"in $?$.response:$.responseText,n=1223===$.status?204:$.status;0===n&&(n=t?200:"file"==Fn(r).protocol?404:0),b(c,n,t,$.getAllResponseHeaders(),e)};var S=function(){b(c,-1,null,null,"")};if($.onerror=S,$.onabort=S,a(h,function(e,t){$.addEventListener(t,e)}),a(f,function(e,t){$.upload.addEventListener(t,e)}),p&&($.withCredentials=!0),g)try{$.responseType=g}catch(C){if("json"!==g)throw C}$.send(_(l)?null:l)}if(u>0)var M=n(y,u);else D(u)&&u.then(y)}}function Rt(){var e="{{",t="}}";this.startSymbol=function(t){return t?(e=t,this):e},this.endSymbol=function(e){return e?(t=e,this):t},this.$get=["$parse","$exceptionHandler","$sce",function(n,a,i){function o(e){return"\\\\\\"+e}function s(n){return n.replace(m,e).replace(g,t)}function r(e){if(null==e)return"";switch(typeof e){case"string":break;case"number":e=""+e;break;default:e=z(e)}return e}function l(e,t,n,a){var i;return i=e.$watch(function(e){return i(),a(e)},t,n)}function d(o,d,m,g){function f(e){try{return e=D(e),g&&!v(e)?e:r(e)}catch(t){a(oo.interr(o,t))}}if(!o.length||o.indexOf(e)===-1){var y;if(!d){var b=s(o);y=h(b),y.exp=o,y.expressions=[],y.$$watchDelegate=l}return y}g=!!g;for(var w,k,$,C=0,M=[],x=[],I=o.length,A=[],E=[];C1&&oo.throwNoconcat(o),!d||M.length){var T=function(e){for(var t=0,n=M.length;t4,p=u?H(arguments,4):[],m=t.setInterval,g=t.clearInterval,h=0,f=v(c)&&!c,_=(f?a:n).defer(),y=_.promise;return l=v(l)?l:0,y.$$intervalId=m(function(){f?i.defer(d):e.$evalAsync(d),_.notify(h++),l>0&&h>=l&&(_.resolve(h),g(y.$$intervalId),delete s[y.$$intervalId]),f||e.$apply()},r),s[y.$$intervalId]=_,y}var s={};return o.cancel=function(e){return!!(e&&e.$$intervalId in s)&&(s[e.$$intervalId].reject("canceled"),t.clearInterval(e.$$intervalId),delete s[e.$$intervalId],!0)},o}]}function Ut(e){for(var t=e.split("/"),n=t.length;n--;)t[n]=ee(t[n]);return t.join("/")}function Bt(e,t){var n=Fn(e);t.$$protocol=n.protocol,t.$$host=n.hostname,t.$$port=u(n.port)||ro[n.protocol]||null}function Lt(e,t){var n="/"!==e.charAt(0);n&&(e="/"+e);var a=Fn(e);t.$$path=decodeURIComponent(n&&"/"===a.pathname.charAt(0)?a.pathname.substring(1):a.pathname),t.$$search=J(a.search),t.$$hash=decodeURIComponent(a.hash),t.$$path&&"/"!=t.$$path.charAt(0)&&(t.$$path="/"+t.$$path)}function jt(e,t){return 0===e.lastIndexOf(t,0)}function Ht(e,t){if(jt(t,e))return t.substr(e.length)}function qt(e){var t=e.indexOf("#");return t==-1?e:e.substr(0,t)}function Vt(e){return e.replace(/(#.+)|#$/,"$1")}function zt(e){return e.substr(0,qt(e).lastIndexOf("/")+1)}function Wt(e){return e.substring(0,e.indexOf("/",e.indexOf("//")+2))}function Gt(e,t,n){this.$$html5=!0,n=n||"",Bt(e,this),this.$$parse=function(e){var n=Ht(t,e);if(!w(n))throw lo("ipthprfx",'Invalid url "{0}", missing path prefix "{1}".',e,t);Lt(n,this),this.$$path||(this.$$path="/"),this.$$compose()},this.$$compose=function(){var e=Q(this.$$search),n=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=Ut(this.$$path)+(e?"?"+e:"")+n,this.$$absUrl=t+this.$$url.substr(1)},this.$$parseLinkUrl=function(a,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,s,r;return v(o=Ht(e,a))?(s=o,r=v(o=Ht(n,o))?t+(Ht("/",o)||o):e+s):v(o=Ht(t,a))?r=t+o:t==a+"/"&&(r=t),r&&this.$$parse(r),!!r}}function Kt(e,t,n){Bt(e,this),this.$$parse=function(a){function i(e,t,n){var a,i=/^\/[A-Z]:(\/.*)/;return jt(t,n)&&(t=t.replace(n,"")),i.exec(t)?e:(a=i.exec(e),a?a[1]:e)}var o,s=Ht(e,a)||Ht(t,a);_(s)||"#"!==s.charAt(0)?this.$$html5?o=s:(o="",_(s)&&(e=a,this.replace())):(o=Ht(n,s),_(o)&&(o=s)),Lt(o,this),this.$$path=i(this.$$path,o,e),this.$$compose()},this.$$compose=function(){var t=Q(this.$$search),a=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=Ut(this.$$path)+(t?"?"+t:"")+a,this.$$absUrl=e+(this.$$url?n+this.$$url:"")},this.$$parseLinkUrl=function(t,n){return qt(e)==qt(t)&&(this.$$parse(t),!0)}}function Yt(e,t,n){this.$$html5=!0,Kt.apply(this,arguments),this.$$parseLinkUrl=function(a,i){if(i&&"#"===i[0])return this.hash(i.slice(1)),!0;var o,s;return e==qt(a)?o=a:(s=Ht(t,a))?o=e+n+s:t===a+"/"&&(o=t),o&&this.$$parse(o),!!o},this.$$compose=function(){var t=Q(this.$$search),a=this.$$hash?"#"+ee(this.$$hash):"";this.$$url=Ut(this.$$path)+(t?"?"+t:"")+a,this.$$absUrl=e+n+this.$$url}}function Zt(e){return function(){return this[e]}}function Xt(e,t){return function(n){return _(n)?this[e]:(this[e]=t(n),this.$$compose(),this)}}function Jt(){var e="",t={enabled:!1,requireBase:!0,rewriteLinks:!0};this.hashPrefix=function(t){return v(t)?(e=t,this):e},this.html5Mode=function(e){return T(e)?(t.enabled=e,this):y(e)?(T(e.enabled)&&(t.enabled=e.enabled),T(e.requireBase)&&(t.requireBase=e.requireBase),T(e.rewriteLinks)&&(t.rewriteLinks=e.rewriteLinks),this):t},this.$get=["$rootScope","$browser","$sniffer","$rootElement","$window",function(n,a,i,o,s){function r(e,t,n){var i=c.url(),o=c.$$state;try{a.url(e,t,n),c.$$state=a.state()}catch(s){throw c.url(i),c.$$state=o,s}}function l(e,t){n.$broadcast("$locationChangeSuccess",c.absUrl(),e,c.$$state,t)}var c,d,u,p=a.baseHref(),m=a.url();if(t.enabled){if(!p&&t.requireBase)throw lo("nobase","$location in HTML5 mode requires a tag to be present!");u=Wt(m)+(p||"/"),d=i.history?Gt:Yt}else u=qt(m),d=Kt;var g=zt(u);c=new d(u,g,"#"+e),c.$$parseLinkUrl(m,m),c.$$state=a.state();var h=/^\s*(javascript|mailto):/i;o.on("click",function(e){if(t.rewriteLinks&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&2!=e.which&&2!=e.button){for(var i=Ua(e.target);"a"!==O(i[0]);)if(i[0]===o[0]||!(i=i.parent())[0])return;var r=i.prop("href"),l=i.attr("href")||i.attr("xlink:href");y(r)&&"[object SVGAnimatedString]"===r.toString()&&(r=Fn(r.animVal).href),h.test(r)||!r||i.attr("target")||e.isDefaultPrevented()||c.$$parseLinkUrl(r,l)&&(e.preventDefault(),c.absUrl()!=a.url()&&(n.$apply(),s.angular["ff-684208-preventDefault"]=!0))}}),Vt(c.absUrl())!=Vt(m)&&a.url(c.absUrl(),!0);var f=!0;return a.onUrlChange(function(e,t){return _(Ht(g,e))?void(s.location.href=e):(n.$evalAsync(function(){var a,i=c.absUrl(),o=c.$$state;e=Vt(e),c.$$parse(e),c.$$state=t,a=n.$broadcast("$locationChangeStart",e,i,t,o).defaultPrevented,c.absUrl()===e&&(a?(c.$$parse(i),c.$$state=o,r(i,!1,o)):(f=!1,l(i,o)))}),void(n.$$phase||n.$digest()))}),n.$watch(function(){var e=Vt(a.url()),t=Vt(c.absUrl()),o=a.state(),s=c.$$replace,d=e!==t||c.$$html5&&i.history&&o!==c.$$state;(f||d)&&(f=!1,n.$evalAsync(function(){var t=c.absUrl(),a=n.$broadcast("$locationChangeStart",t,e,c.$$state,o).defaultPrevented;c.absUrl()===t&&(a?(c.$$parse(e),c.$$state=o):(d&&r(t,s,o===c.$$state?null:c.$$state),l(e,o)))})),c.$$replace=!1}),c}]}function Qt(){var e=!0,t=this;this.debugEnabled=function(t){return v(t)?(e=t,this):e},this.$get=["$window",function(n){function i(e){return e instanceof Error&&(e.stack?e=e.message&&e.stack.indexOf(e.message)===-1?"Error: "+e.message+"\n"+e.stack:e.stack:e.sourceURL&&(e=e.message+"\n"+e.sourceURL+":"+e.line)),e}function o(e){var t=n.console||{},o=t[e]||t.log||m,s=!1;try{s=!!o.apply}catch(r){}return s?function(){var e=[];return a(arguments,function(t){e.push(i(t))}),o.apply(t,e)}:function(e,t){o(e,null==t?"":t)}}return{log:o("log"),info:o("info"),warn:o("warn"),error:o("error"),debug:function(){var n=o("debug");return function(){e&&n.apply(t,arguments)}}()}}]}function en(e,t){if("__defineGetter__"===e||"__defineSetter__"===e||"__lookupGetter__"===e||"__lookupSetter__"===e||"__proto__"===e)throw uo("isecfld","Attempting to access a disallowed field in Angular expressions! Expression: {0}",t);return e}function tn(e){return e+""}function nn(e,t){if(e){if(e.constructor===e)throw uo("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e.window===e)throw uo("isecwindow","Referencing the Window in Angular expressions is disallowed! Expression: {0}",t);if(e.children&&(e.nodeName||e.prop&&e.attr&&e.find))throw uo("isecdom","Referencing DOM nodes in Angular expressions is disallowed! Expression: {0}",t); -if(e===Object)throw uo("isecobj","Referencing Object in Angular expressions is disallowed! Expression: {0}",t)}return e}function an(e,t){if(e){if(e.constructor===e)throw uo("isecfn","Referencing Function in Angular expressions is disallowed! Expression: {0}",t);if(e===po||e===mo||e===go)throw uo("isecff","Referencing call, apply or bind in Angular expressions is disallowed! Expression: {0}",t)}}function on(e,t){if(e&&(e===(0).constructor||e===(!1).constructor||e==="".constructor||e==={}.constructor||e===[].constructor||e===Function.constructor))throw uo("isecaf","Assigning to a constructor is disallowed! Expression: {0}",t)}function sn(e,t){return"undefined"!=typeof e?e:t}function rn(e,t){return"undefined"==typeof e?t:"undefined"==typeof t?e:e+t}function ln(e,t){var n=e(t);return!n.$stateful}function cn(e,t){var n,i;switch(e.type){case vo.Program:n=!0,a(e.body,function(e){cn(e.expression,t),n=n&&e.expression.constant}),e.constant=n;break;case vo.Literal:e.constant=!0,e.toWatch=[];break;case vo.UnaryExpression:cn(e.argument,t),e.constant=e.argument.constant,e.toWatch=e.argument.toWatch;break;case vo.BinaryExpression:cn(e.left,t),cn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.left.toWatch.concat(e.right.toWatch);break;case vo.LogicalExpression:cn(e.left,t),cn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=e.constant?[]:[e];break;case vo.ConditionalExpression:cn(e.test,t),cn(e.alternate,t),cn(e.consequent,t),e.constant=e.test.constant&&e.alternate.constant&&e.consequent.constant,e.toWatch=e.constant?[]:[e];break;case vo.Identifier:e.constant=!1,e.toWatch=[e];break;case vo.MemberExpression:cn(e.object,t),e.computed&&cn(e.property,t),e.constant=e.object.constant&&(!e.computed||e.property.constant),e.toWatch=[e];break;case vo.CallExpression:n=!!e.filter&&ln(t,e.callee.name),i=[],a(e.arguments,function(e){cn(e,t),n=n&&e.constant,e.constant||i.push.apply(i,e.toWatch)}),e.constant=n,e.toWatch=e.filter&&ln(t,e.callee.name)?i:[e];break;case vo.AssignmentExpression:cn(e.left,t),cn(e.right,t),e.constant=e.left.constant&&e.right.constant,e.toWatch=[e];break;case vo.ArrayExpression:n=!0,i=[],a(e.elements,function(e){cn(e,t),n=n&&e.constant,e.constant||i.push.apply(i,e.toWatch)}),e.constant=n,e.toWatch=i;break;case vo.ObjectExpression:n=!0,i=[],a(e.properties,function(e){cn(e.value,t),n=n&&e.value.constant&&!e.computed,e.value.constant||i.push.apply(i,e.value.toWatch)}),e.constant=n,e.toWatch=i;break;case vo.ThisExpression:e.constant=!1,e.toWatch=[];break;case vo.LocalsExpression:e.constant=!1,e.toWatch=[]}}function dn(e){if(1==e.length){var t=e[0].expression,n=t.toWatch;return 1!==n.length?n:n[0]!==t?n:void 0}}function un(e){return e.type===vo.Identifier||e.type===vo.MemberExpression}function pn(e){if(1===e.body.length&&un(e.body[0].expression))return{type:vo.AssignmentExpression,left:e.body[0].expression,right:{type:vo.NGValueParameter},operator:"="}}function mn(e){return 0===e.body.length||1===e.body.length&&(e.body[0].expression.type===vo.Literal||e.body[0].expression.type===vo.ArrayExpression||e.body[0].expression.type===vo.ObjectExpression)}function gn(e){return e.constant}function hn(e,t){this.astBuilder=e,this.$filter=t}function fn(e,t){this.astBuilder=e,this.$filter=t}function _n(e){return"constructor"==e}function vn(e){return S(e.valueOf)?e.valueOf():bo.call(e)}function yn(){var e,t,n=ge(),i=ge(),o={"true":!0,"false":!1,"null":null,undefined:void 0};this.addLiteral=function(e,t){o[e]=t},this.setIdentifierFns=function(n,a){return e=n,t=a,this},this.$get=["$filter",function(s){function r(e,t,a){var o,r,c;switch(a=a||b,typeof e){case"string":e=e.trim(),c=e;var f=a?i:n;if(o=f[c],!o){":"===e.charAt(0)&&":"===e.charAt(1)&&(r=!0,e=e.substring(2));var v=a?y:_,w=new _o(v),k=new yo(w,s,v);o=k.parse(e),o.constant?o.$$watchDelegate=g:r?o.$$watchDelegate=o.literal?p:u:o.inputs&&(o.$$watchDelegate=d),a&&(o=l(o)),f[c]=o}return h(o,t);case"function":return h(e,t);default:return h(m,t)}}function l(e){function t(t,n,a,i){var o=b;b=!0;try{return e(t,n,a,i)}finally{b=o}}if(!e)return e;t.$$watchDelegate=e.$$watchDelegate,t.assign=l(e.assign),t.constant=e.constant,t.literal=e.literal;for(var n=0;e.inputs&&n0&&r(this.$$state),a.promise},"catch":function(e){return this.then(null,e)},"finally":function(e,t){return this.then(function(t){return h(t,!0,e)},function(t){return h(t,!1,e)},t)}}),c(l.prototype,{resolve:function(e){this.promise.$$state.status||(e===this.promise?this.$$reject(u("qcycle","Expected promise to be resolved with value other than itself '{0}'",e)):this.$$resolve(e))},$$resolve:function(e){function t(e){l||(l=!0,s.$$resolve(e))}function a(e){l||(l=!0,s.$$reject(e))}var i,s=this,l=!1;try{(y(e)||S(e))&&(i=e&&e.then),S(i)?(this.promise.$$state.status=-1,i.call(e,t,a,o(this,this.notify))):(this.promise.$$state.value=e,this.promise.$$state.status=1,r(this.promise.$$state))}catch(c){a(c),n(c)}},reject:function(e){this.promise.$$state.status||this.$$reject(e)},$$reject:function(e){this.promise.$$state.value=e,this.promise.$$state.status=2,r(this.promise.$$state)},notify:function(t){var a=this.promise.$$state.pending;this.promise.$$state.status<=0&&a&&a.length&&e(function(){for(var e,i,o=0,s=a.length;o=0&&v(o,-1),r=null}},$watchGroup:function(e,t){function n(){l=!1,c?(c=!1,t(o,o,r)):t(o,i,r)}var i=new Array(e.length),o=new Array(e.length),s=[],r=this,l=!1,c=!0;if(!e.length){var d=!0;return r.$evalAsync(function(){d&&t(o,o,r)}),function(){d=!1}}return 1===e.length?this.$watch(e[0],function(e,n,a){o[0]=e,i[0]=n,t(o,e===n?o:i,a)}):(a(e,function(e,t){var a=r.$watch(e,function(e,a){o[t]=e,i[t]=a,l||(l=!0,r.$evalAsync(n))});s.push(a)}),function(){for(;s.length;)s.shift()()})},$watchCollection:function(e,t){function a(e){o=e;var t,a,i,r,l;if(!_(o)){if(y(o))if(n(o)){s!==m&&(s=m,f=s.length=0,u++),t=o.length,f!==t&&(u++,s.length=f=t);for(var c=0;ct){u++;for(a in s)Da.call(o,a)||(f--,delete s[a])}}else s!==o&&(s=o,u++);return u}}function i(){if(h?(h=!1,t(o,o,l)):t(o,r,l),d)if(y(o))if(n(o)){r=new Array(o.length);for(var e=0;e1,u=0,p=c(e,a),m=[],g={},h=!0,f=0;return this.$watch(p,i)},$digest:function(){var e,n,a,s,c,u,p,m,g,_,v,y,b=i,$=this,I=[];h("$digest"),d.$$checkUrlChange(),this===C&&null!==l&&(d.defer.cancel(l),k()),r=null;do{m=!1,_=$;for(var E=0;E-1)throw wo("iwcard","Illegal sequence *** in string matcher. String: {0}",e);return e=Ja(e).replace("\\*\\*",".*").replace("\\*","[^:/.?&;]*"),new RegExp("^"+e+"$")}if(C(e))return new RegExp("^"+e.source+"$");throw wo("imatcher",'Matchers may only be "self", string patterns or RegExp objects')}function xn(e){var t=[];return v(e)&&a(e,function(e){t.push(Mn(e))}),t}function In(){this.SCE_CONTEXTS=ko;var e=["self"],t=[];this.resourceUrlWhitelist=function(t){return arguments.length&&(e=xn(t)),e},this.resourceUrlBlacklist=function(e){return arguments.length&&(t=xn(e)),t},this.$get=["$injector",function(n){function a(e,t){return"self"===e?Nn(t):!!e.exec(t.href)}function i(n){var i,o,s=Fn(n.toString()),r=!1;for(i=0,o=e.length;i to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");var i=fe(ko);i.isEnabled=function(){return e},i.trustAs=n.trustAs,i.getTrusted=n.getTrusted,i.valueOf=n.valueOf,e||(i.trustAs=i.getTrusted=function(e,t){return t},i.valueOf=g),i.parseAs=function(e,n){var a=t(n);return a.literal&&a.constant?a:t(n,function(t){return i.getTrusted(e,t)})};var o=i.parseAs,s=i.getTrusted,r=i.trustAs;return a(ko,function(e,t){var n=Pa(t);i[we("parse_as_"+n)]=function(t){return o(e,t)},i[we("get_trusted_"+n)]=function(t){return s(e,t)},i[we("trust_as_"+n)]=function(t){return r(e,t)}}),i}]}function En(){this.$get=["$window","$document",function(e,t){var n,a,i={},o=e.chrome&&e.chrome.app&&e.chrome.app.runtime,s=!o&&e.history&&e.history.pushState,r=u((/android (\d+)/.exec(Pa((e.navigator||{}).userAgent))||[])[1]),l=/Boxee/i.test((e.navigator||{}).userAgent),c=t[0]||{},d=/^(Moz|webkit|ms)(?=[A-Z])/,p=c.body&&c.body.style,m=!1,g=!1;if(p){for(var h in p)if(a=d.exec(h)){n=a[0],n=n[0].toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"in p&&"webkit"),m=!!("transition"in p||n+"Transition"in p),g=!!("animation"in p||n+"Animation"in p),!r||m&&g||(m=w(p.webkitTransition),g=w(p.webkitAnimation))}return{history:!(!s||r<4||l),hasEvent:function(e){if("input"===e&&Oa<=11)return!1;if(_(i[e])){var t=c.createElement("div");i[e]="on"+e in t}return i[e]},csp:Qa(),vendorPrefix:n,transitions:m,animations:g,android:r}}]}function Tn(){var e;this.httpOptions=function(t){return t?(e=t,this):e},this.$get=["$templateCache","$http","$q","$sce",function(t,n,a,i){function o(s,r){function l(e){if(!r)throw $o("tpload","Failed to load template: {0} (HTTP status: {1} {2})",s,e.status,e.statusText);return a.reject(e)}o.totalPendingRequests++,w(s)&&!_(t.get(s))||(s=i.getTrustedResourceUrl(s));var d=n.defaults&&n.defaults.transformResponse;return Ya(d)?d=d.filter(function(e){return e!==Mt}):d===Mt&&(d=null),n.get(s,c({cache:t,transformResponse:d},e))["finally"](function(){o.totalPendingRequests--}).then(function(e){return t.put(s,e.data),e.data},l)}return o.totalPendingRequests=0,o}]}function Dn(){this.$get=["$rootScope","$browser","$location",function(e,t,n){var i={};return i.findBindings=function(e,t,n){var i=e.getElementsByClassName("ng-binding"),o=[];return a(i,function(e){var i=Ga.element(e).data("$binding");i&&a(i,function(a){if(n){var i=new RegExp("(^|\\s)"+Ja(t)+"(\\s|\\||$)");i.test(a)&&o.push(e)}else a.indexOf(t)!=-1&&o.push(e)})}),o},i.findModels=function(e,t,n){for(var a=["ng-","data-ng-","ng\\:"],i=0;i0&&(l=t(o.substring(0,r)),_(a[l])&&(a[l]=t(o.substring(r+1))));return a}}function Un(){this.$get=On}function Bn(e){function t(i,o){if(y(i)){var s={};return a(i,function(e,n){s[n]=t(n,e)}),s}return e.factory(i+n,o)}var n="Filter";this.register=t,this.$get=["$injector",function(e){return function(t){return e.get(t+n)}}],t("currency",Vn),t("date",oa),t("filter",Ln),t("json",sa),t("limitTo",ra),t("lowercase",Do),t("number",zn),t("orderBy",ca),t("uppercase",Po)}function Ln(){return function(e,a,i){if(!n(e)){if(null==e)return e;throw t("filter")("notarray","Expected array but received: {0}",e)}var o,s,r=qn(a);switch(r){case"function":o=a;break;case"boolean":case"null":case"number":case"string":s=!0;case"object":o=jn(a,i,s);break;default:return e}return Array.prototype.filter.call(e,o)}}function jn(e,t,n){var a,i=y(e)&&"$"in e;return t===!0?t=L:S(t)||(t=function(e,t){return!_(e)&&(null===e||null===t?e===t:!(y(t)||y(e)&&!f(e))&&(e=Pa(""+e),t=Pa(""+t),e.indexOf(t)!==-1))}),a=function(a){return i&&!y(a)?Hn(a,e.$,t,!1):Hn(a,e,t,n)}}function Hn(e,t,n,a,i){var o=qn(e),s=qn(t);if("string"===s&&"!"===t.charAt(0))return!Hn(e,t.substring(1),n,a);if(Ya(e))return e.some(function(e){return Hn(e,t,n,a)});switch(o){case"object":var r;if(a){for(r in e)if("$"!==r.charAt(0)&&Hn(e[r],t,n,!0))return!0;return!i&&Hn(e,t,n,!1)}if("object"===s){for(r in t){var l=t[r];if(!S(l)&&!_(l)){var c="$"===r,d=c?e:e[r];if(!Hn(d,l,n,c,c))return!1}}return!0}return n(e,t);case"function":return!1;default:return n(e,t)}}function qn(e){return null===e?"null":typeof e}function Vn(e){var t=e.NUMBER_FORMATS;return function(e,n,a){return _(n)&&(n=t.CURRENCY_SYM),_(a)&&(a=t.PATTERNS[1].maxFrac),null==e?e:Kn(e,t.PATTERNS[1],t.GROUP_SEP,t.DECIMAL_SEP,a).replace(/\u00A4/g,n)}}function zn(e){var t=e.NUMBER_FORMATS;return function(e,n){return null==e?e:Kn(e,t.PATTERNS[0],t.GROUP_SEP,t.DECIMAL_SEP,n)}}function Wn(e){var t,n,a,i,o,s=0;for((n=e.indexOf(xo))>-1&&(e=e.replace(xo,"")),(a=e.search(/e/i))>0?(n<0&&(n=a),n+=+e.slice(a+1),e=e.substring(0,a)):n<0&&(n=e.length),a=0;e.charAt(a)==Io;a++);if(a==(o=e.length))t=[0],n=1;else{for(o--;e.charAt(o)==Io;)o--;for(n-=a,t=[],i=0;a<=o;a++,i++)t[i]=+e.charAt(a)}return n>Mo&&(t=t.splice(0,Mo-1),s=n-1,n=1),{d:t,e:s,i:n}}function Gn(e,t,n,a){var i=e.d,o=i.length-e.i;t=_(t)?Math.min(Math.max(n,o),a):+t;var s=t+e.i,r=i[s];if(s>0){i.splice(Math.max(e.i,s));for(var l=s;l=5)if(s-1<0){for(var d=0;d>s;d--)i.unshift(0),e.i++;i.unshift(1),e.i++}else i[s-1]++;for(;o0?m=d.splice(u,d.length):(m=d,d=[0]);var g=[];for(d.length>=t.lgSize&&g.unshift(d.splice(-t.lgSize,d.length).join(""));d.length>t.gSize;)g.unshift(d.splice(-t.gSize,d.length).join(""));d.length&&g.unshift(d.join("")),c=g.join(n),m.length&&(c+=a+m.join("")),p&&(c+="e+"+p)}return e<0&&!r?t.negPre+c+t.negSuf:t.posPre+c+t.posSuf}function Yn(e,t,n,a){var i="";for((e<0||a&&e<=0)&&(a?e=-e+1:(e=-e,i="-")),e=""+e;e.length0||s>-n)&&(s+=n),0===s&&n==-12&&(s=12),Yn(s,t,a,i)}}function Xn(e,t,n){return function(a,i){var o=a["get"+e](),s=(n?"STANDALONE":"")+(t?"SHORT":""),r=Fa(s+e);return i[r][o]}}function Jn(e,t,n){var a=-1*n,i=a>=0?"+":"";return i+=Yn(Math[a>0?"floor":"ceil"](a/60),2)+Yn(Math.abs(a%60),2)}function Qn(e){var t=new Date(e,0,1).getDay();return new Date(e,0,(t<=4?5:12)-t)}function ea(e){return new Date(e.getFullYear(),e.getMonth(),e.getDate()+(4-e.getDay()))}function ta(e){return function(t){var n=Qn(t.getFullYear()),a=ea(t),i=+a-+n,o=1+Math.round(i/6048e5);return Yn(o,e)}}function na(e,t){return e.getHours()<12?t.AMPMS[0]:t.AMPMS[1]}function aa(e,t){return e.getFullYear()<=0?t.ERAS[0]:t.ERAS[1]}function ia(e,t){return e.getFullYear()<=0?t.ERANAMES[0]:t.ERANAMES[1]}function oa(e){function t(e){var t;if(t=e.match(n)){var a=new Date(0),i=0,o=0,s=t[8]?a.setUTCFullYear:a.setFullYear,r=t[8]?a.setUTCHours:a.setHours;t[9]&&(i=u(t[9]+t[10]),o=u(t[9]+t[11])),s.call(a,u(t[1]),u(t[2])-1,u(t[3]));var l=u(t[4]||0)-i,c=u(t[5]||0)-o,d=u(t[6]||0),p=Math.round(1e3*parseFloat("0."+(t[7]||0)));return r.call(a,l,c,d,p),a}return e}var n=/^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/;return function(n,i,o){var s,r,l="",c=[];if(i=i||"mediumDate",i=e.DATETIME_FORMATS[i]||i,w(n)&&(n=To.test(n)?u(n):t(n)),k(n)&&(n=new Date(n)),!$(n)||!isFinite(n.getTime()))return n;for(;i;)r=Eo.exec(i),r?(c=j(c,r,1),i=c.pop()):(c.push(i),i=null);var d=n.getTimezoneOffset();return o&&(d=G(o,d),n=Y(n,o,!0)),a(c,function(t){s=Ao[t],l+=s?s(n,e.DATETIME_FORMATS,d):"''"===t?"'":t.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}}function sa(){return function(e,t){return _(t)&&(t=2),z(e,t)}}function ra(){return function(e,t,a){return t=Math.abs(Number(t))===1/0?Number(t):u(t),isNaN(t)?e:(k(e)&&(e=e.toString()),n(e)?(a=!a||isNaN(a)?0:u(a),a=a<0?Math.max(0,e.length+a):a,t>=0?la(e,a,a+t):0===a?la(e,t,e.length):la(e,Math.max(0,a+t),a)):e)}}function la(e,t,n){return w(e)?e.slice(t,n):ja.call(e,t,n)}function ca(e){function a(t){return t.map(function(t){var n=1,a=g;if(S(t))a=t;else if(w(t)&&("+"!=t.charAt(0)&&"-"!=t.charAt(0)||(n="-"==t.charAt(0)?-1:1,t=t.substring(1)),""!==t&&(a=e(t),a.constant))){var i=a();a=function(e){return e[i]}}return{get:a,descending:n}})}function i(e){switch(typeof e){case"number":case"boolean":case"string":return!0;default:return!1}}function o(e){return S(e.valueOf)&&(e=e.valueOf(),i(e))?e:f(e)&&(e=e.toString(),i(e))?e:e}function s(e,t){var n=typeof e;return null===e?(n="string",e="null"):"object"===n&&(e=o(e)),{value:e,type:n,index:t}}function r(e,t){var n=0,a=e.type,i=t.type;if(a===i){var o=e.value,s=t.value;"string"===a?(o=o.toLowerCase(),s=s.toLowerCase()):"object"===a&&(y(o)&&(o=e.index),y(s)&&(s=t.index)),o!==s&&(n=o=h},s.$observe("min",function(e){h=p(e),r.$validate()})}if(v(s.max)||s.ngMax){var f;r.$validators.max=function(e){return!u(e)||_(f)||n(e)<=f},s.$observe("max",function(e){f=p(e),r.$validate()})}}}function ya(e,t,n,a){var i=t[0],o=a.$$hasNativeValidators=y(i.validity);o&&a.$parsers.push(function(e){var n=t.prop(Ta)||{};return n.badInput||n.typeMismatch?void 0:e})}function ba(e,t,n,a,i,o){if(ya(e,t,n,a),ha(e,t,n,a,i,o),a.$$parserName="number",a.$parsers.push(function(e){return a.$isEmpty(e)?null:Vo.test(e)?parseFloat(e):void 0}),a.$formatters.push(function(e){if(!a.$isEmpty(e)){if(!k(e))throw xs("numfmt","Expected `{0}` to be a number",e);e=e.toString()}return e}),v(n.min)||n.ngMin){var s;a.$validators.min=function(e){return a.$isEmpty(e)||_(s)||e>=s},n.$observe("min",function(e){v(e)&&!k(e)&&(e=parseFloat(e,10)),s=k(e)&&!isNaN(e)?e:void 0,a.$validate()})}if(v(n.max)||n.ngMax){var r;a.$validators.max=function(e){return a.$isEmpty(e)||_(r)||e<=r},n.$observe("max",function(e){v(e)&&!k(e)&&(e=parseFloat(e,10)),r=k(e)&&!isNaN(e)?e:void 0,a.$validate()})}}function wa(e,t,n,a,i,o){ha(e,t,n,a,i,o),ma(a),a.$$parserName="url",a.$validators.url=function(e,t){var n=e||t;return a.$isEmpty(n)||Ho.test(n)}}function ka(e,t,n,a,i,o){ha(e,t,n,a,i,o),ma(a),a.$$parserName="email",a.$validators.email=function(e,t){var n=e||t;return a.$isEmpty(n)||qo.test(n)}}function $a(e,t,n,a){_(n.name)&&t.attr("name",s());var i=function(e){t[0].checked&&a.$setViewValue(n.value,e&&e.type)};t.on("click",i),a.$render=function(){var e=n.value;t[0].checked=e==a.$viewValue},n.$observe("value",a.$render)}function Sa(e,t,n,a,i){var o;if(v(a)){if(o=e(a),!o.constant)throw xs("constexpr","Expected constant expression for `{0}`, but saw `{1}`.",n,a);return o(t)}return i}function Ca(e,t,n,a,i,o,s,r){var l=Sa(r,e,"ngTrueValue",n.ngTrueValue,!0),c=Sa(r,e,"ngFalseValue",n.ngFalseValue,!1),d=function(e){a.$setViewValue(t[0].checked,e&&e.type)};t.on("click",d),a.$render=function(){t[0].checked=a.$viewValue},a.$isEmpty=function(e){return e===!1},a.$formatters.push(function(e){return L(e,l)}),a.$parsers.push(function(e){return e?l:c})}function Ma(e,t){return e="ngClass"+e,["$animate",function(n){function i(e,t){var n=[];e:for(var a=0;a0||n[e])&&(n[e]=(n[e]||0)+t,n[e]===+(t>0)&&i.push(e))}),r.data("$classCounts",n),i.join(" ")}function p(e,t){var a=i(t,e),o=i(e,t);a=u(a,1),o=u(o,-1),a&&a.length&&n.addClass(r,a),o&&o.length&&n.removeClass(r,o)}function m(e){if(t===!0||(1&s.$index)===t){var n=o(e||[]);if(g){if(!L(e,g)){var a=o(g);p(a,n)}}else c(n)}g=Ya(e)?e.map(function(e){return fe(e)}):fe(e)}var g;s.$watch(l[e],m,!0),l.$observe("class",function(t){m(s.$eval(l[e]))}),"ngClass"!==e&&s.$watch("$index",function(n,a){var i=1&n;if(i!==(1&a)){var r=o(s.$eval(l[e]));i===t?c(r):d(r)}})}}}]}function xa(e){function t(e,t,r){_(t)?n("$pending",e,r):a("$pending",e,r),T(t)?t?(d(s.$error,e,r),c(s.$$success,e,r)):(c(s.$error,e,r),d(s.$$success,e,r)):(d(s.$error,e,r),d(s.$$success,e,r)),s.$pending?(i(Ss,!0),s.$valid=s.$invalid=void 0,o("",null)):(i(Ss,!1),s.$valid=Ia(s.$error),s.$invalid=!s.$valid,o("",s.$valid));var l;l=s.$pending&&s.$pending[e]?void 0:!s.$error[e]&&(!!s.$$success[e]||null),o(e,l),s.$$parentForm.$setValidity(e,l,s)}function n(e,t,n){s[e]||(s[e]={}),c(s[e],t,n)}function a(e,t,n){s[e]&&d(s[e],t,n),Ia(s[e])&&(s[e]=void 0)}function i(e,t){t&&!l[e]?(u.addClass(r,e),l[e]=!0):!t&&l[e]&&(u.removeClass(r,e),l[e]=!1)}function o(e,t){e=e?"-"+re(e,"-"):"",i(vs+e,t===!0),i(ys+e,t===!1)}var s=e.ctrl,r=e.$element,l={},c=e.set,d=e.unset,u=e.$animate;l[ys]=!(l[vs]=r.hasClass(vs)),s.$setValidity=t}function Ia(e){if(e)for(var t in e)if(e.hasOwnProperty(t))return!1;return!0}function Aa(e){e[0].hasAttribute("selected")&&(e[0].selected=!0)}var Ea=/^\/(.+)\/([a-z]*)$/,Ta="validity",Da=Object.prototype.hasOwnProperty,Pa=function(e){return w(e)?e.toLowerCase():e},Fa=function(e){return w(e)?e.toUpperCase():e},Na=function(e){return w(e)?e.replace(/[A-Z]/g,function(e){return String.fromCharCode(32|e.charCodeAt(0))}):e},Ra=function(e){return w(e)?e.replace(/[a-z]/g,function(e){return String.fromCharCode(e.charCodeAt(0)&-33)}):e};"i"!=="I".toLowerCase()&&(Pa=Na,Fa=Ra);var Oa,Ua,Ba,La,ja=[].slice,Ha=[].splice,qa=[].push,Va=Object.prototype.toString,za=Object.getPrototypeOf,Wa=t("ng"),Ga=e.angular||(e.angular={}),Ka=0;Oa=e.document.documentMode,m.$inject=[],g.$inject=[];var Ya=Array.isArray,Za=/^\[object (?:Uint8|Uint8Clamped|Uint16|Uint32|Int8|Int16|Int32|Float32|Float64)Array\]$/,Xa=function(e){return w(e)?e.trim():e},Ja=function(e){return e.replace(/([-()\[\]{}+?*.$\^|,:#(?:<\/\1>|)$/,wi=/<|&#?\w+;/,ki=/<([\w:-]+)/,$i=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Si={option:[1,'"],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};Si.optgroup=Si.option,Si.tbody=Si.tfoot=Si.colgroup=Si.caption=Si.thead,Si.th=Si.td;var Ci=e.Node.prototype.contains||function(e){return!!(16&this.compareDocumentPosition(e))},Mi=Ae.prototype={ready:function(t){function n(){a||(a=!0,t())}var a=!1;"complete"===e.document.readyState?e.setTimeout(n):(this.on("DOMContentLoaded",n),Ae(e).on("load",n))},toString:function(){var e=[];return a(this,function(t){e.push(""+t)}),"["+e.join(", ")+"]"},eq:function(e){return Ua(e>=0?this[e]:this[this.length+e])},length:0,push:qa,sort:[].sort,splice:[].splice},xi={};a("multiple,selected,checked,disabled,readOnly,required,open".split(","),function(e){xi[Pa(e)]=e});var Ii={};a("input,select,option,textarea,button,form,details".split(","),function(e){Ii[e]=!0});var Ai={ngMinlength:"minlength",ngMaxlength:"maxlength",ngMin:"min",ngMax:"max",ngPattern:"pattern"};a({data:Ne,removeData:Pe,hasData:Se,cleanData:Ce},function(e,t){Ae[t]=e}),a({data:Ne,inheritedData:je,scope:function(e){return Ua.data(e,"$scope")||je(e.parentNode||e,["$isolateScope","$scope"])},isolateScope:function(e){return Ua.data(e,"$isolateScope")||Ua.data(e,"$isolateScopeNoTemplate")},controller:Le,injector:function(e){return je(e,"$injector")},removeAttr:function(e,t){e.removeAttribute(t)},hasClass:Re,css:function(e,t,n){return t=we(t),v(n)?void(e.style[t]=n):e.style[t]},attr:function(e,t,n){var a=e.nodeType;if(a!==ri&&a!==si&&a!==li){var i=Pa(t);if(xi[i]){if(!v(n))return e[t]||(e.attributes.getNamedItem(t)||m).specified?i:void 0;n?(e[t]=!0,e.setAttribute(t,i)):(e[t]=!1,e.removeAttribute(i))}else if(v(n))e.setAttribute(t,n);else if(e.getAttribute){var o=e.getAttribute(t,2);return null===o?void 0:o}}},prop:function(e,t,n){return v(n)?void(e[t]=n):e[t]},text:function(){function e(e,t){if(_(t)){var n=e.nodeType;return n===oi||n===ri?e.textContent:""}e.textContent=t}return e.$dv="",e}(),val:function(e,t){if(_(t)){if(e.multiple&&"select"===O(e)){var n=[];return a(e.options,function(e){e.selected&&n.push(e.value||e.text)}),0===n.length?null:n}return e.value}e.value=t},html:function(e,t){return _(t)?e.innerHTML:(Te(e,!0),void(e.innerHTML=t))},empty:He},function(e,t){Ae.prototype[t]=function(t,n){var a,i,o=this.length;if(e!==He&&_(2==e.length&&e!==Re&&e!==Le?t:n)){if(y(t)){for(a=0;a=0?t.split(" "):[t],l=r.length,c=function(t,a,i){var r=o[t];r||(r=o[t]=[],r.specialHandlerWrapper=a,"$destroy"===t||i||gi(e,t,s)),r.push(n)};l--;)t=r[l],vi[t]?(c(vi[t],Ye),c(t,void 0,!0)):c(t)}},off:De,one:function(e,t,n){e=Ua(e),e.on(t,function a(){e.off(t,n),e.off(t,a)}),e.on(t,n)},replaceWith:function(e,t){var n,i=e.parentNode;Te(e),a(new Ae(t),function(t){n?i.insertBefore(t,n.nextSibling):i.replaceChild(t,e),n=t})},children:function(e){var t=[];return a(e.childNodes,function(e){e.nodeType===oi&&t.push(e)}),t},contents:function(e){return e.contentDocument||e.childNodes||[]},append:function(e,t){var n=e.nodeType;if(n===oi||n===di){t=new Ae(t);for(var a=0,i=t.length;a/,Di=/^[^\(]*\(\s*([^\)]*)\)/m,Pi=/,/,Fi=/^\s*(_?)(\S+?)\1\s*$/,Ni=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm,Ri=t("$injector");at.$$annotate=nt;var Oi=t("$animate"),Ui=1,Bi="ng-animate",Li=function(){this.$get=m},ji=function(){var e=new Je,t=[];this.$get=["$$AnimateRunner","$rootScope",function(n,i){function o(e,t,n){var i=!1;return t&&(t=w(t)?t.split(" "):Ya(t)?t:[],a(t,function(t){t&&(i=!0,e[t]=n)})),i}function s(){a(t,function(t){var n=e.get(t);if(n){var i=rt(t.attr("class")),o="",s="";a(n,function(e,t){var n=!!i[t];e!==n&&(e?o+=(o.length?" ":"")+t:s+=(s.length?" ":"")+t)}),a(t,function(e){o&&Ue(e,o),s&&Oe(e,s)}),e.remove(t)}}),t.length=0}function r(n,a,r){var l=e.get(n)||{},c=o(l,a,!0),d=o(l,r,!1);(c||d)&&(e.put(n,l),t.push(n),1===t.length&&i.$$postDigest(s))}return{enabled:m,on:m,off:m,pin:m,push:function(e,t,a,i){i&&i(),a=a||{},a.from&&e.css(a.from),a.to&&e.css(a.to),(a.addClass||a.removeClass)&&r(e,a.addClass,a.removeClass);var o=new n;return o.complete(),o}}}]},Hi=["$provide",function(e){var t=this;this.$$registeredAnimations=Object.create(null),this.register=function(n,a){if(n&&"."!==n.charAt(0))throw Oi("notcsel","Expecting class selector starting with '.' got '{0}'.",n);var i=n+"-animation";t.$$registeredAnimations[n.substr(1)]=i,e.factory(i,a)},this.classNameFilter=function(e){if(1===arguments.length&&(this.$$classNameFilter=e instanceof RegExp?e:null,this.$$classNameFilter)){var t=new RegExp("(\\s+|\\/)"+Bi+"(\\s+|\\/)");if(t.test(this.$$classNameFilter.toString()))throw Oi("nongcls",'$animateProvider.classNameFilter(regex) prohibits accepting a regex value which matches/contains the "{0}" CSS class.',Bi)}return this.$$classNameFilter},this.$get=["$$animateQueue",function(e){function t(e,t,n){if(n){var a=st(n);!a||a.parentNode||a.previousElementSibling||(n=null)}n?n.after(e):t.prepend(e)}return{on:e.on,off:e.off,pin:e.pin,enabled:e.enabled,cancel:function(e){e.end&&e.end()},enter:function(n,a,i,o){return a=a&&Ua(a),i=i&&Ua(i),a=a||i.parent(),t(n,a,i),e.push(n,"enter",lt(o))},move:function(n,a,i,o){return a=a&&Ua(a),i=i&&Ua(i),a=a||i.parent(),t(n,a,i),e.push(n,"move",lt(o))},leave:function(t,n){return e.push(t,"leave",lt(n),function(){t.remove()})},addClass:function(t,n,a){return a=lt(a),a.addClass=ot(a.addclass,n),e.push(t,"addClass",a)},removeClass:function(t,n,a){return a=lt(a),a.removeClass=ot(a.removeClass,n),e.push(t,"removeClass",a)},setClass:function(t,n,a,i){return i=lt(i),i.addClass=ot(i.addClass,n),i.removeClass=ot(i.removeClass,a),e.push(t,"setClass",i)},animate:function(t,n,a,i,o){return o=lt(o),o.from=o.from?c(o.from,n):n,o.to=o.to?c(o.to,a):a,i=i||"ng-inline-animate",o.tempClasses=ot(o.tempClasses,i),e.push(t,"animate",o)}}}]}],qi=function(){this.$get=["$$rAF",function(e){function t(t){n.push(t),n.length>1||e(function(){for(var e=0;e <= >= && || ! = |".split(" "),function(e){ho[e]=!0});var fo={n:"\n",f:"\f",r:"\r",t:"\t",v:"\x0B","'":"'",'"':'"'},_o=function(e){this.options=e};_o.prototype={constructor:_o,lex:function(e){for(this.text=e,this.index=0,this.tokens=[];this.index=55296&&n<=56319&&a>=56320&&a<=57343?e+t:e},isExpOperator:function(e){return"-"===e||"+"===e||this.isNumber(e)},throwError:function(e,t,n){n=n||this.index;var a=v(t)?"s "+t+"-"+this.index+" ["+this.text.substring(t,n)+"]":" "+n;throw uo("lexerr","Lexer Error: {0} at column{1} in expression [{2}].",e,a,this.text)},readNumber:function(){for(var e="",t=this.index;this.index0&&!this.peek("}",")",";","]")&&e.push(this.expressionStatement()),!this.expect(";"))return{type:vo.Program,body:e}},expressionStatement:function(){return{type:vo.ExpressionStatement,expression:this.filterChain()}},filterChain:function(){for(var e,t=this.expression();e=this.expect("|");)t=this.filter(t);return t},expression:function(){return this.assignment()},assignment:function(){var e=this.ternary();return this.expect("=")&&(e={type:vo.AssignmentExpression,left:e,right:this.assignment(),operator:"="}),e},ternary:function(){var e,t,n=this.logicalOR();return this.expect("?")&&(e=this.expression(),this.consume(":"))?(t=this.expression(),{type:vo.ConditionalExpression,test:n,alternate:e,consequent:t}):n},logicalOR:function(){for(var e=this.logicalAND();this.expect("||");)e={type:vo.LogicalExpression,operator:"||",left:e,right:this.logicalAND()};return e},logicalAND:function(){for(var e=this.equality();this.expect("&&");)e={type:vo.LogicalExpression,operator:"&&",left:e,right:this.equality()};return e},equality:function(){for(var e,t=this.relational();e=this.expect("==","!=","===","!==");)t={type:vo.BinaryExpression,operator:e.text,left:t,right:this.relational()};return t},relational:function(){for(var e,t=this.additive();e=this.expect("<",">","<=",">=");)t={type:vo.BinaryExpression,operator:e.text,left:t,right:this.additive()};return t},additive:function(){for(var e,t=this.multiplicative();e=this.expect("+","-");)t={type:vo.BinaryExpression,operator:e.text,left:t,right:this.multiplicative()};return t},multiplicative:function(){for(var e,t=this.unary();e=this.expect("*","/","%");)t={type:vo.BinaryExpression,operator:e.text,left:t,right:this.unary()};return t},unary:function(){var e;return(e=this.expect("+","-","!"))?{type:vo.UnaryExpression,operator:e.text,prefix:!0,argument:this.unary()}:this.primary()},primary:function(){var e;this.expect("(")?(e=this.filterChain(),this.consume(")")):this.expect("[")?e=this.arrayDeclaration():this.expect("{")?e=this.object():this.selfReferential.hasOwnProperty(this.peek().text)?e=B(this.selfReferential[this.consume().text]):this.options.literals.hasOwnProperty(this.peek().text)?e={type:vo.Literal,value:this.options.literals[this.consume().text]}:this.peek().identifier?e=this.identifier():this.peek().constant?e=this.constant():this.throwError("not a primary expression",this.peek());for(var t;t=this.expect("(","[",".");)"("===t.text?(e={type:vo.CallExpression,callee:e,arguments:this.parseArguments()},this.consume(")")):"["===t.text?(e={type:vo.MemberExpression,object:e,property:this.expression(),computed:!0},this.consume("]")):"."===t.text?e={type:vo.MemberExpression,object:e,property:this.identifier(),computed:!1}:this.throwError("IMPOSSIBLE");return e},filter:function(e){for(var t=[e],n={type:vo.CallExpression,callee:this.identifier(),arguments:t,filter:!0};this.expect(":");)t.push(this.expression());return n},parseArguments:function(){var e=[];if(")"!==this.peekToken().text)do e.push(this.filterChain());while(this.expect(","));return e},identifier:function(){var e=this.consume();return e.identifier||this.throwError("is not a valid identifier",e),{type:vo.Identifier,name:e.text}},constant:function(){return{type:vo.Literal,value:this.consume().value}},arrayDeclaration:function(){var e=[];if("]"!==this.peekToken().text)do{if(this.peek("]"))break;e.push(this.expression())}while(this.expect(","));return this.consume("]"),{type:vo.ArrayExpression,elements:e}},object:function(){var e,t=[];if("}"!==this.peekToken().text)do{if(this.peek("}"))break;e={type:vo.Property,kind:"init"},this.peek().constant?(e.key=this.constant(),e.computed=!1,this.consume(":"),e.value=this.expression()):this.peek().identifier?(e.key=this.identifier(),e.computed=!1,this.peek(":")?(this.consume(":"),e.value=this.expression()):e.value=e.key):this.peek("[")?(this.consume("["),e.key=this.expression(),this.consume("]"),e.computed=!0,this.consume(":"),e.value=this.expression()):this.throwError("invalid key",this.peek()),t.push(e)}while(this.expect(","));return this.consume("}"),{type:vo.ObjectExpression,properties:t}},throwError:function(e,t){throw uo("syntax","Syntax Error: Token '{0}' {1} at column {2} of the expression [{3}] starting at [{4}].",t.text,e,t.index+1,this.text,this.text.substring(t.index))},consume:function(e){if(0===this.tokens.length)throw uo("ueoe","Unexpected end of expression: {0}",this.text);var t=this.expect(e);return t||this.throwError("is unexpected, expecting ["+e+"]",this.peek()),t},peekToken:function(){if(0===this.tokens.length)throw uo("ueoe","Unexpected end of expression: {0}",this.text);return this.tokens[0]},peek:function(e,t,n,a){return this.peekAhead(0,e,t,n,a)},peekAhead:function(e,t,n,a,i){if(this.tokens.length>e){var o=this.tokens[e],s=o.text;if(s===t||s===n||s===a||s===i||!t&&!n&&!a&&!i)return o}return!1},expect:function(e,t,n,a){var i=this.peek(e,t,n,a);return!!i&&(this.tokens.shift(),i)},selfReferential:{"this":{type:vo.ThisExpression},$locals:{type:vo.LocalsExpression}}},hn.prototype={compile:function(e,t){var n=this,i=this.astBuilder.ast(e);this.state={nextId:0,filters:{},expensiveChecks:t,fn:{vars:[],body:[],own:{}},assign:{vars:[],body:[],own:{}},inputs:[]},cn(i,n.$filter);var o,s="";if(this.stage="assign",o=pn(i)){this.state.computing="assign";var r=this.nextId();this.recurse(o,r),this.return_(r),s="fn.assign="+this.generateFunction("assign","s,v,l")}var l=dn(i.body);n.stage="inputs",a(l,function(e,t){var a="fn"+t;n.state[a]={vars:[],body:[],own:{}},n.state.computing=a;var i=n.nextId();n.recurse(e,i),n.return_(i),n.state.inputs.push(a),e.watchId=t}),this.state.computing="fn",this.stage="main",this.recurse(i);var c='"'+this.USE+" "+this.STRICT+'";\n'+this.filterPrefix()+"var fn="+this.generateFunction("fn","s,l,a,i")+s+this.watchFns()+"return fn;",d=new Function("$filter","ensureSafeMemberName","ensureSafeObject","ensureSafeFunction","getStringValue","ensureSafeAssignContext","ifDefined","plus","text",c)(this.$filter,en,nn,an,tn,on,sn,rn,e);return this.state=this.stage=void 0,d.literal=mn(i),d.constant=gn(i),d},USE:"use",STRICT:"strict",watchFns:function(){var e=[],t=this.state.inputs,n=this;return a(t,function(t){e.push("var "+t+"="+n.generateFunction(t,"s"))}),t.length&&e.push("fn.inputs=["+t.join(",")+"];"),e.join("")},generateFunction:function(e,t){return"function("+t+"){"+this.varsPrefix(e)+this.body(e)+"};"},filterPrefix:function(){var e=[],t=this;return a(this.state.filters,function(n,a){e.push(n+"=$filter("+t.escape(a)+")")}),e.length?"var "+e.join(",")+";":""},varsPrefix:function(e){return this.state[e].vars.length?"var "+this.state[e].vars.join(",")+";":""},body:function(e){return this.state[e].body.join("")},recurse:function(e,t,n,i,o,s){var r,l,c,d,u,p=this;if(i=i||m,!s&&v(e.watchId))return t=t||this.nextId(),void this.if_("i",this.lazyAssign(t,this.computedMember("i",e.watchId)),this.lazyRecurse(e,t,n,i,o,!0)); -switch(e.type){case vo.Program:a(e.body,function(t,n){p.recurse(t.expression,void 0,void 0,function(e){l=e}),n!==e.body.length-1?p.current().body.push(l,";"):p.return_(l)});break;case vo.Literal:d=this.escape(e.value),this.assign(t,d),i(d);break;case vo.UnaryExpression:this.recurse(e.argument,void 0,void 0,function(e){l=e}),d=e.operator+"("+this.ifDefined(l,0)+")",this.assign(t,d),i(d);break;case vo.BinaryExpression:this.recurse(e.left,void 0,void 0,function(e){r=e}),this.recurse(e.right,void 0,void 0,function(e){l=e}),d="+"===e.operator?this.plus(r,l):"-"===e.operator?this.ifDefined(r,0)+e.operator+this.ifDefined(l,0):"("+r+")"+e.operator+"("+l+")",this.assign(t,d),i(d);break;case vo.LogicalExpression:t=t||this.nextId(),p.recurse(e.left,t),p.if_("&&"===e.operator?t:p.not(t),p.lazyRecurse(e.right,t)),i(t);break;case vo.ConditionalExpression:t=t||this.nextId(),p.recurse(e.test,t),p.if_(t,p.lazyRecurse(e.alternate,t),p.lazyRecurse(e.consequent,t)),i(t);break;case vo.Identifier:t=t||this.nextId(),n&&(n.context="inputs"===p.stage?"s":this.assign(this.nextId(),this.getHasOwnProperty("l",e.name)+"?l:s"),n.computed=!1,n.name=e.name),en(e.name),p.if_("inputs"===p.stage||p.not(p.getHasOwnProperty("l",e.name)),function(){p.if_("inputs"===p.stage||"s",function(){o&&1!==o&&p.if_(p.not(p.nonComputedMember("s",e.name)),p.lazyAssign(p.nonComputedMember("s",e.name),"{}")),p.assign(t,p.nonComputedMember("s",e.name))})},t&&p.lazyAssign(t,p.nonComputedMember("l",e.name))),(p.state.expensiveChecks||_n(e.name))&&p.addEnsureSafeObject(t),i(t);break;case vo.MemberExpression:r=n&&(n.context=this.nextId())||this.nextId(),t=t||this.nextId(),p.recurse(e.object,r,void 0,function(){p.if_(p.notNull(r),function(){o&&1!==o&&p.addEnsureSafeAssignContext(r),e.computed?(l=p.nextId(),p.recurse(e.property,l),p.getStringValue(l),p.addEnsureSafeMemberName(l),o&&1!==o&&p.if_(p.not(p.computedMember(r,l)),p.lazyAssign(p.computedMember(r,l),"{}")),d=p.ensureSafeObject(p.computedMember(r,l)),p.assign(t,d),n&&(n.computed=!0,n.name=l)):(en(e.property.name),o&&1!==o&&p.if_(p.not(p.nonComputedMember(r,e.property.name)),p.lazyAssign(p.nonComputedMember(r,e.property.name),"{}")),d=p.nonComputedMember(r,e.property.name),(p.state.expensiveChecks||_n(e.property.name))&&(d=p.ensureSafeObject(d)),p.assign(t,d),n&&(n.computed=!1,n.name=e.property.name))},function(){p.assign(t,"undefined")}),i(t)},!!o);break;case vo.CallExpression:t=t||this.nextId(),e.filter?(l=p.filter(e.callee.name),c=[],a(e.arguments,function(e){var t=p.nextId();p.recurse(e,t),c.push(t)}),d=l+"("+c.join(",")+")",p.assign(t,d),i(t)):(l=p.nextId(),r={},c=[],p.recurse(e.callee,l,r,function(){p.if_(p.notNull(l),function(){p.addEnsureSafeFunction(l),a(e.arguments,function(e){p.recurse(e,p.nextId(),void 0,function(e){c.push(p.ensureSafeObject(e))})}),r.name?(p.state.expensiveChecks||p.addEnsureSafeObject(r.context),d=p.member(r.context,r.name,r.computed)+"("+c.join(",")+")"):d=l+"("+c.join(",")+")",d=p.ensureSafeObject(d),p.assign(t,d)},function(){p.assign(t,"undefined")}),i(t)}));break;case vo.AssignmentExpression:if(l=this.nextId(),r={},!un(e.left))throw uo("lval","Trying to assign a value to a non l-value");this.recurse(e.left,void 0,r,function(){p.if_(p.notNull(r.context),function(){p.recurse(e.right,l),p.addEnsureSafeObject(p.member(r.context,r.name,r.computed)),p.addEnsureSafeAssignContext(r.context),d=p.member(r.context,r.name,r.computed)+e.operator+l,p.assign(t,d),i(t||d)})},1);break;case vo.ArrayExpression:c=[],a(e.elements,function(e){p.recurse(e,p.nextId(),void 0,function(e){c.push(e)})}),d="["+c.join(",")+"]",this.assign(t,d),i(d);break;case vo.ObjectExpression:c=[],u=!1,a(e.properties,function(e){e.computed&&(u=!0)}),u?(t=t||this.nextId(),this.assign(t,"{}"),a(e.properties,function(e){e.computed?(r=p.nextId(),p.recurse(e.key,r)):r=e.key.type===vo.Identifier?e.key.name:""+e.key.value,l=p.nextId(),p.recurse(e.value,l),p.assign(p.member(t,r,e.computed),l)})):(a(e.properties,function(t){p.recurse(t.value,e.constant?void 0:p.nextId(),void 0,function(e){c.push(p.escape(t.key.type===vo.Identifier?t.key.name:""+t.key.value)+":"+e)})}),d="{"+c.join(",")+"}",this.assign(t,d)),i(t||d);break;case vo.ThisExpression:this.assign(t,"s"),i("s");break;case vo.LocalsExpression:this.assign(t,"l"),i("l");break;case vo.NGValueParameter:this.assign(t,"v"),i("v")}},getHasOwnProperty:function(e,t){var n=e+"."+t,a=this.current().own;return a.hasOwnProperty(n)||(a[n]=this.nextId(!1,e+"&&("+this.escape(t)+" in "+e+")")),a[n]},assign:function(e,t){if(e)return this.current().body.push(e,"=",t,";"),e},filter:function(e){return this.state.filters.hasOwnProperty(e)||(this.state.filters[e]=this.nextId(!0)),this.state.filters[e]},ifDefined:function(e,t){return"ifDefined("+e+","+this.escape(t)+")"},plus:function(e,t){return"plus("+e+","+t+")"},return_:function(e){this.current().body.push("return ",e,";")},if_:function(e,t,n){if(e===!0)t();else{var a=this.current().body;a.push("if(",e,"){"),t(),a.push("}"),n&&(a.push("else{"),n(),a.push("}"))}},not:function(e){return"!("+e+")"},notNull:function(e){return e+"!=null"},nonComputedMember:function(e,t){var n=/[$_a-zA-Z][$_a-zA-Z0-9]*/,a=/[^$_a-zA-Z0-9]/g;return n.test(t)?e+"."+t:e+'["'+t.replace(a,this.stringEscapeFn)+'"]'},computedMember:function(e,t){return e+"["+t+"]"},member:function(e,t,n){return n?this.computedMember(e,t):this.nonComputedMember(e,t)},addEnsureSafeObject:function(e){this.current().body.push(this.ensureSafeObject(e),";")},addEnsureSafeMemberName:function(e){this.current().body.push(this.ensureSafeMemberName(e),";")},addEnsureSafeFunction:function(e){this.current().body.push(this.ensureSafeFunction(e),";")},addEnsureSafeAssignContext:function(e){this.current().body.push(this.ensureSafeAssignContext(e),";")},ensureSafeObject:function(e){return"ensureSafeObject("+e+",text)"},ensureSafeMemberName:function(e){return"ensureSafeMemberName("+e+",text)"},ensureSafeFunction:function(e){return"ensureSafeFunction("+e+",text)"},getStringValue:function(e){this.assign(e,"getStringValue("+e+")")},ensureSafeAssignContext:function(e){return"ensureSafeAssignContext("+e+",text)"},lazyRecurse:function(e,t,n,a,i,o){var s=this;return function(){s.recurse(e,t,n,a,i,o)}},lazyAssign:function(e,t){var n=this;return function(){n.assign(e,t)}},stringEscapeRegex:/[^ a-zA-Z0-9]/g,stringEscapeFn:function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)},escape:function(e){if(w(e))return"'"+e.replace(this.stringEscapeRegex,this.stringEscapeFn)+"'";if(k(e))return e.toString();if(e===!0)return"true";if(e===!1)return"false";if(null===e)return"null";if("undefined"==typeof e)return"undefined";throw uo("esc","IMPOSSIBLE")},nextId:function(e,t){var n="v"+this.state.nextId++;return e||this.current().vars.push(n+(t?"="+t:"")),n},current:function(){return this.state[this.state.computing]}},fn.prototype={compile:function(e,t){var n=this,i=this.astBuilder.ast(e);this.expression=e,this.expensiveChecks=t,cn(i,n.$filter);var o,s;(o=pn(i))&&(s=this.recurse(o));var r,l=dn(i.body);l&&(r=[],a(l,function(e,t){var a=n.recurse(e);e.input=a,r.push(a),e.watchId=t}));var c=[];a(i.body,function(e){c.push(n.recurse(e.expression))});var d=0===i.body.length?m:1===i.body.length?c[0]:function(e,t){var n;return a(c,function(a){n=a(e,t)}),n};return s&&(d.assign=function(e,t,n){return s(e,n,t)}),r&&(d.inputs=r),d.literal=mn(i),d.constant=gn(i),d},recurse:function(e,t,n){var i,o,s,r=this;if(e.input)return this.inputs(e.input,e.watchId);switch(e.type){case vo.Literal:return this.value(e.value,t);case vo.UnaryExpression:return o=this.recurse(e.argument),this["unary"+e.operator](o,t);case vo.BinaryExpression:return i=this.recurse(e.left),o=this.recurse(e.right),this["binary"+e.operator](i,o,t);case vo.LogicalExpression:return i=this.recurse(e.left),o=this.recurse(e.right),this["binary"+e.operator](i,o,t);case vo.ConditionalExpression:return this["ternary?:"](this.recurse(e.test),this.recurse(e.alternate),this.recurse(e.consequent),t);case vo.Identifier:return en(e.name,r.expression),r.identifier(e.name,r.expensiveChecks||_n(e.name),t,n,r.expression);case vo.MemberExpression:return i=this.recurse(e.object,!1,!!n),e.computed||(en(e.property.name,r.expression),o=e.property.name),e.computed&&(o=this.recurse(e.property)),e.computed?this.computedMember(i,o,t,n,r.expression):this.nonComputedMember(i,o,r.expensiveChecks,t,n,r.expression);case vo.CallExpression:return s=[],a(e.arguments,function(e){s.push(r.recurse(e))}),e.filter&&(o=this.$filter(e.callee.name)),e.filter||(o=this.recurse(e.callee,!0)),e.filter?function(e,n,a,i){for(var r=[],l=0;l":function(e,t,n){return function(a,i,o,s){var r=e(a,i,o,s)>t(a,i,o,s);return n?{value:r}:r}},"binary<=":function(e,t,n){return function(a,i,o,s){var r=e(a,i,o,s)<=t(a,i,o,s);return n?{value:r}:r}},"binary>=":function(e,t,n){return function(a,i,o,s){var r=e(a,i,o,s)>=t(a,i,o,s);return n?{value:r}:r}},"binary&&":function(e,t,n){return function(a,i,o,s){var r=e(a,i,o,s)&&t(a,i,o,s);return n?{value:r}:r}},"binary||":function(e,t,n){return function(a,i,o,s){var r=e(a,i,o,s)||t(a,i,o,s);return n?{value:r}:r}},"ternary?:":function(e,t,n,a){return function(i,o,s,r){var l=e(i,o,s,r)?t(i,o,s,r):n(i,o,s,r);return a?{value:l}:l}},value:function(e,t){return function(){return t?{context:void 0,name:void 0,value:e}:e}},identifier:function(e,t,n,a,i){return function(o,s,r,l){var c=s&&e in s?s:o;a&&1!==a&&c&&!c[e]&&(c[e]={});var d=c?c[e]:void 0;return t&&nn(d,i),n?{context:c,name:e,value:d}:d}},computedMember:function(e,t,n,a,i){return function(o,s,r,l){var c,d,u=e(o,s,r,l);return null!=u&&(c=t(o,s,r,l),c=tn(c),en(c,i),a&&1!==a&&(on(u),u&&!u[c]&&(u[c]={})),d=u[c],nn(d,i)),n?{context:u,name:c,value:d}:d}},nonComputedMember:function(e,t,n,a,i,o){return function(s,r,l,c){var d=e(s,r,l,c);i&&1!==i&&(on(d),d&&!d[t]&&(d[t]={}));var u=null!=d?d[t]:void 0;return(n||_n(t))&&nn(u,o),a?{context:d,name:t,value:u}:u}},inputs:function(e,t){return function(n,a,i,o){return o?o[t]:e(n,a,i)}}};var yo=function(e,t,n){this.lexer=e,this.$filter=t,this.options=n,this.ast=new vo(e,n),this.astCompiler=n.csp?new fn(this.ast,t):new hn(this.ast,t)};yo.prototype={constructor:yo,parse:function(e){return this.astCompiler.compile(e,this.options.expensiveChecks)}};var bo=Object.prototype.valueOf,wo=t("$sce"),ko={HTML:"html",CSS:"css",URL:"url",RESOURCE_URL:"resourceUrl",JS:"js"},$o=t("$compile"),So=e.document.createElement("a"),Co=Fn(e.location.href);On.$inject=["$document"],Bn.$inject=["$provide"];var Mo=22,xo=".",Io="0";Vn.$inject=["$locale"],zn.$inject=["$locale"];var Ao={yyyy:Zn("FullYear",4,0,!1,!0),yy:Zn("FullYear",2,0,!0,!0),y:Zn("FullYear",1,0,!1,!0),MMMM:Xn("Month"),MMM:Xn("Month",!0),MM:Zn("Month",2,1),M:Zn("Month",1,1),LLLL:Xn("Month",!1,!0),dd:Zn("Date",2),d:Zn("Date",1),HH:Zn("Hours",2),H:Zn("Hours",1),hh:Zn("Hours",2,-12),h:Zn("Hours",1,-12),mm:Zn("Minutes",2),m:Zn("Minutes",1),ss:Zn("Seconds",2),s:Zn("Seconds",1),sss:Zn("Milliseconds",3),EEEE:Xn("Day"),EEE:Xn("Day",!0),a:na,Z:Jn,ww:ta(2),w:ta(1),G:aa,GG:aa,GGG:aa,GGGG:ia},Eo=/((?:[^yMLdHhmsaZEwG']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|L+|d+|H+|h+|m+|s+|a|Z|G+|w+))(.*)/,To=/^\-?\d+$/;oa.$inject=["$locale"];var Do=h(Pa),Po=h(Fa);ca.$inject=["$parse"];var Fo=h({restrict:"E",compile:function(e,t){if(!t.href&&!t.xlinkHref)return function(e,t){if("a"===t[0].nodeName.toLowerCase()){var n="[object SVGAnimatedString]"===Va.call(t.prop("href"))?"xlink:href":"href";t.on("click",function(e){t.attr(n)||e.preventDefault()})}}}}),No={};a(xi,function(e,t){function n(e,n,i){e.$watch(i[a],function(e){i.$set(t,!!e)})}if("multiple"!=e){var a=ft("ng-"+t),i=n;"checked"===e&&(i=function(e,t,i){i.ngModel!==i[a]&&n(e,t,i)}),No[a]=function(){return{restrict:"A",priority:100,link:i}}}}),a(Ai,function(e,t){No[t]=function(){return{priority:100,link:function(e,n,a){if("ngPattern"===t&&"/"==a.ngPattern.charAt(0)){var i=a.ngPattern.match(Ea);if(i)return void a.$set("ngPattern",new RegExp(i[1],i[2]))}e.$watch(a[t],function(e){a.$set(t,e)})}}}}),a(["src","srcset","href"],function(e){var t=ft("ng-"+e);No[t]=function(){return{priority:99,link:function(n,a,i){var o=e,s=e;"href"===e&&"[object SVGAnimatedString]"===Va.call(a.prop("href"))&&(s="xlinkHref",i.$attr[s]="xlink:href",o=null),i.$observe(t,function(t){return t?(i.$set(s,t),void(Oa&&o&&a.prop(o,i[s]))):void("href"===e&&i.$set(s,null))})}}}});var Ro={$addControl:m,$$renameControl:ua,$removeControl:m,$setValidity:m,$setDirty:m,$setPristine:m,$setSubmitted:m},Oo="ng-submitted";pa.$inject=["$element","$attrs","$scope","$animate","$interpolate"];var Uo=function(e){return["$timeout","$parse",function(t,n){function a(e){return""===e?n('this[""]').assign:n(e).assign||m}var i={name:"form",restrict:e?"EAC":"E",require:["form","^^?form"],controller:pa,compile:function(n,i){n.addClass(bs).addClass(vs);var o=i.name?"name":!(!e||!i.ngForm)&&"ngForm";return{pre:function(e,n,i,s){var r=s[0];if(!("action"in i)){var l=function(t){e.$apply(function(){r.$commitViewValue(),r.$setSubmitted()}),t.preventDefault()};gi(n[0],"submit",l),n.on("$destroy",function(){t(function(){hi(n[0],"submit",l)},0,!1)})}var d=s[1]||r.$$parentForm;d.$addControl(r);var u=o?a(r.$name):m;o&&(u(e,r),i.$observe(o,function(t){r.$name!==t&&(u(e,void 0),r.$$parentForm.$$renameControl(r,t),(u=a(r.$name))(e,r))})),n.on("$destroy",function(){r.$$parentForm.$removeControl(r),u(e,void 0),c(r,Ro)})}}}};return i}]},Bo=Uo(),Lo=Uo(!0),jo=/^\d{4,}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+(?:[+-][0-2]\d:[0-5]\d|Z)$/,Ho=/^[a-z][a-z\d.+-]*:\/*(?:[^:@]+(?::[^@]+)?@)?(?:[^\s:\/?#]+|\[[a-f\d:]+\])(?::\d+)?(?:\/[^?#]*)?(?:\?[^#]*)?(?:#.*)?$/i,qo=/^(?=.{1,254}$)(?=.{1,64}@)[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+(\.[-!#$%&'*+\/0-9=?A-Z^_`a-z{|}~]+)*@[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?(\.[A-Za-z0-9]([A-Za-z0-9-]{0,61}[A-Za-z0-9])?)*$/,Vo=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))([eE][+-]?\d+)?\s*$/,zo=/^(\d{4,})-(\d{2})-(\d{2})$/,Wo=/^(\d{4,})-(\d\d)-(\d\d)T(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Go=/^(\d{4,})-W(\d\d)$/,Ko=/^(\d{4,})-(\d\d)$/,Yo=/^(\d\d):(\d\d)(?::(\d\d)(\.\d{1,3})?)?$/,Zo="keydown wheel mousedown",Xo=ge();a("date,datetime-local,month,time,week".split(","),function(e){Xo[e]=!0});var Jo={text:ga,date:va("date",zo,_a(zo,["yyyy","MM","dd"]),"yyyy-MM-dd"),"datetime-local":va("datetimelocal",Wo,_a(Wo,["yyyy","MM","dd","HH","mm","ss","sss"]),"yyyy-MM-ddTHH:mm:ss.sss"),time:va("time",Yo,_a(Yo,["HH","mm","ss","sss"]),"HH:mm:ss.sss"),week:va("week",Go,fa,"yyyy-Www"),month:va("month",Ko,_a(Ko,["yyyy","MM"]),"yyyy-MM"),number:ba,url:wa,email:ka,radio:$a,checkbox:Ca,hidden:m,button:m,submit:m,reset:m,file:m},Qo=["$browser","$sniffer","$filter","$parse",function(e,t,n,a){return{restrict:"E",require:["?ngModel"],link:{pre:function(i,o,s,r){r[0]&&(Jo[Pa(s.type)]||Jo.text)(i,o,s,r[0],t,e,n,a)}}}}],es=/^(true|false|\d+)$/,ts=function(){return{restrict:"A",priority:100,compile:function(e,t){return es.test(t.ngValue)?function(e,t,n){n.$set("value",e.$eval(n.ngValue))}:function(e,t,n){e.$watch(n.ngValue,function(e){n.$set("value",e)})}}}},ns=["$compile",function(e){return{restrict:"AC",compile:function(t){return e.$$addBindingClass(t),function(t,n,a){e.$$addBindingInfo(n,a.ngBind),n=n[0],t.$watch(a.ngBind,function(e){n.textContent=_(e)?"":e})}}}}],as=["$interpolate","$compile",function(e,t){return{compile:function(n){return t.$$addBindingClass(n),function(n,a,i){var o=e(a.attr(i.$attr.ngBindTemplate));t.$$addBindingInfo(a,o.expressions),a=a[0],i.$observe("ngBindTemplate",function(e){a.textContent=_(e)?"":e})}}}}],is=["$sce","$parse","$compile",function(e,t,n){return{restrict:"A",compile:function(a,i){var o=t(i.ngBindHtml),s=t(i.ngBindHtml,function(t){return e.valueOf(t)});return n.$$addBindingClass(a),function(t,a,i){n.$$addBindingInfo(a,i.ngBindHtml),t.$watch(s,function(){var n=o(t);a.html(e.getTrustedHtml(n)||"")})}}}}],os=h({restrict:"A",require:"ngModel",link:function(e,t,n,a){a.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}}),ss=Ma("",!0),rs=Ma("Odd",0),ls=Ma("Even",1),cs=da({compile:function(e,t){t.$set("ngCloak",void 0),e.removeClass("ng-cloak")}}),ds=[function(){return{restrict:"A",scope:!0,controller:"@",priority:500}}],us={},ps={blur:!0,focus:!0};a("click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" "),function(e){var t=ft("ng-"+e);us[t]=["$parse","$rootScope",function(n,a){return{restrict:"A",compile:function(i,o){var s=n(o[t],null,!0);return function(t,n){n.on(e,function(n){var i=function(){s(t,{$event:n})};ps[e]&&a.$$phase?t.$evalAsync(i):t.$apply(i)})}}}}]});var ms=["$animate","$compile",function(e,t){return{multiElement:!0,transclude:"element",priority:600,terminal:!0,restrict:"A",$$tlb:!0,link:function(n,a,i,o,s){var r,l,c;n.$watch(i.ngIf,function(n){n?l||s(function(n,o){l=o,n[n.length++]=t.$$createComment("end ngIf",i.ngIf),r={clone:n},e.enter(n,a.parent(),a)}):(c&&(c.remove(),c=null),l&&(l.$destroy(),l=null),r&&(c=me(r.clone),e.leave(c).then(function(){c=null}),r=null))})}}}],gs=["$templateRequest","$anchorScroll","$animate",function(e,t,n){return{restrict:"ECA",priority:400,terminal:!0,transclude:"element",controller:Ga.noop,compile:function(a,i){var o=i.ngInclude||i.src,s=i.onload||"",r=i.autoscroll;return function(a,i,l,c,d){var u,p,m,g=0,h=function(){p&&(p.remove(),p=null),u&&(u.$destroy(),u=null),m&&(n.leave(m).then(function(){p=null}),p=m,m=null)};a.$watch(o,function(o){var l=function(){!v(r)||r&&!a.$eval(r)||t()},p=++g;o?(e(o,!0).then(function(e){if(!a.$$destroyed&&p===g){var t=a.$new();c.template=e;var r=d(t,function(e){h(),n.enter(e,null,i).then(l)});u=t,m=r,u.$emit("$includeContentLoaded",o),a.$eval(s)}},function(){a.$$destroyed||p===g&&(h(),a.$emit("$includeContentError",o))}),a.$emit("$includeContentRequested",o)):(h(),c.template=null)})}}}}],hs=["$compile",function(t){return{restrict:"ECA",priority:-400,require:"ngInclude",link:function(n,a,i,o){return Va.call(a[0]).match(/SVG/)?(a.empty(),void t(Me(o.template,e.document).childNodes)(n,function(e){a.append(e)},{futureParentElement:a})):(a.html(o.template),void t(a.contents())(n))}}}],fs=da({priority:450,compile:function(){return{pre:function(e,t,n){e.$eval(n.ngInit)}}}}),_s=function(){return{restrict:"A",priority:100,require:"ngModel",link:function(e,t,n,i){var o=t.attr(n.$attr.ngList)||", ",s="false"!==n.ngTrim,r=s?Xa(o):o,l=function(e){if(!_(e)){var t=[];return e&&a(e.split(r),function(e){e&&t.push(s?Xa(e):e)}),t}};i.$parsers.push(l),i.$formatters.push(function(e){if(Ya(e))return e.join(o)}),i.$isEmpty=function(e){return!e||!e.length}}}},vs="ng-valid",ys="ng-invalid",bs="ng-pristine",ws="ng-dirty",ks="ng-untouched",$s="ng-touched",Ss="ng-pending",Cs="ng-empty",Ms="ng-not-empty",xs=t("ngModel"),Is=["$scope","$exceptionHandler","$attrs","$element","$parse","$animate","$timeout","$rootScope","$q","$interpolate",function(e,t,n,i,o,s,r,l,c,d){this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$$rawModelValue=void 0,this.$validators={},this.$asyncValidators={},this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$untouched=!0,this.$touched=!1,this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$error={},this.$$success={},this.$pending=void 0,this.$name=d(n.name||"",!1)(e),this.$$parentForm=Ro;var u,p=o(n.ngModel),g=p.assign,h=p,f=g,y=null,b=this;this.$$setOptions=function(e){if(b.$options=e,e&&e.getterSetter){var t=o(n.ngModel+"()"),a=o(n.ngModel+"($$$p)");h=function(e){var n=p(e);return S(n)&&(n=t(e)),n},f=function(e,t){S(p(e))?a(e,{$$$p:t}):g(e,t)}}else if(!p.assign)throw xs("nonassign","Expression '{0}' is non-assignable. Element: {1}",n.ngModel,Z(i))},this.$render=m,this.$isEmpty=function(e){return _(e)||""===e||null===e||e!==e},this.$$updateEmptyClasses=function(e){b.$isEmpty(e)?(s.removeClass(i,Ms),s.addClass(i,Cs)):(s.removeClass(i,Cs),s.addClass(i,Ms))};var w=0;xa({ctrl:this,$element:i,set:function(e,t){e[t]=!0},unset:function(e,t){delete e[t]},$animate:s}),this.$setPristine=function(){b.$dirty=!1,b.$pristine=!0,s.removeClass(i,ws),s.addClass(i,bs)},this.$setDirty=function(){b.$dirty=!0,b.$pristine=!1,s.removeClass(i,bs),s.addClass(i,ws),b.$$parentForm.$setDirty()},this.$setUntouched=function(){b.$touched=!1,b.$untouched=!0,s.setClass(i,ks,$s)},this.$setTouched=function(){b.$touched=!0,b.$untouched=!1,s.setClass(i,$s,ks)},this.$rollbackViewValue=function(){r.cancel(y),b.$viewValue=b.$$lastCommittedViewValue,b.$render()},this.$validate=function(){if(!k(b.$modelValue)||!isNaN(b.$modelValue)){var e=b.$$lastCommittedViewValue,t=b.$$rawModelValue,n=b.$valid,a=b.$modelValue,i=b.$options&&b.$options.allowInvalid;b.$$runValidators(t,e,function(e){i||n===e||(b.$modelValue=e?t:void 0,b.$modelValue!==a&&b.$$writeModelToScope())})}},this.$$runValidators=function(e,t,n){function i(){var e=b.$$parserName||"parse";return _(u)?(r(e,null),!0):(u||(a(b.$validators,function(e,t){r(t,null)}),a(b.$asyncValidators,function(e,t){r(t,null)})),r(e,u),u)}function o(){var n=!0;return a(b.$validators,function(a,i){var o=a(e,t);n=n&&o,r(i,o)}),!!n||(a(b.$asyncValidators,function(e,t){r(t,null)}),!1)}function s(){var n=[],i=!0;a(b.$asyncValidators,function(a,o){var s=a(e,t);if(!D(s))throw xs("nopromise","Expected asynchronous validator to return a promise but got '{0}' instead.",s);r(o,void 0),n.push(s.then(function(){r(o,!0)},function(){i=!1,r(o,!1)}))}),n.length?c.all(n).then(function(){l(i)},m):l(!0)}function r(e,t){d===w&&b.$setValidity(e,t)}function l(e){d===w&&n(e)}w++;var d=w;return i()&&o()?void s():void l(!1)},this.$commitViewValue=function(){var e=b.$viewValue;r.cancel(y),(b.$$lastCommittedViewValue!==e||""===e&&b.$$hasNativeValidators)&&(b.$$updateEmptyClasses(e),b.$$lastCommittedViewValue=e,b.$pristine&&this.$setDirty(),this.$$parseAndValidate())},this.$$parseAndValidate=function(){function t(){b.$modelValue!==o&&b.$$writeModelToScope()}var n=b.$$lastCommittedViewValue,a=n;if(u=!_(a)||void 0)for(var i=0;i=0;t--){var a=$.items[t];qe(a.group?a.element.parentNode:a.element)}$=S.getOptions();var i={};if(w&&n.prepend(m),$.items.forEach(function(e){var t;v(e.group)?(t=i[e.group],t||(t=c.cloneNode(!1),C.appendChild(t),t.label=e.group,i[e.group]=t),d(e,t)):d(e,C)}),n[0].appendChild(C),h.$render(),!h.$isEmpty(e)){var o=g.readValue(),s=S.trackBy||f;(s?L(e,o):e===o)||(h.$setViewValue(o),h.$render())}}for(var m,g=r[0],h=r[1],f=o.multiple,_=0,y=n.children(),b=y.length;_0&&(e=new RegExp("^"+e+"$")),e&&!e.test)throw t("ngPattern")("noregexp","Expected {0} to be a RegExp but was {1}. Element: {2}",s,e,Z(n));o=e||void 0,i.$validate()}),i.$validators.pattern=function(e,t){return i.$isEmpty(t)||_(o)||o.test(t)}}}}},nr=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,a){if(a){var i=-1;n.$observe("maxlength",function(e){var t=u(e);i=isNaN(t)?-1:t,a.$validate()}),a.$validators.maxlength=function(e,t){return i<0||a.$isEmpty(t)||t.length<=i}}}}},ar=function(){return{restrict:"A",require:"?ngModel",link:function(e,t,n,a){if(a){var i=0;n.$observe("minlength",function(e){i=u(e)||0,a.$validate()}),a.$validators.minlength=function(e,t){return a.$isEmpty(t)||t.length>=i}}}}};return e.angular.bootstrap?void(e.console&&console.log("WARNING: Tried to load angular more than once.")):(le(),ye(Ga),Ga.module("ngLocale",[],["$provide",function(e){function t(e){e+="";var t=e.indexOf(".");return t==-1?0:e.length-t-1}function n(e,n){var a=n;void 0===a&&(a=Math.min(t(e),3));var i=Math.pow(10,a),o=(e*i|0)%i;return{v:a,f:o}}var a={ZERO:"zero",ONE:"one",TWO:"two",FEW:"few",MANY:"many",OTHER:"other"};e.value("$locale",{DATETIME_FORMATS:{AMPMS:["AM","PM"],DAY:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ERANAMES:["Before Christ","Anno Domini"],ERAS:["BC","AD"],FIRSTDAYOFWEEK:6,MONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],SHORTDAY:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],SHORTMONTH:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],STANDALONEMONTH:["January","February","March","April","May","June","July","August","September","October","November","December"],WEEKENDRANGE:[5,6],fullDate:"EEEE, MMMM d, y",longDate:"MMMM d, y",medium:"MMM d, y h:mm:ss a",mediumDate:"MMM d, y",mediumTime:"h:mm:ss a","short":"M/d/yy h:mm a",shortDate:"M/d/yy",shortTime:"h:mm a"},NUMBER_FORMATS:{CURRENCY_SYM:"$",DECIMAL_SEP:".",GROUP_SEP:",",PATTERNS:[{gSize:3,lgSize:3,maxFrac:3,minFrac:0,minInt:1,negPre:"-",negSuf:"",posPre:"",posSuf:""},{gSize:3,lgSize:3,maxFrac:2,minFrac:2,minInt:1,negPre:"-¤",negSuf:"",posPre:"¤",posSuf:""}]},id:"en-us",localeID:"en_US",pluralCat:function(e,t){var i=0|e,o=n(e,t);return 1==i&&0==o.v?a.ONE:a.OTHER}})}]),void Ua(e.document).ready(function(){ae(e.document,ie)}))}(window),!window.angular.$$csp().noInlineStyle&&window.angular.element(document.head).prepend(''),function(e,t){"use strict";function n(e,t){if(r(e)){t=t||[];for(var n=0,a=e.length;n0&&(a+=i>0?" ":"",a+=n?t+e:e+t)}),a}function s(e,t){var n=e.indexOf(t);t>=0&&e.splice(n,1)}function r(e){if(e instanceof L)switch(e.length){case 0:return e;case 1:if(e[0].nodeType===Y)return e;break;default:return L(l(e))}if(e.nodeType===Y)return L(e)}function l(e){if(!e[0])return e;for(var t=0;t=0)&&(n=I(n)),0===n&&(n=null),a[t]=n}}),a}function I(e){var t=0,n=e.split(/\s*,\s*/);return j(n,function(e){"s"==e.charAt(e.length-1)&&(e=e.substring(0,e.length-1)),e=parseFloat(e)||0,t=t?Math.max(e,t):e}),t}function A(e){return 0===e||null!=e}function E(e,t){var n=P,a=e+"s";return t?n+=ie:a+=" linear all",[n,a]}function T(){var e=Object.create(null);return{flush:function(){e=Object.create(null)},count:function(t){var n=e[t];return n?n.total:0},get:function(t){var n=e[t];return n&&n.value},put:function(t,n){e[t]?e[t].total++:e[t]={total:1,value:n}}}}function D(e,t,n){j(n,function(n){e[n]=W(e[n])?e[n]:t.style.getPropertyValue(n)})}var P,F,N,R,O=t.noop,U=t.copy,B=t.extend,L=t.element,j=t.forEach,H=t.isArray,q=t.isString,V=t.isObject,z=t.isUndefined,W=t.isDefined,G=t.isFunction,K=t.isElement,Y=1,Z="-add",X="-remove",J="ng-",Q="-active",ee="-prepare",te="ng-animate",ne="$$ngAnimateChildren",ae="";z(e.ontransitionend)&&W(e.onwebkittransitionend)?(ae="-webkit-",P="WebkitTransition",F="webkitTransitionEnd transitionend"):(P="transition",F="transitionend"),z(e.onanimationend)&&W(e.onwebkitanimationend)?(ae="-webkit-",N="WebkitAnimation",R="webkitAnimationEnd animationend"):(N="animation",R="animationend");var ie="Duration",oe="Property",se="Delay",re="TimingFunction",le="IterationCount",ce="PlayState",de=9999,ue=N+se,pe=N+ie,me=P+se,ge=P+ie,he=t.$$minErr("ng"),fe=["$$rAF",function(e){function t(e){a=a.concat(e),n()}function n(){if(a.length){for(var t=a.shift(),o=0;o0&&(c=n.get(r),!c)){var d=o(s,"-stagger");a.addClass(i,d),c=x(e,i,l),c.animationDuration=Math.max(c.animationDuration,0),c.transitionDuration=Math.max(c.transitionDuration,0),a.removeClass(i,d),n.put(r,c)}return c||{}}function I(e){q.push(e),f.waitUntilQuiet(function(){t.flush(),n.flush();for(var e=c(),a=0;a=ae&&a>=ie&&(Y=!0,f())}function q(){function t(){if(!G){if(b(!1),j(ce,function(e){var t=e[0],n=e[1];W.style[t]=n}),B(e,V),a.addClass(e,Ce),Be.recalculateTimingStyles){if(Se=W.className+" "+ke,Ie=y(W,Se),Oe=T(W,Se,Ie),Ue=Oe.maxDelay,ne=Math.max(Ue,0),ie=Oe.maxDuration,0===ie)return void f();Be.hasTransitions=Oe.transitionDuration>0,Be.hasAnimations=Oe.animationDuration>0}if(Be.applyAnimationDelay&&(Ue="boolean"!=typeof V.delay&&A(V.delay)?parseFloat(V.delay):Ue,ne=Math.max(Ue,0),Oe.animationDelay=Ue,Le=M(Ue,!0),ce.push(Le),W.style[Le[0]]=Le[1]),ae=ne*ye,se=ie*ye,V.easing){var t,i=V.easing;Be.hasTransitions&&(t=P+re,ce.push([t,i]),W.style[t]=i),Be.hasAnimations&&(t=N+re,ce.push([t,i]),W.style[t]=i)}Oe.transitionDuration&&me.push(F),Oe.animationDuration&&me.push(R),le=Date.now();var o=ae+we*se,s=le+o,r=e.data(ve)||[],c=!0;if(r.length){var d=r[0];c=s>d.expectedEndTime,c?l.cancel(d.timer):r.push(f)}if(c){var u=l(n,o,!1);r[0]={timer:u,expectedEndTime:s},r.push(f),e.data(ve,r)}me.length&&e.on(me.join(" "),L),V.to&&(V.cleanupStyles&&D(z,W,Object.keys(V.to)),h(e,V))}}function n(){var t=e.data(ve);if(t){for(var n=1;n0&&(Oe.transitionDuration&&0===Ae.transitionDuration||Oe.animationDuration&&0===Ae.animationDuration)&&Math.max(Ae.animationDelay,Ae.transitionDelay);o?l(t,Math.floor(o*Ne*ye),!1):t(),te.resume=function(){i(!0)},te.pause=function(){i(!1)}}}var V=n||{};V.$$prepared||(V=p(U(V)));var z={},W=v(e);if(!W||!W.parentNode||!_.enabled())return x();var G,K,Y,ee,te,ne,ae,ie,se,le,ce=[],ue=e.attr("class"),pe=i(V),me=[];if(0===V.duration||!d.animations&&!d.transitions)return x();var ge=V.event&&H(V.event)?V.event.join(" "):V.event,he=ge&&V.structural,fe="",_e="";he?fe=o(ge,J,!0):ge&&(fe=ge),V.addClass&&(_e+=o(V.addClass,Z)),V.removeClass&&(_e.length&&(_e+=" "),_e+=o(V.removeClass,X)),V.applyClassesEarly&&_e.length&&B(e,V);var ke=[fe,_e].join(" ").trim(),Se=ue+" "+ke,Ce=o(ke,Q),Me=pe.to&&Object.keys(pe.to).length>0,xe=(V.keyframeStyle||"").length>0;if(!xe&&!Me&&!ke)return x();var Ie,Ae;if(V.stagger>0){var Ee=parseFloat(V.stagger);Ae={transitionDelay:Ee,animationDelay:Ee,transitionDuration:0,animationDuration:0}}else Ie=y(W,Se),Ae=S(W,ke,Ie,$e);V.$$skipPreparationClasses||a.addClass(e,ke);var Te;if(V.transitionStyle){var De=[P,V.transitionStyle];$(W,De),ce.push(De)}if(V.duration>=0){Te=W.style[P].length>0;var Pe=E(V.duration,Te);$(W,Pe),ce.push(Pe)}if(V.keyframeStyle){var Fe=[N,V.keyframeStyle];$(W,Fe),ce.push(Fe)}var Ne=Ae?V.staggerIndex>=0?V.staggerIndex:t.count(Ie):0,Re=0===Ne;Re&&!V.skipBlocking&&w(W,de);var Oe=T(W,Se,Ie),Ue=Oe.maxDelay;ne=Math.max(Ue,0),ie=Oe.maxDuration;var Be={};if(Be.hasTransitions=Oe.transitionDuration>0,Be.hasAnimations=Oe.animationDuration>0,Be.hasTransitionAll=Be.hasTransitions&&"all"==Oe.transitionProperty,Be.applyTransitionDuration=Me&&(Be.hasTransitions&&!Be.hasTransitionAll||Be.hasAnimations&&!Be.hasTransitions),Be.applyAnimationDuration=V.duration&&Be.hasAnimations,Be.applyTransitionDelay=A(V.delay)&&(Be.applyTransitionDuration||Be.hasTransitions),Be.applyAnimationDelay=A(V.delay)&&Be.hasAnimations,Be.recalculateTimingStyles=_e.length>0,(Be.applyTransitionDuration||Be.applyAnimationDuration)&&(ie=V.duration?parseFloat(V.duration):ie,Be.applyTransitionDuration&&(Be.hasTransitions=!0,Oe.transitionDuration=ie,Te=W.style[P+oe].length>0,ce.push(E(ie,Te))),Be.applyAnimationDuration&&(Be.hasAnimations=!0,Oe.animationDuration=ie,ce.push(C(ie)))),0===ie&&!Be.recalculateTimingStyles)return x();if(null!=V.delay){var Le;"boolean"!=typeof V.delay&&(Le=parseFloat(V.delay),ne=Math.max(Le,0)),Be.applyTransitionDelay&&ce.push(M(Le)),Be.applyAnimationDelay&&ce.push(M(Le,!0))}return null==V.duration&&Oe.transitionDuration>0&&(Be.recalculateTimingStyles=Be.recalculateTimingStyles||Re),ae=ne*ye,se=ie*ye,V.skipBlocking||(Be.blockTransition=Oe.transitionDuration>0,Be.blockKeyframeAnimation=Oe.animationDuration>0&&Ae.animationDelay>0&&0===Ae.animationDuration),V.from&&(V.cleanupStyles&&D(z,W,Object.keys(V.from)),g(e,V)),Be.blockTransition||Be.blockKeyframeAnimation?b(ie):V.skipBlocking||w(W,!1),{$$willAnimate:!0,end:c,start:function(){if(!G)return te={end:c,cancel:u,resume:null,pause:null},ee=new r(te),I(q),ee}}}}]}],Ce=["$$animationProvider",function(e){function t(e){return e.parentNode&&11===e.parentNode.nodeType}e.drivers.push("$$animateCssDriver");var n="ng-animate-shim",a="ng-anchor",i="ng-anchor-out",o="ng-anchor-in";this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(e,s,r,l,c,d,p){function m(e){return e.replace(/\bng-\S+\b/g,"")}function g(e,t){return q(e)&&(e=e.split(" ")),q(t)&&(t=t.split(" ")),e.filter(function(e){return t.indexOf(e)===-1}).join(" ")}function h(t,s,l){function c(e){var t={},n=v(e).getBoundingClientRect();return j(["width","height","top","left"],function(e){var a=n[e];switch(e){case"top":a+=y.scrollTop;break;case"left":a+=y.scrollLeft}t[e]=Math.floor(a)+"px"}),t}function d(){var t=e(f,{addClass:i,delay:!0,from:c(s)});return t.$$willAnimate?t:null}function u(e){return e.attr("class")||""}function p(){var t=m(u(l)),n=g(t,_),a=g(_,t),s=e(f,{to:c(l),addClass:o+" "+n,removeClass:i+" "+a,delay:!0});return s.$$willAnimate?s:null}function h(){f.remove(),s.removeClass(n),l.removeClass(n)}var f=L(v(s).cloneNode(!0)),_=m(u(f));s.addClass(n),l.addClass(n),f.addClass(a),w.append(f);var b,k=d();if(!k&&(b=p(),!b))return h();var $=k||b;return{start:function(){function e(){n&&n.end()}var t,n=$.start();return n.done(function(){return n=null,!b&&(b=p())?(n=b.start(),n.done(function(){n=null,h(),t.complete()}),n):(h(),void t.complete())}),t=new r({end:e,cancel:e})}}}function f(e,t,n,a){var i=_(e,O),o=_(t,O),s=[];if(j(a,function(e){var t=e.out,a=e["in"],i=h(n,t,a);i&&s.push(i)}),i||o||0!==s.length)return{start:function(){function e(){j(t,function(e){e.end()})}var t=[];i&&t.push(i.start()),o&&t.push(o.start()),j(s,function(e){t.push(e.start())});var n=new r({end:e,cancel:e});return r.all(t,function(e){n.complete(e)}),n}}}function _(t){var n=t.element,a=t.options||{};t.structural&&(a.event=t.event,a.structural=!0,a.applyClassesEarly=!0,"leave"===t.event&&(a.onDone=a.domOperation)),a.preparationClasses&&(a.event=S(a.event,a.preparationClasses));var i=e(n,a);return i.$$willAnimate?i:null}if(!c.animations&&!c.transitions)return O;var y=p[0].body,b=v(l),w=L(t(b)||y.contains(b)?b:y);u(d);return function(e){return e.from&&e.to?f(e.from,e.to,e.classes,e.anchors):_(e)}}]}],Me=["$animateProvider",function(e){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(t,n,a){function i(n){n=H(n)?n:n.split(" ");for(var a=[],i={},o=0;o0,a=(e.removeClass||"").length>0;return t?n&&a:n||a}var d=1,g=2,h=" ",_=this.rules={skip:[],cancel:[],join:[]};_.join.push(function(e,t,n){return!t.structural&&c(t)}),_.skip.push(function(e,t,n){return!t.structural&&!c(t)}),_.skip.push(function(e,t,n){return"leave"==n.event&&t.structural}),_.skip.push(function(e,t,n){return n.structural&&n.state===g&&!t.structural}),_.cancel.push(function(e,t,n){return n.structural&&t.structural}),_.cancel.push(function(e,t,n){return n.state===g&&t.structural}),_.cancel.push(function(e,t,n){if(n.structural)return!1;var a=t.addClass,i=t.removeClass,s=n.addClass,r=n.removeClass;return!(z(a)&&z(i)||z(s)&&z(r))&&(o(a,r)||o(i,s))}),this.$get=["$$rAF","$rootScope","$rootElement","$document","$$HashMap","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow",function(i,o,h,_,w,k,$,S,C,M){ -function x(){var e=!1;return function(t){e?t():o.$$postDigest(function(){e=!0,t()})}}function I(e,t){return f(e,t,{})}function A(e,t,n){var a=v(t),i=v(e),o=[],s=Q[n];return s&&j(s,function(e){ie.call(e.node,a)?o.push(e.callback):"leave"===n&&ie.call(e.node,i)&&o.push(e.callback)}),o}function E(e,t,n){var a=l(t);return e.filter(function(e){var t=e.node===a&&(!n||e.callback===n);return!t})}function T(e,t){"close"!==e||t[0].parentNode||oe.off(t)}function D(e,t,n){function a(t,n,a,o){C(function(){var t=A(h,e,n);t.length?i(function(){j(t,function(t){t(e,a,o)}),T(a,e)}):T(a,e)}),t.progress(n,a,o)}function l(t){b(e,w),ae(e,w),m(e,w),w.domOperation(),S.complete(!t)}var u,h,w=U(n);e=r(e),e&&(u=v(e),h=e.parent()),w=p(w);var S=new $,C=x();if(H(w.addClass)&&(w.addClass=w.addClass.join(" ")),w.addClass&&!q(w.addClass)&&(w.addClass=null),H(w.removeClass)&&(w.removeClass=w.removeClass.join(" ")),w.removeClass&&!q(w.removeClass)&&(w.removeClass=null),w.from&&!V(w.from)&&(w.from=null),w.to&&!V(w.to)&&(w.to=null),!u)return l(),S;var M=[u.className,w.addClass,w.removeClass].join(" ");if(!te(M))return l(),S;var E=["enter","move","leave"].indexOf(t)>=0,D=_[0].hidden,N=!X||D||Z.get(u),B=!N&&G.get(u)||{},L=!!B.state;if(N||L&&B.state==d||(N=!R(e,h,t)),N)return D&&a(S,t,"start"),l(),D&&a(S,t,"close"),S;E&&P(e);var z={structural:E,element:e,event:t,addClass:w.addClass,removeClass:w.removeClass,close:l,options:w,runner:S};if(L){var W=s("skip",e,z,B);if(W)return B.state===g?(l(),S):(f(e,B,z),B.runner);var K=s("cancel",e,z,B);if(K)if(B.state===g)B.runner.end();else{if(!B.structural)return f(e,B,z),B.runner;B.close()}else{var Y=s("join",e,z,B);if(Y){if(B.state!==g)return y(e,E?t:null,w),t=z.event=B.event,w=f(e,B,z),B.runner;I(e,z)}}}else I(e,z);var J=z.structural;if(J||(J="animate"===z.event&&Object.keys(z.options.to||{}).length>0||c(z)),!J)return l(),F(e),S;var Q=(B.counter||0)+1;return z.counter=Q,O(e,d,z),o.$$postDigest(function(){var n=G.get(u),i=!n;n=n||{};var o=e.parent()||[],s=o.length>0&&("animate"===n.event||n.structural||c(n));if(i||n.counter!==Q||!s)return i&&(ae(e,w),m(e,w)),(i||E&&n.event!==t)&&(w.domOperation(),S.end()),void(s||F(e));t=!n.structural&&c(n,!0)?"setClass":n.event,O(e,g);var r=k(e,t,n.options);S.setHost(r),a(S,t,"start",{}),r.done(function(n){l(!n);var i=G.get(u);i&&i.counter===Q&&F(v(e)),a(S,t,"close",{})})}),S}function P(e){var t=v(e),n=t.querySelectorAll("["+Ie+"]");j(n,function(e){var t=parseInt(e.getAttribute(Ie)),n=G.get(e);if(n)switch(t){case g:n.runner.end();case d:G.remove(e)}})}function F(e){var t=v(e);t.removeAttribute(Ie),G.remove(t)}function N(e,t){return v(e)===v(t)}function R(e,t,n){var a,i=L(_[0].body),o=N(e,i)||"HTML"===e[0].nodeName,s=N(e,h),r=!1,l=Z.get(v(e)),c=L.data(e[0],Ae);for(c&&(t=c),t=v(t);t&&(s||(s=N(t,h)),t.nodeType===Y);){var d=G.get(t)||{};if(!r){var u=Z.get(t);if(u===!0&&l!==!1){l=!0;break}u===!1&&(l=!1),r=d.structural}if(z(a)||a===!0){var p=L.data(t,ne);W(p)&&(a=p)}if(r&&a===!1)break;if(o||(o=N(t,i)),o&&s)break;t=s||!(c=L.data(t,Ae))?t.parentNode:v(c)}var m=(!r||a)&&l!==!0;return m&&s&&o}function O(e,t,n){n=n||{},n.state=t;var a=v(e);a.setAttribute(Ie,t);var i=G.get(a),o=i?B(i,n):n;G.put(a,o)}var G=new w,Z=new w,X=null,J=o.$watch(function(){return 0===S.totalPendingRequests},function(e){e&&(J(),o.$$postDigest(function(){o.$$postDigest(function(){null===X&&(X=!0)})}))}),Q={},ee=a.classNameFilter(),te=ee?function(e){return ee.test(e)}:function(){return!0},ae=u(C),ie=e.Node.prototype.contains||function(e){return this===e||!!(16&this.compareDocumentPosition(e))},oe={on:function(e,t,n){var a=l(t);Q[e]=Q[e]||[],Q[e].push({node:a,callback:n}),L(t).on("$destroy",function(){var i=G.get(a);i||oe.off(e,t,n)})},off:function(e,n,a){if(1!==arguments.length||t.isString(arguments[0])){var i=Q[e];i&&(Q[e]=1===arguments.length?null:E(i,n,a))}else{n=arguments[0];for(var o in Q)Q[o]=E(Q[o],n)}},pin:function(e,t){n(K(e),"element","not an element"),n(K(t),"parentElement","not an element"),e.data(Ae,t)},push:function(e,t,n,a){return n=n||{},n.domOperation=a,D(e,t,n)},enabled:function(e,t){var n=arguments.length;if(0===n)t=!!X;else{var a=K(e);if(a){var i=v(e),o=Z.get(i);1===n?t=!o:Z.put(i,!t)}else t=X=!!e}return t}};return oe}]}],Te=["$animateProvider",function(e){function t(e,t){e.data(r,t)}function n(e){e.removeData(r)}function i(e){return e.data(r)}var o="ng-animate-ref",s=this.drivers=[],r="$$animationRunner";this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$HashMap","$$rAFScheduler",function(e,r,l,c,d,g){function h(e){function t(e){if(e.processed)return e;e.processed=!0;var n=e.domNode,a=n.parentNode;o.put(n,e);for(var s;a;){if(s=o.get(a)){s.processed||(s=t(s));break}a=a.parentNode}return(s||i).children.push(e),e}function n(e){var t,n=[],a=[];for(t=0;t=0,c=e.structural?b(s):[];if(c.length){var d=l?"to":"from";j(c,function(e){var t=e.getAttribute(o);n[t]=n[t]||{},n[t][d]={animationID:a,element:L(e)}})}else t.push(e)});var a={},i={};return j(n,function(n,o){var s=n.from,r=n.to;if(!s||!r){var l=s?s.animationID:r.animationID,c=l.toString();return void(a[c]||(a[c]=!0,t.push(e[l])))}var d=e[s.animationID],u=e[r.animationID],p=s.animationID.toString();if(!i[p]){var m=i[p]={structural:!0,beforeStart:function(){d.beforeStart(),u.beforeStart()},close:function(){d.close(),u.close()},classes:k(d.classes,u.classes),from:d,to:u,anchors:[]};m.classes.length?t.push(m):(t.push(d),t.push(u))}i[p].anchors.push({out:s.element,"in":r.element})}),t}function k(e,t){e=e.split(" "),t=t.split(" ");for(var n=[],a=0;a=0;t--){var n=s[t],a=l.get(n),i=a(e);if(i)return i}}function S(){d.addClass(te),T&&e.addClass(d,T),D&&(e.removeClass(d,D),D=null)}function C(e,t){function n(e){var n=i(e);n&&n.setHost(t)}e.from&&e.to?(n(e.from.element),n(e.to.element)):n(e.element)}function M(){var e=i(d);!e||"leave"===u&&y.$$domOperationFired||e.end()}function x(t){d.off("$destroy",M),n(d),_(d,y),m(d,y),y.domOperation(),T&&e.removeClass(d,T),d.removeClass(te),A.complete(!t)}y=p(y);var I=["enter","move","leave"].indexOf(u)>=0,A=new c({end:function(){x()},cancel:function(){x(!0)}});if(!s.length)return x(),A;t(d,A);var E=a(d.attr("class"),a(y.addClass,y.removeClass)),T=y.tempClasses;T&&(E+=" "+T,y.tempClasses=null);var D;return I&&(D="ng-"+u+ee,e.addClass(d,D)),f.push({element:d,classes:E,event:u,structural:I,options:y,beforeStart:S,close:x}),d.on("$destroy",M),f.length>1?A:(r.$$postDigest(function(){var e=[];j(f,function(t){i(t.element)?e.push(t):t.close()}),f.length=0;var t=w(e),n=[];j(t,function(e){n.push({domNode:v(e.from?e.from.element:e.element),fn:function(){e.beforeStart();var t,n=e.close,a=e.anchors?e.from.element||e.to.element:e.element;if(i(a)){var o=$(e);o&&(t=o.start)}if(t){var s=t();s.done(function(e){n(!e)}),C(e,s)}else n()}})}),g(h(n))}),A)}}]}],De=["$animate","$rootScope",function(e,t){return{restrict:"A",transclude:"element",terminal:!0,priority:600,link:function(t,n,a,i,o){var s,r;t.$watchCollection(a.ngAnimateSwap||a["for"],function(a){s&&e.leave(s),r&&(r.$destroy(),r=null),(a||0===a)&&(r=t.$new(),o(r,function(t){s=t,e.enter(t,null,n)}))})}}}];t.module("ngAnimate",[]).directive("ngAnimateSwap",De).directive("ngAnimateChildren",_e).factory("$$rAFScheduler",fe).provider("$$animateQueue",Ee).provider("$$animation",Te).provider("$animateCss",Se).provider("$$animateCssDriver",Ce).provider("$$animateJs",Me).provider("$$animateJsDriver",xe)}(window,window.angular),function(e,t){"use strict";function n(){var e=!1;this.$get=["$$sanitizeUri",function(n){return e&&t.extend(k,b),function(e){var t=[];return o(e,l(t,function(e,t){return!/^unsafe:/.test(n(e,t))})),t.join("")}}],this.enableSvg=function(n){return t.isDefined(n)?(e=n,this):e}}function a(e){var n=[],a=l(n,t.noop);return a.chars(e),n.join("")}function i(e,n){var a,i={},o=e.split(",");for(a=0;a/g,">")}function l(e,n){var a=!1,i=t.bind(e,e.push);return{start:function(e,o){e=t.lowercase(e),!a&&w[e]&&(a=e),a||k[e]!==!0||(i("<"),i(e),t.forEach(o,function(a,o){var s=t.lowercase(o),l="img"===e&&"src"===s||"background"===s;M[s]!==!0||$[s]===!0&&!n(a,l)||(i(" "),i(o),i('="'),i(r(a)),i('"'))}),i(">"))},end:function(e){e=t.lowercase(e),a||k[e]!==!0||g[e]===!0||(i("")),e==a&&(a=!1)},chars:function(e){a||i(r(e))}}}function c(t){if(t.nodeType===e.Node.ELEMENT_NODE)for(var n=t.attributes,a=0,i=n.length;a"\u201d\u2019]/i,i=/^mailto:/i,o=t.$$minErr("linky"),s=t.isString;return function(r,l,c){function d(e){e&&_.push(a(e))}function u(e,n){var a,i=h(e);_.push("'),d(n),_.push("")}if(null==r||""===r)return r;if(!s(r))throw o("notstring","Expected string but received: {0}",r);for(var p,m,g,h=t.isFunction(c)?c:t.isObject(c)?function(){return c}:function(){return{}},f=r,_=[];p=f.match(n);)m=p[0],p[2]||p[4]||(m=(p[3]?"http://":"mailto:")+m),g=p.index,d(f.substr(0,g)),u(m,p[0].replace(i,"")),f=f.substring(g+p[0].length);return d(f),e(_.join(""))}}])}(window,window.angular),function(e,t){"use strict";function n(e){return t.lowercase(e.nodeName||e[0]&&e[0].nodeName)}function a(e,n){var a=!1,i=!1;this.ngClickOverrideEnabled=function(o){return t.isDefined(o)?(o&&!i&&(i=!0,s.$$moduleName="ngTouch",n.directive("ngClick",s),e.decorator("ngClickDirective",["$delegate",function(e){if(a)e.shift();else for(var t=e.length-1;t>=0;){if("ngTouch"===e[t].$$moduleName){e.splice(t,1);break}t--}return e}])),a=o,this):a},this.$get=function(){return{ngClickOverrideEnabled:function(){return a}}}}function i(e,n,a){o.directive(e,["$parse","$swipe",function(i,o){var s=75,r=.3,l=30;return function(c,d,u){function p(e){if(!m)return!1;var t=Math.abs(e.y-m.y),a=(e.x-m.x)*n;return g&&t0&&a>l&&t/as?(d=!1,void(i.cancel&&i.cancel(t))):(t.preventDefault(),void(i.move&&i.move(n,t)))}}),t.on(n(o,"end"),function(t){d&&(d=!1,i.end&&i.end(e(t),t))})}}}]);var s=["$parse","$timeout","$rootElement",function(e,a,i){function o(e,t,n,a){return Math.abs(e-n)h)){var t=e.touches&&e.touches.length?e.touches:[e],a=t[0].clientX,i=t[0].clientY;a<1&&i<1||p&&p[0]===a&&p[1]===i||(p&&(p=null),"label"===n(e.target)&&(p=[a,i]),s(u,a,i)||(e.stopPropagation(),e.preventDefault(),e.target&&e.target.blur&&e.target.blur()))}}function l(e){var t=e.touches&&e.touches.length?e.touches:[e],n=t[0].clientX,i=t[0].clientY;u.push(n,i),a(function(){for(var e=0;e
';return{restrict:"EA",compile:function(e,t){var n=o(_);return function(e,t,a){function o(){A.isOpen?u():c()}function c(){I&&!e.$eval(a[d+"Enable"])||(v(),A.popupDelay?C||(C=s(g,A.popupDelay,!1),C.then(function(e){e()})):g()())}function u(){e.$apply(function(){h()})}function g(){return C=null,S&&(s.cancel(S),S=null),A.content?(f(),k.css({top:0,left:0,display:"block"}),M?r.find("body").append(k):t.after(k),E(),A.isOpen=!0,A.$digest(),E):angular.noop}function h(){A.isOpen=!1,s.cancel(C),C=null,A.animation?S||(S=s(_,500)):_()}function f(){k&&_(),$=A.$new(),k=n($,angular.noop)}function _(){S=null,k&&(k.remove(),k=null),$&&($.$destroy(),$=null)}function v(){y(),b()}function y(){var e=a[d+"Placement"];A.placement=angular.isDefined(e)?e:m.placement}function b(){var e=a[d+"PopupDelay"],t=parseInt(e,10);A.popupDelay=isNaN(t)?m.popupDelay:t}function w(){var e=a[d+"Trigger"];T(),x=p(e),x.show===x.hide?t.bind(x.show,o):(t.bind(x.show,c),t.bind(x.hide,u))}var k,$,S,C,M=!!angular.isDefined(m.appendToBody)&&m.appendToBody,x=p(void 0),I=angular.isDefined(a[d+"Enable"]),A=e.$new(!0),E=function(){var e=l.positionElements(t,k,A.placement,M);e.top+="px",e.left+="px",k.css(e)};A.isOpen=!1,a.$observe(i,function(e){A.content=e,!e&&A.isOpen&&h()}),a.$observe(d+"Title",function(e){A.title=e});var T=function(){t.unbind(x.show,c),t.unbind(x.hide,u)};w();var D=e.$eval(a[d+"Animation"]);A.animation=angular.isDefined(D)?!!D:m.animation;var P=e.$eval(a[d+"AppendToBody"]);M=angular.isDefined(P)?P:M,M&&e.$on("$locationChangeSuccess",function(){A.isOpen&&h()}),e.$on("$destroy",function(){s.cancel(S),s.cancel(C),T(),_(),A=null})}}}}}]}).directive("tooltipPopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-popup.html"}}).directive("tooltip",["$tooltip",function(e){return e("tooltip","tooltip","mouseenter")}]).directive("tooltipHtmlUnsafePopup",function(){return{restrict:"EA",replace:!0,scope:{content:"@",placement:"@",animation:"&",isOpen:"&"},templateUrl:"template/tooltip/tooltip-html-unsafe-popup.html"}}).directive("tooltipHtmlUnsafe",["$tooltip",function(e){return e("tooltipHtmlUnsafe","tooltip","mouseenter")}]),angular.module("ui.bootstrap.position",[]).factory("$position",["$document","$window",function(e,t){function n(e,n){return e.currentStyle?e.currentStyle[n]:t.getComputedStyle?t.getComputedStyle(e)[n]:e.style[n]}function a(e){return"static"===(n(e,"position")||"static")}var i=function(t){for(var n=e[0],i=t.offsetParent||n;i&&i!==n&&a(i);)i=i.offsetParent;return i||n};return{position:function(t){var n=this.offset(t),a={top:0,left:0},o=i(t[0]);o!=e[0]&&(a=this.offset(angular.element(o)),a.top+=o.clientTop-o.scrollTop,a.left+=o.clientLeft-o.scrollLeft);var s=t[0].getBoundingClientRect();return{width:s.width||t.prop("offsetWidth"),height:s.height||t.prop("offsetHeight"),top:n.top-a.top,left:n.left-a.left}},offset:function(n){var a=n[0].getBoundingClientRect();return{width:a.width||n.prop("offsetWidth"),height:a.height||n.prop("offsetHeight"),top:a.top+(t.pageYOffset||e[0].documentElement.scrollTop),left:a.left+(t.pageXOffset||e[0].documentElement.scrollLeft)}},positionElements:function(e,t,n,a){var i,o,s,r,l=n.split("-"),c=l[0],d=l[1]||"center";i=a?this.offset(e):this.position(e),o=t.prop("offsetWidth"),s=t.prop("offsetHeight");var u={center:function(){return i.left+i.width/2-o/2},left:function(){return i.left},right:function(){return i.left+i.width}},p={center:function(){return i.top+i.height/2-s/2},top:function(){return i.top},bottom:function(){return i.top+i.height}};switch(c){case"right":r={top:p[d](),left:u[c]()};break;case"left":r={top:p[d](),left:i.left-o};break;case"bottom":r={top:p[c](),left:u[d]()};break;default:r={top:i.top-s,left:u[d]()}}return r}}}]),angular.module("ui.bootstrap.bindHtml",[]).directive("bindHtmlUnsafe",function(){return function(e,t,n){t.addClass("ng-binding").data("$binding",n.bindHtmlUnsafe),e.$watch(n.bindHtmlUnsafe,function(e){t.html(e||"")})}}),angular.module("ui.bootstrap.modal",["ui.bootstrap.transition"]).factory("$$stackedMap",function(){return{createNew:function(){var e=[];return{add:function(t,n){e.push({key:t,value:n})},get:function(t){for(var n=0;nt){n=!0;break}}e(n)})}function r(){for(var e=-1,t=g.keys(),n=0;n0),c()})}function c(){if(u&&r()==-1){var e=p;d(u,p,0,function(){e.$destroy(),e=null}),u=void 0,p=void 0}else s()}function d(n,a,i,o){function s(){s.done||(s.done=!0,n.remove(),o&&o())}a.animate=!1;var r=e.transitionEndEventName;if(r){var l=t(s,i);n.bind(r,function(){t.cancel(l),s(),a.$apply()})}else t(s)}var u,p,m="modal-open",g=o.createNew(),h={},f=[];return i.$watch(r,function(e){p&&(p.index=e)}),n.bind("keydown",function(e){var t;27===e.which&&(t=g.top(),t&&t.value.keyboard&&(e.preventDefault(),i.$apply(function(){h.dismiss(t.key,"escape key press")})))}),h.registerObserverCallback=function(e){f.push(e)},h.open=function(e,t){g.add(e,{deferred:t.deferred,modalScope:t.scope,backdrop:t.backdrop,keyboard:t.keyboard});var o=n.find("body").eq(0),l=r();if(l>=0&&!u){p=i.$new(!0),p.index=l;var c=angular.element("
");c.attr("backdrop-class",t.backdropClass),u=a(c)(p),o.append(u)}var d=angular.element("
"),h=g.length()-1;d.attr({"template-url":t.windowTemplateUrl,"window-class":t.windowClass,size:t.size,index:h,animate:"animate"}).html(t.content);var f=a(d)(t.scope);g.top().value.modalDomEl=f,g.top().value.index=h,o.append(f),o.addClass(m),s()},h.close=function(e,t){var n=g.get(e);n&&(n.value.deferred.resolve(t),l(e))},h.dismiss=function(e,t){var n=g.get(e);n&&(n.value.deferred.reject(t),l(e))},h.dismissAll=function(e){for(var t=this.getTop();t;)this.dismiss(t.key,e),t=this.getTop()},h.getTop=function(){return g.top()},h}]).provider("$modal",function(){var e={options:{backdrop:!0,keyboard:!0},$get:["$injector","$rootScope","$q","$http","$templateCache","$controller","$modalStack",function(t,n,a,i,o,s,r){function l(e){return e.template?a.when(e.template):i.get(angular.isFunction(e.templateUrl)?e.templateUrl():e.templateUrl,{cache:o}).then(function(e){return e.data})}function c(e){var n=[];return angular.forEach(e,function(e){(angular.isFunction(e)||angular.isArray(e))&&n.push(a.when(t.invoke(e)))}),n}var d={};return d.open=function(t){var i=a.defer(),o=a.defer(),d={result:i.promise,opened:o.promise,close:function(e){r.close(d,e)},dismiss:function(e){r.dismiss(d,e)}};if(t=angular.extend({},e.options,t),t.resolve=t.resolve||{},!t.template&&!t.templateUrl)throw new Error("One of template or templateUrl options is required.");var u=a.all([l(t)].concat(c(t.resolve)));return u.then(function(e){var a=(t.scope||n).$new();a.$close=d.close,a.$dismiss=d.dismiss;var o,l={},c=1;t.controller&&(l.$scope=a,l.$modalInstance=d,angular.forEach(t.resolve,function(t,n){l[n]=e[c++]}),o=s(t.controller,l),t.controllerAs&&(a[t.controllerAs]=o)),r.open(d,{scope:a,deferred:i,content:e[0],backdrop:t.backdrop,keyboard:t.keyboard,backdropClass:t.backdropClass,windowClass:t.windowClass,windowTemplateUrl:t.windowTemplateUrl,size:t.size})},function(e){i.reject(e)}),u.then(function(){o.resolve(!0)},function(){o.reject(!1)}),d},d}]};return e}),angular.module("ui.bootstrap.transition",[]).factory("$transition",["$q","$timeout","$rootScope",function(e,t,n){function a(e){for(var t in e)if(void 0!==o.style[t])return e[t]}var i=function(a,o,s){s=s||{};var r=e.defer(),l=i[s.animation?"animationEndEventName":"transitionEndEventName"],c=function(e){n.$apply(function(){a.unbind(l,c),r.resolve(a)})};return l&&a.bind(l,c),t(function(){angular.isString(o)?a.addClass(o):angular.isFunction(o)?o(a):angular.isObject(o)&&a.css(o),l||r.resolve(a)}),r.promise.cancel=function(){l&&a.unbind(l,c),r.reject("Transition cancelled")},r.promise},o=document.createElement("trans"),s={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd",transition:"transitionend"},r={WebkitTransition:"webkitAnimationEnd",MozTransition:"animationend",OTransition:"oAnimationEnd",transition:"animationend"};return i.transitionEndEventName=a(s),i.animationEndEventName=a(r),i}]),angular.module("template/tooltip/tooltip-html-unsafe-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-html-unsafe-popup.html",'
\n
\n
\n
\n')}]),angular.module("template/tooltip/tooltip-popup.html",[]).run(["$templateCache",function(e){e.put("template/tooltip/tooltip-popup.html",'
\n
\n
\n
\n')}]),angular.module("template/modal/backdrop.html",[]).run(["$templateCache",function(e){e.put("template/modal/backdrop.html",'\n'); -}]),angular.module("template/modal/window.html",[]).run(["$templateCache",function(e){e.put("template/modal/window.html",'')}]),angular.module("mediaPlayer",["mediaPlayer.helpers"]).constant("mp.playerDefaults",{currentTrack:0,ended:void 0,network:void 0,playing:!1,seeking:!1,tracks:0,volume:1,formatDuration:"00:00",formatTime:"00:00",loadPercent:0}).directive("mediaPlayer",["$rootScope","$interpolate","$timeout","mp.throttle","mp.playerDefaults",function(e,t,n,a,i){function o(e){return function(t,a,i){var o,s=null;if(e.$attachPlaylist(t),void 0===t&&void 0!==a)return e.pause();if(e.currentTrack){o=a?a[e.currentTrack-1]:-1;for(var r=0;re?(this.currentTrack=e+1,this.load(this.$playlist[e],!0)):(!this.currentTrack&&this.$domEl.readyState&&this.currentTrack++,void(this.ended?this.load(!0):this.$domEl.play()))},playPause:function(e,t){"boolean"==typeof e&&(t=e,e=void 0),t&&(this.$selective=!0),"number"==typeof e&&e+1!==this.currentTrack?this.play(e):this.playing?this.pause():this.play()},pause:function(){this.$domEl.pause()},stop:function(){this.reset()},toggleMute:function(){this.muted=this.$domEl.muted=!this.$domEl.muted},next:function(e){var t=this;if(t.currentTrack&&t.currentTrack0?(n<10?"0"+n:n)+":"+o:o},$attachPlaylist:function(e){void 0===e||null===e?this.playlist=[]:this.$playlist=e}},r=function(e,t,n){var i={playing:function(){e.$apply(function(e){e.playing=!0,e.ended=!1})},pause:function(){e.$apply(function(e){e.playing=!1})},ended:function(){!e.$selective&&e.currentTrack/
').appendTo($("body"))[0];u.addEventListener("load",function(e){i=u.firstChild,console.log(dT(),"NaCl ready")},!0),u.addEventListener("message",function(e){d(e.data.taskID,e.data.result)},!0),u.addEventListener("error",function(e){console.error("NaCl error",e)},!0)}if(window.Worker){var p=new Worker("js/lib/crypto_worker.js");p.onmessage=function(e){a?d(e.data.taskID,e.data.result):a=p},p.onerror=function(e){console.error("CW error",e,e.stack),a=!1}}return{sha1Hash:function(n){if(l){var a=t.defer(),i=Array.isArray(n)?convertToUint8Array(n):n;return r.digest({name:"SHA-1"},i).then(function(e){a.resolve(e)},function(e){console.error("Crypto digest error",e),l=!1,a.resolve(sha1HashSync(n))}),a.promise}return e(function(){return sha1HashSync(n)})},sha256Hash:function(n){if(c){var a=t.defer(),i=Array.isArray(n)?convertToUint8Array(n):n;return r.digest({name:"SHA-256"},i).then(function(e){a.resolve(e)},function(e){console.error("Crypto digest error",e),c=!1,a.resolve(sha256HashSync(n))}),a.promise}return e(function(){return sha256HashSync(n)})},aesEncrypt:function(t,a,o){return i?n("aes-encrypt",{bytes:addPadding(convertToArrayBuffer(t)),keyBytes:convertToArrayBuffer(a),ivBytes:convertToArrayBuffer(o)},i):e(function(){return convertToArrayBuffer(aesEncryptSync(t,a,o))})},aesDecrypt:function(t,a,o){return i?n("aes-decrypt",{encryptedBytes:addPadding(convertToArrayBuffer(t)),keyBytes:convertToArrayBuffer(a),ivBytes:convertToArrayBuffer(o)},i):e(function(){return convertToArrayBuffer(aesDecryptSync(t,a,o))})},factorize:function(t){return t=convertToByteArray(t),i&&t.length<=8?n("factorize",{bytes:t},i):a?n("factorize",{bytes:t}):e(function(){return pqPrimeFactorization(t)})},modPow:function(t,i,o){return a?n("mod-pow",{x:t,y:i,m:o}):e(function(){return bytesModPow(t,i,o)})}}}]).service("ExternalResourcesManager",["$q","$http","$sce",function(e,t,n){function a(a){return void 0!==i[a]?i[a]:i[a]=t.get(a,{responseType:"blob",transformRequest:null}).then(function(e){window.URL=window.URL||window.webkitURL;var t=window.URL.createObjectURL(e.data);return n.trustAsResourceUrl(t)},function(t){return Config.Modes.chrome_packed?e.reject(t):e.when(n.trustAsResourceUrl(a))})}var i={};return{downloadByURL:a}}]).service("IdleManager",["$rootScope","$window","$timeout",function(e,t,n){function a(){r||(r=!0,$(t).on(c+" blur focus keydown mousedown touchstart",i),setTimeout(function(){i({type:"blur",fake_initial:!0})},0))}function i(a){if("mousemove"==a.type){var a=a.originalEvent||a;if(a&&0===a.movementX&&0===a.movementY)return;$(t).off("mousemove",i)}var r="blur"==a.type||"timeout"==a.type;l&&document[l]&&(r=!0),n.cancel(o),r||(o=n(function(){i({type:"timeout"})},3e4)),"focus"!=a.type||e.idle.afterFocus||(e.idle.afterFocus=!0,setTimeout(function(){delete e.idle.afterFocus},10));var c=e.idle.initial?0:1e3;a&&!a.fake_initial&&delete e.idle.initial,n.cancel(s),e.idle.isIDLE!=r&&(s=n(function(){e.idle.isIDLE=r,r&&"timeout"==a.type&&$(t).on("mousemove",i)},c))}e.idle={isIDLE:!1,initial:!0};var o,s,r=!1,l="hidden",c="visibilitychange";return"undefined"!=typeof document.hidden||("undefined"!=typeof document.mozHidden?(l="mozHidden",c="mozvisibilitychange"):"undefined"!=typeof document.msHidden?(l="msHidden",c="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(l="webkitHidden",c="webkitvisibilitychange")),{start:a}}]).service("GeoLocationManager",["$q",function(e){function t(){return void 0!==navigator.geolocation}function n(n){if(!n&&a)return e.when(a);if(!t())return e.reject();var i=e.defer();return navigator.geolocation.getCurrentPosition(function(e){a={lat:e.coords.latitude,"long":e.coords.longitude},i.resolve(a)},function(e){i.reject(e)}),i.promise}var a=!1;return{getPosition:n,isAvailable:t}}]).service("AppRuntimeManager",["$window",function(e){return{reload:function(){try{location.reload()}catch(t){}e.chrome&&chrome.runtime&&chrome.runtime.reload&&chrome.runtime.reload()},close:function(){try{e.close()}catch(t){}},focus:function(){window.navigator.mozApps&&document.hidden?window.navigator.mozApps.getSelf().onsuccess=function(){this.result.launch()}:(window.chrome&&chrome.app&&chrome.app.window&&chrome.app.window.current().focus(),window.focus())}}}]).service("RichTextProcessor",["$sce","$sanitize",function(e,t){function n(e){for(var t,n,a,i,o=0;o-1)return n=Math.floor(t/i),a=t%i,{category:o,row:n,column:a};return console.error("emoji not found in spritesheet",e),null}function a(e,t){t=t||{};for(var a,i,o,s,r,l=e,c=[],u=0;a=l.match(M);){if(r=u+a.index,a[3])c.push({_:"messageEntityMention",offset:r+a[1].length,length:a[2].length+a[3].length});else if(a[4])if(x.test(a[4]))c.push({_:"messageEntityEmail",offset:r,length:a[4].length});else{var i=!1,p=a[5],m=a[6],g="";if(m){if(p||"xn--"!==m.substr(0,4)&&Config.TLD.indexOf(m.toLowerCase())===-1||(p="http://"),p){var _=d(a[4]);_.length!==a[4].length&&(g=a[4].substring(_.length),a[4]=_),i=(a[5]?"":p)+a[4]}}else i=(a[5]?"":"http://")+a[4];i&&c.push({_:"messageEntityUrl",offset:r,length:a[4].length})}else a[7]?c.push({_:"messageEntityLinebreak",offset:r,length:1}):a[8]?(o=h[a[8]])&&(s=n(o))&&c.push({_:"messageEntityEmoji",offset:r,length:a[0].length,coords:s,title:f[o][1][0]}):a[10]?c.push({_:"messageEntityHashtag",offset:r+a[9].length,length:a[10].length}):a[12]&&c.push({_:"messageEntityBotCommand",offset:r+a[11].length,length:1+a[12].length+(a[13]?1+a[13].length:0)});l=l.substr(a.index+a[0].length),u+=a.index+a[0].length}return c}function i(e){return e.replace(/:([a-z0-9\-\+\*_]+?):/gi,function(e,t){var n=EmojiHelper.shortcuts[t];return void 0!==n?EmojiHelper.emojis[n][0]:e})}function o(e,t,n){if(!I.test(e))return n?e:e.trim();for(var a,i,o=e,s=[],r=0;a=o.match(A);){i=r+a.index,s.push(o.substr(0,a.index));var e=a[3]||a[8]||a[11];r-=e.length,e=e.replace(/^\s+|\s+$/g,""),r+=e.length,e.match(/^`*$/)?s.push(a[0]):a[3]?("\n"==a[5]&&(a[5]="",r-=1),s.push(a[1]+e+a[5]),t.push({_:"messageEntityPre",language:"",offset:i+a[1].length,length:e.length}),r-=a[2].length+a[4].length):a[7]?(s.push(a[6]+e+a[9]),t.push({_:D[a[7]],offset:i+a[6].length,length:e.length}),r-=2):a[11]&&(s.push(e),t.push({_:"messageEntityMentionName",user_id:a[10],offset:i,length:e.length}),r-=a[0].length-e.length),o=o.substr(a.index+a[0].length),r+=a.index+a[0].length}return s.push(o),s=s.join(""),s.replace(/\s+/g,"").length||(s=e,t.splice(0,t.length)),t.length||n||(s=s.trim()),s}function s(e,t,n){var a,i,o,s,r,l,c,d,u,p=t.slice(),m=e.length,g=t.length,h=0;for(a=0;a=c&&rc&&l<=d){n&&r>=c&&l<=d&&(void 0===s.nested&&(s.nested=[]),o.offset-=c,s.nested.push(angular.copy(o))),u=!0;break}if(c>=l)break}u||p.push(o)}return p.sort(function(e,t){return e.offset-t.offset}),p}function r(e,t,n){return void 0===t?encodeEntities(e):(n.hasNested=!0,l(e,{entities:t,nested:!0}))}function l(n,i){if(!n||!n.length)return"";i=i||{};var o=i.entities,s=i.contextSite||"Telegram",l="Telegram"!=s,c=!1;void 0===o&&(o=a(n,i));var d,p,g,h,f=0,v=o.length,y=[],b=0,w=i.emojiIconSize||_;for(f=0;fb)y.push(encodeEntities(n.substr(b,d.offset-b)));else if(d.offset',encodeEntities(p),"");break;case"messageEntityMentionName":if(i.noLinks){g=!0;break}y.push('',encodeEntities(p),"");break;case"messageEntityHashtag":var k=!i.noLinks&&E[s];if(!k){g=!0;break}var C=p.substr(1);y.push("',encodeEntities(p),"");break;case"messageEntityEmail":if(i.noLinks){g=!0;break}y.push('',encodeEntities(p),"");break;case"messageEntityUrl":case"messageEntityTextUrl":if(i.noLinks){g=!0;break}var M;"messageEntityTextUrl"==d._?(h=d.url,h=m(h,!0),M=r(p,d.nested,i)):(h=m(p,!1),M=encodeEntities(u(p))),y.push('',M,"");break;case"messageEntityLinebreak":y.push(i.noLinebreaks?" ":"
");break;case"messageEntityEmoji":y.push('',":",d.title,":"),c=!0;break;case"messageEntityBotCommand":if(i.noLinks||i.noCommands||l){g=!0;break}var x,I,A=p.substr(1);(I=A.indexOf("@"))!=-1?(x=A.substr(I+1),A=A.substr(0,I)):x=i.fromBot,y.push('',encodeEntities(p),"");break;case"messageEntityBold":y.push("",r(p,d.nested,i),"");break;case"messageEntityItalic":y.push("",r(p,d.nested,i),"");break;case"messageEntityCode":y.push("",encodeEntities(p),"");break;case"messageEntityPre":y.push("
",encodeEntities(p),"
");break;default:g=!0}b=d.offset+(g?0:d.length)}if(y.push(encodeEntities(n.substr(b))),n=t(y.join("")),!i.nested&&(c||i.hasNested)){n=n.replace(/\ufe0f|️|�|‍/g,"",n);var D=18==w?"":" emoji-w"+w;n=n.replace(/]*)?) class="emoji emoji-(\d)-(\d+)-(\d+)"(.+?)<\/span>/g,'')}return e.trustAs("html",n)}function c(e,t){if(!e||!e.length)return"";t=t||{};var n=t.entities;void 0===n&&(n=a(e,t));var i,o,s,r=0,l=n.length,c=[],d=0;for(r=0;rd)c.push(e.substr(d,i.offset-d));else if(i.offsetn&&")"===e.charAt(t-1);)e=e.substr(0,t-1),a--,t--;return n>a&&(e=e.replace(/\)+$/,"")),e}function u(e){return e.replace(/(%[A-Z\d]{2})+/g,function(e){try{return decodeURIComponent(e)}catch(t){return e}})}function p(e,t){if(v)return e;if(!e||!e.length)return"";t=t||{},e=e.replace(/\ufe0f/g,"",e);for(var n,a,i=e,e=[];n=i.match(M);)e.push(i.substr(0,n.index)),n[8]&&(g=h[n[8]])&&(a=f[g][1][0])?e.push(":"+a+":"):e.push(n[0]),i=i.substr(n.index+n[0].length);return e.push(i),e.join("")}function m(e,t){e.match(/^https?:\/\//i)||(e="http://"+e);var n;if(2==t)e="tg://unsafe_url?url="+encodeURIComponent(e);else if(n=e.match(/^https?:\/\/telegram\.me\/(.+)/)){var a=n[1].split("/");switch(a[0]){case"joinchat":e="tg://join?invite="+a[1];break;case"addstickers":e="tg://addstickers?set="+a[1];break;default:if(a[1]&&a[1].match(/^\d+$/))e="tg://resolve?domain="+a[0]+"&post="+a[1];else if(!a[1]){var i=a[0].split("?");e="tg://resolve?domain="+i[0]+(i[1]?"&"+i[1]:"")}}}else t&&(e="tg://unsafe_url?url="+encodeURIComponent(e));return e}var g,h={},f=Config.Emoji,_=18,v=navigator.userAgent.search(/OS X|iPhone|iPad|iOS|Android/i)!=-1,y="\\u0023\\u20E3|\\u00a9|\\u00ae|\\u203c|\\u2049|\\u2139|[\\u2194-\\u2199]|\\u21a9|\\u21aa|\\u231a|\\u231b|\\u23e9|[\\u23ea-\\u23ec]|\\u23f0|\\u24c2|\\u25aa|\\u25ab|\\u25b6|\\u2611|\\u2614|\\u26fd|\\u2705|\\u2709|[\\u2795-\\u2797]|\\u27a1|\\u27b0|\\u27bf|\\u2934|\\u2935|[\\u2b05-\\u2b07]|\\u2b1b|\\u2b1c|\\u2b50|\\u2b55|\\u3030|\\u303d|\\u3297|\\u3299|[\\uE000-\\uF8FF\\u270A-\\u2764\\u2122\\u25C0\\u25FB-\\u25FE\\u2615\\u263a\\u2648-\\u2653\\u2660-\\u2668\\u267B\\u267F\\u2693\\u261d\\u26A0-\\u26FA\\u2708\\u2702\\u2601\\u260E]|[\\u2600\\u26C4\\u26BE\\u23F3\\u2764]|\\uD83D[\\uDC00-\\uDFFF]|\\uD83C[\\uDDE8-\\uDDFA�]\\uD83C[\\uDDEA-\\uDDFA�]|[0-9]\\u20e3|\\uD83C[\\uDC00-\\uDFFF]";for(g in f)h[f[g][0]]=g;var b="a-z\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u00ff\\u0100-\\u024f\\u0253\\u0254\\u0256\\u0257\\u0259\\u025b\\u0263\\u0268\\u026f\\u0272\\u0289\\u028b\\u02bb\\u0300-\\u036f\\u1e00-\\u1eff\\u0400-\\u04ff\\u0500-\\u0527\\u2de0-\\u2dff\\ua640-\\ua69f\\u0591-\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05f0-\\u05f4\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufb4f\\u0610-\\u061a\\u0620-\\u065f\\u066e-\\u06d3\\u06d5-\\u06dc\\u06de-\\u06e8\\u06ea-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0750-\\u077f\\u08a0\\u08a2-\\u08ac\\u08e4-\\u08fe\\ufb50-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\u200c\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u1100-\\u11ff\\u3130-\\u3185\\uA960-\\uA97F\\uAC00-\\uD7AF\\uD7B0-\\uD7FF\\u3003\\u3005\\u303b\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uff9f\\uffa1-\\uffdc",w="0-9_"+b,k="·",$="((?:https?|ftp)://|mailto:)?(?:\\S{1,64}(?::\\S{0,64})?@)?(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(?:\\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){3}|["+b+"0-9]["+b+k+"0-9-]{0,64}(?:\\.["+b+"0-9]["+b+k+"0-9-]{0,64}){0,10}(?:\\.(xn--[0-9a-z]{2,16}|["+b+"]{2,24})))(?::\\d{2,5})?(?:/(?:\\S{0,255}[^\\s.;,(\\[\\]{}<>\"'])?)?",S="[a-zA-Z\\d_]{5,32}",C="\\/([a-zA-Z\\d_]{1,32})(?:@("+S+"))?(\\b|$)",M=new RegExp("(^| )(@)("+S+")|("+$+")|(\\n)|("+y+")|(^|[\\s\\(\\]])(#["+w+"]{2,64})|(^|\\s)"+C,"i"),x=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,I=/[`_*@]/,A=/(^|\s)(````?)([\s\S]+?)(````?)([\s\n\.,:?!;]|$)|(^|\s)([`*_])([^\n]+?)\7([\s\.,:?!;]|$)|@(\d+)\s*\((.+?)\)/,E={Telegram:"tg://search_hashtag?hashtag={1}",Twitter:"https://twitter.com/hashtag/{1}",Instagram:"https://instagram.com/explore/tags/{1}/","Google Plus":"https://plus.google.com/explore/{1}"},T={Telegram:"#/im?p=%40{1}",Twitter:"https://twitter.com/{1}",Instagram:"https://instagram.com/{1}/",GitHub:"https://github.com/{1}"},D={"`":"messageEntityCode","*":"messageEntityBold",_:"messageEntityItalic"};return{wrapRichText:l,wrapPlainText:p,wrapDraftText:c,wrapUrl:m,parseEntities:a,parseMarkdown:o,parseEmojis:i,mergeEntities:s}}]).service("ServerTimeManager",["Storage",function(e){var t=tsNow(!0),n=t-t%86400,a=new Date;a.setHours(0),a.setMinutes(0),a.setSeconds(0);var i=n-Math.floor(+a/1e3),o=0,s={midnightOffset:i,serverTimeOffset:o};return e.get("server_time_offset").then(function(e){e&&(o=e,s.serverTimeOffset=e)}),s}]).service("WebPushApiManager",["$window","$timeout","$q","$rootScope","_","AppRuntimeManager",function(e,t,n,a,i,o){function s(){b||(b=!0,l(),g())}function r(){y=!1}function l(){_&&navigator.serviceWorker.ready.then(function(e){e.pushManager.getSubscription().then(function(e){v=!!e,h("init",e)})["catch"](function(e){console.log("Error during getSubscription()",e)})})}function c(){_&&navigator.serviceWorker.ready.then(function(e){e.pushManager.subscribe({userVisibleOnly:!0}).then(function(e){v=!0,h("subscribe",e)})["catch"](function(e){"denied"===Notification.permission?console.log("Permission for Notifications was denied"):console.log("Unable to subscribe to push.",e)})})}function d(){_&&navigator.serviceWorker.ready.then(function(e){e.pushManager.getSubscription().then(function(e){v=!1,e&&(h("unsubscribe",e),setTimeout(function(){e.unsubscribe().then(function(e){v=!1})["catch"](function(e){console.error("Unsubscription error: ",e)})},3e3))})["catch"](function(e){console.error("Error thrown while unsubscribing from push messaging.",e)})})}function u(){if(!(!_||a.idle&&a.idle.deactivated)){var e={type:"ping",localNotifications:y,baseUrl:(location.href||"").replace(/#.*$/,"")+"#/im",lang:{push_action_mute1d:i(Config.Mobile?"push_action_mute1d_mobile_raw":"push_action_mute1d_raw"),push_action_settings:i(Config.Mobile?"push_action_settings_mobile_raw":"push_action_settings_raw"),push_message_nopreview:i("push_message_nopreview_raw")},settings:w};navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage(e),f=setTimeout(u,1e4)}}function p(e){w=e,clearTimeout(f),u()}function m(){if(_&&navigator.serviceWorker.controller){var e={type:"notifications_clear"};navigator.serviceWorker.controller.postMessage(e)}}function g(){_&&(navigator.serviceWorker.addEventListener("message",function(e){if(e.data&&"push_click"==e.data.type){if(a.idle&&a.idle.deactivated)return void o.reload();a.$emit("push_notification_click",e.data.data)}}),navigator.serviceWorker.ready.then(u))}function h(e,t){if(t){var n=t.toJSON();if(!(n&&n.endpoint&&n.keys&&n.keys.p256dh&&n.keys.auth))return console.warn(dT(),"Invalid push subscription",n),d(),_=!1,h(e,!1);console.warn(dT(),"Push",e,n),a.$emit("push_"+e,{tokenType:10,tokenValue:JSON.stringify(n)})}else console.warn(dT(),"Push",e,!1),a.$emit("push_"+e,!1)}var f,_=!0,v=!1,y=!0,b=!1,w={};return"PushManager"in window&&"Notification"in window&&"serviceWorker"in navigator||(console.warn("Push messaging is not supported."),_=!1,y=!1),"denied"===Notification.permission&&console.warn("The user has blocked notifications."),{isAvailable:_,start:s,isPushEnabled:v,subscribe:c,unsubscribe:d,hidePushNotifications:m,setLocalNotificationsDisabled:r,setSettings:p}}]),angular.module("myApp.i18n",["izhukov.utils"]).factory("_",["$rootScope","$locale",function(e,t){function n(e,t){return e.replace(l,function(a,i,o){var s=t[i];return void 0===s?(console.warn("[i18n] missing param "+i+' for message "'+e+'"'),""):(void 0!==o&&(s=n(s,o.split("|"))),s.toString().trim())})}function a(e,t){return e=e.replace(/\*\*(.+?)\*\*/g,"$1").replace(/\n| /g,"
")}function i(e,t){var i=!1,l=e;if("_raw"===e.substr(-4)&&(i=!0,e=e.substr(0,e.length-4)),s.hasOwnProperty(e))l=s[e];else{if(!r.hasOwnProperty(e))return console.warn("[i18n] missing key "+e),e;l=r[e],console.warn("[i18n] missing locale key "+o+" / "+e)}return i||(l=encodeEntities(l)),"_md"==e.substr(-3)&&(l=a(l)),arguments.length>1&&("string"==typeof t?(Array.prototype.shift.apply(arguments),l=n(l,arguments)):l=n(l,t)),l}var o=Config.I18n.locale,s=Config.I18n.messages,r=Config.I18n.fallback_messages,l=/\{\s*([a-zA-Z\d\-_]+)(?:\s*:\s*(.*?))?\s*\}/g;return i.locale=function(){return o},i.pluralize=function(n){var a=e.$eval(i(n+"_raw"));return function(e){return(a[t.pluralCat(e)]||"").replace("{}",e)}},i}]).filter("i18n",["_",function(e){return function(t,n){return e(t+"_raw",n)}}]).directive("ngPluralize",["_",function(e){return{restrict:"EA",priority:1,compile:function(t){var n=t.attr("when"),a=e(n+"_raw");t.attr("when",a)}}}]).directive("myI18n",["_",function(e){return{restrict:"EA",compile:function(t){var n=t.children('my-i18n-param:not([name]), [my-i18n-param=""]:not([name])').map(function(e,t){return t.outerHTML}).toArray();t.children('my-i18n-param[name], [my-i18n-param]:not([my-i18n-param=""]), [my-i18n-param][name]').each(function(e,t){n[angular.element(t).attr("my-i18n-param")||angular.element(t).attr("name")]=t.outerHTML}),t.children("my-i18n-param").remove(); +}else if(e.charAt(0)>=97&&e.charAt(0)<=122){for(var u=0;u10485760)return e.reject();if(!(a instanceof Blob)){var i=a.type||"image/jpeg",o="data:"+i+";base64,"+bytesToBase64(a);return r(t,n,o).then(function(){return a})}try{var s=new FileReader}catch(c){return h=!1,e.reject()}var d=e.defer();s.onloadend=function(){r(t,n,s.result).then(function(){d.resolve(a)},function(e){d.reject(e)})},s.onerror=function(e){d.reject(e)};try{s.readAsDataURL(a)}catch(c){return h=!1,e.reject()}return d.promise}function r(t,n,a){try{var i=t.transaction([m],IDBTransaction.READ_WRITE||"readwrite").objectStore(m),o=i.put(a,n)}catch(s){return h=!1,e.reject(s)}var r=e.defer();return o.onsuccess=function(e){r.resolve()},o.onerror=function(e){r.reject(e)},r.promise}function l(e){return e.size||e.byteLength||e.length}function c(t){return i().then(function(n){var a=e.defer(),i=n.transaction([m],IDBTransaction.READ||"readonly").objectStore(m),o=i.get(t);return o.onsuccess=function(e){var t=e.target.result;void 0===t?a.reject():"string"==typeof t&&"data:"===t.substr(0,5)?a.resolve(dataUrlToBlob(t)):a.resolve(t)},o.onerror=function(e){a.reject(e)},a.promise})}function d(t,a){var i=n.getFakeFileWriter(a,function(e){o(t,e)});return e.when(i)}t.indexedDB=t.indexedDB||t.webkitIndexedDB||t.mozIndexedDB||t.OIndexedDB||t.msIndexedDB,t.IDBTransaction=t.IDBTransaction||t.webkitIDBTransaction||t.OIDBTransaction||t.msIDBTransaction;var u,p="cachedFiles",m="files",g=2,h=void 0!==t.indexedDB&&void 0!==t.IDBTransaction;h&&navigator.userAgent.indexOf("Safari")!=-1&&navigator.userAgent.indexOf("Chrome")==-1&&navigator.userAgent.match(/Version\/[678]/)&&(h=!1);var f=h||!1;return i(),{name:"IndexedDB",isAvailable:a,saveFile:o,getFile:c,getFileWriter:d}}]).service("TmpfsFileStorage",["$q","$window","FileManager",function(e,t,n){function a(){if(l)return l;if(!t.requestFileSystem)return l=e.reject({type:"FS_BROWSER_UNSUPPORTED",description:"requestFileSystem not present"});var n=e.defer();return t.requestFileSystem(t.TEMPORARY,524288e3,function(e){cachedFs=e,n.resolve()},function(e){c=!1,n.reject(e)}),l=n.promise}function i(){return c}function o(t,n){return n=n||1,a().then(function(){var a=e.defer();return cachedFs.root.getFile(t,{create:!1},function(e){e.file(function(t){t.size>=n?a.resolve(e):a.reject(new Error("FILE_NOT_FOUND"))},function(e){console.log(dT(),"error",e),a.reject(e)})},function(){a.reject(new Error("FILE_NOT_FOUND"))}),a.promise})}function s(e,t){return r(e).then(function(e){return n.write(e,t).then(function(){return e.finalize()})})}function r(t){return a().then(function(){var a=e.defer();return cachedFs.root.getFile(t,{create:!0},function(e){n.getFileWriter(e).then(function(t){t.finalize=function(){return e},a.resolve(t)},function(e){c=!1,a.reject(e)})},function(e){c=!1,a.reject(e)}),a.promise})}t.requestFileSystem=t.requestFileSystem||t.webkitRequestFileSystem;var l,c=void 0!==t.requestFileSystem;return a(),{name:"TmpFS",isAvailable:i,saveFile:s,getFile:o,getFileWriter:r}}]).service("MemoryFileStorage",["$q","FileManager",function(e,t){function n(){return!0}function a(t,n){return s[t]?e.when(s[t]):e.reject(new Error("FILE_NOT_FOUND"))}function i(t,n){return e.when(s[t]=n)}function o(n,a){var o=t.getFakeFileWriter(a,function(e){i(n,e)});return e.when(o)}var s={};return{name:"Memory",isAvailable:n,saveFile:i,getFile:a,getFileWriter:o}}]).service("WebpManager",["qSync","$q",function(e,t){function n(e){var t=(tsNow(),new WebPDecoder),n=t.WebPDecoderConfig,a=n.j||n.output,i=n.input;if(!t.WebPInitDecoderConfig(n))return console.error("[webpjs] Library version mismatch!"),!1;var o=t.VP8StatusCode;status=t.WebPGetFeatures(e,e.length,i),status!=(o.VP8_STATUS_OK||0)&&console.error("[webpjs] status error",status,o);var l=t.WEBP_CSP_MODE;a.colorspace=l.MODE_RGBA,a.J=4;try{status=t.WebPDecode(e,e.length,n)}catch(c){status=c}if(ok=0==status,!ok)return console.error("[webpjs] decoding failed",status,o),!1;var d=a.c.RGBA.ma;if(!d)return!1;var u=a.height,p=a.width;s&&r?r.clearRect(0,0,s.width,s.height):(s=document.createElement("canvas"),r=s.getContext("2d")),s.height=u,s.width=p;for(var m=r.createImageData(s.width,s.height),g=m.data,h=0;h').appendTo($("body"))[0];u.addEventListener("load",function(e){i=u.firstChild,console.log(dT(),"NaCl ready")},!0),u.addEventListener("message",function(e){d(e.data.taskID,e.data.result)},!0),u.addEventListener("error",function(e){console.error("NaCl error",e)},!0)}if(window.Worker){var p=new Worker("js/lib/crypto_worker.js");p.onmessage=function(e){a?d(e.data.taskID,e.data.result):a=p},p.onerror=function(e){console.error("CW error",e,e.stack),a=!1}}return{sha1Hash:function(n){if(l){var a=t.defer(),i=Array.isArray(n)?convertToUint8Array(n):n;return r.digest({name:"SHA-1"},i).then(function(e){a.resolve(e)},function(e){console.error("Crypto digest error",e),l=!1,a.resolve(sha1HashSync(n))}),a.promise}return e(function(){return sha1HashSync(n)})},sha256Hash:function(n){if(c){var a=t.defer(),i=Array.isArray(n)?convertToUint8Array(n):n;return r.digest({name:"SHA-256"},i).then(function(e){a.resolve(e)},function(e){console.error("Crypto digest error",e),c=!1,a.resolve(sha256HashSync(n))}),a.promise}return e(function(){return sha256HashSync(n)})},aesEncrypt:function(t,a,o){return i?n("aes-encrypt",{bytes:addPadding(convertToArrayBuffer(t)),keyBytes:convertToArrayBuffer(a),ivBytes:convertToArrayBuffer(o)},i):e(function(){return convertToArrayBuffer(aesEncryptSync(t,a,o))})},aesDecrypt:function(t,a,o){return i?n("aes-decrypt",{encryptedBytes:addPadding(convertToArrayBuffer(t)),keyBytes:convertToArrayBuffer(a),ivBytes:convertToArrayBuffer(o)},i):e(function(){return convertToArrayBuffer(aesDecryptSync(t,a,o))})},factorize:function(t){return t=convertToByteArray(t),i&&t.length<=8?n("factorize",{bytes:t},i):a?n("factorize",{bytes:t}):e(function(){return pqPrimeFactorization(t)})},modPow:function(t,i,o){return a?n("mod-pow",{x:t,y:i,m:o}):e(function(){return bytesModPow(t,i,o)})}}}]).service("ExternalResourcesManager",["$q","$http","$sce",function(e,t,n){function a(a){return void 0!==i[a]?i[a]:i[a]=t.get(a,{responseType:"blob",transformRequest:null}).then(function(e){window.URL=window.URL||window.webkitURL;var t=window.URL.createObjectURL(e.data);return n.trustAsResourceUrl(t)},function(t){return Config.Modes.chrome_packed?e.reject(t):e.when(n.trustAsResourceUrl(a))})}var i={};return{downloadByURL:a}}]).service("IdleManager",["$rootScope","$window","$timeout",function(e,t,n){function a(){r||(r=!0,$(t).on(c+" blur focus keydown mousedown touchstart",i),setTimeout(function(){i({type:"blur",fake_initial:!0})},0))}function i(a){if("mousemove"==a.type){var a=a.originalEvent||a;if(a&&0===a.movementX&&0===a.movementY)return;$(t).off("mousemove",i)}var r="blur"==a.type||"timeout"==a.type;l&&document[l]&&(r=!0),n.cancel(o),r||(o=n(function(){i({type:"timeout"})},3e4)),"focus"!=a.type||e.idle.afterFocus||(e.idle.afterFocus=!0,setTimeout(function(){delete e.idle.afterFocus},10));var c=e.idle.initial?0:1e3;a&&!a.fake_initial&&delete e.idle.initial,n.cancel(s),e.idle.isIDLE!=r&&(s=n(function(){e.idle.isIDLE=r,r&&"timeout"==a.type&&$(t).on("mousemove",i)},c))}e.idle={isIDLE:!1,initial:!0};var o,s,r=!1,l="hidden",c="visibilitychange";return"undefined"!=typeof document.hidden||("undefined"!=typeof document.mozHidden?(l="mozHidden",c="mozvisibilitychange"):"undefined"!=typeof document.msHidden?(l="msHidden",c="msvisibilitychange"):"undefined"!=typeof document.webkitHidden&&(l="webkitHidden",c="webkitvisibilitychange")),{start:a}}]).service("GeoLocationManager",["$q",function(e){function t(){return void 0!==navigator.geolocation}function n(n){if(!n&&a)return e.when(a);if(!t())return e.reject();var i=e.defer();return navigator.geolocation.getCurrentPosition(function(e){a={lat:e.coords.latitude,"long":e.coords.longitude},i.resolve(a)},function(e){i.reject(e)}),i.promise}var a=!1;return{getPosition:n,isAvailable:t}}]).service("AppRuntimeManager",["$window",function(e){return{reload:function(){try{location.reload()}catch(t){}e.chrome&&chrome.runtime&&chrome.runtime.reload&&chrome.runtime.reload()},close:function(){try{e.close()}catch(t){}},focus:function(){window.navigator.mozApps&&document.hidden?window.navigator.mozApps.getSelf().onsuccess=function(){this.result.launch()}:(window.chrome&&chrome.app&&chrome.app.window&&chrome.app.window.current().focus(),window.focus())}}}]).service("RichTextProcessor",["$sce","$sanitize",function(e,t){function n(e){for(var t,n,a,i,o=0;o-1)return n=Math.floor(t/i),a=t%i,{category:o,row:n,column:a};return console.error("emoji not found in spritesheet",e),null}function a(e,t){t=t||{};for(var a,i,o,s,r,l=e,c=[],u=0;a=l.match(M);){if(r=u+a.index,a[3])c.push({_:"messageEntityMention",offset:r+a[1].length,length:a[2].length+a[3].length});else if(a[4])if(x.test(a[4]))c.push({_:"messageEntityEmail",offset:r,length:a[4].length});else{var i=!1,p=a[5],m=a[6],g="";if(m){if(p||"xn--"!==m.substr(0,4)&&Config.TLD.indexOf(m.toLowerCase())===-1||(p="http://"),p){var _=d(a[4]);_.length!==a[4].length&&(g=a[4].substring(_.length),a[4]=_),i=(a[5]?"":p)+a[4]}}else i=(a[5]?"":"http://")+a[4];i&&c.push({_:"messageEntityUrl",offset:r,length:a[4].length})}else a[7]?c.push({_:"messageEntityLinebreak",offset:r,length:1}):a[8]?(o=h[a[8]])&&(s=n(o))&&c.push({_:"messageEntityEmoji",offset:r,length:a[0].length,coords:s,title:f[o][1][0]}):a[10]?c.push({_:"messageEntityHashtag",offset:r+a[9].length,length:a[10].length}):a[12]&&c.push({_:"messageEntityBotCommand",offset:r+a[11].length,length:1+a[12].length+(a[13]?1+a[13].length:0)});l=l.substr(a.index+a[0].length),u+=a.index+a[0].length}return c}function i(e){return e.replace(/:([a-z0-9\-\+\*_]+?):/gi,function(e,t){var n=EmojiHelper.shortcuts[t];return void 0!==n?EmojiHelper.emojis[n][0]:e})}function o(e,t,n){if(!I.test(e))return n?e:e.trim();for(var a,i,o=e,s=[],r=0;a=o.match(A);){i=r+a.index,s.push(o.substr(0,a.index));var e=a[3]||a[8]||a[11];r-=e.length,e=e.replace(/^\s+|\s+$/g,""),r+=e.length,e.match(/^`*$/)?s.push(a[0]):a[3]?("\n"==a[5]&&(a[5]="",r-=1),s.push(a[1]+e+a[5]),t.push({_:"messageEntityPre",language:"",offset:i+a[1].length,length:e.length}),r-=a[2].length+a[4].length):a[7]?(s.push(a[6]+e+a[9]),t.push({_:D[a[7]],offset:i+a[6].length,length:e.length}),r-=2):a[11]&&(s.push(e),t.push({_:"messageEntityMentionName",user_id:a[10],offset:i,length:e.length}),r-=a[0].length-e.length),o=o.substr(a.index+a[0].length),r+=a.index+a[0].length}return s.push(o),s=s.join(""),s.replace(/\s+/g,"").length||(s=e,t.splice(0,t.length)),t.length||n||(s=s.trim()),s}function s(e,t,n){var a,i,o,s,r,l,c,d,u,p=t.slice(),m=e.length,g=t.length,h=0;for(a=0;a=c&&rc&&l<=d){n&&r>=c&&l<=d&&(void 0===s.nested&&(s.nested=[]),o.offset-=c,s.nested.push(angular.copy(o))),u=!0;break}if(c>=l)break}u||p.push(o)}return p.sort(function(e,t){return e.offset-t.offset}),p}function r(e,t,n){return void 0===t?encodeEntities(e):(n.hasNested=!0,l(e,{entities:t,nested:!0}))}function l(n,i){if(!n||!n.length)return"";i=i||{};var o=i.entities,s=i.contextSite||"Telegram",l="Telegram"!=s,c=!1;void 0===o&&(o=a(n,i));var d,p,g,h,f=0,v=o.length,y=[],b=0,w=i.emojiIconSize||_;for(f=0;fb)y.push(encodeEntities(n.substr(b,d.offset-b)));else if(d.offset',encodeEntities(p),"");break;case"messageEntityMentionName":if(i.noLinks){g=!0;break}y.push('',encodeEntities(p),"");break;case"messageEntityHashtag":var k=!i.noLinks&&E[s];if(!k){g=!0;break}var C=p.substr(1);y.push("',encodeEntities(p),"");break;case"messageEntityEmail":if(i.noLinks){g=!0;break}y.push('',encodeEntities(p),"");break;case"messageEntityUrl":case"messageEntityTextUrl":if(i.noLinks){g=!0;break}var M;"messageEntityTextUrl"==d._?(h=d.url,h=m(h,!0),M=r(p,d.nested,i)):(h=m(p,!1),M=encodeEntities(u(p))),y.push('',M,"");break;case"messageEntityLinebreak":y.push(i.noLinebreaks?" ":"
");break;case"messageEntityEmoji":y.push('',":",d.title,":"),c=!0;break;case"messageEntityBotCommand":if(i.noLinks||i.noCommands||l){g=!0;break}var x,I,A=p.substr(1);(I=A.indexOf("@"))!=-1?(x=A.substr(I+1),A=A.substr(0,I)):x=i.fromBot,y.push('',encodeEntities(p),"");break;case"messageEntityBold":y.push("",r(p,d.nested,i),"");break;case"messageEntityItalic":y.push("",r(p,d.nested,i),"");break;case"messageEntityCode":y.push("",encodeEntities(p),"");break;case"messageEntityPre":y.push("
",encodeEntities(p),"
");break;default:g=!0}b=d.offset+(g?0:d.length)}if(y.push(encodeEntities(n.substr(b))),n=t(y.join("")),!i.nested&&(c||i.hasNested)){n=n.replace(/\ufe0f|️|�|‍/g,"",n);var D=18==w?"":" emoji-w"+w;n=n.replace(/]*)?) class="emoji emoji-(\d)-(\d+)-(\d+)"(.+?)<\/span>/g,'')}return e.trustAs("html",n)}function c(e,t){if(!e||!e.length)return"";t=t||{};var n=t.entities;void 0===n&&(n=a(e,t));var i,o,s,r=0,l=n.length,c=[],d=0;for(r=0;rd)c.push(e.substr(d,i.offset-d));else if(i.offsetn&&")"===e.charAt(t-1);)e=e.substr(0,t-1),a--,t--;return n>a&&(e=e.replace(/\)+$/,"")),e}function u(e){return e.replace(/(%[A-Z\d]{2})+/g,function(e){try{return decodeURIComponent(e)}catch(t){return e}})}function p(e,t){if(v)return e;if(!e||!e.length)return"";t=t||{},e=e.replace(/\ufe0f/g,"",e);for(var n,a,i=e,e=[];n=i.match(M);)e.push(i.substr(0,n.index)),n[8]&&(g=h[n[8]])&&(a=f[g][1][0])?e.push(":"+a+":"):e.push(n[0]),i=i.substr(n.index+n[0].length);return e.push(i),e.join("")}function m(e,t){e.match(/^https?:\/\//i)||(e="http://"+e);var n;if(2==t)e="tg://unsafe_url?url="+encodeURIComponent(e);else if(n=e.match(/^https?:\/\/telegram\.me\/(.+)/)){var a=n[1].split("/");switch(a[0]){case"joinchat":e="tg://join?invite="+a[1];break;case"addstickers":e="tg://addstickers?set="+a[1];break;default:if(a[1]&&a[1].match(/^\d+$/))e="tg://resolve?domain="+a[0]+"&post="+a[1];else if(!a[1]){var i=a[0].split("?");e="tg://resolve?domain="+i[0]+(i[1]?"&"+i[1]:"")}}}else t&&(e="tg://unsafe_url?url="+encodeURIComponent(e));return e}var g,h={},f=Config.Emoji,_=18,v=navigator.userAgent.search(/OS X|iPhone|iPad|iOS|Android/i)!=-1,y="\\u0023\\u20E3|\\u00a9|\\u00ae|\\u203c|\\u2049|\\u2139|[\\u2194-\\u2199]|\\u21a9|\\u21aa|\\u231a|\\u231b|\\u23e9|[\\u23ea-\\u23ec]|\\u23f0|\\u24c2|\\u25aa|\\u25ab|\\u25b6|\\u2611|\\u2614|\\u26fd|\\u2705|\\u2709|[\\u2795-\\u2797]|\\u27a1|\\u27b0|\\u27bf|\\u2934|\\u2935|[\\u2b05-\\u2b07]|\\u2b1b|\\u2b1c|\\u2b50|\\u2b55|\\u3030|\\u303d|\\u3297|\\u3299|[\\uE000-\\uF8FF\\u270A-\\u2764\\u2122\\u25C0\\u25FB-\\u25FE\\u2615\\u263a\\u2648-\\u2653\\u2660-\\u2668\\u267B\\u267F\\u2693\\u261d\\u26A0-\\u26FA\\u2708\\u2702\\u2601\\u260E]|[\\u2600\\u26C4\\u26BE\\u23F3\\u2764]|\\uD83D[\\uDC00-\\uDFFF]|\\uD83C[\\uDDE8-\\uDDFA�]\\uD83C[\\uDDEA-\\uDDFA�]|[0-9]\\u20e3|\\uD83C[\\uDC00-\\uDFFF]";for(g in f)h[f[g][0]]=g;var b="a-z\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u00ff\\u0100-\\u024f\\u0253\\u0254\\u0256\\u0257\\u0259\\u025b\\u0263\\u0268\\u026f\\u0272\\u0289\\u028b\\u02bb\\u0300-\\u036f\\u1e00-\\u1eff\\u0400-\\u04ff\\u0500-\\u0527\\u2de0-\\u2dff\\ua640-\\ua69f\\u0591-\\u05bf\\u05c1-\\u05c2\\u05c4-\\u05c5\\u05c7\\u05d0-\\u05ea\\u05f0-\\u05f4\\ufb1d-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufb4f\\u0610-\\u061a\\u0620-\\u065f\\u066e-\\u06d3\\u06d5-\\u06dc\\u06de-\\u06e8\\u06ea-\\u06ef\\u06fa-\\u06fc\\u06ff\\u0750-\\u077f\\u08a0\\u08a2-\\u08ac\\u08e4-\\u08fe\\ufb50-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\u200c\\u0e01-\\u0e3a\\u0e40-\\u0e4e\\u1100-\\u11ff\\u3130-\\u3185\\uA960-\\uA97F\\uAC00-\\uD7AF\\uD7B0-\\uD7FF\\u3003\\u3005\\u303b\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uff9f\\uffa1-\\uffdc",w="0-9_"+b,k="·",$="((?:https?|ftp)://|mailto:)?(?:\\S{1,64}(?::\\S{0,64})?@)?(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])(?:\\.(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])){3}|["+b+"0-9]["+b+k+"0-9-]{0,64}(?:\\.["+b+"0-9]["+b+k+"0-9-]{0,64}){0,10}(?:\\.(xn--[0-9a-z]{2,16}|["+b+"]{2,24})))(?::\\d{2,5})?(?:/(?:\\S{0,255}[^\\s.;,(\\[\\]{}<>\"'])?)?",S="[a-zA-Z\\d_]{5,32}",C="\\/([a-zA-Z\\d_]{1,32})(?:@("+S+"))?(\\b|$)",M=new RegExp("(^| )(@)("+S+")|("+$+")|(\\n)|("+y+")|(^|[\\s\\(\\]])(#["+w+"]{2,64})|(^|\\s)"+C,"i"),x=/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,I=/[`_*@]/,A=/(^|\s)(````?)([\s\S]+?)(````?)([\s\n\.,:?!;]|$)|(^|\s)([`*_])([^\n]+?)\7([\s\.,:?!;]|$)|@(\d+)\s*\((.+?)\)/,E={Telegram:"tg://search_hashtag?hashtag={1}",Twitter:"https://twitter.com/hashtag/{1}",Instagram:"https://instagram.com/explore/tags/{1}/","Google Plus":"https://plus.google.com/explore/{1}"},T={Telegram:"#/im?p=%40{1}",Twitter:"https://twitter.com/{1}",Instagram:"https://instagram.com/{1}/",GitHub:"https://github.com/{1}"},D={"`":"messageEntityCode","*":"messageEntityBold",_:"messageEntityItalic"};return{wrapRichText:l,wrapPlainText:p,wrapDraftText:c,wrapUrl:m,parseEntities:a,parseMarkdown:o,parseEmojis:i,mergeEntities:s}}]).service("ServerTimeManager",["Storage",function(e){var t=tsNow(!0),n=t-t%86400,a=new Date;a.setHours(0),a.setMinutes(0),a.setSeconds(0);var i=n-Math.floor(+a/1e3),o=0,s={midnightOffset:i,serverTimeOffset:o};return e.get("server_time_offset").then(function(e){e&&(o=e,s.serverTimeOffset=e)}),s}]).service("WebPushApiManager",["$window","$timeout","$q","$rootScope","_","AppRuntimeManager",function(e,t,n,a,i,o){function s(){b||(b=!0,l(),g())}function r(){y=!1}function l(){_&&navigator.serviceWorker.ready.then(function(e){e.pushManager.getSubscription().then(function(e){v=!!e,h("init",e)})["catch"](function(e){console.log("Error during getSubscription()",e)})})}function c(){_&&navigator.serviceWorker.ready.then(function(e){e.pushManager.subscribe({userVisibleOnly:!0}).then(function(e){v=!0,h("subscribe",e)})["catch"](function(e){"denied"===Notification.permission?console.log("Permission for Notifications was denied"):console.log("Unable to subscribe to push.",e)})})}function d(){_&&navigator.serviceWorker.ready.then(function(e){e.pushManager.getSubscription().then(function(e){v=!1,e&&(h("unsubscribe",e),setTimeout(function(){e.unsubscribe().then(function(e){v=!1})["catch"](function(e){console.error("Unsubscription error: ",e)})},3e3))})["catch"](function(e){console.error("Error thrown while unsubscribing from push messaging.",e)})})}function u(){if(!(!_||a.idle&&a.idle.deactivated)){var e={type:"ping",localNotifications:y,baseUrl:(location.href||"").replace(/#.*$/,"")+"#/im",lang:{push_action_mute1d:i(Config.Mobile?"push_action_mute1d_mobile_raw":"push_action_mute1d_raw"),push_action_settings:i(Config.Mobile?"push_action_settings_mobile_raw":"push_action_settings_raw"),push_message_nopreview:i("push_message_nopreview_raw")},settings:w};navigator.serviceWorker.controller&&navigator.serviceWorker.controller.postMessage(e),f=setTimeout(u,1e4)}}function p(e){w=e,clearTimeout(f),u()}function m(){if(_&&navigator.serviceWorker.controller){var e={type:"notifications_clear"};navigator.serviceWorker.controller.postMessage(e)}}function g(){_&&(navigator.serviceWorker.addEventListener("message",function(e){if(e.data&&"push_click"==e.data.type){if(a.idle&&a.idle.deactivated)return void o.reload();a.$emit("push_notification_click",e.data.data)}}),navigator.serviceWorker.ready.then(u))}function h(e,t){if(t){var n=t.toJSON();if(!(n&&n.endpoint&&n.keys&&n.keys.p256dh&&n.keys.auth))return console.warn(dT(),"Invalid push subscription",n),d(),_=!1,h(e,!1);console.warn(dT(),"Push",e,n),a.$emit("push_"+e,{tokenType:10,tokenValue:JSON.stringify(n)})}else console.warn(dT(),"Push",e,!1),a.$emit("push_"+e,!1)}var f,_=!0,v=!1,y=!0,b=!1,w={};return"PushManager"in window&&"Notification"in window&&"serviceWorker"in navigator||(console.warn("Push messaging is not supported."),_=!1,y=!1),_&&"denied"===Notification.permission&&console.warn("The user has blocked notifications."),{isAvailable:_,start:s,isPushEnabled:v,subscribe:c,unsubscribe:d,hidePushNotifications:m,setLocalNotificationsDisabled:r,setSettings:p}}]),angular.module("myApp.i18n",["izhukov.utils"]).factory("_",["$rootScope","$locale",function(e,t){function n(e,t){return e.replace(l,function(a,i,o){var s=t[i];return void 0===s?(console.warn("[i18n] missing param "+i+' for message "'+e+'"'),""):(void 0!==o&&(s=n(s,o.split("|"))),s.toString().trim())})}function a(e,t){return e=e.replace(/\*\*(.+?)\*\*/g,"$1").replace(/\n| /g,"
")}function i(e,t){var i=!1,l=e;if("_raw"===e.substr(-4)&&(i=!0,e=e.substr(0,e.length-4)),s.hasOwnProperty(e))l=s[e];else{if(!r.hasOwnProperty(e))return console.warn("[i18n] missing key "+e),e;l=r[e],console.warn("[i18n] missing locale key "+o+" / "+e)}return i||(l=encodeEntities(l)),"_md"==e.substr(-3)&&(l=a(l)),arguments.length>1&&("string"==typeof t?(Array.prototype.shift.apply(arguments),l=n(l,arguments)):l=n(l,t)),l}var o=Config.I18n.locale,s=Config.I18n.messages,r=Config.I18n.fallback_messages,l=/\{\s*([a-zA-Z\d\-_]+)(?:\s*:\s*(.*?))?\s*\}/g;return i.locale=function(){return o},i.pluralize=function(n){var a=e.$eval(i(n+"_raw"));return function(e){return(a[t.pluralCat(e)]||"").replace("{}",e)}},i}]).filter("i18n",["_",function(e){return function(t,n){return e(t+"_raw",n)}}]).directive("ngPluralize",["_",function(e){return{restrict:"EA",priority:1,compile:function(t){var n=t.attr("when"),a=e(n+"_raw");t.attr("when",a)}}}]).directive("myI18n",["_",function(e){return{restrict:"EA",compile:function(t){var n=t.children('my-i18n-param:not([name]), [my-i18n-param=""]:not([name])').map(function(e,t){return t.outerHTML}).toArray();t.children('my-i18n-param[name], [my-i18n-param]:not([my-i18n-param=""]), [my-i18n-param][name]').each(function(e,t){n[angular.element(t).attr("my-i18n-param")||angular.element(t).attr("name")]=t.outerHTML}),t.children("my-i18n-param").remove(); var a=t.attr("my-i18n")||t.attr("msgid")?t:t.children("my-i18n-format, [my-i18n-format]");a.each(function(t,a){var i=angular.element(a),o=i.attr("my-i18n")||i.attr("msgid")||i.attr("my-i18n-format")||i.html().replace(/\s+/g," ").trim();if(i.hasClass("nocopy")){var s=e(o+"_raw",n);i.attr("data-content",s)}else{var s=e(o,n);i.html(s)}})}}}]),angular.module("izhukov.mtproto",["izhukov.utils"]).factory("MtpDcConfigurator",function(){function e(e,i){if(void 0===a[e]){var o,s,r=!1;if(Config.Modes.ssl||!Config.Modes.http){var l=t[e-1]+(i?"-1":""),c=Config.Modes.test?"apiw_test1":"apiw1";return r="https://"+l+".web.telegram.org/"+c}for(o=0;os[0]||a[0]==s[0]&&a[1]>=s[1])&&(s=[a[0],a[1]+4]),a=s,longFromInts(s[0],s[1])}function n(t,n){var o=t-Math.floor((n||tsNow())/1e3),s=Math.abs(i-o)>10;return e.set({server_time_offset:o}),a=[0,0],i=o,console.log(dT(),"Apply server time",t,n,o,s),s}var a=[0,0],i=0;return e.get("server_time_offset").then(function(e){e&&(i=e)}),{generateID:t,applyServerTime:n}}]).factory("MtpAuthorizer",["MtpDcConfigurator","MtpRsaKeysManager","MtpSecureRandom","MtpTimeManager","CryptoWorker","$http","$q","$timeout",function(e,t,n,a,i,o,s,r){function l(t,n){var i=n.byteLength,r=new Int32Array(n),l=new TLSerialization;l.storeLongP(0,0,"auth_key_id"),l.storeLong(a.generateID(),"msg_id"),l.storeInt(i,"request_length");var c=l.getBuffer(),d=new Int32Array(c),u=c.byteLength,p=new ArrayBuffer(u+i),m=new Int32Array(p);m.set(d),m.set(r,d.length);var g,h=_?p:m,f=e.chooseServer(t),v={code:406,type:"NETWORK_BAD_RESPONSE",url:f};try{g=o.post(f,h,{responseType:"arraybuffer",transformRequest:null})}catch(y){g=s.reject(angular.extend(v,{originalError:y}))}return g.then(function(e){if(!e.data||!e.data.byteLength)return s.reject(v);try{var t=new TLDeserialization(e.data,{mtproto:!0});t.fetchLong("auth_key_id"),t.fetchLong("msg_id"),t.fetchInt("msg_len")}catch(n){return s.reject(angular.extend(v,{originalError:n}))}return t},function(e){return e.message||e.type||(e=angular.extend(v,{originalError:e})),s.reject(e)})}function c(e){var n=e.deferred,a=new TLSerialization({mtproto:!0});a.storeMethod("req_pq",{nonce:e.nonce}),console.log(dT(),"Send req_pq",bytesToHex(e.nonce)),l(e.dcID,a.getBuffer()).then(function(a){var o=a.fetchObject("ResPQ");if("resPQ"!=o._)throw new Error("[MT] resPQ response invalid: "+o._);if(!bytesCmp(e.nonce,o.nonce))throw new Error("[MT] resPQ nonce mismatch");if(e.serverNonce=o.server_nonce,e.pq=o.pq,e.fingerprints=o.server_public_key_fingerprints,console.log(dT(),"Got ResPQ",bytesToHex(e.serverNonce),bytesToHex(e.pq),e.fingerprints),e.publicKey=t.select(e.fingerprints),!e.publicKey)throw new Error("[MT] No public key found");console.log(dT(),"PQ factorization start",e.pq),i.factorize(e.pq).then(function(t){e.p=t[0],e.q=t[1],console.log(dT(),"PQ factorization done",t[2]),d(e)},function(e){console.log("Worker error",e,e.stack),n.reject(e)})},function(e){console.error(dT(),"req_pq error",e.message),n.reject(e)}),r(function(){t.prepare()})}function d(e){var t=e.deferred;e.newNonce=new Array(32),n.nextBytes(e.newNonce);var a=new TLSerialization({mtproto:!0});a.storeObject({_:"p_q_inner_data",pq:e.pq,p:e.p,q:e.q,nonce:e.nonce,server_nonce:e.serverNonce,new_nonce:e.newNonce},"P_Q_inner_data","DECRYPTED_DATA");var i=sha1BytesSync(a.getBuffer()).concat(a.getBytes()),o=new TLSerialization({mtproto:!0});o.storeMethod("req_DH_params",{nonce:e.nonce,server_nonce:e.serverNonce,p:e.p,q:e.q,public_key_fingerprint:e.publicKey.fingerprint,encrypted_data:rsaEncrypt(e.publicKey,i)}),console.log(dT(),"Send req_DH_params"),l(e.dcID,o.getBuffer()).then(function(n){var a=n.fetchObject("Server_DH_Params","RESPONSE");if("server_DH_params_fail"!=a._&&"server_DH_params_ok"!=a._)return t.reject(new Error("[MT] Server_DH_Params response invalid: "+a._)),!1;if(!bytesCmp(e.nonce,a.nonce))return t.reject(new Error("[MT] Server_DH_Params nonce mismatch")),!1;if(!bytesCmp(e.serverNonce,a.server_nonce))return t.reject(new Error("[MT] Server_DH_Params server_nonce mismatch")),!1;if("server_DH_params_fail"==a._){var i=sha1BytesSync(e.newNonce).slice(-16);return bytesCmp(i,a.new_nonce_hash)?(t.reject(new Error("[MT] server_DH_params_fail")),!1):(t.reject(new Error("[MT] server_DH_params_fail new_nonce_hash mismatch")),!1)}try{u(e,a.encrypted_answer)}catch(o){return t.reject(o),!1}m(e)},function(e){t.reject(e)})}function u(e,t){e.localTime=tsNow(),e.tmpAesKey=sha1BytesSync(e.newNonce.concat(e.serverNonce)).concat(sha1BytesSync(e.serverNonce.concat(e.newNonce)).slice(0,12)),e.tmpAesIv=sha1BytesSync(e.serverNonce.concat(e.newNonce)).slice(12).concat(sha1BytesSync([].concat(e.newNonce,e.newNonce)),e.newNonce.slice(0,4));var n=aesDecryptSync(t,e.tmpAesKey,e.tmpAesIv),i=n.slice(0,20),o=n.slice(20),s=bytesToArrayBuffer(o),r=new TLDeserialization(s,{mtproto:!0}),l=r.fetchObject("Server_DH_inner_data");if("server_DH_inner_data"!=l._)throw new Error("[MT] server_DH_inner_data response invalid: "+constructor);if(!bytesCmp(e.nonce,l.nonce))throw new Error("[MT] server_DH_inner_data nonce mismatch");if(!bytesCmp(e.serverNonce,l.server_nonce))throw new Error("[MT] server_DH_inner_data serverNonce mismatch");console.log(dT(),"Done decrypting answer"),e.g=l.g,e.dhPrime=l.dh_prime,e.gA=l.g_a,e.serverTime=l.server_time,e.retry=0,p(e.g,e.dhPrime,e.gA);var c=r.getOffset();if(!bytesCmp(i,sha1BytesSync(o.slice(0,c))))throw new Error("[MT] server_DH_inner_data SHA1-hash mismatch");a.applyServerTime(e.serverTime,e.localTime)}function p(e,t,n){console.log(dT(),"Verifying DH params");var a=bytesToHex(t);if(3!=e||"c71caeb9c6b1c9048e6c522f70f13f73980d40238e3e21c14934d037563d930f48198a0aa7c14058229493d22530f4dbfa336f6e0ac925139543aed44cce7c3720fd51f69458705ac68cd4fe6b6b13abdc9746512969328454f18faf8c595f642477fe96bb2a941d5bcd1d4ac8cc49880708fa9b378e3c4f3a9060bee67cf9a4a4a695811051907e162753b56b0f6b410dba74d8a84b2a14b3144e0ef1284754fd17ed950d5965b4b9dd46582db1178d169c6bc465b0d6ff9ca3928fef5b9ae4e418fc15e83ebea0f87fa9ff5eed70050ded2849f47bf959d956850ce929851f0d8115f635b105ee2e4e15d04b2454bf6f4fadf034b10403119cd8e3b92fcc5b"!==a)throw new Error("[MT] DH params are not verified: unknown dhPrime");console.log(dT(),"dhPrime cmp OK");var i=new BigInteger(bytesToHex(n),16),o=new BigInteger(a,16);if(i.compareTo(BigInteger.ONE)<=0)throw new Error("[MT] DH params are not verified: gA <= 1");if(i.compareTo(o.subtract(BigInteger.ONE))>=0)throw new Error("[MT] DH params are not verified: gA >= dhPrime - 1");console.log(dT(),"1 < gA < dhPrime-1 OK");var s=new BigInteger(null);s.fromInt(2);var r=s.pow(1984);if(i.compareTo(r)<0)throw new Error("[MT] DH params are not verified: gA < 2^{2048-64}");if(i.compareTo(o.subtract(r))>=0)throw new Error("[MT] DH params are not verified: gA > dhPrime - 2^{2048-64}");return console.log(dT(),"2^{2048-64} < gA < dhPrime-2^{2048-64} OK"),!0}function m(e){var t=e.deferred,a=bytesFromHex(e.g.toString(16));e.b=new Array(256),n.nextBytes(e.b),i.modPow(a,e.b,e.dhPrime).then(function(n){var a=new TLSerialization({mtproto:!0});a.storeObject({_:"client_DH_inner_data",nonce:e.nonce,server_nonce:e.serverNonce,retry_id:[0,e.retry++],g_b:n},"Client_DH_Inner_Data");var o=sha1BytesSync(a.getBuffer()).concat(a.getBytes()),s=aesEncryptSync(o,e.tmpAesKey,e.tmpAesIv),r=new TLSerialization({mtproto:!0});r.storeMethod("set_client_DH_params",{nonce:e.nonce,server_nonce:e.serverNonce,encrypted_data:s}),console.log(dT(),"Send set_client_DH_params"),l(e.dcID,r.getBuffer()).then(function(n){var a=n.fetchObject("Set_client_DH_params_answer");return"dh_gen_ok"!=a._&&"dh_gen_retry"!=a._&&"dh_gen_fail"!=a._?(t.reject(new Error("[MT] Set_client_DH_params_answer response invalid: "+a._)),!1):bytesCmp(e.nonce,a.nonce)?bytesCmp(e.serverNonce,a.server_nonce)?void i.modPow(e.gA,e.b,e.dhPrime).then(function(n){var i=sha1BytesSync(n),o=i.slice(0,8),s=i.slice(-8);switch(console.log(dT(),"Got Set_client_DH_params_answer",a._),a._){case"dh_gen_ok":var r=sha1BytesSync(e.newNonce.concat([1],o)).slice(-16);if(!bytesCmp(r,a.new_nonce_hash1))return t.reject(new Error("[MT] Set_client_DH_params_answer new_nonce_hash1 mismatch")),!1;var l=bytesXor(e.newNonce.slice(0,8),e.serverNonce.slice(0,8));e.authKeyID=s,e.authKey=n,e.serverSalt=l,t.resolve(e);break;case"dh_gen_retry":var c=sha1BytesSync(e.newNonce.concat([2],o)).slice(-16);return bytesCmp(c,a.new_nonce_hash2)?m(e):(t.reject(new Error("[MT] Set_client_DH_params_answer new_nonce_hash2 mismatch")),!1);case"dh_gen_fail":var d=sha1BytesSync(e.newNonce.concat([3],o)).slice(-16);return bytesCmp(d,a.new_nonce_hash3)?(t.reject(new Error("[MT] Set_client_DH_params_answer fail")),!1):(t.reject(new Error("[MT] Set_client_DH_params_answer new_nonce_hash3 mismatch")),!1)}},function(e){t.reject(e)}):(t.reject(new Error("[MT] Set_client_DH_params_answer server_nonce mismatch")),!1):(t.reject(new Error("[MT] Set_client_DH_params_answer nonce mismatch")),!1)},function(e){t.reject(e)})},function(e){t.reject(e)})}function g(t){if(void 0!==v[t])return v[t];for(var n=[],a=0;a<16;a++)n.push(nextRandomInt(255));if(!e.chooseServer(t))return s.reject(new Error("[MT] No server found for dc "+t));var i={dcID:t,nonce:n,deferred:s.defer()};return r(function(){c(i)}),v[t]=i.deferred.promise,v[t]["catch"](function(){delete v[t]}),v[t]}var h=navigator.userAgent.match(/Chrome\/(\d+(\.\d+)?)/),f=h&&parseFloat(h[1])||!1,_=!("ArrayBufferView"in window)&&(!f||f<30);delete o.defaults.headers.post["Content-Type"],delete o.defaults.headers.common.Accept;var v={};return{auth:g}}]).factory("MtpNetworkerFactory",["MtpDcConfigurator","MtpTimeManager","MtpSecureRandom","Storage","CryptoWorker","AppRuntimeManager","$http","$q","$timeout","$interval","$rootScope",function(e,t,n,a,i,o,s,r,l,c,d){function u(e,t,n,a){a=a||{},this.dcID=e,this.iii=h++,this.authKey=t,this.authKeyUint8=convertToUint8Array(t),this.authKeyBuffer=convertToArrayBuffer(t),this.authKeyID=sha1BytesSync(t).slice(-8),this.serverSalt=n,this.upload=a.fileUpload||a.fileDownload||!1,this.updateSession(),this.lastServerMessages=[],this.currentRequests=0,this.checkConnectionPeriod=0,this.sentMessages={},this.clientMessages=[],this.pendingMessages={},this.pendingAcks=[],this.pendingResends=[],this.connectionInited=!1,this.pendingTimeouts=[],this.longPollInt=c(this.checkLongPoll.bind(this),1e4),this.checkLongPoll(),f||(f=!0,d.offline=!0,d.offlineConnecting=!0),Config.Navigator.mobile&&this.setupMobileSleep()}function p(){_&&(_=!1,g({_:"new_session_created"},!0))}function m(){_=!0}var g,h=0,f=!1,_=!1,v=navigator.userAgent.match(/Chrome\/(\d+(\.\d+)?)/),y=v&&parseFloat(v[1])||!1,b=!("ArrayBufferView"in window)&&(!y||y<30);return delete s.defaults.headers.post["Content-Type"],delete s.defaults.headers.common.Accept,d.retryOnline=function(){$(document.body).trigger("online")},u.prototype.updateSession=function(){this.seqNo=0,this.prevSessionID=this.sessionID,this.sessionID=new Array(8),n.nextBytes(this.sessionID)},u.prototype.setupMobileSleep=function(){var e=this;d.$watch("idle.isIDLE",function(t){t?e.sleepAfter=tsNow()+3e4:(delete e.sleepAfter,e.checkLongPoll())}),d.$on("push_received",function(){e.sleepAfter&&(e.sleepAfter=tsNow()+3e4,e.checkLongPoll())})},u.prototype.updateSentMessage=function(e){var n=this.sentMessages[e];if(!n)return!1;var a=this;if(n.container){var i=[];angular.forEach(n.inner,function(e){var t=a.updateSentMessage(e);t&&i.push(t.msg_id)}),n.inner=i}return n.msg_id=t.generateID(),n.seq_no=this.generateSeqNo(n.notContentRelated||n.container),this.sentMessages[n.msg_id]=n,delete a.sentMessages[e],n},u.prototype.generateSeqNo=function(e){var t=2*this.seqNo;return e||(t++,this.seqNo++),t},u.prototype.wrapMtpCall=function(e,n,a){var i=new TLSerialization({mtproto:!0});i.storeMethod(e,n);var o=t.generateID(),s=this.generateSeqNo(),r={msg_id:o,seq_no:s,body:i.getBytes()};return Config.Modes.debug&&console.log(dT(),"MT call",e,n,o,s),this.pushMessage(r,a)},u.prototype.wrapMtpMessage=function(e,n){n=n||{};var a=new TLSerialization({mtproto:!0});a.storeObject(e,"Object");var i=t.generateID(),o=this.generateSeqNo(n.notContentRelated),s={msg_id:i,seq_no:o,body:a.getBytes()};return Config.Modes.debug&&console.log(dT(),"MT message",e,i,o),this.pushMessage(s,n)},u.prototype.wrapApiCall=function(e,n,a){var i=new TLSerialization(a);this.connectionInited||(i.storeInt(3667594509,"invokeWithLayer"),i.storeInt(Config.Schema.API.layer,"layer"),i.storeInt(1769565673,"initConnection"),i.storeInt(Config.App.id,"api_id"),i.storeString(navigator.userAgent||"Unknown UserAgent","device_model"),i.storeString(navigator.platform||"Unknown Platform","system_version"),i.storeString(Config.App.version,"app_version"),i.storeString(navigator.language||"en","lang_code")),a.afterMessageID&&(i.storeInt(3416209197,"invokeAfterMsg"),i.storeLong(a.afterMessageID,"msg_id")),a.resultType=i.storeMethod(e,n);var o=t.generateID(),s=this.generateSeqNo(),r={msg_id:o,seq_no:s,body:i.getBytes(!0),isAPI:!0};return Config.Modes.debug?console.log(dT(),"Api call",e,n,o,s,a):console.log(dT(),"Api call",e),this.pushMessage(r,a)},u.prototype.checkLongPoll=function(e){var t=this.cleanupSent();if(this.longPollPending&&tsNow()n.sleepAfter)||n.sendLongPoll()})},u.prototype.sendLongPoll=function(){var e=25e3,t=this;this.longPollPending=tsNow()+e,this.wrapMtpCall("http_wait",{max_delay:500,wait_after:150,max_wait:e},{noResponse:!0,longPoll:!0}).then(function(){delete t.longPollPending,setZeroTimeout(t.checkLongPoll.bind(t))},function(){console.log("Long-poll failed")})},u.prototype.pushMessage=function(e,t){var n=r.defer();return this.sentMessages[e.msg_id]=angular.extend(e,t||{},{deferred:n}),this.pendingMessages[e.msg_id]=0,t&&t.noShedule||this.sheduleRequest(),angular.isObject(t)&&(t.messageID=e.msg_id),n.promise},u.prototype.pushResend=function(e,t){var n=t?tsNow()+t:0,a=this.sentMessages[e];if(a.container)for(var i=0;i=l){if(o=m.sentMessages[t]){var n=(o.body.byteLength||o.body.length)+32;if(!o.notContentRelated&&u)return;if(!o.notContentRelated&&r&&r+n>655360)return void(u=!0);if(o.singleInRequest&&(p++,p>1))return;s.push(o),r+=n,o.isAPI?c=!0:o.longPoll&&(d=!0)}delete m.pendingMessages[t]}}),c&&!d){var g=new TLSerialization({mtproto:!0});g.storeMethod("http_wait",{max_delay:500,wait_after:150,max_wait:3e3}),s.push({msg_id:t.generateID(),seq_no:this.generateSeqNo(),body:g.getBytes()})}if(s.length){var h=[];if(s.length>1){var f=new TLSerialization({mtproto:!0,startMaxLength:r+64});f.storeInt(1945237724,"CONTAINER[id]"),f.storeInt(s.length,"CONTAINER[count]");for(var v=[],n=0;n1)&&this.sheduleRequest()}},u.prototype.getEncryptedMessage=function(e){var t=this;return i.sha1Hash(e).then(function(n){var a=new Uint8Array(n).subarray(4,20);return t.getMsgKeyIv(a,!0).then(function(t){return i.aesEncrypt(e,t[0],t[1]).then(function(e){return{bytes:e,msgKey:a}})})})},u.prototype.getDecryptedMessage=function(e,t){return this.getMsgKeyIv(e,!1).then(function(e){return i.aesDecrypt(t,e[0],e[1])})},u.prototype.sendEncryptedRequest=function(t,n){var i=this;n=n||{};var l=new TLSerialization({startMaxLength:t.body.length+64});return l.storeIntBytes(this.serverSalt,64,"salt"),l.storeIntBytes(this.sessionID,64,"session_id"),l.storeLong(t.msg_id,"message_id"),l.storeInt(t.seq_no,"seq_no"),l.storeInt(t.body.length,"message_data_length"),l.storeRawBytes(t.body,"message_data"),this.getEncryptedMessage(l.getBuffer()).then(function(t){var l=new TLSerialization({startMaxLength:t.bytes.byteLength+256});l.storeIntBytes(i.authKeyID,64,"auth_key_id"),l.storeIntBytes(t.msgKey,128,"msg_key"),l.storeRawBytes(t.bytes,"encrypted_data");var c,d=b?l.getBuffer():l.getArray(),u=e.chooseServer(i.dcID,i.upload),p={code:406,type:"NETWORK_BAD_RESPONSE",url:u};try{n=angular.extend(n||{},{responseType:"arraybuffer",transformRequest:null}),c=s.post(u,d,n)}catch(m){c=r.reject(m)}return c.then(function(e){return e.data&&e.data.byteLength?e:r.reject(p)},function(e){return 404==e.status&&(e.data||"").indexOf("nginx/0.3.33")!=-1&&a.remove("dc"+i.dcID+"_server_salt","dc"+i.dcID+"_auth_key").then(function(){o.reload()}),e.message||e.type||(e=angular.extend(p,{type:"NETWORK_BAD_REQUEST",originalError:e})),r.reject(e)})})},u.prototype.parseResponse=function(e){var t=this,n=new TLDeserialization(e),a=n.fetchIntBytes(64,!1,"auth_key_id");if(!bytesCmp(a,this.authKeyID))throw new Error("[MT] Invalid server auth_key_id: "+bytesToHex(a));var o=n.fetchIntBytes(128,!0,"msg_key"),s=n.fetchRawBytes(e.byteLength-n.getOffset(),!0,"encrypted_data");return this.getDecryptedMessage(o,s).then(function(e){var n=new TLDeserialization(e,{mtproto:!0}),a=(n.fetchIntBytes(64,!1,"salt"),n.fetchIntBytes(64,!1,"session_id")),s=n.fetchLong("message_id");if(!(bytesCmp(a,t.sessionID)||t.prevSessionID&&bytesCmp(a,t.prevSessionID)))throw console.warn("Sessions",a,t.sessionID,t.prevSessionID),new Error("[MT] Invalid server session_id: "+bytesToHex(a));var r=n.fetchInt("seq_no"),l=n.getOffset(),c=e.byteLength,d=n.fetchInt("message_data[length]");if(d%4||d>c-l)throw new Error("[MT] Invalid body length: "+d);var u=n.fetchRawBytes(d,!0,"message_data"),l=n.getOffset(),p=c-l;if(p<0||p>15)throw new Error("[MT] Invalid padding length: "+p);var m=convertToUint8Array(e).subarray(0,l);return i.sha1Hash(m).then(function(e){if(!bytesCmp(o,bytesFromArrayBuffer(e).slice(-16)))throw console.warn(o,bytesFromArrayBuffer(e)),new Error("[MT] server msgKey mismatch");var n=bytesToArrayBuffer(u),i={mtproto:!0,override:{mt_message:function(e,t){e.msg_id=this.fetchLong(t+"[msg_id]"),e.seqno=this.fetchInt(t+"[seqno]"),e.bytes=this.fetchInt(t+"[bytes]");var n=this.getOffset();try{e.body=this.fetchObject("Object",t+"[body]")}catch(a){console.error(dT(),"parse error",a.message,a.stack),e.body={_:"parse_error",error:a}}this.offset!=n+e.bytes&&(this.offset=n+e.bytes)},mt_rpc_result:function(e,n){e.req_msg_id=this.fetchLong(n+"[req_msg_id]");var a=t.sentMessages[e.req_msg_id],i=a&&a.resultType||"Object";e.req_msg_id&&!a||(e.result=this.fetchObject(i,n+"[result]"))}}},l=new TLDeserialization(n,i),c=l.fetchObject("","INPUT");return{response:c,messageID:s,sessionID:a,seqNo:r}})})},u.prototype.applyServerSalt=function(e){var t=longToBytes(e),n={};return n["dc"+this.dcID+"_server_salt"]=bytesToHex(t),a.set(n),this.serverSalt=t,!0},u.prototype.sheduleRequest=function(e){this.offline&&this.checkConnection("forced shedule");var t=tsNow()+e;return!(e&&this.nextReq&&this.nextReq<=t)&&(l.cancel(this.nextReqPromise),e>0?this.nextReqPromise=l(this.performSheduledRequest.bind(this),e||0):setZeroTimeout(this.performSheduledRequest.bind(this)),void(this.nextReq=t))},u.prototype.ackMessage=function(e){this.pendingAcks.push(e),this.sheduleRequest(3e4)},u.prototype.reqResendMessage=function(e){console.log(dT(),"Req resend",e),this.pendingResends.push(e),this.sheduleRequest(100)},u.prototype.cleanupSent=function(){var e=this,t=!1;return angular.forEach(this.sentMessages,function(n,a){if(n.notContentRelated&&void 0===e.pendingMessages[a])delete e.sentMessages[a];else if(n.container){for(var i=0;i100&&this.lastServerMessages.shift(),this.processMessage(e.body,e.msg_id,i);break;case"new_session_created":this.ackMessage(n),this.processMessageAck(e.first_msg_id),this.applyServerSalt(e.server_salt);var d=this;a.get("dc").then(function(t){t==d.dcID&&!d.upload&&g&&g(e,!0)});break;case"msgs_ack":for(var r=0;r5?"[.."+e.result.length+"..]":e.result),console.log(dT(),"Rpc response",_)}l.deferred.resolve(e.result)}l.isAPI&&(this.connectionInited=!0)}delete this.sentMessages[m]}break;default:this.ackMessage(n),g&&g(e,!0)}},{getNetworker:function(e,t,n,a){return new u(e,t,n,a)},setUpdatesProcessor:function(e){g=e},stopAll:m,startAll:p}}]),angular.module("izhukov.mtproto.wrapper",["izhukov.utils","izhukov.mtproto"]).factory("MtpApiManager",["Storage","MtpAuthorizer","MtpNetworkerFactory","MtpSingleInstanceService","AppRuntimeManager","ErrorService","qSync","$rootScope","$q","TelegramMeWebService",function(e,t,n,a,i,o,s,r,l,c){function d(e){v!==e&&(v=e,c.setAuthorized(v))}function u(t,n){var a=angular.extend({dcID:t},n);e.set({dc:t,user_auth:a}),d(!0),r.$broadcast("user_auth",a),k=t}function p(){for(var t=[],n=1;n<=5;n++)t.push("dc"+n+"_auth_key");return e.get(t).then(function(n){for(var a=[],i=0;i=a.stopTime)return u(o)}else a.stopTime=_+1e3*(void 0!==a.timeout?a.timeout:10);a.waitTime=a.waitTime?Math.min(60,1.5*a.waitTime):1,setTimeout(function(){f(r)},1e3*a.waitTime)}else{var v=o.type.match(/^FLOOD_WAIT_(\d+)/)[1]||10;if(v>(a.timeout||60))return u(o);setTimeout(function(){f(r)},1e3*v)}})};return(s=a.dcID||k)?g(s,a).then(f,u):e.get("dc").then(function(e){g(s=e||2,a).then(f,u)}),c.promise}function f(){return e.get("user_auth").then(function(e){return d(e&&e.id>0||!1),e.id||0})}function _(){return k||!1}var v,y={},b={},w={},k=!1;return a.start(),e.get("dc").then(function(e){e&&(k=e)}),{getBaseDcID:_,getUserID:f,invokeApi:h,getNetworker:g,setUserAuth:u,logOut:p}}]).factory("MtpApiFileManager",["MtpApiManager","$q","qSync","FileManager","IdbFileStorage","TmpfsFileStorage","MemoryFileStorage","WebpManager",function(e,t,n,a,i,o,s,r){function l(e,n,a){void 0===w[e]&&(w[e]=[],k[e]=0);var i=w[e],o=t.defer();return i.push({cb:n,deferred:o,activeDelta:a}),setZeroTimeout(function(){c(e)}),o.promise}function c(e){var t=w[e],n="upload"==e?11:5;if(k[e]>=n||!t||!t.length)return!1;var a=t.shift(),i=a.activeDelta||1;k[e]+=i;$++;a.cb().then(function(t){k[e]-=i,c(e),a.deferred.resolve(t)},function(t){k[e]-=i,c(e),a.deferred.reject(t)})}function d(e){switch(e._){case"inputDocumentFileLocation":var t=(e.file_name||"").split(".",2),n=t[1]||"";e.sticker&&!r.isWebpSupported()&&(n+=".png");var a=e.version?"v"+e.version:"";return t[0]+"_"+e.id+a+"."+n;default:e.volume_id||console.trace("Empty location",e);var n="jpg";return e.sticker&&(n=r.isWebpSupported()?"webp":"png"),e.volume_id+"_"+e.local_id+"_"+e.secret+"."+n}}function u(e){if(!e)return!1;var t=d(e);return b[t]||!1}function p(){if(!Config.Modes.memory_only){if(o.isAvailable())return o;if(i.isAvailable())return i}return s}function m(e,t){var n=d(e);return v[n]||(v[n]=p().saveFile(n,t).then(function(e){return b[n]=e},function(e){delete v[n]})),v[n]}function g(i){if(!a.isAvailable())return t.reject({type:"BROWSER_BLOB_NOT_SUPPORTED"});var o=d(i),s=i.sticker?"image/webp":"image/jpeg",c=v[o]||y[o];if(c)return c;var u=p();return y[o]=u.getFile(o).then(function(e){return b[o]=e},function(){var t=l(i.dc_id,function(){var t=i;return t._&&"fileLocation"!=t._||(t=angular.extend({},i,{_:"inputFileLocation"})),e.invokeApi("upload.getFile",{location:t,offset:0,limit:1048576},{dcID:i.dc_id,fileDownload:!0,createNetworker:!0,noErrorBox:!0})}),c=function(e){return!i.sticker||r.isWebpSupported()?n.when(e):r.getPngBlobFromWebp(e)};return u.getFileWriter(o,s).then(function(e){return t.then(function(t){return c(t.bytes).then(function(t){return a.write(e,t).then(function(){return b[o]=e.finalize()})})})})})}function h(e,t){var n=p(),a=d(e);return n.getFile(a,t)}function f(i,o,s,c){if(!a.isAvailable())return t.reject({type:"BROWSER_BLOB_NOT_SUPPORTED"});c=c||{};var u=!1;o.sticker&&!r.isWebpSupported()&&(c.toFileEntry||s>524288?delete o.sticker:(u=!0,c.mime="image/png"));var m=d(o),g=c.toFileEntry||null,h=v[m]||y[m],f=p();if(h)return g?h.then(function(e){return a.copy(e,g)}):h;var _,w=t.defer(),k=!1,$=!1,S=c.mime||"image/jpeg",C=function(e){w.reject(e),C=angular.noop,!_||e&&"DOWNLOAD_CANCELED"==e.type||_.truncate(0)};return f.getFile(m,s).then(function(e){g?a.copy(e,g).then(function(){w.resolve()},C):w.resolve(b[m]=e)},function(){var c=g?a.getFileWriter(g):f.getFileWriter(m,S),d=function(e){return u?r.getPngBlobFromWebp(e):n.when(e)};c.then(function(n){_=n;var r,c,u=524288,p=0,h=t.when();if(n.length){if(p=n.length,p>=s)return void(g?w.resolve():w.resolve(b[m]=n.finalize()));n.seek(p),w.notify({done:p,total:s})}for(r=p;r=s,r,c,h),h=c.promise})}),w.promise.cancel=function(){k||$||(k=!0,delete y[m],C({type:"DOWNLOAD_CANCELED"}))},g||(y[m]=w.promise),w.promise}function _(n){var a=n.size,i=a>=10485760,o=!1,s=!1,r=0,c=262144,d=2;a>67108864?(c=524288,d=4):a<102400&&(c=32768,d=1);var u=Math.ceil(a/c);if(u>3e3)return t.reject({type:"FILE_TOO_BIG"});var p,m=[nextRandomInt(4294967295),nextRandomInt(4294967295)],g=t.defer(),h=function(e){g.reject(e),o=!0,h=angular.noop},f=0,_={_:i?"inputFileBig":"inputFile",id:m,parts:u,name:n.name,md5_checksum:""};for(p=0;p=u?(g.resolve(_),s=!0):(console.log(dT(),"Progress",r*c/a),g.notify({done:r*c,total:a}))},h))},d.readAsArrayBuffer(v),l.promise},d)}(p,f++);return g.promise.cancel=function(){console.log("cancel upload",o,s),o||s||(o=!0,h({type:"UPLOAD_CANCELED"}))},g.promise}var v={},y={},b={},w={},k={},$=0;return{getCachedFile:u,getDownloadedFile:h,downloadFile:f,downloadSmallFile:g,saveSmallFile:m,uploadFile:_}}]).service("MtpSingleInstanceService",["_","$rootScope","$compile","$timeout","$interval","$modalStack","Storage","AppRuntimeManager","IdleManager","ErrorService","MtpNetworkerFactory",function(e,t,n,a,i,o,s,r,l,c,d){function u(){if(!f&&!Config.Navigator.mobile&&!Config.Modes.packed){f=!0,l.start(),t.$watch("idle.isIDLE",g),i(g,5e3),g();try{$($window).on("beforeunload",p)}catch(e){}}}function p(){s.remove(_?"xt_instance":"xt_idle_instance")}function m(){if(_||y)return!1;console.log(dT(),"deactivate"),v=!1,y=!0,p(),o.dismissAll(),document.title=e("inactive_tab_title_raw");var a=n(""),i=t.$new(!0);i.close=function(){r.close()},i.reload=function(){r.reload()},a(i,function(e){$(".page_wrap").hide(),$(e).appendTo($("body"))}),t.idle.deactivated=!0}function g(){if(y)return!1;var e=tsNow(),n=t.idle&&t.idle.isIDLE,i={id:h,idle:n,time:e};s.get("xt_instance","xt_idle_instance").then(function(t){var o=t[0],r=t[1];!n||!o||o.id==h||o.time=1e3?void o.resolve(s):void this["continue"]()},t.onerror=function(e){console.log("phonebook error",e,e.type,e.message),o.reject(e)},o.promise}return{isAvailable:i,openPhonebookImport:o,getPhonebookContacts:s}}]).service("AppChatsManager",["$q","$rootScope","$modal","_","MtpApiManager","AppUsersManager","AppPhotosManager","RichTextProcessor",function(e,t,n,a,i,o,s,r){function l(e){angular.forEach(e,c)}function c(e){if(angular.isObject(e)){e.rTitle=r.wrapRichText(e.title,{noLinks:!0,noLinebreaks:!0})||a("chat_title_deleted");var n=C[e.id],i=SearchIndexManager.cleanSearchText(e.title||"").split(" "),o=i.shift(),s=i.pop();if(e.initials=o.charAt(0)+(s?s.charAt(0):o.charAt(1)),e.num=Math.abs(e.id>>1)%8+1,void 0===e.pFlags&&(e.pFlags={}),!e.pFlags.min||void 0===n){if(e.username){var l=SearchIndexManager.cleanUsername(e.username);M[l]=e.id}void 0===n?n=C[e.id]=e:(safeReplaceObject(n,e),t.$broadcast("chat_update",e.id)),void 0!==A[e.id]&&safeReplaceObject(A[e.id],e&&e.photo&&e.photo.photo_small||{empty:!0})}}}function d(e){return C[e]||{id:e,deleted:!0,access_hash:x[e]}}function u(e,t){if(void 0===C[e])return!1;var n=d(e);if("chatForbidden"==n._||"channelForbidden"==n._||n.pFlags.kicked||n.pFlags.left)return!1;if(n.pFlags.creator)return!0;switch(t){case"send":if("channel"==n._&&!n.pFlags.megagroup&&!n.pFlags.editor)return!1;break;case"edit_title":case"edit_photo":case"invite":if("channel"==n._){if(!n.pFlags.megagroup)return!1;if(!(n.pFlags.editor||"invite"==t&&n.pFlags.democracy))return!1}else if(n.pFlags.admins_enabled&&!n.pFlags.admin)return!1}return!0}function p(e){return M[e]||0}function m(e,t){x[e]=t}function g(e){I[e]=!0}function h(e){var t=C[e];return!((!t||"channel"!=t._&&"channelForbidden"!=t._)&&!x[e])}function f(e){if(I[e])return!0;var t=C[e];return!(!t||"channel"!=t._||!t.pFlags.megagroup)}function _(e){return h(e)&&!f(e)}function v(e){return e||0}function y(e){return e?{_:"inputChannel",channel_id:e,access_hash:d(e).access_hash||x[e]||0}:{_:"inputChannelEmpty"}}function b(e,t){var n=C[e];return angular.isObject(n)&&(t||!n.pFlags.min)}function w(e){var t=d(e);return void 0===A[e]&&(A[e]=t&&t.photo&&t.photo.photo_small||{empty:!0}),{placeholder:"img/placeholders/GroupAvatar"+Math.ceil(t.num/2)+"@2x.png",location:A[e]}}function k(e){var t=d(e);return h(e)?(f(e)?"s":"c")+e+"_"+t.access_hash:"g"+e}function $(e,t){var n=angular.copy(t),a=d(e);if(n.participants&&"chatParticipants"==n.participants._&&i.getUserID().then(function(e){var t=a.pFlags.creator||a.pFlags.admins_enabled&&a.pFlags.admin;angular.forEach(n.participants.participants,function(n){n.canLeave=e==n.user_id,n.canKick=!n.canLeave&&(a.pFlags.creator||"chatParticipant"==n._&&(t||e==n.inviter_id)),n.user=o.getUser(n.user_id)})}),n.participants&&"channelParticipants"==n.participants._){var s=a.pFlags.creator||a.pFlags.editor||a.pFlags.moderator;angular.forEach(n.participants.participants,function(e){e.canLeave=!a.pFlags.creator&&"channelParticipantSelf"==e._,e.canKick=s&&"channelParticipant"==e._,e.user=o.getUser(e.user_id)})}return n.about&&(n.rAbout=r.wrapRichText(n.about,{noLinebreaks:!0})),n.peerString=k(e),n.chat=a,n}function S(e,a){var i=t.$new();if(i.chatID=e,h(e)){n.open({templateUrl:templateUrl("channel_modal"),controller:"ChannelModalController",scope:i,windowClass:"chat_modal_window channel_modal_window mobile_modal"})}else{n.open({templateUrl:templateUrl("chat_modal"),controller:"ChatModalController",scope:i,windowClass:"chat_modal_window mobile_modal"})}}var C={},M={},x={},I={},A={};return t.$on("apiUpdate",function(e,n){switch(n._){case"updateChannel":var a=n.channel_id;t.$broadcast("channel_settings",{channelID:a})}}),{saveApiChats:l,saveApiChat:c,getChat:d,isChannel:h,isMegagroup:f,isBroadcast:_,hasRights:u,saveChannelAccess:m,saveIsMegagroup:g,getChatInput:v,getChannelInput:y,getChatPhoto:w,getChatString:k,resolveUsername:p,hasChat:b,wrapForFull:$,openChat:S}}]).service("AppPeersManager",["$q","qSync","AppUsersManager","AppChatsManager","MtpApiManager",function(e,t,n,a,i){function o(e){var t=e.charAt(0),i=e.substr(1).split("_");return"u"==t?(n.saveUserAccess(i[0],i[1]),{_:"inputPeerUser",user_id:i[0],access_hash:i[1]}):"c"==t||"s"==t?(a.saveChannelAccess(i[0],i[1]),"s"==t&&a.saveIsMegagroup(i[0]),{_:"inputPeerChannel",channel_id:i[0],access_hash:i[1]||0}):{_:"inputPeerChat",chat_id:i[0]}}function s(e){if(!e)return{_:"inputPeerEmpty"};if(e<0){var t=-e;return a.isChannel(t)?{_:"inputPeerChannel",channel_id:t,access_hash:a.getChat(t).access_hash||0}:{_:"inputPeerChat",chat_id:t}}return{_:"inputPeerUser",user_id:e,access_hash:n.getUser(e).access_hash||0}}function r(e){var t;if(e>0)t="%pu "+n.getUserSearchText(e);else if(e<0){var i=a.getChat(-e);t="%pg "+(i.title||"")}return t}function l(e){return e>0?n.getUserString(e):a.getChatString(-e)}function c(e){if(e>0)return{_:"peerUser",user_id:e};var t=-e;return a.isChannel(t)?{_:"peerChannel",channel_id:t}:{_:"peerChat",chat_id:t}}function d(e){var o=SearchIndexManager.cleanUsername(e);if(o.match(/^\d+$/))return t.when(!1);var s,r,l;return(s=n.resolveUsername(o))&&(l=n.getUser(s).username,SearchIndexManager.cleanUsername(l)==o)?t.when(s):(r=a.resolveUsername(o))&&(l=a.getChat(r).username,SearchIndexManager.cleanUsername(l)==o)?t.when(-r):i.invokeApi("contacts.resolveUsername",{username:e}).then(function(e){return n.saveApiUsers(e.users),a.saveApiChats(e.chats),u(e.peer)})}function u(e){if(angular.isObject(e))return e.user_id?e.user_id:-(e.channel_id||e.chat_id);var t="u"==e.charAt(0),n=e.substr(1).split("_");return t?n[0]:-n[0]||0}function p(e){return e>0?n.getUser(e):a.getChat(-e)}function m(e){return e>0?n.getUserPhoto(e):a.getChatPhoto(-e)}function g(e){return e<0&&a.isChannel(-e)}function h(e){return e<0&&a.isMegagroup(-e)}function f(e){return e<0&&!a.isBroadcast(-e)}function _(e){return g(e)&&!h(e)}function v(e){return e>0&&n.isBot(e)}return{getInputPeer:o,getInputPeerByID:s,getPeerSearchText:r,getPeerString:l,getOutputPeer:c,getPeerID:u,getPeer:p,getPeerPhoto:m,resolveUsername:d,isChannel:g,isAnyGroup:f,isMegagroup:h,isBroadcast:_,isBot:v}}]).service("AppProfileManager",["$q","$rootScope","AppUsersManager","AppChatsManager","AppPeersManager","AppPhotosManager","NotificationsManager","MtpApiManager","ApiUpdatesManager","RichTextProcessor",function(e,t,n,a,i,o,s,r,l,c){function d(e){var t=e&&e.user_id;if(!t)return!1;var n={};return angular.forEach(e.commands,function(e){n[e.command]=e.description}),_[t]={id:t,version:e.version,shareText:e.share_text,description:e.description,commands:n}}function u(e,t){return r.invokeApi("users.getFullUser",{id:n.getUserInput(e)}).then(function(a){return t&&t.phone_number?(a.user.phone=t.phone_number,(t.first_name||t.last_name)&&(a.user.first_name=t.first_name,a.user.last_name=t.last_name),n.saveApiUser(a.user)):n.saveApiUser(a.user,!0),a.profile_photo&&o.savePhoto(a.profile_photo,{user_id:e}),void 0!==a.about&&(a.rAbout=c.wrapRichText(a.about,{noLinebreaks:!0})),s.savePeerSettings(e,a.notify_settings),a.bot_info&&(a.bot_info=d(a.bot_info)),a})}function p(t){var a=[];return t>=0&&!n.isBot(t)||i.isChannel(t)&&!i.isMegagroup(t)?e.when(a):t>=0?u(t).then(function(e){var t=e.bot_info;return t&&"botInfoEmpty"!=t._&&a.push(t),a}):m(-t).then(function(e){return angular.forEach(e.bot_info,function(e){a.push(d(e))}),a})}function m(i){if(a.isChannel(i))return f(i);if(void 0!==v[i]){var l=a.getChat(i);if(l.version==v[i].participants.version||l.pFlags.left)return e.when(v[i])}return void 0!==y[i]?y[i]:(console.trace(dT(),"Get chat full",i,a.getChat(i)),y[i]=r.invokeApi("messages.getFullChat",{chat_id:a.getChatInput(i)}).then(function(e){a.saveApiChats(e.chats),n.saveApiUsers(e.users);var r=e.full_chat;return r&&r.chat_photo.id&&o.savePhoto(r.chat_photo),s.savePeerSettings(-i,r.notify_settings),delete y[i],v[i]=r,t.$broadcast("chat_full_update",i),r}))}function g(e,t){return m(e).then(function(n){if(!t&&n.exported_invite&&"chatInviteExported"==n.exported_invite._)return n.exported_invite.link;var i;return i=a.isChannel(e)?r.invokeApi("channels.exportInvite",{channel:a.getChannelInput(e)}):r.invokeApi("messages.exportChatInvite",{chat_id:a.getChatInput(e)}),i.then(function(t){return void 0!==v[e]&&(v[e].exported_invite=t),t.link})})}function h(e){return r.invokeApi("channels.getParticipants",{channel:a.getChannelInput(e),filter:{_:"channelParticipantsRecent"},offset:0,limit:a.isMegagroup(e)?50:200}).then(function(t){n.saveApiUsers(t.users);var i=t.participants,o=a.getChat(e);if(!o.pFlags.kicked&&!o.pFlags.left){for(var s,r=n.getSelf().id,l=!1,c=0,d=i.length;c800&&(a-=208);var s=l(n,a,o);s&&!s.preloaded&&(s.preloaded=!0,s.size?i.downloadFile(s.location.dc_id,{_:"inputFileLocation",volume_id:s.location.volume_id,local_id:s.location.local_id,secret:s.location.secret},s.size):i.downloadSmallFile(s.location))}}function u(e){return f[e]||{_:"photoEmpty"}}function p(e,t){t=t||{};var n=angular.copy(f[e])||{_:"photoEmpty"},a=t.website?64:Math.min(_-80,Config.Mobile?210:260),i=t.website?64:Math.min(v-100,Config.Mobile?210:260),o=l(n,a,i),s={placeholder:"img/placeholders/PhotoThumbConversation.gif",width:a,height:i};if(t.website&&Config.Mobile&&(a=50,i=50),o&&"photoSizeEmpty"!=o._){var r=calcImageInBox(o.w,o.h,a,i);s.width=r.w,s.height=r.h,s.location=o.location,s.size=o.size}else s.width=100,s.height=100;return n.thumb=s,n}function m(e){var n=p(e),a=$(window).width()-(Config.Mobile?0:32),i=$(t).height()-(Config.Mobile?0:116);!Config.Mobile&&a>800&&(a-=208);var o=l(n,a,i),s={placeholder:"img/placeholders/PhotoThumbModal.gif"};if(s.width=a,s.height=i,o&&"photoSizeEmpty"!=o._){var r=calcImageInBox(o.w,o.h,a,i,!0);s.width=r.w,s.height=r.h,s.modalWidth=Math.max(s.width,Math.min(400,a)),s.location=o.location,s.size=o.size}return n.full=s,n}function g(t,a){if(!t||"0"===t)return!1;var i=n.$new(!0);i.photoID=t;var o="PhotoModalController";a&&a.p>0?(o="UserpicModalController",i.userID=a.p):a&&a.p<0?(o="ChatpicModalController",i.chatID=-a.p):a&&a.m>0&&(i.messageID=a.m,a.w&&(i.webpageID=a.w));e.open({templateUrl:templateUrl("photo_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:o,scope:i,windowClass:"photo_modal_window"})}function h(e){var n=f[e],a="jpg",o="image/jpeg",r="photo"+e+"."+a,c=Math.max(screen.width||0,$(window).width()-36,800),d=Math.max(screen.height||0,$(t).height()-150,800),u=l(n,c,d),p={_:"inputFileLocation",volume_id:u.location.volume_id,local_id:u.location.local_id,secret:u.location.secret};s.chooseSave(r,a,o).then(function(e){e&&i.downloadFile(u.location.dc_id,p,u.size,{mime:o,toFileEntry:e}).then(function(){},function(e){console.log("photo download failed",e)})},function(){var e=i.getCachedFile(p);return e?s.download(e,o,r):void i.downloadFile(u.location.dc_id,p,u.size,{mime:o}).then(function(e){s.download(e,o,r)},function(e){console.log("photo download failed",e)})})}var f={},_=$(window).width(),v=$(window).height();return n.preloadPhoto=d,n.openPhoto=g,{savePhoto:r,preloadPhoto:d,getUserPhotos:c,getPhoto:u,choosePhotoSize:l,wrapForHistory:p,wrapForFull:m,openPhoto:g,downloadPhoto:h}}]).service("AppWebPagesManager",["$modal","$sce","$window","$rootScope","MtpApiManager","AppPhotosManager","AppDocsManager","RichTextProcessor",function(e,t,n,a,i,o,s,r){function l(e,t,n){e.photo&&"photo"===e.photo._?o.savePhoto(e.photo,n):delete e.photo,e.document&&"document"===e.document._?s.saveDoc(e.document,n):("document"==e.type&&delete e.type,delete e.document);var i=e.site_name,l=e.title||e.author||i||"";i&&l==i&&delete e.site_name,l.length>100&&(l=l.substr(0,80)+"..."),e.rTitle=r.wrapRichText(l,{noLinks:!0,noLinebreaks:!0});var c="";if("GitHub"==i){var d=e.url.match(/(https?:\/\/github\.com\/[^\/]+\/[^\/]+)/);d&&(c=d[0]+"/issues/{1}")}var u=e.description||"";if(u.length>180&&(u=u.substr(0,150).replace(/(\n|\s)+$/,"")+"..."),e.rDescription=r.wrapRichText(u,{contextSite:i||"external",contextHashtag:c}),"photo"!=e.type&&"video"!=e.type&&"gif"!=e.type&&"document"!=e.type&&!e.description&&e.photo&&(e.type="photo"),t&&(void 0===m[e.id]&&(m[e.id]={}),m[e.id][t]=!0,p[e.id]=e),void 0===p[e.id]?p[e.id]=e:safeReplaceObject(p[e.id],e),!t&&void 0!==m[e.id]){var g=[];angular.forEach(m[e.id],function(e,t){g.push(t)}),a.$broadcast("webpage_updated",{id:e.id,msgs:g})}}function c(t,n){var i=a.$new(!0);i.webpageID=t,i.messageID=n,e.open({templateUrl:templateUrl("embed_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"EmbedModalController",scope:i,windowClass:"photo_modal_window"})}function d(e){var t=angular.copy(p[e])||{_:"webPageEmpty"};return t.photo&&t.photo.id&&(t.photo=o.wrapForHistory(t.photo.id,{website:"photo"!=t.type&&"video"!=t.type})),t.document&&t.document.id&&(t.document=s.wrapForHistory(t.document.id)),t}function u(e){var a=d(e);if(!a.embed_url)return a;var i=$(window).width()-(Config.Mobile?0:10),o=$(n).height()-(Config.Mobile?92:150);!Config.Mobile&&i>800&&(i-=208);var s={width:i,height:o};if(a.embed_width&&a.embed_height){var r=calcImageInBox(a.embed_width,a.embed_height,i,o);s.width=r.w,s.height=r.h}else s.height=s.width=Math.min(i,o);var l=Config.Modes.chrome_packed?"webview":"iframe",c="iframe"!=a.embed_type?a.embed_type||"text/html":"text/html",u="<"+l+' src="'+encodeEntities(a.embed_url)+'" type="'+encodeEntities(c)+'" frameborder="0" border="0" webkitallowfullscreen mozallowfullscreen allowfullscreen width="'+s.width+'" height="'+s.height+'" style="width: '+s.width+"px; height: "+s.height+'px;">"; return s.html=t.trustAs("html",u),a.full=s,a}var p={},m={};return a.$on("apiUpdate",function(e,t){switch(t._){case"updateWebPage":l(t.webpage)}}),{saveWebPage:l,openEmbed:c,wrapForFull:u,wrapForHistory:d}}]).service("AppGamesManager",["$modal","$sce","$window","$rootScope","MtpApiManager","AppPhotosManager","AppDocsManager","RichTextProcessor",function(e,t,n,a,i,o,s,r){function l(e,t,n){e.photo&&"photo"===e.photo._?o.savePhoto(e.photo,n):delete e.photo,e.document&&"document"===e.document._?s.saveDoc(e.document,n):delete e.document,e.rTitle=r.wrapRichText(e.title,{noLinks:!0,noLinebreaks:!0}),e.rDescription=r.wrapRichText(e.description||"",{}),void 0===p[e.id]?p[e.id]=e:safeReplaceObject(p[e.id],e)}function c(t,n,i){var o=a.$new(!0);o.gameID=t,o.messageID=n,o.embedUrl=i,e.open({templateUrl:templateUrl("game_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"GameModalController",scope:o,windowClass:"photo_modal_window mobile_modal"})}function d(e){var t=angular.copy(p[e])||{_:"gameEmpty"};return t.photo&&t.photo.id&&(t.photo=o.wrapForHistory(t.photo.id)),t.document&&t.document.id&&(t.document=s.wrapForHistory(t.document.id)),t}function u(e,a,i){var o=d(e),s=$(window).width()-(Config.Mobile?0:10),r=$(n).height()-(Config.Mobile?51:150);!Config.Mobile&&s>800&&(s-=208);var l={width:s,height:r},c=Config.Modes.chrome_packed?"webview":"iframe",u="text/html",p="<"+c+' src="'+encodeEntities(i)+'" type="'+encodeEntities(u)+'" frameborder="0" border="0" webkitallowfullscreen mozallowfullscreen allowfullscreen width="'+l.width+'" height="'+l.height+'" style="width: '+l.width+"px; height: "+l.height+'px;" sandbox="allow-scripts allow-same-origin">";return l.html=t.trustAs("html",p),o.full=l,o}var p={};return{saveGame:l,openGame:c,wrapForFull:u,wrapForHistory:d}}]).service("AppDocsManager",["$sce","$rootScope","$modal","$window","$q","$timeout","RichTextProcessor","MtpApiFileManager","FileManager","qSync",function(e,t,n,a,i,o,s,r,l,c){function d(e,t){if(w[e.id]=e,t&&angular.extend(e,t),e.thumb&&"photoCachedSize"==e.thumb._&&(r.saveSmallFile(e.thumb.location,e.thumb.bytes),e.thumb.size=e.thumb.bytes.length,delete e.thumb.bytes,e.thumb._="photoSize"),e.thumb&&"photoSizeEmpty"==e.thumb._&&delete e.thumb,angular.forEach(e.attributes,function(t){switch(t._){case"documentAttributeFilename":e.file_name=t.file_name;break;case"documentAttributeAudio":e.duration=t.duration,e.audioTitle=t.title,e.audioPerformer=t.performer,e.type=t.pFlags.voice?"voice":"audio";break;case"documentAttributeVideo":e.duration=t.duration,e.w=t.w,e.h=t.h,e.thumb&&(e.type="video");break;case"documentAttributeSticker":e.sticker=!0,void 0!==t.alt&&(e.stickerEmojiRaw=t.alt,e.stickerEmoji=s.wrapRichText(e.stickerEmojiRaw,{noLinks:!0,noLinebreaks:!0})),t.stickerset&&("inputStickerSetEmpty"==t.stickerset._?delete t.stickerset:"inputStickerSetID"==t.stickerset._&&(e.stickerSetInput=t.stickerset)),e.thumb&&"image/webp"==e.mime_type&&(e.type="sticker");break;case"documentAttributeImageSize":e.w=t.w,e.h=t.h;break;case"documentAttributeAnimated":"image/gif"!=e.mime_type&&"video/mp4"!=e.mime_type||!e.thumb||(e.type="gif"),e.animated=!0}}),!e.mime_type)switch(e.type){case"gif":e.mime_type="video/mp4";break;case"video":e.mime_type="video/mp4";break;case"sticker":e.mime_type="image/webp";break;case"audio":e.mime_type="audio/mpeg";break;case"voice":e.mime_type="audio/ogg";break;default:e.mime_type="application/octet-stream"}e.file_name||(e.file_name=""),"documentEmpty"==e._&&(e.size=0)}function u(e){return w[e]||{_:"documentEmpty"}}function p(e){return void 0!==w[e]}function m(e){if(e.file_name)return e.file_name;var t="."+e.mime_type.split("/")[1];return".octet-stream"==t&&(t=""),"t_"+(e.type||"file")+e.id+t}function g(e){if(void 0!==k[e])return k[e];var t,n,a,i,o=angular.copy(w[e]),s=o.thumb,r=!1;switch(o.type){case"video":t=Math.min(S-80,Config.Mobile?210:150),n=Math.min(C-100,Config.Mobile?210:150);break;case"sticker":r=!0,t=Math.min(S-80,Config.Mobile?128:192),n=Math.min(C-100,Config.Mobile?128:192);break;case"gif":r=!0,t=Math.min(S-80,Config.Mobile?210:260),n=Math.min(C-100,Config.Mobile?210:260);break;default:t=n=100}return r&&o.w&&o.h?i=calcImageInBox(o.w,o.h,t,n):s&&(i=calcImageInBox(s.w,s.h,t,n)),i?(a={width:i.w,height:i.h},s&&(a.location=s.location,a.size=s.size)):a=!1,o.thumb=a,o.withPreview=!Config.Mobile&&o.mime_type.match(/^image\/(gif|png|jpeg|jpg|bmp|tiff)/)?1:0,k[e]=o}function h(e){var t=w[e],n=k[e]||t||{},a={_:"inputDocumentFileLocation",id:e,access_hash:t.access_hash,version:t.version,file_name:m(t)};void 0===n.downloaded&&r.getDownloadedFile(a,t.size).then(function(){n.downloaded=!0},function(){n.downloaded=!1})}function f(n,a){var s=w[n],d=k[n]||s||{},u={_:"inputDocumentFileLocation",id:n,access_hash:s.access_hash,version:s.version,file_name:m(s)};if("documentEmpty"==s._)return i.reject();if(d.downloaded&&!a){var p=r.getCachedFile(u);if(p)return c.when(p)}d.progress={enabled:!d.downloaded,percent:1,total:s.size};var g=r.downloadFile(s.dc_id,u,s.size,{mime:s.mime_type||"application/octet-stream",toFileEntry:a});return g.then(function(t){t&&(l.getFileCorrectUrl(t,s.mime_type).then(function(t){var n=e.trustAsResourceUrl(t);d.url=n,s.url=n}),d.downloaded=!0),d.progress.percent=100,o(function(){delete d.progress})},function(e){console.log("document download failed",e),d.progress.enabled=!1},function(e){console.log("dl progress",e),d.progress.enabled=!0,d.progress.done=e.done,d.progress.percent=Math.max(1,Math.floor(100*e.done/e.total)),t.$broadcast("history_update")}),d.progress.cancel=g.cancel,g}function _(e,a){var i=t.$new(!0);i.docID=e,i.messageID=a;n.open({templateUrl:templateUrl("document_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"DocumentModalController",scope:i,windowClass:"document_modal_window"})}function v(e){var t=w[e],n=(k[e]||t||{},t.mime_type,m(t)),a=(n.split(".",2)||[])[1]||"";l.chooseSave(m(t),a,t.mime_type).then(function(t){t&&f(e,t)},function(){f(e).then(function(e){l.download(e,t.mime_type,n)})})}function y(e){var t=g(e),n=Math.min($(window).width()-(Config.Mobile?0:60),542),a=$(window).height()-(Config.Mobile?92:150),i={placeholder:"img/placeholders/docThumbModal.gif",width:n,height:a};if(t.w&&t.h){var o=calcImageInBox(t.w,t.h,n,a);i.width=o.w,i.height=o.h}else i.height=i.width=Math.min(n,a);return t.full=i,t.fullThumb=angular.copy(t.thumb),t.fullThumb.width=i.width,t.fullThumb.height=i.height,t}function b(e,a){var i=t.$new(!0);return i.docID=e,i.messageID=a,n.open({templateUrl:templateUrl("video_modal"),windowTemplateUrl:templateUrl("media_modal_layout"),controller:"VideoModalController",scope:i,windowClass:"video_modal_window"})}var w={},k={},S=$(window).width(),C=$(window).height();return{saveDoc:d,getDoc:u,hasDoc:p,wrapForHistory:g,wrapVideoForFull:y,updateDocDownloaded:h,downloadDoc:f,openDoc:_,openVideo:b,saveDocFile:v}}]).service("AppStickersManager",["$q","$rootScope","$modal","_","FileManager","MtpApiManager","AppDocsManager","Storage","ApiUpdatesManager",function(e,t,n,a,i,o,s,r,l){function c(){b||(b=!0,setTimeout(d,1e3))}function d(e){return r.get("all_stickers").then(function(t){var n=Config.Schema.API.layer;return t.layer!=n&&(t=!1),t&&t.date>tsNow(!0)&&!e?u(t):o.invokeApi("messages.getAllStickers",{hash:t&&t.hash||""}).then(function(e){var a="messages.allStickersNotModified"==e._;return a&&(e=t),e.date=tsNow(!0)+3600,e.layer=n,delete e._,a?(r.set({all_stickers:e}),u(e)):p(e,t&&t.fullSets).then(function(){return r.set({all_stickers:e}),u(e)})})})}function u(e){if(w!==e.hash){w=e.hash;var t,n,i,o,r,l,c,d;for(k=[],i=e.sets.length,t=0;t15&&(i=i.slice(0,15)),i.push([e,1])),ConfigStorage.set({stickers_popular:i})})}function h(e){return o.invokeApi("messages.getStickerSet",{stickerset:e}).then(function(e){for(var t=0;t1209600||(a=e[t][0],m.hasUser(a)||m.saveApiUser(e[t][1]),i.push({id:a,rate:e[t][2],date:e[t][3]}))}return i})}function y(e){v().then(function(t){for(var a=!1,i=t.length,o=[],s=0;s15&&(o=o.slice(0,15)),o.push([e,m.getUser(e),1,tsNow(!0)])),ConfigStorage.set({inline_bots_popular:o}),n.$broadcast("inline_bots_popular")})}function b(n){return g.resolveUsername(n).then(function(a){if(a>0){var i=m.getUser(a);if(i.pFlags.bot&&void 0!==i.bot_inline_placeholder){var o={username:n,id:a,placeholder:i.bot_inline_placeholder};return i.pFlags.bot_inline_geo&&_.isAvailable()?T(a).then(function(){return _.getPosition().then(function(t){return o.geo=t,e.when(o)})})["catch"](function(){return e.when(o)}):e.when(o)}}return t.reject()},function(e){return e.handled=!0,t.reject(e)})}function w(e,t,n,a,i){return s.invokeApi("messages.getInlineBotResults",{flags:0|(a?1:0),bot:m.getUserInput(t),peer:g.getInputPeerByID(e),query:n,geo_point:a&&{_:"inputGeoPoint",lat:a.lat,"long":a["long"]},offset:i},{timeout:1,stopTime:-1,noErrorBox:!0}).then(function(e){var n=e.query_id;return delete e._,delete e.flags,delete e.query_id,e.switch_pm&&(e.switch_pm.rText=p.wrapRichText(e.switch_pm.text,{noLinebreaks:!0,noLinks:!0})),angular.forEach(e.results,function(e){var a=n+"_"+e.id;e.qID=a,e.botID=t,e.rTitle=p.wrapRichText(e.title,{noLinebreaks:!0,noLinks:!0}),e.rDescription=p.wrapRichText(e.description,{noLinebreaks:!0,noLinks:!0}),e.initials=(e.url||e.title||e.type||"").substr(0,1),e.document&&c.saveDoc(e.document),e.photo&&d.savePhoto(e.photo),D[a]=e}),e})}function k(e,t,n){if(e&&e[0]&&("photo"==e[0].type||"gif"==e[0].type||"sticker"==e[0].type)){var a=[];angular.forEach(e,function(e){var t,n,i,o;if("botInlineMediaResult"==e._){if(i=e.document)t=e.document.w,n=e.document.h;else if(o=e.photo){var s=(o.sizes||[])[0];t=s&&s.w,n=s&&s.h}}else t=e.w,n=e.h;t&&n||(t=n=1),a.push(t/n)});var i=[],o=0,s=0;angular.forEach(a,function(e){var a=e*n;s+=a,!o||o<4&&s<1.1*t?o++:(i.push(o),o=1,s=a)}),o&&i.push(o);var r=0,l=i.length-1;angular.forEach(i,function(i,o){var s=o==l,c=a.slice(r,r+i),d=0;angular.forEach(c,function(e){d+=e}),angular.forEach(c,function(a,i){var o=n,l=t*a/d,c=o*a;s&&l>c&&(l=c);var u=e[r+i];u.thumbW=Math.floor(l)-2,u.thumbH=Math.floor(o)-2}),r+=i})}}function $(e,t,a){var o=g.getPeerString(e),s={};s["inline_switch_pm"+t]={peer:o,time:tsNow()},i.set(s),n.$broadcast("history_focus",{peerString:g.getPeerString(t)}),r.startBot(t,0,a)}function S(t){var n=m.getUser(t);if(!n||!n.pFlags.bot||!n.bot_inline_placeholder)return e.when(!1);var a="inline_switch_pm"+t;return i.get(a).then(function(e){return!!(e&&(i.remove(a),tsNow()-e.time<36e5))&&e.peer})}function C(e,t,a){n.$broadcast("history_focus",{peerString:t,attachment:{_:"inline_query",mention:"@"+m.getUser(e).username,query:a}})}function M(e,t){var n=r.getMessage(e),a=n.viaBotID||n.fromID;if(t.pFlags&&t.pFlags.same_peer){var i=r.getMessagePeer(n),o=g.getPeerString(i);return void C(a,o,t.query)}return S(a).then(function(e){return e?C(a,e,t.query):void f.selectPeer({canSend:!0}).then(function(e){return C(a,e,t.query)})})}function x(e,t){var n=r.getMessage(e),a=(n.fromID,r.getMessagePeer(n));return s.invokeApi("messages.getBotCallbackAnswer",{flags:1,peer:g.getInputPeerByID(a),msg_id:l.getMessageLocalID(e),data:t.data},{timeout:1,stopTime:-1,noErrorBox:!0}).then(function(e){"string"==typeof e.message&&e.message.length?A(e.message,e.pFlags.alert):"string"==typeof e.url&&h.openUrl(e.url)})}function I(e){console.trace();var t=r.getMessage(e),n=r.getMessagePeer(t);return s.invokeApi("messages.getBotCallbackAnswer",{flags:2,peer:g.getInputPeerByID(n),msg_id:l.getMessageLocalID(e)},{timeout:1,stopTime:-1,noErrorBox:!0}).then(function(n){"string"==typeof n.message&&n.message.length?A(n.message,n.pFlags.alert):"string"==typeof n.url&&u.openGame(t.media.game.id,e,n.url)})}function A(e,t){if("string"==typeof e&&e.length){var n=p.wrapRichText(e,{noLinks:!0,noLinebreaks:!0});t?o.show({title_html:n,alert:!0}):a.pop({type:"info",body:n.valueOf(),bodyOutputType:"trustedHtml",showCloseButton:!1})}}function E(e,t,n){var a=D[t];if(void 0===a)return!1;y(a.botID);var i=t.split("_"),o=i.shift(),s=i.join("_");if(n=n||{},n.viaBotID=a.botID,n.queryID=o,n.resultID=s,a.send_message.reply_markup&&(n.reply_markup=a.send_message.reply_markup),"botInlineMessageText"==a.send_message._)n.entities=a.send_message.entities,r.sendText(e,a.send_message.message,n);else{var l="",c=!1;switch(a.send_message._){case"botInlineMessageMediaAuto":if(l=a.send_message.caption,"botInlineMediaResult"==a._){var d=a.document,u=a.photo;c=d?{_:"inputMediaDocument",id:{_:"inputDocument",id:d.id,access_hash:d.access_hash},caption:l}:{_:"inputMediaPhoto",id:{_:"inputPhoto",id:u.id,access_hash:u.access_hash},caption:l}}break;case"botInlineMessageMediaGeo":c={_:"inputMediaGeoPoint",geo_point:{_:"inputGeoPoint",lat:a.send_message.geo.lat,"long":a.send_message.geo["long"]}};break;case"botInlineMessageMediaVenue":c={_:"inputMediaVenue",geo_point:{_:"inputGeoPoint",lat:a.send_message.geo.lat,"long":a.send_message.geo["long"]},title:a.send_message.title,address:a.send_message.address,provider:a.send_message.provider,venue_id:a.send_message.venue_id};break;case"botInlineMessageMediaContact":c={_:"inputMediaContact",phone_number:a.send_message.phone_number,first_name:a.send_message.first_name,last_name:a.send_message.last_name}}c||(c={_:"messageMediaPending",type:a.type,file_name:a.title||a.content_url||a.url,size:0,progress:{percent:30,total:0}}),r.sendOther(e,c,n)}}function T(e){var n="bot_access_geo"+e;return i.get(n).then(function(e){return!(!e||!e.granted)||o.confirm({type:"BOT_ACCESS_GEO_INLINE"}).then(function(){var e={};return e[n]={granted:!0,time:tsNow()},i.set(e),!0},function(){var e={};return e[n]={denied:!0,time:tsNow()},i.set(e),t.reject()})})}var D={};return{resolveInlineMention:b,getPopularBots:v,sendInlineResult:E,getInlineResults:w,regroupWrappedResults:k,switchToPM:$,checkSwitchReturn:S,switchInlineButtonClick:M,callbackButtonClick:x,gameButtonClick:I}}]).service("ApiUpdatesManager",["$rootScope","MtpNetworkerFactory","AppUsersManager","AppChatsManager","AppPeersManager","MtpApiManager",function(e,t,n,a,i,o){function s(){var e=_.seq+1,t=_.pendingSeqUpdates[e];if(!t)return!1;for(var n,a,i=t.updates,n=0,a=i.length;n=_.syncPending.seqAwaiting&&(_.syncPending.ptsAwaiting?delete _.syncPending.seqAwaiting:(clearTimeout(_.syncPending.timeout),_.syncPending=!1)),!0}function r(e){var t=e?m(e):_;if(!t.pendingPtsUpdates.length)return!1;t.pendingPtsUpdates.sort(function(e,t){return e.pts-t.pts});for(var n,a=t.pts,i=!1,o=!1,s=0,r=t.pendingPtsUpdates.length;s=n.pts&&(i=n.pts,o=s);if(!i)return!1;for(console.log(dT(),"pop pending pts updates",i,t.pendingPtsUpdates.slice(0,o+1)),t.pts=i,s=0;s<=o;s++)n=t.pendingPtsUpdates[s],h(n);return t.pendingPtsUpdates.splice(0,o+1),!t.pendingPtsUpdates.length&&t.syncPending&&(t.syncPending.seqAwaiting?delete t.syncPending.ptsAwaiting:(clearTimeout(t.syncPending.timeout),t.syncPending=!1)),!0}function l(){_.syncLoading||d()}function c(e,t){var o={date:e.date,seq:e.seq,seqStart:e.seq_start};switch(e._){case"updatesTooLong":case"new_session_created":l();break;case"updateShort":g(e.update,o);break;case"updateShortMessage":case"updateShortChatMessage":var s=2&e.flags,r=e.from_id||(s?y:e.user_id),c=e.chat_id?-e.chat_id:s?e.user_id:y;g({_:"updateNewMessage",message:{_:"message",flags:e.flags,pFlags:e.pFlags,id:e.id,from_id:r,to_id:i.getOutputPeer(c),date:e.date,message:e.message,fwd_from:e.fwd_from,reply_to_msg_id:e.reply_to_msg_id,entities:e.entities},pts:e.pts,pts_count:e.pts_count},o);break;case"updatesCombined":case"updates":n.saveApiUsers(e.users),a.saveApiChats(e.chats),angular.forEach(e.updates,function(e){g(e,o)});break;default:console.warn(dT(),"Unknown update message",e)}}function d(){_.syncLoading||(_.syncLoading=!0,_.pendingSeqUpdates={},_.pendingPtsUpdates=[]),_.syncPending&&(clearTimeout(_.syncPending.timeout),_.syncPending=!1),o.invokeApi("updates.getDifference",{pts:_.pts,date:_.date,qts:-1}).then(function(t){if("updates.differenceEmpty"==t._)return console.log(dT(),"apply empty diff",t.seq),_.date=t.date,_.seq=t.seq,_.syncLoading=!1,e.$broadcast("stateSynchronized"),!1;n.saveApiUsers(t.users),a.saveApiChats(t.chats);angular.forEach(t.other_updates,function(e){switch(e._){case"updateChannelTooLong":case"updateNewChannelMessage":case"updateEditChannelMessage":return void g(e)}h(e)}),angular.forEach(t.new_messages,function(e){h({_:"updateNewMessage",message:e,pts:_.pts,pts_count:0})});var i=t.intermediate_state||t.state;_.seq=i.seq,_.pts=i.pts,_.date=i.date,"updates.differenceSlice"==t._?d():(e.$broadcast("stateSynchronized"),_.syncLoading=!1)})}function u(t){var i=m(t);i.syncLoading||(i.syncLoading=!0,i.pendingPtsUpdates=[]),i.syncPending&&(clearTimeout(i.syncPending.timeout),i.syncPending=!1),o.invokeApi("updates.getChannelDifference",{channel:a.getChannelInput(t),filter:{_:"channelMessagesFilterEmpty"},pts:i.pts,limit:30}).then(function(o){return i.pts=o.pts,"updates.channelDifferenceEmpty"==o._?(console.log(dT(),"apply channel empty diff",o),i.syncLoading=!1,e.$broadcast("stateSynchronized"),!1):"updates.channelDifferenceTooLong"==o._?(console.log(dT(),"channel diff too long",o),i.syncLoading=!1,delete v[t],h({_:"updateChannelReload",channel_id:t}),!1):(n.saveApiUsers(o.users),a.saveApiChats(o.chats),console.log(dT(),"applying",o.other_updates.length,"channel other updates"),angular.forEach(o.other_updates,function(e){h(e)}),console.log(dT(),"applying",o.new_messages.length,"channel new messages"),angular.forEach(o.new_messages,function(e){h({_:"updateNewChannelMessage",message:e,pts:i.pts,pts_count:0})}),console.log(dT(),"apply channel diff",i.pts),void("updates.channelDifference"!=o._||o.pFlags["final"]?(console.log(dT(),"finished channel get diff"),e.$broadcast("stateSynchronized"),i.syncLoading=!1):u(t)))})}function p(e,t){if(!t)throw new Error("Add channel state without pts "+e);return void 0===v[e]&&(v[e]={pts:t,pendingPtsUpdates:[],syncPending:!1,syncLoading:!1},!0)}function m(e,t){return void 0===v[e]&&p(e,t),v[e]}function g(e,t){t=t||{};var o=!1;switch(e._){case"updateNewChannelMessage":case"updateEditChannelMessage":o=-i.getPeerID(e.message.to_id);break;case"updateDeleteChannelMessages":o=e.channel_id;break;case"updateChannelTooLong":if(o=e.channel_id,void 0===v[o])return!1}var c=o?m(o,e.pts):_;if(c.syncLoading)return!1;if("updateChannelTooLong"==e._)return u(o),!1;if("updateNewMessage"==e._||"updateEditMessage"==e._||"updateNewChannelMessage"==e._||"updateEditChannelMessage"==e._){var p=e.message,g=i.getPeerID(p.to_id),f=p.fwd_from||{};if(p.from_id&&!n.hasUser(p.from_id,p.pFlags.post)||f.from_id&&!n.hasUser(f.from_id,!!f.channel_id)||f.channel_id&&!a.hasChat(f.channel_id,!0)||g>0&&!n.hasUser(g)||g<0&&!a.hasChat(-g))return console.warn(dT(),"Not enough data for message update",p),o&&a.hasChat(o)?u(o):l(),!1}else if(o&&!a.hasChat(o))return!1;var y,b;if(e.pts){var w=c.pts+(e.pts_count||0);if(wc.pts)c.pts=e.pts,y=!0;else if(e.pts_count)return!1;o&&t.date&&_.date0){var k=t.seq,$=t.seqStart||k;if($!=c.seq+1&&$>c.seq)return console.warn(dT(),"Seq hole",c,c.syncPending&&c.syncPending.seqAwaiting),void 0===c.pendingSeqUpdates[$]&&(c.pendingSeqUpdates[$]={seq:k,date:t.date,updates:[]}),c.pendingSeqUpdates[$].updates.push(e),c.syncPending||(c.syncPending={timeout:setTimeout(function(){d()},5e3)}),(!c.syncPending.seqAwaiting||c.syncPending.seqAwaiting<$)&&(c.syncPending.seqAwaiting=$),!1;c.seq!=k&&(c.seq=k,t.date&&c.datem)||(m=!1,!1))}var c,d=0,u=!1,p=0,m=!1;return n.getUserID().then(function(e){p=e}),t.$on("apiUpdate",function(e,t){"updateUserStatus"==t._&&t.user_id==p&&(m=tsNow()+("userStatusOnline"==t.status._?3e5:0))}),{start:o,isOtherDeviceActive:l}}]).service("NotificationsManager",["$rootScope","$window","$interval","$q","$modal","_","MtpApiManager","AppPeersManager","AppChatsManager","AppUsersManager","IdleManager","Storage","AppRuntimeManager","FileManager","WebPushApiManager",function(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g){function h(){u.get("notify_nodesktop","notify_volume","notify_novibrate","notify_nopreview","notify_nopush").then(function(e){if(Q.nodesktop=e[0],Q.volume=e[1]===!1?.5:e[1],Q.novibrate=e[2],Q.nopreview=e[3],Q.nopush=e[4],te){var t=!Q.nopush&&!Q.nodesktop&&g.isAvailable||!1,n=ee!==!1;t!=n&&(t?g.subscribe():g.unsubscribe())}g.setSettings(Q)})}function f(){return Q}function _(e){return void 0!==G[e]?G[e]:G[e]=s.invokeApi("account.getNotifySettings",{peer:{_:"inputNotifyPeer",peer:r.getInputPeerByID(e)}})}function v(e){if(e=e||"favicon.ico",U!==e){var t=document.createElement("link");t.rel="shortcut icon",t.type="image/x-icon",t.href=e,K.parentNode.replaceChild(t,K),K=t,U=e}}function y(t,n){G[t]=a.when(n),e.$broadcast("notify_settings",{peerID:t})}function b(e,t){y(e,t);var n=angular.copy(t);return n._="inputPeerNotifySettings",s.invokeApi("account.updateNotifySettings",{peer:{_:"inputNotifyPeer",peer:r.getInputPeerByID(e)},settings:n})}function w(e){return _(e).then(function(e){return"peerNotifySettings"==e._&&1e3*e.mute_until>tsNow()})}function k(){if(h(),e.$on("settings_changed",h),g.start(),!B)return!1;"Notification"in window&&"granted"!==Notification.permission&&"denied"!==Notification.permission&&$(t).on("click",C);try{"onbeforeunload"in window&&$(t).on("beforeunload",T)}catch(n){}}function S(){T(),n.cancel(O),v(),J=!0}function C(){Notification.requestPermission(),$(t).off("click",C)}function M(e){if(!J){if(Config.Navigator.ffos&&!Config.Navigator.ffos2p)e.image="https://telegram.org/img/t_logo.png";else if(e.image&&!angular.isString(e.image)){if(Config.Navigator.ffos2p)return m.getDataUrl(e.image,"image/jpeg").then(function(t){e.image=t,M(e)}),!1;e.image=m.getUrl(e.image,"image/jpeg")}else e.image||(e.image="img/icons/icon60.png");H++;var t=tsNow();if(Q.volume>0&&(!e.tag||!q[e.tag]||t>q[e.tag]+6e4)&&(x(Q.volume),q[e.tag]=t),!B||"Notification"in window&&"granted"!==Notification.permission)return!1;if(Q.nodesktop){if(V&&!Q.novibrate)return void navigator.vibrate([200,100,200])}else{var n,a=++j,i=e.key||"k"+a;if("Notification"in window)try{n=new Notification(e.title,{icon:e.image||"",body:e.message||"",tag:e.tag||""})}catch(o){return B=!1,void g.setLocalNotificationsDisabled()}else if("mozNotification"in navigator)n=navigator.mozNotification.createNotification(e.title,e.message||"",e.image||"");else{if(!N)return;window.external.msSiteModeClearIconOverlay(),window.external.msSiteModeSetIconOverlay("img/icons/icon16.png",e.title),window.external.msSiteModeActivate(),n={index:a}}n.onclick=function(){n.close(),p.focus(),T(),e.onclick&&e.onclick()},n.onclose=function(){n.hidden||(delete L[i],T())},n.show&&n.show(),L[i]=n,Config.Navigator.mobile||setTimeout(function(){A(i)},8e3)}}}function x(e){var t=tsNow();if(!(z&&t');a.find("audio")[0].volume=e}}function I(e){var t=L[e];if(t){H>0&&H--;try{t.close?t.close():N&&t.index==j&&window.external.msSiteModeClearIconOverlay()}catch(n){}delete H[e]}}function A(e){var t=L[e];if(t){try{t.close&&(t.hidden=!0,t.close())}catch(n){}delete H[e]}}function E(e){delete q[e]}function T(){N?window.external.msSiteModeClearIconOverlay():angular.forEach(L,function(e){try{e.close&&e.close()}catch(t){}}),L={},H=0,g.hidePushNotifications()}function D(e){return(!ee||!angular.equals(ee,e))&&void s.invokeApi("account.registerDevice",{token_type:e.tokenType,token:e.tokenValue}).then(function(){ee=e},function(e){e.handled=!0})}function P(e){return!!ee&&void s.invokeApi("account.unregisterDevice",{token_type:e.tokenType,token:e.tokenValue}).then(function(){ee=!1},function(e){e.handled=!0})}function F(){return V}navigator.vibrate=navigator.vibrate||navigator.mozVibrate||navigator.webkitVibrate;var N=!1;try{window.external&&window.external.msIsSiteMode()&&(N=!0)}catch(R){}var O,U,B=N||"Notification"in window||"mozNotification"in navigator,L={},j=0,H=0,q={},V=!!navigator.vibrate,z=!1,W=!1,G={},K=$('link[rel="icon"]:first')[0],Y=o.pluralize("page_title_pluralize_notifications"),Z=document.title,X=!1,J=!1,Q={};e.$watch("idle.deactivated",function(e){e&&S()}),e.$watch("idle.isIDLE",function(e){J||(e||T(),Config.Navigator.mobile||(n.cancel(O),e?(Z=document.title,O=n(function(){X||!H?(X=!1,document.title=Z,v()):(X=!0,document.title=Y(H),v("favicon_unread.ico"))},1e3)):(X=!1,document.title=Z,v())))}),e.$on("apiUpdate",function(e,t){switch(t._){case"updateNotifySettings":if("notifyPeer"==t.peer._){var n=r.getPeerID(t.peer.peer);y(n,t.notify_settings)}}});var ee=!1,te=!1;e.$on("push_init",function(e,t){te=!0,Q.nodesktop||Q.nopush?P(t):t?D(t):g.subscribe()}),e.$on("push_subscribe",function(e,t){D(t)}),e.$on("push_unsubscribe",function(e,t){P(t)});var ne=a.defer(),ae=e.$on("dialogs_multiupdate",function(){ae(),ne.resolve()}),ie=ne.promise;return e.$on("push_notification_click",function(t,n){if("push_settings"==n.action)return void i.open({templateUrl:templateUrl("settings_modal"),controller:"SettingsModalController",windowClass:"settings_modal_window mobile_modal",backdrop:"single"});var a=n.custom&&n.custom.peerID;console.log("click",n,a),a&&ie.then(function(){n.custom.channel_id&&!l.hasChat(n.custom.channel_id)||a>0&&!c.hasUser(a)||e.$broadcast("history_focus",{peerString:r.getPeerString(a)})})}),{start:k,notify:M,cancel:I,clear:T,soundReset:E,getPeerSettings:_,getPeerMuted:w,savePeerSettings:y,updatePeerSettings:b,updateNotifySettings:h,getNotifySettings:f,getVibrateSupport:F,testSound:x}}]).service("PasswordManager",["$timeout","$q","$rootScope","MtpApiManager","CryptoWorker","MtpSecureRandom",function(e,t,n,a,i,o){function s(e){return a.invokeApi("account.getPassword",{},e).then(function(e){return e})}function r(e,n){var i,s,r={new_settings:{_:"account.passwordInputSettings",flags:0,hint:n.hint||""}};if(i="string"==typeof n.cur_password&&n.cur_password.length>0?u(e.current_salt,n.cur_password):t.when([]),"string"==typeof n.new_password&&n.new_password.length>0){var l=new Array(8),c=bufferConcat(e.new_salt,l);o.nextBytes(l),s=u(c,n.new_password),r.new_settings.new_salt=c,r.new_settings.flags|=1}else"string"==typeof n.new_password&&(r.new_settings.flags|=1,r.new_settings.new_salt=[]),s=t.when([]);return"string"==typeof n.email&&(r.new_settings.flags|=2,r.new_settings.email=n.email||""),t.all([i,s]).then(function(e){return r.current_password_hash=e[0],r.new_settings.new_password_hash=e[1],a.invokeApi("account.updatePasswordSettings",r)})}function l(e,t,n){return u(e.current_salt,t).then(function(e){return a.invokeApi("auth.checkPassword",{password_hash:e},n)})}function c(e,t){return a.invokeApi("auth.requestPasswordRecovery",{},t)}function d(e,t){return a.invokeApi("auth.recoverPassword",{code:e},t)}function u(e,t){for(var n=unescape(encodeURIComponent(t)),a=new ArrayBuffer(n.length),o=new Uint8Array(a),s=0,r=n.length;s=a-1?t.history[0]:0,J=t.history[t.history.length-1],e.historyState.skipped=X=Q>0,Z=null===t.count||n&&nt;for(l=0;l0&&angular.forEach(e.selectedMsgs,function(e,t){n.push(t)}),n.length&&_.confirm({type:"MESSAGES_DELETE",count:n.length}).then(function(){d.deleteMessages(n).then(function(){O()})})}function L(e){m.selectPeers({canSend:!0,confirm_type:"FORWARD_PEER",shareLinkPromise:d.getMessageShareLink(e)}).then(function(t){angular.forEach(t,function(t){var n=u.getPeerID(t);d.forwardMessages(n,[e])});var n=o.pop({type:"info",body:s("confirm_modal_forward_to_peer_success"),bodyOutputType:"trustedHtml",clickHandler:function(){i.$broadcast("history_focus",{peerString:t[0]}),o.clear(n)},showCloseButton:!1})})}function j(t){var n=[];t?n.push(t):e.selectedCount>0&&angular.forEach(e.selectedMsgs,function(e,t){n.push(t)}),n.length&&m.selectPeer({canSend:!0}).then(function(e){O(),i.$broadcast("history_focus",{peerString:e,attachment:{_:"fwd_messages",id:n}})})}function H(t){t||1!=e.selectedCount||angular.forEach(e.selectedMsgs,function(e,n){t=n}),t&&(O(),e.$broadcast("reply_selected",t))}function q(t){t||1!=e.selectedCount||angular.forEach(e.selectedMsgs,function(e,n){t=n}),t&&(O(),e.$broadcast("edit_selected",t))}function V(){e.historyState.selectActions?O():(e.historyState.selectActions="selected",e.$broadcast("ui_panel_update"))}function z(t){return"search"==t?void i.$broadcast("history_search",e.curDialog.peerID):(e.historyFilter.mediaType=t||!1,e.curDialog.messageID=!1,K.messages=[],K.ids=[],e.state.empty=!0,void A())}function W(){e.historyFilter.mediaType?z():e.curDialog.messageID?i.$broadcast("history_focus",{peerString:e.curDialog.peer}):A(!0)}e.$watchCollection("curDialog",y),p.attach(),g.start(),h.start(),e.peerHistories=[],e.selectedMsgs={},e.selectedCount=0,e.historyState.selectActions=!1,e.historyState.botActions=!1,e.historyState.channelActions=!1,e.historyState.canDelete=!1,e.historyState.canReply=!1,e.historyState.missedCount=0,e.historyState.skipped=!1,e.state={},e.toggleMessage=N,e.selectedDelete=B,e.selectedForward=j,e.selectedReply=H,e.selectedEdit=q,e.selectedCancel=O,e.selectedFlush=U,e.selectInlineBot=R,e.startBot=T,e.cancelBot=D,e.joinChannel=P,e.togglePeerMuted=F,e.toggleEdit=V,e.toggleMedia=z,e.returnToRecent=W,e.$on("history_edit_toggle",V),e.$on("history_edit_flush",U),e.$on("history_media_toggle",function(e,t){z(t)}),e.$on("history_return_recent",W);var G,K=!1,Y=!1,Z=!1,X=!1,J=0,Q=0,ee=!1,te={photos:"inputMessagesFilterPhotos",video:"inputMessagesFilterVideo",documents:"inputMessagesFilterDocument",audio:"inputMessagesFilterVoice"},ne=0,ae=0,ie=!1,oe=!1,se=0,re=!1,le=!1;e.$on("history_update",angular.noop);var ce=!1;e.$on("stateSynchronized",function(){ce&&(ce==e.curDialog.peerID&&A(),ce=!1)}),e.$on("reply_button_press",function(t,n){var a=e.historyState.replyKeyboard;if(a){var i={replyToMsgID:G<0&&a.mid};switch(n._){case"keyboardButtonRequestPhone":_.confirm({type:"BOT_ACCESS_PHONE"}).then(function(){var e=l.getSelf();d.sendOther(G,{_:"inputMediaContact",phone_number:e.phone,first_name:e.first_name,last_name:e.last_name},i)});break;case"keyboardButtonRequestGeoLocation":_.confirm({type:"BOT_ACCESS_GEO"}).then(function(){return v.getPosition().then(function(e){d.sendOther(G,{_:"inputMediaGeoPoint",geo_point:{_:"inputGeoPoint",lat:e.lat,"long":e["long"]}},i)},function(e){_.alert(s("error_modal_bad_request_title_raw"),s("error_modal_gelocation_na_raw"))})});break;default:d.sendText(G,n.text,i)}}}),e.$on("history_reload",function(t,n){n==e.curDialog.peerID&&A()}),e.$on("history_forbidden",function(n,a){a==e.curDialog.peerID&&t.url("/im"),k(a)}),e.$on("dialog_migrate",function(t,n){if(n.migrateFrom==e.curDialog.peerID){var a=u.getPeerString(n.migrateTo);i.$broadcast("history_focus",{peerString:a})}k(n.migrateFrom)}),e.$on("notify_settings",function(t,n){n.peerID==e.curDialog.peerID&&C()}),e.$on("channel_settings",function(t,n){n.channelID==-e.curDialog.peerID&&C()});var de={};e.$on("history_append",function(t,a){var o=w(a.peerID);if(o){var s=a.peerID==e.curDialog.peerID;if(s){if(e.historyFilter.mediaType||e.historyState.skipped)return void(a.my?W():e.historyState.missedCount++);e.curDialog.messageID&&a.my&&W(),delete e.state.empty}var r=d.wrapForHistory(a.messageID);o.messages.push(r),o.ids.push(a.messageID),d.regroupWrappedHistory(o.messages,-3)&&e.$broadcast("messages_regroup"),s&&(e.historyState.typing.splice(0,e.historyState.typing.length),e.$broadcast("ui_history_append_new",{my:a.my,idleScroll:Y&&!r.pFlags.out&&i.idle.isIDLE}),a.my&&e.historyUnreadAfter&&(delete e.historyUnreadAfter,e.$broadcast("messages_unread_after")),i.idle.isIDLE?!r.pFlags.unread||r.pFlags.out||(o.messages[o.messages.length-2]||{}).pFlags.unread||(e.historyUnreadAfter=r.mid,Y=!0,e.$broadcast("messages_unread_after")):n(function(){d.readHistory(e.curDialog.peerID)}),S(),C())}}),e.$on("history_multiappend",function(t,a){var o=!1,s=!1,r=i.idle.isIDLE;angular.forEach(a,function(t,a){var i=w(a);if(i){var l=a==e.curDialog.peerID,c=i.messages.length,u=t.length;if(l){if(e.historyFilter.mediaType||e.historyState.skipped)return void(e.historyState.missedCount+=u);delete e.state.empty}if((!l||r)&&c>(u>10?10:100))return console.warn(dT(),"Drop too many messages",u,c,r,l,a),void(l?(Q=i.messages[c-1].mid,e.historyState.skipped=X=Q>0,X&&(ce=a,e.$broadcast("ui_history_append"))):k(a));var p,m,g,h=!1,f=!1,m=i.messages[i.messages.length-1],_=!m||!m.pFlags.unread;for(g=0;g0){e=h.parseEmojis(e);var t={replyToMsgID:n.draftMessage.replyToMsgID,clearDraft:!0};do u.sendText(n.curDialog.peerID,e.substr(0,4096),t),e=e.substr(4096),t=angular.copy(t),delete t.clearDraft;while(e.length)}A(),j==n.curDialog.peer&&(j=!1),w(),n.$broadcast("ui_message_send")}function v(){var e=n.draftMessage.text;e=h.parseEmojis(e),u.editMessage(H,e).then(function(){H=!1,w(),n.$broadcast("ui_message_send")})}function y(){var e=n.curDialog.peerID;if(!e)return safeReplaceObject(n.mentions,{}),void n.$broadcast("mentions_update");var a,i=[],o=SearchIndexManager.createIndex(),r=p.getPopularBots().then(function(e){var t=[];return angular.forEach(e,function(e){t.push(e.id)}),t});a=e<0?s.getChatFull(-e).then(function(e){var t=(e.participants||{}).participants||[],n=[];return angular.forEach(t,function(e){n.push(e.user_id)}),n}):t.when([]),t.all({pop:r,chat:a}).then(function(e){var t={},a=e.pop.concat(e.chat);angular.forEach(a,function(e){t[e]||(t[e]=!0,i.push(l.getUser(e)),SearchIndexManager.indexObject(e,l.getUserSearchText(e),o))}),safeReplaceObject(n.mentions,{users:i,index:o}),n.$broadcast("mentions_update")})}function b(){var e=n.curDialog.peerID;return e?void s.getPeerBots(e).then(function(t){if(!t.length)return safeReplaceObject(n.commands,{}),void n.$broadcast("mentions_update");var a=e<0,i=[],o=SearchIndexManager.createIndex();angular.forEach(t,function(e){var t="";if(a){var n=l.getUser(e.id);n&&n.username&&(t+="@"+n.username)}var s=l.getUserSearchText(e.id);angular.forEach(e.commands,function(n,a){var r="/"+a+t;i.push({botID:e.id,value:r,rDescription:h.wrapRichText(n,{noLinks:!0,noLineBreaks:!0})}),SearchIndexManager.indexObject(r,s+" "+a+" "+n,o)})}),safeReplaceObject(n.commands,{list:i,index:o}),n.$broadcast("mentions_update")}):(safeReplaceObject(n.commands,{}),void n.$broadcast("mentions_update"))}function w(e,t){var i=t?c.getPeerID(t):0;if(e!=t&&i)return n.$broadcast("ui_message_before_send"),void a(function(){g.syncDraft(i),w()});if(H=!1,y(),b(),x(),T(),delete n.draftMessage.inlineProgress,n.$broadcast("inline_results",!1),j){if(j==n.curDialog.peer)return n.draftMessage.isBroadcast=c.isBroadcast(n.curDialog.peerID),void n.$broadcast("ui_peer_draft");j=!1}I(),k()}function k(){if(n.curDialog.peerID){var e;e=H?u.getMessageEditData(H).then(function(e){return e.replyToMsgID=H,e},function(e){return console.warn(e),H=!1,k(),t.reject()}):g.getDraft(n.curDialog.peerID),e.then(function(e){if(n.draftMessage.type=H?"edit":"new",n.draftMessage.text=e?e.text:"",n.draftMessage.isBroadcast=c.isBroadcast(n.curDialog.peerID),e.replyToMsgID){var t=e.replyToMsgID;S(t)}else x();n.$broadcast("ui_peer_draft")})}else n.draftMessage.text="",n.$broadcast("ui_peer_draft")}function $(e,t){if(console.log(dT(),"apply draft attach",t),t&&t._)if("share_url"==t._){var i=t.url,o=t.text||" ";j=n.curDialog.peer,a(function(){n.draftMessage.text=i+"\n"+o,n.$broadcast("ui_peer_draft",{customSelection:[i+"\n",o,""]})},1e3)}else if("fwd_messages"==t._)j=n.curDialog.peer,a(function(){n.draftMessage.fwdMessages=t.id,n.$broadcast("ui_peer_reply")},100);else if("inline_query"==t._){var s=t.mention,r=t.query;j=n.curDialog.peer,a(function(){n.draftMessage.text=s+" "+r,n.$broadcast("ui_peer_draft",{customSelection:[s+" "+r,"",""]})},1e3)}}function S(e,t){return H&&t?void x():(n.draftMessage.replyToMsgID=e,n.$broadcast("ui_peer_reply"),L=!1,void(t&&!H&&g.changeDraft(n.curDialog.peerID,{text:n.draftMessage.text,replyToMsgID:e})))}function C(e){H=e,k()}function M(){return!(H||!n.curDialog.peerID)&&void u.getHistory(n.curDialog.peerID).then(function(e){for(var t,n=0;n0,t.nav.hasPrev=b||n<_.length-1,t.canForward=t.canDelete=t.messageID>0}function p(n){var a=_.indexOf(t.messageID),s=a>=0?a+n:0,r=++w,l=s>=_.length?m():e.when();l.then(function(){if(r==w){var e=_[s],a=o.getMessage(e),l=a&&a.media&&(a.media.photo&&a.media.photo.id||a.media.webpage&&a.media.webpage.photo&&a.media.webpage.photo.id);if(!l)return void console.error("Invalid photo message",s,_,e,a);t.messageID=e,t.photoID=l,t.photo=i.wrapForFull(t.photoID),v[t.messageID]=!0,u(),n>0&&b&&_.indexOf(e)+1>=_.length?m():d(n)}})}function m(){return k?k:k=o.getSearch(g,h,f,y).then(function(t){return t.history.length?(y=t.history[t.history.length-1],_=_.concat(t.history),b=_.length=0&&(_=e.history,y=_[_.length-1],u(),d(1)),m()},m);var w=0,k=!1}}]).controller("UserpicModalController",["$q","$scope","$rootScope","$modalInstance","MtpApiManager","AppPhotosManager","AppUsersManager","AppPeersManager","AppMessagesManager","ApiUpdatesManager","PeersSelectService","ErrorService",function(e,t,n,a,i,o,s,r,l,c,d,u){function p(n,a){var i=f.indexOf(t.photoID),s=i>=0?i+n:0,r=++w,l=s>=f.length?g():e.when();l.then(function(){if(r==w){t.photoID=f[s],t.photo=o.wrapForFull(t.photoID),t.photo.thumb={location:o.choosePhotoSize(t.photo,0,0).location};var e;a&&(f.splice(i,1),e=t.count-1),h(e),v[t.photoID]=!0,h(),n>0&&b&&f.indexOf(t.photoID)+1>=f.length?g():m(n)}})}function m(e){var n=e<0?[-1,-2]:[1,2],a=f.indexOf(t.photoID);angular.forEach(n,function(e){var t=f[a+e];void 0!==t&&void 0===v[t]&&(v[t]=!0,o.preloadPhoto(t))})}function g(){return k?k:k=o.getUserPhotos(t.userID,_).then(function(t){return t.photos.length?(_=t.photos[t.photos.length-1],f=f.concat(t.photos),b=f.length0,t.nav.hasPrev=b||n=0&&(f=e.photos,_=f[f.length-1]),b=f.length=200,(Config.Modes.test||Config.Modes.debug)&&(e.needMigrate=!0),p.savePeerSettings(-e.chatID,t.notify_settings),p.getPeerMuted(-e.chatID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t!==n&&void p.getPeerSettings(-e.chatID).then(function(n){t?n.mute_until=0:n.mute_until=2e9,p.updatePeerSettings(-e.chatID,n)})})})}),e.leaveGroup=function(){_.confirm({type:"HISTORY_LEAVE_AND_FLUSH"}).then(function(){d.invokeApi("messages.deleteChatUser",{chat_id:r.getChatInput(e.chatID),user_id:{_:"inputUserSelf"}}).then(function(a){h.processUpdateMessage(a),m.flushHistory(-e.chatID).then(function(){t.close(),n.url("/im")})})})},e.inviteToGroup=function(){var t=[];angular.forEach(e.chatFull.participants.participants,function(e){t.push(e.user_id)}),f.selectContacts({disabled:t}).then(function(t){angular.forEach(t,function(t){d.invokeApi("messages.addChatUser",{chat_id:r.getChatInput(e.chatID),user_id:s.getUserInput(t),fwd_limit:100}).then(function(e){h.processUpdateMessage(e)})}),i.$broadcast("history_focus",{peerString:e.chatFull.peerString})})},e.migrateToSuperGroup=function(){_.confirm({type:"SUPERGROUP_MIGRATE"}).then(function(){d.invokeApi("messages.migrateChat",{chat_id:r.getChatInput(e.chatID)}).then(v)})},e.kickFromGroup=function(t){d.invokeApi("messages.deleteChatUser",{chat_id:r.getChatInput(e.chatID),user_id:s.getUserInput(t)}).then(v)},e.flushHistory=function(a){_.confirm({type:a?"HISTORY_FLUSH":"HISTORY_FLUSH_AND_DELETE"}).then(function(){m.flushHistory(-e.chatID,a).then(function(){a?i.$broadcast("history_focus",{peerString:e.chatFull.peerString}):(t.close(),n.url("/im"))})})},e.inviteViaLink=function(){var t=i.$new();t.chatID=e.chatID,o.open({templateUrl:templateUrl("chat_invite_link_modal"),controller:"ChatInviteLinkModalController",scope:t,windowClass:"md_simple_modal_window"})},e.photo={},e.$watch("photo.file",y),e.deletePhoto=function(){e.photo.updating=!0,d.invokeApi("messages.editChatPhoto",{chat_id:r.getChatInput(e.chatID),photo:{_:"inputChatPhotoEmpty"}}).then(v)["finally"](function(){e.photo.updating=!1})},e.editTitle=function(){var t=i.$new();t.chatID=e.chatID,o.open({templateUrl:templateUrl("chat_edit_modal"),controller:"ChatEditModalController",scope:t,windowClass:"md_simple_modal_window mobile_modal"})},e.hasRights=function(t){return r.hasRights(e.chatID,t)}}]).controller("ChannelModalController",["$scope","$timeout","$rootScope","$modal","AppUsersManager","AppChatsManager","AppProfileManager","AppPhotosManager","MtpApiManager","MtpApiFileManager","NotificationsManager","AppMessagesManager","AppPeersManager","ApiUpdatesManager","ContactsSelectService","ErrorService",function(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h){function f(t){m.processUpdateMessage(t),n.$broadcast("history_focus",{peerString:e.chatFull.peerString})}function _(t){t&&t.type&&0===t.type.indexOf("image")&&(e.photo.updating=!0,c.uploadFile(t).then(function(t){return l.invokeApi("channels.editPhoto",{channel:o.getChannelInput(e.chatID),photo:{_:"inputChatUploadedPhoto",file:t}}).then(f)})["finally"](function(){e.photo.updating=!1}))}e.chatFull=o.wrapForFull(e.chatID,{}),e.settings={notifications:!0},e.isMegagroup=o.isMegagroup(e.chatID),s.getChannelFull(e.chatID,!0).then(function(t){e.chatFull=o.wrapForFull(e.chatID,t),e.$broadcast("ui_height"),d.savePeerSettings(-e.chatID,t.notify_settings),d.getPeerMuted(-e.chatID).then(function(t){e.settings.notifications=!t,e.$watch("settings.notifications",function(t,n){return t!==n&&void d.getPeerSettings(-e.chatID).then(function(n){t?n.mute_until=0:n.mute_until=2e9,d.updatePeerSettings(-e.chatID,n)})})}),e.chatFull.chat&&e.chatFull.chat.pFlags.creator&&e.chatFull.exported_invite&&"chatInviteEmpty"==e.chatFull.exported_invite._&&s.getChatInviteLink(e.chatID,!0).then(function(t){e.chatFull.exported_invite={_:"chatInviteExported",link:t}})}),e.leaveChannel=function(){return h.confirm({type:e.isMegagroup?"MEGAGROUP_LEAVE":"CHANNEL_LEAVE"}).then(function(){l.invokeApi("channels.leaveChannel",{channel:o.getChannelInput(e.chatID)}).then(f)})},e.deleteChannel=function(){return h.confirm({type:e.isMegagroup?"MEGAGROUP_DELETE":"CHANNEL_DELETE"}).then(function(){l.invokeApi("channels.deleteChannel",{channel:o.getChannelInput(e.chatID)}).then(f)})},e.joinChannel=function(){l.invokeApi("channels.joinChannel",{channel:o.getChannelInput(e.chatID)}).then(f)},e.inviteToChannel=function(){var t=[];angular.forEach((e.chatFull.participants||{}).participants||[],function(e){t.push(e.user_id)}),g.selectContacts({disabled:t}).then(function(t){var n=[];angular.forEach(t,function(e){n.push(i.getUserInput(e))}),l.invokeApi("channels.inviteToChannel",{channel:o.getChannelInput(e.chatID),users:n}).then(f)})},e.kickFromChannel=function(t){l.invokeApi("channels.kickFromChannel",{channel:o.getChannelInput(e.chatID),user_id:i.getUserInput(t),kicked:!0}).then(f)},e.shareLink=function(t){var i=n.$new();return i.chatID=e.chatID,a.open({templateUrl:templateUrl("chat_invite_link_modal"),controller:"ChatInviteLinkModalController",scope:i,windowClass:"md_simple_modal_window"}),cancelEvent(t)},e.photo={},e.$watch("photo.file",_),e.deletePhoto=function(){e.photo.updating=!0,l.invokeApi("channels.editPhoto",{channel:o.getChannelInput(e.chatID),photo:{_:"inputChatPhotoEmpty"}}).then(f)["finally"](function(){e.photo.updating=!1})},e.editChannel=function(){var t=n.$new();t.chatID=e.chatID,a.open({templateUrl:templateUrl(e.isMegagroup?"megagroup_edit_modal":"channel_edit_modal"),controller:"ChannelEditModalController",scope:t,windowClass:"md_simple_modal_window mobile_modal"})},e.goToHistory=function(){n.$broadcast("history_focus",{peerString:e.chatFull.peerString})},e.hasRights=function(t){return o.hasRights(e.chatID,t)}}]).controller("SettingsModalController",["$rootScope","$scope","$timeout","$modal","AppUsersManager","AppChatsManager","AppPhotosManager","MtpApiManager","Storage","NotificationsManager","MtpApiFileManager","PasswordManager","ApiUpdatesManager","ChangelogNotifyService","LayoutSwitchService","WebPushApiManager","AppRuntimeManager","ErrorService","_",function(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f,_,v){function y(){n.cancel(w),w=!1,u.getState().then(function(e){t.password=e,"account.noPassword"==e._&&e.email_unconfirmed_pattern&&!k&&(w=n(y,5e3))})}function b(e){e&&e.type&&0===e.type.indexOf("image")&&(t.photo.updating=!0,d.uploadFile(e).then(function(e){r.invokeApi("photos.uploadProfilePhoto",{file:e,caption:"",geo_point:{_:"inputGeoPointEmpty"}}).then(function(e){i.saveApiUsers(e.users),r.getUserID().then(function(n){s.savePhoto(e.photo,{user_id:n}),p.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:n,date:tsNow(!0),photo:i.getUser(n).photo,previous:!0}}),t.photo={}})})})["finally"](function(){delete t.photo.updating}))}t.profile={},t.photo={},t.version=Config.App.version,r.getUserID().then(function(e){t.profile=i.getUser(e)}),r.invokeApi("users.getFullUser",{id:{_:"inputUserSelf"}}).then(function(e){i.saveApiUser(e.user),e.profile_photo&&s.savePhoto(e.profile_photo,{user_id:e.user.id})}),t.notify={volume:.5},t.send={},t.$watch("photo.file",b),t.password={_:"account.noPassword"},y();var w=!1,k=!1;t.changePassword=function(n){if(n=n||{},"cancel_email"==n.action)return _.confirm({type:"PASSWORD_ABORT_SETUP"}).then(function(){u.updateSettings(t.password,{email:""}).then(y)});var i=e.$new();i.password=t.password,angular.extend(i,n);var o=a.open({scope:i,templateUrl:templateUrl("password_update_modal"),controller:"PasswordUpdateModalController",windowClass:"md_simple_modal_window mobile_modal"});o.result["finally"](y)},t.showSessions=function(){a.open({templateUrl:templateUrl("sessions_list_modal"),controller:"SessionsListModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.$on("$destroy",function(){n.cancel(w),k=!0}),t.deletePhoto=function(){t.photo.updating=!0,r.invokeApi("photos.updateProfilePhoto",{id:{_:"inputPhotoEmpty"}}).then(function(e){r.getUserID().then(function(n){p.processUpdateMessage({_:"updateShort",update:{_:"updateUserPhoto",user_id:n,date:tsNow(!0),photo:e,previous:!0}}),t.photo={}})})["finally"](function(){delete t.photo.updating})},t.editProfile=function(){a.open({templateUrl:templateUrl("profile_edit_modal"),controller:"ProfileEditModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.changeUsername=function(){a.open({templateUrl:templateUrl("username_edit_modal"),controller:"UsernameEditModalController",windowClass:"md_simple_modal_window mobile_modal"})},t.terminateSessions=function(){_.confirm({type:"TERMINATE_SESSIONS"}).then(function(){r.invokeApi("auth.resetAuthorizations",{})})},l.get("notify_nodesktop","send_ctrlenter","notify_volume","notify_novibrate","notify_nopreview","notify_nopush").then(function(a){t.notify.desktop=!a[0],t.send.enter=a[1]?"":"1",t.notify.pushAvailable=h.isAvailable,t.notify.push=!a[5],a[2]!==!1?t.notify.volume=a[2]>0&&a[2]<=1?a[2]:0:t.notify.volume=.5,t.notify.canVibrate=c.getVibrateSupport(),t.notify.vibrate=!a[3],t.notify.preview=!a[4],t.notify.volumeOf4=function(){return 1+Math.ceil((t.notify.volume-.1)/.33)},t.toggleSound=function(){t.notify.volume?t.notify.volume=0:t.notify.volume=.5};var i;t.$watch("notify.volume",function(t,a){t!==a&&(l.set({notify_volume:t}),e.$broadcast("settings_changed"),c.clear(),i&&n.cancel(i),i=n(function(){c.testSound(t)},500))}),t.toggleDesktop=function(){t.notify.desktop=!t.notify.desktop,t.notify.desktop?l.remove("notify_nodesktop"):l.set({notify_nodesktop:!0}),e.$broadcast("settings_changed")},t.togglePush=function(){t.notify.push=!t.notify.push,t.notify.push?l.remove("notify_nopush"):l.set({notify_nopush:!0}),e.$broadcast("settings_changed")},t.togglePreview=function(){t.notify.preview=!t.notify.preview,t.notify.preview?l.remove("notify_nopreview"):l.set({notify_nopreview:!0}),e.$broadcast("settings_changed")},t.toggleVibrate=function(){t.notify.vibrate=!t.notify.vibrate,t.notify.vibrate?l.remove("notify_novibrate"):l.set({notify_novibrate:!0}),e.$broadcast("settings_changed")},t.toggleCtrlEnter=function(n){t.send.enter=n,t.send.enter?l.remove("send_ctrlenter"):l.set({send_ctrlenter:!0}),e.$broadcast("settings_changed")}}),t.openChangelog=function(){m.showChangelog(!1)},t.logOut=function(){_.confirm({type:"LOGOUT"}).then(function(){r.logOut().then(function(){location.hash="/login",f.reload()})})},t.switchBackToDesktop=Config.Mobile&&!Config.Navigator.mobile,t.switchToDesktop=function(){g.switchLayout(!1)}}]).controller("ChangelogModalController",["$scope","$modal",function(e,t){if(e.currentVersion=Config.App.version,!e.lastVersion){var n=e.currentVersion.split(".");e.lastVersion=n[0]+"."+n[1]+"."+Math.max(0,n[2]-1)}e.changelogHidden=!1,e.changelogShown=!1,e.canShowVersion=function(t){if(e.changelogShown)return!0;var n=versionCompare(t,e.lastVersion)>=0;return n||(e.changelogHidden=!0),n},e.showAllVersions=function(){e.changelogShown=!0,e.changelogHidden=!1,e.$emit("ui_height"),e.$broadcast("ui_height")},e.changeUsername=function(){t.open({templateUrl:templateUrl("username_edit_modal"),controller:"UsernameEditModalController",windowClass:"md_simple_modal_window mobile_modal"})}}]).controller("ProfileEditModalController",["$scope","$modalInstance","AppUsersManager","MtpApiManager",function(e,t,n,a){e.profile={},e.error={},a.getUserID().then(function(t){var a=n.getUser(t);e.profile={first_name:a.first_name,last_name:a.last_name}}),e.updateProfile=function(){e.profile.updating=!0;var i=3;a.invokeApi("account.updateProfile",{flags:i,first_name:e.profile.first_name||"",last_name:e.profile.last_name||""}).then(function(a){e.error={},n.saveApiUser(a),t.close()},function(n){switch(n.type){case"FIRSTNAME_INVALID":e.error={field:"first_name"},n.handled=!0;break;case"LASTNAME_INVALID":e.error={field:"last_name"},n.handled=!0;break;case"NAME_NOT_MODIFIED":n.handled=!0,t.close()}})["finally"](function(){delete e.profile.updating})}}]).controller("UsernameEditModalController",["$scope","$modalInstance","AppUsersManager","MtpApiManager",function(e,t,n,a){e.profile={},e.error={},a.getUserID().then(function(t){var a=n.getUser(t);e.profile={username:a.username}}),e.updateUsername=function(){e.profile.updating=!0,a.invokeApi("account.updateUsername",{username:e.profile.username||""}).then(function(a){e.checked={},n.saveApiUser(a),t.close()},function(e){"USERNAME_NOT_MODIFIED"==e.type&&(e.handled=!0,t.close())})["finally"](function(){delete e.profile.updating})},e.$watch("profile.username",function(t){return t&&t.length?void a.invokeApi("account.checkUsername",{username:t||""}).then(function(n){e.profile.username==t&&(n?e.checked={success:!0}:e.checked={error:!0})},function(n){if(e.profile.username==t)switch(n.type){case"USERNAME_INVALID":e.checked={error:!0},n.handled=!0}}):void(e.checked={})})}]).controller("SessionsListModalController",["$scope","$q","$timeout","_","MtpApiManager","ErrorService","$modalInstance",function(e,t,n,a,i,o,s){function r(){n.cancel(l),i.invokeApi("account.getAuthorizations").then(function(t){e.sessionsLoaded=!0,e.authorizations=t.authorizations;for(var a,i=0,o=e.authorizations.length;i=5&&n(function(){a==d&&o.invokeApi("contacts.search",{q:t,limit:10}).then(function(t){s.saveApiUsers(t.users),a==d&&angular.forEach(t.results,function(t){var n=t.user_id;i.indexOf(n)==-1&&e.contacts.push({userID:n,user:s.getUser(n),peerString:s.getUserString(n),found:!0})})},function(e){400==e.code&&(e.handled=!0)})},500)}e.contacts=[],e.foundPeers=[],e.search={},e.slice={limit:20,limitDelta:20};var d=0;if(l(),e.disabledContacts={},e.disabled)for(var u=0;u0){var t=[];return angular.forEach(e.selectedContacts,function(e,n){t.push(n)}),i.close(t)}},e.deleteSelected=function(){if(e.selectedCount>0){var t=[];angular.forEach(e.selectedContacts,function(e,n){t.push(n)}),s.deleteContacts(t).then(function(){e.toggleEdit(!1)})}},e.importContact=function(){s.openImportContact().then(function(e){e&&t.$broadcast("history_focus",{peerString:s.getUserString(e)})})}}]).controller("PeerSelectController",["$scope","$modalInstance","$q","AppPeersManager","ErrorService",function(e,t,n,a,i){e.selectedPeers={},e.selectedPeerIDs=[],e.selectedCount=0,e.shareLinkPromise&&(e.shareLink={loading:!0},e.shareLinkPromise.then(function(t){e.shareLink={url:t}},function(){delete e.shareLink})),e.dialogSelect=function(o){if(!e.multiSelect){var s;if(e.confirm_type){var r=a.getPeerID(o),l=a.getPeer(r);s=i.confirm({type:e.confirm_type,peer_id:r,peer_data:l})}else s=n.when();return void s.then(function(){t.close(o)})}var r=a.getPeerID(o);if(e.selectedPeers[r]){delete e.selectedPeers[r],e.selectedCount--;var c=e.selectedPeerIDs.indexOf(r);c>=0&&e.selectedPeerIDs.splice(c,1)}else e.selectedPeers[r]=a.getPeer(r),e.selectedCount++,e.selectedPeerIDs.unshift(r)},e.submitSelected=function(){if(e.selectedCount>0){var n=[];return angular.forEach(e.selectedPeers,function(e,t){n.push(a.getPeerString(t))}),t.close(n)}},e.toggleSearch=function(){e.$broadcast("dialogs_search_toggle")}}]).controller("ChatCreateModalController",["$scope","$modalInstance","$rootScope","MtpApiManager","AppUsersManager","AppChatsManager","ApiUpdatesManager",function(e,t,n,a,i,o,s){e.group={name:""},e.createGroup=function(){if(e.group.name){e.group.creating=!0;var r=[];return angular.forEach(e.userIDs,function(e){r.push(i.getUserInput(e))}),a.invokeApi("messages.createChat",{title:e.group.name,users:r}).then(function(e){if(s.processUpdateMessage(e),e.updates&&e.updates.length){for(var a,i=0,r=e.updates.length;i5184e5?o=n?"mediumDate":"shortDate":i>432e5&&(o=n?"EEEE":"EEE"),t(a,o)}}]).filter("time",["$filter",function(e){var t={},n=e("date"),a=Config.Mobile?"shortTime":"mediumTime";return function(e){return t[e]?t[e]:t[e]=n(1e3*e,a)}}]).filter("myDate",["$filter",function(e){var t={},n=e("date");return function(e){return t[e]?t[e]:t[e]=n(1e3*e,"fullDate")}}]).filter("duration",[function(){return function(e){e=parseInt(e),isNaN(e)&&(e=0);var t=Math.floor(e/3600),n=Math.floor(e%3600/60),a=e%60,i=(t?t+":":"")+n+":"+a;return i=i.replace(/:(\d(?::|$))/g,":0$1")}}]).filter("durationRemains",["$filter",function(e){var t=e("duration");return function(e,n){return"-"+t(n-e)}}]).filter("phoneNumber",[function(){return function(e){var t=" ";return e=(e||"").replace(/\D/g,""),"7"==e.charAt(0)&&11==e.length?"+"+e.charAt(0)+t+"("+e.substr(1,3)+")"+t+e.substr(4,3)+"-"+e.substr(7,2)+"-"+e.substr(9,2):"+"+e}}]).filter("formatSize",[function(){return function(e,t){if(!e)return"0";if(e<1024)return e+" b";if(e<1048576)return Math.round(e/1024)+" KB";var n=e/1048576;return n=t?n.toFixed(1):Math.round(10*n)/10,n+" MB"}}]).filter("formatSizeProgress",["$filter","_",function(e,t){ var n=e("formatSize");return function(e){if(!e.total)return"";var a=n(e.done,!0),i=a.split(" "),o=n(e.total),s=o.split(" ");return s[1]===i[1]?t("format_size_progress_mulitple",{done:i[0],total:s[0],parts:i[1]||""}):t("format_size_progress",{done:a,total:o})}}]).filter("formatShortNumber",[function(){return function(e){if(!e)return"0";if(e<1e3)return e.toString();if(e<9e5){var t=e>1e4?1:10;return Math.round(e/1e3*t)/t+"K"}var t=e>1e7?1:10;return Math.round(e/1e6*t)/t+"M"}}]).filter("nl2br",[function(){return function(e){return e.replace(/\n/g,"
")}}]).filter("shortUrl",[function(){return function(e){return"string"!=typeof e?e:e.replace(/^https?:\/\//,"").replace(/^www\./,"")}}]).filter("richText",["$filter",function(e){var t=e("linky");return function(e){return t(e,"_blank").replace(/\n| /g,"
")}}]).filter("relativeTime",["$filter","_",function(e,t){var n=t.pluralize("relative_time_pluralize_minutes_ago"),a=t.pluralize("relative_time_pluralize_hours_ago"),i=e("dateOrTime");return function(e){var o=Math.abs(tsNow(!0)-e);if(o<60)return t("relative_time_just_now");if(o<3600){var s=Math.floor(o/60);return n(s)}if(o<86400){var r=Math.floor(o/3600);return a(r)}return i(e,!0)}}]),angular.module("myApp.services").service("AppMessagesManager",["$q","$rootScope","$location","$filter","$timeout","$sce","ApiUpdatesManager","AppUsersManager","AppChatsManager","AppPeersManager","AppPhotosManager","AppDocsManager","AppStickersManager","AppMessagesIDsManager","DraftsManager","AppWebPagesManager","AppGamesManager","MtpApiManager","MtpApiFileManager","ServerTimeManager","RichTextProcessor","NotificationsManager","Storage","AppProfileManager","TelegramMeWebService","ErrorService","StatusManager","_",function(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f,_,v,y,b,w,k,$,S,C,M,x){function I(t,n,a){var i=Te,o=angular.isString(t)&&t.length;if(o){if(!a||Ue.query!==t){Ue.query=t;var s=SearchIndexManager.search(t,Oe);Ue.dialogs=[],angular.forEach(Te.dialogs,function(e){s[e.peerID]&&Ue.dialogs.push(e)}),Ue.count=Ue.dialogs.length}i=Ue}else Ue.query=!1;var r=0;if(n>0)for(r=0;ri.dialogs[r].index);r++);return a=a||20,o||Ze||i.dialogs.length>=r+a?e.when({dialogs:i.dialogs.slice(r,r+a)}):T(a).then(function(){if(r=0,n>0)for(r=0;ri.dialogs[r].index);r++);return{dialogs:i.dialogs.slice(r,r+a)}})}function A(e){for(var t=0;th)&&(h=f.date)}var _=g.saveDraft(n,e.draft);_&&_.date>h&&(h=_.date),e.index=D(h),e.peerID=n,P(e,d);var v=r.pFlags.out?"read_outbox_max_id":"read_inbox_max_id";if(r.mid&&r.mid>e[v]&&(r.pFlags.unread=!0),void 0===Ee[n]&&!r.deleted){var y={count:null,history:[o],pending:[]};Ee[n]=y,j(y,r)&&t.$broadcast("history_reply_markup",{peerID:n})}if(w.savePeerSettings(n,e.notify_settings),a&&e.pts&&s.addChannelState(a,e.pts),!a&&e.unread_count>0&&We&&e.top_message>We){var b=16&r.flags?r.from_id:n;!r.pFlags.unread||r.pFlags.out||r.pFlags.silent||w.getPeerMuted(b).then(function(e){e||ke(r)})}}function T(e){var n=Te.dialogs,a=0,o=0,s=0,d=0;return Xe&&(a=Xe+y.serverTimeOffset,d=65536*Xe),_.invokeApi("messages.getDialogs",{offset_date:a,offset_id:m.getMessageLocalID(o),offset_peer:c.getInputPeerByID(s),limit:e},{timeout:300}).then(function(e){a||S.setAuthorized(!0),r.saveApiUsers(e.users),l.saveApiChats(e.chats),Q(e.messages);var o=!!a,s=!1;angular.forEach(e.dialogs,function(e){E(e),d&&e.index>d&&(it[e.peerID]=e,s=!0),o||c.isChannel(c.getPeerID(e.peer))||(we(e.top_message),o=!0)}),(!e.dialogs.length||!e.count||n.length>=e.count)&&(Ze=!0),s&&!at?at=i(Se,0):t.$broadcast("dialogs_multiupdate",{})})}function D(e){return void 0===e&&(e=tsNow(!0)+y.serverTimeOffset),65536*e+(65535&++Je)}function P(e,t){t&&(!Xe||t=n[0].index)n.unshift(e);else for(i=0;in[i].index){n.splice(i,0,e);break}}function F(t,n,a,i){var o=c.isChannel(t);o&&c.isMegagroup(t);return _.invokeApi("messages.getHistory",{peer:c.getInputPeerByID(t),offset_id:n?m.getMessageLocalID(n):0,add_offset:i||0,limit:a||0},{timeout:300,noErrorBox:!0}).then(function(e){r.saveApiUsers(e.users),l.saveApiChats(e.chats),Q(e.messages),o&&s.addChannelState(-t,e.pts);var n=e.messages.length;return n&&e.messages[n-1].deleted&&(e.messages.splice(n-1,1),n--,e.count--),t<0||!r.isBot(t)||n==a&&a0)for(s=0;si.history[s]);s++);var r=i.history.length;i.history.splice(s,i.history.length-s),angular.forEach(o.messages,function(n){j(i,n)&&t.$broadcast("history_reply_markup",{peerID:e}),i.history.push(n.mid)});var l=i.history.length;a-=l-r;var c=Qe[e],d=et[e],u=void 0!==c||void 0!==d;if(u&&(i.count=Math.max(i.count,l)+1),a>0){if(n=i.history[l-1],u){if(!o.messages.length){if(!d)return i.count=l,!0;n=0,e=d}return N(e,n,a,i)}if(l=0;i--)if(o=xe[n.history[i]],o&&!o.pFlags.out&&o.pFlags.unread){n.unreadOffset=i+1;break}}return e.when(n)}function O(e,n){if(!Qe[e]&&!et[n]&&l.hasChat(-n)){var a=l.getChat(-e);a&&a.migrated_to&&a.migrated_to.channel_id==-n&&(Qe[e]=n,et[n]=e,i(function(){var a=A(e);a.length&&(Te.dialogs.splice(a[1],1),t.$broadcast("dialog_drop",{peerID:e})),t.$broadcast("dialog_migrate",{migrateFrom:e,migrateTo:n})},100))}}function U(e){if(Qe[e])return Qe[e]}function B(e,t,n,a,i){Qe[e]&&(e=Qe[e]);var o=Ee[e],s=0,r=!1,l=!1,c=!1;i=i?Math.min(50,i):0,void 0===o&&(o=Ee[e]={count:null,history:[],pending:[]});var d=!1,u=e;if(et[e]&&(d=!0,t&&t1){var g=p.unread_count;(c=g>50)?p.read_inbox_max_id?(t=p.read_inbox_max_id,a=16,l=16,n=4):(n=20,l=16,s=g-l):(n=Math.max(10,i,g+2),l=g)}else Config.Mobile&&(n=20)}if(t>0)for(r=!0,s=0;so.history[s]){r=!1;break}if(!r&&(null!==o.count&&o.history.length==o.count||o.history.length>=s+(n||1))){a?(a=Math.min(s,a),s=Math.max(0,s-a),n+=a):n=n||(s?20:i||5);var h=o.history.slice(s,s+n);return!t&&o.pending.length&&(h=o.pending.slice().concat(h)),R(e,{count:o.count,history:h,unreadOffset:l,unreadSkip:c})}return a||n||(n=i||20),r&&(s=0),a||c||t&&o.history.indexOf(t)==-1?(a&&(s=-a,n+=a),F(u,t,n,s).then(function(n){o.count=n.count||n.messages.length,d&&o.count++;var a=[];return angular.forEach(n.messages,function(e){a.push(e.mid)}),!t&&o.pending.length&&(a=o.pending.slice().concat(a)),R(e,{count:o.count,history:a,unreadOffset:l,unreadSkip:c})})):N(e,t,n,o).then(function(){if(s=0,t>0)for(s=0;so.history[s]);s++);var a=o.history.slice(s,s+n);return!t&&o.pending.length&&(a=o.pending.slice().concat(a)),R(e,{count:o.count,history:a,unreadOffset:l,unreadSkip:c})})}function L(e){return(Ee[e]||{}).reply_markup||!1}function j(e,t){if(!t.reply_markup&&!t.pFlags.out&&!t.action)return!1;if(t.reply_markup&&"replyInlineMarkup"==t.reply_markup._)return!1;var n=t.reply_markup,a=e.reply_markup;if(n)return!(a&&a.mid>=t.mid)&&(!(n.pFlags.selective&&!(16&t.flags))&&(e.maxOutID&&t.mida.mid||t.mid<0)&&t.message)return a.pFlags.hidden=!0,!0}else(!e.maxOutID||t.mid>e.maxOutID)&&(e.maxOutID=t.mid);return!(!t.action||"messageActionChatDeleteUser"!=t.action._||(a?t.action.user_id!=a.fromID:!r.isBot(t.action.user_id)))&&(e.reply_markup={_:"replyKeyboardHide",mid:t.mid,flags:0,pFlags:{}},!0)}function H(t,n,a,i,o){t=t?parseInt(t):0;var s=[],d=!n,u={peer:t,filter:a},p=d&&angular.equals(Be,u);if(d&&!p&&(Be=u,Le=[]),t&&!i&&!n){var g=Ee[t];if(void 0!==g&&g.history.length){var h,f,v,b={},w=o||20;switch(a._){case"inputMessagesFilterPhotos":b.messageMediaPhoto=!0;break;case"inputMessagesFilterPhotoVideo":b.messageMediaPhoto=!0,b.messageMediaDocument=!0,h="video";break;case"inputMessagesFilterVideo":b.messageMediaDocument=!0,h="video";break;case"inputMessagesFilterDocument":b.messageMediaDocument=!0,h=!1;break;case"inputMessagesFilterVoice":b.messageMediaDocument=!0,h="voice";break;default:return e.when({count:0,history:[]})}for(f=0;f=w)break}}if(s.length=w));f++);}if(s.length||1e3==o)return d&&(Le=listMergeSorted(Le,s)),e.when({count:null,history:s});var $;if(t||!n)$=_.invokeApi("messages.search",{flags:0,peer:c.getInputPeerByID(t),q:n||"",filter:a||{_:"inputMessagesFilterEmpty"},min_date:0,max_date:0,limit:o||20,max_id:m.getMessageLocalID(i)||0},{timeout:300,noErrorBox:!0});else{var S=0,C=0,M=0,x=i&&q(i);x&&x.date&&(S=x.date+y.serverTimeOffset,M=x.id,C=de(x)),$=_.invokeApi("messages.searchGlobal",{q:n,offset_date:S,offset_peer:c.getInputPeerByID(C),offset_id:m.getMessageLocalID(M),limit:o||20},{timeout:300,noErrorBox:!0})}return $.then(function(e){r.saveApiUsers(e.users),l.saveApiChats(e.chats),Q(e.messages);var t=e.count||e.messages.length;return s=[],angular.forEach(e.messages,function(e){var t=de(e);if(t<0){var n=l.getChat(-t);n.migrated_to&&O(t,-n.migrated_to.channel_id)}s.push(e.mid)}),d&&(!i||p&&Le.indexOf(i)>=0)&&(Le=listMergeSorted(Le,s)),{count:t,history:s}},function(t){return 400==t.code&&(t.handled=!0),e.reject(t)})}function q(e){return xe[e]||{deleted:!0}}function V(e){var t=["messageMediaPhoto","messageMediaDocument","messageMediaWebPage","messageMediaPending"];return!("message"!=e._||e.deleted||e.fwd_from||e.via_bot_id||e.media&&t.indexOf(e.media._)==-1||e.fromID&&r.isBot(e.fromID))}function z(e){if(e<=0||!xe[e])return!1;var t=xe[e];return!(!(t&&t.canBeEdited&&t.pFlags.out)||t.date0){var o=l.getChat(t);if(!(o.pFlags.creator||o.pFlags.editor&&o.pFlags.megagroup)){var r=[];if((o.pFlags.editor||o.pFlags.megagroup)&&angular.forEach(e,function(e,a){var i=q(n.mids[t][a]);i.pFlags.out&&r.push(e)}),!r.length)return;e=r}i=_.invokeApi("channels.deleteMessages",{channel:l.getChannelInput(t),id:e}).then(function(n){s.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteChannelMessages",channel_id:t,messages:e,pts:n.pts,pts_count:n.pts_count}})})}else i=_.invokeApi("messages.deleteMessages",{id:e}).then(function(t){s.processUpdateMessage({_:"updateShort",update:{_:"updateDeleteMessages",messages:e,pts:t.pts,pts_count:t.pts_count}})});a.push(i)}),e.all(a)}function K(t){var n=m.getMessageIDInfo(t),a=n[0],i=n[1];if(!i)return e.reject();var o=q(t),s=l.getChat(i);return o&&o.pFlags&&o.pFlags.post&&s.username?_.invokeApi("channels.exportMessageLink",{channel:l.getChannelInput(i),id:a}).then(function(e){return e.link}):e.reject()}function Y(e){var n=c.isChannel(e),a=Ee[e],i=A(e)[0];if(!i||!i.unread_count){if(!a||!a.history.length)return!1;var o,r,d=!1;for(p=a.history.length;p>=0;p--)if(o=a.history[p],r=xe[o],r&&!r.pFlags.out&&r.pFlags.unread){d=!0;break}if(!d)return!1}if(a.readPromise)return a.readPromise;var u;if(u=n?_.invokeApi("channels.readHistory",{channel:l.getChannelInput(-e),max_id:0}):_.invokeApi("messages.readHistory",{peer:c.getInputPeerByID(e),max_id:0}).then(function(e){s.processUpdateMessage({_:"updateShort",update:{_:"updatePts",pts:e.pts,pts_count:e.pts_count}})}),a.readPromise=u.then(function(){i&&(i.unread_count=0,t.$broadcast("dialog_unread",{peerID:e,count:0}),t.$broadcast("messages_read"),a&&a.history.length&&(i.read_inbox_max_id=a.history[0]))})["finally"](function(){delete a.readPromise}),a&&a.history.length){var o,r,p,e,i;for(p=0;p0){var c=e.pFlags.out?"read_outbox_max_id":"read_inbox_max_id";e.pFlags.unread=s>r[c]}else t.isNew&&(e.pFlags.unread=!0);e.reply_to_msg_id&&(e.reply_to_mid=m.getFullMessageID(e.reply_to_msg_id,i)),e.date-=y.serverTimeOffset;var p=e.fwd_from;p&&(e.fwdFromID=p.channel_id?-p.channel_id:p.from_id,p.date-=y.serverTimeOffset),e.peerID=n,e.fromID=e.pFlags.post?n:e.from_id,e.signID=e.pFlags.post&&e.from_id||p&&p.channel_id&&p.from_id,e.via_bot_id>0&&(e.viaBotID=e.via_bot_id);var g={user_id:e.fromID,date:e.date};if(e.media)switch(e.media._){case"messageMediaEmpty":delete e.media;break;case"messageMediaPhoto":d.savePhoto(e.media.photo,g);break;case"messageMediaDocument":u.saveDoc(e.media.document,g);break;case"messageMediaWebPage":h.saveWebPage(e.media.webpage,e.mid,g);break;case"messageMediaGame":f.saveGame(e.media.game,e.mid,g),e.media.handleMessage=!0}if(e.action){var _,v;switch(e.action._){case"messageActionChatEditPhoto":d.savePhoto(e.action.photo,g),o&&(e.action._="messageActionChannelEditPhoto");break;case"messageActionChatEditTitle":o&&(e.action._="messageActionChannelEditTitle");break;case"messageActionChatDeletePhoto":o&&(e.action._="messageActionChannelDeletePhoto");break;case"messageActionChatAddUser":1==e.action.users.length?(e.action.user_id=e.action.users[0],e.fromID==e.action.user_id&&(a?e.action._="messageActionChatJoined":e.action._="messageActionChatReturn")):e.action.users.length>1&&(e.action._="messageActionChatAddUsers");break;case"messageActionChatDeleteUser":e.fromID==e.action.user_id&&(e.action._="messageActionChatLeave");break;case"messageActionChannelMigrateFrom":_=-e.action.chat_id,v=-i;break;case"messageActionChatMigrateTo":_=-i,v=-e.action.channel_id;break;case"messageActionHistoryClear":e.deleted=!0,e.clear_history=!0,e.pFlags.out=!1,e.pFlags.unread=!1}_&&v&&!Qe[_]&&!et[v]&&O(_,v)}if(e.message&&e.message.length){var w=b.parseEntities(e.message),k=e.entities||[];e.totalEntities=b.mergeEntities(w,k,!e.pending)}e.canBeEdited=V(e),t.isEdited||(xe[s]=e)}})}function ee(e,n,a){if(angular.isString(n)){a=a||{};var i=a.entities||[];if(a.viaBotID||(n=b.parseMarkdown(n,i)),n.length){var o,l=le(i),d=Re--,u=[nextRandomInt(4294967295),nextRandomInt(4294967295)],p=bigint(u[0]).shiftLeft(32).add(bigint(u[1])).toString(),h=Ee[e],f=0,v={},w=a.replyToMsgID,k=c.isChannel(e),$=k&&c.isMegagroup(e),S=!(!k||$);void 0===h&&(h=Ee[e]={count:null,history:[],pending:[]});var C=r.getSelf().id;e!=C&&(f|=2,v.out=!0,k||r.isBot(e)||(f|=1,v.unread=!0)),w&&(f|=8),S?(C=0,v.post=!0):f|=256,o={_:"message",id:d,from_id:C,to_id:c.getOutputPeer(e),flags:f,pFlags:v,date:tsNow(!0)+y.serverTimeOffset,message:n,random_id:p,reply_to_msg_id:w,via_bot_id:a.viaBotID,reply_markup:a.reply_markup,entities:i,views:S&&1,pending:!0};var M=function(e){var n=Ie[d];e?(o.error=!0,n&&(n.error=!0)):(delete o.error,n&&delete n.error),t.$broadcast("messages_pending")};o.send=function(){M(!1);var t={};Fe[e]&&(t.afterMessageID=Fe[e].messageID);var i=0;w&&(i|=1),S&&(i|=16),a.clearDraft&&(i|=128);var r;a.viaBotID?r=_.invokeApi("messages.sendInlineBotResult",{flags:i,peer:c.getInputPeerByID(e),random_id:u,reply_to_msg_id:m.getMessageLocalID(w),query_id:a.queryID,id:a.resultID},t):(l.length&&(i|=8),r=_.invokeApi("messages.sendMessage",{flags:i,peer:c.getInputPeerByID(e),message:n,random_id:u,reply_to_msg_id:m.getMessageLocalID(w),entities:l},t)),r.then(function(e){"updateShortSentMessage"==e._?(o.flags=e.flags,o.date=e.date,o.id=e.id,o.media=e.media,o.entities=e.entities,e={_:"updates",users:[],chats:[],seq:0,updates:[{_:"updateMessageID",random_id:p,id:e.id},{_:k?"updateNewChannelMessage":"updateNewMessage",message:o,pts:e.pts,pts_count:e.pts_count}]}):e.updates&&angular.forEach(e.updates,function(e){"updateDraftMessage"==e._&&(e.local=!0)}),s.processUpdateMessage(e)},function(e){M(!0)})["finally"](function(){Fe[e]===t&&delete Fe[e]}),Fe[e]=t},Q([o]),h.pending.unshift(d),t.$broadcast("history_append",{peerID:e,messageID:d,my:!0}),setZeroTimeout(o.send),a.clearDraft&&g.clearDraft(e),De[p]=[e,d]}}}function te(n,a,i){i=i||{};var o,l,d=Re--,u=[nextRandomInt(4294967295),nextRandomInt(4294967295)],p=bigint(u[0]).shiftLeft(32).add(bigint(u[1])).toString(),g=Ee[n],h=0,f={},b=i.replyToMsgID,w=c.isChannel(n),k=w&&c.isMegagroup(n),$=!(!w||k);i.isMedia?["image/jpeg","image/png","image/bmp"].indexOf(a.type)>=0?(o="photo",l="photo."+a.type.split("/")[1]):"audio/"==a.type.substr(0,6)||["video/ogg"].indexOf(a.type)>=0?(o="audio",l="audio."+("ogg"==a.type.split("/")[1]?"ogg":"mp3")):"video/"==a.type.substr(0,6)?(o="video",l="video.mp4"):(o="document",l="document."+a.type.split("/")[1]):(o="document",l="document."+a.type.split("/")[1]),void 0===g&&(g=Ee[n]={count:null,history:[],pending:[]});var S=r.getSelf().id;n!=S&&(h|=2,f.out=!0,w||r.isBot(n)||(h|=1,f.unread=!0)),b&&(h|=8),$?(S=0,f.post=!0):h|=256;var C,M={_:"messageMediaPending",type:o,file_name:a.name||l,size:a.size,progress:{percent:1,total:a.size}},x={_:"message",id:d,from_id:S,to_id:c.getOutputPeer(n),flags:h,pFlags:f,date:tsNow(!0)+y.serverTimeOffset,message:"",media:M,random_id:p,reply_to_msg_id:b,views:$&&1,pending:!0},I=function(e){var n=Ie[d];e?(x.error=!0,n&&(n.error=!0)):(delete x.error,n&&delete n.error),t.$broadcast("messages_pending")},A=!1;x.send=function(){var i=e.defer();Ne.then(function(){A&&!x.error||(A=!1,C=v.uploadFile(a)),C.then(function(e){e.name=l,A=!0;var t;switch(o){case"photo":t={_:"inputMediaUploadedPhoto",flags:0,file:e};break;case"document":default:t={_:"inputMediaUploadedDocument",file:e,mime_type:a.type,caption:"",attributes:[{_:"documentAttributeFilename",file_name:a.name}]}}var i=0;b&&(i|=1),$&&(i|=16),_.invokeApi("messages.sendMedia",{flags:i,peer:c.getInputPeerByID(n),media:t,random_id:u,reply_to_msg_id:m.getMessageLocalID(b)}).then(function(e){s.processUpdateMessage(e)},function(e){return"photo"!=o||400!=e.code||"PHOTO_INVALID_DIMENSIONS"!=e.type&&"PHOTO_SAVE_FILE_INVALID"!=e.type?void I(!0):(e.handled=!0,o="document",void x.send())})},function(e){I(!0)},function(e){M.progress.done=e.done,M.progress.percent=Math.max(1,Math.floor(100*e.done/e.total)),t.$broadcast("history_update",{peerID:n})}),M.progress.cancel=function(){A||(i.resolve(),C.cancel(),se(p))},C["finally"](function(){i.resolve()})}),Ne=i.promise},Q([x]),g.pending.unshift(d),t.$broadcast("history_append",{peerID:n,messageID:d,my:!0}),setZeroTimeout(x.send),De[p]=[n,d]}function ne(e,n,a){a=a||{};var i=Re--,o=[nextRandomInt(4294967295),nextRandomInt(4294967295)],l=bigint(o[0]).shiftLeft(32).add(bigint(o[1])).toString(),h=Ee[e],f=a.replyToMsgID,v=c.isChannel(e),b=v&&c.isMegagroup(e),w=!(!v||b);void 0===h&&(h=Ee[e]={count:null,history:[],pending:[]});var k,$=r.getSelf().id;switch(n._){case"inputMediaPhoto":k={_:"messageMediaPhoto",photo:d.getPhoto(n.id.id),caption:n.caption||""};break;case"inputMediaDocument":var S=u.getDoc(n.id.id);S.sticker&&S.stickerSetInput&&p.pushPopularSticker(S.id),k={_:"messageMediaDocument",document:S,caption:n.caption||""};break;case"inputMediaContact":k={_:"messageMediaContact",phone_number:n.phone_number,first_name:n.first_name,last_name:n.last_name,user_id:0};break;case"inputMediaGeoPoint":k={_:"messageMediaGeo",geo:{_:"geoPoint",lat:n.geo_point.lat,"long":n.geo_point["long"]}};break;case"inputMediaVenue":k={_:"messageMediaVenue",geo:{_:"geoPoint",lat:n.geo_point.lat,"long":n.geo_point["long"]},title:n.title,address:n.address,provider:n.provider,venue_id:n.venue_id};break;case"messageMediaPending":k=n}var C=0,M={};e!=$&&(C|=2,M.out=!0,r.isBot(e)||(C|=1,M.unread=!0)),f&&(C|=8),w?($=0,M.post=!0):C|=256;var x={_:"message",id:i,from_id:$,to_id:c.getOutputPeer(e),flags:C,pFlags:M,date:tsNow(!0)+y.serverTimeOffset,message:"",media:k,random_id:l,reply_to_msg_id:f,via_bot_id:a.viaBotID,reply_markup:a.reply_markup,views:w&&1,pending:!0},I=function(e){var n=Ie[i];e?(x.error=!0,n&&(n.error=!0)):(delete x.error,n&&delete n.error),t.$broadcast("messages_pending")};x.send=function(){var t=0;f&&(t|=1),w&&(t|=16),a.clearDraft&&(t|=128);var i={};Fe[e]&&(i.afterMessageID=Fe[e].messageID);var r;r=a.viaBotID?_.invokeApi("messages.sendInlineBotResult",{flags:t,peer:c.getInputPeerByID(e),random_id:o,reply_to_msg_id:m.getMessageLocalID(f),query_id:a.queryID,id:a.resultID},i):_.invokeApi("messages.sendMedia",{flags:t,peer:c.getInputPeerByID(e),media:n,random_id:o,reply_to_msg_id:m.getMessageLocalID(f)},i),r.then(function(e){e.updates&&angular.forEach(e.updates,function(e){"updateDraftMessage"==e._&&(e.local=!0)}),s.processUpdateMessage(e)},function(e){I(!0)})["finally"](function(){Fe[e]===i&&delete Fe[e]}),Fe[e]=i},Q([x]),h.pending.unshift(i),t.$broadcast("history_append",{peerID:e,messageID:i,my:!0}),setZeroTimeout(x.send),a.clearDraft&&g.clearDraft(e),De[l]=[e,i]}function ae(t,n,a){n=n.sort(),a=a||{};var i=0,o=c.isChannel(t),r=o&&c.isMegagroup(t),l=!(!o||r);l&&(i|=16),a.withMyScore&&(i|=256);var d=m.splitMessageIDsByChannels(n),u=[];return angular.forEach(d.msgIDs,function(e,n){for(var a=e.length,o=[],r=0;r0&&n<=4)||e.pFlags&&e.pFlags.resize||(e.splitCount=n),e.wrapped=!0,angular.forEach(e.rows,function(e){angular.forEach(e.buttons,function(e){e.rText=b.wrapRichText(e.text,{noLinks:!0,noLinebreaks:!0}),"keyboardButtonUrl"==e._&&(e.pUrl=b.wrapUrl(e.url,1))})}),e}function fe(e){var t=q(e),n=t.from_id&&r.getUser(t.from_id),a=n&&n.pFlags.bot&&n.username||!1,i=c.getPeerID(t.to_id),o=a||c.isBot(i)||c.isAnyGroup(i),s={noCommands:!o,fromBot:a,entities:t.totalEntities};if(t.pFlags.mentioned){var l=r.getSelf();l&&(s.highlightUsername=l.username)}return b.wrapRichText(t.message,s)}function _e(){if(He!==!1&&(clearTimeout(He),He=!1),je.length){var e=je.slice();je=[];var n=m.splitMessageIDsByChannels(e);angular.forEach(n.msgIDs,function(e,a){var i;i=a>0?_.invokeApi("channels.getMessages",{channel:l.getChannelInput(a),id:e}):_.invokeApi("messages.getMessages",{id:e}),i.then(function(e){r.saveApiUsers(e.users),l.saveApiChats(e.chats),Q(e.messages),t.$broadcast("messages_downloaded",n.mids[a])})})}}function ve(){if(ze!==!1&&(clearTimeout(ze),ze=!1),Ve.length){var e=Ve.slice();Ve=[];var t=m.splitMessageIDsByChannels(e);angular.forEach(t.msgIDs,function(e,n){_.invokeApi("messages.getMessagesViews",{peer:c.getInputPeerByID(-n),id:e,increment:!0}).then(function(e){if(n){for(var a=t.mids[n],i=[],o=0;o0?u=Math.min(t,d):t<0&&(c=Math.max(0,u+t)),n=c;nWe&&k.set({max_seen_msg:e})}function ke(e,n){n=n||{};var a,i,o=de(e),s={},c=!1,d=w.getNotifySettings();if(e.fwdFromID&&n.fwd_count)c=Ke(n.fwd_count);else if(e.message)c=d.nopreview?x("conversation_message_sent"):b.wrapPlainText(e.message);else if(e.media){var u=!1;switch(e.media._){case"messageMediaPhoto":c=x("conversation_media_photo_raw"),u="🖼";break;case"messageMediaDocument":switch(e.media.document.type){case"gif":c=x("conversation_media_gif_raw"),u="🎬";break;case"sticker":c=x("conversation_media_sticker");var p=e.media.document.stickerEmojiRaw;void 0!==p&&(c=b.wrapPlainText(p)+" "+c);break;case"video":c=x("conversation_media_video_raw"),u="📹";break;case"voice":case"audio":c=x("conversation_media_audio_raw");break;default:e.media.document.file_name?c=b.wrapPlainText("📎 "+e.media.document.file_name):(c=x("conversation_media_document_raw"),u="📎")}break;case"messageMediaGeo":case"messageMediaVenue":c=x("conversation_media_location_raw"),u="📍";break;case"messageMediaContact":c=x("conversation_media_contact_raw");break;case"messageMediaGame":c=b.wrapPlainText("🎮 "+e.media.game.title);break;default:c=x("conversation_media_attachment_raw")}u!==!1&&e.media.caption&&(c=b.wrapPlainText(u+" "+e.media.caption))}else if("messageService"==e._)switch(e.action._){case"messageActionChatCreate":c=x("conversation_group_created_raw");break;case"messageActionChatEditTitle":c=x("conversation_group_renamed_raw");break;case"messageActionChatEditPhoto":c=x("conversation_group_photo_updated_raw");break;case"messageActionChatDeletePhoto":c=x("conversation_group_photo_removed_raw");break;case"messageActionChatAddUser":case"messageActionChatAddUsers":c=x("conversation_invited_user_message_raw");break;case"messageActionChatReturn":c=x("conversation_returned_to_group_raw");break;case"messageActionChatJoined":c=x("conversation_joined_group_raw");break;case"messageActionChatDeleteUser":c=x("conversation_kicked_user_message_raw");break;case"messageActionChatLeave":c=x("conversation_left_group_raw");break;case"messageActionChatJoinedByLink":c=x("conversation_joined_by_link_raw");break;case"messageActionChannelCreate":c=x("conversation_created_channel_raw");break;case"messageActionChannelEditTitle":c=x("conversation_changed_channel_name_raw");break;case"messageActionChannelEditPhoto":c=x("conversation_changed_channel_photo_raw");break;case"messageActionChannelDeletePhoto":c=x("conversation_removed_channel_photo_raw");break;case"messageActionPinMessage":c=x("conversation_pinned_message_raw");break;case"messageActionGameScore":c=Ye(e.action.score)}if(o>0){var m=r.getUser(e.from_id),g=r.getUserPhoto(e.from_id);s.title=(m.first_name||"")+(m.first_name&&m.last_name?" ":"")+(m.last_name||""),s.title||(s.title=m.phone||x("conversation_unknown_user_raw")),i=g,a=r.getUserString(o)}else{if(s.title=l.getChat(-o).title||x("conversation_unknown_chat_raw"),e.from_id>0){var m=r.getUser(e.from_id);s.title=(m.first_name||m.last_name||x("conversation_unknown_user_raw"))+" @ "+s.title}i=l.getChatPhoto(-o),a=l.getChatString(-o)}s.title=b.wrapPlainText(s.title),s.onclick=function(){t.$broadcast("history_focus",{peerString:a,messageID:16&e.flags?e.mid:0})},s.message=c,s.key="msg"+e.mid,s.tag=a,i.location&&!i.location.empty?v.downloadSmallFile(i.location,i.size).then(function(t){e.pFlags.unread&&(s.image=t,w.notify(s))}):w.notify(s)}function $e(){i.cancel(tt),tt=!1,t.$broadcast("history_multiappend",nt),nt={}}function Se(){i.cancel(at),at=!1,angular.forEach(it,function(e){P(e)}),t.$broadcast("dialogs_multiupdate",it),it={}}function Ce(){i.cancel(ot),ot=!1;var e=t.idle.isIDLE&&M.isOtherDeviceActive()?3e4:1e3;angular.forEach(st,function(t){t.isMutedPromise.then(function(n){var a=t.top_message;!n&&a.pFlags.unread&&setTimeout(function(){a.pFlags.unread&&ke(a,{fwd_count:t.fwd_count})},e)})}),st={}}function Me(e){return _.invokeApi("messages.getPeerDialogs",{peers:[c.getInputPeerByID(e)]}).then(function(e){r.saveApiUsers(e.users),l.saveApiChats(e.chats),Q(e.messages);var n={},a=!1;angular.forEach(e.dialogs,function(e){if(e.top_message)E(e),A(e.peerID).length?t.$broadcast("dialog_top",e):(n[e.peerID]=e,a=!0);else{var i=c.getPeerID(e.peer),o=A(i);o.length&&(Te.dialogs.splice(o[1],1),t.$broadcast("dialog_drop",{peerID:i}))}}),a&&t.$broadcast("dialogs_multiupdate",n)})}var xe={},Ie={},Ae={},Ee={},Te={count:null,dialogs:[]},De={},Pe={},Fe={},Ne=e.when(),Re=-1,Oe=SearchIndexManager.createIndex(),Ue={query:!1},Be={},Le=[],je=[],He=!1,qe={},Ve=[],ze=!1,We=!1;Config.Modes.packed&&k.get("max_seen_msg").then(function(e){We=e||0});var Ge=a("dateOrTime"),Ke=x.pluralize("conversation_forwarded_X_messages"),Ye=x.pluralize("conversation_scored_X");w.start();var Ze=!1,Xe=0,Je=0,Qe={},et={},tt=!1,nt={},at=!1,it={},ot=!1,st={};return t.$on("apiUpdate",function(e,n){switch(n._){case"updateMessageID":var a=n.random_id,o=De[a];if(o){var s=o[0],d=c.isChannel(s)?-s:0;Pe[m.getFullMessageID(n.id,d)]=a}break;case"updateNewMessage":case"updateNewChannelMessage":var u=n.message,s=de(u),p=Ee[s];if("updateNewChannelMessage"==n._){var g=l.getChat(-s);if(g.pFlags&&(g.pFlags.left||g.pFlags.kicked))break}if(Q([u],{isNew:!0}),void 0!==p){var h=p.history;if(h.indexOf(u.mid)!=-1)return!1;var f=h[0];h.unshift(u.mid),u.mid>0&&u.mid0&&E&&r.forceUserOnline(s),I=0;IT)&&(u=xe[x],u.pFlags.out==E)){if(!u.pFlags.unread)break;u&&u.pFlags.unread&&(u.pFlags.unread=!1,Ie[x]&&(Ie[x].pFlags.unread=!1,N||(N=!0)),Ae[x]&&(Ae[x].pFlags.unread=!1),u.pFlags.out||(y[0]&&(P=--y[0].unread_count),w.cancel("msg"+x)))}if(y[0]){!E&&P&&y[0].top_message<=T&&(P=y[0].unread_count=0);var R=E?"read_outbox_max_id":"read_inbox_max_id";y[0][R]=T}P!==!1&&t.$broadcast("dialog_unread",{peerID:s,count:P}),N&&t.$broadcast("messages_read");break;case"updateReadMessagesContents":var I,x,u,O,U=n.messages,B=U.length;for(I=0;I0&&(a.count-=e.count,a.count<0&&(a.count=0));for(var s=0;s0,K="channel"==z._&&(z.username||!z.pFlags.left&&!z.pFlags.kicked)&&!0||!1,Y=void 0!==Ee[s];K!=Y&&(delete Ee[s],t.$broadcast("history_forbidden",s)),G!=W&&(W?Me(-d):y[0]&&(Te.dialogs.splice(y[1],1),t.$broadcast("dialog_drop",{peerID:s})));break;case"updateChannelReload":var d=n.channel_id,s=-d,y=A(s);y[0]&&Te.dialogs.splice(y[1],1),delete Ee[s],Me(-d).then(function(){t.$broadcast("history_reload",s)});break;case"updateChannelMessageViews":var Z=n.views,S=m.getFullMessageID(n.id,n.channel_id),u=q(S);u&&u.views&&u.viewss)&&(s=d.date)}}o.index=D(s),P(o),t.$broadcast("dialog_draft",{peerID:a,draft:i,index:o.index})}}),{getConversations:I,getHistory:B,getSearch:H,getMessage:q,getReplyKeyboard:L,readHistory:Y,readMessages:Z,flushHistory:J,deleteMessages:G,sendText:ee,sendFile:te,sendOther:ne,forwardMessages:ae,startBot:ie,shareGame:oe,editMessage:ce,convertMigratedPeer:U,getMessagePeer:de,getMessageThumb:be,getMessageShareLink:K,canMessageBeEdited:V,canEditMessage:z,getMessageEditData:W,clearDialogCache:me,wrapForDialog:ue,wrapForHistory:ge,wrapReplyMarkup:he,wrapSingleMessage:pe,wrapMessageText:fe,regroupWrappedHistory:ye}}]).service("AppMessagesIDsManager",function(){function e(e,t){if(!t||e<=0)return e;e=n(e);var a=i[t];return a||(a=++s*r,o[a]=t,i[t]=a),a+e}function t(e){if(e\n\t\n\t \n\t\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t\t[ \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t]\n\t\t\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\t
\n \n \n\t
\n\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t
\n\t \t
\n\t \t
\n\t
\n\t
\n\t\n'),e.put("partials/desktop/changelog_modal.html",'
\n\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n
Telegram Web
\n
Version {{currentVersion}}
\n
\n
\n
\n\n
\n
\n \n \n \n
\n
\n\n
\n\n
\n\n
\n
0.5.5
\n
\n
    \n
  • Introducing Drafts: Seamless syncing for unsent messages on all your devices. Drafts are now visible in your chats list.
  • \n
  • Mention people in groups by typing @ and selecting them from the list — even if they don\'t have a username.
  • \n
  • Share links to specific posts in channels via quick forwarding menu (click on the date in a message to try this out).
  • \n
\n\n
\n
\n\n
\n
0.5.4
\n
\n
    \n
  • Introducing Bot API 2.0, the biggest update to our bot platform since June 2015.
  • \n
  • New inline keyboards with callback, \'open URL\' or \'switch to inline mode\' buttons help create seamless interfaces.
  • \n
  • Bots can now update existing messages on the fly as you interact with them.
  • \n
  • Prepare for the rise of location-based bots: all bots can now ask users to share their location.
  • \n
  • Inline bots can now send all attachments supported in Telegram (videos, music, stickers, files, etc.).
  • \n
  • Try out these sample bots to see what\'s coming your way soon: @music, @sticker, @youtube, @foursquare
  • \n
  • Check out the Telegram Blog for more info.
  • \n
  • New quick forwarding in channels (click on the date in a message to try this out).
  • \n
  • Improved performance.
  • \n
\n\n
\n
\n\n
\n
0.5.3
\n
\n
    \n
  • Inline bots: A new way to add bot content to any chat. Type a bot\'s username and your query in the text field to get instant results and send them to your chat partner. Try typing @gif dog in your next chat. Sample bots: @gif, @wiki, @bing, @vid, @bold.
  • \n
  • Check out the Telegram Blog for more info.
  • \n
  • Improved GIFs: 20x faster sending and downloading, nice animated progress
  • \n
  • Click on message date to reply (or to forward from channels).
  • \n
  • Preview images before sending when pasting from clipboard.
  • \n
  • Improved formatting for copy-pasted history fragments (date, time and sender names inserted automatically).
  • \n
\n
\n
\n\n
\n
0.5.2
\n
\n
    \n
  • Unread counters for muted chats now colored in gray.
  • \n
  • Improved previews for sticker sets: Click on a sticker to view the whole set, click on stickers in a set to send right away, added a \'Share\' button.
  • \n
  • Improved performance.
  • \n
\n
\n
\n\n
\n
0.5.1
\n
\n
    \n
  • Groups that have reached their capacity of 200 users can be upgraded to supergroups of up to 1,000 members.
  • \n
  • Check out the Telegram Blog for more info
  • \n
\n
\n
\n\n
\n
0.5.0
\n
\n
    \n
  • Removed annoying "multiple tabs open" error.
  • \n
  • Improved message forwarding.
  • \n
  • Added view counter to messages from channels.
  • \n
  • Improved image loading in Safari and Firefox.
  • \n
\n
\n
\n\n
\n
0.4.9
\n
\n
    \n
  • New emoji and sticker menu, tabs for sticker packs.
  • \n
\n
\n
\n\n
\n
0.4.8
\n
\n
    \n
  • Introducing Channels – a great new way to broadcast your messages to unlimited audiences.
  • \n
  • Check out the Telegram Blog for more info
  • \n
  • Improved performance in Safari on OS X El Capitan.
  • \n
  • Added formatting for fixed-width code, surround text with `single backticks` for inline text and ```triple backticks``` for blocks of pre-formatted text.
  • \n
\n
\n
\n\n
\n
0.4.7
\n
\n
    \n
  • New bot API, free for everyone. If you\'re an engineer, create your own bots for games, services or integrations.\n
  • \n
  • Check out Telegram Blog for more info
  • \n
  • Improved Stickers support: now stickers are loading much faster.
  • \n
  • Click on any custom stickers in chats to view and add sticker sets.
  • \n
  • [Mobile] Reply to a message easily: tap on any message and select "Reply".
  • \n
\n
\n
\n\n
\n
0.4.6
\n
\n \n
\n
\n\n
\n
0.4.5
\n
\n
    \n
  • \n Invite links for group chats:
    \n Check out Telegram Blog for more info\n
  • \n
  • Smart notifications
  • \n
  • \'Listened\' status for voice messages
  • \n
  • Places in locations (venues, landmarks)
  • \n
\n
\n
\n\n
\n
0.4.4
\n
\n
    \n
  • Link Previews:
    \n Get rich link summaries for tweets, YouTube videos, Instagram photos and other content.
  • \n\n
  • Check out Telegram Blog for more info.
  • \n
\n
\n
\n\n
\n
0.4.3
\n
\n
    \n
  • Sessions List:
    \n View your active Telegram sessions (on desktop, tablet and mobile devices) and close specific sessions remotely.
  • \n\n
  • Two-step verification:
    \n Set up an additional password that will be required to log into your Telegram account.
  • \n\n
  • Check out Telegram Blog for more info.
  • \n
\n
\n
\n\n
\n
0.4.2
\n
\n
    \n
  • Optimization for screens with smaller Y-resolutions.
  • \n
  • Supported Spotify URL embeds.
  • \n
  • Mentions of the current user in group chats are now highlighted.
  • \n
\n
\n
\n\n
\n
0.4.1
\n
\n
    \n
  • Reply to specific messages in groups.
  • \n
  • Mention @usernames in groups to notify multiple users.
  • \n
  • Revised notifications in groups: mentioned users and people you reply to will be notified (private chat notification settings apply in this case instead of group settings). Check out Telegram Blog for more info.
  • \n
  • Setting to disable message preview
  • \n
\n
\n
\n\n
\n
0.4.0
\n
\n
    \n
  • Full stickers support
  • \n
  • Multisearch box: instantly find chats, usernames and messages
  • \n
  • Emoji autocomplete: e.g., type :kiss in the message field to see the list. Full cheat sheet »
  • \n
  • Added \'typing\' notification in chats list
  • \n
  • Online members counter in group headers
  • \n
\n
\n
\n\n
\n
0.3.9
\n
\n
    \n
  • [Desktop] Material design completed
  • \n
\n
\n
\n\n
\n
0.3.8
\n
\n
    \n
  • Telegram.me links open right in Telegram Web when authorized
  • \n
  • @username mentions in messages are clickable and open a conversation with the user
  • \n
\n
\n
\n\n
\n
0.3.7
\n
\n
    \n
  • [Desktop] New material design for modal windows
  • \n
  • [Desktop] Forward messages to multiple recipients
  • \n
\n
\n
\n\n
\n
0.3.6
\n
\n
    \n
  • New viewer for photos, videos, documents.
  • \n
  • [FirefoxOS] Improved media downloads.
  • \n
\n
\n
\n\n
\n
0.3.5
\n
\n
    \n
  • Added embedded Soundcloud tracks and playlists.
  • \n
  • Added global user search to contacts list.
  • \n
  • Added switch to mobile version on window resize.
  • \n
  • Migrate to HTTPS notification
  • \n
  • Bugfixes.
  • \n
\n
\n
\n\n
\n
0.3.4
\n
\n
    \n
  • Added embedded Facebook posts and Vimeo videos.
  • \n
  • Improved IE10+ support: downloading files and style fixes.
  • \n
  • Added unsupported media playback warning.
  • \n
  • Bugfixes.
  • \n
\n
\n
\n\n
\n
0.3.3
\n
\n
    \n
  • Added Native Client module: dramatically improved encryption speed; Download and upload speed is now as high as in native applications.
  • \n
  • HTTPS. We recommend you to use https://web.telegram.org.
  • \n
  • Added multiple open tabs warning. Please note, that only one tab with Telegram Web will work.
  • \n
  • Added embedded Instagram, Twitter, Vine, YouTube links.
  • \n
  • Jump to selected spot when playing back audio.
  • \n
  • Bugfixes
  • \n
\n
\n
\n\n
\n
0.3.2
\n
\n
    \n
  • Usernames support: Choose a username right now!
  • \n
  • Search can now find public users by username.
  • \n
  • Most popular emoticons shown in \'recent\' when empty
  • \n
  • [ChromeApp] Added saving window position and size
  • \n
  • Bugfixes
  • \n
\n
\n
\n\n
\n
0.3.1
\n
\n
    \n
  • New languages: Spanish, German and Italian are now available
  • \n
  • New custom-made audio player
  • \n
  • Bad browser page for IE 6-9
  • \n
  • Perfomance improvements and bugfixes
  • \n
\n
\n
\n\n
\n
0.3.0
\n
\n
    \n
  • Log in codes may be received in other Telegram apps
  • \n
  • Partner\'s online status updates automatically
  • \n
  • Added support for non-english hashtags in messages
  • \n
  • Fixed invalid scrollbar width bug
  • \n
  • [Desktop] Added automatic country code detection
  • \n
  • [FirefoxOS] Improved PUSH-notifications for <= 1.1
  • \n
  • [FirefoxOS] Fixed emoji in notifications
  • \n
  • [FirefoxOS] Fixed attachment bug for <= 1.1
  • \n
  • [FirefoxOS] Added phonebook permissions handling
  • \n
  • [FirefoxOS] Added ability to share Gallery photos in Telegram
  • \n
\n
\n
\n\n
\n\n\n \n\n
\n\n
'), +m&&o.fwdFromID&&(s.grouped||(s.grouped="im_grouped_fwd_start"),o.grouped&&n==d-1&&(o.grouped+=" im_grouped_fwd_end"))}else!s&&n||(delete o.grouped,m&&s&&s.grouped&&s.fwdFromID&&(s.grouped+=" im_grouped_fwd_end"));p||l==(s&&s.grouped)||(p=!0),s=o,i=a}return p||r==(s&&s.grouped)||(p=!0),p}function be(e,t,n){var a,i=!1;if(e.media)switch(e.media._){case"messageMediaPhoto":a=d.choosePhotoSize(e.media.photo,t,n);break;case"messageMediaDocument":a=e.media.document.thumb,e.media.document.sticker&&(i=!0)}if(a&&"photoSizeEmpty"!=a._){var o=calcImageInBox(a.w,a.h,t,n,!0),s={width:o.w,height:o.h,location:a.location,size:a.size};return i&&(s.location.sticker=!0),s}return!1}function we(e){We!==!1&&e&&e>We&&k.set({max_seen_msg:e})}function ke(e,n){n=n||{};var a,i,o=de(e),s={},c=!1,d=w.getNotifySettings();if(e.fwdFromID&&n.fwd_count)c=Ke(n.fwd_count);else if(e.message)c=d.nopreview?x("conversation_message_sent"):b.wrapPlainText(e.message);else if(e.media){var u=!1;switch(e.media._){case"messageMediaPhoto":c=x("conversation_media_photo_raw"),u="🖼";break;case"messageMediaDocument":switch(e.media.document.type){case"gif":c=x("conversation_media_gif_raw"),u="🎬";break;case"sticker":c=x("conversation_media_sticker");var p=e.media.document.stickerEmojiRaw;void 0!==p&&(c=b.wrapPlainText(p)+" "+c);break;case"video":c=x("conversation_media_video_raw"),u="📹";break;case"voice":case"audio":c=x("conversation_media_audio_raw");break;default:e.media.document.file_name?c=b.wrapPlainText("📎 "+e.media.document.file_name):(c=x("conversation_media_document_raw"),u="📎")}break;case"messageMediaGeo":case"messageMediaVenue":c=x("conversation_media_location_raw"),u="📍";break;case"messageMediaContact":c=x("conversation_media_contact_raw");break;case"messageMediaGame":c=b.wrapPlainText("🎮 "+e.media.game.title);break;default:c=x("conversation_media_attachment_raw")}u!==!1&&e.media.caption&&(c=b.wrapPlainText(u+" "+e.media.caption))}else if("messageService"==e._)switch(e.action._){case"messageActionChatCreate":c=x("conversation_group_created_raw");break;case"messageActionChatEditTitle":c=x("conversation_group_renamed_raw");break;case"messageActionChatEditPhoto":c=x("conversation_group_photo_updated_raw");break;case"messageActionChatDeletePhoto":c=x("conversation_group_photo_removed_raw");break;case"messageActionChatAddUser":case"messageActionChatAddUsers":c=x("conversation_invited_user_message_raw");break;case"messageActionChatReturn":c=x("conversation_returned_to_group_raw");break;case"messageActionChatJoined":c=x("conversation_joined_group_raw");break;case"messageActionChatDeleteUser":c=x("conversation_kicked_user_message_raw");break;case"messageActionChatLeave":c=x("conversation_left_group_raw");break;case"messageActionChatJoinedByLink":c=x("conversation_joined_by_link_raw");break;case"messageActionChannelCreate":c=x("conversation_created_channel_raw");break;case"messageActionChannelEditTitle":c=x("conversation_changed_channel_name_raw");break;case"messageActionChannelEditPhoto":c=x("conversation_changed_channel_photo_raw");break;case"messageActionChannelDeletePhoto":c=x("conversation_removed_channel_photo_raw");break;case"messageActionPinMessage":c=x("conversation_pinned_message_raw");break;case"messageActionGameScore":c=Ye(e.action.score)}if(o>0){var m=r.getUser(e.from_id),g=r.getUserPhoto(e.from_id);s.title=(m.first_name||"")+(m.first_name&&m.last_name?" ":"")+(m.last_name||""),s.title||(s.title=m.phone||x("conversation_unknown_user_raw")),i=g,a=r.getUserString(o)}else{if(s.title=l.getChat(-o).title||x("conversation_unknown_chat_raw"),e.from_id>0){var m=r.getUser(e.from_id);s.title=(m.first_name||m.last_name||x("conversation_unknown_user_raw"))+" @ "+s.title}i=l.getChatPhoto(-o),a=l.getChatString(-o)}s.title=b.wrapPlainText(s.title),s.onclick=function(){t.$broadcast("history_focus",{peerString:a,messageID:16&e.flags?e.mid:0})},s.message=c,s.key="msg"+e.mid,s.tag=a,i.location&&!i.location.empty?v.downloadSmallFile(i.location,i.size).then(function(t){e.pFlags.unread&&(s.image=t,w.notify(s))}):w.notify(s)}function $e(){i.cancel(tt),tt=!1,t.$broadcast("history_multiappend",nt),nt={}}function Se(){i.cancel(at),at=!1,angular.forEach(it,function(e){P(e)}),t.$broadcast("dialogs_multiupdate",it),it={}}function Ce(){i.cancel(ot),ot=!1;var e=t.idle.isIDLE&&M.isOtherDeviceActive()?3e4:1e3;angular.forEach(st,function(t){t.isMutedPromise.then(function(n){var a=t.top_message;!n&&a.pFlags.unread&&setTimeout(function(){a.pFlags.unread&&ke(a,{fwd_count:t.fwd_count})},e)})}),st={}}function Me(e){return _.invokeApi("messages.getPeerDialogs",{peers:[c.getInputPeerByID(e)]}).then(function(e){r.saveApiUsers(e.users),l.saveApiChats(e.chats),Q(e.messages);var n={},a=!1;angular.forEach(e.dialogs,function(e){if(e.top_message)E(e),A(e.peerID).length?t.$broadcast("dialog_top",e):(n[e.peerID]=e,a=!0);else{var i=c.getPeerID(e.peer),o=A(i);o.length&&(Te.dialogs.splice(o[1],1),t.$broadcast("dialog_drop",{peerID:i}))}}),a&&t.$broadcast("dialogs_multiupdate",n)})}var xe={},Ie={},Ae={},Ee={},Te={count:null,dialogs:[]},De={},Pe={},Fe={},Ne=e.when(),Re=-1,Oe=SearchIndexManager.createIndex(),Ue={query:!1},Be={},Le=[],je=[],He=!1,qe={},Ve=[],ze=!1,We=!1;Config.Modes.packed&&k.get("max_seen_msg").then(function(e){We=e||0});var Ge=a("dateOrTime"),Ke=x.pluralize("conversation_forwarded_X_messages"),Ye=x.pluralize("conversation_scored_X");w.start();var Ze=!1,Xe=0,Je=0,Qe={},et={},tt=!1,nt={},at=!1,it={},ot=!1,st={};return t.$on("apiUpdate",function(e,n){switch(n._){case"updateMessageID":var a=n.random_id,o=De[a];if(o){var s=o[0],d=c.isChannel(s)?-s:0;Pe[m.getFullMessageID(n.id,d)]=a}break;case"updateNewMessage":case"updateNewChannelMessage":var u=n.message,s=de(u),p=Ee[s];if("updateNewChannelMessage"==n._){var g=l.getChat(-s);if(g.pFlags&&(g.pFlags.left||g.pFlags.kicked))break}if(Q([u],{isNew:!0}),void 0!==p){var h=p.history;if(h.indexOf(u.mid)!=-1)return!1;var f=h[0];h.unshift(u.mid),u.mid>0&&u.mid0&&E&&r.forceUserOnline(s),I=0;IT)&&(u=xe[x],u.pFlags.out==E)){if(!u.pFlags.unread)break;u&&u.pFlags.unread&&(u.pFlags.unread=!1,Ie[x]&&(Ie[x].pFlags.unread=!1,N||(N=!0)),Ae[x]&&(Ae[x].pFlags.unread=!1),u.pFlags.out||(y[0]&&(P=--y[0].unread_count),w.cancel("msg"+x)))}if(y[0]){!E&&P&&y[0].top_message<=T&&(P=y[0].unread_count=0);var R=E?"read_outbox_max_id":"read_inbox_max_id";y[0][R]=T}P!==!1&&t.$broadcast("dialog_unread",{peerID:s,count:P}),N&&t.$broadcast("messages_read");break;case"updateReadMessagesContents":var I,x,u,O,U=n.messages,B=U.length;for(I=0;I0&&(a.count-=e.count,a.count<0&&(a.count=0));for(var s=0;s0,K="channel"==z._&&(z.username||!z.pFlags.left&&!z.pFlags.kicked)&&!0||!1,Y=void 0!==Ee[s];K!=Y&&(delete Ee[s],t.$broadcast("history_forbidden",s)),G!=W&&(W?Me(-d):y[0]&&(Te.dialogs.splice(y[1],1),t.$broadcast("dialog_drop",{peerID:s})));break;case"updateChannelReload":var d=n.channel_id,s=-d,y=A(s);y[0]&&Te.dialogs.splice(y[1],1),delete Ee[s],Me(-d).then(function(){t.$broadcast("history_reload",s)});break;case"updateChannelMessageViews":var Z=n.views,S=m.getFullMessageID(n.id,n.channel_id),u=q(S);u&&u.views&&u.viewss)&&(s=d.date)}}o.index=D(s),P(o),t.$broadcast("dialog_draft",{peerID:a,draft:i,index:o.index})}}),{getConversations:I,getHistory:B,getSearch:H,getMessage:q,getReplyKeyboard:L,readHistory:Y,readMessages:Z,flushHistory:J,deleteMessages:G,sendText:ee,sendFile:te,sendOther:ne,forwardMessages:ae,startBot:ie,shareGame:oe,editMessage:ce,convertMigratedPeer:U,getMessagePeer:de,getMessageThumb:be,getMessageShareLink:K,canMessageBeEdited:V,canEditMessage:z,getMessageEditData:W,clearDialogCache:me,wrapForDialog:ue,wrapForHistory:ge,wrapReplyMarkup:he,wrapSingleMessage:pe,wrapMessageText:fe,regroupWrappedHistory:ye}}]).service("AppMessagesIDsManager",function(){function e(e,t){if(!t||e<=0)return e;e=n(e);var a=i[t];return a||(a=++s*r,o[a]=t,i[t]=a),a+e}function t(e){if(e\n\t\n\t \n\t\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\t
\n \n \n\t
\n\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t
\n\t \t
\n\t
\n\t
\n\t\n'),e.put("partials/mobile/changelog_modal.html",'
\n\n \n\n \n\n
\n'), +e.put("partials/mobile/channel_modal.html",'
\n\n
\n \n
\n\n \n\n
\n'),e.put("partials/mobile/chat_create_modal.html",'
\n\n
\n \n
\n\n \n\n
'),e.put("partials/mobile/chat_edit_modal.html",'
\n\n
\n \n
\n\n \n\n
'),e.put("partials/mobile/chat_modal.html",'
\n\n
\n \n
\n\n \n\n
\n'),e.put("partials/mobile/contacts_modal.html",'
\n\n
\n \n
\n\n \n\n
\n'),e.put("partials/mobile/country_select_modal.html",'
\n\n
\n \n
\n\n \n\n
\n'),e.put("partials/mobile/dialog.html",'\n\n
\n
\n \n \n
\n\n
\n\n
\n\n
\n \n
\n\n
\n\n
\n \n \n \n
\n\n
\n \n \n \n \n
\n\n
\n  \n
\n\n
\n \n \n \n :\n \n \n \n \n :\n \n \n \n\n \n
\n
\n\n
\n\n
\n'),e.put("partials/mobile/edit_contact_modal.html",'
\n\n
\n \n
\n\n \n\n
'),e.put("partials/mobile/full_gif.html",'\n\n
\n\n
\n
\n \n \n \n \n
\n
\n
GIF
\n
\n\n
\n \n \n
\n \n\n
\n\n
'),e.put("partials/mobile/full_photo.html",'
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n
'),e.put("partials/mobile/full_video.html",'
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
'),e.put("partials/mobile/game_modal.html",'
\n\n
\n \n
\n\n \n\n
\n'),e.put("partials/mobile/head.html",'
\n \n
\n'), +e.put("partials/mobile/im.html",'
\n\n
\n\n
\n\n
\n
\n \n
\n\n
\n\n
\n

\n

\n \n \n
\n\n \n\n
\n
\n \n
\n\n
\n
\n \n
\n\n
\n
\n \n
\n\n
\n
\n\n
\n\n
\n \n
\n\n
\n
\n\n
\n\n
\n
\n
\n \n \n \n \n
\n\n
\n
\n
\n
\n
\n\n
\n\n
\n\n
\n\n
\n\n
\n
\n\n
\n \n
\n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n \n \n
\n
\n\n
\n\n
\n\n
\n
\n\n
\n \n \n
\n\n
\n \n
\n
\n\n
\n
\n \n \n\n
\n
\n
\n\n
\n \n
\n\n
\n \n \n
\n\n \n\n \n
\n\n\n
\n
\n
\n\n
\n
\n\n
\n\n
\n\n
\n\n
\n
\n\n
\n\n
\n\n
\n\n'),e.put("partials/mobile/import_contact_modal.html",'
\n\n
\n \n
\n\n \n
'),e.put("partials/mobile/login.html",'
\n \n
\n\n\n\n\n'),e.put("partials/mobile/message.html",'
\n\n\n
\n\n
\n
\n
\n
\n
\n
\n \n \n
\n\n \n \n \n\n
\n\n
\n\n \n\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n
\n\n
\n
\n\n \n \n\n \n\n
\n \n \n \n \n
\n\n
\n
\n
\n\n
\n\n
\n\n
\n\n
\n
\n\n
\n\n'),e.put("partials/mobile/message_actions_modal.html",'
\n\n
\n \n \n \n \n \n \n
\n\n
\n'),e.put("partials/mobile/message_attach_contact.html",'
\n \n
\n \n \n
\n
\n
'),e.put("partials/mobile/message_attach_document.html",'
\n\n
\n\n
\n\n
\n
\n
\n\n
\n
\n
\n\n \n\n
\n\n \n \n \n \n
\n \n
\n
\n\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n'), +e.put("partials/mobile/message_attach_geo.html",'\n \n'),e.put("partials/mobile/message_attach_pending.html",'
\n
\n \n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n'),e.put("partials/mobile/message_attach_photo.html",'\n \n\n
'),e.put("partials/mobile/message_attach_venue.html",'
\n\n \n \n \n\n
\n
\n \n
\n
\n
\n\n
\n'),e.put("partials/mobile/message_attach_webpage.html",'
\n
\n
\n
\n \n
\n
\n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n
\n\n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n'),e.put("partials/mobile/message_service.html",'\n \n \n \n «»\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n «»\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n'),e.put("partials/mobile/password_recovery_modal.html",'
\n\n
\n \n
\n\n \n\n
'),e.put("partials/mobile/password_update_modal.html",'
\n\n
\n \n
\n\n \n\n
'),e.put("partials/mobile/peer_select.html",'
\n\n
\n \n
\n\n \n\n
\n'),e.put("partials/mobile/phonebook_modal.html",'
\n\n
\n \n
\n\n \n\n \n\n
\n'),e.put("partials/mobile/photo_modal.html",'
\n
\n
\n \n \n \n
\n\n
\n \n \n \n
\n\n
\n \n
\n \n
\n\n
\n
\n\n\n\n\n\n'),e.put("partials/mobile/profile_edit_modal.html",'
\n\n
\n \n
\n\n \n\n
'),e.put("partials/mobile/sessions_list_modal.html",'
\n\n
\n \n
\n\n \n\n
\n'),e.put("partials/mobile/settings_modal.html",'
\n\n
\n \n
\n\n \n
\n'), +e.put("partials/mobile/stickerset_modal.html",'
\n\n
\n \n
\n\n \n\n
'),e.put("partials/mobile/user_modal.html",'
\n\n
\n \n
\n\n \n\n
\n'),e.put("partials/mobile/username_edit_modal.html",'
\n\n
\n \n
\n\n \n\n
'),e.put("partials/mobile/video_modal.html",'
\n
\n
\n \n \n \n
\n\n
\n \n \n \n
\n\n
\n \n
\n \n
\n\n
\n
\n\n
\n
\n
\n \n \n \n
\n \n
\n
\n\n\n\n'),e.put("partials/desktop/audio_player.html",'
\n\t\n\t \n\t\n\t
\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t\t[ \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t]\n\t\t\n\t\t
\n\t\t\t\n\t\t\t\n\t\t
\n\t
\n\t
\n \n \n\t
\n\t
\n\t\t
\n\t\t \n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t\t
\n\t
\n\t \t
\n\t \t
\n\t
\n\t
\n\t\n
'),e.put("partials/desktop/changelog_modal.html",'
\n\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n
Telegram Web
\n
Version {{currentVersion}}
\n
\n
\n
\n\n
\n
\n \n \n \n
\n
\n\n
\n\n
\n\n
\n
0.5.5
\n
\n
    \n
  • Introducing Drafts: Seamless syncing for unsent messages on all your devices. Drafts are now visible in your chats list.
  • \n
  • Mention people in groups by typing @ and selecting them from the list — even if they don\'t have a username.
  • \n
  • Share links to specific posts in channels via quick forwarding menu (click on the date in a message to try this out).
  • \n
\n\n
\n
\n\n
\n
0.5.4
\n
\n
    \n
  • Introducing Bot API 2.0, the biggest update to our bot platform since June 2015.
  • \n
  • New inline keyboards with callback, \'open URL\' or \'switch to inline mode\' buttons help create seamless interfaces.
  • \n
  • Bots can now update existing messages on the fly as you interact with them.
  • \n
  • Prepare for the rise of location-based bots: all bots can now ask users to share their location.
  • \n
  • Inline bots can now send all attachments supported in Telegram (videos, music, stickers, files, etc.).
  • \n
  • Try out these sample bots to see what\'s coming your way soon: @music, @sticker, @youtube, @foursquare
  • \n
  • Check out the Telegram Blog for more info.
  • \n
  • New quick forwarding in channels (click on the date in a message to try this out).
  • \n
  • Improved performance.
  • \n
\n\n
\n
\n\n
\n
0.5.3
\n
\n
    \n
  • Inline bots: A new way to add bot content to any chat. Type a bot\'s username and your query in the text field to get instant results and send them to your chat partner. Try typing @gif dog in your next chat. Sample bots: @gif, @wiki, @bing, @vid, @bold.
  • \n
  • Check out the Telegram Blog for more info.
  • \n
  • Improved GIFs: 20x faster sending and downloading, nice animated progress
  • \n
  • Click on message date to reply (or to forward from channels).
  • \n
  • Preview images before sending when pasting from clipboard.
  • \n
  • Improved formatting for copy-pasted history fragments (date, time and sender names inserted automatically).
  • \n
\n
\n
\n\n
\n
0.5.2
\n
\n
    \n
  • Unread counters for muted chats now colored in gray.
  • \n
  • Improved previews for sticker sets: Click on a sticker to view the whole set, click on stickers in a set to send right away, added a \'Share\' button.
  • \n
  • Improved performance.
  • \n
\n
\n
\n\n
\n
0.5.1
\n
\n
    \n
  • Groups that have reached their capacity of 200 users can be upgraded to supergroups of up to 1,000 members.
  • \n
  • Check out the Telegram Blog for more info
  • \n
\n
\n
\n\n
\n
0.5.0
\n
\n
    \n
  • Removed annoying "multiple tabs open" error.
  • \n
  • Improved message forwarding.
  • \n
  • Added view counter to messages from channels.
  • \n
  • Improved image loading in Safari and Firefox.
  • \n
\n
\n
\n\n
\n
0.4.9
\n
\n
    \n
  • New emoji and sticker menu, tabs for sticker packs.
  • \n
\n
\n
\n\n
\n
0.4.8
\n
\n
    \n
  • Introducing Channels – a great new way to broadcast your messages to unlimited audiences.
  • \n
  • Check out the Telegram Blog for more info
  • \n
  • Improved performance in Safari on OS X El Capitan.
  • \n
  • Added formatting for fixed-width code, surround text with `single backticks` for inline text and ```triple backticks``` for blocks of pre-formatted text.
  • \n
\n
\n
\n\n
\n
0.4.7
\n
\n
    \n
  • New bot API, free for everyone. If you\'re an engineer, create your own bots for games, services or integrations.\n
  • \n
  • Check out Telegram Blog for more info
  • \n
  • Improved Stickers support: now stickers are loading much faster.
  • \n
  • Click on any custom stickers in chats to view and add sticker sets.
  • \n
  • [Mobile] Reply to a message easily: tap on any message and select "Reply".
  • \n
\n
\n
\n\n
\n
0.4.6
\n
\n \n
\n
\n\n
\n
0.4.5
\n
\n
    \n
  • \n Invite links for group chats:
    \n Check out Telegram Blog for more info\n
  • \n
  • Smart notifications
  • \n
  • \'Listened\' status for voice messages
  • \n
  • Places in locations (venues, landmarks)
  • \n
\n
\n
\n\n
\n
0.4.4
\n
\n
    \n
  • Link Previews:
    \n Get rich link summaries for tweets, YouTube videos, Instagram photos and other content.
  • \n\n
  • Check out Telegram Blog for more info.
  • \n
\n
\n
\n\n
\n
0.4.3
\n
\n
    \n
  • Sessions List:
    \n View your active Telegram sessions (on desktop, tablet and mobile devices) and close specific sessions remotely.
  • \n\n
  • Two-step verification:
    \n Set up an additional password that will be required to log into your Telegram account.
  • \n\n
  • Check out Telegram Blog for more info.
  • \n
\n
\n
\n\n
\n
0.4.2
\n
\n
    \n
  • Optimization for screens with smaller Y-resolutions.
  • \n
  • Supported Spotify URL embeds.
  • \n
  • Mentions of the current user in group chats are now highlighted.
  • \n
\n
\n
\n\n
\n
0.4.1
\n
\n
    \n
  • Reply to specific messages in groups.
  • \n
  • Mention @usernames in groups to notify multiple users.
  • \n
  • Revised notifications in groups: mentioned users and people you reply to will be notified (private chat notification settings apply in this case instead of group settings). Check out Telegram Blog for more info.
  • \n
  • Setting to disable message preview
  • \n
\n
\n
\n\n
\n
0.4.0
\n
\n
    \n
  • Full stickers support
  • \n
  • Multisearch box: instantly find chats, usernames and messages
  • \n
  • Emoji autocomplete: e.g., type :kiss in the message field to see the list. Full cheat sheet »
  • \n
  • Added \'typing\' notification in chats list
  • \n
  • Online members counter in group headers
  • \n
\n
\n
\n\n
\n
0.3.9
\n
\n
    \n
  • [Desktop] Material design completed
  • \n
\n
\n
\n\n
\n
0.3.8
\n
\n
    \n
  • Telegram.me links open right in Telegram Web when authorized
  • \n
  • @username mentions in messages are clickable and open a conversation with the user
  • \n
\n
\n
\n\n
\n
0.3.7
\n
\n
    \n
  • [Desktop] New material design for modal windows
  • \n
  • [Desktop] Forward messages to multiple recipients
  • \n
\n
\n
\n\n
\n
0.3.6
\n
\n
    \n
  • New viewer for photos, videos, documents.
  • \n
  • [FirefoxOS] Improved media downloads.
  • \n
\n
\n
\n\n
\n
0.3.5
\n
\n
    \n
  • Added embedded Soundcloud tracks and playlists.
  • \n
  • Added global user search to contacts list.
  • \n
  • Added switch to mobile version on window resize.
  • \n
  • Migrate to HTTPS notification
  • \n
  • Bugfixes.
  • \n
\n
\n
\n\n
\n
0.3.4
\n
\n
    \n
  • Added embedded Facebook posts and Vimeo videos.
  • \n
  • Improved IE10+ support: downloading files and style fixes.
  • \n
  • Added unsupported media playback warning.
  • \n
  • Bugfixes.
  • \n
\n
\n
\n\n
\n
0.3.3
\n
\n
    \n
  • Added Native Client module: dramatically improved encryption speed; Download and upload speed is now as high as in native applications.
  • \n
  • HTTPS. We recommend you to use https://web.telegram.org.
  • \n
  • Added multiple open tabs warning. Please note, that only one tab with Telegram Web will work.
  • \n
  • Added embedded Instagram, Twitter, Vine, YouTube links.
  • \n
  • Jump to selected spot when playing back audio.
  • \n
  • Bugfixes
  • \n
\n
\n
\n\n
\n
0.3.2
\n
\n
    \n
  • Usernames support: Choose a username right now!
  • \n
  • Search can now find public users by username.
  • \n
  • Most popular emoticons shown in \'recent\' when empty
  • \n
  • [ChromeApp] Added saving window position and size
  • \n
  • Bugfixes
  • \n
\n
\n
\n\n
\n
0.3.1
\n
\n
    \n
  • New languages: Spanish, German and Italian are now available
  • \n
  • New custom-made audio player
  • \n
  • Bad browser page for IE 6-9
  • \n
  • Perfomance improvements and bugfixes
  • \n
\n
\n
\n\n
\n
0.3.0
\n
\n
    \n
  • Log in codes may be received in other Telegram apps
  • \n
  • Partner\'s online status updates automatically
  • \n
  • Added support for non-english hashtags in messages
  • \n
  • Fixed invalid scrollbar width bug
  • \n
  • [Desktop] Added automatic country code detection
  • \n
  • [FirefoxOS] Improved PUSH-notifications for <= 1.1
  • \n
  • [FirefoxOS] Fixed emoji in notifications
  • \n
  • [FirefoxOS] Fixed attachment bug for <= 1.1
  • \n
  • [FirefoxOS] Added phonebook permissions handling
  • \n
  • [FirefoxOS] Added ability to share Gallery photos in Telegram
  • \n
\n
\n
\n\n
\n\n\n \n\n
\n\n
'), e.put("partials/desktop/channel_edit_modal.html",'
\n\n
\n\n \n\n
\n\n \n\n
'),e.put("partials/desktop/channel_modal.html",'
\n\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n \n \n \n
\n
\n\n
\n\n
\n\n
\n \n\n
\n
\n \n
\n
\n
\n\n
\n
\n \n
\n
\n
\n\n
\n
\n \n \n \n \n
\n
\n
\n
\n\n \n\n
\n \n\n \n \n \n \n\n
\n\n \n\n
\n\n
\n\n
\n\n
\n \n\n
\n\n
\n\n \n \n\n \n\n
\n \n
\n
\n
\n\n
\n\n
\n\n
\n
\n\n\n
\n'),e.put("partials/desktop/chat_create_modal.html",'
\n\n
\n\n \n\n
\n\n \n\n
'),e.put("partials/desktop/chat_edit_modal.html",'
\n\n
\n\n \n\n
\n\n \n\n
'),e.put("partials/desktop/chat_invite_link_modal.html",'
\n\n
\n\n \n\n
\n\n \n\n
'),e.put("partials/desktop/chat_modal.html",'
\n\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n\n
\n
\n
\n \n \n
\n
\n
\n\n
\n\n
\n\n \n\n \n\n
\n \n\n \n \n \n \n\n
\n\n \n\n \n\n
\n\n
\n\n
\n
\n

\n

\n
    \n
  • \n
  • \n
  • \n
  • \n
\n
\n
\n
\n\n
\n \n\n
\n\n
\n\n \n \n\n \n\n
\n \n
\n
\n
\n\n
\n\n
\n\n
\n
\n\n\n
\n'),e.put("partials/desktop/composer_dropdown.html",'
\n\n \n\n \n\n
    \n\n
    \n\n
    '),e.put("partials/desktop/confirm_modal.html",'
    \n\n
    \n\n
    \n \n \n \n \n \n \n \n\n \n \n \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n
    \n \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n\n\n \n \n \n \n
    \n\n
    \n\n \n\n
    \n'),e.put("partials/desktop/contacts_modal.html",'
    \n\n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n
    \n \n
    \n
    \n\n
    \n\n \n\n
    \n\n
    \n
    \n\n
    \n {0}\n
    \n\n \n\n
    \n
    \n\n
    \n\n
    \n\n \n\n
    \n'),e.put("partials/desktop/country_select_modal.html",'
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n\n \n\n
    \n\n
    \n
    \n\n \n\n
    \n
    \n\n
    \n\n
    \n\n
    \n'), e.put("partials/desktop/dialog.html",'\n\n
    \n
    \n \n \n
    \n\n
    \n\n
    \n\n
    \n \n
    \n\n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n \n
    \n\n
    \n  \n
    \n\n
    \n \n \n \n :\n \n \n \n \n :\n \n \n \n\n \n
    \n
    \n\n
    \n\n
    \n'),e.put("partials/desktop/document_modal.html",'\n\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n \n
    \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n\n
    \n
    \n\n'),e.put("partials/desktop/edit_contact_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/embed_modal.html",'\n\n
    \n
    \n
    \n \n \n \n \n \n \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n'),e.put("partials/desktop/emoji_btn_tooltip.html",'
    \n\n
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n\n \n \n \n\n
    '),e.put("partials/desktop/error_modal.html",'
    \n\n
    \n\n

    \n \n \n \n \n \n \n \n \n \n \n \n \n \n

    \n

    \n \n \n \n

    \n\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {0}\n \n \n \n \n \n \n \n\n\n
    \n \n \n {0}\n \n \n \n \n \n
    \n\n
    \n\n
    \n \n
    \n \n
    \n
    \n\n
    \n\n
    \n\n \n\n
    \n'),e.put("partials/desktop/footer.html",''),e.put("partials/desktop/forwarded_messages.html",'
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n
    \n
    \n
    '),e.put("partials/desktop/full_document.html",'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    '),e.put("partials/desktop/full_gif.html",'\n\n
    \n\n
    \n
    \n \n \n \n \n
    \n
    \n
    [GIF]
    \n
    \n\n
    \n \n \n
    \n \n\n
    \n\n
    '),e.put("partials/desktop/full_photo.html",'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    '),e.put("partials/desktop/full_video.html",'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    '),e.put("partials/desktop/game_modal.html",'\n\n
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n
    \n \n
    \n
    \n \n
    \n
    \n\n
    \n
    \n
    \n\n'),e.put("partials/desktop/head.html",'
    \n
    \n\n
    \n \n
    \n\n
    \n
    \n \n \n \n
    \n\n
    \n\n \n\n \n\n \n \n \n \n \n\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n\n \n
    \n \n \n \n \n \n
    \n
    \n\n
    \n\n
    \n
    \n
    \n
    '),e.put("partials/desktop/im.html",'
    \n\n
    \n\n
    \n\n
    \n
    \n \n
    \n\n
    \n
    \n
    \n\n
    \n

    \n

    \n \n \n
    \n\n \n\n
    \n
    \n \n
    \n\n
    \n
    \n \n
    \n\n
    \n
    \n \n
    \n\n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n

    \n

    \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n
    \n \n \n \n \n \n \n {{historyState.typing.length - 2}}\n \n
    \n
    \n\n
    \n\n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n \n \n \n \n
    \n
    \n\n
    \n\n
    \n\n
    \n\n \n \n \n \n\n
    \n\n
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n
    \n\n
    \n \n
    \n
    \n
    \n \n \n\n
    \n \n
    \n\n
    \n \n\n
    \n \n \n
    \n\n
    \n \n \n
    \n\n
    \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n\n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n\n
    \n\n
    \n\n\n\n\n'), e.put("partials/desktop/import_contact_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/inactive.html",'
    \n
    \n
    \n
    \n \n

    \n
    \n
    \n \n
    \n
    \n
    \n
    '),e.put("partials/desktop/inline_results.html",'\n\n'),e.put("partials/desktop/lang_footer.html",''),e.put("partials/desktop/login.html",'\n\n'),e.put("partials/desktop/media_modal_layout.html",''),e.put("partials/desktop/megagroup_edit_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/message.html",'
    \n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n\n \n \n \n\n
    \n\n
    \n \n\n \n \n \n \n\n \n\n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n
    \n\n
    \n\n \n []  :\n \n\n\n \n\n
    \n \n \n
    \n   [\n \n \n \n
    \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n\n\n
    \n\n
    \n
    \n\n
    \n\n'),e.put("partials/desktop/message_attach_contact.html",'
    \n \n
    \n \n \n
    \n
    \n
    '),e.put("partials/desktop/message_attach_document.html",'
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n\n
    \n \n \n \n \n \n\n
    \n
    \n [ ]\n \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n \n \n \n \n
    \n \n
    \n
    \n\n
    \n
    \n []\n \n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n'),e.put("partials/desktop/message_attach_game.html",'
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n'),e.put("partials/desktop/message_attach_geo.html",'\n \n'),e.put("partials/desktop/message_attach_pending.html",'
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n'), e.put("partials/desktop/message_attach_photo.html",'\n \n\n
    '),e.put("partials/desktop/message_attach_venue.html",'
    \n\n \n \n \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n'),e.put("partials/desktop/message_attach_webpage.html",'
    \n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n'),e.put("partials/desktop/message_media.html",'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    '),e.put("partials/desktop/message_service.html",'\n \n \n \n «»\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n «»\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n\n\n \n \n \n\n'),e.put("partials/desktop/password_recovery_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/password_update_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/peer_select.html",'
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n \n\n \n\n
    \n'),e.put("partials/desktop/photo_modal.html",'\n\n\n\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n \n
    \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n \n \n \n \n \n
    \n
    \n
    \n\n\n\n'),e.put("partials/desktop/pinned_message.html",''),e.put("partials/desktop/profile_edit_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    \n'),e.put("partials/desktop/reply_markup.html",'
    \n
    \n
    \n
    \n \n \n
    \n
    \n
    \n
    '),e.put("partials/desktop/reply_message.html",'
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n \n \n
    \n
    '),e.put("partials/desktop/sessions_list_modal.html",'
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n \n \n \n
    \n\n \n\n
    \n
    \n\n
    \n\n
    \n\n
    \n'),e.put("partials/desktop/settings_modal.html",'
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n
    \n
    \n
    \n
    \n\n
    \n \n\n \n \n \n \n\n \n \n \n \n\n \n\n \n \n \n \n\n \n \n \n \n\n
    \n
    \n
    \n\n
    \n\n
    \n \n\n \n\n
    \n\n \n\n
    \n\n
    \n\n
    \n'), -e.put("partials/desktop/short_message.html",'\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n'),e.put("partials/desktop/slider.html",'
    \n\t
    \n\t
    \n\t\t
    \n\t
    \n
    '),e.put("partials/desktop/stickerset_modal.html",'
    \n\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n
    \n
    \n
    \n
    \n\n
    \n
    \n\n
    \n\n
    \n
    \n \n \n \n
    \n
    \n\n
    \n\n
    \n'),e.put("partials/desktop/user_modal.html",'
    \n\n
    \n
    \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n\n\n
    \n\n
    \n\n
    \n \n\n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n
    \n
    \n\n
    \n \n\n \n \n \n \n\n
    \n\n \n\n
    \n\n
    \n\n
    \n\n'),e.put("partials/desktop/username_edit_modal.html",'
    \n\n
    \n\n \n\n
    \n\n \n\n
    '),e.put("partials/desktop/video_modal.html",'\n\n
    \n
    \n
    \n \n \n \n \n \n \n \n \n \n
    \n\n
    \n \n
    \n \n
    \n
    \n \n \n
    \n
    \n\n
    \n
    \n
    \n\n'),e.put("partials/mobile/audio_player.html",'
    \n\t\n\t \n\t\n\t
    \n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\t
    \n\t\t\t\n\t\t\t\n\t\t
    \n\t
    \n\t
    \n \n \n\t
    \n\t
    \n\t\t
    \n\t\t \n\t\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t\t
    \n\t
    \n\t \t
    \n\t
    \n\t
    \n\t\n
    '),e.put("partials/mobile/changelog_modal.html",'
    \n\n \n\n \n\n
    \n'), -e.put("partials/mobile/channel_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/chat_create_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/chat_edit_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/chat_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/contacts_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/country_select_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/dialog.html",'\n\n
    \n
    \n \n \n
    \n\n
    \n\n
    \n\n
    \n \n
    \n\n
    \n\n
    \n \n \n \n
    \n\n
    \n \n \n \n \n
    \n\n
    \n  \n
    \n\n
    \n \n \n \n :\n \n \n \n \n :\n \n \n \n\n \n
    \n
    \n\n
    \n\n
    \n'),e.put("partials/mobile/edit_contact_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/full_gif.html",'\n\n
    \n\n
    \n
    \n \n \n \n \n
    \n
    \n
    GIF
    \n
    \n\n
    \n \n \n
    \n \n\n
    \n\n
    '),e.put("partials/mobile/full_photo.html",'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n
    '),e.put("partials/mobile/full_video.html",'
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
    '),e.put("partials/mobile/game_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/head.html",'
    \n \n
    \n'), -e.put("partials/mobile/im.html",'
    \n\n
    \n\n
    \n\n
    \n
    \n \n
    \n\n
    \n\n
    \n

    \n

    \n \n \n
    \n\n \n\n
    \n
    \n \n
    \n\n
    \n
    \n \n
    \n\n
    \n
    \n \n
    \n\n
    \n
    \n\n
    \n\n
    \n \n
    \n\n
    \n
    \n\n
    \n\n
    \n
    \n
    \n \n \n \n \n
    \n\n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n \n
    \n \n
    \n
    \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n
    \n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n \n \n
    \n\n
    \n \n
    \n
    \n\n
    \n
    \n \n \n\n
    \n
    \n
    \n\n
    \n \n
    \n\n
    \n \n \n
    \n\n \n\n \n
    \n\n\n
    \n
    \n
    \n\n
    \n
    \n\n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n\n
    \n\n
    \n\n'),e.put("partials/mobile/import_contact_modal.html",'
    \n\n
    \n \n
    \n\n \n
    '),e.put("partials/mobile/login.html",'
    \n \n
    \n\n\n\n\n'),e.put("partials/mobile/message.html",'
    \n\n\n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n\n \n \n \n\n
    \n\n
    \n\n \n\n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n \n \n \n
    \n\n
    \n
    \n\n \n \n\n \n\n
    \n \n \n \n \n
    \n\n
    \n
    \n
    \n\n
    \n\n
    \n\n
    \n\n
    \n
    \n\n
    \n\n'),e.put("partials/mobile/message_actions_modal.html",'
    \n\n
    \n \n \n \n \n \n \n
    \n\n
    \n'),e.put("partials/mobile/message_attach_contact.html",'
    \n \n
    \n \n \n
    \n
    \n
    '),e.put("partials/mobile/message_attach_document.html",'
    \n\n
    \n\n
    \n\n
    \n
    \n
    \n\n
    \n
    \n
    \n\n \n\n
    \n\n \n \n \n \n
    \n \n
    \n
    \n\n
    \n
    \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n'), -e.put("partials/mobile/message_attach_geo.html",'\n \n'),e.put("partials/mobile/message_attach_pending.html",'
    \n
    \n \n
    \n
    \n
    \n \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n'),e.put("partials/mobile/message_attach_photo.html",'\n \n\n
    '),e.put("partials/mobile/message_attach_venue.html",'
    \n\n \n \n \n\n
    \n
    \n \n
    \n
    \n
    \n\n
    \n'),e.put("partials/mobile/message_attach_webpage.html",'
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n \n \n \n \n
    \n\n
    \n
    \n \n \n \n
    \n \n
    \n
    \n
    \n
    \n'),e.put("partials/mobile/message_service.html",'\n \n \n \n «»\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n «»\n \n \n \n\n \n \n \n \n \n \n\n \n \n \n\n \n \n \n\n'),e.put("partials/mobile/password_recovery_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/password_update_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/peer_select.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/phonebook_modal.html",'
    \n\n
    \n \n
    \n\n \n\n \n\n
    \n'),e.put("partials/mobile/photo_modal.html",'
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n
    \n \n
    \n\n
    \n
    \n\n\n\n\n\n'),e.put("partials/mobile/profile_edit_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/sessions_list_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/settings_modal.html",'
    \n\n
    \n \n
    \n\n \n
    \n'), -e.put("partials/mobile/stickerset_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/user_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    \n'),e.put("partials/mobile/username_edit_modal.html",'
    \n\n
    \n \n
    \n\n \n\n
    '),e.put("partials/mobile/video_modal.html",'
    \n
    \n
    \n \n \n \n
    \n\n
    \n \n \n \n
    \n\n
    \n \n
    \n \n
    \n\n
    \n
    \n\n
    \n
    \n
    \n \n \n \n
    \n \n
    \n
    \n\n\n\n')}]),function(e,t,n,a){function i(e){ConfigStorage.get("emojis_popular",function(t){var n=[];if(t&&t.length){for(var a=0,i=t.length;a41&&(i=i.slice(0,41)),i.push([e,1])),ConfigStorage.set({emojis_popular:i})})}function s(){if(v===!1){v=SearchIndexManager.createIndex();var e;for(e in f)f.hasOwnProperty(e)&&SearchIndexManager.indexObject(f[e],e,v)}}function r(e){s();var t,n=SearchIndexManager.search(e,v),a=[];for(t in n)n.hasOwnProperty(t)&&a.push(t);return a}var l,c,d,u,p,m,g,h,t={},f={},_={},v=!1,y="joy,kissing_heart,heart,heart_eyes,blush,grin,+1,relaxed,pensive,smile,sob,kiss,unamused,flushed,stuck_out_tongue_winking_eye,see_no_evil,wink,smiley,cry,stuck_out_tongue_closed_eyes,scream,rage,smirk,disappointed,sweat_smile,kissing_closed_eyes,speak_no_evil,relieved,grinning,yum,laughing,ok_hand,neutral_face,confused".split(",");for(l=0,g=n.length;l
    '+this.langpack.im_stickers_tab+'
    ';e=e.replace(/>\s+<");var t=this;this.tooltipEl=$(e).appendTo(document.body),this.tabsEl=$(".composer_emoji_tooltip_tabs",this.tooltipEl),this.categoriesEl=$(".composer_emoji_tooltip_categories",this.tooltipEl),this.stickersCategoriesEl=$(".composer_emoji_tooltip_tab_stickers_content .composer_emoji_tooltip_categories",this.tooltipEl),this.contentEl=$(".composer_emoji_tooltip_content",this.tooltipEl),this.emojiContentEl=$(".composer_emoji_tooltip_content_emoji",this.tooltipEl),this.stickersContentEl=$(".composer_emoji_tooltip_content_stickers",this.tooltipEl),angular.forEach(["emoji","stickers"],function(e,n){var a=$(".composer_emoji_tooltip_tab_"+e,t.tabsEl).on("mousedown",function(e){return t.selectTab(n),cancelEvent(e)});Config.Navigator.touch||a.on("mouseenter mouseleave",function(e){clearTimeout(t.selectTabTimeout),"mouseenter"==e.type&&(t.selectTabTimeout=setTimeout(function(){t.selectTab(n)},300))})});var n="mousedown";return Config.Navigator.touch||(n+=" mouseover mouseout"),this.categoriesEl.on(n,function(e){e=e.originalEvent||e;var n=e.target;if("A"!=n.tagName&&(n=n.parentNode),"A"==n.tagName){var a=parseInt(n.getAttribute("data-category"));if("mousedown"==e.type)return t.selectCategory(a),cancelEvent(e);if(!t.tab){var i="mouseover"==e.type;i&&t.selectCategoryIndex==a||(clearTimeout(t.selectCategoryTimeout),delete t.selectCategoryTimeout,i?(t.selectCategoryIndex=a,t.selectCategoryTimeout=setTimeout(function(){delete t.selectCategoryIndex,delete t.selectCategoryTimeout,t.selectCategory(a)},300)):delete t.selectCategoryIndex)}}}),this.emojiScroller=new Scroller(this.emojiContentEl,{classPrefix:"composer_emoji_tooltip"}),this.stickersScroller=new Scroller(this.stickersContentEl,{classPrefix:"composer_emoji_tooltip"}),this.stickersScroller.onScroll(function(e,n){t.onStickersScroll(e,n)}),this.contentEl.on("mousedown",function(e){e=e.originalEvent||e;var n,a,i,o=$(e.target);return"A"!=o[0].tagName&&(o=$(o[0].parentNode)),(n=o.attr("data-code"))&&(t.onEmojiSelected&&t.onEmojiSelected(n),EmojiHelper.pushPopularEmoji(n)),(a=o.attr("data-sticker"))&&(t.onStickerSelected&&t.onStickerSelected(a),Config.Mobile&&t.hide()),(i=o.attr("data-stickerset"))&&(t.onStickersetSelected&&t.onStickersetSelected(i),t.hide()),cancelEvent(e)}),Config.Navigator.touch||this.tooltipEl.on("mouseenter mouseleave",function(e){"mouseenter"==e.type?t.onMouseEnter():t.onMouseLeave()}),this.selectTab(0),$(window).on("resize",this.updatePosition.bind(this)),!0},EmojiTooltip.prototype.selectCategory=function(e,t){return!(!this.tab&&this.cat===e&&!t)&&($(".active",this.categoriesEl).removeClass("active"),this.cat=e,void(this.tab?(this.activateStickerCategory(),this.updateStickersContents(t)):($(this.categoriesEl[this.tab].childNodes[e]).addClass("active"),this.updateEmojiContents())))},EmojiTooltip.prototype.selectTab=function(e,t){if(this.tab===e&&!t)return!1;this.tab=e,this.selectCategory(0,!0);var n=this;setTimeout(function(){$(n.tooltipEl).toggleClass("composer_emoji_tooltip_tabs_stickers_active",1==e)},0)},EmojiTooltip.prototype.updateEmojiContents=function(){var e=[],t=this,n=26,a=function(){t.emojiContentEl.html(e.join("")),t.emojiScroller.reinit()};if(this.cat>0){var i,o,s,r,l,c=this.cat-1,d=Config.EmojiCategories[c],u=Config.EmojiCategorySpritesheetDimens[c][1],p=d.length;for(s=0;s');a()}else EmojiHelper.getPopularEmoji(function(t){var i,o,s,r,l,c,d,u,p=t.length;for(c=0;c'));a()})},EmojiTooltip.prototype.updateStickersContents=function(e){var t=[],n=[],a=this,i=function(){var t=a.cat?a.stickersetPositions[a.cat][0]:0;a.stickersScroller.scrollTo(t,e?0:200)};if(!e&&a.stickersetPositions.length)return void i();var o=function(e){var o,s,r,l,c,d;for(r=0,c=e.length;r'),o.title&&t.push('',encodeEntities(o.title),""),o.id?n.push(''):n.push(''),l=0,d=o.docIDs.length;l');t.push("")}a.stickersContentEl.html(t.join("")),a.stickersCategoriesEl.html(n.join("")),a.stickersScroller.reinit();var u=[];$(".composer_stickerset_wrap",a.stickersContentEl).each(function(e,t){var n=t.offsetHeight,a=t.offsetTop;u.push([a,n])}),a.stickersetPositions=u,i();var p=[];a.contentEl.find(".composer_sticker_btn").each(function(e,t){e<12?a.replaceStickerImage(t):p.push([t.offsetTop,t])}),a.stickersPreload=p,a.stickersCategoriesEl.find(".composer_sticker_btn").each(function(e,t){a.replaceStickerImage(t)})};this.getStickers(o)},EmojiTooltip.prototype.replaceStickerImage=function(e){e=$(e),this.getStickerImage(e,e.attr("data-sticker"))},EmojiTooltip.prototype.onStickersScroll=function(e,t){var n,a,i=e.clientHeight,o=e.scrollHeight,s=this.stickersetPositions.length,r=!1;if(t<20)r=0;else if(t>o-i-20)r=s-1;else for(a=0;a=n[0]&&t=t&&n[0]<=t+i&&(this.replaceStickerImage(n[1]),this.stickersPreload.splice(a,1),a--,s--);this.cat!==r&&r!==!1&&($(".active",this.categoriesEl).removeClass("active"),this.cat=r,this.activateStickerCategory())},EmojiTooltip.prototype.onStickersChanged=function(){this.tab&&this.updateStickersContents(!0)},EmojiTooltip.prototype.activateStickerCategory=function(){var e=this.categoriesEl[1],t=e.childNodes[this.cat];if(t){$(t).addClass("active");var n=t.offsetLeft,a=t.offsetWidth,i=e.clientWidth;$(e).stop(!0).animate({scrollLeft:n-(i-a)/2},200)}},EmojiTooltip.prototype.updatePosition=function(){var e=this.btnEl.offset();this.tooltipEl.css({top:e.top,left:e.left})},EmojiTooltip.prototype.show=function(){this.updatePosition(),this.tab?this.updateStickersContents(!0):this.updateEmojiContents(),this.tooltipEl.addClass("composer_emoji_tooltip_shown"),this.btnEl.addClass("composer_emoji_insert_btn_on"),delete this.showTimeout,this.shown=!0},EmojiTooltip.prototype.hide=function(){this.tooltipEl&&(this.tooltipEl.removeClass("composer_emoji_tooltip_shown"),this.btnEl.removeClass("composer_emoji_insert_btn_on")),delete this.hideTimeout,delete this.shown},EmojiPanel.prototype.update=function(){var e=[],t=this,n=Config.Mobile?26:20;EmojiHelper.getPopularEmoji(function(a){var i,o,s,r,l,c,d,u,p=a.length;for(c=0;c'));t.containerEl.html(e.join(""))})},MessageComposer.autoCompleteRegEx=/(\s|^)(:|@|\/)([\S]*)$/,MessageComposer.prototype.setUpInput=function(){if(this.inlinePlaceholderWrap=$('
    ').prependTo(this.textareaEl[0].parentNode),this.inlinePlaceholderPrefixEl=$('').appendTo(this.inlinePlaceholderWrap),this.inlinePlaceholderEl=$('').appendTo(this.inlinePlaceholderWrap),"contentEditable"in document.body?this.setUpRich():this.setUpPlaintext(),!Config.Mobile){var e=getScrollWidth();e&&(this.richTextareaEl||this.textareaEl).css({marginRight:-e})}},MessageComposer.prototype.setInlinePlaceholder=function(e,t){this.inlinePlaceholderPrefix=e,this.inlinePlaceholderPrefixEl.html(encodeEntities(e)),this.inlinePlaceholderEl.html(encodeEntities(t)),this.onChange()},MessageComposer.prototype.updateInlinePlaceholder=function(){var e=this.inlinePlaceholderPrefix;if(e){var t=this.textareaEl.val();this.inlinePlaceholderWrap.toggleClass("active",t==e)}},MessageComposer.prototype.setUpAutoComplete=function(){this.scroller=new Scroller(this.autoCompleteEl,{maxHeight:180});var e=this;this.autoCompleteEl.on("mousedown",function(t){t=t.originalEvent||t;for(var n,a,i,o,s=t.target;s&&"A"!=s.tagName;)s=s.parentNode;return s?(s=$(s),(a=s.attr("data-code"))&&(e.onEmojiSelected&&e.onEmojiSelected(a,!0),EmojiHelper.pushPopularEmoji(a)),(n=s.attr("data-mention"))&&e.onMentionSelected(n,s.attr("data-name")),(i=s.attr("data-command"))&&(e.onCommandSelected&&e.onCommandSelected(i),e.hideSuggestions()),(o=s.attr("data-inlineid"))&&(e.onInlineResultSend&&e.onInlineResultSend(o),e.hideSuggestions()),cancelEvent(t)):cancelEvent(t)})},MessageComposer.prototype.setUpRich=function(){this.textareaEl.hide(),this.richTextareaEl=$('
    '),this.textareaEl[0].parentNode.insertBefore(this.richTextareaEl[0],this.textareaEl[0]),this.richTextareaEl.on("keyup keydown",this.onKeyEvent.bind(this)),this.richTextareaEl.on("focus blur",this.onFocusBlur.bind(this)),this.richTextareaEl.on("paste",this.onRichPaste.bind(this)),this.richTextareaEl.on("DOMNodeInserted",this.onRichPasteNode.bind(this)),$(document.body).on("keydown",this.backupSelection.bind(this))},MessageComposer.prototype.setUpPlaintext=function(){this.textareaEl.on("keyup keydown",this.onKeyEvent.bind(this)),this.textareaEl.on("focus blur",this.onFocusBlur.bind(this))},MessageComposer.prototype.onKeyEvent=function(e){var t=this;if("keyup"==e.type){this.checkAutocomplete();var n=!1;if(this.richTextareaEl){clearTimeout(this.updateValueTO);var a=tsNow();void 0===this.keyupStarted&&(this.keyupStarted=a),a-this.keyupStarted>3e3,this.onChange()}if(this.onTyping){var a=tsNow();a-this.lastTyping>5e3&&(n===!1&&(n=(this.richTextareaEl?this.richTextareaEl[0].textContent:this.textareaEl[0].value).length),n!=this.lastLength&&(this.lastTyping=a,this.lastLength=n,this.onTyping()))}}if("keydown"==e.type){var i=!this.autocompleteShown;if(this.autocompleteShown){if(38==e.keyCode||40==e.keyCode){var o,s=40==e.keyCode,r=$(this.autoCompleteEl).find("li.composer_autocomplete_option_active"),l=Array.prototype.slice.call($(this.autoCompleteEl).find("li"));if(r.length){var c=l.indexOf(r[0]),d=c+(s?1:-1);if(o=l[d],r.removeClass("composer_autocomplete_option_active"),o)return $(o).addClass("composer_autocomplete_option_active"),this.scroller.scrollToNode(o),cancelEvent(e)}return o=l[s?0:l.length-1],this.scroller.scrollToNode(o),$(o).addClass("composer_autocomplete_option_active"),cancelEvent(e)}if(13==e.keyCode||9==e.keyCode){var r=$(this.autoCompleteEl).find("li.composer_autocomplete_option_active");r.length||9!=e.keyCode||(r=$(this.autoCompleteEl).find("li:first")),r=r.find("a:first");var u,p,m,g;if(u=r.attr("data-code"))return this.onEmojiSelected(u,!0),EmojiHelper.pushPopularEmoji(u),cancelEvent(e);if(p=r.attr("data-mention"))return this.onMentionSelected(p,r.attr("data-name")),cancelEvent(e);if(m=r.attr("data-command"))return this.onCommandSelected&&this.onCommandSelected(m,9==e.keyCode),cancelEvent(e);if(g=r.attr("data-inlineid"))return t.onInlineResultSend&&t.onInlineResultSend(g),t.hideSuggestions(),cancelEvent(e);i=!0}}if(i&&13==e.keyCode){var h=!1,f=!0;if(this.getSendOnEnter&&!this.getSendOnEnter()&&(f=!1),f&&!e.shiftKey?h=!0:f||!e.ctrlKey&&!e.metaKey||(h=!0),h)return this.onMessageSubmit(e),cancelEvent(e)}if([33,34,35,36,38,39].indexOf(e.keyCode)!=-1&&!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&this.richTextareaEl&&!this.richTextareaEl[0].textContent.length)return this.onDirectionKey(e)}},MessageComposer.prototype.backupSelection=function(){if(delete this.selection,this.isActive)if(window.getSelection){var e=window.getSelection();e.getRangeAt&&e.rangeCount&&(this.selection=e.getRangeAt(0))}else document.selection&&document.selection.createRange&&(this.selection=document.selection.createRange())},MessageComposer.prototype.restoreSelection=function(){if(!this.selection)return!1;var e=!1;if(window.getSelection){var t=window.getSelection();t.removeAllRanges(),t.addRange(this.selection),e=!0}else document.selection&&this.selection.select&&(this.selection.select(),e=!0);return delete this.selection,e},MessageComposer.prototype.checkAutocomplete=function(e){var t,n;if(this.richTextareaEl){var a=this.richTextareaEl[0],i=getRichValueWithCaret(a),n=i[0],t=i[1]>=0?i[1]:n.length;t||this.cleanRichTextarea(n,!0)}else var a=this.textareaEl[0],t=getFieldSelection(a),n=a.value;if(n&&this.curInlineResults&&this.curInlineResults.text==n)return void this.showInlineSuggestions(this.curInlineResults);e||(n=n.substr(0,t));var o=n.match(MessageComposer.autoCompleteRegEx);if(o){if(this.previousQuery==o[0])return;this.previousQuery=o[0];var s=SearchIndexManager.cleanSearchText(o[3]);if("@"==o[2])if(this.mentions&&this.mentions.index){if(s.length)for(var r,l=SearchIndexManager.search(s,this.mentions.index),c=[],d=0,u=this.mentions.users.length;d=0)||(i.push(n),t.splice(a,1),t.length));o++);this.showEmojiSuggestions(i.concat(t))}else this.hideSuggestions()}else this.showEmojiSuggestions(e)}.bind(this));else if(this.commands&&this.commands.index){if(s.length)for(var p,l=SearchIndexManager.search(s,this.commands.index),m=[],d=0,u=this.commands.list.length;d0&&(this.richTextareaEl.html(""),this.lastLength=0,this.wasEmpty=!0,t))){var n=this;setZeroTimeout(function(){n.focus()})}},MessageComposer.prototype.onRichPasteNode=function(e){var t=(e.originalEvent||e).target,n=(t||{}).src||"",a=!1;if("data:"==n.substr(0,5)){a=!0;var i=dataUrlToBlob(n);this.onFilePaste(i),setZeroTimeout(function(){t.parentNode.replaceChild(document.createTextNode("   "),t)})}else if(n&&!n.match(/img\/blank\.gif/)){var o=document.createTextNode(" "+n+" ");setTimeout(function(){t.parentNode.replaceChild(o,t)},100)}},MessageComposer.prototype.onEmojiSelected=function(e,t){if(this.richTextareaEl){var n=this.richTextareaEl[0];if(this.isActive||this.restoreSelection()||setRichFocus(n),t){var a,i=getRichValueWithCaret(n),o=i[0],s=i[1]>=0?i[1]:o.length,r=o.substr(s),l=o.substr(0,s),c=l.match(/:([\S]*)$/),d=EmojiHelper.emojis[e];a=c&&c[0]?l.substr(0,c.index)+":"+d[1]+":":l+":"+d[1]+":",n.value=f;var u;r.length?(this.selId=(this.selId||0)+1,u=this.getRichHtml(a)+' '+this.getRichHtml(r),this.richTextareaEl.html(u),setRichFocus(n,$("#composer_sel"+this.selId)[0])):(u=this.getRichHtml(a)+" ",this.richTextareaEl.html(u),setRichFocus(n))}else{var u=this.getEmojiHtml(e);if(window.getSelection){var p=window.getSelection();if(p.getRangeAt&&p.rangeCount){var m=document.createElement("div"); -m.innerHTML=u;var g=m.firstChild,h=p.getRangeAt(0);h.deleteContents(),h.insertNode(document.createTextNode(" ")),h.insertNode(g),h.setStart(g,0),setTimeout(function(){h=document.createRange(),h.setStartAfter(g),h.collapse(!0),p.removeAllRanges(),p.addRange(h)},0)}}else document.selection&&"Control"!=document.selection.type&&document.selection.createRange().pasteHTML(u)}}else{var n=this.textareaEl[0],o=n.value,s=this.isActive?getFieldSelection(n):o.length,r=o.substr(s),l=o.substr(0,s),c=t&&l.match(/:([\S]*)$/),d=EmojiHelper.emojis[e];if(c&&c[0])var f=l.substr(0,c.index)+":"+d[1]+": "+r,_=c.index+d[1].length+3;else var f=l+":"+d[1]+": "+r,_=l.length+d[1].length+3;n.value=f,setFieldSelection(n,_)}this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onMentionsUpdated=function(e){delete this.previousQuery,this.isActive&&this.checkAutocomplete()},MessageComposer.prototype.onMentionSelected=function(e,t){var n=!0;if("#"==e.charAt(0)&&(n=!1,e=e.substr(1),t=t.replace(/\(\)@/,"")),this.richTextareaEl){var a=this.richTextareaEl[0];this.isActive||this.restoreSelection()||setRichFocus(a);var i,o=getRichValueWithCaret(a),s=o[0],r=o[1]>=0?o[1]:s.length,l=s.substr(r),c=s.substr(0,r),d=c.match(/@([\S]*)$/);i=d&&d[0]?c.substr(0,d.index)+"@"+e:c+"@"+e;var u;n?l.length?(this.selId=(this.selId||0)+1,u=this.getRichHtml(i)+' '+this.getRichHtml(l),this.richTextareaEl.html(u),setRichFocus(a,$("#composer_sel"+this.selId)[0])):(u=this.getRichHtml(i)+" ",this.richTextareaEl.html(u),setRichFocus(a)):(this.selId=(this.selId||0)+1,u=this.getRichHtml(i)+' ('+encodeEntities(t)+") "+this.getRichHtml(l),this.richTextareaEl.html(u),setRichFocus(a,$("#composer_sel"+this.selId)[0],!0))}else{var i,p,m,g,a=this.textareaEl[0],s=a.value,r=this.isActive?getFieldSelection(a):s.length,l=s.substr(r),c=s.substr(0,r),d=c.match(/@([\S]*)$/);i=d&&d[0]?c.substr(0,d.index)+"@"+e:c+"@"+e,n?(p=i+"@"+e+" "+l,m=d.index+e.length+2):(p=i+"@"+e+" ("+t+") "+l,m=d.index+e.length+2,g=m+t.length),a.value=p,setFieldSelection(a,m,g)}this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onCommandSelected=function(e,t){if(t)if(this.richTextareaEl)this.richTextareaEl.html(encodeEntities(e)+" "),setRichFocus(this.richTextareaEl[0]);else{var n=this.textareaEl[0];n.value=e+" ",setFieldSelection(n)}else this.onCommandSend(e);this.hideSuggestions(),this.onChange()},MessageComposer.prototype.onChange=function(e){if(this.richTextareaEl){delete this.keyupStarted;var t=getRichValue(this.richTextareaEl[0]);this.textareaEl.val(t).trigger("change")}this.updateInlinePlaceholder()},MessageComposer.prototype.getEmojiHtml=function(e,t){t=t||EmojiHelper.emojis[e];var n=20,a=EmojiHelper.spritesheetPositions[e],i=a[0],o=(a[1],n*a[3]),s=n*a[2];return':'+encodeEntities(t[1])+':'},MessageComposer.prototype.setValue=function(e){this.richTextareaEl?(this.richTextareaEl.html(this.getRichHtml(e)),this.lastLength=e.length,this.wasEmpty=!e.length,this.onKeyEvent({type:"keyup"})):this.textareaEl.val(e)},MessageComposer.prototype.setFocusedValue=function(e){var t=e[0],n=e[1],a=e[2];if(this.richTextareaEl){this.selId=(this.selId||0)+1;var i=this.getRichHtml(t)+''+this.getRichHtml(n)+""+this.getRichHtml(a);this.richTextareaEl.html(i),setRichFocus(this.richTextareaEl[0],$("#composer_sel"+this.selId)[0],!0)}else this.textareaEl.val(t+n+a),setFieldSelection(this.textareaEl[0],t.length,t.length+n.length)},MessageComposer.prototype.getRichHtml=function(e){var t=$("
    ").text(e).html();return t=t.replace(/\n/g,"
    "),t=t.replace(/:([A-Za-z0-9\-\+\*_]+?):/gi,function(e,t){var n=EmojiHelper.shortcuts[t];return void 0!==n?this.getEmojiHtml(n):e}.bind(this)),t=t.replace(/ /g,"  ").replace(/^ | $/g," ")},MessageComposer.prototype.focus=function(){this.richTextareaEl?setZeroTimeout(function(){setRichFocus(this.richTextareaEl[0])}.bind(this)):setFieldSelection(this.textareaEl[0])},MessageComposer.prototype.blur=function(){this.richTextareaEl?this.richTextareaEl[0].blur():this.textareaEl[0].blur()},MessageComposer.prototype.renderSuggestions=function(){this.autoCompleteWrapEl.show(),this.scroller.reinit(),this.updatePosition(),this.autocompleteShown=!0},MessageComposer.prototype.showEmojiSuggestions=function(e){var t=this;setZeroTimeout(function(){t.autoCompleteScope.$apply(function(){t.autoCompleteScope.type="emoji",t.autoCompleteScope.emojiCodes=e}),onContentLoaded(function(){t.renderSuggestions()})})},MessageComposer.prototype.showMentionSuggestions=function(e){var t=this;setZeroTimeout(function(){t.autoCompleteScope.$apply(function(){t.autoCompleteScope.type="mentions",t.autoCompleteScope.mentionUsers=e}),onContentLoaded(function(){t.renderSuggestions()})})},MessageComposer.prototype.showCommandsSuggestions=function(e){var t=this;setZeroTimeout(function(){t.autoCompleteScope.$apply(function(){t.autoCompleteScope.type="commands",t.autoCompleteScope.commands=e}),onContentLoaded(function(){t.renderSuggestions()})})},MessageComposer.prototype.showInlineSuggestions=function(e){if(!e||!e.results.length)return void this.hideSuggestions();var t=this;"inline"==t.autoCompleteScope.type&&t.autoCompleteScope.botResults==e&&t.autocompleteShown||setZeroTimeout(function(){t.autoCompleteScope.$apply(function(){t.autoCompleteScope.type="inline",t.autoCompleteScope.botResults=e}),onContentLoaded(function(){t.renderSuggestions()})})},MessageComposer.prototype.setInlineSuggestions=function(e){this.curInlineResults=e,this.checkAutocomplete()},MessageComposer.prototype.updatePosition=function(){var e=(this.richTextareaEl||this.textareaEl).offset(),t=this.scroller.updateHeight(),n=$((this.richTextareaEl||this.textareaEl)[0].parentNode).outerWidth();this.autoCompleteWrapEl.css({top:e.top-t,left:Config.Mobile?0:e.left,width:Config.Mobile?"100%":n-2}),this.scroller.update()},MessageComposer.prototype.hideSuggestions=function(){this.autoCompleteWrapEl.hide(),delete this.autocompleteShown},MessageComposer.prototype.resetTyping=function(){this.lastTyping=0,this.lastLength=0},MessageComposer.prototype.setPlaceholder=function(e){(this.richTextareaEl||this.textareaEl).attr("placeholder",e)},Scroller.prototype.setUpNano=function(){this.content.wrap('
    '),this.scrollable=$(this.content[0].parentNode),this.scroller=$(this.scrollable[0].parentNode),this.wrap=$(this.scroller[0].parentNode),this.scroller.nanoScroller({preventPageScrolling:!0,tabIndex:-1})},Scroller.prototype.setUpNative=function(){this.content.wrap('
    '),this.scrollable=$(this.content[0].parentNode),this.scrollable.css({overflow:"auto"}),this.maxHeight&&this.scrollable.css({maxHeight:this.maxHeight}),this.minHeight&&this.scrollable.css({minHeight:this.minHeight})},Scroller.prototype.onScroll=function(e){var t=this,n=this.scrollable[0];this.scrollable.on("scroll",function(a){t.isAnimatedScroll||e(n,n.scrollTop)})},Scroller.prototype.update=function(){this.useNano&&$(this.scroller).nanoScroller()},Scroller.prototype.reinit=function(){this.scrollTo(0),this.useNano&&setTimeout(function(){this.updateHeight()}.bind(this),100)},Scroller.prototype.updateHeight=function(){var e;return this.useNano?(this.maxHeight||this.minHeight?(e=this.content[0].offsetHeight,this.maxHeight&&e>this.maxHeight&&(e=this.maxHeight),this.minHeight&&e0){var a=this;this.isAnimatedScroll=!0,this.scrollable.animate({scrollTop:e},t,function(){delete a.isAnimatedScroll,a.useNano&&$(a.scroller).nanoScroller({flash:!0}),a.scrollable.trigger("scroll"),n&&n()})}else this.scrollable[0].scrollTop=e,this.useNano&&$(this.scroller).nanoScroller({flash:!0}),n&&n()},Scroller.prototype.scrollToNode=function(e){e=e[0]||e;var t=e.offsetTop-15,n=e.offsetHeight+30,a=this.scrollable[0].scrollTop,i=this.scrollable[0].clientHeight;a>t?this.scrollTo(t):a

    --- 
     ---
    ',o='
    '+t("unread_messages_split")+"
    ",s="im_message_selected",r="im_message_focus",l="im_message_unread",c="im_message_error",d="im_message_pending";return{templateUrl:templateUrl("message"),link:n}}]).directive("myMessageBody",["$compile","AppPeersManager","AppChatsManager","AppUsersManager","AppMessagesManager","AppInlineBotsManager","RichTextProcessor",function(e,t,n,a,i,o,s){function r(e,t,n){if(n.media&&n.media.handleMessage||"string"!=typeof n.message||!n.message.length)return void $(".im_message_text",t).hide();var a=i.wrapMessageText(n.mid);$(".im_message_text",t).html(a.valueOf())}function l(e,t,n){if(!n.media)return void $(".im_message_media",t).hide();var a=e.$new(!0);a.media=n.media,a.messageId=n.mid,m(a,function(e){$(".im_message_media",t).replaceWith(e)})}function c(e,t,n){if(!n.signID)return void $(".im_message_sign",t).hide();var a=e.$new(!0);a.signID=n.signID,h(a,function(e){$(".im_message_sign",t).replaceWith(e)})}function d(e,t,n){if(!n.reply_markup||"replyInlineMarkup"!=n.reply_markup._)return void $(".im_message_keyboard",t).hide();var a=e.$new(!0);a.markup=i.wrapReplyMarkup(n.reply_markup),a.messageId=n.mid,g(a,function(e){$(".im_message_keyboard",t).replaceWith(e)}),a.$on("reply_inline_button_press",function(e,t){switch(t._){case"keyboardButtonSwitchInline":o.switchInlineButtonClick(n.mid,t);break;case"keyboardButtonCallback":o.callbackButtonClick(n.mid,t);break;case"keyboardButtonGame":o.gameButtonClick(n.mid)}})}function u(e,t,n){r(e,t,n),l(e,t,n),c(e,t,n),d(e,t,n)}function p(e,t,n){var a=e.message;a.dir=!0;var i=a.mid;if(u(e,t,a),a.pending)var o=e.$on("messages_pending",function(){a.mid!=i&&(u(e,t,a),o())});e.$on("message_edit",function(n,i){i.mid==a.mid&&(i.justMedia?l(e,t,a):u(e,t,a))})}var m=e('
    '),g=e('
    '),h=e('
    ');return{link:p,scope:{message:"=myMessageBody"}}}]).directive("myMessageViews",["$filter","AppMessagesManager",function(e,t){function n(e,t){t.html(i(e))}function a(e,a,i){var o=e.$eval(i.myMessageViews),s=t.getMessage(o).views||0;n(s,a),e.$on("message_views",function(e,t){t.mid==o&&n(t.views,a)})}var i=e("formatShortNumber");return{link:a}}]).directive("myReplyMarkup",function(){function e(e,t,n){var a=$(".reply_markup",t),i=new Scroller(a,{classPrefix:"reply_markup",maxHeight:170});e.buttonClick=function(t){e.$emit("reply_button_press",t)},e.$on("ui_keyboard_update",function(t,n){onContentLoaded(function(){i.updateHeight(),i.scrollTo(0),e.$emit("ui_panel_update",{blur:n&&n.enabled})})}),onContentLoaded(function(){i.updateHeight(),e.$emit("ui_panel_update")})}return{templateUrl:templateUrl("reply_markup"),scope:{replyMarkup:"=myReplyMarkup"},link:e}}).directive("myMessageMedia",function(){return{scope:{media:"=myMessageMedia",messageId:"=messageId"},templateUrl:templateUrl("message_media")}}).directive("myMessagePhoto",["AppPhotosManager",function(e){return{scope:{media:"=myMessagePhoto",messageId:"=messageId"},templateUrl:templateUrl("message_attach_photo"),link:function(t,n,a){t.openPhoto=e.openPhoto,t.preloadPhoto=e.preloadPhoto}}}]).directive("myMessageDocument",["AppDocsManager",function(e){return{scope:{media:"=myMessageDocument",messageId:"=messageId"},templateUrl:templateUrl("message_attach_document"),link:function(t,n,a){e.updateDocDownloaded(t.media.document.id),t.docSave=function(){e.saveDocFile(t.media.document.id)},t.docOpen=function(){return t.media.document.withPreview?void e.openDoc(t.media.document.id,t.messageId):t.docSave()},t.videoOpen=function(){e.openVideo(t.media.document.id,t.messageId)}}}}]).directive("myMessageGeo",function(){return{scope:{media:"=myMessageGeo"},templateUrl:templateUrl("message_attach_geo")}}).directive("myMessageVenue",function(){return{scope:{media:"=myMessageVenue"},templateUrl:templateUrl("message_attach_venue")}}).directive("myMessageContact",function(){return{scope:{media:"=myMessageContact"},templateUrl:templateUrl("message_attach_contact")}}).directive("myMessageWebpage",["AppWebPagesManager","AppPhotosManager",function(e,t){return{scope:{media:"=myMessageWebpage",messageId:"=messageId"},templateUrl:templateUrl("message_attach_webpage"),link:function(n){n.openPhoto=t.openPhoto,n.openEmbed=function(t){if(n.media.webpage&&n.media.webpage.embed_url)return e.openEmbed(n.media.webpage.id,n.messageId),cancelEvent(t)},n.$on("webpage_updated",function(e,t){n.media.webpage&&n.media.webpage.id==t.id&&n.$emit("ui_height")})}}}]).directive("myMessageGame",["AppInlineBotsManager","AppMessagesManager",function(e,t){return{scope:{media:"=myMessageGame",messageId:"=messageId"},templateUrl:templateUrl("message_attach_game"),link:function(n,a){function i(e){var i=t.getMessage(n.messageId);if(i.message){var o=t.wrapMessageText(n.messageId);$(".im_message_game_message",a).html(o.valueOf()).show(),$(".im_message_game_description",a).hide()}else $(".im_message_game_message",a).html("").hide(),$(".im_message_game_description",a).show()}n.openGame=function(){e.gameButtonClick(n.messageId)},n.$on("message_edit",function(e,t){t.mid==n.messageId&&i()}),i()}}}]).directive("myMessagePending",function(){return{scope:{media:"=myMessagePending"},templateUrl:templateUrl("message_attach_pending")}}).directive("myInlineReplyMarkup",function(){function e(e,t,n){e.buttonClick=function(t){e.$emit("reply_inline_button_press",t)}}return{templateUrl:templateUrl("reply_markup"),scope:{replyMarkup:"=myInlineReplyMarkup"},link:e}}).directive("myServiceMessage",function(){return{templateUrl:templateUrl("message_service")}}).directive("myShortMessage",function(){return{scope:{message:"=myShortMessage"},templateUrl:templateUrl("short_message")}}).directive("myReplyMessage",["AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n){function a(e,t,n){if(n.watch)e.$parent.$watch(n.myReplyMessage,function(a){var o=e.$parent.$eval(n.edit);i(e,t,a,o)});else{var a=e.$parent.$eval(n.myReplyMessage),o=e.$parent.$eval(n.edit);i(e,t,a,o)}}function i(t,n,a,i){var s=t.replyMessage=e.wrapSingleMessage(a);if(t.isEdit=i||!1,s.loading)var r=t.$on("messages_downloaded",function(i,s){s.indexOf(a)!=-1&&(t.replyMessage=e.wrapForDialog(a),o(t,n),r())});else o(t,n)}function o(a,i){var o=a.replyMessage;return o&&!o.deleted&&o.to_id?(a.thumb=e.getMessageThumb(o,42,42),"A"==i[0].tagName&&i.on("click",function(){var a=e.getMessagePeer(o),i=t.getPeerString(a);n.$broadcast("history_focus",{peerString:i,messageID:o.mid})}),void onContentLoaded(function(){a.$emit("ui_height")})):void $(i).remove()}return{templateUrl:templateUrl("reply_message"),scope:{},link:a}}]).directive("myPinnedMessage",["AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n){function a(t,n,a){var o=t.$parent.$eval(a.myPinnedMessage),s=t.pinnedMessage=e.wrapSingleMessage(o);if(s.loading)var r=t.$on("messages_downloaded",function(a,s){s.indexOf(o)!=-1&&(t.pinnedMessage=e.wrapForDialog(o),i(t,n),r())});else i(t,n)}function i(a,i){var o=a.pinnedMessage;return o&&!o.deleted&&o.to_id?("A"==i[0].tagName&&i.on("click",function(){var a=e.getMessagePeer(o),i=t.getPeerString(a);n.$broadcast("history_focus",{peerString:i,messageID:o.mid})}),void onContentLoaded(function(){a.$emit("ui_height")})):void $(i).remove()}return{templateUrl:templateUrl("pinned_message"),scope:{},link:a}}]).directive("myForwardedMessages",["AppPhotosManager","AppMessagesManager","AppPeersManager","$rootScope",function(e,t,n,a){function i(e,t,n){n.watch?e.$watch("forwardMessages",function(){o(e,t)}):o(e,t)}function o(e,n){var a=e.forwardMessages,i=a.length,o=!1,s=1==i;e.thumb=!1,e.singleMessage=!1,angular.forEach(a,function(n){var a=t.getMessage(n);o===!1?o=a.fromID:o!==a.fromID&&(o=t.getMessagePeer(a)),s&&(e.thumb=t.getMessageThumb(a,42,42),e.singleMessage=t.wrapForDialog(n))}),e.fromID=o,e.count=i,onContentLoaded(function(){e.$emit("ui_height")})}return{templateUrl:templateUrl("forwarded_messages"),scope:{forwardMessages:"=myForwardedMessages"},link:i}}]).directive("myMessageEdited",["_","$timeout","AppMessagesManager",function(e,t,n){function a(e,t,n){var a=e.$parent.$eval(n.myMessageEdited);i(e,t,a)&&e.$on("message_edit",function(a,o){var s=e.$parent.$eval(n.myMessageEdited);o.mid==s&&i(e,t,s)})}function i(e,a,i){var s=n.getMessage(i);return s.canBeEdited?!s.edit_date||(a.html(o).show(),t(function(){e.$destroy()}),!1):(t(function(){e.$destroy(),a.remove()}),!1)}var o=e("message_edited");return{scope:{},link:a}}]).directive("myDialogs",["$modalStack","$transition","$window","$timeout",function(e,t,n,a){function i(t,i,o){function s(n){if(!p&&e.getTop())return!0;if(36==n.keyCode&&!n.shiftKey&&!n.ctrlKey&&n.altKey){var a=$(l).find(".im_dialog_wrap a");return a.length&&($(a[0]).trigger("mousedown"),l.scrollTop=0,$(r).nanoScroller({flash:!0})),cancelEvent(n)}if(27==n.keyCode||9==n.keyCode&&n.shiftKey&&!n.ctrlKey&&!n.metaKey)return p?c.value?$(u).trigger("click"):(t.$emit("esc_no_more"),setTimeout(function(){c.blur(),setTimeout(function(){c.focus()},0)},100)):(setFieldSelection(c),c.value&&c.select()),cancelEvent(n);if(p&&13==n.keyCode&&!Config.Navigator.mobile){var a=$(l).find(".im_dialog_selected")[0]||$(l).find(".im_dialog_wrap a")[0];return a&&!$(a).hasClass("disabled")&&$(a).trigger("mousedown"),cancelEvent(n)}if(!Config.Navigator.osX&&n.altKey&&n.shiftKey&&!n.ctrlKey&&!n.metaKey&&n.keyCode>=49&&n.keyCode<=57||Config.Navigator.osX&&n.ctrlKey&&n.shiftKey&&!n.metaKey&&!n.altKey&&n.keyCode>=49&&n.keyCode<=57){var i=n.keyCode-49,o=$(l).find(".im_dialog_wrap"),s=o[i];return s&&($(s).find("a").trigger("mousedown"),scrollToNode(l,s,r)),cancelEvent(n)}var d,m,g,h=Config.Modes.packed;if(40==n.keyCode||38==n.keyCode?(d=40==n.keyCode,m=!d,g=!n.shiftKey&&n.altKey):h&&9==n.keyCode&&n.ctrlKey&&!n.metaKey&&(d=!n.shiftKey,m=!d,g=!0),d||m){if(!g&&(!p||n.metaKey))return!0;var s,a=!g&&$(l).find(".im_dialog_selected")[0]||$(l).find(".active a.im_dialog")[0],f=a&&a.parentNode;if(f){var s=a[d?"nextSibling":"previousSibling"];if(!s||!s.className||s.className.indexOf("im_dialog_wrap")==-1){var o=$(l).find(".im_dialog_wrap"),_=o.index(a.parentNode),v=_+(d?1:-1);s=o[v]}}else{var o=$(l).find(".im_dialog_wrap");s=d?o[0]:o[o.length-1]}return g?s&&$(s).find("a").trigger("mousedown"):(f&&s&&$(f).find("a").removeClass("im_dialog_selected"),s&&$(s).find("a").addClass("im_dialog_selected")),s&&scrollToNode(l,s,r),cancelEvent(n)}}var r=$(".im_dialogs_wrap",i)[0],l=$(".im_dialogs_scrollable_wrap",i)[0],c=$(".im_dialogs_search_field",i)[0],d=$(".im_dialogs_panel",i)[0],u=$(".im_dialogs_search_clear",i)[0],p=!1;$(c).on("focus blur",function(e){p="focus"==e.type,p||($(l).find(".im_dialog_selected").removeClass("im_dialog_selected"),c.value||t.$emit("ui_dialogs_search_clear"))}),t.$on("dialogs_search_toggle",function(){$(d).addClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search"),$(n).scrollTop(0),a(function(){setFieldSelection(c)})}),t.$on("search_clear",function(){$(d).removeClass("im_dialogs_panel_search"),t.$broadcast("ui_dialogs_search")}),$(document).on("keydown",s),t.$on("$destroy",function(){$(document).off("keydown",s)}),t.$on("ui_dialogs_change",function(){onContentLoaded(function(){var e=$(l).find(".active a.im_dialog")[0];e&&scrollToNode(l,e.parentNode,r)})})}return{link:i}}]).directive("myDialogsList",["$window","$timeout",function(e,t){function n(n,a,i){function o(){if(u&&u.offsetHeight||(u=$(d)[0]),i.modal){var t=$(e).height()-(u?u.offsetHeight:49)-(Config.Mobile?46:100);return t=Math.min(Config.Mobile?350:450,t),$(a).css({height:t}),void g()}c&&c.offsetHeight||(c=$(".tg_page_head")[0]),p&&p.offsetHeight||(p=$(".footer_wrap")[0]),r&&r.offsetHeight||(r=$(".im_dialogs_col_wrap")[0]);var n=p?p.offsetHeight:0;n&&n++,$(a).css({height:$(e).height()-n-(c?c.offsetHeight:48)-(u?u.offsetHeight:58)-parseInt($(r).css("paddingBottom")||0)}),g()}var s=$(".im_dialogs_wrap",a)[0],r=$(".im_dialogs_col_wrap")[0],l=$(".im_dialogs_scrollable_wrap",a)[0],c=$(".tg_page_head")[0],d=Config.Mobile&&i.modal?".mobile_modal_body .im_dialogs_panel":".im_dialogs_panel",u=$(d)[0],p=$(".footer_wrap")[0],m=!1;onContentLoaded(function(){$(s).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0})});var g=function(){onContentLoaded(function(){$(s).nanoScroller()})};n.$on("ui_dialogs_prepend",g),n.$on("ui_dialogs_search",o),n.$on("ui_dialogs_update",o),n.$on("ui_dialogs_append",function(){onContentLoaded(function(){g(),m=!1,t(function(){$(l).trigger("scroll")})})}),n.$on("ui_dialogs_change",function(){onContentLoaded(function(){g(),m=!1,t(function(){$(l).trigger("scroll")})})}),$(l).on("scroll",function(e){a.is(":visible")&&!m&&l.scrollTop>=l.scrollHeight-l.clientHeight-300&&(n.$emit("dialogs_need_more"),m=!0)}),$(e).on("resize",o),o(),setTimeout(o,1e3)}return{link:n}}]).directive("myContactsList",["$window","$timeout",function(e,t){function n(t,n,a){function i(){$(n).css({height:$(e).height()-(s&&s.offsetHeight||0)-(o&&o.offsetHeight||0)-(Config.Mobile?64:200)}),$(r).nanoScroller()}var o=$(".contacts_modal_search")[0],s=$(".contacts_modal_panel")[0],r=$(".contacts_wrap",n)[0];onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i),t.$on("contacts_change",function(){onContentLoaded(i)})}return{link:n}}]).directive("myCountriesList",["$window","$timeout",function(e,t){function n(t,n,a){function i(){$(n).css({height:$(e).height()-(s&&s.offsetHeight||0)-(o&&o.offsetHeight||0)-(Config.Mobile?64:200)}),$(r).nanoScroller()}var o=$(".countries_modal_search")[0],s=$(".countries_modal_panel")[0],r=$(".countries_wrap",n)[0];onContentLoaded(function(){$(r).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i),t.$on("contacts_change",function(){onContentLoaded(i)})}return{link:n}}]).directive("mySessionsList",["$window","$timeout",function(e,t){function n(t,n,a){function i(){$(n).css({height:Math.min(760,$(e).height()-(Config.Mobile?64:200))}),$(o).nanoScroller()}var o=$(".sessions_wrap",n)[0];onContentLoaded(function(){$(o).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i)}return{link:n}}]).directive("myStickersList",["$window","$timeout",function(e,t){function n(t,n,a){function i(){$(n).css({height:Math.min(600,$(e).height()-(Config.Mobile?64:200))}),$(o).nanoScroller()}var o=$(".stickerset_wrap",n)[0];onContentLoaded(function(){$(o).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0}),i()}),$(e).on("resize",i)}return{link:n}}]).directive("myHistory",["$window","$timeout","$rootScope","$transition",function(e,t,n,a){function i(i,o,s){function r(e,n){var a,i,o,s=!1;if(!e&&(i=$(".im_message_focus:visible",p)[0])){var r=p.clientHeight,l=p.scrollTop,c=i.offsetTop,d=i.clientHeight;(!l||l+rc+d||n)&&(s=Math.max(0,c-Math.floor(r/2)+26)),A=!1,o=function(){var e=$(i).data("unfocus_promise");e&&(t.cancel(e),$(i).removeClass("im_message_focus_active")),t(function(){$(i).addClass("im_message_focus_active"),e=t(function(){$(i).removeClass("im_message_focus_active"),$(i).data("unfocus_promise",!1)},2800),$(i).data("unfocus_promise",e)})}}else(a=$(".im_message_unread_split:visible",p)[0])?(s=Math.max(0,a.offsetTop-52),A=!1):(s=p.scrollHeight,A=!0);if(s!==!1){var u=function(){S(),t(function(){$(p).trigger("scroll"),E=p.scrollTop}),o&&o()};n?$(p).animate({scrollTop:s},200,u):(p.scrollTop=s,u())}}function l(t){if(o.is(":visible")||$(o[0].parentNode.parentNode).is(":visible")){$(f).is(":visible")&&$(f).css({height:$(y).height()}),_&&_.offsetHeight||(_=$(".tg_page_head")[0]),v&&v.offsetHeight||(v=$(".footer_wrap")[0]);var n=v?v.offsetHeight:0;n&&n++;var a=$(e).height()-h.offsetHeight-(_?_.offsetHeight:48)-n;$(d).css({height:a}),c(),t!==!0&&(A&&onContentLoaded(function(){p.scrollTop=p.scrollHeight,S()}),S(100))}}function c(){$(u).css({marginTop:0});var e=p.offsetHeight-u.offsetHeight-g.offsetHeight-(Config.Mobile?0:39);u.offsetHeight>0&&e>0&&$(u).css({marginTop:e}),$(d).nanoScroller()}var d=$(".im_history_wrap",o)[0],u=$(".im_history_messages",o)[0],p=($(".im_history",o)[0],$(".im_history_scrollable_wrap",o)[0]),m=$(".im_history_scrollable",o)[0],g=$(".im_history_empty_wrap",o)[0],h=$(".im_bottom_panel_wrap",o)[0],f=$(".im_send_form_wrap",o)[0],_=$(".tg_page_head")[0],v=$(".footer_wrap")[0],y=$(".im_send_form",o)[0],b=!1,w=!1;onContentLoaded(function(){p.scrollTop=p.scrollHeight}),$(d).nanoScroller({preventPageScrolling:!0,tabIndex:-1,iOSNativeScrolling:!0});var k,S=function(e){t(function(){$(p).hasClass("im_history_to_bottom")||$(d).nanoScroller()},e||0)},C=!1,M=["transform","webkitTransform","MozTransform","msTransform","OTransform"];for(k=0;k0;if(o)i=p.scrollHeight;else{var s=parseInt($(p).css("paddingRight"));$(m).css({bottom:0,paddingRight:s}),$(p).addClass("im_history_to_bottom")}onContentLoaded(function(){if(o){I=!0,$(u).removeClass("im_history_appending"),p.scrollTop=p.scrollHeight,$(u).css(C,"translate(0px, "+(p.scrollHeight-i)+"px)"),$(d).nanoScroller();var e={};e[C]="translate(0px, 0px)",$(u).addClass("im_history_appending"),a($(u),e).then(function(){I=!1,$(u).removeClass("im_history_appending"),c()})}else $(p).removeClass("im_history_to_bottom"),$(m).css({bottom:"",paddingRight:0}),p.scrollTop=p.scrollHeight,c()})}),i.$on("history_direction_key",function(e,t){var n=!1;switch(console.warn("scroll top",t.keyCode),t.keyCode){case 33:n=p.scrollTop-p.clientHeight;break;case 34:n=p.scrollTop+p.clientHeight;break;case 36:n=0;break;case 35:n=p.scrollHeight}n!==!1&&$(p).stop().animate({scrollTop:n},200)}),i.$on("ui_history_change",function(){var e=parseInt($(p).css("paddingRight"));$(p).addClass("im_history_to_bottom"),p.scrollHeight,$(m).css({bottom:0,paddingRight:e}),onContentLoaded(function(){$(p).removeClass("im_history_to_bottom"),$(m).css({bottom:"",paddingRight:""}),l(!0),b=!1,w=!1,r()})}),i.$on("ui_history_change_scroll",function(e,t){onContentLoaded(function(){r(!1,t)})}),i.$on("ui_history_focus",function(){A||(p.scrollTop=p.scrollHeight,S(),A=!0)}),i.$on("ui_history_prepend",function(){var e=p.scrollHeight,n=p.scrollTop,a=parseInt($(p).css("paddingRight")),o=p.clientHeight;$(p).addClass("im_history_to_bottom"),p.scrollHeight,$(m).css({bottom:-(e-n-o),paddingRight:a});var s=function(){$(p).removeClass("im_history_to_bottom"),$(m).css({bottom:"",paddingRight:""}),E>=0?r():p.scrollTop=n+p.scrollHeight-e,c(),b=!1,t(function(){p.scrollHeight!=e&&$(p).trigger("scroll")}),clearTimeout(l),d()},l=setTimeout(s,0),d=i.$on("$viewContentLoaded",s)}),i.$on("ui_history_append",function(){var e=p.scrollHeight;onContentLoaded(function(){A=!1,c(),w=!1,E>=0&&r(),t(function(){p.scrollHeight!=e&&$(p).trigger("scroll")})})}),i.$on("ui_panel_update",function(e,n){l(),onContentLoaded(function(){l(),n&&n.blur?i.$broadcast("ui_message_blur"):getSelectedText()||i.$broadcast("ui_message_send"),t(function(){$(p).trigger("scroll")})})}),i.$on("ui_selection_clear",function(){window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}),i.$on("ui_editor_resize",l),i.$on("ui_height",function(){onContentLoaded(l)});var A=!0,E=-1;$(p).on("scroll",function(e){if(o.is(":visible")&&!$(p).hasClass("im_history_to_bottom")&&!I){var t=p.scrollTop;A=t>=p.scrollHeight-p.clientHeight,E>=0&&E!=t&&(E=-1),!b&&t<=300?(b=!0,i.$emit("history_need_more")):!w&&t>=p.scrollHeight-p.clientHeight-300&&(w=!0,i.$emit("history_need_less"))}}),$(e).on("resize",l),l(),onContentLoaded(l)}return{link:i}}]).directive("mySendForm",["_","$q","$timeout","$compile","$modalStack","$http","$interpolate","Storage","AppStickersManager","AppDocsManager","ErrorService","AppInlineBotsManager","FileManager","shouldFocusOnInteraction",function(e,t,n,a,i,o,s,r,l,c,d,u,p,m){function g(o,s,g){function h(){r.get("send_ctrlenter").then(function(e){H=!e})}function f(e){return n(function(){y(),o.draftMessage.send(),L.resetTyping(),B&&B.update(),L.hideSuggestions()},m?0:100),cancelEvent(e)}function _(e){o.$apply(function(){o.draftMessage.inlineResultID=e})}function v(e){return 38==e.keyCode?(o.$emit("last_message_edit"),cancelEvent(e)):(o.$emit("history_direction_key",e),!0)}function y(){j&&(L.onChange(),b())}function b(){var e=j.offsetHeight;q!=e&&(q=e,o.$emit("ui_editor_resize"))}function w(e){if(!(9!=e.keyCode||e.shiftKey||e.ctrlKey||e.metaKey||i.getTop()))return L.focus(),cancelEvent(e)}function k(){onContentLoaded(function(){L.focus()})}function S(e){var n=e.type||"",a=t.when(!1);["image/jpeg","image/gif","image/png","image/bmp"].indexOf(n)>=0&&(a=p.getFileCorrectUrl(e,n)),a.then(function(t){t=t||!1,d.confirm({type:"FILE_CLIPBOARD_PASTE",fileUrl:t}).then(function(){o.draftMessage.files=[e],o.draftMessage.isMedia=!0})})}function C(e){var t,n,a=(e.originalEvent||e).clipboardData,i=a&&a.items||[],s=[];for(n=0;n0){if(1==s.length)return S(s[0]);d.confirm({type:"FILES_CLIPBOARD_PASTE",files:s}).then(function(){o.draftMessage.files=s,o.draftMessage.isMedia=!0})}}function M(e){var t=!1;return x&&1!=x||(x=checkDragEvent(e)?2:1,t=!0),2==x&&(I&&setTimeout(function(){clearTimeout(I),I=!1},0),"dragenter"==e.type||"dragover"==e.type?t&&(Config.Mobile||$(E).hide(),$(P).css({height:F.offsetHeight+2,width:F.offsetWidth}).show()):("drop"==e.type&&o.$apply(function(){o.draftMessage.files=Array.prototype.slice.call(e.originalEvent.dataTransfer.files),o.draftMessage.isMedia=!0}),I=setTimeout(function(){$(P).hide(),Config.Mobile||$(E).show(),x=!1,I=!1},300))),cancelEvent(e)}var x,I,A=$("textarea",s)[0],E=$(".composer_emoji_insert_btn",s)[0],T=$(".composer_emoji_panel",s)[0],D=$("input",s),P=$(".im_send_dropbox_wrap",s)[0],F=$(".im_send_field_wrap",s)[0],N=$(".im_submit",s)[0],R=a(''),O={},U=new EmojiTooltip(E,{getStickers:function(e){l.getStickers().then(e)},getStickerImage:function(e,t){var n=e.attr("data-category"),a=O[t];if(a&&!isInDOM(a[0]))return a.attr("data-category",n),void e.replaceWith(a);var i=o.$new(!0);i.document=c.getDoc(t),R(i,function(a){O[t]=a,a.attr("data-category",n),e.replaceWith(a)})},onStickersetSelected:function(e){l.openStickersetLink(e)},onEmojiSelected:function(e){o.$apply(function(){L.onEmojiSelected(e)})},onStickerSelected:function(e){o.$apply(function(){o.draftMessage.sticker=e})},langpack:{im_emoji_tab:e("im_emoji_tab"),im_stickers_tab:e("im_stickers_tab")}});o.$on("stickers_changed",function(){U.onStickersChanged()});var B;T&&(B=new EmojiPanel(T,{onEmojiSelected:function(e){L.onEmojiSelected(e)}}));var L=new MessageComposer(A,{onTyping:function(){o.$emit("ui_typing")},getSendOnEnter:function(){return H},dropdownDirective:function(e,t){var n=o.$new(!0);a("
    ")(n,function(n,a){e.replaceWith(n),t(a,n)})},mentions:o.mentions,commands:o.commands,onMessageSubmit:f,onDirectionKey:v,onInlineResultSend:_,onFilePaste:S,onCommandSend:function(e){o.$apply(function(){o.draftMessage.command=e})}}),j=L.richTextareaEl&&L.richTextareaEl[0];j&&$(j).on("keydown keyup",b),o.$on("inline_results",function(e,t){var n=Config.Mobile?$(window).width():(F.offsetWidth||382)-2,a=80;t&&u.regroupWrappedResults(t.results,n,a),setZeroTimeout(function(){L.setInlineSuggestions(t)})}),o.$on("inline_placeholder",function(e,t){L.setInlinePlaceholder(t.prefix,t.placeholder)}),D.on("change",function(){var e=this;o.$apply(function(){o.draftMessage.files=Array.prototype.slice.call(e.files),o.draftMessage.isMedia=$(e).hasClass("im_media_attach_input")||Config.Mobile,setTimeout(function(){try{e.value=""}catch(t){}},1e3)})});var H=!0;o.$on("settings_changed",h),h(),$(N).on("mousedown touchstart",f);var q=j&&j.offsetHeight;$(document).on("keydown",w),$("body").on("dragenter dragleave dragover drop",M),$(document).on("paste",C),m&&(o.$on("ui_peer_change",k),o.$on("ui_history_focus",k),o.$on("ui_history_change",k)),o.$on("ui_peer_change",L.resetTyping.bind(L)),o.$on("ui_peer_draft",function(t,n){n=n||{};var a=o.draftMessage.isBroadcast;L.setPlaceholder(e(a?"im_broadcast_field_placeholder_raw":"im_message_field_placeholder_raw")),n.customSelection?(L.setFocusedValue(n.customSelection),b()):(j&&(L.setValue(o.draftMessage.text||""),b()),(m||n&&n.focus)&&L.focus()),onContentLoaded(function(){L.checkAutocomplete(!0)}),U&&Config.Mobile&&U.hide()}),o.$on("ui_peer_reply",function(){onContentLoaded(function(){o.$emit("ui_editor_resize"),m&&L.focus()})}),o.$on("mentions_update",function(){L.onMentionsUpdated()}),o.$on("ui_message_before_send",function(){y()}),o.$on("ui_message_send",function(){m&&k()}),o.$on("ui_message_blur",function(){L.blur()}),o.$on("$destroy",function(){$(document).off("paste",C),$(document).off("keydown",w),$("body").off("dragenter dragleave dragover drop",M),$(N).off("mousedown touchstart"),D.off("change")}),m&&k()}return{link:g,scope:{draftMessage:"=",mentions:"=",commands:"="}}}]).directive("myLoadThumb",["MtpApiFileManager","FileManager",function(e,t){function n(n,a,i){var o=0,s=e.getCachedFile(n.thumb&&n.thumb.location&&!n.thumb.location.empty&&n.thumb.location);s&&a.attr("src",t.getUrl(s,"image/jpeg")),n.thumb&&n.thumb.width&&n.thumb.height&&(a.attr("width",n.thumb.width),a.attr("height",n.thumb.height));var r=n.$watchCollection("thumb.location",function(i){n.thumb&&n.thumb.width&&n.thumb.height&&(a.attr("width",n.thumb.width),a.attr("height",n.thumb.height),n.$emit("ui_height"));var s=++o;if(!i||i.empty)return a.attr("src",n.thumb&&n.thumb.placeholder||"img/blank.gif"),void l();var r=e.getCachedFile(i);return r?(a.attr("src",t.getUrl(r,"image/jpeg")),void l()):(a.attr("src")||a.attr("src",n.thumb.placeholder||"img/blank.gif"),void e.downloadSmallFile(n.thumb.location).then(function(e){s==o&&(a.attr("src",t.getUrl(e,"image/jpeg")),l())},function(e){console.log("Download image failed",e,n.thumb.location,a[0]),s==o&&(a.attr("src",n.thumb.placeholder||"img/blank.gif"),l())}))}),l=i.watch?angular.noop:function(){setTimeout(function(){n.$destroy(),r()},0)}}return{link:n,scope:{thumb:"="}}}]).directive("myLoadFullPhoto",["MtpApiFileManager","FileManager","_",function(e,t,n){function a(a,i,o){var s=$("img",i)[0],r=$(".img_fullsize_with_progress_wrap",i).add(".img_fullsize_progress_wrap",i).add($(s)),l=function(){r.css({width:a.fullPhoto.width,height:a.fullPhoto.height}),a.$emit("ui_height",!0)},c=0;a.$watchCollection("fullPhoto.location",function(){var i=e.getCachedFile(a.thumbLocation),o=++c;if(i?(s.src=t.getUrl(i,"image/jpeg"),l()):s.src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",a.fullPhoto.location){var r;if(a.fullPhoto.size){var d={_:"inputFileLocation",volume_id:a.fullPhoto.location.volume_id,local_id:a.fullPhoto.location.local_id,secret:a.fullPhoto.location.secret};r=e.downloadFile(a.fullPhoto.location.dc_id,d,a.fullPhoto.size)}else r=e.downloadSmallFile(a.fullPhoto.location);a.progress={enabled:!0,percent:0},r.then(function(e){o==c&&(a.progress.enabled=!1,s.src=t.getUrl(e,"image/jpeg"),l())},function(e){console.log("Download image failed",e,a.fullPhoto.location),a.progress.enabled=!1,e&&"FS_BROWSER_UNSUPPORTED"==e.type?a.error={html:n("error_browser_no_local_file_system_image_md",{"moz-link":'{1}',"chrome-link":'{1}',"telegram-link":'{1}'})}:a.error={text:n("error_image_download_failed"),error:e}},function(e){a.progress.percent=Math.max(1,Math.floor(100*e.done/e.total))})}}),l()}return{link:a,transclude:!0,templateUrl:templateUrl("full_photo"),scope:{fullPhoto:"=",thumbLocation:"="}}}]).directive("myLoadVideo",["$sce","AppDocsManager","ErrorService","_",function(e,t,n,a){function i(e,i,o){var s=t.downloadDoc(e.video.id);s.then(function(){e.$emit("ui_height"),onContentLoaded(function(){var e=$("video",i)[0];if(e){var t=!1,a=function(e){t||e.target&&e.target.error&&e.target.error.code!=e.target.error.MEDIA_ERR_DECODE&&e.target.error.code!=e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED||(t=!0,n.show({error:{type:"MEDIA_TYPE_NOT_SUPPORTED",originalError:e.target&&e.target.error}}))};e.addEventListener("error",a,!0),$(e).on("$destroy",function(){t=!0,e.removeEventListener("error",a)})}})},function(t){console.log("Download video failed",t,e.video),t&&"FS_BROWSER_UNSUPPORTED"==t.type?e.error={html:a("error_browser_no_local_file_system_video_md",{"moz-link":'{1}',"chrome-link":'{1}',"telegram-link":'{1}'})}:e.error={text:a("error_video_download_failed"),error:t}}),e.$emit("ui_height"),e.$on("$destroy",function(){s.cancel()})}return{link:i,transclude:!0,templateUrl:templateUrl("full_video"),scope:{video:"="}}}]).directive("myLoadGif",["AppDocsManager","$timeout",function(e,t){function n(n,a,i){var o=$(".img_gif_image_wrap",a);o.css({width:n.document.thumb.width,height:n.document.thumb.height});var s=!1;n.isActive=!1,n.toggle=function(i){return i&&checkClick(i,!0)?(e.saveDocFile(n.document.id),!1):n.document.url?void onContentLoaded(function(){n.isActive=!n.isActive,n.$emit("ui_height");var e=$("video",a)[0];e&&(n.isActive?e.play():(e.pause(),e.currentTime=0))}):s?(s.cancel(),void(s=!1)):(s=e.downloadDoc(n.document.id),void s.then(function(){t(function(){n.isActive=!0},200)}))}}return{link:n,templateUrl:templateUrl("full_gif"),scope:{document:"="}}}]).directive("myLoadSticker",["_","MtpApiFileManager","FileManager","AppStickersManager",function(e,t,n,a){function i(i,s,r){var l=$("").addClass(r.imgClass),c=!1;l.attr("alt","["+(i.document.stickerEmojiRaw||"")+" "+e("conversation_media_sticker")+"]");var d=r.dim&&i.$parent.$eval(r.dim)||i.document.thumb;r.open&&i.document.stickerSetInput&&s.addClass("clickable").on("click",function(){a.openStickerset(i.document.stickerSetInput)});var u=function(e){l.attr("src",n.getUrl(e)),c||(c=!0,l.appendTo(s))};l.css({width:d.width,height:d.height}),s.css({width:d.width,height:d.height});var p=!1;i.document.thumb.location&&(p=angular.copy(i.document.thumb.location),p.sticker=!0);var m={_:"inputDocumentFileLocation",id:i.document.id,access_hash:i.document.access_hash,dc_id:i.document.dc_id,file_name:i.document.file_name,version:i.document.version,sticker:!0},g=t.getCachedFile(m),h=!1;if(g?h=!0:g=t.getCachedFile(p),g){if(u(g),h)return}else c=!0,l.attr("src",o).appendTo(s);r.thumb&&p?t.downloadSmallFile(p).then(function(e){u(e)},function(e){console.log("Download sticker failed",e,m)}):t.downloadFile(i.document.dc_id,m,i.document.size).then(function(e){u(e)},function(e){console.log("Download sticker failed",e,m)})}var o="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";return{link:i,scope:{document:"="}}}]).directive("myLoadDocument",["MtpApiFileManager","AppDocsManager","FileManager",function(e,t,n){function a(e,t){for(;e&&!$(e).hasClass("modal-dialog");)e=e.parentNode;e&&$(e).width(t+(Config.Mobile?0:32))}function i(i,o,s){var r=$(".document_fullsize_with_progress_wrap",o),l=$(".document_fullsize_wrap",o),c=$(".document_fullsize_img",o),d=$(window).width()-(Config.Mobile?20:32),u=$(window).height()-150;d>800&&(d-=208),i.imageWidth=d,i.imageHeight=u;var p=i.document.thumb;if(p&&"photoSizeEmpty"!=p._){var m=calcImageInBox(p.width,p.height,d,u);i.imageWidth=m.w,i.imageHeight=m.h;var g=e.getCachedFile(p.location);g&&(i.thumbSrc=n.getUrl(g,"image/jpeg"))}i.frameWidth=Math.max(i.imageWidth,Math.min(600,d)),i.frameHeight=i.imageHeight,onContentLoaded(function(){i.$emit("ui_height")}),a(o[0],i.frameWidth);var h,f,_;t.downloadDoc(i.document.id).then(function(e){var t=n.getUrl(e,i.document.mime_type),a=new Image,o=100,s=function(e){if(a.height&&a.width||!--o){f=a.width,_=a.height,clearInterval(h);var n=calcImageInBox(a.width,a.height,d,u,!0),s={w:f,h:_};n.w>=s.w&&n.h>=s.h&&(s.w*=4,s.h*=4);var p=!0;i.toggleZoom=function(){p=!p;var e=(p?s:n).w,t=(p?s:n).h;c.css({width:e,height:t,marginTop:i.frameHeight>t?Math.floor((i.frameHeight-t)/2):0}),l.toggleClass("document_fullsize_zoomed",p)},i.toggleZoom(!1),c.attr("src",t),r.hide(),l.css({width:i.frameWidth,height:i.frameHeight}).show()}};h=setInterval(s,20),a.onload=s,a.src=t,setZeroTimeout(s)})}return{link:i,templateUrl:templateUrl("full_document"),scope:{document:"=myLoadDocument"}}}]).directive("myGeoPointMap",["ExternalResourcesManager",function(e){function t(t,n,a){var i=n.attr("width")||200,o=n.attr("height")||200,s=Config.ExtCredentials.gmaps.api_key,r=i>200?15:13;n.attr("src","img/blank.gif");var l="https://maps.googleapis.com/maps/api/staticmap?sensor=false¢er="+t.point.lat+","+t.point["long"]+"&zoom="+r+"&size="+i+"x"+o+"&scale=2&markers=color:red|size:big|"+t.point.lat+","+t.point["long"],c=!1;c&&(l+="&key="+s),e.downloadByURL(l).then(function(e){n.attr("src",e.valueOf())})}return{link:t,scope:{point:"=myGeoPointMap"}}}]).directive("myLoadingDots",["$interval",function(e){function t(e,t,a){t.html(n(t[0])?'
    ':"...")}function n(e){if(void 0===a&&(a=void 0!==e.style.animationName,a===!1)){var t,n="Webkit Moz O ms Khtml".split(" ");for(t=0;t=a.scrollHeight-a.clientHeight-300&&(i=!0,e.$apply(function(){e.slice.limit+=e.slice.limitDelta||20}),onContentLoaded(function(){i=!1,$(t).nanoScroller()}))})}return{link:e,scope:!0}}).directive("myModalPosition",["$window","$timeout",function(e,t){function n(n,a,i){var o=function(){if(!Config.Mobile||!$(a[0].parentNode.parentNode.parentNode).hasClass("mobile_modal")){var e=a[0].parentNode.offsetHeight,n=a[0].parentNode.parentNode.parentNode,o=$(".media_modal_bottom_panel_wrap",n)[0],s=n.offsetHeight-(o&&o.offsetHeight||0);e1||1==n&&!o)&&(e=t("group_modal_participants",{total:e,online:u(n)}))}n||f||(e=""),s.html(e)};n.$watch(r.myChatStatus,function(e){m=e,v()}),e.$on("chat_full_update",function(e,t){m==t&&v()}),e.$on("user_update",function(e,t){_[t]&&y()}),c[g]=y,n.$on("$destroy",function(){delete c[g]})}var l=0,c={},d=t.pluralize("group_modal_pluralize_participants"),u=t.pluralize("group_modal_pluralize_online_participants"),p=0;return n.getUserID().then(function(e){p=e}),setInterval(s,9e4),{link:r}}]).directive("myPeerMuted",["$rootScope","NotificationsManager",function(e,t){function n(t,n,i){var o=t.$eval(i.myPeerMuted),s=i.mutedClass||"muted",r=e.$on("notify_settings",function(e,t){t.peerID==o&&a(o,n,s)});a(o,n,s),t.$on("$destroy",r)}function a(e,n,a){t.getPeerMuted(e).then(function(e){n.toggleClass(a,e)})}return{link:n}}]).directive("myPeerLink",["AppChatsManager","AppUsersManager",function(e,t){function n(n,a,i){var o,s=i.userOverride&&n.$eval(i.userOverride)||{},r=i["short"]&&n.$eval(i["short"]),l=i.username&&n.$eval(i.username),c=function(){if(a[0].className.indexOf("user_color_")!=-1&&(a[0].className=a[0].className.replace(/user_color_\d+/g,"")),o>0){var c=t.getUser(o),d=l?"@":"",u=l?"username":r?"rFirstName":"rFullName";a.html(d+(s[u]||c[u]||"").valueOf()+(i.verified&&c.pFlags&&c.pFlags.verified?' ':"")),i.color&&n.$eval(i.color)&&a.addClass("user_color_"+c.num)}else{var p=e.getChat(-o);a.html((p.rTitle||"").valueOf()+(i.verified&&p.pFlags&&p.pFlags.verified?' ':""))}};"A"!=a[0].tagName||hasOnlick(a[0])||a.on("click",function(){o>0?t.openUser(o,s):e.openChat(-o)}),i.peerWatch?n.$watch(i.myPeerLink,function(e){o=e,c()}):(o=n.$eval(i.myPeerLink),c()),i.noWatch||(n.$on("user_update",function(e,t){o==t&&c()}),n.$on("chat_update",function(e,t){o==-t&&c()}))}return{link:n}}]).directive("myPeerPhotolink",["AppPeersManager","AppUsersManager","AppChatsManager","MtpApiFileManager","FileManager",function(e,t,n,a,i){function o(o,s,r){s.addClass("peer_photo_init");var l,c,d,u=$(''),p=$(''),m=0,g=!1,h=function(t){if(l==t)return!1;l=t,c=e.getPeer(l);var n="user_bgcolor_"+(c.num||1);return n!=g&&(g&&p.removeClass(g),p.addClass(n),g=n),f(),!0},f=function(){var e=++m;d=c.photo&&angular.copy(c.photo.photo_small);var t=void 0!==d;if(t){var n=a.getCachedFile(c.photo.photo_small);if(n)return p.remove(),void u.prependTo(s).attr("src",i.getUrl(n,"image/jpeg"))}p.attr("data-content",c.initials||"").prependTo(s),u.remove(),t&&a.downloadSmallFile(c.photo.photo_small).then(function(t){e==m&&(p.remove(),u.prependTo(s).attr("src",i.getUrl(t,"image/jpeg")))},function(e){console.log("Download image failed",e,c.photo.photo_small,s[0])})};"A"!=s[0].tagName||r.noOpen||s.on("click",function(e){l>0?t.openUser(l,r.userOverride&&o.$eval(r.userOverride)):n.openChat(-l)}),o.$watch(r.myPeerPhotolink,h),h(o.$eval(r.myPeerPhotolink)),r.watch&&(o.$on("user_update",function(e,t){l==t&&(angular.equals(c.photo&&c.photo.photo_small,d)||f())}),o.$on("chat_update",function(e,t){l==-t&&(angular.equals(c.photo&&c.photo.photo_small,d)||f())}))}return{link:o}}]).directive("myAudioPlayer",["$timeout","$q","Storage","AppDocsManager","AppMessagesManager","ErrorService",function(e,t,n,a,i,o){function s(e){return e!==l&&(l&&l.pause(),void(l=e))}function r(e,t,r){a.updateDocDownloaded(e.audio.id),e.volume=c,e.mediaPlayer={},e.download=function(){a.saveDocFile(e.audio.id)},e.togglePlay=function(){if(e.audio.url)s(e.mediaPlayer.player),e.mediaPlayer.player.playPause();else{if(e.audio.progress&&e.audio.progress.enabled)return;a.downloadDoc(e.audio.id).then(function(){onContentLoaded(function(){var n=$("audio",t)[0]||t[0];if(n){var a=!1,r=function(e){a||e.target&&e.target.error&&e.target.error.code!=e.target.error.MEDIA_ERR_DECODE&&e.target.error.code!=e.target.error.MEDIA_ERR_SRC_NOT_SUPPORTED||(a=!0,o.show({error:{type:"MEDIA_TYPE_NOT_SUPPORTED",originalError:e.target&&e.target.error}}))};n.addEventListener("error",r,!0),e.$on("$destroy",function(){a=!0,n.removeEventListener("error",r)})}setTimeout(function(){s(e.mediaPlayer.player),e.mediaPlayer.player.setVolume(c),e.mediaPlayer.player.play(),e.message&&!e.message.pFlags.out&&e.message.pFlags.media_unread&&i.readMessages([e.message.mid])},300)})})}},e.seek=function(t){e.mediaPlayer&&e.mediaPlayer.player?e.mediaPlayer.player.seek(t):e.togglePlay()},e.setVolume=function(t){c=t,n.set({audio_volume:t}),e.mediaPlayer&&e.mediaPlayer.player&&e.mediaPlayer.player.setVolume(t)}}var l=!1,c=.5;n.get("audio_volume").then(function(e){e>0&&e<=1&&(c=e)});return{link:r,scope:{audio:"=",message:"="},templateUrl:templateUrl("audio_player")}}]).directive("mySlider",["$window",function(e){function t(t,n,a){var i=$(".tg_slider_wrap",n),o=$(".tg_slider_track_fill",n),s=$(".tg_slider_thumb",n),r=i.width(),l=Math.ceil(s.width()),c=a.sliderModel,d=a.sliderOnchange,u=0,p=1,m=!1,g=!1;a.sliderMin&&t.$watch(a.sliderMin,function(e){u=e||0}),a.sliderMax&&t.$watch(a.sliderMax,function(e){p=e||1});var h=function(e){e=e.originalEvent||e;var n=(e.touches&&e.touches[0]?e.touches[0].pageX:e.pageX)-g;return n=Math.min(r,Math.max(0,n)),m=u+n/r*(p-u),d?t.$eval(d,{value:m}):t.$eval(c+"="+m),s.css("left",Math.max(0,n-l)),o.css("width",n),cancelEvent(e)},f=function(){$(e).off("mousemove touchmove",h),$(e).off("mouseup touchend touchcancel touchleave",f)};t.$watch(c,function(e){if(e!=m&&void 0!==e){var t=Math.max(0,(e-u)/(p-u));if(r){var n=Math.ceil(r*t);n=Math.min(r,Math.max(0,n)),s.css("left",Math.max(0,n-l)),o.css("width",n)}else s.css("left",100*t+"%"),o.css("width",100*t+"%");m=!1}}),n.on("dragstart selectstart",cancelEvent),n.on("mousedown touchstart",function(a){if(!r&&(r=i.width(),!r))return console.error("empty width"),cancelEvent(a);f(),a=a.originalEvent||a;var _;if(a.touches&&a.touches[0])g=n.position().left,_=a.touches[0].pageX-g;else if(void 0!==a.offsetX)_=a.offsetX,g=a.pageX-_;else{if(void 0===a.layerX)return cancelEvent(a);_=a.layerX,g=a.pageX-_}return m=u+_/r*(p-u),d?t.$eval(d,{value:m}):t.$eval(c+"="+m),s.css("left",Math.max(0,_-l)),o.css("width",_),$(e).on("mousemove touchmove",h),$(e).on("mouseup touchend touchcancel touchleave",f),cancelEvent(a)})}return{link:t,templateUrl:templateUrl("slider")}}]).directive("myLabeledInput",function(){function e(e,t,n){var a=$(".md-input:first",t),i=($(".md-input-label:first",t),a[0]&&"SPAN"==a[0].tagName),o=!1,s=function(){i?t.toggleClass("md-input-has-value",a.html().length>0):t.toggleClass("md-input-has-value",o||a.val().length>0)};s(),onContentLoaded(function(){s(),setZeroTimeout(function(){t.addClass("md-input-animated")})}),i||a.on("blur focus change",function(e){o="focus"==e.type,t.toggleClass("md-input-focused",o),s()}),e.$on("value_updated",function(){setZeroTimeout(function(){s()})})}return{link:e}}).directive("myCopyField",["toaster","_",function(e,t){function n(e,t,n){t.attr("readonly","true"),t[0].readonly=!0,t.on("click",function(){this.select()}),e.selectEvent&&e.$on(e.selectEvent,function(){setTimeout(function(){t[0].focus(),t[0].select()},100)})}return{scope:{selectEvent:"=myCopyField"},link:n}}]).directive("myCopyLink",["$compile","$timeout","_",function(e,t,n){function a(a,i,o){i.attr("tooltip","{{ttLabel}}"),i.removeAttr("my-copy-link"),i.removeAttr("data-my-copy-link");var s=!1,r=function(){t.cancel(s),s=!1,a.ttLabel=n("conversations_modal_share_url_copy_raw")};r(),e(i)(a);var l=new Clipboard(i[0]);l.on("success",function(e){t.cancel(s),a.$apply(function(){a.ttLabel=n("clipboard_copied_raw")}),s=t(r,2e3)}),l.on("error",function(e){t.cancel(s);var i=Config.Navigator.osX?"clipboard_press_cmd_c":"clipboard_press_ctrl_c";a.$apply(function(){a.ttLabel=n(i+"_raw")}),s=t(r,5e3)}),a.$on("$destroy",function(){l.destroy()})}return{restrict:"A",replace:!1,terminal:!0,priority:1e3,link:a}}]).directive("mySubmitOnEnter",function(){function e(e,t,n){t.on("keydown",function(e){if(13==e.keyCode)return t.trigger("submit"),cancelEvent(e)})}return{link:e}}).directive("myArcProgress",function(){function e(e,t,n){t=Math.max(0,Math.min(t,1));var a=.2;t=a+(1-a)*t,e.css({strokeDasharray:t*n+", "+(1-t)*n})}var t=' ',n=0;return{scope:{progress:"=myArcProgress"},link:function(a,i,o){var s=!o.myArcProgress,r=o.width||i.width()||40,l=o.stroke||r/2*.14,c=r/2,d=c-l/2,u=++n;i.html(t.replace("%id%",u)).addClass("progress-arc-wrap").addClass(s?"progress-arc-intermediate":"progress-arc-percent").css({width:r,height:r}),$(i[0].firstChild).attr("width",r).attr("height",r);var p=$(".progress-arc-bar",i);p.attr("cx",c).attr("cy",c).attr("r",d).css({strokeWidth:l});var m=2*Math.PI*d;s?(e(p,.3,m),p.css({stroke:"url(#grad_intermediate"+u+")"})):a.$watch("progress",function(t){e(p,t/100,m)})}}}).directive("myScrollToOn",function(){return{link:function(e,t,n){var a=n.myScrollToOn,i=function(){onContentLoaded(function(){$("html, body").animate({scrollTop:t.offset().top},200)})};"$init"==a?i():e.$on(a,i)}}}).directive("myComposerDropdown",function(){return{templateUrl:templateUrl("composer_dropdown")}}).directive("myEmojiSuggestions",function(){return{link:function(e,t,n){e.$watchCollection("emojiCodes",function(e){var n,a,i,o,s,r,l,c,d=[],u=Config.Mobile?26:20,p=Math.min(5,e.length);for(r=0;r:'+encodeEntities(a[1][0])+":"));t.html(d.join("")),console.log(dT(),"emoji done")})}}}).directive("myInlineResults",["AppPhotosManager","ExternalResourcesManager","AppDocsManager",function(e,t,n){return{templateUrl:templateUrl("inline_results"),scope:{botResults:"=myInlineResults"},link:function(a,i,o){a.$watch("botResults.results",function(a){angular.forEach(a,function(a){if(a.thumb_url&&!a.thumbUrl&&t.downloadByURL(a.thumb_url).then(function(e){a.thumbUrl=e}),"gif"==a.type&&a.content_url&&!a.contentUrl&&t.downloadByURL(a.content_url).then(function(e){a.contentUrl=e}),"gif"!=a.type&&"sticker"!=a.type||!a.document||n.downloadDoc(a.document.id),"photo"==a.type&&a.photo){var i=e.choosePhotoSize(a.photo,a.thumbW,a.thumbH),o=calcImageInBox(i.w,i.h,a.thumbW,a.thumbH);a.thumb={width:o.w,height:o.h,location:i.location,size:i.size}}if("game"==a.type&&a.photo){var i=e.choosePhotoSize(a.photo,100,100);a.thumb={location:i.location,size:i.size}}})})}}}]).directive("myGameCommunication",["$window",function(e){function t(t,n,a){onContentLoaded(function(){var a=$("iframe, webview",n)[0],i=a.contentWindow,o=function(e){if(e=e.originalEvent||e,!e.source||e.source==i){var n=e.data;try{var a=JSON.parse(n)}catch(o){return}a&&a.eventType&&t.$emit("game_frame_event",a)}};$(e).on("message",o),t.$on("$destroy",function(){$(e).off("message",o)})})}return{link:t}}]).directive("myEmojiImage",["RichTextProcessor",function(e){function t(t,n,a){var i=a.myEmojiImage,o=e.wrapRichText(i,{noLinks:!0,noLinebreaks:!0});n.html(o.valueOf())}return{link:t}}]).directive("myExternalEmbed",function(){function e(e,r,l){var c=e.$eval(l.myExternalEmbed);if(c){var d="",u=!1;switch(c[0]){case"youtube":var p=c[1];d='
    <'+s+' type="text/html" frameborder="0" src="https://www.youtube.com/embed/'+p+'?autoplay=0&controls=2" webkitallowfullscreen mozallowfullscreen allowfullscreen>
    ";break;case"vimeo":var p=c[1];d='
    <'+s+' type="text/html" frameborder="0" src="https://player.vimeo.com/video/'+p+'?title=0&byline=0&portrait=0" webkitallowfullscreen mozallowfullscreen allowfullscreen>
    ";break;case"instagram":var m=c[1];d='
    <'+s+' type="text/html" frameborder="0" src="https://instagram.com/p/'+m+'/embed/">
    ";break;case"vine":var g=c[1];d='
    <'+s+' type="text/html" frameborder="0" src="https://vine.co/v/'+g+'/embed/simple">
    ";break;case"soundcloud":var h=c[1];d='
    <'+s+' type="text/html" frameborder="0" src="https://w.soundcloud.com/player/?url='+encodeEntities(encodeURIComponent(h))+'&auto_play=false&hide_related=true&show_comments=false&show_user=true&show_reposts=false&visual=true">
    ";break;case"spotify":var f=c[1];d='
    <'+s+' type="text/html" frameborder="0" allowtransparency="true" src="https://embed.spotify.com/?uri=spotify:'+encodeEntities(encodeURIComponent(f))+'">
    ";break;case"twitter":d='
    ',u=function(){t?window.twttr&&twttr.widgets.load(r[0]):(t=!0,$("