$=e.controller,"@"==$&&($=h[e.name]),n=v($,i),x[e.name]=n,X||m.data("$"+e.name+"Controller",n),e.controllerAs&&(i.$scope[e.controllerAs]=n)}),_=0,b=u.length;b>_;_++)try{w=u[_],w(w.isolateScope?S:t,m,h,w.require&&g(w.require,m,x),M)}catch(T){c(T,V(m))}varE=t;for(R&&(R.template||null===R.templateUrl)&&(E=S),e&&e(E,s.childNodes,n,p),_=d.length-1;_>=0;_--)try{w=d[_],w(w.isolateScope?S:t,m,h,w.require&&g(w.require,m,x),M)}catch(T){c(T,V(m))}}f=f||{};for(varw,$,x,C,k,E,D=-Number.MAX_VALUE,U=f.controllerDirectives,R=f.newIsolateScopeDirective,q=f.templateDirective,z=f.nonTlbTranscludeDirective,G=!1,X=!1,Z=o.$$element=ui(r),J=p,et=s,tt=0,nt=e.length;nt>tt;tt++){$=e[tt];varrt=$.$$start,at=$.$$end;if(rt&&(Z=P(r,rt,at)),C=n,D>$.priority)break;if((E=$.scope)&&(w=w||$,$.templateUrl||(W("new/isolated scope",R,$,Z),_(E)&&(R=$))),x=$.name,!$.templateUrl&&$.controller&&(E=$.controller,U=U||{},W("'"+x+"' controller",U[x],$,Z),U[x]=$),(E=$.transclude)&&(G=!0,$.$$tlb||(W("transclusion",z,$,Z),z=$),"element"==E?(X=!0,D=$.priority,C=P(r,rt,at),Z=o.$$element=ui(t.createComment(" "+x+": "+o[x]+" ")),r=Z[0],K(l,ui(F(C)),r),et=T(C,s,D,J&&J.name,{nonTlbTranscludeDirective:z})):(C=ui(dt(r)).contents(),Z.empty(),et=T(C,s))),$.template)if(W("template",q,$,Z),q=$,E=M($.template)?$.template(Z,o):$.template,E=it(E),$.replace){if(J=$,C=ui("<div>"+wi(E)+"</div>").contents(),r=C[0],1!=C.length||1!==r.nodeType)throwji("tplrt","Template for directive '{0}' must have exactly one root element. {1}",x,"");K(l,Z,r);varot={$attr:{}},st=I(r,[],ot),ct=e.splice(tt+1,e.length-(tt+1));R&&O(st),e=e.concat(st).concat(ct),j(o,ot),nt=e.length}elseZ.html(E);if($.templateUrl)W("template",q,$,Z),q=$,$.replace&&(J=$),m=H(e.splice(tt,e.length-tt),Z,o,l,et,u,d,{controllerDirectives:U,newIsolateScopeDirective:R,templateDirective:q,nonTlbTranscludeDirective:z}),nt=e.length;elseif($.compile)try{k=$.compile(Z,o,et),M(k)?h(null,k,rt,at):k&&h(k.pre,k.post,rt,at)}catch(lt){c(lt,V(Z))}$.terminal&&(m.terminal=!0,D=Math.max(D,$.priority))}returnm.scope=w&&w.scope===!0,m.transclude=G&&et,m}functionO(e){for(vart=0,n=e.length;n>t;t++)e[t]=f(e[t],{$$isolateScope:!0})}functionq(t,i,a,s,l,p,u){if(i===l)returnnull;vard=null;if(r.hasOwnProperty(i))for(varh,g=e.get(i+o),m=0,y=g.length;y>m;m++)try{h=g[m],(s===n||s>h.priority)&&-1!=h.restrict.indexOf(a)&&(p&&(h=f(h,{$$start:p,$$end:u})),t.push(h),d=h)}catch(v){c(v)}returnd}functionj(e,t){varn=t.$attr,i=e.$attr,r=e.$$element;a(e,function(i,r){"$"!=r.charAt(0)&&(t[r]&&(i+=("style"===r?";":" ")+t[r]),e.$set(r,i,!0,n[r]))}),a(t,function(t,a){"class"==a?(A(r,t),e["class"]=(e["class"]?e["class"]+" ":"")+t):"style"==a?(r.attr("style",r.attr("style")+";"+t),e.style=(e.style?e.style+";":"")+t):"$"==a.charAt(0)||e.hasOwnProperty(a)||(e[a]=t,i[a]=n[a])})}functionH(e,t,n,i,r,o,s,c){varl,p,f=[],g=t[0],m=e.shift(),y=u({},m,{templateUrl:null,transclude:null,replace:null,$$originalDirective:m}),v=M(m.templateUrl)?m.templateUrl(t,n):m.templateUrl;returnt.empty(),d.get(x.getTrustedResourceUrl(v),{cache:h}).success(function(u){vard,h,b,w;if(u=it(u),m.replace){if(b=ui("<div>"+wi(u)+"</div>").contents(),d=b[0],1!=b.length||1!==d.nodeType)throwji("tplrt","Template for directive '{0}' must have exactly one root element. {1}",m.name,v);h={$attr:{}},K(i,t,d);var$=I(d,[],h);_(m.scope)&&O($),e=$.concat(e),j(n,h)}elsed=g,t.html(u);for(e.unshift(y),l=U(e,d,n,r,t,m,o,s,c),a(i,function(e,n){e==d&&(i[n]=t[0])}),p=E(t[0].childNodes,r);f.length;){varS=f.shift(),M=f.shift(),x=f.shift(),C=f.shift(),k=t[0];M!==g&&(k=dt(d),K(x,ui(M),k)),w=l.transclude?D(S,l.transclude):C,l(p,S,k,i,w)}f=null}).error(function(e,t,n,i){throwji("tpload","Failed to load template: {0}",i.url)}),function(e,t,n,i,r){f?(f.push(t),f.push(n),f.push(i),f.push(r)):l(p,t,n,i,r)}}functionz(e,t){varn=t.priority-e.priority;return0!==n?n:e.name!==t.name?e.name<t.name?-1:1:e.index-t.index}functionW(e,t,n,i){if(t)throwji("multidir","Multiple directives [{0}, {1}] asking for {2} on: {3}",t.name,n.name,e,V(i))}functionG(e,t){varn=i(t,!0);n&&e.push({priority:0,compile:m(function(e,t){vari=t
if(e===ir.RESOURCE_URL){if(a(t))returnt;thrownr("insecurl","Blocked loading resource from url not allowed by $sceDelegate policy. URL: {0}",t.toString())}if(e===ir.HTML)returnp(t);thrownr("unsafe","Attempting to use an unsafe value in a safe context.")}varp=function(){thrownr("unsafe","Attempting to use an unsafe value in a safe context.")};i.has("$sanitize")&&(p=i.get("$sanitize"));varu=o(),d={};returnd[ir.HTML]=o(u),d[ir.CSS]=o(u),d[ir.URL]=o(u),d[ir.JS]=o(u),d[ir.RESOURCE_URL]=o(d[ir.URL]),{trustAs:s,getTrusted:l,valueOf:c}}]}functionEn(){vare=!0;this.enabled=function(t){returnarguments.length&&(e=!!t),e},this.$get=["$parse","$sniffer","$sceDelegate",function(t,n,i){if(e&&n.msie&&n.msieDocumentMode<8)thrownr("iequirks","Strict Contextual Escaping does not support Internet Explorer version < 9 in quirks mode. You can fix this by adding the text <!doctype html> to the top of your HTML document. See http://docs.angularjs.org/api/ng.$sce for more information.");varr=N(ir);r.isEnabled=function(){returne},r.trustAs=i.trustAs,r.getTrusted=i.getTrusted,r.valueOf=i.valueOf,e||(r.trustAs=r.getTrusted=function(e,t){returnt},r.valueOf=g),r.parseAs=function(e,n){vari=t(n);returni.literal&&i.constant?i:function(t,n){returnr.getTrusted(e,i(t,n))}};varo=r.parseAs,s=r.getTrusted,c=r.trustAs;returna(ir,function(e,t){varn=oi(t);r[lt("parse_as_"+n)]=function(t){returno(e,t)},r[lt("get_trusted_"+n)]=function(t){returns(e,t)},r[lt("trust_as_"+n)]=function(t){returnc(e,t)}}),r}]}functionDn(){this.$get=["$window","$document",function(e,t){varn,i,r={},a=d((/android (\d+)/.exec(oi((e.navigator||{}).userAgent))||[])[1]),o=/Boxee/i.test((e.navigator||{}).userAgent),s=t[0]||{},c=s.documentMode,l=/^(Moz|webkit|O|ms)(?=[A-Z])/,p=s.body&&s.body.style,u=!1,f=!1;if(p){for(varhinp)if(i=l.exec(h)){n=i[0],n=n.substr(0,1).toUpperCase()+n.substr(1);break}n||(n="WebkitOpacity"inp&&"webkit"),u=!!("transition"inp||n+"Transition"inp),f=!!("animation"inp||n+"Animation"inp),!a||u&&f||(u=b(s.body.style.webkitTransition),f=b(s.body.style.webkitAnimation))}return{history:!(!e.history||!e.history.pushState||4>a||o),hashchange:"onhashchange"ine&&(!c||c>7),hasEvent:function(e){if("input"==e&&9==pi)return!1;if(y(r[e])){vart=s.createElement("div");r[e]="on"+eint}returnr[e]},csp:U(),vendorPrefix:n,transitions:u,animations:f,android:a,msie:pi,msieDocumentMode:c}}]}functionIn(){this.$get=["$rootScope","$browser","$q","$exceptionHandler",function(e,t,n,i){functionr(r,o,s){varc,l=n.defer(),p=l.promise,u=v(s)&&!s;returnc=t.defer(function(){try{l.resolve(r())}catch(t){l.reject(t),i(t)}finally{deletea[p.$$timeoutId]}u||e.$apply()},o),p.$$timeoutId=c,a[c]=l,p}vara={};returnr.cancel=function(e){returne&&e.$$timeoutIdina?(a[e.$$timeoutId].reject("canceled"),deletea[e.$$timeoutId],t.defer.cancel(e.$$timeoutId)):!1},r}]}functionPn(e){vart=e;returnpi&&(rr.setAttribute("href",t),t=rr.href),rr.setAttribute("href",t),{href:rr.href,protocol:rr.protocol?rr.protocol.replace(/:$/,""):"",host:rr.host,search:rr.search?rr.search.replace(/^\?/,""):"",hash:rr.hash?rr.hash.replace(/^#/,""):"",hostname:rr.hostname,port:rr.port,pathname:"/"===rr.pathname.charAt(0)?rr.pathname:"/"+rr.pathname}}functionNn(e){vart=b(e)?Pn(e):e;returnt.protocol===ar.protocol&&t.host===ar.host}functionLn(){this.$get=m(e)}functionBn(e){functiont(i,r){if(_(i)){varo={};returna(i,function(e,n){o[n]=t(n,e)}),o}returne.factory(i+n,r)}varn="Filter";this.register=t,this.$get=["$injector",function(e){returnfunction(t){returne.get(t+n)}}],t("currency",On),t("date",Wn),t("filter",Un),t("json",Gn),t("limitTo",Xn),t("lowercase",pr),t("number",Fn),t("orderBy",Zn),t("uppercase",ur)}functionUn(){returnfunction(e,t,n){if(!S(e))returne;vari=typeofn,r=[];r.check=function(e){for(vart=0;t<r.length;t++)if(!r[t](e))return!1;return!0},"function"!==i&&(n="boolean"===i&&n?function(e,t){return_i.equals(e,t)}:function(e,t){returnt=(""+t).toLowerCase(),(""+e).toLowerCase().indexOf(t)>-1});vara=function(e,t){if("string"==typeoft&&"!"===t.charAt(0))return!a(e,t.substr(1));
})}}}),fr={};a(Pi,function(e,t){if("multiple"!=e){varn=Ut("ng-"+t);fr[n]=function(){return{priority:100,link:function(e,i,r){e.$watch(r[n],function(e){r.$set(t,!!e)})}}}}}),a(["src","srcset","href"],function(e){vart=Ut("ng-"+e);fr[t]=function(){return{priority:99,link:function(n,i,r){r.$observe(t,function(t){t&&(r.$set(e,t),pi&&i.prop(e,r[e]))})}}}});varhr={$addControl:h,$removeControl:h,$setValidity:h,$setDirty:h,$setPristine:h};Yn.$inject=["$element","$attrs","$scope"];vargr=function(e){return["$timeout",function(t){vari={name:"form",restrict:e?"EAC":"E",controller:Yn,compile:function(){return{pre:function(e,i,r,a){if(!r.action){varo=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1};ki(i[0],"submit",o),i.on("$destroy",function(){t(function(){Ti(i[0],"submit",o)},0,!1)})}vars=i.parent().controller("form"),c=r.name||r.ngForm;c&&mn(e,c,a,c),s&&i.on("$destroy",function(){s.$removeControl(a),c&&mn(e,c,n,c),u(a,hr)})}}}};returni}]},mr=gr(),yr=gr(!0),vr=/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/,_r=/^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}$/,br=/^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/,wr={text:Jn,number:ei,url:ti,email:ni,radio:ii,checkbox:ri,hidden:h,button:h,submit:h,reset:h},$r=["$browser","$sniffer",function(e,t){return{restrict:"E",require:"?ngModel",link:function(n,i,r,a){a&&(wr[oi(r.type)]||wr.text)(n,i,r,a,t,e)}}}],Sr="ng-valid",Mr="ng-invalid",xr="ng-pristine",Cr="ng-dirty",kr=["$scope","$exceptionHandler","$attrs","$element","$parse",function(e,t,n,r,o){functions(e,t){t=t?"-"+J(t,"-"):"",r.removeClass((e?Mr:Sr)+t).addClass((e?Sr:Mr)+t)}this.$viewValue=Number.NaN,this.$modelValue=Number.NaN,this.$parsers=[],this.$formatters=[],this.$viewChangeListeners=[],this.$pristine=!0,this.$dirty=!1,this.$valid=!0,this.$invalid=!1,this.$name=n.name;varc=o(n.ngModel),l=c.assign;if(!l)throwi("ngModel")("nonassign","Expression '{0}' is non-assignable. Element: {1}",n.ngModel,V(r));this.$render=h,this.$isEmpty=function(e){returny(e)||""===e||null===e||e!==e};varp=r.inheritedData("$formController")||hr,u=0,d=this.$error={};r.addClass(xr),s(!0),this.$setValidity=function(e,t){d[e]!==!t&&(t?(d[e]&&u--,u||(s(!0),this.$valid=!0,this.$invalid=!1)):(s(!1),this.$invalid=!0,this.$valid=!1,u++),d[e]=!t,s(t,e),p.$setValidity(e,t,this))},this.$setPristine=function(){this.$dirty=!1,this.$pristine=!0,r.removeClass(Cr).addClass(xr)},this.$setViewValue=function(n){this.$viewValue=n,this.$pristine&&(this.$dirty=!0,this.$pristine=!1,r.removeClass(xr).addClass(Cr),p.$setDirty()),a(this.$parsers,function(e){n=e(n)}),this.$modelValue!==n&&(this.$modelValue=n,l(e,n),a(this.$viewChangeListeners,function(e){try{e()}catch(n){t(n)}}))};varf=this;e.$watch(function(){vart=c(e);if(f.$modelValue!==t){varn=f.$formatters,i=n.length;for(f.$modelValue=t;i--;)t=n[i](t);f.$viewValue!==t&&(f.$viewValue=t,f.$render())}returnt})}],Tr=function(){return{require:["ngModel","^?form"],controller:kr,link:function(e,t,n,i){varr=i[0],a=i[1]||hr;a.$addControl(r),e.$on("$destroy",function(){a.$removeControl(r)})}}},Ar=m({require:"ngModel",link:function(e,t,n,i){i.$viewChangeListeners.push(function(){e.$eval(n.ngChange)})}}),Er=function(){return{require:"?ngModel",link:function(e,t,n,i){if(i){n.required=!0;varr=function(e){returnn.required&&i.$isEmpty(e)?voidi.$setValidity("required",!1):(i.$setValidity("required",!0),e)};i.$formatters.push(r),i.$parsers.unshift(r),n.$observe("required",function(){r(i.$viewValue)})}}}},Dr=function(){return{require:"ngModel",link:function(e,t,i,r){varo=/\/(.*)\//.exec(i.ngList),s=o&&newRegExp(o[1])||i.ngList||",",c=function(e){if(!y(e)){vart=[];returne&&a(e.split(s),function(e){e&&t.push(wi(e))}),t}};r.$parsers.push(c),r.$formatters.push(function(e){returnS(e)?e.join(", "):n}),r.$isEmpty=function(e){return!e||!e.length}}}},Ir=/^(true|false|\d+)$/,Pr=function(){return{priority:100,compile:function(e,t){returnIr.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)})}}}},Nr=Kn(functio
break;case"new_session_created":this.ackMessage(n),this.processMessageAck(e.first_msg_id),this.applyServerSalt(e.server_salt),this.onSessionCreate(i,n);break;case"msgs_ack":for(vara=0;a<e.msg_ids.length;a++)this.processMessageAck(e.msg_ids[a]);break;case"msg_detailed_info":if(!this.sentMessages[e.msg_id]){this.ackMessage(e.answer_msg_id);break}case"msg_new_detailed_info":this.reqResendMessage(e.answer_msg_id);break;case"rpc_result":this.ackMessage(n);varc=e.req_msg_id,o=this.sentMessages[c];if(this.processMessageAck(c),o){varl=o.deferred;if("rpc_error"==e.result._){varp=this.processError(e.result);console.log(dT(),"Rpc error",p),l&&l.reject(p)}elsel&&(window._debugMode?console.log(dT(),"Rpc response",e.result):console.log(dT(),"Rpc response",e.result._),o.deferred.resolve(e.result)),o.isAPI&&(this.connectionInited=!0);deletethis.sentMessages[c]}break;default:this.ackMessage(n),d&&d(e)}},{getNetworker:function(e,t,n,i){returnnewu(e,t,n,i)},setUpdatesProcessor:function(e){d=e}}}]).factory("MtpApiManager",["AppConfigManager","MtpAuthorizer","MtpNetworkerFactory","ErrorService","$q",function(e,t,n,i,r){functiona(t,n){e.set({dc:t,user_auth:angular.extend({dcID:t},n)}),h=t}functiono(){returnc("auth.logOut").then(function(){e.remove("dc","user_auth"),h=!1},function(t){e.remove("dc","user_auth"),t&&401!=t.code&&e.remove("dc"+h+"_auth_key"),h=!1,t.handled=!0})}functions(i,a){a=a||{};varo=a.fileUpload||a.fileDownload?d:u;if(!i)thrownewException("get Networker without dcID");if(void0!==o[i])returnr.when(o[i]);vars="dc"+i+"_auth_key",c="dc"+i+"_server_salt";returne.get(s,c).then(function(l){if(void0!==o[i])returno[i];varp=l[0],u=l[1];if(p&&512==p.length){vard=bytesFromHex(p),f=bytesFromHex(u);returno[i]=n.getNetworker(i,d,f,a)}returna.createNetworker?t.auth(i).then(function(t){varr={};returnr[s]=bytesToHex(t.authKey),r[c]=bytesToHex(t.serverSalt),e.set(r),o[i]=n.getNetworker(i,t.authKey,t.serverSalt,a)},function(e){returnconsole.log("Get networker error",e,e.stack),r.reject(e)}):r.reject({type:"AUTH_KEY_EMPTY",code:401})})}functionc(t,n,a){a=a||{};varo,l,p=r.defer(),u=function(e){e?angular.isObject(e)||(e={message:e}):e={type:"ERROR_EMPTY"},p.reject(e),a.noErrorBox||(e.input=t,e.stack=e.stack||g,setTimeout(function(){e.handled||(i.show({error:e}),e.handled=!0)},100))};l=(o=a.dcID)?s(o,a):e.get("dc").then(function(e){returns(o=e||1,a)});vard,g=!1;if(l.then(function(i){return(d=i).wrapApiCall(t,n,a).then(function(e){p.resolve(e)},function(l){if(console.error(dT(),"Error",l.code,l.type,h,o),401==l.code&&h&&o!=h){if(void0===f[o]){varg=r.defer();c("auth.exportAuthorization",{dc_id:o},{noErrorBox:!0}).then(function(e){c("auth.importAuthorization",{id:e.id,bytes:e.bytes},{dcID:o,noErrorBox:!0}).then(function(){g.resolve()},function(e){g.reject(e)})},function(e){g.reject(e)}),f[o]=g.promise}f[o].then(function(){(d=i).wrapApiCall(t,n,a).then(function(e){p.resolve(e)},function(e){u(e)})},function(e){u(e)})}elseif(303==l.code){varm=l.type.match(/^(PHONE_MIGRATE_|NETWORK_MIGRATE_)(\d+)/)[2];m!=o&&(a.dcID?a.dcID=m:e.set({dc:h=m}),s(m,a).then(function(e){e.wrapApiCall(t,n,a).then(function(e){p.resolve(e)},function(e){u(e)})}))}elseu(l)})},function(e){u(e)}),!(g=g||(newError).stack))try{window.unexistingFunction()}catch(m){g=m.stack||""}returnp.promise}functionl(){returne.get("user_auth").then(function(e){returne.id||0})}functionp(){returnh||!1}varu={},d={},f={},h=!1;returne.get("dc").then(function(e){e&&(h=e)}),{getBaseDcID:p,getUserID:l,invokeApi:c,setUserAuth:a,logOut:o}}]).factory("MtpApiFileManager",["MtpApiManager","$q","$window",function(e,t,n){functioni(e,n,i){void0===_[e]&&(_[e]=[],b[e]=0);vara=_[e],o=t.defer();returna.push({cb:n,deferred:o,activeDelta:i}),r(e),o.promise}functionr(e){vart=_[e];if(b[e]>=w||!t||!t.length)return!1;varn=t.shift(),i=n.activeDelta||1;b[e]+=i;$++;n.cb().then(function(t){b[e]-=i,r(e),n.deferred.resolve(t)},function(t){b[e]-=i,r(e),n.deferred.reject(t)})}functiona(){if(h)returnh;if(n.requestFileSystem=n.requestFileSystem||n.webkitRequestFileSystem,!n.requestF
return[]}functionU(e){varn,i,r=P(e),s=a.getUser(e.from_id),c=a.getUserPhoto(e.from_id,"User"),l={},p=!1;if(e.message)p=e.message;elseif(e.media&&"messageMediaEmpty"!=e.media._)switch(e.media._){case"messageMediaPhoto":p="Photo";break;case"messageMediaVideo":p="Video";break;case"messageMediaDocument":p="Document";break;case"messageMediaGeo":p="Location";break;case"messageMediaContact":p="Contact";break;default:p="Attachment"}elseif("messageService"==e._)switch(e.action._){case"messageActionChatCreate":p="created the group";break;case"messageActionChatEditTitle":p="changed group name";break;case"messageActionChatEditPhoto":p="changed group photo";break;case"messageActionChatDeletePhoto":p="removed group photo";break;case"messageActionChatAddUser":p="invited user";break;case"messageActionChatDeleteUser":p="kicked user"}r>0?(l.title=(s.first_name||"")+(s.first_name&&s.last_name?" ":"")+(s.last_name||""),i=c,n=a.getUserString(r)):(l.title=(s.first_name||s.last_name||"Somebody")+" @ "+(o.getChat(-r).title||"Unknown chat"),i=o.getChatPhoto(-r,"Group"),n=o.getChatString(-r)),l.onclick=function(){t.$broadcast("history_focus",{peerString:n})},l.message=p,l.image=i.placeholder,l.key="msg"+e.id,l.tag=n,i.location&&!i.location.empty?f.downloadSmallFile(i.location,i.size).then(function(t){l.image=t,e.unread&&g.notify(l)}):g.notify(l)}varO={},F={},R={},q={},j={count:null,dialogs:[]},H={},z={},V={},W=e.when(),G=-1,X=m.createIndex(),Z={query:!1},K={},Y=[];returng.start(),t.$on("apiUpdate",function(e,n){switch(n._){case"updateMessageID":z[n.id]=n.random_id;break;case"updateNewMessage":vari=n.message,r=P(i),a=q[r];if(void0!==a){varo=q[r].history[0];if(i.id<=o)return!1}elsea=q[r]={count:null,history:[],pending:[]};C([i]),null!==a.count&&a.count++,a.history.unshift(i.id);varc,l=z[i.id];l&&((c=I(l,i))&&t.$broadcast("history_update",{peerID:r}),deletez[i.id]),c||t.$broadcast("history_append",{peerID:r,messageID:i.id});varp,u=B(r);u.length?(p=u[0],j.dialogs.splice(u[1],1)):p={peerID:r,unread_count:0,top_message:!1},!i.out&&i.unread&&p.unread_count++,p.top_message=i.id,m.indexObject(r,s.getPeerSearchText(r),X),j.dialogs.unshift(p),t.$broadcast("dialogs_update",p),t.idle.isIDLE&&!i.out&&i.unread&&g.getPeerMuted(r).then(function(e){i.unread&&!e&&U(i)});break;case"updateReadMessages":vard,i,f,r,u,p,h={};for(f=0;f<n.messages.length;f++)d=n.messages[f],i=O[d],i&&i.unread&&(i.unread=!1,F[d]&&(F[d].unread=!1),R[d]&&(R[d].unread=!1),r=P(i),i.out||(u=B(r),u&&(h[r]=--u[0].unread_count),g.cancel("msg"+d)));angular.forEach(h,function(e,n){t.$broadcast("dialog_unread",{peerID:n,count:e})});break;case"updateDeleteMessages":vard,i,f,r,u,p,y,h={},v={};for(f=0;f<n.messages.length;f++)d=n.messages[f],i=O[d],i&&(r=P(i),y=v[r]||(v[r]={count:0,unread:0,msgs:{}}),!i.out&&i.unread&&(y.unread++,g.cancel("msg"+d)),y.count++,y.msgs[d]=!0,F[d]&&(F[d].DELETED=!0,deleteF[d]),R[d]&&(R[d].DELETED=!0,deleteR[d]),i.DELETED=!0,deleteO[d]);angular.forEach(v,function(e,n){vari=B(n);i&&e.unread&&(i[0].unread_count-=e.unread,t.$broadcast("dialog_unread",{peerID:n,count:i[0].unread_count}));varr=q[n];if(void0!==r){for(vara=[],o=[],s=0;s<r.history.length;s++)e.msgs[r.history[s]]||a.push(r.history[s]);r.history=a;for(vars=0;s<r.pending.length;s++)e.msgs[r.pending[s]]||o.push(r.pending[s]);r.pending=o,t.$broadcast("history_delete",{peerID:n,msgs:e.msgs})}})}}),{getDialogs:y,getHistory:_,getSearch:b,getMessage:w,readHistory:M,flushHistory:x,deleteMessages:$,saveMessages:C,sendText:k,sendFile:T,sendOther:A,forwardMessages:E,getMessagePeer:P,wrapForDialog:N,wrapForHistory:L}}]).service("AppPhotosManager",["$modal","$window","$rootScope","MtpApiFileManager","AppUsersManager",function(e,t,n,i,r){functiona(e){u[e.id]=e,angular.forEach(e.sizes,function(e){"photoCachedSize"==e._&&(i.saveSmallFile(e.location,e.bytes),e.size=e.bytes.length,deletee.bytes,e._="photoSize")})}functiono(e,t,n){vari={_:"photoSizeEmpty"},r=16777215;returnangular.forEach(e.sizes,function(e){vara=Math.abs(e.w*e.h-t*n);r>a&&(i=e,r=a)}),i}functions(e){vart=angular.copy(u[e])||{_:"photoEmpty"}