From 3dabc2f599a7f2afcc94c68368d9c86d79958d8b Mon Sep 17 00:00:00 2001 From: Igor Zhukov Date: Thu, 19 Jan 2017 19:11:06 +0300 Subject: [PATCH] Update 2017-01-19T16:10:59.863Z --- css/app.css | 2 +- css/badbrowser.css | 2 +- css/desktop.css | 36 +++++++++++++++++++- img/icons/IconsetW.png | Bin 9035 -> 13473 bytes img/icons/IconsetW_2x.png | Bin 18681 -> 28956 bytes js/app.js | 14 ++++---- js/locales/de-de.json | 7 ++-- js/locales/en-us.json | 2 -- js/locales/es-es.json | 9 +++-- js/locales/it-it.json | 7 ++-- js/locales/nl-nl.json | 7 ++-- js/locales/pt-br.json | 7 ++-- js/locales/ru-ru.json | 7 ++-- manifest.json | 3 -- manifest.webapp.json | 69 ++++++++++++++++++++++++++++++++++++++ service_worker.js | 2 +- webogram.appcache | 2 +- 17 files changed, 134 insertions(+), 42 deletions(-) create mode 100644 manifest.webapp.json diff --git a/css/app.css b/css/app.css index 1758f668..d19bde09 100644 --- a/css/app.css +++ b/css/app.css @@ -2001,7 +2001,7 @@ a.md_modal_list_peer_name{color:inherit} .inactive_actions{margin-top:15px} @media print{body,html{background:#fff} body .im_page_wrap{border:0;box-shadow:none;overflow:visible} -body .im_bottom_panel_wrap,body .im_dialogs_col_wrap,body .tg_head_logo_wrap,body .tg_head_msgs_edit_btn,body .tg_head_peer_dropdown,body .tg_head_peer_return_btn{display:none} +body .im_bottom_panel_wrap,body .im_dialogs_col_wrap,body .tg_head_logo_wrap,body .tg_head_peer_dropdown,body .tg_head_peer_return_btn,body .tg_head_peer_search_btn{display:none} body .im_history_wrap{height:auto!important} body .nano-pane{display:none} body .nano>.nano-content{position:static} diff --git a/css/badbrowser.css b/css/badbrowser.css index 93d0318a..c0e9a8e1 100644 --- a/css/badbrowser.css +++ b/css/badbrowser.css @@ -1954,7 +1954,7 @@ a.md_modal_list_peer_name{color:inherit} .inactive_actions{margin-top:15px} @media print{body,html{background:#fff} body .im_page_wrap{border:0;box-shadow:none;overflow:visible} -body .im_bottom_panel_wrap,body .im_dialogs_col_wrap,body .tg_head_logo_wrap,body .tg_head_msgs_edit_btn,body .tg_head_peer_dropdown,body .tg_head_peer_return_btn{display:none} +body .im_bottom_panel_wrap,body .im_dialogs_col_wrap,body .tg_head_logo_wrap,body .tg_head_peer_dropdown,body .tg_head_peer_return_btn,body .tg_head_peer_search_btn{display:none} body .im_history_wrap{height:auto!important} body .nano-pane{display:none} body .nano>.nano-content{position:static} diff --git a/css/desktop.css b/css/desktop.css index 65ef2ad6..3e65b7aa 100644 --- a/css/desktop.css +++ b/css/desktop.css @@ -252,8 +252,10 @@ .tg_head_connecting_wrap .tg_head_btn { float: left; } -.tg_head_msgs_edit_btn { +.tg_head_peer_search_btn { float: right; + padding-top: 15px; + padding-bottom: 15px; } .tg_head_peer_dropdown { float: right; @@ -265,6 +267,9 @@ max-width: 100%; border-radius: 0; padding: 9px 0; + float: none; + right: 0; + left: auto; margin: -1px 0 0 0; border: 1px solid rgba(15, 60, 96, 0.2); -webkit-box-shadow: 0px 1px 3px 0px rgba(60, 75, 87, 0.27); @@ -323,6 +328,35 @@ float: left; font-weight: bold; } +.icon-search { + display: inline-block; + width: 17px; + height: 17px; + background-image: url(../img/icons/IconsetW.png); + background-repeat: no-repeat; + background-position: -12px -1037px; + vertical-align: middle; + opacity: 0.9; +} +.is_2x .icon-search { + background-image: url(../img/icons/IconsetW_2x.png); + background-size: 42px 1171px; +} +.tg_head_peer_media_dropdown .dropdown-toggle { + display: block; +} +.tg_head_peer_media_dropdown .dropdown-toggle .icon-bar { + display: block; + background-color: #d7e5f0; + width: 4px; + height: 4px; + border-radius: 2px; + margin-left: 3px; + margin-right: 3px; +} +.tg_head_peer_media_dropdown .dropdown-toggle .icon-bar + .icon-bar { + margin-top: 2px; +} .icon-filter-photos, .icon-filter-video, .icon-filter-documents, diff --git a/img/icons/IconsetW.png b/img/icons/IconsetW.png index 3549e80882229f7c266cae217f90b9b7de43fa3e..dfbe13626a6706d628e4214d644aa296d02d3f4d 100644 GIT binary patch literal 13473 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 literal 9035 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 Q0nKuFy85}Sb4q9e0Fq$Iod5s; diff --git a/js/app.js b/js/app.js index f8d56956..47d7c3c6 100644 --- a/js/app.js +++ b/js/app.js @@ -19,17 +19,17 @@ return!(z(a)&&z(i)||z(s)&&z(r))&&(o(a,r)||o(i,s))}),this.$get=["$$rAF","$rootSco a.prototype.getName=function(){return this.name},a.prototype.getData=function(){return this.data},a.prototype.G=function(){return this.H},t("Zlib.GunzipMember",a),t("Zlib.GunzipMember.prototype.getName",a.prototype.getName),t("Zlib.GunzipMember.prototype.getData",a.prototype.getData),t("Zlib.GunzipMember.prototype.getMtime",a.prototype.G);var v,y=[];for(v=0;288>v;v++)switch(!0){case 143>=v:y.push([v+48,8]);break;case 255>=v:y.push([v-144+400,9]);break;case 279>=v:y.push([v-256+0,7]);break;case 287>=v:y.push([v-280+192,8]);break;default:e("invalid literal: "+v)}var b=function(){function t(t){switch(!0){case 3===t:return[257,t-3,0];case 4===t:return[258,t-4,0];case 5===t:return[259,t-5,0];case 6===t:return[260,t-6,0];case 7===t:return[261,t-7,0];case 8===t:return[262,t-8,0];case 9===t:return[263,t-9,0];case 10===t:return[264,t-10,0];case 12>=t:return[265,t-11,1];case 14>=t:return[266,t-13,1];case 16>=t:return[267,t-15,1];case 18>=t:return[268,t-17,1];case 22>=t:return[269,t-19,2];case 26>=t:return[270,t-23,2];case 30>=t:return[271,t-27,2];case 34>=t:return[272,t-31,2];case 42>=t:return[273,t-35,3];case 50>=t:return[274,t-43,3];case 58>=t:return[275,t-51,3];case 66>=t:return[276,t-59,3];case 82>=t:return[277,t-67,4];case 98>=t:return[278,t-83,4];case 114>=t:return[279,t-99,4];case 130>=t:return[280,t-115,4];case 162>=t:return[281,t-131,5];case 194>=t:return[282,t-163,5];case 226>=t:return[283,t-195,5];case 257>=t:return[284,t-227,5];case 258===t:return[285,t-258,0];default:e("invalid length: "+t)}}var n,a,i=[];for(n=3;258>=n;n++)a=t(n),i[n]=a[2]<<24|a[1]<<16|a[0];return i}();p&&new Uint32Array(b);var w=0,k=1;o.prototype.g=function(){for(;!this.o;){var t=s(this,3);switch(1&t&&(this.o=!0),t>>>=1){case 0:var n=this.input,a=this.c,i=this.b,o=this.a,r=d,c=d,u=d,m=i.length,g=d;switch(this.d=this.f=0,r=n[a++],r===d&&e(Error("invalid uncompressed block header: LEN (first byte)")),c=r,r=n[a++],r===d&&e(Error("invalid uncompressed block header: LEN (second byte)")),c|=r<<8,r=n[a++],r===d&&e(Error("invalid uncompressed block header: NLEN (first byte)")),u=r,r=n[a++],r===d&&e(Error("invalid uncompressed block header: NLEN (second byte)")),u|=r<<8,c===~u&&e(Error("invalid uncompressed block header: length verify")),a+c>n.length&&e(Error("input buffer is broken")),this.k){case w:for(;o+c>i.length;){if(g=m-o,c-=g,p)i.set(n.subarray(a,a+g),o),o+=g,a+=g;else for(;g--;)i[o++]=n[a++];this.a=o,i=this.e(),o=this.a}break;case k:for(;o+c>i.length;)i=this.e({t:2});break;default:e(Error("invalid inflate mode"))}if(p)i.set(n.subarray(a,a+c),o),o+=c,a+=c;else for(;c--;)i[o++]=n[a++];this.c=a,this.a=o,this.b=i;break;case 1:this.l(U,L);break;case 2:l(this);break;default:e(Error("unknown BTYPE: "+t))}}return this.q()};var $,S,C=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],M=p?new Uint16Array(C):C,x=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,258,258],I=p?new Uint16Array(x):x,A=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0],E=p?new Uint8Array(A):A,T=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],D=p?new Uint16Array(T):T,P=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],F=p?new Uint8Array(P):P,N=new(p?Uint8Array:Array)(288);for($=0,S=N.length;$=$?8:255>=$?9:279>=$?7:8;var R,O,U=i(N),B=new(p?Uint8Array:Array)(30);for(R=0,O=B.length;Ri)a>=d&&(this.a=a,n=this.e(),a=this.a),n[a++]=i;else for(o=i-257,c=I[o],0=d&&(this.a=a,n=this.e(),a=this.a);c--;)n[a]=n[a++-l];for(;8<=this.d;)this.d-=8,this.c--;this.a=a},o.prototype.C=function(e,t){var n=this.b,a=this.a;this.r=e;for(var i,o,l,c,d=n.length;256!==(i=r(this,e));)if(256>i)a>=d&&(n=this.e(),d=n.length),n[a++]=i;else for(o=i-257,c=I[o],0d&&(n=this.e(),d=n.length);c--;)n[a]=n[a++-l];for(;8<=this.d;)this.d-=8,this.c--;this.a=a},o.prototype.e=function(){var e,t,n=new(p?Uint8Array:Array)(this.a-32768),a=this.a-32768,i=this.b;if(p)n.set(i.subarray(32768,n.length));else for(e=0,t=n.length;ee;++e)i[e]=i[a+e];return this.a=32768,i},o.prototype.D=function(e){var t,n,a,i,o=this.input.length/this.c+1|0,s=this.input,r=this.b;return e&&("number"==typeof e.t&&(o=e.t),"number"==typeof e.z&&(o+=e.z)),2>o?(n=(s.length-this.c)/this.r[2],i=258*(n/2)|0,a=it&&(this.b.length=t),e=this.b),this.buffer=e},c.prototype.F=function(){return this.s||this.g(),this.m.slice()},c.prototype.g=function(){for(var t=this.input.length;this.c>>0,n(l,d,d)!==f&&e(Error("invalid CRC-32 checksum: 0x"+n(l,d,d).toString(16)+" / 0x"+f.toString(16))),i.L=s=(_[v++]|_[v++]<<8|_[v++]<<16|_[v++]<<24)>>>0,(4294967295&l.length)!==s&&e(Error("invalid input size: "+(4294967295&l.length)+" / "+s)),this.m.push(i),this.c=v}this.s=!0;var y,b,w,k=this.m,$=0,S=0;for(y=0,b=k.length;y=goog.math.Long.TWO_PWR_63_DBL_?goog.math.Long.MAX_VALUE:e<0?goog.math.Long.fromNumber(-e).negate():new goog.math.Long(e%goog.math.Long.TWO_PWR_32_DBL_|0,e/goog.math.Long.TWO_PWR_32_DBL_|0)},goog.math.Long.fromBits=function(e,t){return new goog.math.Long(e,t)},goog.math.Long.fromString=function(e,t){if(0==e.length)throw Error("number format error: empty string");var n=t||10;if(n<2||36=0)throw Error('number format error: interior "-" character: '+e);for(var a=goog.math.Long.fromNumber(Math.pow(n,8)),i=goog.math.Long.ZERO,o=0;o=0?this.low_:goog.math.Long.TWO_PWR_32_DBL_+this.low_},goog.math.Long.prototype.getNumBitsAbs=function(){if(this.isNegative())return this.equals(goog.math.Long.MIN_VALUE)?64:this.negate().getNumBitsAbs();for(var e=0!=this.high_?this.high_:this.low_,t=31;t>0&&0==(e&1<0},goog.math.Long.prototype.greaterThanOrEqual=function(e){return this.compare(e)>=0},goog.math.Long.prototype.compare=function(e){if(this.equals(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&n?1:this.subtract(e).isNegative()?-1:1},goog.math.Long.prototype.negate=function(){return this.equals(goog.math.Long.MIN_VALUE)?goog.math.Long.MIN_VALUE:this.not().add(goog.math.Long.ONE)},goog.math.Long.prototype.add=function(e){var t=this.high_>>>16,n=65535&this.high_,a=this.low_>>>16,i=65535&this.low_,o=e.high_>>>16,s=65535&e.high_,r=e.low_>>>16,l=65535&e.low_,c=0,d=0,u=0,p=0;return p+=i+l,u+=p>>>16,p&=65535,u+=a+r,d+=u>>>16,u&=65535,d+=n+s,c+=d>>>16,d&=65535,c+=t+o,c&=65535,goog.math.Long.fromBits(u<<16|p,c<<16|d)},goog.math.Long.prototype.subtract=function(e){return this.add(e.negate())},goog.math.Long.prototype.multiply=function(e){if(this.isZero())return goog.math.Long.ZERO;if(e.isZero())return goog.math.Long.ZERO;if(this.equals(goog.math.Long.MIN_VALUE))return e.isOdd()?goog.math.Long.MIN_VALUE:goog.math.Long.ZERO;if(e.equals(goog.math.Long.MIN_VALUE))return this.isOdd()?goog.math.Long.MIN_VALUE:goog.math.Long.ZERO;if(this.isNegative())return e.isNegative()?this.negate().multiply(e.negate()):this.negate().multiply(e).negate();if(e.isNegative())return this.multiply(e.negate()).negate();if(this.lessThan(goog.math.Long.TWO_PWR_24_)&&e.lessThan(goog.math.Long.TWO_PWR_24_))return goog.math.Long.fromNumber(this.toNumber()*e.toNumber());var t=this.high_>>>16,n=65535&this.high_,a=this.low_>>>16,i=65535&this.low_,o=e.high_>>>16,s=65535&e.high_,r=e.low_>>>16,l=65535&e.low_,c=0,d=0,u=0,p=0;return p+=i*l,u+=p>>>16,p&=65535,u+=a*l,d+=u>>>16,u&=65535,u+=i*r,d+=u>>>16,u&=65535,d+=n*l,c+=d>>>16,d&=65535,d+=a*r,c+=d>>>16,d&=65535,d+=i*s,c+=d>>>16,d&=65535,c+=t*l+n*r+a*s+i*o,c&=65535,goog.math.Long.fromBits(u<<16|p,c<<16|d)},goog.math.Long.prototype.div=function(e){if(e.isZero())throw Error("division by zero");if(this.isZero())return goog.math.Long.ZERO;if(this.equals(goog.math.Long.MIN_VALUE)){if(e.equals(goog.math.Long.ONE)||e.equals(goog.math.Long.NEG_ONE))return goog.math.Long.MIN_VALUE;if(e.equals(goog.math.Long.MIN_VALUE))return goog.math.Long.ONE;var t=this.shiftRight(1),n=t.div(e).shiftLeft(1);if(n.equals(goog.math.Long.ZERO))return e.isNegative()?goog.math.Long.ONE:goog.math.Long.NEG_ONE;var a=this.subtract(e.multiply(n)),i=n.add(a.div(e));return i}if(e.equals(goog.math.Long.MIN_VALUE))return goog.math.Long.ZERO;if(this.isNegative())return e.isNegative()?this.negate().div(e.negate()):this.negate().div(e).negate();if(e.isNegative())return this.div(e.negate()).negate();for(var o=goog.math.Long.ZERO,a=this;a.greaterThanOrEqual(e);){for(var n=Math.max(1,Math.floor(a.toNumber()/e.toNumber())),s=Math.ceil(Math.log(n)/Math.LN2),r=s<=48?1:Math.pow(2,s-48),l=goog.math.Long.fromNumber(n),c=l.multiply(e);c.isNegative()||c.greaterThan(a);)n-=r,l=goog.math.Long.fromNumber(n),c=l.multiply(e);l.isZero()&&(l=goog.math.Long.ONE),o=o.add(l),a=a.subtract(c)}return o},goog.math.Long.prototype.modulo=function(e){return this.subtract(this.div(e).multiply(e))},goog.math.Long.prototype.not=function(){return goog.math.Long.fromBits(~this.low_,~this.high_)},goog.math.Long.prototype.and=function(e){return goog.math.Long.fromBits(this.low_&e.low_,this.high_&e.high_)},goog.math.Long.prototype.or=function(e){return goog.math.Long.fromBits(this.low_|e.low_,this.high_|e.high_)},goog.math.Long.prototype.xor=function(e){return goog.math.Long.fromBits(this.low_^e.low_,this.high_^e.high_)},goog.math.Long.prototype.shiftLeft=function(e){if(e&=63,0==e)return this;var t=this.low_;if(e<32){var n=this.high_;return goog.math.Long.fromBits(t<>>32-e)}return goog.math.Long.fromBits(0,t<>>e|t<<32-e,t>>e)}return goog.math.Long.fromBits(t>>e-32,t>=0?0:-1)},goog.math.Long.prototype.shiftRightUnsigned=function(e){if(e&=63,0==e)return this;var t=this.high_;if(e<32){var n=this.low_;return goog.math.Long.fromBits(n>>>e|t<<32-e,t>>>e)}return 32==e?goog.math.Long.fromBits(t,0):goog.math.Long.fromBits(t>>>e-32,0)},bpe=0,mask=0,radix=mask+1,digitsStr="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_=!@#$%^&*()[]{}|;:,.<>/?`~ \\'\"+-";for(bpe=0;1<1<>=1,mask=(1<>8),a=n<<8,i=h;for(e.Z>=a?(i=1,e.la-=n,e.Z-=a):(i=0,e.la=n);128>e.la;)e.Z<<=1,e.la<<=1,8==++e.gc&&(e.gc=0,e.bc&&(e.Z+=e.qa[e.Ia++],e.bc--));return i}function S(e,t,n,a){a-=n,2<=a?(e.Z=t[n+0]<<8|t[n+1],e.qa=t,e.Ia=n+2,e.bc=a-2):(e.Z=0,e.qa=g,e.bc=0),e.la=255,e.gc=0}function C(e,t){for(var n=0,a=h,a=t-1;0<=a;a--)n|=$(e,128)<a),e.qa=t,e.Ia=n,e.ya=a,e.T=0,e.Q=0,e.g=0,e.L=0,i=e.fa=0;4>i&&i>>=8,e.T+=e.qa[e.Ia+e.Q]<<24>>>0,++e.Q,e.g-=8}function A(e){8<=e.g&&I(e),e.Q==e.ya&&32==e.g&&(e.L=1)}function E(e,t){var n=0;if(p(0<=t),!e.L&&t>e.g&fn[t],e.g+=t,8<=e.g&&8<=e.g&&I(e)}else e.fa=1;return n}function T(e){return e.Pa==e.gb}function D(e,t){return p(e!=g),0==t?0:(e.gb=2*t-1,e.Y=d(e.gb,zn),e.Y==g?0:(e.Y[0].s=-1,e.Pa=1))}function P(e){e!=g&&(e.Y=g,e.Y=g,e.gb=0,e.Pa=0)}function F(e,t,n,a){for(var i=e.Y,o=0,s=+e.gb;0=s)return 0;if(0>i[o].s){if(T(e))return 0;var r=e,l=r.Y,c=+r.Pa;i[o].s=c-o,r.Pa+=2,l[c+0].s=-1,l[c+1].s=-1}else if(0==i[o].s)return 0;o+=i[o].s+(n>>a&1)}if(0>i[o].s)i[o].s=0;else if(0!=i[o].s)return 0;return i[o].kc=t,1}function N(e,t,n){var a=h,i=0,o=0;for(p(e!=g),p(t!=g),a=0;ao||o>=n?(P(e),0):F(e,o,0,0);if(i=0,o=c(n,h),o==g)return(i=i&&T(e))||P(e),i;var s=h,s=h,a=c(Mn+1,0),r=h,l=c(Mn+1,0),d=0;for(p(t!=g),p(0d&&(d=t[s]);if(d>Mn)a=0;else{for(s=0;sa||0>i||a+i>n.P.v)&&(i=0==a)){e:{var s=n.Ga,r=n.G,l=n.ub;i=n.P.l;var d=n.P.v,u=n.Xb,m=[g],f=g,_=d*i,v=g,y=g,y="WEBP_FILTER_TYPE",b=h,m=h,w=0,k=h;if(p(0=i),p(s!=g&&u!=g),l<=Fn)i=0;else if(k=s[r+0]>>0&3,y=s[r+0]>>2&3,b=s[r+0]>>4&3,m=s[r+0]>>6&3,kRn||y>=Na||b>On||0!=m)i=0;else{if(k==Nn)w=l>=_,m=s,f=r+Fn;else{if(m=c(_,0),f=0,m==g){i=0;break e}var w=r+Fn,l=l-Fn,r=m,v=e(dn),$=0,S=Je();S==g?w=0:(S.l=i,S.v=d,S.N=v,ve(Ot),v.put=xt,v.Mb=Mt,v.Pb=It,v.ka=g,v.ka=r,v.fd=0,v.width=i,v.height=d,S.a=Qt,x(S.o,s,w,l),S.Wa=Aa,et(i,d,1,S,g)&&tt(S,i)&&(S.Wa=Ia,$=Ze(S,S.V,S.Ha,S.l,S.v,nt)),S!=g&&Qe(S),w=$)}if(w){for(s=Ra[y],s!=g?(v=c(_,0),y=0,v==g&&(w=0,k!=Nn&&(f=m=g)),s(m,f,i,d,1,i,v,y),_=v,k=y):(_=m,k=f),s=0;0=f||0>=i?0:1)}i=w}}i=!i}return i?g:0==a?n.Xb:+a*o}function U(e){var t=e.width,n=e.height,a=e.J;if(0>=t||0>=n||!(a>=Ut&&a=Ut&&o=s*Oa[o],a&=e.ma!=g):(e=e.c.Va,l=e.nb*parseInt((r+1)/2,10),d=e.rb*parseInt((r+1)/2,10),u=e.Fa*r,a&=e.F*r<=e.Wc,a&=l<=e.Rc,a&=d<=e.Uc,a&=u<=e.Wb,a&=e.F>=s,a&=e.nb>=parseInt((s+1)/2,10),a&=e.rb>=parseInt((s+1)/2,10),a&=e.y!=g,a&=e.c!=g,a&=e.S!=g,o==Zt&&(a&=e.Fa>=s,a&=u<=e.Wb,a&=e.p!=g)):a=0,a?Qt:tn}function B(e,t,n,a){if(a==g||0>=e||0>=t)return tn;if(n!=g){if(n.Ua){var i=n.wc,o=n.vc,s=n.t&-2,r=n.k&-2;if(0>s||0>r||0>=i||0>=o||s+i>e||r+o>t)return tn;e=i,t=o}if(n.I){if(0>=n.Ba||0>=n.Aa)return tn;e=n.Ba,t=n.Aa}}return a.width=e,a.height=t,U(a)}function L(e){return e&-256?0>e?0:255:e}function H(e,t,n,a){var i,o=c(16,0);i=0;var s;for(s=0;4>s;++s){var r=e[t+0]+e[t+8],l=e[t+0]-e[t+8],d=(e[t+4]*ri>>16)-(e[t+12]*si>>16),u=(e[t+4]*si>>16)+(e[t+12]*ri>>16);o[i+0]=r+u,o[i+1]=l+d,o[i+2]=l-d,o[i+3]=r-u,i+=4,t++}for(s=i=0;4>s;++s)e=o[i+0]+4,r=e+o[i+8],l=e-o[i+8],d=(o[i+4]*ri>>16)-(o[i+12]*si>>16),u=(o[i+4]*si>>16)+(o[i+12]*ri>>16),n[a+0+0*pa]=L(n[a+0+0*pa]+(r+u>>3)),n[a+1+0*pa]=L(n[a+1+0*pa]+(l+d>>3)),n[a+2+0*pa]=L(n[a+2+0*pa]+(l-d>>3)),n[a+3+0*pa]=L(n[a+3+0*pa]+(r-u>>3)),i++,a+=pa}function q(e,t,n,a,i){H(e,t,n,a),i&&H(e,t+16,n,a+4)}function V(e,t,n,a){Ua(e,t+0,n,a+0,1),Ua(e,t+32,n,a+4*pa,1)}function z(e,t,n,a){e=e[t+0]+4;var i;for(i=0;4>i;++i)for(t=0;4>t;++t)n[a+t+i*pa]=L(n[a+t+i*pa]+(e>>3))}function W(e,t,n,a){e[t+0]&&z(e,t+0,n,a+0),e[t+16]&&z(e,t+16,n,a+4),e[t+32]&&z(e,t+32,n,a+4*pa),e[t+48]&&z(e,t+48,n,a+4*pa+4)}function G(e,t,n){var a,i=t-pa,o=ii,s=255-e[i-1];for(a=0;aa;++a)for(i=0;16>i;++i)t[n+a*pa+i]=e}function Y(e,t,n){return e+2*t+n+2>>2}function Z(e,t,n){var a,i;for(a=0;8>a;++a)for(i=0;8>i;++i)t[n+i+a*pa]=e}function X(e,t,n){var a=e[t-n],i=e[t+0],o=3*(i-a)+ni[1020+e[t-2*n]-e[t+n]],s=ai[112+(o+4>>3)];e[t-n]=ii[255+a+ai[112+(o+3>>3)]],e[t+0]=ii[255+i-s]}function J(e,t,n,a){var i=e[t+0],o=e[t+n];return ei[255+e[t-2*n]-e[t-n]]>a||ei[255+o-i]>a}function Q(e,t,n,a,i){var o=e[t-3*n],s=e[t-2*n],r=e[t-n],l=e[t+0],c=e[t+n],d=e[t+2*n],u=e[t+3*n];return 2*ei[255+r-l]+ti[255+s-c]>a?0:ei[255+e[t-4*n]-o]<=i&&ei[255+o-s]<=i&&ei[255+s-r]<=i&&ei[255+u-d]<=i&&ei[255+d-c]<=i&&ei[255+c-l]<=i}function ee(e,t,n,a){var i;for(i=0;16>i;++i)2*ei[255+e[t+i-n]-e[t+i+0]]+ti[255+e[t+i-2*n]-e[t+i+n]]<=a&&X(e,t+i,n)}function te(e,t,n,a){var i;for(i=0;16>i;++i)2*ei[255+e[t+i*n-1]-e[t+i*n+0]]+ti[255+e[t+i*n-2]-e[t+i*n+1]]<=a&&X(e,t+i*n,1)}function ne(e,t,n,a){var i;for(i=3;0>7,v=18*f+63>>7,f=9*f+63>>7;l[c-3*d]=ii[255+l[c-3*d]+f],l[c-2*d]=ii[255+u+v],l[c-d]=ii[255+p+_],l[c+0]=ii[255+m-_],l[c+d]=ii[255+g-v],l[c+2*d]=ii[255+h-f]}t+=a}}function oe(e,t,n,a,i,o,s,r){for(;0>3)],g=ai[112+(g+3>>3)],f=h+1>>1;l[c-2*d]=ii[255+l[c-2*d]+f],l[c-d]=ii[255+u+g],l[c+0]=ii[255+p-h],l[c+d]=ii[255+m-f]}t+=a}}function se(e,t,n,a,i,o){ie(e,t+0,n,1,16,a,i,o)}function re(e,t,n,a,i,o){ie(e,t+0,1,n,16,a,i,o)}function le(e,t,n,a,i,o){var s;for(s=3;0i;++i)e[t+i]=n[a+i]}function fe(e,t){return 0>e?0:e>t?t:e}function _e(e){e.a="VP8_STATUS_OK",e.xc="OK"}function ve(e){e>>>8!=Ot>>>8&&alert("mismatch error")}function ye(e,t,n){return e.a==Qt&&(e.a=t,e.xc=n,e.za=0),alert(t+": "+n),0}function be(t,n){var a=[0],o=f,s=[b],r=e(_a),l=e(va),c=e(mn),s="VP8StatusCode",r=e(pn);if(t==g)return alert("(dec == null)"),0;if(_e(t),n==g)return ye(t,"VP8_STATUS_INVALID_PARAM","null VP8Io passed to VP8GetHeaders()");if(r.data=n.data,r.b=n.b,r.e=n.e,r.b=[r.b],r.e=[r.e],r=[r],s=Dt(r),s!=Qt)return ye(t,s,"Incorrect/incomplete header.");if(r=r[0],r.b=r.b[0],r.e=r.e[0],r.ia)return ye(t,nn,"Unexpected lossless format encountered.");if(t.Ga==g&&(p(0==t.ub),t.Ga=r.$,t.G=r.G,t.ub=r.pa),o=r.data,a=r.b+r.offset,s=r.e-r.offset,p(r.e>=r.offset),4>s[0])return ye(t,rn,"Truncated header.");if(c=o[a+0]|o[a+1]<<8|o[a+2]<<16,r=t.Ac,r.fb=!(1&c)+0,r.Jc=c>>1&7,r.Nc=c>>4&1,r.Ra=c>>5,3s)return ye(t,"VP8_STATUS_NOT_ENOUGH_DATA","cannot parse picture header");if(!(3<=s&&157==o[a+0]&&1==o[a+1]&&42==o[a+2]))return ye(t,"VP8_STATUS_BITSTREAM_ERROR","Bad code word");for(l.l=16383&(o[a+4]<<8|o[a+3]),l.gd=o[a+4]>>6,l.v=16383&(o[a+6]<<8|o[a+5]),l.hd=o[a+6]>>6,a+=7,s-=7,t.Ma=l.l+15>>4,t.hb=l.v+15>>4,n.width=l.l,n.height=l.v,n.I=0,n.Ua=0,n.k=0,n.t=0,n.Ka=n.width,n.K=n.height,n.m=n.width,n.h=n.height,c=t.R,i=0;is)return ye(t,"VP8_STATUS_NOT_ENOUGH_DATA","bad partition length");c=t.o,S(c,o,a,a+r.Ra),a+=r.Ra,s-=r.Ra,r.fb&&(l.uc=k(c),l.$c=k(c));var l=c,d=t.Ca,u=t.R;if(p(l!=g),p(d!=g),d.pb=k(l),d.pb){if(d.ob=k(l),k(l)){var m;for(d.tb=k(l),m=0;ms&&(_=l),S(t.ic[+y],u,m,w),u=_,m=w,d+=3}S(t.ic[+v],u,m,s),s=m>16,8>x.sb[1]&&(x.sb[1]=8),x.qc[0]=fi[fe(w+m,117)],x.qc[1]=_i[fe(w+v,127)]}if(!r.fb)return ye(t,an,"Not a key frame.");for(t.Zc=259,k(c),s=t.R,l=0;lr.Ra||1!=o[a+8-1])return ye(t,nn,"RIFF: Inconsistent extra information.");c=o[a+0]<<0|o[a+1]<<8|o[a+2]<<16,t.fc=c,t.dd=g,t.cd=o[a+3]}return t.za=1}function we(e,t,n,a,i,o){var s=t[i][n];if(!$(e,s[0]))return 0;for(;;){if(++i,$(e,s[1])){var r;if($(e,s[2])){if($(e,s[3]))if($(e,s[6])){r=f,n=$(e,s[8]),s=$(e,s[9+n]),s=2*n+s,n=0,r=$i[s];var l;for(l=0;l>t}function $e(e,s){var l=0;if(e==g)return 0;if(s==g)return ye(e,"VP8_STATUS_INVALID_PARAM","NULL VP8Io parameter in VP8Decode().");if(!e.za&&!be(e,s))return 0;p(e.za);var d;if(s.Mb&&!s.Mb(s))ye(e,sn,"Frame setup failed"),d=e.a;else{s.Za&&(e.A=0);var u=pi[e.A];2==e.A?(e.lb=0,e.mb=0):(e.lb=s.t-u>>4,e.mb=s.k-u>>4,0>e.lb&&(e.lb=0),0>e.mb&&(e.mb=0)),e.Ya=s.K+15+u>>4,e.wb=s.Ka+15+u>>4,e.wb>e.Ma&&(e.wb=e.Ma),e.Ya>e.hb&&(e.Ya=e.hb),d=Qt}if(l=d==Qt){if(l){var _;e:{if(e.Ja=0,e.qb){var v=e.rc;if(!WebPWorkerReset(v)){_=ye(e,en,"thread initialization failed.");break e}v.Qd=e,v.Rd=e.oa.N,v.Ud=FinishRow,e.jb=0e.Gb){if(e.ib=0,e.Gb=0,e.ib==g){b=ye(e,"VP8_STATUS_OUT_OF_MEMORY","no memory during frame initialization.");break e}e.Gb=T}e.dc=205,e.Xc=o(205,16*k),e.Sc=o(205,8*k),e.Vc=o(205,8*k),e.M=x?a(ka,x):g,e.Sd=x?0:g,e.oa.ha=0,e.oa.M=e.M,p(0==(I&ui)),e.Ea=o(205,1*I),e.z=-12851,e.H=16*k,e.r=8*k;var D=pi[e.A],P=D*e.H,F=D/2*e.r;e.ca=c(A,205),e.da=+P,e.aa=e.ca,e.ba=e.da+16*w*e.H+F,e.ra=e.aa,e.sa=e.ba+8*w*e.r+F,e.Xb=E?c(E,f):g,e.La=a($a,M),e.dc=o(Zn,S),b=1}}y=!b}if(y)l=0;else{if(s.width=e.P.l,s.height=e.P.v,s.w=0,s.y=e.ca,s.D=e.da,s.c=e.aa,s.B=e.ba,s.S=e.ra,s.C=e.sa,s.F=e.H,s.Da=e.r,s.p=g,s.q=g,!oi){var N;for(N=-255;255>=N;++N)ei[255+N]=0>N?-N:N,ti[255+N]=ei[255+N]>>1;for(N=-1020;1020>=N;++N)ni[1020+N]=-128>N?-128:127=N;++N)ai[112+N]=-16>N?-16:15=N;++N)ii[255+N]=0>N?0:255=U.mb&&U.d<=U.Ya)+0,e.i=0;e.iie;++ie){var oe,fe=X[ie];for(oe=0;4>oe;++oe){var _e=bi[Z[Z[Z.length-1]+oe]][fe],ve=0;do ve=vi[2*ve+$(G,_e[ve])];while(0ve;++ve)Z[ve+Z[Z.length-1]]=fe;for(ve=0;4>ve;++ve)X[ve]=fe}if(j.Tc=$(G,142)?$(G,114)?$(G,183)?ea:Qn:Jn:Xn,G.Ab)L=0;else{if(Y.Nb)K.X=Y.X=0,j.wa||(K.ua=Y.ua=0),j.ja=0,j.Oa=0;else{var $e=m,Ce=m,Me=m,xe=Ci,Ie=j.yb[j.Lb],Ae=j.z,Ee=j.La[0],Te=c(4,0),De=c(4,0),Pe=c(4,0),Fe=c(4,0),Ne=0,Re=0,Oe=m,Ue=m,Be=m,Ae=o(0,384);if(j.wa)Me=0,xe=j.R.z[3];else{var Le=c(16,0),je=Y.ua+Ee.ua;Y.ua=Ee.ua=(0ze;++ze){var We=He[0+ze]+He[12+ze],Ge=He[4+ze]+He[8+ze],Ke=He[4+ze]-He[8+ze],Ye=He[0+ze]-He[12+ze];Ve[0+ze]=We+Ge,Ve[8+ze]=We-Ge,Ve[4+ze]=Ye+Ke,Ve[12+ze]=Ye-Ke}for(ze=0;4>ze;++ze){var Ze=qe[qe.length-1],Xe=Ve[0+4*ze]+3,We=Xe+Ve[3+4*ze],Ge=Ve[1+4*ze]+Ve[2+4*ze],Ke=Ve[1+4*ze]-Ve[2+4*ze],Ye=Xe-Ve[3+4*ze];qe[Ze+0]=We+Ge>>3,qe[Ze+16]=Ye+Ke>>3,qe[Ze+32]=We-Ge>>3,qe[Ze+48]=Ye-Ke>>3,qe[qe.length-1]+=64}Ae[Ae.length-1]=0}for(Pe=n(Mi[15&Y.X]),Fe=n(Mi[15&Ee.X]),Ue=0;4>Ue;++Ue){for(var Je=Fe[Ue],Oe=0;4>Oe;++Oe){var je=Je+Pe[Oe],Qe=we(H,xe,je,Ie.sc,Me,Ae);Pe[Oe]=Je=(0>4]),Fe=n(Mi[Ee.X>>4]),Be=0;4>Be;Be+=2){for(Ue=0;2>Ue;++Ue){for(Je=Fe[Be+Ue],Oe=0;2>Oe;++Oe)je=Je+Pe[Be+Oe],Qe=we(H,j.R.z[2],je,Ie.qc,0,Ae),Pe[Be+Oe]=Je=(0rt;++rt)he(tt,nt+rt*pa-4,tt,nt+rt*pa+12);for(rt=-1;8>rt;++rt)he(at,it+rt*pa-4,at,it+rt*pa+4),he(ot,st+rt*pa-4,ot,st+rt*pa+4)}else{for(rt=0;16>rt;++rt)tt[nt+rt*pa-1]=129;for(rt=0;8>rt;++rt)at[it+rt*pa-1]=129,ot[st+rt*pa-1]=129;0i;++i)tt[nt-pa-1+i]=127;for(i=0;9>i;++i)at[it-pa-1+i]=127;for(i=0;9>i;++i)ot[st-pa-1+i]=127}if(et.wa){var ft=nt-pa+16;0=et.Ma-1?tt[ft+0]=tt[ft+1]=tt[ft+2]=tt[ft+3]=lt[ct+15]:t(tt,ft+0,lt,ct+16,4));for(var _t=0;4>_t;++_t)tt[_t+ft+4*pa]=tt[_t+ft+4*pa]=tt[_t+ft+8*pa]=tt[_t+ft+12*pa]=tt[_t+ft+0];for(ht=0;16>ht;ht++){var vt=tt,yt=nt+hi[ht];li[et.Eb[ht]](vt,yt),et.Oa&1<ht;ht++)vt=tt,yt=nt+hi[ht],et.Oa&1<xt?0:63>2:xt>>1,xt>9-St.ga.kb&&(xt=9-St.ga.kb)),Ct.yc=1>xt?1:xt,Ct.ab=(!Mt||St.wa)+0}for(var It=m,At=8*St.Ja*St.r,Et=St.ca,Tt=St.da+16*St.i+16*St.Ja*St.H,Dt=St.aa,Pt=St.ba+8*St.i+At,Ft=St.ra,Nt=St.sa+8*St.i+At,It=0;16>It;++It)t(Et,Tt+It*St.H,St.Ea,+ga+It*pa,16);for(It=0;8>It;++It)t(Dt,Pt+It*St.r,St.Ea,+ha+It*pa,8),t(Ft,Nt+It*St.r,St.Ea,+fa+It*pa,8)}var Rt=e,Ot=s,Ut=1,Bt=Rt.oa;if(Rt.qb){var Lt=Rt.rc,Ut=Ut&WebPWorkerSync(Lt);if(p(Lt.a==OK),Ut){if(Bt.N=Ot,Bt.ha=Rt.Ja,Bt.d=Rt.d,Bt.W=Rt.W,Bt.W){var jt=Bt.M;Bt.M=Rt.M,Rt.M=jt}WebPWorkerLaunch(Lt),++Rt.Ja==Rt.jb&&(Rt.Ja=0)}}else{Bt.d=Rt.d,Bt.W=Rt.W;t:{var Ht=1,qt=Rt.oa,Vt=pi[Rt.A],zt=Vt*Rt.H,Wt=parseInt(Vt/2)*Rt.r,Gt=16*qt.ha*Rt.H,Kt=8*qt.ha*Rt.r,Yt=Rt.ca,Zt=Rt.da-zt+Gt,Xt=Rt.aa,Jt=Rt.ba-Wt+Kt,tn=Rt.ra,an=Rt.sa-Wt+Kt,on=0==qt.d,rn=(qt.d>=Rt.hb-1)+0,ln=16*qt.d,cn=16*(qt.d+1);if(qt.W){var dn=Rt,un=h,pn=dn.oa.d;for(p(dn.oa.W),un=dn.lb;unOt.K&&(cn=Ot.K),Rt.Ga!=g&&ln>1),Ot.C+=Rt.r*(En>>1),Ot.p!=g&&(Ot.q+=Ot.width*En)}ln>1,Ot.C+=Ot.t>>1,Ot.p!=g&&(Ot.q+=Ot.t),Ot.w=ln-Ot.k,Ot.m=Ot.Ka-Ot.t,Ot.h=cn-ln,Ht=Ot.put(Ot))}qt.ha+1==Rt.jb&&!rn&&(t(Rt.ca,Rt.da-zt,Yt,Zt+16*Rt.H,zt),t(Rt.aa,Rt.ba-Wt,Xt,Jt+8*Rt.r,Wt),t(Rt.ra,Rt.sa-Wt,tn,an+8*Rt.r,Wt)),Ut=Ht}}if(!Ut){l=ye(e,"VP8_STATUS_USER_ABORT","Output aborted.");break e}}var Tn;if(!(Tn=e.qb&&!WebPWorkerSync(e.rc))){var Dn;(Dn=0>t}function Me(e,t,n,a,i){var o=Xi[n]+Ji[t]>>Ii;t=Zi[t],a[i+0]=Qi[e+Yi[n]-Ai],a[i+1]=Qi[e+o-Ai],a[i+2]=Qi[e+t-Ai]}function xe(e,t,n,a,i){var o=Xi[n]+Ji[t]>>Ii;t=Zi[t],a[i+0]=248&Qi[e+Yi[n]-Ai]|Qi[e+o-Ai]>>5,a[i+1]=Qi[e+o-Ai]<<3&224|Qi[e+t-Ai]>>3}function Ie(e,t,n,a,i){a[i+0]=255,Me(e,t,n,a,i+1)}function Ae(e,t,n,a,i){var o=Zi[t];a[i+0]=eo[e+Yi[n]-Ai]<<4|eo[e+(Xi[n]+Ji[t]>>Ii)-Ai],a[i+1]=15|eo[e+o-Ai]<<4}function Ee(e,t,n,a,i){var o=Yi[n];n=Xi[n]+Ji[t]>>Ii,a[i+0]=Qi[e+Zi[t]-Ai],a[i+1]=Qi[e+n-Ai],a[i+2]=Qi[e+o-Ai]}function Te(e,t,n,a,i){Ee(e,t,n,a,i),a[i+3]=255}function De(e,t,n,a,i){Me(e,t,n,a,i),a[i+3]=255}function Pe(e,t,n){e[t]=((((4278255360&e[t])>>>0)+((4278255360&n)>>>0)&4278255360)>>>0|(16711935&e[t])+(16711935&n)&16711935)>>>0}function Fe(e,t){return((4278124286&(e^t))>>>1)+((e&t)>>>0)>>>0}function Ne(e){return 256>e&&0=e?0:~e>>24&255}function Re(e,t){return Ne(e+parseInt((e-t)/2,10))}function Oe(){return Sn}function Ue(e,t){return e&=255,t&=255,127>>5}function Be(e,t,n,a,i,o,s){var r=h,l=8>>e.n,c=e.U,d=e.u;if(8>l){e=(1<>8&255),o[s++]=d[t&u],t>>=l}}else for(r=t;r>8&255]}function Le(e,t,n,a,i){for(n=t+n;t>16&255,a[i++]=o>>8&255,a[i++]=o>>0&255,a[i++]=o>>24&255}}function je(e,t,n,a,i){for(n=t+n;t>16&240|o>>12&15,a[i++]=o>>0&240|o>>28&15}}function He(e,t,n,a,i){for(n=t+n;t>24&255,a[i++]=o>>16&255,a[i++]=o>>8&255,a[i++]=o>>0&255}}function qe(e,t,n,a){return E(e,8)!=vn?0:(t[0]=E(e,yn)+1,n[0]=E(e,yn)+1,a[0]=E(e,1),E(e,bn),1)}function Ve(e,t){var n=h;return 4>e?e+1:(n=e-2>>1,(2+(1&e)<t.ya){var n=e.Y,a=0;for(p(n!=g);0!=n[a].s;){var i=n,o=t,s=o.T>>o.g&1;o.L?o.fa=1:(++o.g,8<=o.g&&I(o),o.Q==o.ya&&32==o.g&&(o.L=1)),a=a+i[a].s+s}return n[a].kc}for(n=e.Y,a=0,p(n!=g);0!=n[a].s;)i=n,o=t.T>>t.g&1,++t.g,a=a+i[a].s+o;return n[a].kc}function We(e,t){if(e!=g)for(var n=h,a=h,n=0;n>e.eb)+(t>>e.eb)],p(t>8&255,w=(16711935&f[y])>>>0,w=w+(b<<16|b),w=16711935&w;u[d++]=((4278255360&f[y])>>>0|w)>>>0,32==m&&_++}break;case En:var k=a,$=m,_=f,y=u,b=d,w=k.U;if(0==$){var S=h;for(Pe(y,b,Sn),S=1;S>k.n)*M;$<_;){var I=x,A=k,E=g;for(Pe(y,b,y[b-w+0]),E=Ti[I[A++]>>8&15],S=1;S>8&15]),T=E(y[b+S-1],y,b+S-w),Pe(y,b+S,T)}b+=w,++$,0==($&C)&&(k+=M)}f!=a.Vb&&(a=a.U,t(u,d-a,u,d+(f-m-1)*a,a));break;case Tn:for(_=a.U,y=(1<>a.n)*b;m>0&255,k.Bc=x>>8&255,k.Kc=x>>16&255),x=u[d+M],k=x>>>8,I=x>>>16,A=x,I+=Ue(C.Cc,k),I&=255,A+=Ue(C.Bc,k),A+=Ue(C.Kc,I),A&=255,u[d+M]=(4278255360&x|I<<16|A)>>>0;d+=_,++m,0==(m&y)&&(a+=b)}break;case Pn:_==u&&0=i)){Ke(e,i,n,a);var o=e.N,n=e.Xa,s=[e.vb],a=e.O,i=t,r=s,l=o.width;if(p(ao.K&&(i=o.K),a=i?a=0:(r[0]+=o.t,o.w=a-o.k,o.m=o.Ka-o.t,o.h=i-a,a=1),a){if(s=s[0],a=e.Ib,i=o.width,a.J>16&255,_[v++]=y>>8&255,_[v++]=y>>0&255}break;case Bt:Le(g,h,f,_,v);break;case zt:Le(g,h,f,_,v),WebPApplyAlphaMultiply(_,0,f,1,0);break;case Lt:for(f=h+f;h>0&255,_[v++]=y>>8&255,_[v++]=y>>16&255;break;case jt:He(g,h,f,_,v);break;case Wt:He(g,h,f,_,v),WebPApplyAlphaMultiply(_,0,f,1,0);break;case Ht:He(g,h,f,_,v);break;case Gt:He(g,h,f,_,v),WebPApplyAlphaMultiply(_,1,f,1,0);break;case qt:je(g,h,f,_,v);break;case Kt:je(g,h,f,_,v),WebPApplyAlphaMultiply4444(_,f,1,0);break;case Vt:for(f=h+f;h>16&248|y>>13&7,_[v++]=y>>5&224|y>>3&31;break;default:p(0)}s+=i,u+=d}n=o}e.xa+=n}else e.xa=o.I?EmitRescaledRowsYUVA(e,n,s,i,o.h):EmitRowsYUVA(e,n,s,i,o.m,o.h);p(e.xa<=a.height)}e.O=t,p(e.O<=e.v)}}function Ze(e,t,n,a,i,o){var s=1,r=0,l=0,c=e.o,d=e.cb,u=d.Db,m=n,f=n;n+=a*i,i=xn+In;var _=i+d.xb,v=0>>0)+(b<<16)+(s<<8)+k}if(b=!1,++m,++r,r>=a&&(r=0,++l,o!=g&&0==l%Pi&&o(e,l),v!=g))for(;f>>v.bb]=s}else if(wWi?k-=Wi:(w=Gi[k-1],w=(w>>4)*a+(8-(15&w)),k=1<=w?w:1),w=h,w=0;w=a;)r-=a,++l,o!=g&&0==l%Pi&&o(e,l);if(m>>v.bb]=s}else if(w<_){for(b=w-i,p(v!=g);f>>v.bb]=w;w=t,k=m,$=v,p(b<=-1>>>$.bb),w[k]=$.ea[b],b=!0;continue e}(s=!c.fa)||End}return o!=g&&o(e,l),c.fa||!s||c.L&&m>>v.n)>>>0,b=Array(_),b==g)f=0;else{var w=v.u[0],k=v.b;for(b[0]=v.u[0][v.b+0],y=1;y>>0)+((4278255360&b[y-1])>>>0)&4278255360)>>>0|(16711935&w[k+y])+(16711935&b[y-1])&16711935)>>>0;for(;y<_;++y)b[y]=0;v.u[0]=g,v.b=g,v.u[0]=b,v.b=0,f=1}y=f;break;case Dn:break;default:p(0)}s.u=s.u[0],s=y}}if(s&&E(r,1)&&(m=E(r,4),s=1<=m&&m<=kn,!s)){i.a=nn;break}if(s)e:{var s=i,$=t[0],S=n[0],f=m,k=w=h,k=s.o,v=s.cb,y=[g],_=g,b=1;if(a&&E(k,1)){var w=E(k,3)+2,$=Ce($,w),C=Ce(S,w),S=$*C;if(!et($,C,0,s,y)){s.a=nn,We(_,b),s=0;break e}for(y=y[0],v.eb=w,w=0;w>>8&65535,y[w]=$,$>=b&&(b=$+1)}if(k.fa)We(_,b),s=0;else if(p(65536>=b),_=d(b,Da),_==g)s.a=en,We(_,b),s=0;else{for(w=0;wR[L]||R[L]>=M){(B=B&&T(x))||P(x),I=B;break n}if(!F(x,R[L],O[L],U[L])){(B=B&&T(x))||P(x),I=B;break n}}(B=(B=1)&&T(x))||P(x),I=B}else I=0}}else{if(I=h,O=[],R=E(C,4)+4,R>Vi){$.a=nn,$=0;break t}if(U=Array(M),U==g){$.a=en,$=0;break t}for(I=0;IO){I.a=nn,P(z),I=B;break n}}else q=O;for(H=0;HO){I.a=nn,P(z),I=B;break n}for(j=j?V:0;0=n)){Ke(e,n,a,i);for(var i=e.N.width,n=i*n,a=e.N.ka,i=e.N.fd+i*e.O,o=e.Xa,s=e.vb,r=h,r=0;r>>8&255;e.O=e.xa=t}}function at(e,t){var n=[h],a=[h],i=[h];return e==g?0:t==g?(e.a=tn,0):(e.N=t,e.a=Qt,x(e.o,t.data,t.b,t.e),qe(e.o,n,a,i)?(e.Ob=Ea,t.width=n[0],t.height=a[0],e.Wa=Aa,et(n[0],a[0],1,e,g)?1:(Qe(e),p(e.a!=Qt),0)):(e.a=nn,Qe(e),p(e.a!=Qt),0))}function it(e){var t=g,n=g;return e==g?0:(t=e.N,p(t!=g),n=t.ka,p(n!=g),e.Ib=n.j,e.Hc=n.Hc,p(e.Ib!=g),Rt(n.Qa,t,jt)?!tt(e,t.width)||t.I&&!AllocateAndInitRescaler(e,t)?(Qe(e),p(e.a!=Qt),0):(e.Wa=Ia,Ze(e,e.V,e.Ha,e.l,e.v,Ye)?(n.ec=e.xa,Qe(e),1):(Qe(e),p(e.a!=Qt),0)):(e.a=tn,Qe(e),p(e.a!=Qt),0))}function fe(e,t){return 0>e?0:e>t?t:e}function ot(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f,_,v){var y,b=f-1>>1,w=i[o+0]|s[r+0]<<16,k=l[c+0]|d[u+0]<<16;if(e){var $=3*w+k+131074>>2;_(e[t+0],255&$,$>>16,p,m)}for(n&&($=3*k+w+131074>>2,_(n[a+0],255&$,$>>16,g,h)),y=1;y<=b;++y){var S=i[o+y]|s[r+y]<<16,C=l[c+y]|d[u+y]<<16,$=w+S+k+C+524296,M=$+2*(S+k)>>3,x=$+2*(w+C)>>3;e&&($=M+w>>1,w=x+S>>1,_(e[t+2*y-1],255&$,$>>16,p,m+(2*y-1)*v),_(e[t+2*y-0],255&w,w>>16,p,m+(2*y-0)*v)),n&&($=x+k>>1,w=M+C>>1,_(n[a+2*y-1],255&$,$>>16,g,h+(2*y-1)*v),_(n[a+2*y+0],255&w,w>>16,g,h+(2*y+0)*v)),w=S,k=C}1&f||(e&&($=3*w+k+131074>>2,_(e[t+f-1],255&$,$>>16,p,m+(f-1)*v)),n&&($=3*k+w+131074>>2,_(n[a+f-1],255&$,$>>16,g,h+(f-1)*v)))}function st(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f){ot(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f,Me,3)}function rt(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f){ot(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f,Ee,3)}function lt(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f){ot(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f,De,4)}function ct(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f){ot(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f,Te,4)}function dt(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f){ot(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f,Ie,4)}function ut(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f){ot(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f,Ae,2)}function pt(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f){ot(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g,h,f,xe,2)}function mt(e,t,n,a,i,o,s,r,l,c,d,u,p,m,g){var h;for(h=0;h>>23,p[g]=m,p=s,g=r+4*d+1,s[r+4*d+1]*u>>>23,p[g]=m,p=s,g=r+4*d+2,s[r+4*d+2]*u>>>23,p[g]=m}}t+=o}}function yt(e,n){var a,i=n.j.c.Va,o=i.y,s=i.D+e.w*i.F,r=i.c,l=i.B+(e.w>>1)*i.nb,c=i.S,d=i.C+(e.w>>1)*i.rb,u=e.m,p=e.h,m=parseInt((u+1)/2,10),g=parseInt((p+1)/2,10);for(a=0;a>4;c[d+2*p]=240&c[d+2*p]|m,u&=m}a+=e.width,d+=s.f}15!=u&&w(o)&&WebPApplyAlphaMultiply4444(c,l,i,r,s.f)}return 0}function Mt(e){var t=e.ka,n=t.j.J,a=n>1,r=e.m+2*s,l=[];for(o=0;oe;++e)Yi[e]=89858*(e-128)+Ki>>Ii,Ji[e]=-22014*(e-128)+Ki,Xi[e]=-45773*(e-128),Zi[e]=113618*(e-128)+Ki>>Ii;for(e=Ai;e>Ii,Qi[e-Ai]=fe(t,255),eo[e-Ai]=fe(t+8>>4,15);to=1}return 1}function xt(e){var t=e.ka,n=e.m,a=e.h;return p(!(1&e.w)),0>=n||0>=a?0:(n=t.$a(e,t),t.ec+=n,t.zb&&t.zb(e,t),1)}function It(e){e=e.ka,e.memory="",e.memory=g}function At(e,t){return e[t+0]|e[t+1]<<8|e[t+2]<<16}function Et(e,t){return(At(e,t)|e[t+3]<<24)>>>0}function Tt(t,n,a,i,o,s,r){var c=0,d=[0],u="VP8StatusCode",_=e(pn);if(t==g||a[0]=Ln&&!l(t,n[0],"RIFF",Un)){if(l(t,n[0]+8,"WEBP",Un)){u=nn;break e}var y=Et(t,n[0]+Un);if(y=qn){u=nn;break e}y!=g&&(y[0]=$),i!=g&&(i[0]=w),o!=g&&(o[0]=k),n[0]+=u,a[0]-=u,d[0]=1}u=Qt}if(u!=Qt)return u;if(!c&&d[0])return nn;if(s!=g&&(s[0]=!!(y[0]&Hn)),d&&r==g)return Qt;if(ad){u=nn;break e}if($=w&&k>d-w){u=nn;break e}c[0]=k,n[0]+=Bn,a[0]-=Bn,y[0]=u}else y[0]=1<=a&&t[n+0]==vn,c[0]=a[0];u=Qt}if(_.ta=_.ta[0],_.ia=_.ia[0],u!=Qt)return u;if(_.ta>Vn)return nn;if(_.ia){if(a[0]>1&7)||!(c>>4&1)||c>>5>=_.ta?t=0:(i&&(i[0]=y),o&&(o[0]=t),t=1)):t=0}return t?(s!=g&&(s[0]|=_.$!=g),r!=g&&(r[0]=_,r[0].offset=n[0]-r[0].b,p(n[0]-r[0].bo||0>s||0>=r||0>=l||o+r>a||s+l>i))return 0;if(t.t=o,t.k=s,t.Ka=o+r,t.K=s+l,t.m=r,t.h=l,t.I=e!=g&&0=e.Ba||0>=e.Aa)return 0;t.Ba=e.Ba,t.Aa=e.Aa}return t.Za=e&&e.Za,t.Bb=e==g||!e.ed,t.I&&(t.Za=t.Ba<3*a/4&&t.Aa<3*i/4,t.Bb=0),1}var Ot=512,Ut=0,Bt=1,Lt=2,jt=3,Ht=4,qt=5,Vt=6,zt=7,Wt=8,Gt=9,Kt=10,Yt=11,Zt=12,Xt=13;this.WEBP_CSP_MODE=this.Cd={nd:0,od:1,kd:2,ld:3,jd:4,pd:5,qd:6,rd:7,sd:8,md:9};var Jt={J:"WEBP_CSP_MODE",width:h,height:h,Fc:h,c:{RGBA:{ma:f,Sa:0,f:h,size:b},Va:{y:f,c:f,S:f,p:f,D:f,B:f,C:f,q:f,F:h,nb:h,rb:h,Fa:h,Wc:b,Rc:b,Uc:b,Wb:b}},Ic:c(4,v),Jb:g,jc:f},Qt=0,en=1,tn=2,nn=3,an=4,on=5,sn=6,rn=7;this.VP8StatusCode=this.td={xd:0,yd:1,vd:2,ud:3,Ad:4,zd:5,Bd:6,wd:7};var ln={width:{value:h},height:{value:h},$b:{value:h},tc:h,Yd:h,rotate:h,be:h,Ic:c(3,v)};this.WebPGetFeatures=this.Md=function(e,t,n){var a="VP8StatusCode";return Ot>>>8!=Ot>>>8||n==g?e=tn:(t=[t],a=Nt(e,[0],t,n),e=a==rn?nn:a),e};var cn={Za:h,ed:h,Ua:h,t:h,k:h,wc:h,vc:h,I:h,Ba:h,Aa:h,ae:h,Td:h,Xd:h,Ic:c(6,v)};this.WebPDecoderConfig=this.Kd={input:e(ln),j:e(Jt),options:e(cn)},this.WebPInitDecoderConfig=this.Nd=function(e){return Ot>>>8!=Ot>>>8||e==g?e=0:(e=e.input,p(e!=g),e.tc=0,e=1),e};var dn={width:h,height:h,w:h,m:h,h:h,y:f,c:f,S:f,D:0,B:0,C:0,F:h,Da:h,ka:0,put:0,Mb:0,Pb:0,Bb:h,e:b,data:f,b:0,Za:h,Ua:h,t:h,Ka:h,k:h,K:h,I:h,Ba:h,Aa:h,p:f,q:0},un={j:e(Jt),Sb:f,Qb:f,lc:f,Tb:0,Rb:0,mc:0,ec:h,Qa:e(cn),memory:0,$a:"(OutputFunc)",zb:"(OutputFunc)",ad:"(OutputRowFunc)"},pn={data:f,b:f,e:b,offset:b,$:g,G:f,pa:b,ta:b,na:b,ia:h},mn={qa:f,Ia:g,Pd:f,Ab:h,la:v,Z:v,gc:h},gn={T:y,qa:f,Ia:f,ya:b,Q:b,g:h,L:h,fa:h},hn=25,fn=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215],_n=10,vn=47,yn=14,bn=3,wn=5,kn=11,$n=5,Sn=4278190080,Cn=8,Mn=15,xn=256,In=24,An=4,En=0,Tn=1,Dn=2,Pn=3,Fn=1,Nn=0,Rn=1,On=1,Un=4,Bn=8,Ln=12,jn=10,Hn=16,qn=1*Math.pow(2,32),Vn=-1-Bn-1>>>0,zn={kc:h,s:h},Wn={Y:"HuffmanTreeNode*",gb:h,Pa:h},Gn=-1,Kn={ea:v,bb:h},Yn=506832829,Zn=0,Xn=Zn,Jn=2,Qn=3,ea=1,ta=4,na=5,aa=6,ia=3,oa=4,sa=4,ra=4,la=4,ca=8,da=3,ua=11,pa=32,ma=17*pa+9*pa,ga=1*pa+8,ha=ga+16*pa+pa,fa=ha+16,_a={fb:f,Jc:f,Nc:f,Ra:v},va={l:0,v:0,gd:f,hd:f,uc:f,$c:f},ya={pb:h,ob:h,tb:h,Kb:c(oa,0),Cb:c(oa,0)},ba={Ta:c(ia,f),z:u([la,ca,da,ua],f)},wa={Oc:h,Fb:h,kb:h,oc:h,Lc:c(sa,h),Gc:c(sa,h)},ka={zc:h,yc:h,ab:h},$a={X:h,ua:h,Nb:h},Sa=c(2,h),Ca={sc:e(Sa),sb:e(Sa),qc:e(Sa)},Ma={ha:h,d:h,W:h,M:ka,N:dn},xa={a:"VP8StatusCode",za:h,xc:0,o:e(mn),Ac:e(_a),P:e(va),ga:e(wa),Ca:e(ya),rc:"WebPWorker",qb:h,Ja:h,jb:h,oa:Ma,Ma:h,hb:h,lb:h,mb:h,wb:h,Ya:h,Hb:h,ic:d(8,mn),Zc:v,yb:d(oa,Ca),R:e(ba),pc:h,Pc:f,dc:f,cc:c(4,f),Xc:f,Sc:f,Vc:f,La:e($a),M:e(ka),Ea:f,z:0,ca:f,aa:f,ra:f,da:h,ba:h,sa:h,H:h,r:h,ib:0,Gb:b,i:h,d:h,wa:f,Eb:c(16,f),Vd:0,Tc:f,Lb:f,ja:v,Oa:v,A:h,W:h,Zb:c(oa,f),Ga:g,G:0,ub:b,Xb:f,Od:0,cd:h,dd:f,Wd:0,fc:b},Ia=0,Aa=1,Ea=2,Ta={Qc:"VP8LImageTransformType",n:h,U:h,Vb:h,u:v,b:v},Da={va:d($n,Wn)},Pa={xb:h,Yb:e(Kn),Dc:h,eb:h,Ec:h,ac:v,bd:v,hc:h,Db:"HTreeGroup"},Fa={a:"VP8StatusCode",Wa:"VP8LDecodeState",Ob:"VP8LDecodeState",N:"VP8Io",Ib:"WebPDecBuffer",Hc:"WebPDecBuffer",V:v,Ha:v,Xa:v,vb:v,o:e(gn),l:h,v:h,O:h,xa:h,cb:e(Pa),Na:h,nc:d(An,Ta),Ub:v,Mc:f,$d:f,Zd:"*WebPRescaler"},Na=4,Ra=[g,function(e,n,a,i,o,s,r,l){var c=h,d=l;for(p(e!=g),p(r!=g),p(0=a*o),c=0;c=a*o),t(r,l,e,n,o),R(e,n+o,r,d,r,l+o,o*(a-1)),c=1;c=a*o),t(r,l,e,n,o),R(e,n+o,r,c,r,l+o,o*(a-1)),d=1;dm?0:255n;++n)a+=e[t+n-pa]+e[t-1+n*pa];for(a>>=3,n=0;4>n;++n)r(e,t+n*pa,a,4)},function(e,t){G(e,t,4)},function(e,n){var a=n-pa,i=[];for(i.push(Y(e[a-1],e[a+0],e[a+1])),i.push(Y(e[a+0],e[a+1],e[a+2])),i.push(Y(e[a+1],e[a+2],e[a+3])),i.push(Y(e[a+2],e[a+3],e[a+4])),a=0;4>a;++a)t(e,n+a*pa,i,0,4)},function(e,t){var n=e[t-1],a=e[t-1+pa],i=e[t-1+2*pa],o=e[t-1+3*pa];e[t+0+0*pa]=e[t+1+0*pa]=e[t+2+0*pa]=e[t+3+0*pa]=Y(e[t-1-pa],n,a),e[t+0+1*pa]=e[t+1+1*pa]=e[t+2+1*pa]=e[t+3+1*pa]=Y(n,a,i),e[t+0+2*pa]=e[t+1+2*pa]=e[t+2+2*pa]=e[t+3+2*pa]=Y(a,i,o),e[t+0+3*pa]=e[t+1+3*pa]=e[t+2+3*pa]=e[t+3+3*pa]=Y(i,o,o)},function(e,t){var n=e[t-1+0*pa],a=e[t-1+1*pa],i=e[t-1+2*pa],o=e[t-1-pa],s=e[t+0-pa],r=e[t+1-pa],l=e[t+2-pa],c=e[t+3-pa];e[t+0+3*pa]=Y(a,i,e[t-1+3*pa]),e[t+0+2*pa]=e[t+1+3*pa]=Y(n,a,i),e[t+0+1*pa]=e[t+1+2*pa]=e[t+2+3*pa]=Y(o,n,a),e[t+0+0*pa]=e[t+1+1*pa]=e[t+2+2*pa]=e[t+3+3*pa]=Y(s,o,n),e[t+1+0*pa]=e[t+2+1*pa]=e[t+3+2*pa]=Y(r,s,o),e[t+2+0*pa]=e[t+3+1*pa]=Y(l,r,s),e[t+3+0*pa]=Y(c,l,r)},function(e,t){var n=e[t-1+0*pa],a=e[t-1+1*pa],i=e[t-1+2*pa],o=e[t-1-pa],s=e[t+0-pa],r=e[t+1-pa],l=e[t+2-pa],c=e[t+3-pa];e[t+0+0*pa]=e[t+1+2*pa]=o+s+1>>1,e[t+1+0*pa]=e[t+2+2*pa]=s+r+1>>1,e[t+2+0*pa]=e[t+3+2*pa]=r+l+1>>1,e[t+3+0*pa]=l+c+1>>1,e[t+0+3*pa]=Y(i,a,n),e[t+0+2*pa]=Y(a,n,o),e[t+0+1*pa]=e[t+1+3*pa]=Y(n,o,s),e[t+1+1*pa]=e[t+2+3*pa]=Y(o,s,r),e[t+2+1*pa]=e[t+3+3*pa]=Y(s,r,l),e[t+3+1*pa]=Y(r,l,c)},function(e,t){var n=e[t+1-pa],a=e[t+2-pa],i=e[t+3-pa],o=e[t+4-pa],s=e[t+5-pa],r=e[t+6-pa],l=e[t+7-pa];e[t+0+0*pa]=Y(e[t+0-pa],n,a),e[t+1+0*pa]=e[t+0+1*pa]=Y(n,a,i),e[t+2+0*pa]=e[t+1+1*pa]=e[t+0+2*pa]=Y(a,i,o),e[t+3+0*pa]=e[t+2+1*pa]=e[t+1+2*pa]=e[t+0+3*pa]=Y(i,o,s),e[t+3+1*pa]=e[t+2+2*pa]=e[t+1+3*pa]=Y(o,s,r),e[t+3+2*pa]=e[t+2+3*pa]=Y(s,r,l),e[t+3+3*pa]=Y(r,l,l)},function(e,t){var n=e[t+0-pa],a=e[t+1-pa],i=e[t+2-pa],o=e[t+3-pa],s=e[t+4-pa],r=e[t+5-pa],l=e[t+6-pa],c=e[t+7-pa];e[t+0+0*pa]=n+a+1>>1,e[t+1+0*pa]=e[t+0+2*pa]=a+i+1>>1,e[t+2+0*pa]=e[t+1+2*pa]=i+o+1>>1,e[t+3+0*pa]=e[t+2+2*pa]=o+s+1>>1,e[t+0+1*pa]=Y(n,a,i),e[t+1+1*pa]=e[t+0+3*pa]=Y(a,i,o),e[t+2+1*pa]=e[t+1+3*pa]=Y(i,o,s),e[t+3+1*pa]=e[t+2+3*pa]=Y(o,s,r),e[t+3+2*pa]=Y(s,r,l),e[t+3+3*pa]=Y(r,l,c)},function(e,t){var n=e[t-1+0*pa],a=e[t-1+1*pa],i=e[t-1+2*pa],o=e[t-1+3*pa],s=e[t-1-pa],r=e[t+0-pa],l=e[t+1-pa],c=e[t+2-pa];e[t+0+0*pa]=e[t+2+1*pa]=n+s+1>>1,e[t+0+1*pa]=e[t+2+2*pa]=a+n+1>>1,e[t+0+2*pa]=e[t+2+3*pa]=i+a+1>>1,e[t+0+3*pa]=o+i+1>>1,e[t+3+0*pa]=Y(r,l,c),e[t+2+0*pa]=Y(s,r,l),e[t+1+0*pa]=e[t+3+1*pa]=Y(n,s,r),e[t+1+1*pa]=e[t+3+2*pa]=Y(a,n,s),e[t+1+2*pa]=e[t+3+3*pa]=Y(i,a,n),e[t+1+3*pa]=Y(o,i,a)},function(e,t){var n=e[t-1+0*pa],a=e[t-1+1*pa],i=e[t-1+2*pa],o=e[t-1+3*pa];e[t+0+0*pa]=n+a+1>>1,e[t+2+0*pa]=e[t+0+1*pa]=a+i+1>>1,e[t+2+1*pa]=e[t+0+2*pa]=i+o+1>>1,e[t+1+0*pa]=Y(n,a,i),e[t+3+0*pa]=e[t+1+1*pa]=Y(a,i,o),e[t+3+1*pa]=e[t+1+2*pa]=Y(i,o,o),e[t+3+2*pa]=e[t+2+2*pa]=e[t+0+3*pa]=e[t+1+3*pa]=e[t+2+3*pa]=e[t+3+3*pa]=o}],ci=[function(e,t){var n,a=16;for(n=0;16>n;++n)a+=e[t-1+n*pa]+e[t+n-pa];K(a>>5,e,t)},function(e,t){G(e,t,16)},function(e,n){var a;for(a=0;16>a;++a)t(e,n+a*pa,e,n-pa,16)},function(e,t){var n;for(n=16;0n;++n)a+=e[t-1+n*pa];K(a>>4,e,t)},function(e,t){var n,a=8;for(n=0;16>n;++n)a+=e[t+n-pa];K(a>>4,e,t)},function(e,t){K(128,e,t)}],di=[function(e,t){var n,a=8;for(n=0;8>n;++n)a+=e[t+n-pa]+e[t-1+n*pa];Z(1*(a>>4),e,t)},function(e,t){G(e,t,8)},function(e,n){var a;for(a=0;8>a;++a)t(e,n+a*pa,e,n-pa,8)},function(e,t){var n;for(n=0;8>n;++n)r(e,t+0,e[t-1],8),t+=pa},function(e,t){var n,a=4;for(n=0;8>n;++n)a+=e[t-1+n*pa];Z(1*(a>>3),e,t)},function(e,t){var n,a=4;for(n=0;8>n;++n)a+=e[t+n-pa];Z(1*(a>>3),e,t)},function(e,t){Z(128,e,t)}],ui=31,pi=[0,2,8],mi=3,gi=1,hi=[0+0*pa,4+0*pa,8+0*pa,12+0*pa,0+4*pa,4+4*pa,8+4*pa,12+4*pa,0+8*pa,4+8*pa,8+8*pa,12+8*pa,0+12*pa,4+12*pa,8+12*pa,12+12*pa],fi=[4,5,6,7,8,9,10,10,11,12,13,14,15,16,17,17,18,19,20,20,21,21,22,22,23,23,24,25,25,26,27,28,29,30,31,32,33,34,35,36,37,37,38,39,40,41,42,43,44,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,93,95,96,98,100,101,102,104,106,108,110,112,114,116,118,122,124,126,128,130,132,134,136,138,140,143,145,148,151,154,157],_i=[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,234,239,245,249,254,259,264,269,274,279,284],vi=[-Zn,1,-1,2,-2,3,4,6,-3,5,-4,-5,-6,7,-7,8,-8,-9],yi=[[[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]],[[253,136,254,255,228,219,128,128,128,128,128],[189,129,242,255,227,213,255,219,128,128,128],[106,126,227,252,214,209,255,255,128,128,128]],[[1,98,248,255,236,226,255,255,128,128,128],[181,133,238,254,221,234,255,154,128,128,128],[78,134,202,247,198,180,255,219,128,128,128]],[[1,185,249,255,243,255,128,128,128,128,128],[184,150,247,255,236,224,128,128,128,128,128],[77,110,216,255,236,230,128,128,128,128,128]],[[1,101,251,255,241,255,128,128,128,128,128],[170,139,241,252,236,209,255,255,128,128,128],[37,116,196,243,228,255,255,255,128,128,128]],[[1,204,254,255,245,255,128,128,128,128,128],[207,160,250,255,238,128,128,128,128,128,128],[102,103,231,255,211,171,128,128,128,128,128]],[[1,152,252,255,240,255,128,128,128,128,128],[177,135,243,255,234,225,128,128,128,128,128],[80,129,211,255,194,224,128,128,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[246,1,255,128,128,128,128,128,128,128,128],[255,128,128,128,128,128,128,128,128,128,128]]],[[[198,35,237,223,193,187,162,160,145,155,62],[131,45,198,221,172,176,220,157,252,221,1],[68,47,146,208,149,167,221,162,255,223,128]],[[1,149,241,255,221,224,255,255,128,128,128],[184,141,234,253,222,220,255,199,128,128,128],[81,99,181,242,176,190,249,202,255,255,128]],[[1,129,232,253,214,197,242,196,255,255,128],[99,121,210,250,201,198,255,202,128,128,128],[23,91,163,242,170,187,247,210,255,255,128]],[[1,200,246,255,234,255,128,128,128,128,128],[109,178,241,255,231,245,255,255,128,128,128],[44,130,201,253,205,192,255,255,128,128,128]],[[1,132,239,251,219,209,255,165,128,128,128],[94,136,225,251,218,190,255,255,128,128,128],[22,100,174,245,186,161,255,199,128,128,128]],[[1,182,249,255,232,235,128,128,128,128,128],[124,143,241,255,227,234,128,128,128,128,128],[35,77,181,251,193,211,255,205,128,128,128]],[[1,157,247,255,236,231,255,255,128,128,128],[121,141,235,255,225,227,255,255,128,128,128],[45,99,188,251,195,217,255,224,128,128,128]],[[1,1,251,255,213,255,128,128,128,128,128],[203,1,248,255,255,128,128,128,128,128,128],[137,1,177,255,224,255,128,128,128,128,128]]],[[[253,9,248,251,207,208,255,192,128,128,128],[175,13,224,243,193,185,249,198,255,255,128],[73,17,171,221,161,179,236,167,255,234,128]],[[1,95,247,253,212,183,255,255,128,128,128],[239,90,244,250,211,209,255,255,128,128,128],[155,77,195,248,188,195,255,255,128,128,128]],[[1,24,239,251,218,219,255,205,128,128,128],[201,51,219,255,196,186,128,128,128,128,128],[69,46,190,239,201,218,255,228,128,128,128]],[[1,191,251,255,255,128,128,128,128,128,128],[223,165,249,255,213,255,128,128,128,128,128],[141,124,248,255,255,128,128,128,128,128,128]],[[1,16,248,255,255,128,128,128,128,128,128],[190,36,230,255,236,255,128,128,128,128,128],[149,1,255,128,128,128,128,128,128,128,128]],[[1,226,255,128,128,128,128,128,128,128,128],[247,192,255,128,128,128,128,128,128,128,128],[240,128,255,128,128,128,128,128,128,128,128]],[[1,134,252,255,255,128,128,128,128,128,128],[213,62,250,255,255,128,128,128,128,128,128],[55,93,255,128,128,128,128,128,128,128,128]],[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]]],[[[202,24,213,235,186,191,220,160,240,175,255],[126,38,182,232,169,184,228,174,255,187,128],[61,46,138,219,151,178,240,170,255,216,128]],[[1,112,230,250,199,191,247,159,255,255,128],[166,109,228,252,211,215,255,174,128,128,128],[39,77,162,232,172,180,245,178,255,255,128]],[[1,52,220,246,198,199,249,220,255,255,128],[124,74,191,243,183,193,250,221,255,255,128],[24,71,130,219,154,170,243,182,255,255,128]],[[1,182,225,249,219,240,255,224,128,128,128],[149,150,226,252,216,205,255,171,128,128,128],[28,108,170,242,183,194,254,223,255,255,128]],[[1,81,230,252,204,203,255,192,128,128,128],[123,102,209,247,188,196,255,233,128,128,128],[20,95,153,243,164,173,255,203,128,128,128]],[[1,222,248,255,216,213,128,128,128,128,128],[168,175,246,252,235,205,255,255,128,128,128],[47,116,215,255,211,212,255,255,128,128,128]],[[1,121,236,253,212,214,255,255,128,128,128],[141,84,213,252,201,202,255,219,128,128,128],[42,80,160,240,162,185,255,205,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[244,1,255,128,128,128,128,128,128,128,128],[238,1,255,128,128,128,128,128,128,128,128]]]],bi=[[[231,120,48,89,115,113,120,152,112],[152,179,64,126,170,118,46,70,95],[175,69,143,80,85,82,72,155,103],[56,58,10,171,218,189,17,13,152],[114,26,17,163,44,195,21,10,173],[121,24,80,195,26,62,44,64,85],[144,71,10,38,171,213,144,34,26],[170,46,55,19,136,160,33,206,71],[63,20,8,114,114,208,12,9,226],[81,40,11,96,182,84,29,16,36]],[[134,183,89,137,98,101,106,165,148],[72,187,100,130,157,111,32,75,80],[66,102,167,99,74,62,40,234,128],[41,53,9,178,241,141,26,8,107],[74,43,26,146,73,166,49,23,157],[65,38,105,160,51,52,31,115,128],[104,79,12,27,217,255,87,17,7],[87,68,71,44,114,51,15,186,23],[47,41,14,110,182,183,21,17,194],[66,45,25,102,197,189,23,18,22]],[[88,88,147,150,42,46,45,196,205],[43,97,183,117,85,38,35,179,61],[39,53,200,87,26,21,43,232,171],[56,34,51,104,114,102,29,93,77],[39,28,85,171,58,165,90,98,64],[34,22,116,206,23,34,43,166,73],[107,54,32,26,51,1,81,43,31],[68,25,106,22,64,171,36,225,114],[34,19,21,102,132,188,16,76,124],[62,18,78,95,85,57,50,48,51]],[[193,101,35,159,215,111,89,46,111],[60,148,31,172,219,228,21,18,111],[112,113,77,85,179,255,38,120,114],[40,42,1,196,245,209,10,25,109],[88,43,29,140,166,213,37,43,154],[61,63,30,155,67,45,68,1,209],[100,80,8,43,154,1,51,26,71],[142,78,78,16,255,128,34,197,171],[41,40,5,102,211,183,4,1,221],[51,50,17,168,209,192,23,25,82]],[[138,31,36,171,27,166,38,44,229],[67,87,58,169,82,115,26,59,179],[63,59,90,180,59,166,93,73,154],[40,40,21,116,143,209,34,39,175],[47,15,16,183,34,223,49,45,183],[46,17,33,183,6,98,15,32,183],[57,46,22,24,128,1,54,17,37],[65,32,73,115,28,128,23,128,205],[40,3,9,115,51,192,18,6,223],[87,37,9,115,59,77,64,21,47]],[[104,55,44,218,9,54,53,130,226],[64,90,70,205,40,41,23,26,57],[54,57,112,184,5,41,38,166,213],[30,34,26,133,152,116,10,32,134],[39,19,53,221,26,114,32,73,255],[31,9,65,234,2,15,1,118,73],[75,32,12,51,192,255,160,43,51],[88,31,35,67,102,85,55,186,85],[56,21,23,111,59,205,45,37,192],[55,38,70,124,73,102,1,34,98]],[[125,98,42,88,104,85,117,175,82],[95,84,53,89,128,100,113,101,45],[75,79,123,47,51,128,81,171,1],[57,17,5,71,102,57,53,41,49],[38,33,13,121,57,73,26,1,85],[41,10,67,138,77,110,90,47,114],[115,21,2,10,102,255,166,23,6],[101,29,16,10,85,128,101,196,26],[57,18,10,102,102,213,34,20,43],[117,20,15,36,163,128,68,1,26]],[[102,61,71,37,34,53,31,243,192],[69,60,71,38,73,119,28,222,37],[68,45,128,34,1,47,11,245,171],[62,17,19,70,146,85,55,62,70],[37,43,37,154,100,163,85,160,1],[63,9,92,136,28,64,32,201,85],[75,15,9,9,64,255,184,119,16],[86,6,28,5,64,255,25,248,1],[56,8,17,132,137,255,55,116,128],[58,15,20,82,135,57,26,121,40]],[[164,50,31,137,154,133,25,35,218],[51,103,44,131,131,123,31,6,158],[86,40,64,135,148,224,45,183,128],[22,26,17,131,240,154,14,1,209],[45,16,21,91,64,222,7,1,197],[56,21,39,155,60,138,23,102,213],[83,12,13,54,192,255,68,47,28],[85,26,85,85,128,128,32,146,171],[18,11,7,63,144,171,4,4,246],[35,27,10,146,174,171,12,26,128]],[[190,80,35,99,180,80,126,54,45],[85,126,47,87,176,51,41,20,32],[101,75,128,139,118,146,116,128,85],[56,41,15,176,236,85,37,9,62],[71,30,17,119,118,255,17,18,138],[101,38,60,138,55,70,43,26,142],[146,36,19,30,171,255,97,27,20],[138,45,61,62,219,1,81,188,64],[32,41,20,117,151,142,20,21,163],[112,19,12,61,195,128,48,4,24]]],wi=[[[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[176,246,255,255,255,255,255,255,255,255,255],[223,241,252,255,255,255,255,255,255,255,255],[249,253,253,255,255,255,255,255,255,255,255]],[[255,244,252,255,255,255,255,255,255,255,255],[234,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255]],[[255,246,254,255,255,255,255,255,255,255,255],[239,253,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[251,255,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[251,254,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,254,253,255,254,255,255,255,255,255,255],[250,255,254,255,254,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[217,255,255,255,255,255,255,255,255,255,255],[225,252,241,253,255,255,254,255,255,255,255],[234,250,241,250,253,255,253,254,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[223,254,254,255,255,255,255,255,255,255,255],[238,253,254,254,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[249,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,255,255,255,255,255,255,255,255,255],[247,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[252,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[186,251,250,255,255,255,255,255,255,255,255],[234,251,244,254,255,255,255,255,255,255,255],[251,251,243,253,254,255,254,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[236,253,254,255,255,255,255,255,255,255,255],[251,253,253,254,254,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[254,254,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[254,254,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[248,255,255,255,255,255,255,255,255,255,255],[250,254,252,254,255,255,255,255,255,255,255],[248,254,249,253,255,255,255,255,255,255,255]],[[255,253,253,255,255,255,255,255,255,255,255],[246,253,253,255,255,255,255,255,255,255,255],[252,254,251,254,254,255,255,255,255,255,255]],[[255,254,252,255,255,255,255,255,255,255,255],[248,254,253,255,255,255,255,255,255,255,255],[253,255,254,254,255,255,255,255,255,255,255]],[[255,251,254,255,255,255,255,255,255,255,255],[245,251,254,255,255,255,255,255,255,255,255],[253,253,254,255,255,255,255,255,255,255,255]],[[255,251,253,255,255,255,255,255,255,255,255],[252,253,254,255,255,255,255,255,255,255,255],[255,254,255,255,255,255,255,255,255,255,255]],[[255,252,255,255,255,255,255,255,255,255,255],[249,255,254,255,255,255,255,255,255,255,255],[255,255,254,255,255,255,255,255,255,255,255]],[[255,255,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]]]; this.WebPGetDecoderVersion=this.Ld=function(){return 512};var ki=[0,1,2,3,6,4,5,6,6,6,6,6,6,6,6,7,0],$i=[[173,148,140,0],[176,155,140,135,0],[180,157,141,134,130,0],[254,254,243,230,196,177,153,140,133,130,129,0]],Si=[0,1,4,8,5,2,3,6,9,12,13,10,7,11,14,15],Ci=u([da,ua],"");c(4,f);var Mi=[[0,0,0,0],[1,0,0,0],[0,1,0,0],[1,1,0,0],[0,0,1,0],[1,0,1,0],[0,1,1,0],[1,1,1,0],[0,0,0,1],[1,0,0,1],[0,1,0,1],[1,1,0,1],[0,0,1,1],[1,0,1,1],[0,1,1,1],[1,1,1,1]],xi=134480385,Ii=16,Ai=-227,Ei=482,Ti=[Oe,function(e){return e},function(e,t,n){return t[n+0]},function(e,t,n){return t[n+1]},function(e,t,n){return t[n-1]},function(e,t,n){return Fe(Fe(e,t[n+1]),t[n+0])},function(e,t,n){return Fe(e,t[n-1])},function(e,t,n){return Fe(e,t[n+0])},function(e,t,n){return Fe(t[n-1],t[n+0])},function(e,t,n){return Fe(t[n+0],t[n+1])},function(e,t,n){return Fe(Fe(e,t[n-1]),Fe(t[n+0],t[n+1]))},function(e,t,n){return 0>=Math.abs((e>>24&255)-(t[n-1]>>24&255))-Math.abs((t[n+0]>>24&255)-(t[n-1]>>24&255))+(Math.abs((e>>16&255)-(t[n-1]>>16&255))-Math.abs((t[n+0]>>16&255)-(t[n-1]>>16&255)))+(Math.abs((e>>8&255)-(t[n-1]>>8&255))-Math.abs((t[n+0]>>8&255)-(t[n-1]>>8&255)))+(Math.abs((255&e)-(255&t[n-1]))-Math.abs((255&t[n+0])-(255&t[n-1])))?t[n+0]:e},function(e,t,n){return(Ne((e>>24&255)+(t[n+0]>>24&255)-(t[n-1]>>24&255))<<24|Ne((e>>16&255)+(t[n+0]>>16&255)-(t[n-1]>>16&255))<<16|Ne((e>>8&255)+(t[n+0]>>8&255)-(t[n-1]>>8&255))<<8|Ne((255&e)+(255&t[n+0])-(255&t[n-1])))>>>0},function(e,t,n){var a=t[n-1];return e=Fe(e,t[n+0]),(Re(e>>24&255,a>>24&255)<<24|Re(e>>16&255,a>>16&255)<<16|Re(e>>8&255,a>>8&255)<<8|Re(e>>0&255,a>>0&255))>>>0},Oe,Oe],Di={Cc:f,Bc:f,Kc:f},Pi=16,Fi=16,Ni=16,Ri=[2,3,7],Oi=[3,3,11],Ui=0,Bi=1,Li=2,ji=3,Hi=4,qi=[xn+In,xn,xn,xn,40],Vi=19,zi=[17,18,0,1,2,3,4,5,16,6,7,8,9,10,11,12,13,14,15],Wi=120,Gi=[24,7,23,25,40,6,39,41,22,26,38,42,56,5,55,57,21,27,54,58,37,43,72,4,71,73,20,28,53,59,70,74,36,44,88,69,75,52,60,3,87,89,19,29,86,90,35,45,68,76,85,91,51,61,104,2,103,105,18,30,102,106,34,46,84,92,67,77,101,107,50,62,120,1,119,121,83,93,17,31,100,108,66,78,118,122,33,47,117,123,49,63,99,109,82,94,0,116,124,65,79,16,32,98,110,48,115,125,81,95,64,114,126,97,111,80,113,127,96,112],Ki=1<×',"newest-on-top":!0,"time-out":5e3,"icon-classes":{error:"toast-error",info:"toast-info",wait:"toast-wait",success:"toast-success",warning:"toast-warning"},"body-output-type":"","body-template":"toasterBodyTmpl.html","icon-class":"toast-info","position-class":"toast-top-right","title-class":"toast-title","message-class":"toast-message","prevent-duplicates":!1,"mouseover-timer-stop":!0}).service("toaster",["$rootScope","toasterConfig",function(e,t){function n(e){return function(t,n,a,i,o,s,r,l,c){return angular.isString(t)?this.pop(e,t,n,a,i,o,s,r,l,c):this.pop(angular.extend(t,{type:e}))}}var a=function(){var e={};return e.newGuid=function(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0,n="x"==e?t:3&t|8;return n.toString(16)})},e}();this.pop=function(t,n,i,o,s,r,l,c,d,u){if(angular.isObject(t)){var p=t;this.toast={type:p.type,title:p.title,body:p.body,timeout:p.timeout,bodyOutputType:p.bodyOutputType,clickHandler:p.clickHandler,showCloseButton:p.showCloseButton,closeHtml:p.closeHtml,toastId:p.toastId,onShowCallback:p.onShowCallback,onHideCallback:p.onHideCallback,directiveData:p.directiveData},l=p.toasterId}else this.toast={type:t,title:n,body:i,timeout:o,bodyOutputType:s,clickHandler:r,showCloseButton:c,toastId:d,onHideCallback:u};return this.toast.toastId&&this.toast.toastId.length||(this.toast.toastId=a.newGuid()),e.$emit("toaster-newToast",l,this.toast.toastId),{toasterId:l,toastId:this.toast.toastId}},this.clear=function(t,n){angular.isObject(t)?e.$emit("toaster-clearToasts",t.toasterId,t.toastId):e.$emit("toaster-clearToasts",t,n)};for(var i in t["icon-classes"])this[i]=n(i)}]).factory("toasterEventRegistry",["$rootScope",function(e){var t,n=null,a=null,i=[],o=[];return t={setup:function(){n||(n=e.$on("toaster-newToast",function(e,t,n){for(var a=0,o=i.length;a=0&&i.splice(t,1),0===i.length&&(n(),n=null)},unsubscribeToClearToastsEvent:function(e){var t=o.indexOf(e);t>=0&&o.splice(t,1),0===o.length&&(a(),a=null)}},{setup:t.setup,subscribeToNewToastEvent:t.subscribeToNewToastEvent,subscribeToClearToastsEvent:t.subscribeToClearToastsEvent,unsubscribeToNewToastEvent:t.unsubscribeToNewToastEvent,unsubscribeToClearToastsEvent:t.unsubscribeToClearToastsEvent}}]).directive("directiveTemplate",["$compile","$injector",function(e,t){return{restrict:"A",scope:{directiveName:"@directiveName",directiveData:"@directiveData"},replace:!0,link:function(n,a,i){n.$watch("directiveName",function(o){if(angular.isUndefined(o)||o.length<=0)throw new Error("A valid directive name must be provided via the toast body argument when using bodyOutputType: directive");var s;try{s=t.get(i.$normalize(o)+"Directive")}catch(r){throw new Error(o+" could not be found. The name should appear as it exists in the markup, not camelCased as it would appear in the directive declaration, e.g. directive-name not directiveName.")}var l=s[0];if(l.scope!==!0&&l.scope)throw new Error("Cannot use a directive with an isolated scope. The scope must be either true or falsy (e.g. false/null/undefined). Occurred for directive "+o+".");if(l.restrict.indexOf("A")<0)throw new Error('Directives must be usable as attributes. Add "A" to the restrict option (or remove the option entirely). Occurred for directive '+o+".");n.directiveData&&(n.directiveData=angular.fromJson(n.directiveData));var c=e("

")(n);a.append(c)})}}}]).directive("toasterContainer",["$parse","$rootScope","$interval","$sce","toasterConfig","toaster","toasterEventRegistry",function(e,t,n,a,i,o,s){return{replace:!0,restrict:"EA",scope:!0,link:function(t,r,l){function c(e,a){e.timeoutPromise=n(function(){t.removeToast(e.toastId)},a,1)}function d(n,i){if(n.type=g["icon-classes"][n.type],n.type||(n.type=g["icon-class"]),g["prevent-duplicates"]===!0&&t.toasters.length){if(t.toasters[t.toasters.length-1].body===n.body)return;var o,s,r=!1;for(o=0,s=t.toasters.length;o0&&t.toasters.length>g.limit&&t.toasters.pop()):(t.toasters.push(n),g.limit>0&&t.toasters.length>g.limit&&t.toasters.shift()),angular.isFunction(n.onShowCallback)&&n.onShowCallback()}function u(e){var a=t.toasters[e];a.timeoutPromise&&n.cancel(a.timeoutPromise),t.toasters.splice(e,1),angular.isFunction(a.onHideCallback)&&a.onHideCallback()}function p(e){for(var n=t.toasters.length-1;n>=0;n--)m(e)?u(n):t.toasters[n].toastId==e&&u(n)}function m(e){return angular.isUndefined(e)||null===e}var g;g=angular.extend({},i,t.$eval(l.toasterOptions)),t.config={toasterId:g["toaster-id"],position:g["position-class"],title:g["title-class"],message:g["message-class"],tap:g["tap-to-dismiss"],closeButton:g["close-button"],closeHtml:g["close-html"],animation:g["animation-class"],mouseoverTimer:g["mouseover-timer-stop"]},t.$on("$destroy",function(){s.unsubscribeToNewToastEvent(t._onNewToast),s.unsubscribeToClearToastsEvent(t._onClearToasts)}),t.configureTimer=function(e){var t=angular.isNumber(e.timeout)?e.timeout:g["time-out"];"object"==typeof t&&(t=t[e.type]),t>0&&c(e,t)},t.removeToast=function(e){var n,a;for(n=0,a=t.toasters.length;n
{{toaster.title}}
{{toaster.body}}
'}}])}(window,document),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.Clipboard=e()}}(function(){var e;return function t(e,n,a){function i(s,r){if(!n[s]){if(!e[s]){var l="function"==typeof require&&require;if(!r&&l)return l(s,!0);if(o)return o(s,!0);var c=new Error("Cannot find module '"+s+"'");throw c.code="MODULE_NOT_FOUND",c}var d=n[s]={exports:{}};e[s][0].call(d.exports,function(t){var n=e[s][1][t];return i(n?n:t)},d,d.exports,t,e,n,a)}return n[s].exports}for(var o="function"==typeof require&&require,s=0;so.length)&&(u=o)}for(o={},r=0;r,<\s]+/g,r=/^\s+|\s$/g;e.SearchIndexManager={createIndex:t,indexObject:i,cleanSearchText:n,cleanUsername:a,search:o}}(window),TLSerialization.prototype.createBuffer=function(){this.buffer=new ArrayBuffer(this.maxLength),this.intView=new Int32Array(this.buffer),this.byteView=new Uint8Array(this.buffer)},TLSerialization.prototype.getArray=function(){var e=new ArrayBuffer(this.offset),t=new Int32Array(e);return t.set(this.intView.subarray(0,this.offset/4)),t},TLSerialization.prototype.getBuffer=function(){return this.getArray().buffer},TLSerialization.prototype.getBytes=function(e){if(e){var t=new ArrayBuffer(this.offset),n=new Uint8Array(t);return n.set(this.byteView.subarray(0,this.offset)),n}for(var a=[],i=0;i>>",e.toString(16),e,t),this.checkLength(4),this.intView[this.offset/4]=e,this.offset+=4},TLSerialization.prototype.storeInt=function(e,t){this.writeInt(e,(t||"")+":int")},TLSerialization.prototype.storeBool=function(e,t){e?this.writeInt(2574415285,(t||"")+":bool"):this.writeInt(3162085175,(t||"")+":bool")},TLSerialization.prototype.storeLongP=function(e,t,n){this.writeInt(t,(n||"")+":long[low]"),this.writeInt(e,(n||"")+":long[high]")},TLSerialization.prototype.storeLong=function(e,t){if(angular.isArray(e))return 2==e.length?this.storeLongP(e[0],e[1],t):this.storeIntBytes(e,64,t);"string"!=typeof e&&(e=e?e.toString():"0");var n=bigStringInt(e).divideAndRemainder(bigint(4294967296));this.writeInt(intToUint(n[1].intValue()),(t||"")+":long[low]"),this.writeInt(intToUint(n[0].intValue()),(t||"")+":long[high]")},TLSerialization.prototype.storeDouble=function(e,t){var n=new ArrayBuffer(8),a=new Int32Array(n),i=new Float64Array(n);i[0]=e,this.writeInt(a[0],(t||"")+":double[low]"),this.writeInt(a[1],(t||"")+":double[high]")},TLSerialization.prototype.storeString=function(e,t){this.debug&&console.log(">>>",e,(t||"")+":string"),void 0===e&&(e="");var n=unescape(encodeURIComponent(e));this.checkLength(n.length+8);var a=n.length;a<=253?this.byteView[this.offset++]=a:(this.byteView[this.offset++]=254,this.byteView[this.offset++]=255&a,this.byteView[this.offset++]=(65280&a)>>8,this.byteView[this.offset++]=(16711680&a)>>16);for(var i=0;i>>",bytesToHex(e),(t||"")+":bytes");var n=e.byteLength||e.length;for(this.checkLength(n+8),n<=253?this.byteView[this.offset++]=n:(this.byteView[this.offset++]=254,this.byteView[this.offset++]=255&n,this.byteView[this.offset++]=(65280&n)>>8,this.byteView[this.offset++]=(16711680&n)>>16),this.byteView.set(e,this.offset),this.offset+=n;this.offset%4;)this.byteView[this.offset++]=0},TLSerialization.prototype.storeIntBytes=function(e,t,n){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var a=e.length;if(t%32||8*a!=t)throw new Error("Invalid bits: "+t+", "+e.length);this.debug&&console.log(">>>",bytesToHex(e),(n||"")+":int"+t),this.checkLength(a),this.byteView.set(e,this.offset),this.offset+=a},TLSerialization.prototype.storeRawBytes=function(e,t){e instanceof ArrayBuffer&&(e=new Uint8Array(e));var n=e.length;this.debug&&console.log(">>>",bytesToHex(e),t||""),this.checkLength(n),this.byteView.set(e,this.offset),this.offset+=n},TLSerialization.prototype.storeMethod=function(e,t){var n,a=this.mtproto?Config.Schema.MTProto:Config.Schema.API,i=!1;for(n=0;n=4*this.intView.length)throw new Error("Nothing to fetch: "+e);var t=this.intView[this.offset/4];return this.debug&&console.log("<<<",t.toString(16),t,e),this.offset+=4,t},TLDeserialization.prototype.fetchInt=function(e){return this.readInt((e||"")+":int")},TLDeserialization.prototype.fetchDouble=function(e){var t=new ArrayBuffer(8),n=new Int32Array(t),a=new Float64Array(t);return n[0]=this.readInt((e||"")+":double[low]"),n[1]=this.readInt((e||"")+":double[high]"),a[0]},TLDeserialization.prototype.fetchLong=function(e){var t=this.readInt((e||"")+":long[low]"),n=this.readInt((e||"")+":long[high]"),a=bigint(n).shiftLeft(32).add(bigint(t)).toString();return a},TLDeserialization.prototype.fetchBool=function(e){var t=this.readInt((e||"")+":bool");return 2574415285==t||3162085175!=t&&(this.offset-=4,this.fetchObject("Object",e))},TLDeserialization.prototype.fetchString=function(e){var t=this.byteView[this.offset++];if(254==t)var t=this.byteView[this.offset++]|this.byteView[this.offset++]<<8|this.byteView[this.offset++]<<16;for(var n="",a=0;athis.byteView.byteLength))throw new Error("Invalid raw bytes length: "+e+", buffer len: "+this.byteView.byteLength);if(t){var a=new Uint8Array(e);return a.set(this.byteView.subarray(this.offset,this.offset+e)),this.offset+=e,a}for(var a=[],i=0;i0)for(var d=e.substr(7,e.length-8),u=0;u=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":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))),i.noLinks?y.push(M):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?:\/\/t(?:elegram)?\.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:$}).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),$||($=!0,setTimeout(c,0)))})})}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)){w.baseUrl=(location.href||"").replace(/#.*$/,"")+"#/im";var e={type:"ping",localNotifications:y,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=angular.copy(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={},k=navigator.userAgent.toLowerCase().indexOf("firefox")>-1,$=!k;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){ +}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":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))),i.noLinks?y.push(M):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?:\/\/t(?:elegram)?\.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:$}).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),$||($=!0,setTimeout(c,0)))})})}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)){w.baseUrl=(location.href||"").replace(/#.*$/,"")+"#/im";var e={type:"ping",localNotifications:y,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=angular.copy(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={},k=navigator.userAgent.toLowerCase().indexOf("firefox")>-1,$=!k;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 a=this;n=n||{};var i=new TLSerialization({startMaxLength:t.body.length+64});return i.storeIntBytes(this.serverSalt,64,"salt"),i.storeIntBytes(this.sessionID,64,"session_id"),i.storeLong(t.msg_id,"message_id"),i.storeInt(t.seq_no,"seq_no"),i.storeInt(t.body.length,"message_data_length"),i.storeRawBytes(t.body,"message_data"),this.getEncryptedMessage(i.getBuffer()).then(function(t){var i=new TLSerialization({startMaxLength:t.bytes.byteLength+256});i.storeIntBytes(a.authKeyID,64,"auth_key_id"),i.storeIntBytes(t.msgKey,128,"msg_key"),i.storeRawBytes(t.bytes,"encrypted_data");var o,l=b?i.getBuffer():i.getArray(),c=e.chooseServer(a.dcID,a.upload),d={code:406,type:"NETWORK_BAD_RESPONSE",url:c};try{n=angular.extend(n||{},{responseType:"arraybuffer",transformRequest:null}),o=s.post(c,l,n)}catch(u){o=r.reject(u)}return o.then(function(e){return e.data&&e.data.byteLength?e:r.reject(d)},function(e){return e.message||e.type||(e=angular.extend(d,{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]: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){if("string"==typeof e.message&&e.message.length)A(e.message,e.pFlags.alert);else if("string"==typeof e.url){var t=p.wrapUrl(e.url,!0);h.openUrl(t)}})}function I(e){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","_","toaster","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,h){function f(){p.get("notify_nodesktop","notify_volume","notify_novibrate","notify_nopreview","notify_nopush").then(function(e){if(ee.nodesktop=e[0],ee.volume=e[1]===!1?.5:e[1],ee.novibrate=e[2],ee.nopreview=e[3],ee.nopush=e[4],ne){var t=!ee.nopush&&!ee.nodesktop&&h.isAvailable||!1,n=te!==!1;t!=n&&(t?h.subscribe():h.unsubscribe())}h.setSettings(ee)})}function _(){return ee}function v(e){return void 0!==K[e]?K[e]:K[e]=r.invokeApi("account.getNotifySettings",{peer:{_:"inputNotifyPeer",peer:l.getInputPeerByID(e)}})}function y(e){if(e=e||"favicon.ico",B!==e){var t=document.createElement("link");t.rel="shortcut icon",t.type="image/x-icon",t.href=e,Y.parentNode.replaceChild(t,Y),Y=t,B=e}}function b(t,n){K[t]=a.when(n),e.$broadcast("notify_settings",{peerID:t})}function w(e,t){b(e,t);var n=angular.copy(t);return n._="inputPeerNotifySettings",r.invokeApi("account.updateNotifySettings",{peer:{_:"inputNotifyPeer",peer:l.getInputPeerByID(e)},settings:n})}function k(e){return v(e).then(function(e){return"peerNotifySettings"==e._&&1e3*e.mute_until>tsNow()})}function S(){if(f(),e.$on("settings_changed",f),h.start(),!L)return!1;"Notification"in window&&"granted"!==Notification.permission&&"denied"!==Notification.permission&&$(t).on("click",M);try{"onbeforeunload"in window&&$(t).on("beforeunload",D)}catch(n){}}function C(){D(),n.cancel(U),y(),Q=!0}function M(){Notification.requestPermission(),$(t).off("click",M)}function x(e){if(!Q){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 g.getDataUrl(e.image,"image/jpeg").then(function(t){e.image=t,x(e)}),!1;e.image=g.getUrl(e.image,"image/jpeg")}else e.image||(e.image="img/icons/icon60.png");q++;var t=tsNow();if(ee.volume>0&&(!e.tag||!V[e.tag]||t>V[e.tag]+6e4)&&(I(ee.volume),V[e.tag]=t),!L||"Notification"in window&&"granted"!==Notification.permission)return!1;if(ee.nodesktop){if(z&&!ee.novibrate)return void navigator.vibrate([200,100,200])}else{var n,a=++H,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 L=!1,void h.setLocalNotificationsDisabled()}else if("mozNotification"in navigator)n=navigator.mozNotification.createNotification(e.title,e.message||"",e.image||"");else{if(!R)return;window.external.msSiteModeClearIconOverlay(),window.external.msSiteModeSetIconOverlay("img/icons/icon16.png",e.title),window.external.msSiteModeActivate(),n={index:a}}n.onclick=function(){n.close(),m.focus(),D(),e.onclick&&e.onclick()},n.onclose=function(){n.hidden||(delete j[i],D())},n.show&&n.show(),j[i]=n,Config.Navigator.mobile||setTimeout(function(){E(i)},8e3)}}}function I(e){var t=tsNow();if(!(W&&t');a.find("audio")[0].volume=e}}function A(e){var t=j[e];if(t){q>0&&q--;try{t.close?t.close():R&&t.index==H&&window.external.msSiteModeClearIconOverlay()}catch(n){}delete q[e]}}function E(e){var t=j[e];if(t){try{t.close&&(t.hidden=!0,t.close())}catch(n){}delete q[e]}}function T(e){delete V[e]}function D(){R?window.external.msSiteModeClearIconOverlay():angular.forEach(j,function(e){try{e.close&&e.close()}catch(t){}}),j={},q=0,h.hidePushNotifications()}function P(e){return(!te||!angular.equals(te,e))&&void r.invokeApi("account.registerDevice",{token_type:e.tokenType,token:e.tokenValue}).then(function(){te=e},function(e){e.handled=!0})}function F(e){return!!te&&void r.invokeApi("account.unregisterDevice",{token_type:e.tokenType,token:e.tokenValue}).then(function(){te=!1},function(e){e.handled=!0})}function N(){return z}navigator.vibrate=navigator.vibrate||navigator.mozVibrate||navigator.webkitVibrate;var R=!1;try{window.external&&window.external.msIsSiteMode()&&(R=!0)}catch(O){}var U,B,L=R||"Notification"in window||"mozNotification"in navigator,j={},H=0,q=0,V={},z=!!navigator.vibrate,W=!1,G=!1,K={},Y=$('link[rel="icon"]:first')[0],Z=o.pluralize("page_title_pluralize_notifications"),X=document.title,J=!1,Q=!1,ee={};e.$watch("idle.deactivated",function(e){e&&C()}),e.$watch("idle.isIDLE",function(e){Q||(e||D(),Config.Navigator.mobile||(n.cancel(U),e?(X=document.title,U=n(function(){J||!q?(J=!1,document.title=X,y()):(J=!0,document.title=Z(q),y("favicon_unread.ico"))},1e3)):(J=!1,document.title=X,y())))}),e.$on("apiUpdate",function(e,t){switch(t._){case"updateNotifySettings":if("notifyPeer"==t.peer._){var n=l.getPeerID(t.peer.peer);b(n,t.notify_settings)}}});var te=!1,ne=!1;e.$on("push_init",function(e,t){ne=!0,ee.nodesktop||ee.nopush?F(t):t?P(t):h.subscribe()}),e.$on("push_subscribe",function(e,t){P(t)}),e.$on("push_unsubscribe",function(e,t){F(t)});var ae=a.defer(),ie=e.$on("dialogs_multiupdate",function(){ie(),ae.resolve()}),oe=ae.promise;return e.$on("push_notification_click",function(t,n){if("push_settings"==n.action)return void oe.then(function(){i.open({templateUrl:templateUrl("settings_modal"),controller:"SettingsModalController",windowClass:"settings_modal_window mobile_modal",backdrop:"single"})});if("mute1d"==n.action)return void r.invokeApi("account.updateDeviceLocked",function(){}).then(function(){var e=s.pop({type:"info",body:o("push_action_mute1d_success"),bodyOutputType:"trustedHtml",clickHandler:function(){s.clear(e)},showCloseButton:!1})});var a=n.custom&&n.custom.peerID;console.log("click",n,a),a&&oe.then(function(){n.custom.channel_id&&!c.hasChat(n.custom.channel_id)||a>0&&!d.hasUser(a)||e.$broadcast("history_focus",{peerString:l.getPeerString(a)})})}),{start:S,notify:x,cancel:A,clear:D,soundReset:T,getPeerSettings:v,getPeerMuted:k,savePeerSettings:b,updatePeerSettings:w,updateNotifySettings:f,getNotifySettings:_,getVibrateSupport:N,testSound:I}}]).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=1)return console.log("Skip error box, too many open",s,n,a),!1;a=a||{};var i=e.$new();angular.extend(i,n),s++;var o=t.open({templateUrl:templateUrl("error_modal"),scope:i,windowClass:a.windowClass||"error_modal_window"});return o.result["finally"](function(){s--}),o}function i(e,t){return a({title:e,description:t})}function o(n,a){a=a||{};var i=e.$new();angular.extend(i,n);var o=t.open({templateUrl:templateUrl("confirm_modal"),scope:i,windowClass:a.windowClass||"confirm_modal_window"});return o.result}var s=0;return n.safeConfirm=function(e,t){"string"==typeof e&&(e={message:e}),o(e).then(function(e){t(e||!0)},function(){t(!1)})},{show:a,alert:i,confirm:o}}]).service("PeersSelectService",["$rootScope","$modal",function(e,t){function n(n){var a=e.$new();return a.multiSelect=!1,a.noMessages=!0,n&&angular.extend(a,n),t.open({templateUrl:templateUrl("peer_select"),controller:"PeerSelectController",scope:a,windowClass:"peer_select_window mobile_modal",backdrop:"single"}).result}function a(a){if(Config.Mobile)return n(a).then(function(e){return[e]});var i=e.$new();return i.multiSelect=!0,i.noMessages=!0,a&&angular.extend(i,a),t.open({templateUrl:templateUrl("peer_select"),controller:"PeerSelectController",scope:i,windowClass:"peer_select_window mobile_modal",backdrop:"single"}).result}return{selectPeer:n,selectPeers:a}}]).service("ContactsSelectService",["$rootScope","$modal",function(e,t){function n(n,a){a=a||{};var i=e.$new();return i.multiSelect=n,angular.extend(i,a),!i.action&&n&&(i.action="select"),t.open({templateUrl:templateUrl("contacts_modal"),controller:"ContactsModalController",scope:i,windowClass:"contacts_modal_window mobile_modal",backdrop:"single"}).result}return{selectContacts:function(e){return n(!0,e)},selectContact:function(e){return n(!1,e)}}}]).service("ChangelogNotifyService",["Storage","$rootScope","$modal",function(e,t,n){function a(){e.get("last_version").then(function(t){t!=Config.App.version&&(t&&i(t),e.set({last_version:Config.App.version}))})}function i(e){var a=t.$new();a.lastVersion=e,n.open({controller:"ChangelogModalController",templateUrl:templateUrl("changelog_modal"),scope:a,windowClass:"changelog_modal_window mobile_modal"})}return{checkUpdate:a,showChangelog:i}}]).service("HttpsMigrateService",["ErrorService","Storage",function(e,t){function n(){t.get("https_dismiss").then(function(n){(!n||tsNow()>n+432e5)&&e.confirm({type:"MIGRATE_TO_HTTPS"}).then(function(){var e;try{e=window.open("https://web.telegram.org","_blank")}catch(t){}e||(location.href="https://web.telegram.org")},function(){t.set({https_dismiss:tsNow()})})})}function a(){i||"http:"!=location.protocol||Config.Modes.http||Config.App.domains.indexOf(location.hostname)==-1||(i=!0,setTimeout(n,12e4))}var i=!1;return{start:a,check:n}}]).service("LayoutSwitchService",["ErrorService","Storage","AppRuntimeManager","$window",function(e,t,n,a){function i(e){ConfigStorage.noPrefix(),t.set({layout_selected:e?"mobile":"desktop",layout_width:$(window).width()}).then(function(){n.reload()})}function o(n){if(!l){var a=$(window).width(),o=a<600;!a||!n&&(Config.Navigator.mobile?a<=800:o)||o!=Config.Mobile&&(ConfigStorage.noPrefix(),t.get("layout_width").then(function(n){return a!=n&&(l=!0,void e.confirm({type:o?"SWITCH_MOBILE_VERSION":"SWITCH_DESKTOP_VERSION"}).then(function(){i(o)},function(){ConfigStorage.noPrefix(),t.set({layout_width:a}),l=!1}))}))}}function s(){r||Config.Navigator.mobile||(r=!0,o(),$(a).on("resize",o))}var r=!1,l=!1;return{start:s,switchLayout:i}}]).service("TelegramMeWebService",["Storage",function(e){function t(t){return!n&&void e.get("tgme_sync").then(function(n){var a=tsNow(!0);if(t&&n&&n.canRedirect==t&&n.ts+86400>a)return!1;e.set({tgme_sync:{canRedirect:t,ts:a}});var i=$("